Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

協調フィルタリング

協調フィルタリング(Collaborative Filtering)は、ユーザーの行動履歴や評価データから「似ているユーザー/アイテム」を見つけて推薦を行う手法

基本の考え方自体はシンプルで

  • 「あなたと似た行動をしている人が好きなものは、あなたも好きな可能性が高い」

  • 「あなたが好きなアイテムに似たアイテムは、他にも好きになる可能性が高い」

というもの。

アルゴリズムはメモリベースとモデルベースに大別される

  1. メモリベース法(memory-based method, instance-based method)

    • ユーザーベース:ユーザの類似性に注目する

    • アイテムベース:アイテムの類似性に注目する

  2. モデルベース法(model-based method):ユーザの嗜好をモデル化して推薦

メモリベース法

推薦の都度リアルタイムに類似度を計算する方法は メモリベース法(memory-based method) あるいは 事例ベース法(instance-based method) と呼ばれる。

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

ユーザーiiと似たユーザーがアイテムjjに与えた評価に基づいて、ユーザーiiがまだ評価していないアイテムjjに与えるレイティング(またはscore)sijs_{ij}を予測する

sij=yˉi+Ij(i)w(i,)(yjyˉ.)Ij(i)w(i,)s_{i j}=\bar{y}_{i \cdot}+\frac{\sum_{\ell \in \mathcal{I}_j(i)} w(i, \ell)\left(y_{\ell j}-\bar{y}_{\ell .}\right)}{\sum_{\ell \in \mathcal{I}_j(i)}|w(i, \ell)|}
  • Ij(i)\mathcal{I}_j(i) :アイテム jj を評価したユーザでユーザ ii に類似するユーザの集合

  • w(i,)w(i, \ell):ユーザ\ellの評価に対する重み

  • yˉi\bar{y}_{i \cdot}はユーザiiの他のアイテムへの平均レイティング

ユーザ ii に類似するユーザの集合を定義する方法は、最も単純なのはピアソンの相関係数を使って近傍のkk人を選択するもの

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

ユーザーiiへのアイテムjjの推薦に使うスコアy^ij\hat{y}_{ij}の推薦について、
あるアイテムjjに似ているアイテムたちへのユーザーiiの過去の応答をもとにy^ij\hat{y}_{ij}を推定する

モデルベース法

観測データの規則性を学習したモデルを事前に用意しておく方法を モデルベース法(model-based method) という。

モデルには

  • クラスタリング

  • 回帰・分類・ランキング問題として評価値を予測するモデル

  • トピックモデル

    • LDA(Latent Dirichlet Allocation)などで評価値行列を次元削減し、嗜好を表現する情報を獲得する

  • 行列分解(Matrix Factorization)

    • 評価値行列をユーザー行列とアイテム行列に分解し、ユーザーベクトルとアイテムベクトルの類似度で予測評価値を計算する

など様々なモデルが使われる。

データ数

田村幸之介, & 松原仁. (2008). 協調フィルタリングにおけるデータの必要数の分析 (Doctoral dissertation, Future University Hakodate).

  • ユーザーベースの手法であるGroupLensを使った。

  • データ数を減らしながら精度の変化を見たところ、最低でも8万レコードほしいという結果に