Going Beyond Local: Global Graph-Enhanced Personalized News Recommendations
Motivation 選んだ理由
新しい推薦モデルの構築に使えると良さそう
Summary どんなもの?
既存手法では各ユーザーの視聴履歴に焦点を当てていて、複数のユーザー間のクリックの大局的な視点を欠いている
隠れたユーザー行動を発見するには不十分
候補記事のユーザー行動は少ない、もしくは全くないことが多い
グローバルなエンティティグラフを用いて候補ニュースを改善する
やりたいこと
複数のユーザーからのクリックに基づいて、この global news graph をどのように適切に生成し、ニュース推薦システムと統合するか
GLORY (Global-LOcal news Recommendation sYstem) モデルを提案
グローバルな表現とローカルな表現を組み合わせる
グローバルな表現の学習
Global-aware Historical News Encoder
Global Candidte News Encoder
https://gyazo.com/e2879cd91a014682fad06d5d7faea3d3
Contribution 先行研究と比べてどこがすごい?
記事推薦手法3つ
Feature-based News Recommendation
伝統的な推薦モデル
ユーザーや視聴したニュースの特徴を活用する
FM (Factorization Machine) 手法はインタラクションデータから情報を学習するために利用される
LibFM は各ニュースの特徴を得るために採用され、学習した特徴を用いて推薦を行う
一方で、DeepFM は、FMコンポーネントとDeepコンポーネントを利用してより深い繋がり情報を取得する
アプローチの限界
候補ニュースの履歴がスパースであったり、全くなかったりする
→ 効果的な表現を学習することが困難
Neural News Recommendation
ニュース推薦は、豊富なテキスト情報が利点
ニュース表現を学習するためにCNNを、ユーザー表現を学習するためにGRUを利用(NAML)
一方、NRMS はニュースとユーザーモデリングの両方に Multi head self-attention 機構を採用
より複雑なモデル
HieRec
ユーザー表現を学習するために、トピックとサブトピックを組み合わせた3層の階層構想を使用
MINER
32 のユーザー関心ベクトルを得るために不一致正則化と category-aware アテンション重み付けを備えた poly attention スキーマを採用
Graph-based News Recommendation
ニューステキストの意味表現をモデル化するためにNLPだけに頼るのではなく、ニュース表現を学習するためにグラフを利用するアプローチもある
GERL
テキストベースのニュース表現をニュースのタイトルとトピックから学習し、
グラフベースのニュース表現を user-news graph から学習
GNewsRec
長期の興味関心を発見するために、異種の(heterogeneous) user-news-topic graph を利用
User-as-graph
ユーザーの視聴履歴によって形成される局所的なニュースグラフを集約するために、異種のグラフプーリング手法を提案した
例 DIGAT ref.20
ニュースコンテンツの候補を充実させるために、semantically related methods を用いて構築された意味増強グラフを利用
コンテンツベースやグラフベースの手法を含む関連研究は、豊富なグローバルなユーザとニュースの相互作用情報を効果的に利用することができない
現在のユーザをモデル化するためのコンテキスト情報に対する複雑なモデルに重点を置いている
大局的なニュースに対する包括的な理解が欠けている
Method 技術や手法のキモはどこ?
global な関係を得るために2 つの encoder を採用
global-aware historical news encoder
視聴履歴による意味的関連性よりも広範かつ暗黙的な関係情報を提供する
global-aware candidate news encoder
候補記事同士のより効果的な関連を提供するため、global entity graph を使用する
https://gyazo.com/0dd6989e3de94aa013fa0a0687cbe971
local 情報
Local News Representation
local news encoder はニューステキストから local news representation を得ることを目的としている
単語埋め込みレイヤー(初期化 GloVe)
単語列 $ [w_1, w_2, ..., w_T] から単語埋め込み表現 $ x_n = [x_1^\omega;x_2^\omega;...;x_T^\omega]に変換する
MSA (Multi head self-attention) で単語表現を学習
https://gyazo.com/5a52de372ac09e2749e7f81b8cfd258d
単語表現を集約したニュース表現 $ h^{ln} を学習
https://gyazo.com/6d88c72e543b5203a4609fdf04df2e40
Local Entity Representation
local entity representation を学習するために local entity encoder を採用
WikiData によって事前学習された TransE を使用
entity 系列を、エンティティ埋め込みベクトル $ \mathbf{x}_e = [x_1^e, x_2^e, ..., x_E^e] に変換
self-attention を使って、エンティティ埋め込み表現$ X_e を得る
上式4 で $ X_e を集約して local entity representation を得る
Global-aware Historical News Encoder
https://gyazo.com/9709a261ebad33b09b52735e0719dc41
Global News Graph → Graph Encoder → Historical News Aggregator
Global News Graph
$ G_n = (V_n, E_n)で表す $ V_n は記事、$ E_n はエッジ
edge $ (v_i, v_j) は同じユーザーによって $ v_i のすぐ後に $ v_j が読まれたことを示す
edge の重みは全ての視聴履歴による$ (v_i, v_j)の発生頻度によって決定される
各ユーザーの視聴履歴に対して、$ G_{sub}^u = (V_{sub}^u, E_{sub}^u)というサブグラフを抽出できる
特定ユーザーの興味関心の大局的な視点を得られる
ユーザー $ u の視聴履歴 $ H_u の各ニュースに対して、global news graph の multiple hops 記事近傍を選択する
それぞれの記事に対して、重みによる Top $ M_nの近傍を選択
subgraph の global news embedding $ h^{gn} を得るために、GNN を利用
系列ベースの隠れた行動情報を抽出するために GGNN を使用
https://gyazo.com/e675d52a7f5948bb1f9aad0dac887bcf
Historical News Aggregator
各視聴記事$ d_kに対して
局所ニュース表現$ h^{ln}、局所エンティティ表現$ h^{le}、大局的タイトル表現$ h^{gn}がある
系列的なニュース表現$ n_kを学習するために attention-pooling network を使用
https://gyazo.com/ad32614397889cd2d58165ecfeba2cc3
User Encoder
ユーザーの視聴履歴$ H_uの各ニュースの埋め込み表現$ n_kを取得した後、Multi head attention と attention pooling 層を採用し、最終的に eq. 4 と同様のユーザー表現$ \mathbf{emb}_{user}を学習する。
Global-aware Candidate News Encoder
候補記事にはユーザーとのインタラクション履歴が欠けていることが多い
類似したグローバルなエンティティグラフを用いて候補ニュースを改善する
global-aware candidate news encoder を提案
https://gyazo.com/9709a261ebad33b09b52735e0719dc41
Global Entity Graph
global entity graph の構築には、global news graph と似たアプローチを採用
ただし、無向グラフを適用する
global entity graph は fig 3 のように$ G_e = (V_e, E_e)で表される
$ V_eはエンティティ、$ E_eはエッジ
エンティティエッジは学習データ内の各ユーザーの視聴履歴から得られる
無向エッジの$ (v_i, v_j)
$ v_jが最後の記事のエンティティで$ v_iが次の記事のエンティティ
$ (v_i, v_j)の重みは発生回数で決定される
Global Entity Encoder
global entity graph のノードの次数は、global news graph に比べてはるかに多くなることが予想される
エンティティサブグラフを使うよりも、隣接グラフを使う方が便利で簡潔
候補記事$ d_cの各エンティティの TOP $ M_e近傍エンティティをエッジの重みに基づいて決定
local-view entity encoder と同じエンティティ埋め込み層を使用
最終的な埋め込み表現$ x_c = [x_1^c, x_2^c, ..., x_{E*M_e}^c]
eq. 4 と同様に、MSAを使用して entity token の埋め込み表現$ \mathbf{X}_c = \text{MSA}(\mathbf{x}_c)を学習
隣接エンティティ表現$ h_c^{ge}を集約するために attention network を使用
Candidate News Aggregator
それぞれの候補記事$ d_c
局所記事表現$ h_c^{ln}、局所エンティティ表現$ h_c^{le}、大局的エンティティ表現$ h_c^{ge}
候補記事の埋め込み表現$ \mathbf{emb}_{cand}を学習する
これら3つの埋め込み表現を集約$ h^c = [h_c^{ln}; h_c^{le}; h_c^{ge}]
eq. 9 のように attention pooling network を使用
News Recommendation
学習に negative sampling を採用
各行動セッションのクリックされた候補記事を正例($ n_i^+)
同じセッション内でクリックされなかった候補記事$ K_{neg}個を負例($ n_i^1, n_i^2, ..., n_i^{K_{neg}})
$ K_{neg}個をランダムサンプリング
上記の各記事に対してクリックスコアを予測
$ \mathbf{\hat{y}} = [\hat{y}_i^+, \hat{y}_i^1, \hat{y}_i^2, ..., \hat{y}_i^{K_{neg}}]
$ \mathbf{\hat{y}_i} = \text{softmax}(\mathbf{emb}_{user} \cdot \mathbf{emb}_{cand})
最適化
positive samples log-likelihood loss
$ \mathcal{L}_{NCE} = -\sum_{i=1} \text{log} \frac{exp(\mathbf{\hat{y}}_i^+)}{exp(\mathbf{\hat{y}}_i^+) + \sum_{j=1}^{K_{neg}}exp(\mathbf{\hat{y}_i^j})}
Experiments どうやって有効だと検証した?
2つのデータセットを用いて評価
MIND
Microsoft News の匿名化された行動ログ
who had at least 5 news clicks during 6 weeks from October 12 to November 22, 2019
https://gyazo.com/8bee05ade6ef8488c72eb1af5e375fb7
Adressa
ノルウェーのニュース記事
light version which includes 1 week (from 1 January to 7 January 2017)
Evaluation Metrics
AUC
Mean Reciprocal Rank (MRR)
normalized discounted cumulative gain (nDCG@N) with 𝑁 = 5, 10
Baseline
Feature-base Methods
LibFM 幅広く用いられている
DeepFM FMに深層学習技術を合体したもの
Neural Recommendation Methods
DKN
knowledge-aware CNNを使用
ニューステキストと知識エンティティからニュース表現を学習
NPA
personalized attention network を使用
NAML
using the multi-view attention network learn representation based on different news article features
Graph-based Methods
GERL
GNewsRec
User-as-Graph
DIGAT
結果
MIND
https://gyazo.com/7d9b5caaa42c80ce909b568a6562dccd
neural model が feature base より強い
graph ベースのものよりも良く、global news graph がニュース埋め込み表現を学習するのに一助となっている
Adressa
https://gyazo.com/a8c9aca65e3ac9a287981702d3e2673c
Adressaではニュースのタイトルのみを使用、カテゴリやエンティティは使用しない
タイトルのみに依存するオープンソースの手法をいくつか選択
明示的なエンティティ情報がなくても、GLORYは最高のパフォーマンスを達成
他のユーザーからの過去のニュースインタラクションが、セマンティクスを超えた関連性の発見に役立つ、隠れた行動情報を提供できることを示唆している
LSTURはNPAを上回り、GRU法が一連の視聴履歴を検出する大きな能力を持つことを示している。
NRMSはMRR、NDCG@5、NDCG@10で2番目に優れている
Multi Head Self-Attention がより有益なニュースやユーザ表現を学習するために重要なニュースを効果的に選択
GLORYモデルはMulti Head Self-Attention によるニュース表現の学習と、global news graphからのシーケンス情報を活用
情報をより良く利用
Ablation Study
GLORYの各コンポーネントの有効性の理解が目的
エンティティとニュースグラフについて実験
1. フルモデル
2. w/o g-news(global news graph なし)
3. w/o g-entity(global entity graph なし)
4. w/o g-news / entity(global news graph と global entity graph なし)
各実験において、他のすべての設定はフルモデルと変わらず、1つのコンポーネントのみが置き換えられるか削除
https://gyazo.com/6330c99813b3fd9d49b87db63a2e386a
フルモデルが最も良い
global news graph が最も大きな影響を与える
AUCの指標は68.15から67.53に低下
ローカルなセマンティクスを超えた隠れた情報を提供し、ニュース推薦のパフォーマンスを効果的に向上
Graph Encoder Variations
Graph Convolution Network(GCN)、Graph Attention Network (GAT)、GraphSAGE と比較
GGNN が他のモデルより強い
GRU を利用しているので隠れたクリック順序情報を学習できる
https://gyazo.com/e3b6ad49aaceae2aa3567435a1f617bb
Analysis on Hyperparameters
3つのハイパラについて調査
ニュースの隣接数$ M_n
ホップ数$ K
隣接エンティティ数$ M_e
Fig 5 はニュースの隣接数 $ M_n, M_eについて調査
ニュースの近傍数を増やしても継続的に向上するわけではない
Fig 5a $ K = 2, M_e = 8の時、$ M_n = 10が最適
Fig 5b $ K = 2, M_n = 10の時、$ M_e = 8が最適
近傍数が多くなりすぎると、有効な関連付け以外の情報に妨害される
Fig 6は$ Kの影響を調査
$ K = 2が最適
不十分だと視聴履歴の全体を網羅できず、過剰だとノイズになり、実行も遅くなる
https://gyazo.com/522efa96897ab4f6ce1d6bff2e8b0b81
Impact of Graph Construction
Global News Graph
異なる global news graph の構築方法を調査
1. Dir-Seq (Directed Sequential) ニュースの視聴履歴の順序を持つ有向グラフ
2. Undir-Seq (Undirected Sequential) 無向グラフ
視聴順を考慮できる Directed Sequential の方が良い
co-occurrence composition よりも Undirected Sequence の方が良い
共起ではなく隣接という情報が重要なことを示唆
https://gyazo.com/47b7219ef28292f3ffdeefe6e92a64f9
Global Entity Graph
directed sequential composition で構成した global news graph
1. Intra-news & Inter-news Directed
各ニュースの全てのエンティティを接続
異なるニュース記事間のエンティティは有向接続
2. Intra-news & Inter-news Undirected
記事内の全てのエンティティを接続
異なるニュース記事間のエンティティは無向接続
3. Inter-news Directed
異なるニュース記事間のエンティティのみが有向接続
4. Inter-news Undirected
異なるニュース記事間のエンティティのみが無向接続
ニュース内のエンティティ接続がない方が良い
ニュース内では主に意味的に関連した隣接エンティティを追加
ニュース間だとよりグローバルな関連が捉えられている可能性がある
ニュース間の無向接続が良い
接続の少ないエンティティがより多くの隣接エンティティを持てるので、モデルの表現力が向上する
https://gyazo.com/c3dce73529422ea334794b5d0c18bb3a
Recommendation Diversity
GLORY と NRMS の推薦多様性を評価
ILAD@N (N = 5, 10)
ILMD@N (N = 5, 10)
GLORY では推薦多様性が向上している
NRMS は、現在のユーザーの過去のニュースから学習した局所的な特徴に基づく推薦
GLORY は、グローバルな情報を活用し、より幅広いコンテンツ多様性を提供する
読者メモ:
NRMSは似たようなものしか推薦されない
意味的には関連していなくてもユーザーがクリックしそうな記事を推薦できる
https://gyazo.com/80b9b989617c707419a699f78c4d6078
CASE STUDY
https://gyazo.com/40d1ee4e684127693a7adad2df2b57ca
Fig 7 は MIND-small テストセットからのランダムサンプル(1ユーザー)
一番上はユーザーの完全な視聴履歴
カテゴリがニュースから金融まで様々
視聴履歴と選択した記事の関係を明らかにするには、意味的な分析だけでは不十分
真ん中の表が、ユーザーの視聴履歴によって global news graph から抽出されたサブグラフから選択した関連記事
一番下が実際にユーザーが選択した候補記事
GLORY は global news graph から NFL に関連する記事をいくつか特定できる
さらに、候補記事中の NFL というエンティティが、NFL チームである Cowboys と関連性が高いことを認識する
その結果、GLORY は選択された候補記事を 1 位にランク付けし、NRMS は 38 位にランク付けする
Discussion 議論はある?
学習効率の問題
global news graph と global entity graph の2つが必要
local 情報だけの時に比べて必要メモリと時間が増加
動的に変化する実世界のデータをテストできない
学習と検証を静的な(期間が決まっている)2つのデータセットを使った
今後の課題
ニュースの鮮度やユーザの行動を考慮した動的グローバルグラフの研究を継続
リアルタイムオンラインレコメンデーションシステムに適したモデルを構築