Personalized News Recommendation with Knowledge-aware Interactive Matching
https://gyazo.com/557aa665b5273a32e0fb0959cb842547
なぜ読んだか
パーソナライズに知識ベースのどの程度貢献しそうかを知りたかった
概要
ニュースパーソナライズにはユーザの興味と候補記事のマッチングが大事
記事もユーザの興味も複数の側面、興味があるのでユーザのクリック履歴と候補記事を相互に学習する
知識ベースのエンティティレベルの関連性も有用
INTRODUCTION
オンラインニュースプラットフォームには大量のニュースがあり、パーソナライズが必要
パーソナライズにおいては、ユーザの興味と候補記事とのマッチングが重要
既存の手法はテキスト情報から候補記事を、ユーザのクリック履歴からユーザの興味をそれぞれ独立にモデリングしている
候補記事には複数の側面やエンティティが含まれており、ユーザも複数の興味を持っているかもしれない
候補記事とユーザの興味を独立でモデリングすることは、興味のマッチングを劣化させる
本論文では候補記事とユーザの興味の関係性をより正確にモデリングする方法を調査
モチベーション
候補記事はさまざまな側面やエンティティを持ち、ユーザの興味は複数存在する
図1の候補記事の2記事目はバスケットボール選手(Stephen Curry)と政治家(Donald Trump)に関連
図1のユーザは複数の分野(自動車、音楽、スポーツ)に興味を持っている
候補記事の2記事目はユーザの一部の興味にのみ(スポーツ、Stephen Curry)マッチする
ユーザの興味と候補記事を独立にモデリングすることはマッチングを劣化させる
候補記事とクリックした記事の意味的なマッチングは興味マッチングの精度を高める
クリック記事の2記事目は候補記事の1記事目と意味的な関連性がある(どちらも音楽)
クリック記事の3記事目は候補記事の1記事目と関連がある(どちらも同じイベント)
意味的な関連性に基づいて、ユーザは候補記事の1記事目に興味があると推論する
知識グラフは候補記事へのユーザの興味を理解するのに有益
クリック記事の4記事目のSteve Kerrは候補記事の2記事目のStephen Curryと関連がある
ウォーリアーズで選手とコーチの関係
知識マッチングによって、ユーザが候補記事の2記事目に興味があるかもしれないと推論できる
https://gyazo.com/8c07dbb48a8bd44998e1aea218cad86f
ニュースのパーソナライズのための knowledge-aware interactive mathing framework (KIM) の提案
ユーザの興味と候補記事を相互にモデリング
METHODOLOGY
Framework of KIM
ユーザ u と候補記事 nc が与えられたときに、関連スコア z を計算
各記事n: テキストTとエンティティE
知識グラフG: エンティティ間の関係、事前学習
リンクのみを使い、関係性は利用しない
2つのメインモジュール
Knowledge-aware News Co-Encoder
ユーザのクリック履歴と候補記事から意味的、知識レベルの関連性を捉え、表現を学習
User-News Co-Encoder
ユーザベクトルと記事ベクトルの学習
candidate news-aware user interest representation
user-aware candidate news representation
https://gyazo.com/4c475ea3f42a18e441e16958f2d81331
Knowledge-aware News Co-Encoder
ユーザのクリックした記事$ n^u と候補記事 $ n^c の表現をテキストとエンティティから学習
3つのサブモジュール
Knowledge Co-Encoder
知識グラフに基づきエンティティ間の関係から知識ベースの表現を学習($ k^u, k^c)
Semantic Co-Encoder
テキストから意味ベースの表現を学習($ t^u, t^c )
Aggregation
https://gyazo.com/556e4ecb4842d20767a02d26410c3dfe
Knowledge Co-Encoder
知識グラフ(エンティティ)を基に学習
https://gyazo.com/ddc3bc621763840d7d79257097d7448c
3つのコンポーネント
Stacked GAT network ($ M_u, M_c )
Graph Attention Networkを利用
stacked K layers
Kホップ内のエンティティ
Stacked Graph Co-Attention Network ($ S_u, S_c )
あるエンティティは知識グラフ内で複数のエンティティとの関連性をもつ
興味のマッチングにおいて、エンティティ間の関連性はそれぞれ異なる情報量を持つ
例:
クリック記事「Style is the trending song today.」
候補記事「The Movie Cats is the most popular movie in the Netflix」
Movie Cats は知識グラフ上で近隣に多くのエンティティがある
director “James”, chief actor “Hooper”, chief actress “Taylor” など
Taylorのみがクリック記事と関連がある
Styleの歌手
エンティティ間の有益な関係性を選択するために graph co-attention network stacked k layers を提案
Graph Co-Attention Network
l層目のgraph co-attention netowk は図5
g: クリック記事のエンティティ
m: 候補記事のエンティティ
Multi-Head Self Attention
クリック記事のエンティティ間の関係を学習
Match-aware Attention
クリック記事のエンティティと候補記事のエンティティの関連性を学習
https://gyazo.com/49eb1fd369c240eec1941e400933d6de
Entity Co-Attention Network ($ k^u, k^c )
エンティティ間の関連性を相互に学習
Semantic Co-Encoder
クリック記事と候補記事の意味的な表現をテキストから相互に学習
https://gyazo.com/c6b4ae394d679cbfcbcb89e86c2a1199
最初に独立でコンテキスト表現を学習
Word Embedding
CNNとTransformer
local と global な表現を学習
Semantic Co-Attention Network
意味ベースの表現を相互に学習
一般に、記事は複数の意味側面があり、ユーザの興味とのマッチングにも異なる重要性をもつ
例えば
クリック記事: 「Apple’s plans to make over-ear headphones.」
2つの意味側面 “Apple’s product plan” and “headphones”
前者の場合「iPhone 12 cases buyer’s guide」
後者の場合「The best headphones of 2020.」
User-News Co-Encoder
https://gyazo.com/4c475ea3f42a18e441e16958f2d81331
Co-attention networkを適用し、ユーザベクトルと記事ベクトルを学習
candidate news-aware user interest representation
user-aware candidate news representation
ユーザの興味はそれぞれ異なり、候補記事の一部のみユーザの興味がマッチする
同様に、候補記事には複数の側面があるが、ユーザの興味はその一部のみ
Relevance Modeling and Model Training
ユーザ表現と候補記事表現の内積を関連性として利用
KIMの学習
ネガティブサンプリング
NCE (Noise Contrastive Estimation) loss
https://gyazo.com/5b420da4d078d982c043266e1d64f095
シグモイド関数 $ z^i_+ : i番目のポジティブサンプルの関連スコア
シグモイド関数 $ z^i_j : i番目のポジティブサンプルに対するj番目のネガティブサンプルの関連スコア
計算量は独立でモデリングするよりも計算量が大きくなる
EXPERIMENTS
Datasets and Experimental Settings
MINDデータセット (public)
Microsoft News の 2019 10/12 - 11/22 までの6週間のデータ
5週目までを学習と検証データ、6週目のデータをテストデータ
タイトルからエンティティを自動で抽出し、WikiDataにリンク付け
エンティティベクトルはTransEを使って学習
Feeds データ (private)
Microsoft の Feeds Appのユーザログ
2020 1/23から4/1の13週間分のユーザーログ
最初の10週間のデータからランダムで取得した100,000インプレッションを学習データ、10,000インプレッションを検証データに
最後の3週間のデータからランダムで取得した100,000インプレッションをテストデータに
先行研究に従い、タイトルからエンティティを抽出し、WikiDataのpretrained embeddingsを取得
テキストデータとしてはタイトルと本文両方利用
知識グラフとしてはWikiDataを利用
https://gyazo.com/079689a586bbd02915702b7d036d8714
KIMのハイパーパラメータ
各記事タイトルの先頭30単語と最初の5エンティティのみを利用
知識グラフからは各エンティティの近傍をランダムで10エンティティ
ユーザクリックは直近50クリックのみ
単語ベクトルはGloveで300次元、エンティティベクトルはTransEで100次元
GPUの制限で、単語ベクトルのみfine-tuning
Semantic Co-Encoder
transformerは10のattention heads、40次元のベクトルを出力
CNN 400 filters
Knowlege Co-Encoder
全てのMulti-head self-attention networkとCo-attention networkは5のattention headを持ち、20次元のベクトルを出力
KIMのアテンションの全クエリは100次元
dropout確率0.2
ネガティブサンプリングは各ポジティブサンプルに対して4のネガティブサンプル
Adamで最適化
AUC、MRR、nDCG5、nDCG10で評価
Performance Evaluation
比較手法
EBNR: ユーザ履歴からGRUでユーザの興味を学習
DKN: multi-channel CNN、ニュース表現をタイトルとエンティティから学習
DAN: CNNを使ってタイトルとエンティティから記事表現、LSTMでユーザ表現を学習
NAML: multiple attentive CNNでタイトル、本文、カテゴリ、サブカテゴリから記事表現を学習
NPA: attentionを使い、ユーザと記事の表現を学習
LSTUR: GRUと直近クリックから短期の興味を学習、IDベースで長期の興味を学習
NRMS: multi-head self-attentionで記事とユーザのクリック履歴からモデリング
KRED: 知識グラフを使いエンティティと近傍エンティティから記事表現を学習
FIM: CNNでユーザ履歴と候補記事のテキストからユーザと記事をマッチング
5回実験した平均値で比較
https://gyazo.com/12a58acf6a45045023092d4408d05752
KIMがどのベースラインよりも良い性能
ユーザと候補記事を独立で学習しているモデル(LSTUR、NRMS、KRED)より良い
KIMがユーザの複数分野への興味や候補記事の複数の側面を捉えられている
候補記事を考慮してユーザの興味をモデリングする手法(DKN、DAN)より良い
候補記事は複数の側面があるが、ユーザが興味あるのはその一部のみ
ユーザのクリック記事を使って相互に学習していないため興味の側面を捉えられていない
Ablation Study
2つのablation studyを行った
記事のモデリングに対するテキストと知識の効果
意味情報(テキスト)を除くと大きく性能が低下
ニュースを理解するのに重要
知識情報(エンティティと近傍エンティティ)を除くと性能低下
知識グラフにはよりリッチな情報が含まれている
知識グラフを利用することでニュースパーソナライズの性能が改善する可能性を示唆
https://gyazo.com/097f0d7d3926c0ef75e49727a87d0ddb
Co-Attention Networkの効果
Co-Attention NetworkをAttention Networkに置き換え
User-News Co-Encoder / Semantic Co-Attention Network
性能悪化
相互学習によって、ユーザの複数興味や記事の複数側面に対応
Knowledge Co-Encoder (Graph Co-Attention Network / Entity Co-Attention Network)
性能悪化
エンティティレベルの関連性は興味マッチングに有用
エンティティを相互に学習することが必要
https://gyazo.com/734185ad2391b54e1b2c6a6a3528082a
Effectiveness of Knowledge Modeling
Knowledge Co-Encoderの効果を評価
エンティティの関係性が重要か
比較対象
Average: 記事のエンティティと近傍Kのエンティティの平均ベクトル
KCNN: KCNN network in DKN
KGAT: knowledge graph attention network in KRED
Averageが最も悪い性能
記事のエンティティと近傍のエンティティはニュース理解において異なる情報量
KGATはKCNNより良い性能
近傍エンティティの扱いの違い
KCNNは単に近傍エンティティの平均ベクトルを利用
KGATは近傍エンティティ間の関係性をモデリングするためにgraph attention networkを利用
KIMの性能が最も良い
クリック記事と候補記事間のエンティティレベルの関係性を学習している
https://gyazo.com/6da7369ed499115f51eccede50aa7cf5
Case Study
https://gyazo.com/a2a6b74da930937ff08dd2d9ea08dccd
まとめ
KIM (Knowledge-aware Interactive Mathing) フレームワークを提案
ユーザのクリック記事と候補記事を相互に学習
テキストとエンティティ、エンティティ間の関係性を相互に学習
実世界のログを使って有効性を示した
所感
知識ベースよりも相互学習がメインだった
知識ベースの貢献もそこまではって感触
計算量大きそうだし、更新も大変そうなので使いやすさはあまり感じない
そもそも知識ベースに期待することが少し違っている気もしてきた