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.

協調フィルタリング入門

17,286 views

Published on

機械学習とかの知識を全く持たないエンジニアさん向けの導入資料です。

Published in: Data & Analytics

協調フィルタリング入門

  1. 1. 協調フィルタリング入門 牧山 幸史
  2. 2. 推薦(レコメンド) • 推薦方法は大きく2つに分類される – 内容ベースフィルタリング – 協調フィルタリング
  3. 3. 推薦(レコメンド) • 推薦方法は大きく2つに分類される • 例:レンタルビデオ店 – ファンである監督、好みのジャンルを利用者 に尋ねて、その条件に合ったものを選ぶ ⇒ 内容ベースフィルタリング – 映画の趣味が似ている知り合いに、面白かっ た映画を教えてもらう ⇒ 協調フィルタリング
  4. 4. 内容ベースフィルタリング 利用者 推薦システム • SFが好き • スピルバーグ • 1990年代 アイテム データベース ジュラシック パ-ク ・スピルバーグ ・1993年 スタ- ウォーズ ・ルーカス ・1977年
  5. 5. 協調フィルタリング 利用者 推薦システム • SFが好き • スピルバーグ • 1990年代 ジュラシック パ-ク スタ- ウォーズ キルビル • SFが好き • スピルバーグ • 1990年代 • SFが好き • ルーカス • 2000年代 • アクション • タランティーノ • 2000年代
  6. 6. 比較 協調フィルタ 内容ベース セレンディピティ ○ × ドメイン知識 ○:不要 ×:必要 Cold-start 問題 × △ 利用者数 ×:多数必要 ○:少数可 被覆率 × ○ 類似アイテム × ○ 少数派の利用者 × ○
  7. 7. 推薦(レコメンド) • 推薦方法は大きく2つに分類される – 内容ベースフィルタリング – 協調フィルタリング • 今回使用する手法は協調フィルタリング • ここからは、協調フィルタリングについ て詳しく見ていく
  8. 8. 協調フィルタリング 商品1 商品2 商品3 商品4 Aさん ○購入 ○購入 ×未購入 ○購入 Bさん ○購入 ○購入 ×未購入 ??? Bさんは商品4を購入しそう! ⇒ レコメンドしよう! 基本的な考え方
  9. 9. 協調フィルタリング D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 A 1 1 0 0 0 1 0 0 0 0 0.17 B 0 0 1 1 0 0 0 0 0 1 -0.7 C 1 0 0 0 1 0 0 0 1 1 1.0 D 0 0 0 1 1 0 0 1 1 0 0.17 E 1 0 0 0 0 0 0 1 0 0 0.61 X 1 0 0 0 1 ??? ??? ??? ??? ??? 1=購入(好き) 0=未購入(嫌い) 嗜好データ
  10. 10. 協調フィルタリング D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 A 1 1 0 0 0 1 0 0 0 0 0.17 B 0 0 1 1 0 0 0 0 0 1 -0.7 C 1 0 0 0 1 0 0 0 1 1 1.0 D 0 0 0 1 1 0 0 1 1 0 0.17 E 1 0 0 0 0 0 0 1 0 0 0.61 X 1 0 0 0 1 ??? ??? ??? ??? ??? 0 0 1 1 1 Xと似ているユーザ Xと似ているユーザが 買っている商品
  11. 11. • 購入していないのは、嫌いだから? • 閲覧すらしていないかもしれない • 閲覧データを追加する
  12. 12. 協調フィルタリング D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 A 1 1 0 0 0 1 - - - - 0.17 B - - 1 1 0 - 0 0 0 1 -1 C 1 0 0 0 1 0 0 - 1 1 1 D - - 0 1 1 0 0 1 1 0 0.5 E 1 0 0 0 0 - - 1 0 - 0.61 X 1 0 0 0 1 - - - - - 1 =購入 0 =閲覧したが未購入 -=閲覧していない
  13. 13. 協調フィルタリング D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 A 1 1 0 0 0 1 - - - - 0.17 B - - 1 1 0 - 0 0 0 1 -1 C 1 0 0 0 1 0 0 - 1 1 1 D - - 0 1 1 0 0 1 1 0 0.5 E 1 0 0 0 0 - - 1 0 - 0.61 X 1 0 0 0 1 - - - - - 0 0 2 2 1 Xと似ているユーザが 買っている商品
  14. 14. 協調フィルタリング • ユーザの嗜好データを用いてレコメンドできた • 手順 1. ユーザの嗜好データを取得する 2. 嗜好データに基づき、ユーザ間の類似度を算出 3. ターゲットのユーザに対して、似ているユーザ を抽出 4. 似ているユーザが購入している商品をレコメン ド
  15. 15. 協調フィルタリングの特長 • ドメイン知識を必要としない • 異なるジャンルをまたいだ推薦ができる • 利用者が多い場合に有利 • 商品が頻繁に入れ替わる場合は不利 ⇒ × Cold-Start 問題
  16. 16. 問題点 • 全ての商品をカバーできない ⇒ レコメンドに出てこない商品が存在 • 類似品をレコメンドする ⇒ 色違い・サイズ違いなど • 少数派問題 ⇒ 類似した嗜好の人がいなければ、嗜好を予測 できない
  17. 17. Cold-Start 問題 • 新しい商品が推薦されない – 誰も購入していない商品は推薦されない • 新しいユーザに推薦できない – 登録してすぐのユーザは行動履歴が少ないた め、類似ユーザを見つけることができない
  18. 18. Cold-Start 問題 • 新しいユーザに推薦できない • 解決案 – アイテム間型協調フィルタリング – クラスタリングベース協調フィルタリング • [Xue 05] “Scalable Collaborative Filtering Using Cluster-based Smoothing”
  19. 19. アイテム間型 協調フィルタリング D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 A 1 1 0 0 0 1 - - - - B - - 1 1 0 - 0 0 0 1 C 1 0 0 0 1 0 0 - 1 1 D - - 0 1 1 0 0 1 1 0 E 1 0 0 0 0 - - 1 0 - X 1 0 0 0 1 - - - - - 0.7 0.1 0.4 0.5 1.0 0.3 0.2 0.8 0.9 0.6 現在閲覧している商品に対して 商品(アイテム)間の類似度を計算し、 類似度の高いものを推薦する
  20. 20. アイテム間型 協調フィルタリング • 欠点 – すべてのユーザに同じ商品が推薦される • 解決案 – ユーザ間協調フィルタリングの結果と混ぜる • どう混ぜる? – [Sawar 01] “ItemBased Collaborative Filtering Recommendation Algorithms”
  21. 21. 手順
  22. 22. 協調フィルタリング • ユーザの嗜好データを用いてレコメンドできた • 手順 1. ユーザの嗜好データを取得する 2. 嗜好データに基づき、ユーザ間の類似度を算出 3. ターゲットのユーザに対して、似ているユーザ を抽出 4. 似ているユーザが購入している商品をレコメン ド
  23. 23. 1. 嗜好データの獲得 • 明示的データ獲得 – ユーザに明示的に評価させる – YouTube のグッド – Amazon の星 • 暗黙的データ獲得 – 自動的に取得できる情報のみ使用 – 閲覧データ、購買データなど
  24. 24. 1. 嗜好データの獲得 明示的 暗黙的 データ量 ×:少ない ○:多い データの正確さ ○:正確 ×:不正確 未評価と不支持 の区別 ○:明確 ×:不明瞭 利用者の認知度 ○:認知 ×:不認知
  25. 25. 暗黙的データ [Nichlos 97] 1. Purchase 2. Assess 3. Repeated Use 4. Save/Print 5. Delete 6. Refer 7. Reply 8. Mark 9. Terminate Search 10. Examine/Read 11. Consider 12. Glimpse 13. Associate 14. Query
  26. 26. 2. ユーザ間の類似度算出 • 類似度の種類 – ピアソン相関係数 – 強制ピアソン相関係数 – スピアマン順位相関係数 – ケンドールの τ 相関係数 – コサイン類似度 – 調整済みコサイン類似度
  27. 27. 3. 類似ユーザの抽出 • 試行錯誤が必要 – 上位 100 人 – 類似度 0.5 以上
  28. 28. 4. 商品のレコメンド • ユーザ X に対する商品の評価値を算出 – 絶対評価 or 相対評価 – 類似度による重みづけ
  29. 29. チューニング
  30. 30. チューニング • 様々な選択肢から、精度の良くなるもの を選び出すことをチューニングと呼ぶ
  31. 31. チューニング • パラメータを決めるには、実際やってみ るしかない? • パラメータの組み合わせは膨大 • すべてやってみることはできない • 実際に適用しなくても大体わかる方法 ⇒ クロスバリデーション
  32. 32. クロスバリデーション • 現在取得できているデータを「モデル構 築用」と「評価用」に分ける • 「モデル構築用」だけを使ってモデルを 作成し「評価用」でモデルの精度を評価 する モデル構築用_______評価用
  33. 33. チューニング • クロスバリデーションにより良さそうな モデルを 1 ~ 3 個までしぼり、ユーザー テストにかけて評価する • 評価方法:A/B テスト
  34. 34. A/Bテストについて • レコメンドエンジンを使うことによって、 売り上げが伸びるか? • ユーザをランダムにレコメンドあり/なし のページに振り分け、購入回数・購入金 額を比較する ⇒ A/B テスト
  35. 35. 参考 • 神嶌敏弘「推薦システムのアルゴリズム」 – http://www.kamishima.net/archive/recsysdo c.pdf • 協調フィルタリングとは(株式会社ALBERT) – http://www.albert2005.co.jp/technology/rec om/c_filtering.html • 協調フィルタリングについてまとめてみた。 (Analyze IT.) – http://d.hatena.ne.jp/EulerDijkstra/20130407 /1365349866

×