🤝

CB2CF: 協調フィルタリングと属性ベースの両方の利点を活かす推薦手法

に公開

はじめに

推薦システムにおいて、Cold Start 問題は避けて通れません。特に新しいアイテムや新規ユーザーに対しては、従来の協調フィルタリング(Collaborative Filtering: CF)手法では十分な情報が得られず、精度の高い推薦が困難になります。

一方で、CFの大きな利点は「ユーザー同士、アイテム同士の共起パターンを学習できること」にあります。つまり、明示的な特徴量を使わずに、行動ログのみに基づいて類似性を捉えられる点は、属性ベース(Content-Based: CB)の推薦にはないCFの強みです。アイテム間の共起性利用した推薦は、CBでは得られない推薦が得られることがあります。しかし、Cold Start状況下ではその学習元となる行動履歴がそもそも存在しないため、この利点を活かすことができません。

このギャップを埋めるのが、CB情報をもとにCFの埋め込み空間を予測するCB2CFというアプローチです。本記事では、CBで得られたembeddingをCF空間に直接マッピングするモデルであるCB2CFを紹介します。

CB2CF:CB情報からCF埋め込みを推定

CB2CF(Content-Based to Collaborative Filtering)は、ユーザーやアイテムのメタデータ(コンテンツベース情報)から、協調フィルタリング(CF)の潜在ベクトル空間への写像を学習し、Cold Start問題を解決するアプローチです。特にユーザー埋め込みの予測を例に、以下のような3ステップで構成されます:

ステップ1:履歴データに基づくCF埋め込みの取得

Coldでないユーザー U_{\text{hot}}に対して、接触履歴行列 Rを行列分解(例:SVD、BPR、MFなど)し、ユーザーとアイテムの潜在ベクトル \mathbf{P}_u, \mathbf{Q}_i \in \mathbb{R}^dを得ます。

ステップ2:CBからCFベクトルへのマッピングモデルの学習

Hotユーザーの属性情報 q_uと、Step 1で得られたユーザーベクトル \mathbf{P}_uの対応を学習します。これにより、メタデータからCF埋め込みを推定するモデル f(q_u; \phi)を構築します。ここで、\phiは学習されるパラメタ。

\hat{\mathbf{P}}_u = f(q_u; \phi)

関数fには、元論文ではニューラルネットワークが仮定されていますが、線形関数でも原理的には可能です。MLP(Multi-Layer Perceptron)なんかを使うと良いと思います。

ステップ3:Coldユーザーに対する推薦

接触履歴のないColdユーザー u \in U_{\text{cold}}に対して、属性 q_uを入力とし、Step 2の学習済みモデル fからユーザーベクトルを予測します(\hat{\mathbf{P}}_u)。そして、それを使って各アイテムのベクトルとの内積スコアを計算し、スコアの高い順に推薦します:

s_{ui} = \hat{\mathbf{P}}_u^\top \mathbf{Q}_i

CB-prior-CF:接触数に応じたCB-CF融合

CB-prior-CFは、CB2CFで得られたベクトル\hat{P_{u}}_{\text{CB2CF}}と、既存のCFモデルのベクトル{P_{u}}_{\text{CF}}ユーザーとアイテムの過去接触数 h_{ui} に基づいて重み付けすることで、Cold StartとWarm Startの間をなめらかにつなぐ手法です。

ここで、コールドユーザ問題に対処することを目的として、ユーザベクトルの融合ベクトル P_{\text{CBpCF}}は以下のように定義されます:

{P_{u}}_{\text{CBpCF}} = \frac{\hat{P_{u}}_{\text{CB2CF}} + c \cdot {h_{ui}}^\alpha \cdot {P_{u}}_{\text{CF}}}{1 + c \cdot {h_{ui}}^\alpha} \tag{1}

ここで

  • c, \alpha:重み調整用のハイパーパラメータ(c > 0, 0 < \alpha \leq 1

意味と挙動

  • 接触数がゼロ(h_{ui} = 0)のとき、{P_{u}}_{\text{CBpCF}} = \hat{P_{u}}_{\text{CB2CF}} で完全にCBベースの予測
  • 接触数が大きくなるにつれ、{P_{u}}_{\text{CBpCF}} \rightarrow {P_{u}}_{\text{CF}}に近づく

つまり、CBベースとCFベースの推薦性能が高い領域を調整する役割を果たします。

まとめ

  • CB2CFは、CB情報からCFベクトルを予測し、コールドユーザへの対応を可能にします。
    • コールドアイテムについても原理的に同じアプローチで対応することが可能です。
  • CB prior CFは、接触数に応じてCBとCFの影響を滑らかに調整する枠組みです。

この2つを組み合わせることで、Cold Start問題を解決しつつ、協調フィルタリングの精度も維持できるハイブリッド推薦が実現できます。

📘参考文献:

Discussion