TrustWalker: a random walk model for combining trust-based and item-based recommendation
タイトルに釣られて読んだ.内容がシンプルなだけでなく,いちいち添字を略す理由だのが書いてあり,非常に読みやすかった.
概要
notation
ユーザ及びアイテムについて,ユーザがアイテムについてと評価した(大抵これは[1,5]の整数値である)アイテム集合がある.また,ユーザがユーザを信頼している状態をで表現するtrust networkもあるとする.以下では0/1で信頼している/していないとしているが,これは[0,1]の実数値で表現したとしても容易に拡張可能である.trust networkにおけるユーザに対する隣接ユーザ(『信頼ユーザ』)集合をとする.
問題定義としては,ユーザがまだ評価していないアイテムについて評価を予測する.
TrustWalker概要
アルゴリズムを簡単に書くとこうなる
- からランダムウォークを開始し,k-ステップ目でユーザの場所にいるとする
協調フィルタリングとtrust networkをうまく組み合わせていて,なおかつわかりやすい.
詳細な数式
類似度
2つのアイテム間の類似度[sim(i,j)]は,アイテムにおけるユーザ評価を用いたピアソン相関係数を用いて
とする.
はアイテムを両方評価しているユーザの人数.なのでこれが大きければ類似度を下げる.
ランダムウォークを続けるかどうかの判定
ランダムウォークを続けるか,それとも現在のユーザの別アイテムの評価を返すかの判定にはを用いる.
これは,
とする.
つまり,評価したアイテムがと類似していればしているほど,ランダムウォークのステップ数が大きいほど打ち切りやすくなる.
似たアイテムを返す確率
ランダムウォークを打ち切る際,アイテムを返すわけだがこれもで選ぶ.つまりは似たアイテムほど選ばれやすくなる.
補足
論文では厳密にやるために色々追加してる.
- kが深くなりすぎてもだるいので,k=6で打ち切る.
Based on the idea of "six-degrees of separation" [11], we set max-depth = 6.
- 閉じた形で書くために"dead state"を導入
- どのランダムウォークも最後にはdead stateに行き着く形で書く.概念は変わらず.