SlideShare a Scribd company logo
1 of 31
「協調フィルタリングにおける
希薄問題の解決法 - Random walk」
補足資料
2010.11.27
KOMIYA Atsushi ( @komiya_atsushi )
 2010/11/14 開催の「第8回データマイニング +
WEB 勉強会」にて発表させていただいた「協調
フィルタリングにおける希薄問題の解決法 –
Random walk」に関する補足資料です
 発表資料: http://slidesha.re/a7IsZ5
 この資料では、Yildirim らの提案法におけるパラ
メータ α の役割・効果について解説をしています
 以下、説明の都合上、特に表記がない限りは
ユーザベースの協調フィルタリング/Random
walk を前提に話を進めます
本資料について
協調フィルタリングにおける
Random walk <おさらい>
 Random walk をすることで、直接的でない、間
接的な関連(推移的関連, Transitive association)
が確率的に得られる
 ソーシャルなユーザの関係に例えると・・・
「友達の友達は(ちょっと)友達だ」
 この推移的関連を協調フィルタリングで利用
することで、以下の効果が期待できる
 希薄問題(Sparsity problem)の緩和
 推薦されるアイテムの多様化
何のために Random walk を利用して
協調フィルタリングするのか?
 ユーザ間類似度を元に構築した重み付き有向グ
ラフ上で、Random walk をする
 ノード … ユーザ
 エッジ … ユーザ間の類似度を基に算出される遷移確
率を重みとする
 ランダムウォークをし続けた結果、あるノードに滞
留している確率をすべてのノードに対し算出する
 マルコフ連鎖の定常状態を求める計算に相当
 定常状態における確率を、アイテム推薦に利用
する
協調フィルタリングにおける
Random walk の基本
次頁以降、サンプルデータを用いて説明します
協調フィルタリングにおける
Random walk の基本 例 (1/5)
 サンプルデータ
 アイテムに対するユーザごとの評点
アイテム 坂本 武市 西郷 桂 勝
万葉集 5 4 - - -
竹取物語 4 3 - - -
源氏物語 - 1 3 - -
東方見聞録 - - 4 5 4
徒然草 - - - 4 5
東海道中膝栗毛 - - - - 5
このデータを用いて、RW をしてみます
 ユーザ間類似度を算出する
 以下はコサイン類似度を利用した結果
協調フィルタリングにおける
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
ユーザベースのグラフを作るために、
まずはユーザ類似度を算出します
 ユーザ間類似度を基に遷移確率行列を求める
 ユーザ 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となるように調整
前頁の遷移確率
行列をグラフ化
協調フィルタリングにおける
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 します
協調フィルタリングにおける
Random walk の基本 例 (5/5)
坂本
武市
西郷 桂
勝
0.1337
0.2006 0.1990
0.2676 0.1990
RW で得られたこれらの確率値を、類似度同様に
推薦(評点予測値の算出)に利用するのですが…
RW により求められた、
各ノードの滞留確率
(マルコフ連鎖の定常状態)
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
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
多くのユーザと関連のある
「西郷」は確率が高い
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
結果、推薦されるアイテムは
有名な、一般的なアイテムが多くなる傾向に…
Yildirim らの提案法と
Random walk 継続確率 α の効果
 Random walkを無条件に無限回行うのではなく、
継続確率 α を導入し、Random walk する距離を
確率的に制御している
 滞留確率の変動が収束するまで Random walk を繰り
返す操作は変わらない
 α を小さく保つと、グラフ的に近い距離で Random
walk する
 α を大きくすると、遠い距離まで Random walk す
るようになる
Yildirim らはどのように
Random walk を制御しているか?
サンプルデータで α の効果を確かめてみましょう
 先ほどのサンプルデータを一部変更していま
す
今回のサンプルデータ (1/2)
アイテム 坂本 武市 西郷 桂 勝
万葉集 5 4 - - -
竹取物語 4 3 - - -
源氏物語 - 1 3 - -
東方見聞録 - - 4 5 -
徒然草 - - - 4 5
東海道中膝栗毛 - - - - 5
この評点が
なくなりました
アイテム 坂本 武市 西郷 桂 勝
万葉集 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
変更後の
ユーザ間類似度
今回のサンプルデータ (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
西郷⇔勝の関連がなくなっています
 ほかのユーザから見た「坂本」に対する、滞留
確率の変化のグラフ
α の変化に対する 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結果の確率値
坂本(自身)
武市
西郷
桂
勝
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 しきった状況
最終的には、
一つの滞留確率
に落ち着く
 ほかのユーザから見た「坂本」に対する、滞留
確率の変化のグラフ
α の変化に対する 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人
(西郷、桂、勝)
に着目してみる
 ほかのユーザから見た「坂本」に対する、滞留
確率の変化のグラフ
α の変化に対する 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人
(西郷、桂、勝)
に着目してみる
 ほかのユーザから見た「坂本」に対する、滞留
確率の変化のグラフ
α の変化に対する 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人
(西郷、桂、勝)
に着目してみる
 「坂本」から見たほかのユーザに対する、滞留
確率の変化のグラフ
α の変化に対する 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結果の確率値
坂本(自身)
武市
西郷
桂
勝
 「坂本」から見たほかのユーザに対する、滞留
確率の変化のグラフ
α の変化に対する 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結果の確率値
坂本(自身)
武市
西郷
桂
勝
α が小さいうちは、
元々のユーザ間
類似度や距離が
結果に強く影響する
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)
α が大きくなると、離れている
ユーザの滞留確率も高まり、
関連を多く持つユーザの影響が
強く表れるようになる
 α を小さく保つと…
 元々のユーザ間類似度が活かされる
 距離的に近いユーザの影響が強くなる
 α を大きくすると…
 遠く離れているユーザの滞留確率が高まる
 距離の影響が薄まる
 関連を多く持つユーザの影響が強くなる
α の効果:まとめ
入力となるデータの状態や推薦ポリシーに合わせ、
適切な α を設定する必要があります(難しいですが…)
付録・参考文献
 𝑃𝑖𝑗 =
𝛽𝑆 𝑖𝑗
𝑆 𝑖𝑘𝑘
+
(1−𝛽)
𝑚
 𝑃𝑖𝑗 … ユーザ i からユーザ j に遷移する確率
 𝑆𝑖𝑗 …ユーザ i と ユーザ j 確率の類似度
 (1 − 𝛽) … ランダムジャンプ(遷移)する確率
 𝑚 … ユーザ数
【付録】 Yildirim の提案法 詳細
遷移確率行列の算出
 𝑅 = 𝛼 𝑘
𝑅𝑃 𝑘∞
𝑘=1 = 𝑅𝛼𝑃(𝐼 − 𝛼𝑃)−1
 𝑅 … 推薦結果(アイテムに対する予測評点値)
 𝛼 … ランダムウォーク継続確率
 𝑅 … ユーザの評点値から構成される行列
(http://slidesha.re/a7IsZ5 p.30 参照)
 𝑃 … アイテム間の類似度を基に構成される遷移確
率の行列(前頁参照)
【付録】 Yildirim の提案法 詳細
評点の計算
 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.
参考文献

More Related Content

Viewers also liked

Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測JAVA DM
 
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?Kazuaki SAKAI
 
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo WebminingTakashi J OZAKI
 
質問される力 #TechGirls
質問される力 #TechGirls質問される力 #TechGirls
質問される力 #TechGirlsHiro Yoshioka
 
第1回アジャイルサムライ読書会 島根道場
第1回アジャイルサムライ読書会 島根道場第1回アジャイルサムライ読書会 島根道場
第1回アジャイルサムライ読書会 島根道場Yosuke Ubata
 
デブサミ2013の明後日な楽しみ方
デブサミ2013の明後日な楽しみ方デブサミ2013の明後日な楽しみ方
デブサミ2013の明後日な楽しみ方陽一 滝川
 
プログラミングの【さしすせそ】
プログラミングの【さしすせそ】プログラミングの【さしすせそ】
プログラミングの【さしすせそ】Hiromu Shioya
 
グローバルプロジェクト よくある問題共通点と解決チェックリスト
グローバルプロジェクト よくある問題共通点と解決チェックリストグローバルプロジェクト よくある問題共通点と解決チェックリスト
グローバルプロジェクト よくある問題共通点と解決チェックリストDice Itoga, PMP, ITIL Foundation CSM
 
Android勉強会LT資料
Android勉強会LT資料Android勉強会LT資料
Android勉強会LT資料Junichiro Ueno
 
20130919タスク管理デビューのススメ
20130919タスク管理デビューのススメ20130919タスク管理デビューのススメ
20130919タスク管理デビューのススメkishitaku
 
ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01
ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01
ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01Japan
 
魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning TalkHiromu Shioya
 
プロポーズで学ぶ成功するプレゼンテーション
プロポーズで学ぶ成功するプレゼンテーションプロポーズで学ぶ成功するプレゼンテーション
プロポーズで学ぶ成功するプレゼンテーションTakahiro Ogoshi
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should knowTakuto Wada
 
アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介Kiichi Kajiura
 
テスト駆動開発始めました!
テスト駆動開発始めました!テスト駆動開発始めました!
テスト駆動開発始めました!Kiichi Kajiura
 
Git道場を開催してきた
Git道場を開催してきたGit道場を開催してきた
Git道場を開催してきたHiromu Shioya
 

Viewers also liked (20)

Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
 
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
 
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
 
質問される力 #TechGirls
質問される力 #TechGirls質問される力 #TechGirls
質問される力 #TechGirls
 
第1回アジャイルサムライ読書会 島根道場
第1回アジャイルサムライ読書会 島根道場第1回アジャイルサムライ読書会 島根道場
第1回アジャイルサムライ読書会 島根道場
 
20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回
 
デブサミ2013の明後日な楽しみ方
デブサミ2013の明後日な楽しみ方デブサミ2013の明後日な楽しみ方
デブサミ2013の明後日な楽しみ方
 
プログラミングの【さしすせそ】
プログラミングの【さしすせそ】プログラミングの【さしすせそ】
プログラミングの【さしすせそ】
 
グローバルプロジェクト よくある問題共通点と解決チェックリスト
グローバルプロジェクト よくある問題共通点と解決チェックリストグローバルプロジェクト よくある問題共通点と解決チェックリスト
グローバルプロジェクト よくある問題共通点と解決チェックリスト
 
Android勉強会LT資料
Android勉強会LT資料Android勉強会LT資料
Android勉強会LT資料
 
20130919タスク管理デビューのススメ
20130919タスク管理デビューのススメ20130919タスク管理デビューのススメ
20130919タスク管理デビューのススメ
 
ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01
ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01
ビジュアルシンキング君の瞳に映る仕事は何ですか 20140811 01
 
魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk
 
20120508 アジャイルサムライ読書会 第3回
20120508 アジャイルサムライ読書会 第3回20120508 アジャイルサムライ読書会 第3回
20120508 アジャイルサムライ読書会 第3回
 
20120522 アジャイルサムライ読書会第5回
20120522 アジャイルサムライ読書会第5回20120522 アジャイルサムライ読書会第5回
20120522 アジャイルサムライ読書会第5回
 
プロポーズで学ぶ成功するプレゼンテーション
プロポーズで学ぶ成功するプレゼンテーションプロポーズで学ぶ成功するプレゼンテーション
プロポーズで学ぶ成功するプレゼンテーション
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should know
 
アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介
 
テスト駆動開発始めました!
テスト駆動開発始めました!テスト駆動開発始めました!
テスト駆動開発始めました!
 
Git道場を開催してきた
Git道場を開催してきたGit道場を開催してきた
Git道場を開催してきた
 

Recently uploaded

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

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

  • 1. 「協調フィルタリングにおける 希薄問題の解決法 - Random walk」 補足資料 2010.11.27 KOMIYA Atsushi ( @komiya_atsushi )
  • 2.  2010/11/14 開催の「第8回データマイニング + WEB 勉強会」にて発表させていただいた「協調 フィルタリングにおける希薄問題の解決法 – Random walk」に関する補足資料です  発表資料: http://slidesha.re/a7IsZ5  この資料では、Yildirim らの提案法におけるパラ メータ α の役割・効果について解説をしています  以下、説明の都合上、特に表記がない限りは ユーザベースの協調フィルタリング/Random walk を前提に話を進めます 本資料について
  • 4.  Random walk をすることで、直接的でない、間 接的な関連(推移的関連, Transitive association) が確率的に得られる  ソーシャルなユーザの関係に例えると・・・ 「友達の友達は(ちょっと)友達だ」  この推移的関連を協調フィルタリングで利用 することで、以下の効果が期待できる  希薄問題(Sparsity problem)の緩和  推薦されるアイテムの多様化 何のために Random walk を利用して 協調フィルタリングするのか?
  • 5.  ユーザ間類似度を元に構築した重み付き有向グ ラフ上で、Random walk をする  ノード … ユーザ  エッジ … ユーザ間の類似度を基に算出される遷移確 率を重みとする  ランダムウォークをし続けた結果、あるノードに滞 留している確率をすべてのノードに対し算出する  マルコフ連鎖の定常状態を求める計算に相当  定常状態における確率を、アイテム推薦に利用 する 協調フィルタリングにおける Random walk の基本 次頁以降、サンプルデータを用いて説明します
  • 6. 協調フィルタリングにおける Random walk の基本 例 (1/5)  サンプルデータ  アイテムに対するユーザごとの評点 アイテム 坂本 武市 西郷 桂 勝 万葉集 5 4 - - - 竹取物語 4 3 - - - 源氏物語 - 1 3 - - 東方見聞録 - - 4 5 4 徒然草 - - - 4 5 東海道中膝栗毛 - - - - 5 このデータを用いて、RW をしてみます
  • 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.  ユーザ間類似度を基に遷移確率行列を求める  ユーザ 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. 前頁の遷移確率 行列をグラフ化 協調フィルタリングにおける 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. 協調フィルタリングにおける Random walk の基本 例 (5/5) 坂本 武市 西郷 桂 勝 0.1337 0.2006 0.1990 0.2676 0.1990 RW で得られたこれらの確率値を、類似度同様に 推薦(評点予測値の算出)に利用するのですが… RW により求められた、 各ノードの滞留確率 (マルコフ連鎖の定常状態)
  • 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. 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. 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. Yildirim らの提案法と Random walk 継続確率 α の効果
  • 15.  Random walkを無条件に無限回行うのではなく、 継続確率 α を導入し、Random walk する距離を 確率的に制御している  滞留確率の変動が収束するまで Random walk を繰り 返す操作は変わらない  α を小さく保つと、グラフ的に近い距離で Random walk する  α を大きくすると、遠い距離まで Random walk す るようになる Yildirim らはどのように Random walk を制御しているか? サンプルデータで α の効果を確かめてみましょう
  • 16.  先ほどのサンプルデータを一部変更していま す 今回のサンプルデータ (1/2) アイテム 坂本 武市 西郷 桂 勝 万葉集 5 4 - - - 竹取物語 4 3 - - - 源氏物語 - 1 3 - - 東方見聞録 - - 4 5 - 徒然草 - - - 4 5 東海道中膝栗毛 - - - - 5 この評点が なくなりました
  • 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. 今回のサンプルデータ (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.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する 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. 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.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する 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.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する 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.  ほかのユーザから見た「坂本」に対する、滞留 確率の変化のグラフ α の変化に対する 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.  「坂本」から見たほかのユーザに対する、滞留 確率の変化のグラフ α の変化に対する 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.  「坂本」から見たほかのユーザに対する、滞留 確率の変化のグラフ α の変化に対する 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. 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.  α を小さく保つと…  元々のユーザ間類似度が活かされる  距離的に近いユーザの影響が強くなる  α を大きくすると…  遠く離れているユーザの滞留確率が高まる  距離の影響が薄まる  関連を多く持つユーザの影響が強くなる α の効果:まとめ 入力となるデータの状態や推薦ポリシーに合わせ、 適切な α を設定する必要があります(難しいですが…)
  • 29.  𝑃𝑖𝑗 = 𝛽𝑆 𝑖𝑗 𝑆 𝑖𝑘𝑘 + (1−𝛽) 𝑚  𝑃𝑖𝑗 … ユーザ i からユーザ j に遷移する確率  𝑆𝑖𝑗 …ユーザ i と ユーザ j 確率の類似度  (1 − 𝛽) … ランダムジャンプ(遷移)する確率  𝑚 … ユーザ数 【付録】 Yildirim の提案法 詳細 遷移確率行列の算出
  • 30.  𝑅 = 𝛼 𝑘 𝑅𝑃 𝑘∞ 𝑘=1 = 𝑅𝛼𝑃(𝐼 − 𝛼𝑃)−1  𝑅 … 推薦結果(アイテムに対する予測評点値)  𝛼 … ランダムウォーク継続確率  𝑅 … ユーザの評点値から構成される行列 (http://slidesha.re/a7IsZ5 p.30 参照)  𝑃 … アイテム間の類似度を基に構成される遷移確 率の行列(前頁参照) 【付録】 Yildirim の提案法 詳細 評点の計算
  • 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. 参考文献