協調フィルタリング#
協調フィルタリング(Collaborative Filtering)は、ユーザーの行動履歴や評価データから「似ているユーザー/アイテム」を見つけて推薦を行う手法
基本の考え方自体はシンプルで
「あなたと似た行動をしている人が好きなものは、あなたも好きな可能性が高い」
「あなたが好きなアイテムに似たアイテムは、他にも好きになる可能性が高い」
というもの。
アルゴリズムはメモリベースとモデルベースに大別される
メモリベース法(memory-based method, instance-based method)
ユーザーベース:ユーザの類似性に注目する
アイテムベース:アイテムの類似性に注目する
モデルベース法(model-based method):ユーザの嗜好をモデル化して推薦
メモリベース法#
推薦の都度リアルタイムに類似度を計算する方法は メモリベース法(memory-based method) あるいは 事例ベース法(instance-based method) と呼ばれる。
ユーザーベース協調フィルタリング#
ユーザー\(i\)と似たユーザーがアイテム\(j\)に与えた評価に基づいて、ユーザー\(i\)がまだ評価していないアイテム\(j\)に与えるレイティング(またはscore)\(s_{ij}\)を予測する
\(\mathcal{I}_j(i)\) :アイテム \(j\) を評価したユーザでユーザ \(i\) に類似するユーザの集合
\(w(i, \ell)\):ユーザ\(\ell\)の評価に対する重み
\(\bar{y}_{i \cdot}\)はユーザ\(i\)の他のアイテムへの平均レイティング
ユーザ \(i\) に類似するユーザの集合を定義する方法は、最も単純なのはピアソンの相関係数を使って近傍の\(k\)人を選択するもの
アイテムベース協調フィルタリング#
ユーザー\(i\)へのアイテム\(j\)の推薦に使うスコア\(\hat{y}_{ij}\)の推薦について、
あるアイテム\(j\)に似ているアイテムたちへのユーザー\(i\)の過去の応答をもとに\(\hat{y}_{ij}\)を推定する
モデルベース法#
観測データの規則性を学習したモデルを事前に用意しておく方法を モデルベース法(model-based method) という。
モデルには
クラスタリング
回帰・分類・ランキング問題として評価値を予測するモデル
トピックモデル
LDA(Latent Dirichlet Allocation)などで評価値行列を次元削減し、嗜好を表現する情報を獲得する
行列分解(Matrix Factorization)
評価値行列をユーザー行列とアイテム行列に分解し、ユーザーベクトルとアイテムベクトルの類似度で予測評価値を計算する
など様々なモデルが使われる。
データ数#
田村幸之介, & 松原仁. (2008). 協調フィルタリングにおけるデータの必要数の分析 (Doctoral dissertation, Future University Hakodate).
ユーザーベースの手法であるGroupLensを使った。
データ数を減らしながら精度の変化を見たところ、最低でも8万レコードほしいという結果に