Upgrade to Pro — share decks privately, control downloads, hide ads and more …

リクルートにおけるデータ活用の現実解について

 リクルートにおけるデータ活用の現実解について

2017/09/27 PyData.Tokyo Meetup #15での、松﨑の講演資料になります

Recruit Technologies

October 25, 2017
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. 自己紹介(松﨑 遥) リクルートテクノロジーズ ビッグデータ部 → 来月からはリクルートホールディングス データ・AI戦略本部 仕事:リクルート最大のAI基盤を5年ぶりに刷新しようとしているが、今までとは全く違う システムにしたく、それを設計するのが仕事(“新アーキテクチャPJ“の責任者) 趣味:ロールプレイングゲーム

    同じものを延々とやる 真・女神転生III-NOCTURNE - 15年目に突入 来歴:中学では半田付け・Z80(8bitCPU)など 大学・大学院は物理(一般相対論・量子力学・カオス) → 現実との関わりへの飢え 大学院時代未踏でバイト以降ずっとプログラマ c++, objc, php, java, scala, haskell,sa, js, nodejs → 数学とコンピューティングの融合への欲求 私が2015年1月末にリクルートに来たところ、そこには10億件が入ったDBがあった。 2 情報幾何 NN/DNN 心が豊かになる ナニコレ?
  2. ライフイベント領域 進学 就職 結婚 転職 住宅購入 車購入 出産/育児 旅行 IT/トレンド

    生活/地域情報 グルメ・美容 ライフスタイル領域 選択・意思決定 を支援する情報サービスの提供 「まだ、ここにない、出会い。」を実現する リクルート運営サービスのご紹介
  3. ここまででの情報の要約 • リクルートには、全サービスのログを横断して分析する組織がある • 最良の場合には、一人一人に対して、 • ファッション • グルメ •

    車・家購入 • 結婚 • お稽古 • 美容 • 通販 といった多様なデータが取れるため、非常に分析しがいのあるデータ 6
  4. 分散処理系を買うとはどういうことか? リクルート横断データ基盤における分散処理系導入状況 16 ソース 保存(DataWarehouse) 加工(DataMart) 機械学習 Cloud On- Premi

    se google adobe Recruit S3 ExaData Production Hadoop ExaData Sandbox Hadoop 松﨑実験 クラスタ BigQuery (dremel) DataProc (ManagedHadoop)
  5. =運用チームも買う(人件費がかかる)ということ リクルート横断データ基盤における分散処理系導入状況 17 ソース 保存(DataWarehouse) 加工(DataMart) 機械学習 Cloud On- Premi

    se google adobe Recruit S3 ExaData Production Hadoop ExaData Sandbox Hadoop 松﨑実験 クラスタ GA/Omniture 運用チーム AWS運用 (Security)T ExaData運用 +DBAチーム Hadoop運用 +SREチーム GCP運用 +契約管理T データリンク チーム
  6. 分散処理系では運用チーム無しで仕事は出来ない 18 Hadoop 分散システムは よく落ちる やりなおし あなた 「 」 結果

    よく考えれば当たり前 故障率pとして1-(1-p)^n=np+o(p^2)なのだから そして速いほどよく落ちる Kudu>Spark>Hadoop while (true) { }
  7. 分散処理系では実装も制限される いかなるState-of-the-Artなモデルも、分散計算ロジックが開発できなければ計算完了しない =机上の空論 分散計算ロジックを開発する: 1. JavaでMapReduceを書く 2. ScalaでRDD操作を書く 3. 素直に実装済みモデルを利用する

    – Mllib, Hivemall → Collaborative Filteringや、Logistic Regressionなどが生き残り続ける一因。 ※GPUは分岐演算と、長いデータへの不均一な処理(要は文字列処理)が出来ないため こうした一般的なタスクには不向き(Hadoopは何でもできる) 20
  8. 実例1:リコメンデーション 横断データによるリコメンデーションとは、 「全てのサービスへのアクセス情報から、特定のサイトでの購買アイテムを予測」 するタスク。実は3年間、Collaborative Filteringを強化し続けている。CFは簡単に分散する State-of-the-Artモデルを実装した時の性能の伸びが10%程度だったのに対し、 Adhocなフィルタによる • 性能の伸びは1つ毎に最大250% •

    Hadoopロジック開発が容易 であるため、Adhocなフィルタは5個以上開発された。 分散システムの宿命として2ヶ月に1回は原因不明のエラーで失敗するが、単純ゆえ管理も楽 現在のリコメンデーションロジック: 21 CF コンテン ツ類似 による Boost 購買地 域による Boost 保有ポイ ントによ るBoost Recency による Boost Deviceに よる Boost 3-gram(!) リクルートの 強み Pontaの強み
  9. デリバリーとは何か? 一般に、価値を届けること ここでは特に、必要な時にデータがあることを言う。 23 機械学習 予測結果 Web開発者 予測結果 に対する オンラインログ

    効果検証する 分析者 UIを切り替えるのに使うが、 データはどこにあるのか? 検定したいが、 クリックログや 購買ログはどこだ? ? ? ここを つなぐこと
  10. 実例2:予測データ提供API 低負荷版API 24 Hadoop 予測データ HBase 予測データ RecruitID 指定 コピー(5〜30分)

    ランダム アクセス が遅い ランダム アクセス が速い DIRTy (Data Intensive Real Time) js <script> 追加 高負荷版API Hadoop 予測データ BigTable/ Spanner js Autoscale(1台〜20台・15s/台) KVSを使った デリバリーの仕組み
  11. 実例3:リコメンデーションモニタリングシステム ポイント • ランダムアクセス/集計は適切に分散処理可能な基盤が異なる • デリバリーとは、当該処理が得意なシステム上にデータを届けること • レイテンシーは1日以上かかることが多い(日次ジョブ) • 予測データの公開や、効果検証時にデリバリー業務が発生する

    • デリバリーのコストはスクラッチ開発を含むため相当高い 25 js 予測データ 問い合わせ browser ログ収集 専用インスタンス js製BIツール Hive 他社BIツール 集計が遅い 集計が速い HBase HiveServer2を使った デリバリーの仕組み コピー(5〜30分)
  12. 実例5:企画は生き物(再掲:コンテンツ生成システム) 一人一人に違ったバナー広告を出す広告システム(凡庸なアイディア) → 広告を管理する部の人を紹介してもらう → A/Bテストの大変さの愚痴を聞く。とくにシステム間のデータ転送が大変らしい → バナー配信システムと効果検証システムが同じシステムならいいのになぁ → リコメンドの効果測定で苦労し、同じ課題だなぁと思う

    → バナー広告を出す際に、Httpヘッダーを偽装する方法を思いつく → バナー広告に限らず、メールの画像も本質的には同じ気がしてくる → メール施策担当者と仲良くなるために甲子園予選(清宮)に同行 → 社内の誰よりもメールの仕組みに詳しくなる → メールの画像差し替えに成功 → DataProcやSpannerで遊んでいたところ、システム統合に使えると気づく → 上長に熱くSpannerの可能性を語り、巨大な予算を獲得する → SpannerやAutoscaleを思う存分使って実装する → 開発協力を祈願しバブルサッカーを執り行う → 社内のバンディットアルゴリズム専門家の頼みごとを1つ解決しフラグを立てる → 社内のバンディットアルゴリズム専門家にシステムを見せ意気投合する → 結果的に、A/Bテスト指標をリアルタイムフィードバックとして得ながら変化する html/JSON/画像の提供システムとなり、1億Access/Dayを捌くスペックとなる → メールの部のさらに上位組織にパエリアを作って振る舞う義務を課される なかなかモデルの作り込みは出来ないが、気づけばより多くの物事が動く流れが出来ている 29 + + + + + + + x15 + 協業者数
  13. 応用問題(再掲) Q:では、State-of-the-Artなモデルがあるとき、それを現実世界に持ち込み、 「精度が向上」→「儲かる」が実現されるにはどうすれば良いか? 31 paper discussion conference experiment あなた 企画者

    科学者 技術者 決裁者 説明力 分散化 データフ ロー設計 強力なツール・ Recruiting 社外 データ 解読 データ 整形 機械学 習 分散計 算 公開 経済的 リターン 効果 検証 承認 横展開 ✅ ✅ ✅ ✅ ✅ ✅ ✅ 価値の創出
  14. 応用問題(再掲) Q:では、State-of-the-Artなモデルがあるとき、それを現実世界に持ち込み、 「精度が向上」→「儲かる」が実現されるにはどうすれば良いか? 32 paper discussion conference experiment あなた 企画者

    科学者 技術者 決裁者 説明力 分散化 データフ ロー設計 強力なツール・ Recruiting 社外 データ 解読 データ 整形 機械学 習 分散計 算 公開 経済的 リターン 効果 検証 承認 横展開 ✅ ✅ ✅ ✅ ✅ ✅ ✅ 価値の創出 これも企業内で価値を創出するための1つの解 すべてあなたひとりで実現可能 そしてすべてがあなたを助けてくれる人のおかげ