26. 数学で話すと
購入情報をm次元のベクトル v∈Rm
vi = 1 i番目の商品を買った
vi = 0 買っていない
「似ている度」=ベクトル間の内積
vとwの似ている度(両方買ってるなら1)
v, w v1w1 v2 w2 ... vm wm
正規化された「似ている度」
=ベクトル間のコサイン値(0~1)
v, w
v, v w, w
26
27. 疑似コードで話すと
購入情報を長さmの配列 v[m]で表す
v[i] = 1 i番目の商品を買った
v[i] = 0 買っていない
「似ている度」=ベクトル間の内積
calcInp(v, w)
sum = 0;
for (i = 0; i < m; i++) sum += v[i] * w[i];
return sum;
• 正規化されたスコア
• calcInp(v, w) / sqrt(calcInp(v, v) * calcInp(w,w))
27