第4章 協調ベース推薦システム~近傍ベース協調フィルタリング~

View the Project on GitHub

Home

第4章 協調ベース推薦システム~近傍ベース協調フィルタリング~

表4.aはユーザ-寿司評価値行列である。各行はユーザ\(u\)を、各列はアイテム\(i\)を表す。行列の\((u, i)\)成分は、ユーザ\(u\)がアイテム\(i\)に与えた評価値\(r_{u,i} \in \{1, 2, 3, 4, 5\}\)を表す。ただし、\(?\)となっている成分は欠損値であることを表す。このとき、次の問いに答えなさい。

表4.a ユーザ-寿司評価値行列

  カツオ $(i=1)$ マグロ $(i=2)$ 中トロ $(i=3)$ タイ $(i=4)$ ヒラメ $(i=5)$ スズキ $(i=6)$
Alice $(u=1)$ ? 4 3 1 2 ?
Bruno $(u=2)$ 5 5 4 ? 3 3
Chiara $(u=3)$ 4 ? 5 3 2 ?
Dhruv $(u=4)$ ? 3 ? 2 1 1
Emi $(u=5)$ 2 1 2 4 ? 3

1. ユーザベース協調フィルタリング

演習問題1

Chiaraの評価済みアイテム集合を求めなさい。

演習問題2

ChiaraとBrunoの共通の評価済みアイテム集合を求めなさい。

演習問題3

ピアソンの相関係数により、ChiaraとBrunoのユーザ類似度を求めなさい。

演習問題4

Chiaraの類似ユーザ集合を求めなさい。ただし、ユーザ類似度の上位\(k\)人のユーザを類似ユーザ集合として選ぶこととする。ここで、\(k=3\)とする。

演習問題5

演習問題4で求めたChiaraの類似ユーザ集合のうち、スズキを評価済みのユーザ集合を求めなさい。

演習問題6

演習問題5で求めたユーザ集合を用いて、Chiaraのスズキに対する予測評価値を求めなさい。

2. アイテムベース協調フィルタリング

演習問題7

マグロを評価済みのユーザ集合を求めなさい。

演習問題8

マグロとヒラメの両方を評価済みのユーザ集合を求めなさい。

演習問題9

マグロとヒラメのコサイン類似度を求めなさい。

演習問題10

マグロとヒラメの調整コサイン類似度を求めなさい。

演習問題11

マグロの類似アイテム集合を求めなさい。ただし、調整コサイン類似度によるアイテム類似度の上位\(k\)件のアイテムを類似アイテム集合として選び、しきい値\(\theta\)未満のアイテムは除外する。ここで、\(k=3\)、\(\theta=0\)とする。

演習問題12

演習問題11で求めたマグロの類似アイテム集合の中でChiaraが評価値を与えているアイテム集合を求めなさい。

演習問題13

演習問題12で求めたアイテム集合を用いて、Chiaraのマグロに対する予測評価値を求めなさい。

3. 評価値行列の次元削減

表4.bはユーザ-焼肉評価値行列である。各行はユーザ\(u\)を、各列はアイテム\(i\)を表す。行列の\((u, i)\)成分は、ユーザ\(u\)がアイテム\(i\)に与えた評価値\(r_{u,i} \in \{-1, +1\}\)を表す。ただし、\(?\)となっている成分は欠損値であることを表す。このとき、次の問いに答えなさい。

表4.b ユーザ-焼肉評価値行列

  カルビ $(i=1)$ ハラミ $(i=2)$ ロース $(i=3)$ タン $(i=4)$
Alice $(u=1)$ +1 -1 ? ?
Bruno $(u=2)$ +1 -1 ? +1
Chiara $(u=3)$ +1 -1 -1 +1
Dhruv $(u=4)$ ? -1 -1 -1
Emi $(u=5)$ +1 ? -1 -1
Faye $(u=6) $ -1 -1 +1 -1
Gilles $(u=7)$ -1 +1 -1 ?

演習問題14

カルビに対する評価値の分散を求めなさい。ただし、分散の計算には平均中心化評価値を用いること。

演習問題15

カルビとハラミに対する評価値の共分散を求めなさい。ただし、共分散の計算には平均中心化評価値を用いること。

演習問題16

表4.bのユーザ-焼肉評価値行列を2次元の潜在因子行列に縮約したとき、Chiaraのユーザ因子を求めなさい。ただし、分散共分散行列

\[\boldsymbol{S} = \left[ \begin{array}{rrrr} 0.596 & -0.541 & -0.480 & 0.127 \\ -0.541 & 0.794 & -0.115 & -0.259 \\ -0.480 & -0.115 & 0.800 & -0.346 \\ 0.127 & -0.259 & -0.346 & 0.418 \end{array} \right]\]

の固有値・固有ベクトルは

\[\lambda_{1} = 1.512, \;\;\;\; \boldsymbol{v}_{1} = [ 0.610, -0.506, -0.500, 0.349]^{\mathsf{T}} \\ \lambda_{2} = 0.921, \;\;\;\; \boldsymbol{v}_{1} = [-0.067, 0.695, -0.708, 0.112]^{\mathsf{T}} \\ \lambda_{3} = 0.343, \;\;\;\; \boldsymbol{v}_{1} = [ 0.512, 0.108, -0.076, -0.848]^{\mathsf{T}} \\ \lambda_{4} = -0.168, \;\;\;\; \boldsymbol{v}_{1} = [-0.600, -0.500, -0.494, -0.382]^{\mathsf{T}}\]

とする。