ユーザーに対して類似のアイテムを推薦するアルゴリズムのアプローチには、
- ユーザーの相関をとるアプローチ、
- アイテムの相関をとるアプローチ
がある。今回は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 に近いほど類似度が多きい。
item a, b のベクトル →p_a, →p_b のコサイン類似度は以下で計算できる。
ドットは内積、||はベクトルの長さの意味です。
計算してみると、
C(A, D) = 0.95
C(B, D) = 0.30
C(C, D) = 0.64
のとなるので、item D は item A と似ていると言える。
user u の item a に対する評価の予測値は以下で計算する。
ここで、N は類似度が高いアイテムの集合である。
N = {A} とすると、user D の item 4 に対する評価の予測値は、2となる。