Presentation is loading. Please wait.

Presentation is loading. Please wait.

データモデリング 推薦のための集合知プログラミング.

Similar presentations


Presentation on theme: "データモデリング 推薦のための集合知プログラミング."— Presentation transcript:

1 データモデリング 推薦のための集合知プログラミング

2 協調フィルタリング お勧め商品を推薦してもらうための方法 協調フィルタリング 友人にその商品について 聞いてみる
友人にその商品について 聞いてみる 商品が増えれば増えるほど、推薦は困難 その商品を知っている友人 が必ずいるとは限らない 協調フィルタリング あなたの好みに似た人々 を、大規模な人々の集団から発見する これらの人々が好む商品で、あなたが知らない 商品を推薦する

3 好みの商品の収集 映画を例に説明 各人が5段階評価 見ていないものには、評価を与えない
[注] ユーザ名は架空のもので、実在する人名とは一切関係がありません。

4 似ているユーザを探し出す 類似性を測る尺度が必要 いろいろな尺度 ユークリッド距離 コサイン類似度 ピアソン相関
各ユーザを、映画の数だけの次元のベクトルで表現 2つのベクトル間の距離を計算 距離が短いほど、2つのベクトルは似ている コサイン類似度 2つのベクトルの方向が似ていることを利用 ピアソン相関 各映画に対する2人の評価について、一方が好きなら他方も好きであるという相関性を利用

5 ユークリッド距離 2つのベクトル間の距離を計算 距離が短いほど、2つのベクトルは似ている a |b – a | = = 16 + 1 + 1
(1, 3, 0) |b – a | = =  =  18   =   = 3 x 1.414 = (5-1)2+(2-3)2+(1-0)2 b (5, 2, 1)

6 コサイン類似度 2つのベクトル a, b のなす角度θを考えると a b 同じ方向を向いているとき cosθ = 1.0
似ていれば似ているほど大きな値 a (1, 3, 0) 内積(a, b) は  (a, b) = |a| |b| cosθ = (a1b1+a2b2+…) だから、cosθは (a, b) |a| |b| θ b (5, 2, 1) cosθ = この場合は cosθ = (1・5+3・2+0・1)

7 コサイン類似度を使った 似た人の並び替え 映画の数だけの次元を考える 各ユーザを6次元のベクトルで表現
この場合、6次元 各ユーザを6次元のベクトルで表現 任意の2つのユーザの組について、コサイン類似度を計算 計算結果に基づき、ソート 問題 見ていない映画についてはどう考えるか?

8 ピアソン相関 2つの項目の相関を示す[-1, 1]の値 値が1に近づけば、正の相関 が強い 値が-1に近づけば、負の相関 が強い
値が1に近づけば、正の相関 が強い 一方の値が大きくなると他方も大きくなる 値が-1に近づけば、負の相関 が強い 一方の値が大きくなると他方は小さくなる ユーザ2 ユーザ2 正の相関 ピアソン相関は1に近づく 負の相関 ピアソン相関は-1に近づく アバタの評価はユーザ1が3.0でユーザ2は1.2 1.2 ユーザ1 ユーザ1 3.0

9 ピアソン相関の意味 3つの映画の場合を例とする
ユーザ1とユーザ2で映画の評価の 平均 をとる。 a1 = (r1 + s1 + t1) / 3, a2 = (r2 + s2 + t2) / 3 すべての映画の評価の平均からの、各映画の評価の 偏差 を考える。 ユーザ2 千と千尋(s1, s2) s2 - a2 平均(a1, a2) t2 – a2 タイタニック(t1, t2) r2 – a2 ラピュタ(r1, r2) ユーザ1 t1 - a1 r1 - a1 s1 - a1

10 ユーザ1,2の偏差のベクトル pをピアソン相関 (Peason corelataion)という
ユーザ1の偏差のベクトル d1 = ( r1 - a1, s1 - a1, t1 - a1 ) ユーザ2の偏差のベクトル d2 = ( r2 – a2, s2 – a2, t2- a2 ) ベクトル d1, d2 のコサイン類似度 p p = (d1, d2) / |d1| |d2|   は、 d1と d2 が 同方向を向いているとき 1 に近づき、 逆方向を向いているとき -1 に近づく pをピアソン相関 (Peason corelataion)という ユーザ1

11 相関  一方が高ければ… d1と d2 が同方向とは、ユーザ1が平均より高い方向に評価するものは、ユーザ2も平均より高い方向に評価することを意味する 正の相関 d1と d2 が逆方向とは、ユーザ1が平均より高い方向に評価するものは、ユーザ2は平均より低い方向に評価することを意味する 負の相関 ピアソン相関は、大きな点をつける人と小さな点をつける人でも傾向が同じであれば類似しているとみなす S(千と千尋)についての偏差 ユーザ2の 偏差ベクトル d2 ユーザ1の 偏差ベクトル d1 θ r(ラピュタ) についての偏差 t(タイタニック)についての偏差

12 アイテムを推薦する 自分が見ていなくて、自分が面白いと思う映画を推薦してもらうためにはどうすればよいか?
自分以外の全評価者の評価点を集める。 ある人の、それぞれの映画の評価点を、その人と自分との類似性で重みづける。 重みづけられた評点を各映画ごとにすべての評価者で合計し、合計点が高いものから推薦する。

13 おすすめ度の計算表 各映画の評価に類似性をかけ、重みづけ評価を計算 これを映画ごとにすべての評価者で合計する
丸山のラピュタの評価は3.0で、類似性は0.92だから  3.0 x 0.92 = 2.77 これを映画ごとにすべての評価者で合計する ラピュタの評価は 8.38 多くの人が見た映画が高く評価されるので、不公平 この合計値を、映画をみた評価者の類似度の合計で割る 映画をみた評価者の類似度の合計は   =2.95 ラピュタについてのおすすめ度は  8.38 ÷ 2.95 = 2.83

14 使用した類似性の合計で割る理由 値v1, v2, v3があるとして、これに重みw1, w2, w3をかけて、加重平均をとるとき
      w1 v1 + w2 v2 + w3 v3             w1 + w2 + w3 前スライドでの計算は、これを実施しただけ。 類似性で重みつけられた評価値の合計は定式の分子、類似性の合計は上記の分母

15 計算結果を使って推薦 第1位 Mission Impossible 第2位 天空の城 ラピュタ 第3位 Minority Report


Download ppt "データモデリング 推薦のための集合知プログラミング."

Similar presentations


Ads by Google