Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

リクルートを支える横断データ基盤と機械学習の適用事例

11,059 views

Published on

Data Platform Confference Tokyo 2017 で話した「リクルートを支える横断データ基盤と機械学習の適用事例」です

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

リクルートを支える横断データ基盤と機械学習の適用事例

  1. 1. (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートを支える横断データ基盤と 機械学習の適用事例 2017/10/10 株式会社リクルートテクノロジーズ ITソリューション統括部 ビッグデータ部 ビッグデータID・ポイント領域グループ 渡部 徹太郎 松﨑 遥 Data Platform Conference Tokyo 2017
  2. 2. (C) Recruit Technologies Co.,Ltd. All rights reserved. アジェンダ  リクルートのビジネスモデルと横断データ基盤の紹介 (渡部)  機械学習の適用事例 (松﨑)  まとめ 1
  3. 3. (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートのビジネスモデルと 横断データ基盤の紹介 2
  4. 4. (C) Recruit Technologies Co.,Ltd. All rights reserved. 自己紹介 {"ID" :"fetaro" "名前":"渡部 徹太郎" "研究":"東京工業大学でデータベースと情報検索の研究 (@日本データベース学会)" "仕事":{前職:["証券会社のオンライントレードシステムのWeb基盤", "オープンソースなら何でも。主にMongoDB,NoSQL"], 現職:["Web企業の分析基盤,Exadata,Hortonworks,EMR"] 副業:["MongoDBコンサルタント" ]} "エディタ":"emacs派", "趣味": ["自宅サーバ","麻雀"] } 3
  5. 5. (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートのビジネスモデル 4
  6. 6. (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートのビジネスモデル 5 ク ラ イ ア ン ト カ ス タ マ 集 め る 集 め る 動 か す 動 か す 結 ぶ
  7. 7. (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートの事業領域 6 ライフイベント ライフスタイル 旅行 ITトレンドライフスタイル 健康・美容 就職 結婚 転職 不動産 自動車 出産 教育 「ゆりかごから墓場まで」
  8. 8. (C) Recruit Technologies Co.,Ltd. All rights reserved. ビッグデータの活用箇所 7 カスタマ クライアント ①集客のコスト削減 ・メール・広告最適化 ・ポイント付与最適化 ③クライアント業務支援 ・レポーティング ④データドリブンな意思決定支援 ②マッチング率向上 ・UI/UX改善 ・レコメンデーション ⑤これらを支えるプロセス・運用
  9. 9. (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートテクノロジーズ 8 基盤 プロジェクト管理 UI/SEOビッグデータ部 R&D IT Promotion リクルート ホールディングス リクルートキャリア リクルート住まいカンパニー リクルートライフスタイル リクルートジョブズ リクルートスタッフィング リクルートマーケティングパートナーズ スタッフ リクルート テクノロジーズ リクルートアドミニストレーション リクルートコミュニケーションズ 事業会社 機能会社
  10. 10. (C) Recruit Technologies Co.,Ltd. All rights reserved. Recruit ID・リクルートポイント  共通IDで行動を把握・分析。共通ポイントの付与 9 横断データ基盤 Recruit ID
  11. 11. (C) Recruit Technologies Co.,Ltd. All rights reserved. 横断データ基盤 10
  12. 12. (C) Recruit Technologies Co.,Ltd. All rights reserved. 横断データ基盤の構成要素 メール / 広告 マスタデータ Recruit Servic e Web・ アプリ Exadata RDS BigQuery S3 行動データ GKE データ提供 集計/予測/分類 可視化・BI・レポート 出力蓄積 データアプリケーション GCS stackdriver logging spannerk8s 収集 ・ ・ ・ 50サイト 加工 セグメント抽出(独自アプリ)
  13. 13. (C) Recruit Technologies Co.,Ltd. All rights reserved. 横断データ基盤のプロファイル  データ  データ量:2,000+TB  サービス:50  データベース:160  テーブル:8000  処理  サーバ数:200+  ジョブ数:10000  クエリ数: 100,000,000/月  体制  分析環境利用者数:400人  開発者数:87人 12
  14. 14. (C) Recruit Technologies Co.,Ltd. All rights reserved. 横断データ基盤の典型的な処理パターン  サイト横断でデータを取得、機械学習によりユーザを推定、 メール・ポイント最適化、UI/UX改善に利用する 13 Aサイト 行動 データ Exadata マスター データ S3 Web 機械学習による 属性推定 個人情報マスク 名寄せ DWH化 API化 推定結果の 格納 Exadata リスト作成 メール ポイント 最適化 UI/UX 改善 ブ ラ ウ ザ Point Aサイトに訪れたこと無いユーザでも、 Bサイトの情報から属性を推定できる Bサイト
  15. 15. (C) Recruit Technologies Co.,Ltd. All rights reserved. 横断データ基盤の課題  課題 14 行動 データ Exadata マスター データ S3 Web 機械学習による 属性推定 個人情報マスク DWH化 API化 推定結果の 格納 Exadata メールリスト作成 メール ポイント UI/UX 改善 行動データの取得までに 時間がかかる 高SLAと 低SLAが混在 課題3:オンプレミスの 限界 オンプレミスの 拡張性の限界 (データ量・計算力) Webだけでなく アプリログ収集が求めら れている Aサイトブ ラ ウ ザ Bサイト 高SLA 低SLA
  16. 16. (C) Recruit Technologies Co.,Ltd. All rights reserved. プラットフォームだけでなくデータガバナンスを強化 データガバナンス  メタデータ管理・・・・・・イケてる!  データフロー管理・・・・・できてきた  データクオリティ管理・・・これから 15
  17. 17. (C) Recruit Technologies Co.,Ltd. All rights reserved. メタデータ管理  メタデータ可視化Web  データを探す機能 • データベース一覧・テーブル一覧 • キーワード検索 • 名前が似ているテーブル  データの意味を知る機能 • テーブル定義 • コード値 • 利用者のコメント • よく利用しているユーザ  データの関係を知る機能 • 外部参照一覧 • JOINされることが多いテーブル  データの変化を知る機能 • テーブル定義変更検知・通知 16 Web アプリ OLTP DB 分析 DB Web アプリ OLTP DB Web アプリ OLTP DB メタデータ可視化Web リクルートのほぼ全サイトで導入 OLTP DB, 分析DBの両方から情報を収集
  18. 18. (C) Recruit Technologies Co.,Ltd. All rights reserved. メタデータ管理のFeature Work  開発者が気軽にメタデータ管理Webに情報を登録できるしくみ  ビジネス用語とデータの紐付け辞書の整備  データスチュワート制度の導入 17
  19. 19. (C) Recruit Technologies Co.,Ltd. All rights reserved. データフロー管理  データフロー可視化  概要 • データと処理の関係性を管理 • 複数データストア • 処理の担当チーム管理 • データ数:7000 処理数 :800  用途 • 障害発生時の影響調査 • 処理設計時のインプット  管理方法 • YAMLをgitで管理 18 データ マート ETL マート 化 データ マート マート 化 DWH src src ETL レポート アプリケーション ジョブコントローラ データとジョブの関係を可視化
  20. 20. (C) Recruit Technologies Co.,Ltd. All rights reserved. データフロー管理のFeature Work  入力データ鮮度条件可視化  当日のデータが必要 → 入力データの更新を待つ  1日前までのデータが必要 → 入力データ鮮度確認  データが有ればいい → 時刻起動  入力データ鮮度条件を考慮した障害影響把握  答えを出したい問題 • 入力データが1日更新されなかった。 • どのデータフローに影響があるのか? 19
  21. 21. (C) Recruit Technologies Co.,Ltd. All rights reserved. データクオリティ管理  現状  各開発チームでスクリプトの中で個別に実装 • データ件数チェック • データ鮮度(収集が間に合っているかどうか)のチェック • データの「ユニーク性」、「非NULL」、「キーの結合可否」のチェック  Feature Work  分析者が出勤したら、使いたいデータの状態がひと目で分かる  データ品質管理をある程度標準化 • データ品質管理基盤を作成 • データの重要度に応じて、品質チェック 20 鮮度 件数 一意性 非NULL 結合可否 ・・・ テーブルA ◯ ◯ ◯ ◯ ◯ テーブルB ◯ ◯ ◯ テーブルC ◯ ◯ ◯ テーブルD ◯ ◯ テーブルE ◯ ◯ ◯
  22. 22. (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習の適用事例 21
  23. 23. (C) Recruit Technologies Co.,Ltd. All rights reserved. 後半話者 自己紹介(松﨑 遥) リクルートホールディングス データ・AI戦略本部 守備範囲:施策立ち上げ〜予測〜アプリ実装〜フレームワーク化 Main Mission:リクルート最大のAI基盤を刷新すること 趣味:情報幾何 来歴:中学では半田付け・Z80(8bitCPU)など → 大学・大学院は物理(一般相対論・量子力学・カオス) → 現実との関わりへの欲求 → 大学院時代、隣の研究室の未踏PRJでバイト、以降ずっとプログラマ(emacs派) → c++, objc, php, COBOL, java, scala, haskell, R, python, SPSS, nodejs → 7年後、数学とコンピューティングの融合への欲求  2015年2月1日にリクルートにJoin 22 情報幾何 NN/DNN 心が豊かになる
  24. 24. (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習の活用箇所 23 カスタマ クライアント ②マッチング率向上 ・レコメンデーション ・UI/UX支援 ・行動予測 ⑤機械学習の効率化(高速化/パラメータチューニング) ①集客のコスト削減 ・メール最適化 ・ポイント付与最適化 ・広告最適化 ・顧客セグメントの構築 ・顧客セグメントへの広告配信実行 ・外部ツールへのデータ連携 ④データドリブンな意思決定支援 ・顧客の潜在変数推定 ・(ペルソナ/ジャーニー/ナーチャリング) 年間数百件の 新規施策増加
  25. 25. (C) Recruit Technologies Co.,Ltd. All rights reserved.  我々が行っている多様な予測 • 購買/利用サイト予測 • 属性予測 • キャンペーン反応率予測 • 生涯総価値予測 etc…  リクルートのFunnel構造理解の必要性(一例) 実例 広告系施策 24 「マッチング率向上のために何ができるか」 という共通目標の実現 集客 流入 検索 ブック マーク 購買 キャン セル? ここを改善するなら 開封率予測 ここなら 属性予測に基づく検 索UI切り替え Churn予測 リコメンドの教師 データへのブック マークの追加 購買だけをいきなり増や すことはできない。 各サービスの多様な Funnelへの理解が必須
  26. 26. (C) Recruit Technologies Co.,Ltd. All rights reserved. 広告系施策における機械学習活用のあゆみ  2013: 数千万ID全量をさばけず、ランダムサンプリング  2015: 全量に対する計算が実現。普及せず • 予測データをテーブルとして提供 • 「使いにくい」。要望が出る度に開発が必要 • 「精度も他社製品に負けていないし、内製なのでコストも圧倒的に安い。 どうして、使われないのか??」 • 「このままdeep learningでのモデル改善、SparkやGPUでの高速化に舵をとっても 使ってもらえないままなのでは無いか?」  2017: 普及に成功(大幅な方針転換) • なぜ普及したか=テーブルではなく、本当に欲しかったものを提供したから • 自分で要望通り入力すると、自動的に予測でき、施策が実行される • どうやってこの解にたどり着いたのか?  ✕予測精度が圧倒的に優れているから  ◯????? 25
  27. 27. (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習活用のあゆみ (旧来のツールによるサンプルデータの機械学習) 26 横断データプラットフォーム戦略を開始直後は DWH機能とOLAP機能を重視 フルスクラッチデータマートの乱立 当時の注力技術: ・R ・SPSS ・Oracle Exadataのチューニングなど 2013
  28. 28. (C) Recruit Technologies Co.,Ltd. All rights reserved. 実例 (広告系施策) 2013~2014  テーブルを提供し自由に参照してもらう  例) プログラムから参照して広告を切り替える  うまくいったか? 27 データマート数の増加 再利用性の低さ 要望毎の新規開発 新規開発の迅速化の仕組み Funnelが多様過ぎ、 ウォーターフォールで 全項目予見は不可能 Spring化, Jenkins化 など。しかし 根本的解決なのか?
  29. 29. (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習活用のあゆみ (分散計算による全量データの機械学習) 28 予測系の機械学習(全量データ)が発展し、 マーケティング・UI/UX施策を実装 当時の注力技術: Hadoop + Spark 機械学習の実行 HBase 予測データの提供 2013 2015
  30. 30. (C) Recruit Technologies Co.,Ltd. All rights reserved. w/ random sampling 実例 (広告系施策) 2014~2015  引き続きDMPとしての充実・高精度化  デモグラフィック予測中心のラインナップをHive/JSONAPIで提供  当時の主力は • ロジスティック回帰 • 重回帰 • ニューラルネット • 決定木(Chaid, GBDT, RandomForest) など基礎的だが、Hadoop化によりようやく全量データの学習が実現 29 mapreduce hive TeZ spark hivemall python xgboost mllib mahout …
  31. 31. (C) Recruit Technologies Co.,Ltd. All rights reserved. 2015年当時の悩み  やっと予測精度が”パーソナライズ”水準に。  はたして予測結果は使われたのか? 否  使いにくい=要望が出る度に開発が必要 • 「〜〜というテーブルとJOINしたいがどうすればいいのか?」 • 「2016年8月以前と以降ではこのコードの解釈は違うので注意」 • 「前回の案件とほとんど同じなんだけど、この項目の計算式がちょっと変わった」 • 「サイトリニューアルに伴いマスタ全部変えてもらった件だけど、無しになったから。」 • 「Hadoopの可用性を99.99%にして欲しい」 • 「全員分(数千万人/数億cookie)の計算が明日までに終わらない・・・」 • 「精度向上は続けるとしても、普及には、まったく違うアイディアが必要なのでは?」  我々はこの先を見つけました 30
  32. 32. (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習進化の積み重ねの歴史 (アルゴリズムの高度化、API化) 31 顧客セグメントをグラフィカルに作成したり 自前で広告配信が可能に アルゴリズムや予測項目も高度化し、 さらなる進化を実現するアーキテクチャ模索 注力技術: ElasticSearch セグメントの柔軟な作成 Kubernates 柔軟なデプロイメント Spanner 予測データの提供・学習データ収集 Kafka 低レイテンシーの加工処理 2013 2015 2017
  33. 33. (C) Recruit Technologies Co.,Ltd. All rights reserved. 実例 (広告系施策) 2015~2016  2016 = セルフBIツール:テーブルで無く転置インデックスの作成 • 「プロデューサー」が自分で触る検索エンジン • 高速かつ柔軟 • 全量データまでスケール • 予測データはHadoopで作成してクラウドへ転送 32
  34. 34. (C) Recruit Technologies Co.,Ltd. All rights reserved. 実例 (広告系施策) 2017~  2017 = オートメーションツール:RecruitIDを渡すとhtmlを返す 33 Spanner RecruitID 指定 生成 コンテンツ の閲覧 ↓ 開封/購買 browser 開封/購買 実績データ 変換 Customer
  35. 35. (C) Recruit Technologies Co.,Ltd. All rights reserved. 実例 (広告系施策) 2017~ browser elastic S3 node spanner node 34 GS 配信 System node Customer 原稿登録 Logic プロデューサー セルフBIで作成したセグメントに対して配信〜ログ収集〜Logic反映までが自動 1億リクエスト/Day対応 Hadoo p オートメーションツール全体図
  36. 36. (C) Recruit Technologies Co.,Ltd. All rights reserved. 広告系施策の進化を支えるコンピューティング  もちろん、機械学習や分散計算はいなくなったわけでは無い  以下を黒子のように死守してきた • ジョブツリーが10時間経っても終わらない問題 • ジョブ設計を抜本的にリライトし60分以内の完了を3ヶ月連続防衛 • Spark化による5倍の高速化 • データ転送問題(失敗/遅延) • できるだけSpannerに一元化し、データ転送自体を最小限に • 1億PVを捌く • AppEngineのAutoscaleを利用+nodeでノンブロッキングに • リリース作業の工数増加 • jarのFramework / Jenkins運用体制を構築 • (やや)deepなネットワークの導入 • 絶対誤差の大幅な減少 • データサイエンティストの増加 • Zeppelin / Jupyter / Cloud MLの導入 こうしたことはコンピューティング的には面白いが秘密裏でOK 35
  37. 37. (C) Recruit Technologies Co.,Ltd. All rights reserved. 何が起こったのか  システムを取り囲む人が増えた→どういうことか?  このシステムは、 「プロデューサーが」 「要望を入力すると」 「機械学習や分散基盤を意識せずに」 「具体的なアクションと計測まで完結」 させてしまう≠「テーブル+分厚いドキュメントが社内公開されてる状態」  なぜこの解にたどり着けたのか?  論文やTensorflowやGPUとだけ戯れていたわけではない 36
  38. 38. (C) Recruit Technologies Co.,Ltd. All rights reserved. 広告系施策の進化を支えるリクルートの現場 • マーケティング施策が依然有効だが、エンジニアには感覚が欠如 • 規模の追求に基づく施策構想は高度な専門分野 • Ponta-RecruitID連携 • アライアンス拡充(LAWSON様, JAL様等150サービス以上) • コミュニケーションがほぼ不成立 37 サイエンス エンジニア プロデューサー クリエイティブ 論文を 書く人 作る人 メディ ア企画 画像/原 稿作成 システム運用データコンサル
  39. 39. (C) Recruit Technologies Co.,Ltd. All rights reserved. 多様な人材との協業  鍵になるのがアウフヘーベン(Aufheben:独) 38 エンジニア プロデューサー 武器が ザクザクある アイディア がくさるほ どある いいこと 思いついた こんなツール 売ってない? 実は的外れ だったり 実は原理的に 無理 やると必ず 儲かるアイ ディアを提 供 必要な武器 を即座に提 供 危険な状態 共通言語が 話されている状態
  40. 40. (C) Recruit Technologies Co.,Ltd. All rights reserved. テーブル ID→JSON 変換API 具体的な クリエイティブ “コレ” SQL BIをポチポチ この前話した “アレ” 何が本質的「進化」か 39 顧客のターゲティングの方法 アウトプットのフォーマット 2013 2015 2017 さすがにSQLなら誰でも 書けると思っている SQLが書けても 解読は不可能 BIが便利だと思っている 貴重な開発リソースを少 しも割きたく無い 私は”アレ”に”コレ”を出し たいだけなんだ!
  41. 41. (C) Recruit Technologies Co.,Ltd. All rights reserved. 共通言語 40 原稿登録 企画 サイエンス ターゲット Black BoxでOK どんなセグメントでも あるなあ アイディアが湧いてくる! 開封状況に応じ変化する ロジックを載せたぞ 実験用セグメントだけに 影響するから自由 この原稿で頼みます これを使うとラクだ… システムの存在は 空気のような感覚 エンジニア 気づかれないように サーバーを増強
  42. 42. (C) Recruit Technologies Co.,Ltd. All rights reserved.  BlackBox外で創発的なコミュニケーションが可能になることこそが重要  これが、「性格テーブルを公開するから、企画考えて?」だったら? 共創的コミュニケーション(例) 41 SQL BIポチポチ この前話した “アレ” 性格 予測 テーブル JSON API 具体的な クリエイティブ 画像生成
  43. 43. (C) Recruit Technologies Co.,Ltd. All rights reserved. まとめ 42
  44. 44. (C) Recruit Technologies Co.,Ltd. All rights reserved. まとめ  普通のプラットフォーム  分散処理基盤  機械学習  リクルートのプラットフォーム  分析者目線のツール群 • メタデータ管理 • データフロー管理 • データクオリティ管理  プロデューサーのためのツール群 • 自分で要望通り入力できる • 自動的に機械学習による予測がロードされる • 自動的に施策が実行される これらが全て回っていて絶対に落ちず、双方向コミュニケーションで進化し続ける システム 43 2015年

×