ソーシャルグラフを活用したレコメンデーション - レコメンデーション最前線(?) - #TokyoWebmining 19th

8,810 views

Published on

2012/06/23(土)に開催された「第19回 データマイニング+WEB @東京 ( #TokyoWebmining 19th)-データ徹底活用・機械学習 祭り-」での発表資料です。


[概要]
ソーシャルグラフ (Social Network) を活用したレコメンデーションをテーマとして、アカデミックな分野における昨今(最前線?)の研究内容をご紹介します。


[参考資料]
Transitive Node Similarity for Link Prediction in Social Networks with Positive and Negative Links
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.186.2975&rep=rep1&type=pdf
リンク予測問題に対する手法として、FriendTNS アルゴリズムを提案している論文です。

Product Recommendation and Rating Prediction based on Multi-modal Social Networks
http://delab.csd.auth.gr/papers/recsys044-symeonidis.pdf
FriendTNS アルゴリズムを利用し、ソーシャルグラフをつかったレコメンデーションを提案している論文です。

Zansa 第3回勉強会 : Introduction to Recommender Systems
http://www.slideshare.net/komiyaatsushi/introduction-to-recommender-systems-2012130-zansa-3
レコメンデーション入門を目的として作った説明資料です。

Published in: Technology
0 Comments
32 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,810
On SlideShare
0
From Embeds
0
Number of Embeds
4,140
Actions
Shares
0
Downloads
0
Comments
0
Likes
32
Embeds 0
No embeds

No notes for slide

ソーシャルグラフを活用したレコメンデーション - レコメンデーション最前線(?) - #TokyoWebmining 19th

  1. 1. ソーシャルグラフを活用したレコメンデーション- レコメンデーション最前線 (?) -TokyoWebmining #19 2012.6.23KOMIYA Atsushi (@komiya_atsushi) 1
  2. 2. Agenda1. 自己紹介&今日の発表について2. 基礎知識3. FriendTNS によるリンク予測4. ソーシャルグラフをレコメンドに 活かす(Social-Union)5. まとめ 2
  3. 3. Agenda1. 自己紹介&今日の発表について2. 基礎知識3. FriendTNS によるリンク予測4. ソーシャルグラフをレコメンドに 活かす(Social-Union)5. まとめ 3
  4. 4. 自己紹介•小宮 篤史 •@komiya_atsushi •http://k11i.biz/•バックグラウンド •中小 SIer •業務系 Web エンジニア (?) •レコメンドエンジンの研究開発支援 4
  5. 5. 今日の発表について 5
  6. 6. 今日の発表について 6
  7. 7. 今日の発表について•Recommender Systems (RecSys) の ‘10, ’11 で発表された論文をご紹介する 形でお話します 7
  8. 8. 今日の発表について•Recommender Systems (RecSys) の ‘10, ’11 で発表された論文をご紹介する 形でお話します•ソーシャルグラフ (Social Network) を 活用したレコメンデーションについて 発表します•キーワード •リンク予測 •ソーシャルグラフ 8
  9. 9. 発表内容のサマリー•ユーザーベースのレコメンデーション•協調フィルタリングがベース•リンク予測のアルゴリズムを応用•ソーシャルグラフ上におけるユーザの 類似度を算出•協調フィルタリングによるユーザの 類似度と適度に混ぜ合わせる 9
  10. 10. 発表内容のサマリー•ユーザーベースのレコメンデーション•協調フィルタリングがベース•リンク予測のアルゴリズムを応用•ソーシャルグラフ上におけるユーザの 類似度を算出•協調フィルタリングによるユーザの 類似度と適度に混ぜ合わせる 10
  11. 11. Agenda1. 自己紹介&今日の発表について2. 基礎知識3. FriendTNS によるリンク予測4. ソーシャルグラフをレコメンドに 活かす(Social-Union)5. まとめ 11
  12. 12. 言葉の定義•アイテム • ユーザにより購入・消費される商品、 コンテンツなど • 推薦の対象にもなる•ユーザ • アイテムを購入・消費する存在 • サービスを利用する人•アクティブユーザ • 推薦を受ける対象のユーザ•行動履歴 • アイテムとユーザとの間の関係 • 評価・評点、購買、視聴、閲覧… 12
  13. 13. 概要レコメンデーションアイテムのレコメンデーション 協調フィルタリング ユーザーベース アイテムベース コンテンツベースユーザのレコメンデーション(リンク予測) 13
  14. 14. 概要レコメンデーションアイテムのレコメンデーション 協調フィルタリング ユーザーベース アイテムベース コンテンツベースユーザのレコメンデーション(リンク予測) 14
  15. 15. レコメンデーション 既知の情報をもとに利用者の嗜好・好みを推定する利用者にとって価値ある情報を 予測して提示(おすすめ)する 15
  16. 16. レコメンデーションの例 商品写真 16
  17. 17. レコメンデーションの例 商品写真 商品写真 商品写真 商品写真 17
  18. 18. 協調フィルタリング•ユーザの行動履歴を利用する•「もの」同士の類似度を計算する •ユーザーベース / アイテムベース •コサイン類似度、ピアソン相関係数…•ユーザが購買する可能性の高い アイテムを推薦する •類似度を基にして、アイテムごとに スコアを算出する 18
  19. 19. ユーザベースの協調フィルタリングショッピングサイト 商品写真商品写真 商品写真 商品写真 商品写真 Monstersナウシカ ラピュタ 夏目友人帳 蛍火の杜へ Inc. 頼朝さん 義経さん 清盛さん 19
  20. 20. ユーザベースの協調フィルタリングショッピングサイト 商品写真商品写真 商品写真 商品写真 商品写真 Monstersナウシカ ラピュタ 夏目友人帳 蛍火の杜へ Inc. 頼朝さん 義経さん 清盛さん 20
  21. 21. ユーザベースの協調フィルタリングショッピングサイト 商品写真商品写真 商品写真 商品写真 商品写真 Monstersナウシカ ラピュタ 夏目友人帳 蛍火の杜へ Inc. 頼朝さん 義経さん 清盛さん 21
  22. 22. ユーザベースの協調フィルタリングショッピングサイト 商品写真商品写真 商品写真 商品写真 商品写真 Monstersナウシカ ラピュタ 夏目友人帳 蛍火の杜へ Inc. 似てる! 頼朝さん 義経さん 清盛さん 22
  23. 23. ユーザベースの協調フィルタリングショッピングサイト 商品写真商品写真 商品写真 商品写真 商品写真 Monstersナウシカ ラピュタ 夏目友人帳 蛍火の杜へ Inc. ラピュタは いかがですか? 頼朝さん 義経さん 清盛さん 23
  24. 24. ユーザベースの協調フィルタリング• 定義 • 𝐼(𝑎, 𝑢) … ユーザ a とユーザ u の行動履歴において共 起するアイテムの集合 • 𝑟(𝑢, 𝑖) … ユーザ u がアイテム i に対して付与する評点 (単純な購買・消費の場合には 0/1 を設定する)• ユーザの類似度計算(コサイン類似度) 𝑖∈𝐼 𝑎,𝑢 𝑟(𝑎,𝑖)∙𝑟(𝑢,𝑖) • 𝑠𝑖𝑚 𝑐 (𝑎, 𝑢) = 𝑖∈𝐼 𝑎,𝑢 𝑟 𝑎,𝑖 2 𝑖∈𝐼 𝑎,𝑢 𝑟 𝑢,𝑖 2 ステップ1• アイテムのスコア計算 𝑢∈𝑁(𝑎,𝑖) 𝑠𝑖𝑚 𝑐 (𝑎,𝑢) 𝑟(𝑢,𝑖) • 𝑟′(𝑎, 𝑖) = 𝑢∈𝑁(𝑎,𝑖) 𝑠𝑖𝑚 𝑐 (𝑎,𝑢) ステップ2 24
  25. 25. ソーシャルグラフ 25
  26. 26. ソーシャルグラフ•人などの「つながり」からなるグラフ •ノード • 人物 • 企業 • キャラクター •リンク(エッジ) • 友達関係、フォロー・フォロワー関係 • コミュニケーション、会話 •例)Facebook, Twitter, mixi… 26
  27. 27. リンク予測(Link prediction)•ソーシャルグラフ上において、新しく 作られるであろうリンクを予測する •SNS 上で友達候補を探す手伝いをする 27
  28. 28. リンク予測(Link prediction)•ソーシャルグラフの構造を利用して リンクを予測する •リンク構造をもとにユーザ(ノード)の 間の類似度を計算する •類似度の高いユーザが新たなリンクを 設ける候補となる 28
  29. 29. リンク予測(Link prediction) b f e a c g d i h 29
  30. 30. リンク予測(Link prediction) b f e a c g d i h 30
  31. 31. リンク予測の具体的な手法(一部)•グラフの局所的特徴に着目 •Jaccard 係数 •CN (Common Neighbors)•グラフ全体を考慮 •RWR (Random Walk with Restarts) •SimRank 31
  32. 32. Jaccard 係数によるリンク予測•ユーザ𝒖 𝒊 と𝒖 𝒋 の間の Jaccard 係数 𝐴(𝑢 𝑖 )∩𝐴(𝑢 𝑗 ) • 𝑱𝒂𝒄𝒄𝒂𝒓𝒅 𝒖 𝒊 , 𝒖 𝒋 = 𝐴(𝑢 𝑖 )∪𝐴(𝑢 𝑗 ) • 𝐴(𝑢 𝑖 ) …ユーザ𝒖 𝒊 とのリンクを有する(隣接 している)ユーザの集合•アクティブユーザからみて Shortest path 的に「友達の友達」に相当するユーザに対 してのみ、Jaccard 係数を計算する • 「友達の友達の友達」は Jaccard 係数が 0 と なる 32
  33. 33. Jaccard 係数によるリンク予測 b f e a c ユーザ a と i の間の Jaccard 係数 𝒃, 𝒄, 𝒅, 𝒆 ∩ 𝒃, 𝒄, g 𝒅 𝟑 𝑱𝒂𝒄𝒄𝒂𝒓𝒅 𝒂, 𝒊 = = 𝒃, 𝒄, 𝒅, 𝒆 ∪ 𝒃, 𝒄, 𝒅 𝟒 d i h 33
  34. 34. RWR (Random Walk with Restarts)によるリンク予測•概要 •アクティブユーザを起点に、ソーシャル グラフ上をランダムウォークする • 各ノードへの遷移確率は同じとする •一定の確率で、アクティブユーザに戻っ てランダムウォークを再開する(restart) •最終的に、各ノードに滞在している確率 を類似度とする 34
  35. 35. Agenda1. 自己紹介&今日の発表について2. 基礎知識3. FriendTNS によるリンク予測4. ソーシャルグラフをレコメンドに 活かす(Social-Union)5. まとめ 35
  36. 36. FriendTNS アルゴリズム•概要 • Jaccard 係数や CN のように局所的特徴を押 さえつつ、RWR などのようにグラフ全体の 特徴も考慮したユーザ類似度計算ができる•構成 • Basic node similarity • アクティブユーザとリンクを有するユーザとの 類似度を計算する • Transitive node similarity • 「友達の友達」以上のユーザとの類似度を計算 する 36
  37. 37. Basic node similarity•ユーザ𝒖 𝒊 と隣接するユーザ𝒖 𝒋 の間の類 似度を算出する 0, (𝑢 𝑗 ∉ 𝐴(𝑢 𝑖 )) • 𝑠𝑖𝑚 𝑏 𝑢 𝑖 , 𝑢 𝑗 = 1 , (𝑢 𝑗 ∈ 𝐴(𝑢 𝑖 )) 𝑑𝑒𝑔(𝑢 𝑖 )+𝑑𝑒𝑔(𝑢 𝑗 )−1 •𝑑𝑒𝑔(𝑢 𝑖 ) …ユーザ𝒖 𝒊 のリンクの次数 ( 𝐴(𝑢 𝑖 ) に等しい)•特徴 •互いに持つリンクの数が少なければ 少ないほど、高い類似度となる 37
  38. 38. Transitive node similarity• Basic node similarity による類似度を利用する• ユーザ𝒖 𝒊 と𝒖 𝒋 の間の shortest path 𝑢 𝑝1 , 𝑢 𝑝2 , . . . 𝑢 𝑝 𝑘+1 を求めて以下を計算する 0, (𝑢 𝑖 から𝑢 𝑗 に至るパスがない場合) • 𝑠𝑖𝑚 𝑡 𝑢 𝑖 , 𝑢 𝑗 = 𝑠𝑖𝑚 𝑏 𝑢 𝑖 , 𝑢 𝑗 , (𝑢 𝑗 ∈ 𝐴(𝑢 𝑖 )) 𝑘 ℎ=1 𝑠𝑖𝑚 𝑏 (𝑢 𝑝ℎ , 𝑢 𝑝ℎ+1 ), (上記以外)• 特徴 • アクティブユーザの「友達」は Basic node similarity の値がそのまま用いられる • アクティブユーザから離れるほどに類似度は低くなる 38
  39. 39. Basic node similarity / Transitive node similarityの計算例 b f e a c g d i h 39
  40. 40. Basic node similarity / Transitive node similarityの計算例 b f e a c g d i h 40
  41. 41. Basic node similarity / Transitive node similarityの計算例 a→b→i のパスで、a と i の類似度 を求めると… 𝑠𝑖𝑚 𝑡 𝑎, 𝑖 = 𝑠𝑖𝑚 𝑏 𝑎, 𝑏 ∙ 𝑠𝑖𝑚 𝑏 (𝑏, 𝑖) 1 1 1 1 1 = ∙ = ∙ = b 4 + 2 − 1 2 + 3 − 1 f 5 4 20 e a 1/20 c g d i h 41
  42. 42. Basic node similarity / Transitive node similarityの計算例 b f e a 1/20 c g d i h 42
  43. 43. Basic node similarity / Transitive node similarityの計算例 a→e→h のパスで、a と h の類似 度を求めると… 𝑠𝑖𝑚 𝑡 𝑎, ℎ = 𝑠𝑖𝑚 𝑏 𝑎, 𝑒 ∙ 𝑠𝑖𝑚 𝑏 (𝑒, ℎ) 1 1 1 1 1 = ∙ = ∙ = 4 + 3 − 1 3 + 1 b 1 6 3 18 − f e a 1/18 1/20 c g d i h 43
  44. 44. FriendTNS の計算量・性能•計算量 •空間:𝑂(𝑛 + 𝑚) •時間:𝑂 𝑚 + 𝑛 log 𝑛 •m … エッジ数、n … ユーザ数•性能 •精度(Precision/Recall) • FriendTNS >>> RWR >> CN •計算時間 • CN >> FriendTNS > RWR 44
  45. 45. FriendTNS の計算量・性能•計算量 •空間:𝑂(𝑛 + 𝑚) •時間:𝑂 𝑚 + 𝑛 log 𝑛 •m … エッジ数、n … ユーザ数•性能 Q. リンク予測って •精度(Precision/Recall) 実際に使われているの? • FriendTNS >>> RWR >> CN •計算時間 • CN >> FriendTNS > RWR 45
  46. 46. Agenda1. 自己紹介&今日の発表について2. 基礎知識3. FriendTNS によるリンク予測4. ソーシャルグラフをレコメンドに 活かす(Social-Union)5. まとめ 46
  47. 47. Social-Union アルゴリズム•ユーザ類似度を混ぜ合わせる •FriendTNS (Transitive node similarity)に より得られるソーシャルグラフ上での ユーザ類似度 •協調フィルタリングのユーザ類似度 (コサイン類似度など)•新たに得られたユーザ類似度をもとに、 アイテムのスコア計算を行う •従来の協調フィルタリングと変わらず 47
  48. 48. ユーザベースの協調フィルタリング• 定義 • 𝐼(𝑎, 𝑢) … ユーザ 𝑎 とユーザ 𝑢 の行動履歴において共 起するアイテムの集合 • 𝑟(𝑢, 𝑖) … ユーザ 𝑢 がアイテム𝑖に対して付与する評点 (単純な購買・消費の場合には 0/1 を設定する)• ユーザの類似度計算(コサイン類似度) 𝑟(𝑎,𝑖)∙𝑟(𝑢,𝑖) この式が変わります 𝑟 • 𝑠𝑖𝑚 𝑐 (𝑎, 𝑢) = 𝑟 𝑎,𝑖 𝑖∈𝐼 𝑎,𝑢 𝑖∈𝐼 𝑎,𝑢 2 𝑖∈𝐼 𝑎,𝑢 𝑢,𝑖 2 ステップ1• アイテムのスコア計算 𝑢∈𝑁(𝑎,𝑖) 𝑠𝑖𝑚 𝑐 (𝑎,𝑢) 𝑟(𝑢,𝑖) • 𝑟′(𝑎, 𝑖) = 𝑢∈𝑁(𝑎,𝑖) 𝑠𝑖𝑚 𝑐 (𝑎,𝑢) ステップ2 48
  49. 49. ユーザ類似度の計算方法•ユーザ類似度計算式 • 𝑠𝑖𝑚 𝑢 𝑢 𝑖 , 𝑢 𝑗 = 1 − 𝑎 𝑠𝑖𝑚 𝑡 (𝑢 𝑖 , 𝑢 𝑗 ) + 𝑎 ∙ 𝑠𝑖𝑚 𝑐 (𝑢 𝑖 , 𝑢 𝑗 ) • 𝑠𝑖𝑚 𝑡 (𝑢 𝑖 , 𝑢 𝑗 ) … FriendTNS により得られる ユーザ 𝑢 𝑖 と 𝑢 𝑗 の類似度 • 𝑠𝑖𝑚 𝑐 (𝑢 𝑖 , 𝑢 𝑗 ) … 従来の協調フィルタリングに よるユーザ類似度(コサイン類似度) • 𝑎 … アクティブユーザ 𝑢 𝑖 ごとに設定 される [0,1] の範囲のパラメータ 49
  50. 50. パラメータ a の算出• 定義 • 𝑛 … ユーザ数 • 𝑚 … ソーシャルグラフ上のリンク総数 • 𝐼(𝑢 𝑖 ) … ユーザ𝑢 𝑖 が購買したアイテムの集合 • 𝐼 … すべてのアイテムを含む集合• 計算式 𝑑𝑅 • 𝑎= 𝑑𝐴+𝑑𝑅 𝑙𝑜𝑐𝑎𝑙𝐴 deg 𝑢 𝑖 /𝑛 • 𝑑𝐴 = = 𝑔𝑙𝑜𝑏𝑎𝑙𝐴 𝑚/𝑛2 𝑙𝑜𝑐𝑎𝑙𝑅 𝐼(𝑢 𝑖 ) / 𝐼 • 𝑑𝑅 = = 𝑔𝑙𝑜𝑏𝑎𝑙𝑅 ( 𝑢 𝐼(𝑢) ) / (𝑛∙ 𝐼 ) 50
  51. 51. パラメータ a の算出• 定義 • 𝑛 … ユーザ数 • 𝑚 … ソーシャルグラフ上のリンク総数 • 𝐼(𝑢 𝑖 ) … ユーザ𝑢 𝑖 が購買したアイテムの集合 • 𝐼 … すべてのアイテムを含む集合• 計算式 分子:アクティブユーザのリンク密度 𝑑𝑅 分母:ソーシャルグラフ全体のリンク密度 • 𝑎= 𝑑𝐴+𝑑𝑅 𝑙𝑜𝑐𝑎𝑙𝐴 deg 𝑢 𝑖 /𝑛 • 𝑑𝐴 = = 𝑔𝑙𝑜𝑏𝑎𝑙𝐴 𝑚/𝑛2 𝑙𝑜𝑐𝑎𝑙𝑅 𝐼(𝑢 𝑖 ) / 𝐼 • 𝑑𝑅 = = 𝑔𝑙𝑜𝑏𝑎𝑙𝑅 ( 𝑢 𝐼(𝑢) ) / (𝑛∙ 𝐼 ) 51
  52. 52. パラメータ a の算出• 定義 • 𝑛 … ユーザ数 • 𝑚 … ソーシャルグラフ上のリンク総数 • 𝐼(𝑢 𝑖 ) … ユーザ𝑢 𝑖 が購買したアイテムの集合 • 𝐼 … すべてのアイテムを含む集合• 計算式 分子:アクティブユーザのリンク密度 𝑑𝑅 分母:ソーシャルグラフ全体のリンク密度 • 𝑎= 𝑑𝐴+𝑑𝑅 𝑙𝑜𝑐𝑎𝑙𝐴 deg 𝑢 𝑖 /𝑛 • 𝑑𝐴 = = 分子:アクティブユーザの購買密度 𝑔𝑙𝑜𝑏𝑎𝑙𝐴 𝑚/𝑛2 分母:ユーザ全体の購買密度 𝑙𝑜𝑐𝑎𝑙𝑅 𝐼(𝑢 𝑖 ) / 𝐼 • 𝑑𝑅 = = 𝑔𝑙𝑜𝑏𝑎𝑙𝑅 ( 𝑢 𝐼(𝑢) ) / (𝑛∙ 𝐼 ) 52
  53. 53. Social-Union はどのようなサービスに効果的か?•論文で使用しているデータセットは… 53
  54. 54. Social-Union はどのようなサービスに効果的か?•論文で使用しているデータセットは… 54
  55. 55. Social-Union はどのようなサービスに効果的か?•論文で使用しているデータセットは… どちらも批評に特化した SNS… 55
  56. 56. Social-Union はどのようなサービスに効果的か?•論文で使用しているデータセットは… Q. 他に応用できる場面は ないのだろうか? どちらも批評に特化した SNS… 56
  57. 57. Agenda1. 自己紹介&今日の発表について2. 基礎知識3. FriendTNS によるリンク予測4. ソーシャルグラフをレコメンドに 活かす(Social-Union)5. まとめ 57
  58. 58. まとめ•ユーザーベースのレコメンデーション•協調フィルタリングがベース•リンク予測のアルゴリズムを応用•ソーシャルグラフ上におけるユーザの 類似度を算出 •FriendTNS アルゴリズム•協調フィルタリングによるユーザの 類似度と適度に混ぜ合わせる •Social-Union アルゴリズム 58
  59. 59. ご静聴ありがとうございました! 59
  60. 60. 参考文献•Product Recommendation and Rating Prediction based on Multi-modal Social Networks. • P. Symeonidis, E. Tiakas, and Y. Manolopoulos. • http://delab.csd.auth.gr/papers/recsys044- symeonidis.pdf•Transitive Node Similarity for Link Prediction in Social Networks with Positive and Negative Links. • P. Symeonidis, E. Tiakas, and Y. Manolopoulos. • http://citeseerx.ist.psu.edu/viewdoc/download?doi =10.1.1.186.2975&rep=rep1&type=pdf 60
  61. 61. 参考文献•The Link Prediction Problem for Social Networks. •D. Liben-Nowell and J. Kleinberg. •http://www.cs.cornell.edu/home/kleinber/lin k-pred.pdf 61

×