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.

推薦アルゴリズムの今までとこれから

2018年3月29日開催
サイバーエージェントにおけるデータ活用とその技術についての勉強会「春の機械学習祭り 〜Data Engineering & Data Analysis WS#4〜」での登壇資料
(秋葉原ラボ所属 内藤遥)

https://cyberagent.connpass.com/event/80969/

  • Be the first to comment

推薦アルゴリズムの今までとこれから

  1. 1. 推薦アルゴリズムの 今までとこれから 2018/03/29 CyberAgent, Inc. All Rights Reserved
  2. 2. ● 内藤 遥(ないとう よう) ● 2012年 新卒入社 ● 技術本部 秋葉原ラボ所属 ● やっていること: 推薦基盤、検索基盤の開発、運用 ● 好きなラーメン: 台湾まぜそば ● 好きなお笑い芸人: ジャルジャル 自己紹介
  3. 3. 1. 推薦アルゴリズムの変遷 2. Amebaにおける推薦基盤の現状とこれから 目次
  4. 4. ● 協調フィルタリング ○ 自分と自分以外の多くの人の評価データを利用した推薦 ■ この商品を買った人はこんな商品も買っています ○ ドメイン知識が不要 ○ コールドスタート問題 ■ 評価データが溜まらないと推薦できない ● コンテンツベース ○ アイテムの特徴の類似度に基づく推薦 ○ ドメイン知識は必要だが、コールドスタートでも推薦可能 推薦アルゴリズムの種類
  5. 5. 推薦アルゴリズムの変遷 GroupLens ユーザベース協調フィルタリング Item-based Collaborative Filtering アイテムベース協調フィルタリング Matrix Factorization 行列分解 Factorization Machines コンテキスト情報を追加 Recurrent Neural Networks ユーザの嗜好の推移を学習
  6. 6. ● ユーザベースの協調フィルタリング ○ 協調フィルタリングシステムの パイオニア的手法 ○ 現在はミネソタ大学の研究所の 名称でもある ○ あるユーザのアイテムに対する 評価値を、自分と似ているユーザの 評価値を利用して予測 GroupLens GroupLens: an open architecture for collaborative filtering of netnews https://dl.acm.org/citation.cfm?doid=192844.192905
  7. 7. ● アイテムベースの協調フィルタリング ○ Amazonが利用していることでも有名 ○ あるユーザのアイテムに対する評価値を、そ のアイテムと似ているアイテムにつけられた 評価値を利用して予測 ○ 類似度を基に関連アイテムの推薦も可能 ○ 類似度の計算をオフラインで行うことで、ス ケーラビリティを確保 Item-based Collaborative Filtering (1/2) Item-Based Collaborative Filtering Recommendation Algorithms http://files.grouplens.org/papers/www10_sarwar.pdf Amazon.com Recommendations https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf
  8. 8. Item-based Collaborative Filtering (2/2) ● Amebaでの利用 ○ 全アイテムペア間の類似度の計算時間が大変そうに見えるが、 実際には共起した要素を持たないアイテムペアがたくさんある ○ 事前に共起情報をチェックすることで計算時間を短縮可能 ○ ハイパーパラメータもなく、手軽に導入できる
  9. 9. ● 2006年〜2009年にかけてNetflix社が主催した 「Netflix Prize」と呼 ばれる賞金100万ドルのアルゴリズム・コンテストで登場 ● 従来の協調フィルタリングでは評価値行列が疎である場合が多いこと から、精度面の問題やデータが少ないと類似ユーザやアイテムを十 分に見つけられない場合があった Matrix Factorization (1/4)
  10. 10. Matrix Factorization (2/4) R P QT m n k k ≈ × ● ユーザ・アイテムの評価値行列 R をユーザの特徴量行列 P と アイテムの特徴量行列 Q に分解 m n
  11. 11. ● 目的関数の最小化 ● SGDやALSの最適化アルゴリズムで学習 (Sparkでは分散処理のしやすいALSが採用されている) Matrix Factorization (3/4) κ: 評価済のユーザu、アイテムiのペア集合
  12. 12. ● Amebaでの利用 ○ 暗黙的評価 (閲覧履歴や購入履歴) を利用する場合、 閲覧=1、お気に入り=2、購入=3のようにアクションごとに 評価値をヒューリスティックに決めて組み合わせることがある ○ オフラインでの精度評価やA/Bテストを通して良いと思われる 組み合わせを決定 Matrix Factorization (4/4)
  13. 13. ● 2010年に登場した識別問題をはじめとする様々な問題に 適用できる一般的なモデル ● MFでは難しかったユーザ、アイテムの属性や コンテキスト(時間や位置情報など、ユーザの状況)を モデルに組み込むことが可能になった Factorization Machines (1/4)
  14. 14. ● 1評価を1行で表現 Factorization Machines (2/4) Factorization Machines https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf ユーザ、アイテムのone-hot ベクトル 属性、コンテキスト 評価値
  15. 15. ● 予測式 ● 交互作用項の重みをベクトルの内積で近似 => パラメータの数を抑え、学習時間を短縮 Factorization Machines (3/4) n: 特徴ベクトルxの次元数
  16. 16. ● Amebaでの利用 ○ Sparkで実装 ○ 導入サービスは少ない ■ MFと比べて予測の計算に時間がかかり、アイテム数が多いと TopN件の算出が厳しい ■ 特徴選択でドメイン知識が必要 Factorization Machines (4/4)
  17. 17. ● 再帰型ニューラルネットワーク ● ユーザの嗜好は時間と共に変化していく ● 時系列データのパターンを学習し、ユーザが「今」好む アイテムを推薦 Recurrent Neural Networks (1/3) s0 s1 s2 sk sn x1 x2 xk xn yn wx wx wx wx wrec wrec wrec wrec
  18. 18. ● Yahoo! Japan ○ ユーザの視聴履歴の各記事の分散表現を 入力、ユーザベクトルを出力とするRNN ○ ユーザベクトル、記事ベクトルの内積のスコ アがクリックされた記事に対して より大きくなるように学習 Recurrent Neural Networks (2/3) Embedding-based News Recommendation for Millions of Users http://www.kdd.org/kdd2017/papers/view/embedding-based-news-recommendation-for-millions-of-users
  19. 19. ● YouTube ○ ユーザの視聴履歴の各ビデオの分散表現を入力、 softmax による各ビデオIDの確率値を 出力とするRNN ○ TimeDelta(前回からの視聴時間の差分)や Software Client(iOS、Android、Chromecast、etc) などのコンテキスト情報を隠れ層に組み込む Recurrent Neural Networks (3/3) Latent Cross: Making Use of Context in Recurrent Recommender Systems https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/46488.pdf
  20. 20. ● オンラインで行う計算はなるべく高速にしたい ○ Yahoo!JapanやGunosyではユーザ、記事のベクトルの 内積の計算がメイン ○ アイテム数が多い場合はどうするか? ■ アイテムの候補を絞る ■ 近似的に解く Collaborative Metric Learning (1/2) Gunosyのパーソナライズを支える技術 -計算モデルとアーキテクチャ編 - http://tech.gunosy.io/entry/personalize-scoring-model
  21. 21. ● ユーザーとアイテムを同じ次元の空間に写像 ● あるユーザとユーザが高く評価したアイテムがより近くなるように 距離を学習することで、近似最近傍探索のアルゴリズムを適用可能 Collaborative Metric Learning http://www.cs.cornell.edu/~ylongqi/paper/HsiehYCLBE17.pdf Collaborative Metric Learning (2/2)
  22. 22. 1. 推薦アルゴリズムの変遷 2. Amebaにおける推薦基盤の現状とこれから 目次
  23. 23. Amebaにおける各種推薦
  24. 24. ● Patriotと呼ばれるHadoopのデータ解析基盤上で大規模データを活用し、 各種サービス向けに協調フィルタリングを主とした推薦機能を提供 Amebaにおける推薦基盤について 行動ログ
  25. 25. ● 新規サービスの導入コストや運用コストの削減を目的に 独自のバッチフレームワークを開発 ● よいフレームワークとは ○ 柔軟性 ○ 読むべきコードの最小化 ○ 安全 ● 柔軟性と読むべきコードの最小化を同時に達成しようとすると、 ドメイン特化にならざるを得ない 推薦特化のバッチフレームワークについて (1/4) ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく https://www.slideshare.net/cho45/yapc-asia-2011
  26. 26. ● ジョブ ○ タスクを組み合わせた一連の処理の枠組み ○ 推薦ジョブ、推薦元データ取得ジョブなど ● タスク ○ データの読み込みや書き出しなど、 機能で分割された処理の単位 ■ Reader, Recommender, Writer,... ● レシピ ○ ジョブの中身を形成する設定ファイル ■ データソースや推薦アルゴリズムの選択 ■ YAML形式で管理 推薦特化のバッチフレームワークについて (2/4)
  27. 27. ● 推薦ジョブ ○ データを読み込み、(必要に応じて)加工し、推薦結果を作成し、 書き出すという一連の流れはサービスごとで同じ ○ サービス依存のビジネスロジックは Service Processorのタスクに集約 ○ 新規サービス導入時はService Processorの実装のみ注力すればよい 推薦特化のバッチフレームワークについて (3/4)
  28. 28. ● レシピ例 推薦特化のバッチフレームワークについて (4/4) Spark起動設定 データ読み込み設定 サービスのビジネスロジック参照 推薦ロジック設定 データ書き出し設定
  29. 29. ● 推薦アルゴリズムはMFが主流、一部でFMやItem2Vecを 試験的に導入 ● 基本的にバッチ処理で推薦結果を作成しているため、 更新性の担保が課題 Amebaの推薦基盤の現状
  30. 30. ● RNN化、リアルタイム化に向けて色々と構想段階 ● 課題 ○ アイテムのベクトル化(分散表現)をどうするか? ■ サービスによってアイテムのフォーマットが全然違う ■ 違いを吸収するレイヤーが必要 ○ モデルの更新フローや管理周りの整備 ○ 新着アイテムやユーザの検知周りの整備 ○ etc Amebaの推薦基盤のこれから
  31. 31. ● 推薦アルゴリズム ○ 行列分解の手法からRNNへトレンドがシフト ○ 行動履歴だけでなく、ユーザやアイテムの属性やコンテキストの 情報をいかにモデルに組み込めるかが重要に ● Amebaの推薦基盤 ○ 推薦特化のバッチフレームワーク、A/Bテストや レポーティング機能 ○ バッチ処理がメイン -> リアルタイム化へ ○ MFやFM -> RNN化へ まとめ
  32. 32. ご清聴ありがとうございました

×