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.

【補足資料】協調フィルタリングにおける希薄問題の解決法 - Random walk

3,204 views

Published on

2010/11/14 開催の「第8回データマイニング + WEB 勉強会」にて発表させていただいた「協調フィルタリングにおける希薄問題の解決法 – Random walk」に関する補足資料です。元の発表資料は http://slidesha.re/a7IsZ5 です。

Published in: Technology
  • Be the first to comment

【補足資料】協調フィルタリングにおける希薄問題の解決法 - Random walk

  1. 1. 「協調フィルタリングにおける 希薄問題の解決法 - Random walk」 補足資料 2010.11.27 KOMIYA Atsushi ( @komiya_atsushi )
  2. 2.  2010/11/14 開催の「第8回データマイニング + WEB 勉強会」にて発表させていただいた「協調 フィルタリングにおける希薄問題の解決法 – Random walk」に関する補足資料です  発表資料: http://slidesha.re/a7IsZ5  この資料では、Yildirim らの提案法におけるパラ メータ α の役割・効果について解説をしています  以下、説明の都合上、特に表記がない限りは ユーザベースの協調フィルタリング/Random walk を前提に話を進めます 本資料について
  3. 3. 協調フィルタリングにおける Random walk <おさらい>
  4. 4.  Random walk をすることで、直接的でない、間 接的な関連(推移的関連, Transitive association) が確率的に得られる  ソーシャルなユーザの関係に例えると・・・ 「友達の友達は(ちょっと)友達だ」  この推移的関連を協調フィルタリングで利用 することで、以下の効果が期待できる  希薄問題(Sparsity problem)の緩和  推薦されるアイテムの多様化 何のために Random walk を利用して 協調フィルタリングするのか?
  5. 5.  ユーザ間類似度を元に構築した重み付き有向グ ラフ上で、Random walk をする  ノード … ユーザ  エッジ … ユーザ間の類似度を基に算出される遷移確 率を重みとする  ランダムウォークをし続けた結果、あるノードに滞 留している確率をすべてのノードに対し算出する  マルコフ連鎖の定常状態を求める計算に相当  定常状態における確率を、アイテム推薦に利用 する 協調フィルタリングにおける Random walk の基本 次頁以降、サンプルデータを用いて説明します
  6. 6. 協調フィルタリングにおける Random walk の基本 例 (1/5)  サンプルデータ  アイテムに対するユーザごとの評点 アイテム 坂本 武市 西郷 桂 勝 万葉集 5 4 - - - 竹取物語 4 3 - - - 源氏物語 - 1 3 - - 東方見聞録 - - 4 5 4 徒然草 - - - 4 5 東海道中膝栗毛 - - - - 5 このデータを用いて、RW をしてみます
  7. 7.  ユーザ間類似度を算出する  以下はコサイン類似度を利用した結果 協調フィルタリングにおける Random walk の基本 例 (2/5) 坂本 武市 西郷 桂 勝 坂本 1.0000 0.9995 0.0000 0.0000 0.0000 武市 0.9995 1.0000 1.0000 0.0000 0.0000 西郷 0.0000 1.0000 1.0000 1.0000 1.0000 桂 0.0000 0.0000 1.0000 1.0000 0.9756 勝 0.0000 0.0000 1.0000 0.9756 1.0000 ユーザベースのグラフを作るために、 まずはユーザ類似度を算出します
  8. 8.  ユーザ間類似度を基に遷移確率行列を求める  ユーザ i と j の間の類似度: 𝑆𝑖𝑗  ユーザ i から j への遷移確率: 𝑃𝑖𝑗 = 𝑆𝑖𝑗/ 𝑆𝑖𝑘𝑘 協調フィルタリングにおける Random walk の基本 例 (3/5) 坂本 武市 西郷 桂 勝 坂本 0.5001 0.4999 0.0000 0.0000 0.0000 武市 0.3332 0.3334 0.3334 0.0000 0.0000 西郷 0.0000 0.2500 0.2500 0.2500 0.2500 桂 0.0000 0.0000 0.3361 0.3361 0.3279 勝 0.0000 0.0000 0.3361 0.3279 0.3361 「坂本」から 他のユーザに 遷移する確率。 (例)「武市」に は、0.4999の 確率で遷移す る 遷移元ユーザ毎に遷移確率が1となるように調整
  9. 9. 前頁の遷移確率 行列をグラフ化 協調フィルタリングにおける Random walk の基本 例 (4/5) 坂本 武市 西郷 桂 勝 0.5001 0.4999 0.3332 0.3334 0.3334 0.2500 0.2500 0.2500 0.2500 0.3361 0.3361 0.3279 0.3361 0.3279 0.3361 このグラフ上で Random walk します
  10. 10. 協調フィルタリングにおける Random walk の基本 例 (5/5) 坂本 武市 西郷 桂 勝 0.1337 0.2006 0.1990 0.2676 0.1990 RW で得られたこれらの確率値を、類似度同様に 推薦(評点予測値の算出)に利用するのですが… RW により求められた、 各ノードの滞留確率 (マルコフ連鎖の定常状態)
  11. 11. 1. 定常状態における滞留確率は、ユーザに依存しない  個々のユーザの特性が活かされない Random walk を単純に 適用した場合の問題 坂本 武市 西郷 桂 勝 坂本 0.1337 0.2006 0.2676 0.1990 0.1990 武市 0.1337 0.2006 0.2676 0.1990 0.1990 西郷 0.1337 0.2006 0.2676 0.1990 0.1990 桂 0.1337 0.2006 0.2676 0.1990 0.1990 勝 0.1337 0.2006 0.2676 0.1990 0.1990 「坂本」に対する確率は、 誰から見ても、0.1337
  12. 12. 1. 定常状態における滞留確率は、ユーザに依存しない  個々のユーザの特性が活かされない 2. 多くのユーザと関連を持っているユーザほど、確率が高くな りやすい  よく買われているアイテムを多く購入しているユーザなどが該当 Random walk を単純に 適用した場合の問題 坂本 武市 西郷 桂 勝 坂本 0.1337 0.2006 0.2676 0.1990 0.1990 武市 0.1337 0.2006 0.2676 0.1990 0.1990 西郷 0.1337 0.2006 0.2676 0.1990 0.1990 桂 0.1337 0.2006 0.2676 0.1990 0.1990 勝 0.1337 0.2006 0.2676 0.1990 0.1990 多くのユーザと関連のある 「西郷」は確率が高い
  13. 13. 1. 定常状態における滞留確率は、ユーザに依存しない  個々のユーザの特性が活かされない 2. 多くのユーザと関連を持っているユーザほど、確率が高くな りやすい  よく買われているアイテムを多く購入しているユーザなどが該当 Random walk を単純に 適用した場合の問題 坂本 武市 西郷 桂 勝 坂本 0.1337 0.2006 0.2676 0.1990 0.1990 武市 0.1337 0.2006 0.2676 0.1990 0.1990 西郷 0.1337 0.2006 0.2676 0.1990 0.1990 桂 0.1337 0.2006 0.2676 0.1990 0.1990 勝 0.1337 0.2006 0.2676 0.1990 0.1990 結果、推薦されるアイテムは 有名な、一般的なアイテムが多くなる傾向に…
  14. 14. Yildirim らの提案法と Random walk 継続確率 α の効果
  15. 15.  Random walkを無条件に無限回行うのではなく、 継続確率 α を導入し、Random walk する距離を 確率的に制御している  滞留確率の変動が収束するまで Random walk を繰り 返す操作は変わらない  α を小さく保つと、グラフ的に近い距離で Random walk する  α を大きくすると、遠い距離まで Random walk す るようになる Yildirim らはどのように Random walk を制御しているか? サンプルデータで α の効果を確かめてみましょう
  16. 16.  先ほどのサンプルデータを一部変更していま す 今回のサンプルデータ (1/2) アイテム 坂本 武市 西郷 桂 勝 万葉集 5 4 - - - 竹取物語 4 3 - - - 源氏物語 - 1 3 - - 東方見聞録 - - 4 5 - 徒然草 - - - 4 5 東海道中膝栗毛 - - - - 5 この評点が なくなりました
  17. 17. アイテム 坂本 武市 西郷 桂 勝 万葉集 5 4 - - - 竹取物語 4 3 - - - 源氏物語 - 1 3 - - 東方見聞録 - - 4 5 - 徒然草 - - - 4 5 東海道中膝栗毛 - - - - 5  先ほどのサンプルデータを一部変更していま す 今回のサンプルデータ (1/2) 坂本 武市 西郷 桂 勝 坂本 0.5001 0.4999 0.0000 0.0000 0.0000 武市 0.3332 0.3334 0.3334 0.0000 0.0000 西郷 0.0000 0.3333 0.3333 0.3333 0.0000 桂 0.0000 0.0000 0.3333 0.3333 0.3333 勝 0.0000 0.0000 0.0000 0.5000 0.5000 変更後の ユーザ間類似度
  18. 18. 今回のサンプルデータ (2/2) 坂本 武市 西郷 桂 勝 0.5001 0.4999 0.3332 0.3334 0.3334 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.5000 0.5000 西郷⇔勝の関連がなくなっています
  19. 19.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (1/2) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝
  20. 20. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (1/2) 【α = 0.0】 元のユーザ類似度 がそのまま反映 されている 【α = 1.0】 完全に Random walk しきった状況 最終的には、 一つの滞留確率 に落ち着く
  21. 21.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (1/2) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝 「坂本」と直接の 関連がない3人 (西郷、桂、勝) に着目してみる
  22. 22.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (1/2) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝 「坂本」との距離が近い ユーザ「西郷」は、α が 小さくとも Random walk の影響がでやすい 「坂本」と直接の 関連がない3人 (西郷、桂、勝) に着目してみる
  23. 23.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (1/2) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝 「坂本」から離れている ユーザは、α が大きくなって (=RW 距離が伸びて) 初めて Random walk の 影響がでてくる 「坂本」と直接の 関連がない3人 (西郷、桂、勝) に着目してみる
  24. 24.  「坂本」から見たほかのユーザに対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (2/2) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝
  25. 25.  「坂本」から見たほかのユーザに対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (2/2) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝 α が小さいうちは、 元々のユーザ間 類似度や距離が 結果に強く影響する
  26. 26. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 α RW結果の確率値 坂本(自身) 武市 西郷 桂 勝  「坂本」から見たほかのユーザに対する、滞留 確率の変化のグラフ α の変化に対する RW 収束結果の 確率値の推移を確認してみる (2/2) α が大きくなると、離れている ユーザの滞留確率も高まり、 関連を多く持つユーザの影響が 強く表れるようになる
  27. 27.  α を小さく保つと…  元々のユーザ間類似度が活かされる  距離的に近いユーザの影響が強くなる  α を大きくすると…  遠く離れているユーザの滞留確率が高まる  距離の影響が薄まる  関連を多く持つユーザの影響が強くなる α の効果:まとめ 入力となるデータの状態や推薦ポリシーに合わせ、 適切な α を設定する必要があります(難しいですが…)
  28. 28. 付録・参考文献
  29. 29.  𝑃𝑖𝑗 = 𝛽𝑆 𝑖𝑗 𝑆 𝑖𝑘𝑘 + (1−𝛽) 𝑚  𝑃𝑖𝑗 … ユーザ i からユーザ j に遷移する確率  𝑆𝑖𝑗 …ユーザ i と ユーザ j 確率の類似度  (1 − 𝛽) … ランダムジャンプ(遷移)する確率  𝑚 … ユーザ数 【付録】 Yildirim の提案法 詳細 遷移確率行列の算出
  30. 30.  𝑅 = 𝛼 𝑘 𝑅𝑃 𝑘∞ 𝑘=1 = 𝑅𝛼𝑃(𝐼 − 𝛼𝑃)−1  𝑅 … 推薦結果(アイテムに対する予測評点値)  𝛼 … ランダムウォーク継続確率  𝑅 … ユーザの評点値から構成される行列 (http://slidesha.re/a7IsZ5 p.30 参照)  𝑃 … アイテム間の類似度を基に構成される遷移確 率の行列(前頁参照) 【付録】 Yildirim の提案法 詳細 評点の計算
  31. 31.  H. Yildirim and M.S. Krishnamoorthy. A Random Walk Method for Alleviating the Sparsity Problem in Collaborative Filtering.  RecSys '08 Proceedings of the 2008 ACM conference on Recommender systems. 参考文献

×