NPA: Neural News Recommendation with Personalized Attention
2019/09/25
https://gyazo.com/6d27c51faca62340c41310ac997648e3
Neural News Recommendation with Long- and Short-term User Representations
Mingxiao An, Fangzhao Wu, Chuhan Wu, Kun Zhang, Zheng Liu and Xing Xie
Neural News Recommendation with Topic-Aware News Representation
Chuhan Wu, Fangzhao Wu, Mingxiao An, Yongfeng Huang and Xing Xie
強い
一言: Deep Learningでニュースレコメンドして良い結果出ましたといういつものストーリー
別論文ではLong-termも考慮してるので研究の観点が好き
コード非公開なので追試辛い
ABSTRACT
人によって興味の対象が異なるし、一人の人は複数の興味対象がある
ある記事がたくさんの人に読まれても、クリックされた理由は人によって異なるはず
なのでAttentionベースの推薦を考えた
ニュース記事encoderとユーザーencoderがある
ここはY! okuraさんにインスパイアされてる
CNNベースで演算
RNN系で時系列を考慮するわけではない
単語レベル、文章(記事)レベルで重要度を見たいのでそれぞれでAttentionの機構を導入した
実験はMSN newsで実施
1 INTRODUCTION
ニュース推薦は重要なタスク(略)
https://gyazo.com/7c1c6bd34b0a209384d989e28c642654
同じ記事を複数ユーザーが読んだ(クリックした)としても、その理由は異なるはず
ここは論文内で何度も強調
Attentionをアピールしたいからそうなるよね
User-1は 「Dolphins May Have Found A Head Coach」の記事を好むだろうし User-2はそうではないはず
タイトルの中でも単語の重要度は異なる
「Crazy」は「That」よりも情報を持ってるよね
全体的にinformativeを重要度と訳してる
このあたりを正確に表現するにはどうしたらよいのだろうか
ニュース推薦の古くからの方法だとcollaborative filtering
okuraさんのRNNもあるよ
a deep fusion model (DMF)だとAttention考慮してるけどユーザーごとのタイトル単語の重要度を表現できていない
2 RELATED WORK
2.1 News Recommendation
2.2 Neural Recommender Systems
3 OUR APPROACH
https://gyazo.com/37a17af7a4fecc8ed4c604d1c4002089
主に3パート
News Encoder(中央上から下全部)
User Encoder(クリックした記事でAttentionとってる部分、右上)
Click Predictor(上部)
3.1 News Encoder
主な流れ: 記事の単語ベクトル取る -> CNNにかける -> Attentionとる
記事単語 Di = $ [w1,w2, ...,wM]
記事ベクトル: Ew = $ [e1, e2, ..., eM]
CNN実施
https://gyazo.com/8c4c2aea5ebe81ec8a5e12161bd87181
CNNを通して得られるベクトル $ [c1, c2, ..., cM]
https://gyazo.com/7735795f128d8251a092dac6d4031887
単語レベルのAttention
記事タイトル内の単語は異なる重要度を持っている
“NBA games in this season” => “NBA“ > “this”
同じ単語でもユーザーによって重要度は異なる
“Genesis G70 is the 2019 MotorTrend Car of the Year“ => “Genesis”, “MotorTrend”は車好きに刺さる
Attentionの仕組み
https://gyazo.com/7e1e344053b4880c0a79d434069f6c18
https://gyazo.com/e4b99e49789dc222b4ef63fde4855486
https://gyazo.com/e1b088b269d7307f9ca8c573b7a747c2
eu: ユーザーIDのembedding => どうやって求める??
IDと強調してるのが気になる
ユーザークリック履歴からembedding求めたとか?
qwで学習させてるから適当に初期値を定めてるだけかな
V, v, W, bはパラメータ
単語の関連度が大きいとαが大きくなり、その逆もまた然り
rが最終的な記事の分散表現
単語のAttention weightであるαとタイトルをCNNにかけたときにできたcの積の和
3.2 Uesr Encoder
主な流れ: ユーザーのクリックした記事のみから記事の単語ベクトル取る -> CNNにかける -> Attentionとる
クリックした記事でも重要度は記事によって異なる
“10 tips for cooking” > “It will be Rainy next week”
同じ記事でも人によって重要度は異なる
“100 Greatest Golf Courses” はゴルフ好きに刺さるけどそれ以外にはノイジー
というのをこれまでと同じようにモデルで表現したい
https://gyazo.com/f5d2f0b105fdaf8fd2390d1827fb3032
eu: ユーザーID embedding
V, vはパラメータ
https://gyazo.com/ae4f426fd105c8163cc8a1c40def9185
https://gyazo.com/7a3c9de4ef3f2356febb781c94ad43b4
rはAttentionを考慮したNewsEncoderの結果
qはユーザーの好みを表現できているクエリ
W, bはパラメータ
αはAttention weight
3.3 Click Predictor
ユーザーがクリックするか否かを表現するクリックスコアを求める
imp量に対してクリックは少数のためインバランスのデータ
過去の研究ではランダムサンプリングとかしてる
K + 1 positive, K randomly selected negative samples
https://gyazo.com/012f041f463559480cae5496b1dba34f
https://gyazo.com/dd9bf4d55abe73c76e81509bb7fb34d3
4 EXPERIMENTS
4.1 Datasets and Experimental Settings
MSN Newsからランダムサンプリング
from December 13rd, 2018 to January 12nd, 2019.
https://gyazo.com/3020ec23a480bdb769d3abd9fe3df366
期間でtrain/testを分割、最終週をtestとした
validationデータは10%ランダムサンプリング
word embedding
次元: 300
Glove(試してみたい)
CNN
filters: 400
window size: 3
user embeddingの次元: 50
news preferences queries: 200
negative sampling ratio K: 4
We randomly sampled at most 50 browsed news articles to learn user representations
dropout: 0.2, adam, batch size: 100 for GPU limitation
詳細記していて良い
4.2 Performance Evaluation
対抗馬
https://gyazo.com/665d7dce7b7b757ed28debcfa0400e10
結果
https://gyazo.com/46eac450c13e445e06818322f3979aa6
https://gyazo.com/2609d5b2cdedb647268dadefa1b5dd00
testデータの最初の日(1/6)はtrainingの結果が一番効いている(trainingに一番近傍)
時間が立つにつれて減少していくのはニュースは時事性が強いためではないか
4.3 Effectiveness of Personalized Attention
https://gyazo.com/d441e83d212cf15012adb76a536bc065
attentionの有効性を検証
Fig5
w/o = without
personalized attentionは本論文
vanilla attentionはuser query vectorを固定している
Fig6
word/news/bothでのattentionの効き方を検証
https://gyazo.com/b1768146bc5a2ca5b1b959e85ffb201b
可視化できるのはインパクトある
5 CONCLUSION
neural news recommendation approach with personalized attentionの提案
単語レベル/記事レベルでattentionの効果を検証
MSNのニュースで検証