Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction
2019/10/03
筆者・所属機関
Qi Pi
Weijie Bian
Guorui Zhou
Xiaoqiang Zhu
Kun Gai
まとめ
どんなもの?
行動ログの系列を使ってユーザモデリングした CTR 予測
先行研究と比べてどこがすごい?
従来よりも長い系列を使って予測できる
つまり精度が高くなる
技術や手法のキモはどこ?
NTM を改善して長期間の行動ログを用いたユーザベクトルの学習に適した MIMN の提案
バランス良くメモリを使う方法
ユーザの複数の興味を正しくメモリに保存する方法
どうやって有効だと検証した?
パブリック・プライベートなデータセットで sota と比較
システムアーキテクチャ
https://gyazo.com/b2aa786fdd86b7e8adc4a8340e835ff1
提案手法ではユーザの表現を作る UIC Server が分離していて AD のリクエストとは別にユーザの表現を計算している
ネットワークアーキテクチャ
https://gyazo.com/cce57e3a7c9eb3469da6f0feaa8b72d1
左側がシーケンスから表現を学習する部分
右側が埋め込み層と MLP
筆者ら以前提案した手法のネットワークアーキテクチャ
https://gyazo.com/0b8738f3269af22bdf163060307aca5f
ユーザログの長さと精度
https://gyazo.com/30f4d3cedaa85bd653ac65154bc4400b
ユーザの履歴の系列を 100 -> 1000 に増やすと AUC が 0.6%pt 改善する
0.3%pt でもサービス的にはすごい改善だよ
系列を使う難しさ
ストレージ
系列の長さが最大150のとき6億人以上のユーザを考えると 1TB 程度のストレージが必要
1000 に増やすと 6TB
レイテンシー
500 qps で 14ms
系列を1000に増やすと 500 qps で 200ms
50ms or Die の世界
NTM
Attention に応じてメモリを
Read
https://gyazo.com/471dc5c55ae2010a41ccbb34995b899b
https://gyazo.com/cc2a26f3fbcbb852d889728a7c11575f
Write
https://gyazo.com/883618aeb251fa9d3a114d33c3cefb4f
Memory Utilization Regularization
人気のアイテムがあると特定のメモリのみ更新されてしまい,メモリの使用効率が悪くなる
メモリを均等に使う仕組みを導入
attetion の累積 $ {\bm g}_t
attetion の平均と個別の attetion が離れすぎないような損失を追加する
https://gyazo.com/b89ae1386246914b9ce7fcd02ba20450
https://gyazo.com/d3d94d6c6f1b31a72fe4ab14b46c3fab
Memory Induction Unit
https://gyazo.com/9af3e8680781ea466854b0719620ff32
MIU はユーザの興味を抽出する仕組み
NTM と同じ大きさのメモリを持つ
attention top-k に対応するメモリを取り出し GRU で更新
https://gyazo.com/e10771de3015be596d336f87b3c29c96
https://gyazo.com/c8e5430ab688a75add374071ecf00f45
複数のチャンネルに分割して,履歴の系列を蓄積できる
データセット
https://gyazo.com/cdab5cf244be5fbc4e5a32d8baab5fbb
Amazon
T-1までを系列として,T のときにレビューを書くかどうかを当てる問題
履歴の長さは >= 20 のユーザ
最大 100 件の履歴に切り詰める
Taobao
T-1までを系列として,T のときに商品をクリックするかどうかを当てる問題
履歴の長さは最大200
Industrial
49日の学習データで翌日のクリックを当てる問題
学習データは過去60日分の履歴の系列を持ち,長さは最大1000
比較手法
シーケンスなし
Embedding&MLP is the basic deep learning model for CTR
シーケンスあり
DIN
GRU4Rec
ARNN
RUM
DIEN
AUC(Public datasets)
https://gyazo.com/9c2c293e0ff7a0b30f8c3c7c559fea07
シーケンスあり > シーケンスなし
MIMN > 既存手法
多種多様なユーザの興味を MIU で獲得できたから
メモリの数と精度
https://gyazo.com/a8f8af60ffc65f8ad651ec1755ace44e
Memory Utilization Regularization がないときの AUC
系列の長さによってメモリが多く必要になる
系列が短いとメモリの中に更新されない部分があり,精度が劣化するのではないか
バランス良く使う必要がある
メモリ使用量
https://gyazo.com/6cd09cd0e90222a83dbcb898e1f8f7c0
メモリの数が多くてもバランス良くメモリを使えてる
AUC
https://gyazo.com/529e3fabc295d36547d85ff05441f64c
AUC(private dataset)
https://gyazo.com/e23f77c3fa632bea2298a35ee0aad0bd
既存手法に 0.01 勝ってる
under out-synch
UIC と RTP を同期しない
trained with big scale data
11.11 (独身の日) のデータを使う
QPS
https://gyazo.com/d97d325e584f7de89057ca3d759eacf1
系列の長さを伸ばすと,
sota な DIENは QPS が悪化して,レイテンシが増える
MIMN は QPS もレイテンシも変わらない
オンラインA/B
2019-03-30~2019-05-10
DIEN vs MIMN
CTR +7.5%
Rvenue Per Mile(RPM) +6%
UIC メモリのウォームアップ
ロールバック
所感
majide sugoi
NN やっていかないと
AUC +3pt くらいで RPM +6%pt はだいたい肌感として正しそう
クソみたいな AUC 0.01の世界での改善は無駄ではない