Transformerベースの推薦

Self-Attentionでユーザー行動系列を一度に処理

SASRec(2018)が代表的だ。TransformerのSelf-Attentionを推薦システムに初めて適用したモデル。

GRU4Recと目標は同じ — 次のアイテム予測。違いは方法論にある。

GRU vs Transformer

GRUは系列を前から順に処理する。10番目のアイテムの表現に1番目の情報が届くには、9回のhidden state伝達が必要だ。情報が希釈される。

Transformerは全ての位置が全ての位置に直接attentionする。10番目が1番目を直接参照できる。長距離依存に強く、GPU並列化もはるかに有利。

実際の適用

Alibaba、JD.comなどの大手ECサイトでGRU4RecをTransformerベースに置き換えてCTRが有意に上がったという報告がある。ただしモデルが大きくなるとサービングレイテンシが問題になる。

動作原理

1

アイテム系列にPosition Encodingを追加

2

Multi-Head Self-Attentionでアイテム間の関係を学習

3

Feed-Forward + Layer Normで表現を精製

4

最後の位置の出力で次のアイテムを予測

メリット

  • 長距離依存を直接捉える(GRU比で強み)
  • GPU並列化で学習速度が速い

デメリット

  • AttentionのO(n²)計算量 — 系列が長いとコスト増加
  • サービングレイテンシの管理がGRUより困難

ユースケース

大規模ECサイトのリアルタイム推薦 動画プラットフォームの「次の動画」推薦

参考資料