🗺️
推薦システムの埋め込み総整理
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(近似最近傍)検索