🗺️

推薦システムの埋め込み総整理

User、Item、Contextを1つのベクトル空間に集める

推薦システムで最も根本的な問いは「このユーザーはこのアイテムを好むか?」だ。埋め込みはこの問いをベクトル空間での距離問題に変換する。

ユーザーベクトルとアイテムベクトルが近ければ、好む可能性が高い。これがTwo-Towerモデルの核心で、Matrix Factorizationも結局同じアイデアだ。

埋め込みの種類

ID埋め込み: ユーザーID、アイテムIDを学習可能なベクトルに。最も基本だがコールドスタートに弱い。

Feature埋め込み: カテゴリ、タグ、価格帯などの属性をベクトル化。Wide&DeepのDeepパートがこれをやる。

Sequence埋め込み: 行動系列全体を1つのベクトルに。GRU4Rec、BERT4Recがここに該当。

Context埋め込み: 時間、位置、デバイスなどの状況情報。同じユーザーでも通勤中と週末では欲しいものが違う。

動作原理

1

User/Item/Contextそれぞれの特徴を定義

2

各特徴をEmbedding Layerでベクトル化

3

ベクトルを結合(concat/attention)して1つの表現を生成

4

内積またはコサイン類似度でマッチングスコアを計算

メリット

  • 異種データ(テキスト、画像、行動)を1つの空間に統合
  • ANNインデックスでミリ秒単位のサービング可能

デメリット

  • 次元数、学習率などのハイパーパラメータチューニングが必要
  • 埋め込みが古くなるとドリフト発生 — 定期的な再学習が必須

ユースケース

Two-Towerモデルのユーザー/アイテムタワー ANN(近似最近傍)検索