リコメンデーションのための相関係数2

ユーザーに対して類似のアイテムを推薦するアルゴリズムのアプローチには、

  1. ユーザーの相関をとるアプローチ、
  2. アイテムの相関をとるアプローチ

がある。今回は2のアイテムの相関をとるアプローチについて。

item A item B item C item D
user 1 2 0 2 1
user 2 3 0 1 3
user 3 2 1 3 1
user 4 2 2 4 X

前回と同様に、4人のユーザーと4個のアイテムがあったとして、それぞれのユーザーが各アイテムに上の表のような評価を与えているとする。user4のitem Dに対する評価は不明で、今これを推定したいとする。

アイテムごとにユーザーの評価のベクトルが与えられる。ここでは、user 1, 2, 3の評価のベクトルを取る。item A では (2, 3, 2), item B では (0, 0, 1), item C では (2, 1, 3), item D では (1, 3, 1) となる。

これらのベクトルの類似度をもって、アイテムの類似度とすることができる。2つのベクトルの類似度は、間の角度によって求められる。便利なので間の角度のコサイン値を類似の尺度とする。これは、コサイン類似度と呼ばれる。[0, 1]の値を取り、1 に近いほど類似度が多きい。

f:id:fjkz:20160701192653p:plain

item a, b のベクトル →p_a, →p_b のコサイン類似度は以下で計算できる。

f:id:fjkz:20160701211219p:plain

ドットは内積、||はベクトルの長さの意味です。

計算してみると、

C(A, D) = 0.95
C(B, D) = 0.30
C(C, D) = 0.64

のとなるので、item D は item A と似ていると言える。

user u の item a に対する評価の予測値は以下で計算する。

f:id:fjkz:20160701212359p:plain

ここで、N は類似度が高いアイテムの集合である。

N = {A} とすると、user D の item 4 に対する評価の予測値は、2となる。