🎭
BERT4Rec
Masked Language Modelを推薦に適用 — 穴埋めでユーザーの好みを学習
SASRecは左→右の単方向attentionを使う。BERT4Rec(2019, Sun et al.)は双方向だ。
系列[A, B, C, D, E]でCを[MASK]に置き換え、A, B, D, E全てを参考にCを当てる方式。BERTがテキストでやっていたことと全く同じ。
単方向 vs 双方向
SASRec: A → B → C → ?(右側のみ予測)
BERT4Rec: A → ? → C → D(両側の文脈を活用)
双方向が直感的に強そうだが、実際のサービングでは「次のアイテム予測」が必要なため、推論時には最後の位置をマスキングする方式に変換する必要がある。
学習 vs サービングのギャップ
学習はランダム位置マスキング、サービングは最後の位置予測。このgapが性能に影響し得る。最近はこの問題を緩和する変種が出ている。
動作原理
1
ユーザー行動系列のランダム位置を[MASK]に置換
2
双方向Transformerでマスクされたアイテムを予測
3
双方向文脈が表現に反映される
4
サービング時は最後の位置をマスクして次のアイテムを予測
メリット
- ✓ 双方向文脈活用 — 単方向より豊かな表現
- ✓ BERTエコシステムのツール/技法を再活用可能
デメリット
- ✗ 学習-サービング間の目的関数差異(train-serve gap)
- ✗ SASRec比で常に優れているわけではない(データ次第)
ユースケース
ユーザー履歴から欠落した好みアイテムを復元
Eコマースセッション内の次クリック予測