SlideShare a Scribd company logo
ソーシャルグラフを
活用した
レコメンデーション
- レコメンデーション最前線 (?) -
TokyoWebmining #19 2012.6.23
KOMIYA Atsushi (@komiya_atsushi)


                                   1
Agenda
1. 自己紹介&今日の発表について
2. 基礎知識
3. FriendTNS によるリンク予測
4. ソーシャルグラフをレコメンドに
   活かす(Social-Union)
5. まとめ


                        2
Agenda
1. 自己紹介&今日の発表について
2. 基礎知識
3. FriendTNS によるリンク予測
4. ソーシャルグラフをレコメンドに
   活かす(Social-Union)
5. まとめ


                        3
自己紹介
•小宮 篤史
 •@komiya_atsushi
 •http://k11i.biz/
•バックグラウンド
 •中小 SIer
 •業務系 Web エンジニア (?)
 •レコメンドエンジンの研究開発支援

                      4
今日の発表について




            5
今日の発表について




            6
今日の発表について
•Recommender Systems (RecSys) の
 ‘10, ’11 で発表された論文をご紹介する
 形でお話します




                                  7
今日の発表について
•Recommender Systems (RecSys) の
 ‘10, ’11 で発表された論文をご紹介する
 形でお話します
•ソーシャルグラフ (Social Network) を
 活用したレコメンデーションについて
 発表します
•キーワード
 •リンク予測
 •ソーシャルグラフ
                                  8
発表内容のサマリー
•ユーザーベースのレコメンデーション
•協調フィルタリングがベース
•リンク予測のアルゴリズムを応用
•ソーシャルグラフ上におけるユーザの
 類似度を算出
•協調フィルタリングによるユーザの
 類似度と適度に混ぜ合わせる

                     9
発表内容のサマリー
•ユーザーベースのレコメンデーション
•協調フィルタリングがベース
•リンク予測のアルゴリズムを応用
•ソーシャルグラフ上におけるユーザの
 類似度を算出
•協調フィルタリングによるユーザの
 類似度と適度に混ぜ合わせる

                     10
Agenda
1. 自己紹介&今日の発表について
2. 基礎知識
3. FriendTNS によるリンク予測
4. ソーシャルグラフをレコメンドに
   活かす(Social-Union)
5. まとめ


                        11
言葉の定義
•アイテム
 • ユーザにより購入・消費される商品、
   コンテンツなど
 • 推薦の対象にもなる
•ユーザ
 • アイテムを購入・消費する存在
 • サービスを利用する人
•アクティブユーザ
 • 推薦を受ける対象のユーザ
•行動履歴
 • アイテムとユーザとの間の関係
 • 評価・評点、購買、視聴、閲覧…     12
概要
レコメンデーション
アイテムのレコメンデーション
 協調フィルタリング
 ユーザーベース

 アイテムベース

 コンテンツベース

ユーザのレコメンデーション(リンク予測)
                       13
概要
レコメンデーション
アイテムのレコメンデーション
 協調フィルタリング
 ユーザーベース

 アイテムベース

 コンテンツベース

ユーザのレコメンデーション(リンク予測)
                       14
レコメンデーション

  既知の情報をもとに
利用者の嗜好・好みを推定する


利用者にとって価値ある情報を
 予測して提示(おすすめ)する
                  15
レコメンデーションの例




  商品写真




              16
レコメンデーションの例




   商品写真
 商品写真     商品写真   商品写真




                        17
協調フィルタリング
•ユーザの行動履歴を利用する
•「もの」同士の類似度を計算する
 •ユーザーベース / アイテムベース
 •コサイン類似度、ピアソン相関係数…
•ユーザが購買する可能性の高い
 アイテムを推薦する
 •類似度を基にして、アイテムごとに
  スコアを算出する
                      18
ユーザベースの協調フィルタリング
ショッピングサイト

                               商品写真
商品写真    商品写真   商品写真    商品写真
                               Monsters
ナウシカ    ラピュタ   夏目友人帳   蛍火の杜へ
                                 Inc.




 頼朝さん           義経さん           清盛さん       19
ユーザベースの協調フィルタリング
ショッピングサイト

                               商品写真
商品写真    商品写真   商品写真    商品写真
                               Monsters
ナウシカ    ラピュタ   夏目友人帳   蛍火の杜へ
                                 Inc.




 頼朝さん           義経さん           清盛さん       20
ユーザベースの協調フィルタリング
ショッピングサイト

                               商品写真
商品写真    商品写真   商品写真    商品写真
                               Monsters
ナウシカ    ラピュタ   夏目友人帳   蛍火の杜へ
                                 Inc.




 頼朝さん           義経さん           清盛さん       21
ユーザベースの協調フィルタリング
ショッピングサイト

                               商品写真
商品写真    商品写真   商品写真    商品写真
                               Monsters
ナウシカ    ラピュタ   夏目友人帳   蛍火の杜へ
                                 Inc.




        似てる!
 頼朝さん           義経さん           清盛さん       22
ユーザベースの協調フィルタリング
ショッピングサイト

                               商品写真
商品写真    商品写真   商品写真    商品写真
                               Monsters
ナウシカ    ラピュタ   夏目友人帳   蛍火の杜へ
                                 Inc.

                    ラピュタは
                   いかがですか?




 頼朝さん           義経さん           清盛さん       23
ユーザベースの協調フィルタリング
• 定義
 • 𝐼(𝑎, 𝑢) … ユーザ a とユーザ u の行動履歴において共
   起するアイテムの集合
 • 𝑟(𝑢, 𝑖) … ユーザ u がアイテム i に対して付与する評点
   (単純な購買・消費の場合には 0/1 を設定する)
• ユーザの類似度計算(コサイン類似度)
                               𝑖∈𝐼 𝑎,𝑢   𝑟(𝑎,𝑖)∙𝑟(𝑢,𝑖)
 • 𝑠𝑖𝑚 𝑐 (𝑎, 𝑢) =
                       𝑖∈𝐼 𝑎,𝑢   𝑟 𝑎,𝑖 2      𝑖∈𝐼 𝑎,𝑢    𝑟 𝑢,𝑖 2 ステップ1

• アイテムのスコア計算
                𝑢∈𝑁(𝑎,𝑖)   𝑠𝑖𝑚 𝑐 (𝑎,𝑢) 𝑟(𝑢,𝑖)
 • 𝑟′(𝑎, 𝑖) =
                    𝑢∈𝑁(𝑎,𝑖)   𝑠𝑖𝑚 𝑐 (𝑎,𝑢)                  ステップ2
                                                                         24
ソーシャルグラフ




           25
ソーシャルグラフ
•人などの「つながり」からなるグラフ
 •ノード
  • 人物
  • 企業
  • キャラクター
 •リンク(エッジ)
  • 友達関係、フォロー・フォロワー関係
  • コミュニケーション、会話
 •例)Facebook, Twitter, mixi…
                               26
リンク予測(Link prediction)
•ソーシャルグラフ上において、新しく
 作られるであろうリンクを予測する
 •SNS 上で友達候補を探す手伝いをする




                         27
リンク予測(Link prediction)
•ソーシャルグラフの構造を利用して
 リンクを予測する
 •リンク構造をもとにユーザ(ノード)の
  間の類似度を計算する
 •類似度の高いユーザが新たなリンクを
  設ける候補となる



                         28
リンク予測(Link prediction)



         b                   f
                         e



                 a
 c


                                 g

             d
     i               h
                                     29
リンク予測(Link prediction)



         b                   f
                         e



                 a
 c


                                 g

             d
     i               h
                                     30
リンク予測の具体的な手法(一部)
•グラフの局所的特徴に着目
 •Jaccard 係数
 •CN (Common Neighbors)
•グラフ全体を考慮
 •RWR (Random Walk with Restarts)
 •SimRank


                                    31
Jaccard 係数によるリンク予測
•ユーザ𝒖 𝒊 と𝒖 𝒋 の間の Jaccard 係数
                         𝐴(𝑢 𝑖 )∩𝐴(𝑢 𝑗 )
 • 𝑱𝒂𝒄𝒄𝒂𝒓𝒅 𝒖 𝒊 , 𝒖 𝒋 =
                         𝐴(𝑢 𝑖 )∪𝐴(𝑢 𝑗 )
 • 𝐴(𝑢 𝑖 ) …ユーザ𝒖 𝒊 とのリンクを有する(隣接
  している)ユーザの集合
•アクティブユーザからみて Shortest path
 的に「友達の友達」に相当するユーザに対
 してのみ、Jaccard 係数を計算する
 • 「友達の友達の友達」は Jaccard 係数が 0 と
   なる
                                           32
Jaccard 係数によるリンク予測



         b                                  f
                                    e



                   a
 c
                 ユーザ a と i の間の Jaccard 係数
                                𝒃, 𝒄, 𝒅, 𝒆 ∩ 𝒃, 𝒄, g
                                                   𝒅   𝟑
                 𝑱𝒂𝒄𝒄𝒂𝒓𝒅 𝒂, 𝒊 =                      =
                                𝒃, 𝒄, 𝒅, 𝒆 ∪ 𝒃, 𝒄, 𝒅   𝟒
             d
     i                          h
                                                      33
RWR (Random Walk with Restarts)
によるリンク予測

•概要
  •アクティブユーザを起点に、ソーシャル
   グラフ上をランダムウォークする
    • 各ノードへの遷移確率は同じとする
  •一定の確率で、アクティブユーザに戻っ
   てランダムウォークを再開する(restart)
  •最終的に、各ノードに滞在している確率
   を類似度とする

                                  34
Agenda
1. 自己紹介&今日の発表について
2. 基礎知識
3. FriendTNS によるリンク予測
4. ソーシャルグラフをレコメンドに
   活かす(Social-Union)
5. まとめ


                        35
FriendTNS アルゴリズム
•概要
 • Jaccard 係数や CN のように局所的特徴を押
   さえつつ、RWR などのようにグラフ全体の
   特徴も考慮したユーザ類似度計算ができる
•構成
 • Basic node similarity
   • アクティブユーザとリンクを有するユーザとの
     類似度を計算する
 • Transitive node similarity
   • 「友達の友達」以上のユーザとの類似度を計算
     する
                                36
Basic node similarity
•ユーザ𝒖 𝒊 と隣接するユーザ𝒖 𝒋 の間の類
 似度を算出する
                                  0, (𝑢 𝑗 ∉ 𝐴(𝑢 𝑖 ))
  • 𝑠𝑖𝑚 𝑏 𝑢 𝑖 , 𝑢 𝑗 =             1
                                              , (𝑢 𝑗   ∈ 𝐴(𝑢 𝑖 ))
                        𝑑𝑒𝑔(𝑢 𝑖 )+𝑑𝑒𝑔(𝑢 𝑗 )−1

  •𝑑𝑒𝑔(𝑢 𝑖 ) …ユーザ𝒖 𝒊 のリンクの次数
   ( 𝐴(𝑢 𝑖 ) に等しい)
•特徴
  •互いに持つリンクの数が少なければ
   少ないほど、高い類似度となる                                                   37
Transitive node similarity
• Basic node similarity による類似度を利用する
• ユーザ𝒖 𝒊 と𝒖 𝒋 の間の shortest path
   𝑢 𝑝1 , 𝑢 𝑝2 , . . . 𝑢 𝑝 𝑘+1 を求めて以下を計算する
                        0, (𝑢 𝑖 から𝑢 𝑗 に至るパスがない場合)
  • 𝑠𝑖𝑚 𝑡 𝑢 𝑖 , 𝑢 𝑗 =       𝑠𝑖𝑚 𝑏 𝑢 𝑖 , 𝑢 𝑗 , (𝑢 𝑗 ∈ 𝐴(𝑢 𝑖 ))
                         𝑘
                         ℎ=1   𝑠𝑖𝑚 𝑏 (𝑢 𝑝ℎ , 𝑢 𝑝ℎ+1 ), (上記以外)
• 特徴
  • アクティブユーザの「友達」は Basic node similarity
    の値がそのまま用いられる
  • アクティブユーザから離れるほどに類似度は低くなる

                                                                38
Basic node similarity / Transitive node similarity
の計算例




            b                              f
                                      e



                         a
  c


                                               g

                     d
        i                         h
                                                     39
Basic node similarity / Transitive node similarity
の計算例




            b                              f
                                      e



                         a
  c


                                               g

                     d
        i                         h
                                                     40
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
Basic node similarity / Transitive node similarity
の計算例




            b                              f
                                      e



                           a
                1/20
  c


                                               g

                       d
        i                         h
                                                     42
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
FriendTNS の計算量・性能
•計算量
 •空間:𝑂(𝑛 + 𝑚)
 •時間:𝑂 𝑚 + 𝑛 log 𝑛
 •m … エッジ数、n … ユーザ数
•性能
 •精度(Precision/Recall)
  • FriendTNS >>> RWR >> CN
 •計算時間
  • CN >> FriendTNS > RWR
                              44
FriendTNS の計算量・性能
•計算量
 •空間:𝑂(𝑛 + 𝑚)
 •時間:𝑂 𝑚 + 𝑛 log 𝑛
 •m … エッジ数、n … ユーザ数
•性能    Q. リンク予測って
 •精度(Precision/Recall)
     実際に使われているの?
  • FriendTNS >>> RWR >> CN
 •計算時間
  • CN >> FriendTNS > RWR
                              45
Agenda
1. 自己紹介&今日の発表について
2. 基礎知識
3. FriendTNS によるリンク予測
4. ソーシャルグラフをレコメンドに
   活かす(Social-Union)
5. まとめ


                        46
Social-Union アルゴリズム
•ユーザ類似度を混ぜ合わせる
 •FriendTNS (Transitive node similarity)に
  より得られるソーシャルグラフ上での
  ユーザ類似度
 •協調フィルタリングのユーザ類似度
  (コサイン類似度など)
•新たに得られたユーザ類似度をもとに、
 アイテムのスコア計算を行う
 •従来の協調フィルタリングと変わらず
                                            47
ユーザベースの協調フィルタリング
• 定義
 • 𝐼(𝑎, 𝑢) … ユーザ 𝑎 とユーザ 𝑢 の行動履歴において共
   起するアイテムの集合
 • 𝑟(𝑢, 𝑖) … ユーザ 𝑢 がアイテム𝑖に対して付与する評点
   (単純な購買・消費の場合には 0/1 を設定する)
• ユーザの類似度計算(コサイン類似度)
                                         𝑟(𝑎,𝑖)∙𝑟(𝑢,𝑖)
     この式が変わります 𝑟
 • 𝑠𝑖𝑚 𝑐 (𝑎, 𝑢) =
          𝑟 𝑎,𝑖        𝑖∈𝐼 𝑎,𝑢
                               𝑖∈𝐼 𝑎,𝑢
                                         2
                                              𝑖∈𝐼 𝑎,𝑢    𝑢,𝑖 2 ステップ1

• アイテムのスコア計算
                𝑢∈𝑁(𝑎,𝑖)   𝑠𝑖𝑚 𝑐 (𝑎,𝑢) 𝑟(𝑢,𝑖)
 • 𝑟′(𝑎, 𝑖) =
                    𝑢∈𝑁(𝑎,𝑖)   𝑠𝑖𝑚 𝑐 (𝑎,𝑢)                 ステップ2
                                                                       48
ユーザ類似度の計算方法
•ユーザ類似度計算式
 • 𝑠𝑖𝑚 𝑢 𝑢 𝑖 , 𝑢 𝑗 = 1 − 𝑎 𝑠𝑖𝑚 𝑡 (𝑢 𝑖 , 𝑢 𝑗 ) + 𝑎 ∙ 𝑠𝑖𝑚 𝑐 (𝑢 𝑖 , 𝑢 𝑗 )
 • 𝑠𝑖𝑚 𝑡 (𝑢 𝑖 , 𝑢 𝑗 ) … FriendTNS により得られる
   ユーザ 𝑢 𝑖 と 𝑢 𝑗 の類似度
 • 𝑠𝑖𝑚 𝑐 (𝑢 𝑖 , 𝑢 𝑗 ) … 従来の協調フィルタリングに
   よるユーザ類似度(コサイン類似度)
 • 𝑎 … アクティブユーザ 𝑢 𝑖 ごとに設定
   される [0,1] の範囲のパラメータ

                                                                         49
パラメータ a の算出
• 定義
 •    𝑛 … ユーザ数
 •    𝑚 … ソーシャルグラフ上のリンク総数
 •   𝐼(𝑢 𝑖 ) … ユーザ𝑢 𝑖 が購買したアイテムの集合
 •   𝐼 … すべてのアイテムを含む集合

• 計算式
           𝑑𝑅
 •   𝑎=
         𝑑𝐴+𝑑𝑅
           𝑙𝑜𝑐𝑎𝑙𝐴        deg 𝑢 𝑖 /𝑛
 •   𝑑𝐴 =            =
           𝑔𝑙𝑜𝑏𝑎𝑙𝐴          𝑚/𝑛2
           𝑙𝑜𝑐𝑎𝑙𝑅              𝐼(𝑢 𝑖 ) / 𝐼
 • 𝑑𝑅 =              =
           𝑔𝑙𝑜𝑏𝑎𝑙𝑅       (   𝑢 𝐼(𝑢) ) / (𝑛∙ 𝐼 )
                                                  50
パラメータ a の算出
• 定義
 •    𝑛 … ユーザ数
 •    𝑚 … ソーシャルグラフ上のリンク総数
 •   𝐼(𝑢 𝑖 ) … ユーザ𝑢 𝑖 が購買したアイテムの集合
 •   𝐼 … すべてのアイテムを含む集合

• 計算式                分子:アクティブユーザのリンク密度
           𝑑𝑅        分母:ソーシャルグラフ全体のリンク密度
 •   𝑎=
         𝑑𝐴+𝑑𝑅
           𝑙𝑜𝑐𝑎𝑙𝐴        deg 𝑢 𝑖 /𝑛
 •   𝑑𝐴 =            =
           𝑔𝑙𝑜𝑏𝑎𝑙𝐴          𝑚/𝑛2
           𝑙𝑜𝑐𝑎𝑙𝑅              𝐼(𝑢 𝑖 ) / 𝐼
 • 𝑑𝑅 =              =
           𝑔𝑙𝑜𝑏𝑎𝑙𝑅       (   𝑢 𝐼(𝑢) ) / (𝑛∙ 𝐼 )
                                                  51
パラメータ a の算出
• 定義
 •    𝑛 … ユーザ数
 •    𝑚 … ソーシャルグラフ上のリンク総数
 •   𝐼(𝑢 𝑖 ) … ユーザ𝑢 𝑖 が購買したアイテムの集合
 •   𝐼 … すべてのアイテムを含む集合

• 計算式                分子:アクティブユーザのリンク密度
           𝑑𝑅        分母:ソーシャルグラフ全体のリンク密度
 •   𝑎=
         𝑑𝐴+𝑑𝑅
           𝑙𝑜𝑐𝑎𝑙𝐴        deg 𝑢 𝑖 /𝑛
 •   𝑑𝐴 =            =                            分子:アクティブユーザの購買密度
           𝑔𝑙𝑜𝑏𝑎𝑙𝐴          𝑚/𝑛2
                                                  分母:ユーザ全体の購買密度
           𝑙𝑜𝑐𝑎𝑙𝑅              𝐼(𝑢 𝑖 ) / 𝐼
 • 𝑑𝑅 =              =
           𝑔𝑙𝑜𝑏𝑎𝑙𝑅       (   𝑢 𝐼(𝑢) ) / (𝑛∙ 𝐼 )
                                                                 52
Social-Union は
どのようなサービスに効果的か?

•論文で使用しているデータセットは…




                     53
Social-Union は
どのようなサービスに効果的か?

•論文で使用しているデータセットは…




                     54
Social-Union は
どのようなサービスに効果的か?

•論文で使用しているデータセットは…




   どちらも批評に特化した SNS…
                      55
Social-Union は
どのようなサービスに効果的か?

•論文で使用しているデータセットは…




    Q. 他に応用できる場面は
       ないのだろうか?


   どちらも批評に特化した SNS…
                      56
Agenda
1. 自己紹介&今日の発表について
2. 基礎知識
3. FriendTNS によるリンク予測
4. ソーシャルグラフをレコメンドに
   活かす(Social-Union)
5. まとめ


                        57
まとめ
•ユーザーベースのレコメンデーション
•協調フィルタリングがベース
•リンク予測のアルゴリズムを応用
•ソーシャルグラフ上におけるユーザの
 類似度を算出
 •FriendTNS アルゴリズム
•協調フィルタリングによるユーザの
 類似度と適度に混ぜ合わせる
 •Social-Union アルゴリズム   58
ご静聴ありがとう
ございました!

           59
参考文献
•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
参考文献
•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

More Related Content

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