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.

Introduction to Recommender Systems 2012.1.30 Zansa #3

3,792 views

Published on

2012.1.30 に開催された第3回 Zansa 勉強会の「Introduction to Recommender Systems」発表資料です。

Published in: Technology
  • Be the first to comment

Introduction to Recommender Systems 2012.1.30 Zansa #3

  1. 1. Introduction toRecommenderSystemsZansa #3 2012.1.30 at D2 CommunicationsKOMIYA Atsushi (@komiya_atsushi)
  2. 2. Agenda1. 自己紹介&本日の発表について2. レコメンデーションとは?3. レコメンデーションを実現する技術4. 実サービスへの応用5. 本日の発表のまとめ
  3. 3. 1. 自己紹介 &本日の発表について
  4. 4. 自己紹介・バックグラウンド• 名前 / Twitter ID • 小宮 篤史(@komiya_atsushi)• おしごと • Web / RIA エンジニア @ 中小 SIer • レコメンデーション関連やらテキストマイ ニング的な研究開発 ”支援” をしてます• 学部・院時代 • 情報理論・情報源符号化(データ圧縮)の 研究をしてました
  5. 5. 本日の発表の目的・ねらい• 「レコメンデーション」を正しく理解 していただき、よりよいサービス提供 に貢献したい• 何も考えずに「Mahout 使えば簡単だ よね」と言う輩を一人でも減らしたい • あ、Mahout はいいプロダクトですよ
  6. 6. おことわり• 本勉強会で発表する内容は、主観的な 意見・見解が多分に含まれています• 所属する会社・組織の意見・見解とは 無関係であることはもちろんのこと、 業界の一般的な意見・見解でもないこ とにご注意ください • あくまでも一個人の意見です
  7. 7. 2.レコメンデーションとは?
  8. 8. 「レコメンデーション」• 意味:「推薦」「おすすめ」• サービスを利用するユーザにとって 有用・有益・価値のある情報を、 サービス側からユーザに提示すること• 「情報フィルタリング」技術の応用 • たくさんある情報の中から、価値のある 情報を抽出するしくみ • 「価値の有無」はユーザ毎に異なる
  9. 9. Amazonにおける商品レコメンデーションの例
  10. 10. Amazonにおける商品レコメンデーションの例
  11. 11. asahi.comにおける関連記事レコメンデーションの例
  12. 12. asahi.comにおける関連記事レコメンデーションの例
  13. 13. last.fmにおけるアーティストのレコメンデーション例
  14. 14. last.fmにおけるアーティストのレコメンデーション例
  15. 15. いろんな「レコメンデーション」• 「アイテム」の推薦 • ECサイト(例:Amazon) • 販売している「商品」を推薦する • ニュースサイト(例:asahi.com) • 購読している記事の「関連記事」を推薦する • 音楽関連サービス(例:last.fm) • 「アーティスト」や「曲」を推薦する• 「ユーザ」の推薦 • 各種 SNS(Twitter, Facebook…) • リンクレコメンデーション
  16. 16. いろんな「レコメンデーション」• 「アイテム」の推薦 • ECサイト(例:Amazon) • 販売している「商品」を推薦する • ニュースサイト(例:asahi.com) • 購読している記事の「関連記事」を推薦する • 音楽関連サービス(例:last.fm) • 「アーティスト」や「曲」を推薦する• 「ユーザ」の推薦 今回お話するのは • 各種 SNS(Twitter, Facebook…) こちらです • リンクレコメンデーション
  17. 17. 何のために「レコメンデーション」するのか?• サービス提供サイド • 売り上げをアップさせたい • 興味のありそうな商品を提示することで、ユー ザの購入機会・意欲を増やす • ユーザの興味を開拓し、優良顧客に変えていく • PV 数を稼ぐことで、広告収入の増加を見込む• ユーザサイド • セレンディピティ(幸運を掴み取る能力) • いままで知り得なかった「情報」を知ることが できる • 新たな「興味」を発掘することができる
  18. 18. レコメンデーションの精度・性能を測るには?• 定性的評価 • 被験者にレコメンデーション結果の良し悪 しを評価してもらう• 定量的評価 • 正解アイテムの数に着目する (Precision, Recall) • 評点(レーティング)の誤差に着目する (MAE, RMSE) • レコメンデーション結果の提示順序を 含めた質を測る (MAP, nDCG)
  19. 19. Precision, Recall (適合率、再現率)• 定義 • N…レコメンドされたアイテムの集合 • C…ユーザにとっての正解アイテムの集合 • R…N に含まれる正解アイテムの集合 ������ • ������������������������������������������������������ = ������ ������ • ������������������������������������ = ������
  20. 20. MAE, RMSE(Mean absolute error, Root mean square error)• 定義 • ������…アイテムの個数 • ������������ …アイテム i に対する予測評点 • ������������ …アイテム i に対するユーザの評点 1 ������ • ������������������ = ������������ − ������������ ������ ������ (������������ −������������ )2 • ������������������������ = ������
  21. 21. MAP (Mean average precision)• 定義 • ������(������) … レコメンデーション結果の上位 k 個 における適合率 • ������������������(������) … レコメンデーション結果の上位から k 番目のアイテムが正解の場合に 1、不正解 なら 0 • ������������������������(������) … ユーザ u の平均適合率 ������ ������=1(������(������) × ������������������(������)) ������������������������ ������ = ������ ������∈������ ������������������������(������) • ������������������ = ������
  22. 22. 2. レコメンデーションを 実現する技術
  23. 23. 言葉の定義• アイテム • ユーザにより購入・消費される商品や コンテンツ • レコメンデーションの対象となる• ユーザ • アイテムを購入・消費する存在• 評点 • レーティング、点数(Amazon の星の数)• アクティブユーザ • アイテムのレコメンデーションを受けるユーザ
  24. 24. レコメンデーションを実現するには?• ある「アイテム」に似ているほかの 「アイテム」を探し出す • アクティブユーザが見ているアイテムに 似ているアイテムを、レコメンドする• アクティブユーザに似た(行動をとる) ほかのユーザを探し出す • アクティブユーザに似たユーザが購入・ 消費したアイテムを、レコメンドする
  25. 25. レコメンデーションに利用できる情報• アイテムそのものの情報(内容) • ニュースの記事• アイテムのメタデータ • 【例:書籍】タイトル、著者、ジャンル…• ユーザ属性 • 年齢、性別、家族構成、居住地、趣味…• ユーザの行動履歴 • 「ユーザ」と「アイテム」の関係性 • レーティング、購買、視聴、閲覧履歴…
  26. 26. 二つのアプローチ• コンテンツベース • アイテムそのものの内容やメタデータを利用し、 類似性・関連性を計算する • レコメンデーション結果がありきたりになりがち• 協調フィルタリングベース • ユーザの行動履歴を利用し、類似度を計算する • 評点に基づく行動履歴であれば、類似度をもとに、 アクティブユーザが付与するであろう予測評点を 計算する • ユーザベースの手法とアイテムベースの 手法が存在する
  27. 27. コンテンツベース・レコメンデーションの例 「探偵ガリレオ」 著者:東野 圭吾 ジャンル:ミステリー、探偵モノ
  28. 28. コンテンツベース・レコメンデーションの例 「探偵ガリレオ」 著者:東野 圭吾 ジャンル:ミステリー、探偵モノ 容疑者Xの献身 さまよう刃 八つ墓村(シリーズが同じ) (著者が同じ) (ジャンルが同じ)
  29. 29. 協調フィルタリングユーザベースとアイテムベース (1/2)• ユーザベース • ユーザを中心に考え、すべてのユーザ間 の類似度を行動履歴をもとに算出する • 算出された類似度をもとに、特に類似度 の高いユーザの持つアイテムを推薦する• アイテムベース • アイテムを中心に考え、すべてのアイテ ム間の類似度を、ユーザの行動履歴をも とに算出する
  30. 30. 協調フィルタリングユーザベースとアイテムベース (2/2) 徳川 松平 山内 坂本探偵ガリレオ 購入 購入容疑者Xの献身 購入 購入 購入さまよう刃 購入 購入八つ墓村 購入 購入• ユーザベースだと… • 「徳川」と「松平」は二つの同じ商品を購入しているから、 二人のユーザは類似しているだろう• アイテムベースだと… • 「探偵ガリレオ」と「容疑者Xの献身」を両方とも購入して いる二人のユーザがいるから、二つのアイテムは類似してい るだろう
  31. 31. ユーザベースの協調フィルタリング (1/2)ユーザ間の類似度を算出する• 定義 • ������������������ … ユーザ a とユーザ u の行動履歴に共起するアイ テムの集合 • ������������������ … ユーザ u がアイテム i に対して付与する評点• コサイン類似度 (Cosine similarity) ������∈������������������ ������������������ ������������������ • ������������������ = 2 ������������������ 2 ������������������ ������∈������������������ ������∈������������������• ピアソン相関係数 (Pearson correlation) ������∈������������������ (������������������ −������������ )(������������������ −������������ ) • ������������������ = 2 2 ������∈������������������ ������������������ −������������ ������∈������������������ ������������������ −������������
  32. 32. ユーザベースの協調フィルタリング (2/2)予測評点を計算する• 定義 • ������(������, ������) … ユーザ a に類似しており、アイテ ム i を評点づけしているユーザの集合• 評点の予測値算出式 • コサイン類似度 ������∈������(������,������) ������������������ ������������������ • ������′������������ = ������∈������(������,������) ������������������ • ピアソン相関係数 ������∈������(������,������) ������������������ (������������������ −������������ ) • ������′������������ = ������������ + ������∈������(������,������) ������������������
  33. 33. ユーザベース協調フィルタリングの例 (1/3)サンプルデータ映画タイトル 徳川 松平 山内ロード・オブ・ザ・リング ★★★★★ ★★★★★ ★ハリー・ポッター ★★★★ ★★★★★ ★★フォレスト・ガンプ ★★★ ★★★ ★★★ダイ・ハード ★★ ★ ★★★★ソウ ★ ★ ★★★★★13日の金曜日 ? ★ ★★★★★ナルニア国物語 ? ★★★★★ ★ 徳川さんにおすすめするべき 映画はどちらが好ましいか? 予測評点を算出して 比較してみましょう
  34. 34. ユーザベース協調フィルタリングの例 (2/3)ユーザ間類似度を計算する映画タイトル 徳川 松平 山内ロード・オブ・ザ・リング ★★★★★ ★★★★★ ★ハリー・ポッター ★★★★ ★★★★★ ★★フォレスト・ガンプ ★★★ ★★★ ★★★ダイ・ハード ★★ 徳川さんと行動履歴が類似する ★ ★★★★ ユーザは松平さん。ソウ ★ ★ ★★★★★ ピアソン相関係数の方がより13日の金曜日 ? ★ ★★★★★ 明らかな結果となる。ナルニア国物語 ? ★★★★★ ★徳川さんとの類似度(コサイン類似度) 0.984 0.636徳川さんとの類似度(ピアソン相関係数) 0.949 -1.000
  35. 35. ユーザベース協調フィルタリングの例 (3/3)評点予測値を計算する 映画タイトル 松平 山内 13日の金曜日 ★ ★★★★★ ナルニア国物語 ★★★★★ ★ 徳川さんとの類似度(コサイン) 0.984 0.636 徳川さんとの類似度(ピアソン) 0.949 -1.000 映画タイトル 予測値 予測値 (コサイン) (ピアソン) 徳川さんには 13日の金曜日 2.570 1.000 「ナルニア国物語」 ナルニア国物語 3.429 5.000 がオススメ!
  36. 36. 協調フィルタリングのいいところ• アイテムのメタデータなどが要らない • メタデータを充実させるにはコストや手 間がかかる• 「ありきたり」ではないレコメンデー ションができる • 常識にとらわれない、意外性のあるレコ メンデーション
  37. 37. 協調フィルタリングのダメなところ• 計算量・オンライン処理 • ユーザ・アイテムの規模が大きくなると、ナイーブ実装では 計算量的にオンライン処理ができなくなる• コールドスタート問題 • 十分な行動履歴がないと、まともな推薦ができない • サービス開始直後や、新規ユーザ・新規アイテムの登録時に 発生する • コンテンツベースの手法と組み合わせて改善可能• スパース問題 • アイテム数が多すぎて、ユーザ間・アイテム間の関係性が疎 になってしまう • Random walk を取り入れることで改善可能 http://www.slideshare.net/komiyaatsushi/tokyo-webmining- 8cfrwr
  38. 38. そのほかの協調フィルタリング手法• アイテムベース • Amazon の手法だと、オフラインの前処理が 必要になるものの、オンラインでのレコメ ンデーションが可能になる • http://blog.k11i.biz/2011/06/amazon-item-to-item- cf.html• Slope one • オンラインでのレコメンデーションが可能 で、行動履歴の変更にもすぐに追従できる • http://lemire.me/fr/documents/publications/lemir emaclachlan_sdm05.pdf
  39. 39. Apache Mahout協調フィルタリングの各種実装を提供• スケーラブルであることを目指した 機械学習ライブラリ• 協調フィルタリングの下記実装を提供する • ユーザベース • アイテムベース • Slope One• 独自に協調フィルタリングを実装する前に、 まず利用を検討してみましょう
  40. 40. 3. 実サービスへの適用 ※注意!ここから先の説明は、発表者の主観が特に 強く現れていますのでご注意ください。
  41. 41. 実サービスに適用するその前に!• 「Mahout 使えば(レコメンデーションな んて)簡単だよね」 • 本当にそうでしょうか? • 機械が計算して出した予測(レコメンデー ション)を、そのまま信じてユーザに提示 していいの? ユーザは本当に喜ぶの?• アイテムの内容やユーザの嗜好を考慮して、 結果を取捨選択したり、レコメンデーショ ンエンジンのチューニングをする必要があ る
  42. 42. 実サービスに適用する上で気をつけるべきこと• ユーザ視点 • レコメンドされてうれしいもの • ユーザの気分を損なわせない • レコメンデーションの理由付け• サービス提供者視点 • レコメンドする状況・タイミング
  43. 43. レコメンドされてうれしいもの (1/2)• レコメンドされたアイテムが、アクティブ ユーザにとって妥当か? • アクション映画大好きなユーザに、 「ダイ・ハード」を推薦したとして、果たして喜 ぶだろうか?• レコメンデーションの妥当性とは? • 「見当違い」であってはならない • でも、「当たり前」であってもダメ• アクティブユーザにとって「意外」だったり 「新鮮」なレコメンデーションであるべき
  44. 44. レコメンドされてうれしいもの (2/2)• シリーズもののアイテム(コミック、TV ドラマの DVD など)を推薦する場合 • 途中まで購入・消費しているユーザに、最 終巻・最終回のアイテムを推薦する? • まったく購入・消費していないユーザに対 して、シリーズ途中の(人気の高い)アイ テムを推薦する?• ユーザの購入・消費状況を考慮したレコメ ンデーションをすることが必要
  45. 45. ユーザの気分を損なわせない• アイテムによっては、ターゲットとしてい る客層が存在する • 成人男性向け、幼児・キッズ向け…• 客層を無視してレコメンデーションをして しまうと • ユーザの気分を不快にさせてしまう • 「レコメンデーション」というシステムに 悪印象を与えてしまう• ユーザのプロファイルを参考に、レコメン デーション結果をフィルタリングする
  46. 46. レコメンデーションの理由付け• 協調フィルタリングでは、ときに突飛なレコ メンデーションが行われてしまうことも • ユーザにしてみると、なぜレコメンドされたのか がわからず、自分に価値のあるアイテムかどうか 判断できない• レコメンデーションの妥当性・納得感をユー ザに与える「理由」「背景」を添えることで、 突飛な印象を幾分和らげることができる • 「この商品を買った人は、こんな商品も買ってい ます」 • 「この商品を見た後に買っているのは?」
  47. 47. レコメンドする状況・タイミング• サービス提供者として、どの状況でレコメ ンデーションをしたいのか? • サービスにユーザがログインしているとき だけ? • サインアップ前のユーザに対してもレコメ ンデーションしたい?• 状況・シーンにより、利用できる手法が限 られる • 前者の状況であればユーザベースの手法が 使えるが、後者はアイテムベースの手法し か使えない
  48. 48. 5. 本日の発表のまとめ
  49. 49. 今日お話しした内容レコメンデーション … ユーザにとって価値のある情報を提示することコンテンツベースのレコメンデーション … アイテムの内容やメタデータを利用して、アイテムを推薦する協調フィルタリング … ユーザの行動履歴を利用して、類似するユーザ・アイテムを探し出す ユーザベースの手法 … ユーザ間の類似度を計算し、類似するユーザ が消費したアイテムを推薦する アイテムベースの手法 … アイテム間の類似度を計算し、アクティブ ユーザが消費したアイテムに類似する別のアイテムを推薦する
  50. 50. ご清聴 ありがとうございました

×