GLORY论文阅读笔记

Going Beyond Local: Global Graph-Enhanced Personalized News Recommendations论文阅读笔记

Abstract

现存的问题:

​ 近期的大多数工作主要侧重于使用先进的自然语言处理技术从丰富的文本数据中提取语义信息,并采用基于内容的方法从局部历史新闻中提取信息。然而,这种方法缺乏全局视角,未能考虑到语义信息之外的用户隐藏动机和行为。

解决方案

​ 为了应对这一挑战,我们提出了一个名为 GLORY的新模型,它将从其他用户那里学到的全局表征与局部表征相结合,以增强个性化推荐系统。为此,我们构建了一个全球感知历史新闻编码器,其中包括一个全球新闻图,并采用门控图神经网络来丰富新闻表征,从而通过历史新闻聚合器来融合历史新闻表征。同样,我们将这一方法扩展到全球候选新闻编码器,利用全球实体图和候选新闻聚合器来增强候选新闻表示。

Introduction

​ 传统的新闻推荐方法主要关注的是每个用户的单独阅读历史(即使用单个用户的历史新闻点击序列来构建该用户的表征),缺乏对多个用户的新闻文章和点击的全局边界视图,可能不足以挖掘出更多隐含的隐藏用户行为。

​ 为了解决上述问题,我们提出了一个新模型--GLORY(Global-LOcal news Recommendation sYstem)。由于历史新闻交互数据可以提供比语义相关性更广泛、更隐含的关系信息,我们提出了一种全局感知历史新闻编码器,具体来说,就是利用全局新闻图为历史新闻提供全局视角信息。同时,针对候选新闻的用户行为稀疏问题,我们提出了全局感知候选新闻编码器,利用全局实体图为候选新闻提供更有效的关联。接下来,我们利用多头自关注机制从历史新闻中提取用户兴趣。最终的匹配得分来自用户新闻向量和候选新闻向量。

​ 本文的主要贡献如下:

  • 据我们所知,我们首次在新闻推荐领域提出了从全局角度构建同构全局新闻/实体图的方法,从而能够更有效地利用丰富的历史交互信息;
  • 我们引入了全局感知历史新闻编码器和全局感知候选新闻编码器,它们分别利用全局新闻图和全局实体图来增强历史新闻和候选新闻的表示;

Method

​ 我们提出的 GLORY 方法侧重于通过利用全局新闻图来增强历史新闻的表示,并通过全局实体图来改进候选新闻的表示。首先,我们从局部视角学习新闻文本和新闻实体的表示。然后,我们采用全局感知历史新闻编码器和全局感知实体新闻编码器。最后,我们采用简明用户编码器和新闻推荐组件。

​ 本文的框架如下:

pkBVGzd.png

局部表示

​ 首先,我们需要从新闻文本和新闻实体中学习局部新闻表示h𝑙𝑛和局部实体表示h𝑙𝑒。对于每个用户行为,我们只考虑来自用户𝑢的点击历史序列Hu的最新的𝐿ℎ𝑖𝑠点击新闻。在这项工作中,我们只使用新闻标题作为新闻文本,对于每个新闻标题,我们截断第一个𝐿𝑡𝑖𝑡𝑙𝑒单词作为输入。

局部新闻表示

​ 局部新闻编码器旨在从新闻文本中获取局部新闻表征。它包括一个词嵌入层,我们使用预先训练好的 GloVe 词嵌入作为初始化,用于将新闻文本从一串词 [𝑤1,𝑤2, .. . ,𝑤𝑇]转换为词嵌入向量 \(\mathbf{x}_{n}=[x_{1}^{\omega};x_{2}^{\omega};\ldots;x_{T}^{\omega}],\)的序列,然后通过文本多头自注意(MSA)层学习词表征 X𝑛:

\[\begin{aligned} \mathbf{X}_{n}=\mathrm{MSA}(\mathbf{x_{n}})& =\mathrm{Concat}(\mathrm{head}_1,\ldots,\mathrm{head}_h)\cdot\mathrm{W}^O, \\ \text{where head}_i& =\mathrm{Att}(\mathbf{x}_n\cdot\mathbf{W}_i^Q,\mathbf{x}_n\cdot\mathbf{W}_i^K,\mathbf{x}_n\cdot\mathbf{W}_i^V), \\ \mathrm{Att}(Q,K,V)& =softmax(\frac{QK^\top}{\sqrt{d_k}})V. \end{aligned} \]

​ 由于每个用户在历史上都有多个新闻,因此我们采用了一个文本注意层,通过聚合单词表示来学习局部新闻表示h𝑙𝑛:

\[\mathbf{h}^{ln}=\sum_{i=1}^T\alpha_i^\omega x_i^\omega,\quad\alpha_i^\omega=\frac{exp(\mathbf{q}_\omega^\top\tanh(\mathbf{W}^\omega\cdot\mathbf{X}_n^i))}{\sum_{j=1}^Texp(\mathbf{q}_\omega^\top\tanh(\mathbf{W}^\omega\cdot\mathbf{X}_n^j))}, \]

局部实体表示

​ 此外,我们还采用了局部实体编码器来学习局部实体表征。这一过程从实体嵌入层开始,该层合并知识图谱中的信息,我们使用基于 WikiData 2 的预训练 TransE 实体嵌入,将实体序列转换为实体嵌入向量序列 \(\mathbf{x}_{e}=[x_{1}^{e};x_{2}^{e};\ldots;x_{E}^{e}].\)。随后,我们使用实体自注意力网络学习实体表征 X𝑒,并使用注意力网络聚合多个实体,得到局部实体表征 h 𝑙𝑒。

全局感知的历史新闻编码器

​ 为了超越局部信息,我们引入了一种新颖的具有全球感知能力的历史新闻编码器来合并全球信息和局部信息。

全局新闻图和全局实体图的示意图如下:

pkBVTSJ.png

全局新闻图

​ 全球新闻图表用于总结用户的阅读历史。我们展示了一个有向的全局新闻图,表示为𝐺𝑛=(𝑉𝑛,𝐸𝑛),其中𝑉𝑛和𝐸𝑛分别表示新闻文章和边集。为了构造这个图,我们从训练数据集中的每个用户的阅读历史中收集边。具体来说,向图中添加了一条有向边(𝑣𝑖,𝑣𝑗),表示同一用户在𝑣𝑖后立即读取了新闻项𝑣𝑗。边缘权重由所有阅读历史中发生的频率决定

图编码器

​ 对于每个用户的历史记录,我们从全局新闻图中提取子图 \(G_{sub}^u=(V_{sub}^u,E_{sub}^u)\)来捕捉特定用户兴趣的全局视角。对于用户 𝑢的每条新闻 Hu ,我们都会从全球新闻图中选择多跳的新闻邻居。对每一跳,我们根据边的权重选择前𝑀𝑛个邻居。我们采用图神经网络(GNN) 对子图进行编码,得到全局新闻嵌入 h 𝑔𝑛:

\(h^{gn}=GNN(h^{ln})\)

​ 虽然图编码器有多种选择,但在这里我们应用了门控图神经网络(GGNN),它使用门控递归单元(GRU)来捕获基于序列的隐藏行为信息:

\[\begin{gathered} \mathbf{h}^{(0)}=\mathbf{h}^{ln}, \\ \mathbf{m}_{i}^{(l+1)}=\sum_{j\in\mathcal{N}(i)}W_{g}\cdot\mathbf{h}_{j}^{(l)}, \\ \mathbf{h}_{i}^{(l+1)}=\mathrm{GRU}(\mathbf{m}_{i}^{(l+1)},\mathbf{h}_{i}^{(l)}). \end{gathered} \]

历史新闻聚合

​ 对于每一篇历史新闻文章𝑑𝑘,我们都有局部新闻表示h𝑙𝑛,局部实体表示h𝑙𝑒和全局标题表示h𝑔𝑛。我们现在利用一个注意力池网络来通过聚合这三个表示\(h^k=[\mathbf{h}^{ln};\mathbf{h}^{le};\mathbf{h}^{gn}]\)来学习历史新闻表示n𝑘

\(\mathbf{n}_k=\sum_{i=1}^3\alpha_i^h\mathbf{h}_i^k,\quad\alpha_i^h=\frac{exp(\mathbf{q}_h^\top\tanh(\mathbf{W}^h\cdot\mathbf{h}_i^k))}{\sum_{j=1}^3exp(\mathbf{q}_h^\top\tanh(\mathbf{W}^h\cdot\mathbf{h}_j^k))}.\)

用户编码器

​ 我们简要介绍了用户编码器的体系结构。我们在给定的用户阅读历史𝐻𝑢中获得每个新闻的新闻嵌入n𝑘后,我们采用多头注意层和注意池层,最终学习用户表示emb𝑢𝑠𝑒𝑟,就像学习局部新闻表示那样

全局感知的候选新闻编码器

​ 候选新闻往往缺乏用户交互历史。因此,我们不仅可以利用全局新闻图增强历史新闻,还可以利用类似的全局实体图改进候选新闻。因此,我们提出了一种新颖的全局感知候选新闻编码器

全局实体图

​ 为了构建全球实体图,我们采用了与全球新闻图类似的方法,但采用了无向图。全局实体图表示为 𝐺𝑒 = (𝑉𝑒, 𝐸𝑒 ),其中 𝑉𝑒 和 𝐸𝑒 是实体和边的集合。实体边来自每个用户在训练数据集上的阅读历史。一条无向边(𝑣𝑖 , 𝑣𝑗)意味着𝑣𝑗是最后一篇新闻文章的实体,而𝑣𝑖是随后一篇新闻文章的实体。(𝑣𝑖 , 𝑣𝑗)的边权重由新闻边的出现次数决定。

全局实体编码器

​ 由于实体数量明显少于新闻文章数量,全局实体图中节点的平均度数要高得多。因此,直接使用相邻实体比使用实体子图更方便、更简洁。同样,我们根据边权重为候选新闻𝑑𝑐中的每个实体选择前𝑀𝑒邻居实体,并使用与局部视图实体编码器相同的实体嵌入层,最终嵌入表示为 \(\mathbf{x}_{c}=[x_{1}^{c},x_{2}^{c},...,x_{E*M_{e}}^{c}]\)。我们利用𝑀𝑆𝐴来学习实体标记表征 X𝑐 = MSA(x𝑐 ) 和注意力网络来聚合相邻的实体表征 \(h_c^{ge}\)

候选新闻聚合器

​ 对于每篇候选新闻文章𝑑𝑐,我们有局部新闻表征 \(h_c^{ln}\)、局部实体表征 \(h_c^{le}\)和全局实体表征 \(h_c^{ge}\)。我们使用注意力汇集网络,通过汇集这三个表征 \(\mathbf{h}^c=[\mathbf{h}_c^{ln};\mathbf{h}_c^{le};\mathbf{h}_c^{ge}],\)来学习候选新闻表征 emb𝑐𝑎𝑛𝑑

新闻推荐

​ 我们在训练过程中采用了负抽样技术。对于训练数据集中的每个行为会话,每条被点击的候选新闻都被表示为正样本 𝑛𝑖 + ,而我们则随机选取同一会话中未被点击的候选新闻作为负样本 \([n_i^1,n_i^2,...,n_i^{K_{neg}}]\)。随后,我们通过对用户嵌入式emb𝑢𝑠𝑒𝑟进行内积,估算出每条新闻的点击得分,即 \(\hat{\mathbf{y_{i}}}=[\hat{y}_{i}^{+},\hat{y}_{i}^{1},\hat{y}_{i}^{2},...,\hat{y}_{i}^{K_{neg}}]\),通过对用户嵌入emb𝑢𝑠𝑒𝑟和所有样本emb𝑐𝑎𝑛𝑑进行内积,其中包含一个正样本和𝑛𝑒𝑔负样本。最后,在模型训练过程中,我们对训练样本集的正样本对数似然损失 L𝑁𝐶𝐸 进行优化:

\[\hat{\mathbf{y}}_{i}=softmax(\mathbf{emb}_{user}\cdot\mathbf{emb}_{cand}),\\\mathcal{L}_{NCE}=-\sum_{i=1}\log\frac{exp(\hat{\mathbf{y}}_{i}^{+})}{exp(\hat{\mathbf{y}}_{i}^{+})+\sum_{j=1}^{K_{neg}}exp(\hat{\mathbf{y}}_{i}^{j})}. \]

总结

​ 最后整理总结一下,按照模型结构图来整理一下

​ 首先是全局新闻子图,这个图是有向图,从i到j的边代表用户在读完i之后立刻读j。

​ 然后是全局感知的历史新闻编码器,图编码器部分利用局部新闻嵌入作为输入,利用GGNN进行卷积来获取全局新闻嵌入,之后对新闻进行聚合,聚合用了三个部分,分别是局部新闻表示,局部实体表示和全局新闻表示,最后获取新闻的表示。这个新闻编码器的目的是为了后面获取用户的嵌入

​ 第一层的最后一个部分是用户编码器,用户编码器是利用了Transformer结构,将上一步获取的新闻表示(在用户阅读历史里的新闻)通过多头自注意力层来获取用户表示\(emb_{user}\)

​ 然后看一下图的第二行,首先是获取实体表示,通过注意力网络获取实体的嵌入。

​ 之后是全局感知的候选新闻编码器,要新获取实体图,实体图的构建方式采用无向图,这个原文写的很怪,说是i与j产生交互代表着j是最后一篇新闻的实体。i是后续文章的实体,图上也没表达清楚,得去看代码。

​ 获取了图之后就按照新闻那样经过一个编码器和聚合器,最后获取新闻的嵌入表示\(emb_{cand}\)

​ 最后利用获取的着两个嵌入表示来进行预测。

posted @ 2024-06-19 15:02  ANewPro  阅读(33)  评论(0编辑  收藏  举报