NRMG: News Recommendation With Multiview Graph Convolutional Networks论文阅读笔记
Abstract
存在的问题:
在学习新闻表征的过程中,目前大多数研究工作都没有充分利用新闻特征,这就很难学习到更全面的新闻表征。大多数研究工作只是从单一角度学习用户表征,这可能不足以学习多样化和动态的用户表征。
提出的方法:
因此,我们提出了一个多视图卷积网络(NRMG)新闻推荐系统。它包括两个部分:新闻表征和用户表征。知识内容协作网络用于从新闻内容和实体中学习新闻表征,而多视图卷积网络(GCN)则用于从用户的点击历史中学习用户表征。
NRMG 系统的优势在于,我们不仅通过构建子类知识图谱(KG)扩展了可用特征,还有效提高了新闻推荐系统准确学习新闻和用户表征的能力。
Introduction
为了在一定程度上解决新闻和用户建模方面的挑战,我们提出了一种具有多视图图卷积网络(NRMG)的新闻推荐系统。NRMG 系统利用一些有效的方法来准确学习新闻和用户的表征。学习新闻表征分为三个步骤。
首先,我们不仅使用新闻标题、摘要和类别等特征,还在这些特征之上使用从新闻标题和摘要中提取的实体。然后,我们使用大型 KG 维基数据来构建子类别 KG(有些工作只使用标题中的实体或内容中的实体)。
其次,我们利用 TransE 方法计算嵌入向量。最后,我们设计了一种知识-内容协同关注网络方法,用于新闻内容与实体的交互。主要原因是新闻中存在大量实体,但有些实体对学习新闻表征的贡献很小,我们称之为噪声实体。一方面,新闻内容与实体之间的互动可以丰富新闻表征。另一方面,这种方法可以减少噪声实体对学习新闻表征的影响。在学习用户表征方面,多视图卷积网络(GCN)可以有效地从多个子空间学习用户表征。它主要采用 GCN ,从多头注意力网络的每个子空间学习用户表征。首先,该方法可将用户行为的上下文关系转化为图结构,从而学习高阶行为关系。其次,利用多头注意力机制从多个子空间对用户行为进行建模。
本文的主要贡献如下:
- 我们利用标题和摘要中的实体以及标题和摘要的正常文本特征构建了一个子类别 KG。
- 我们提出了一种知识-内容协同关注网络,将实体与新闻内容高度关联起来,以减少噪声实体的干扰。
- 我们提出了一种多视角 GCN,用于从用户的历史点击序列中学习用户表征。
Method
NRMG 模型的整体结构如图 1 所示。新闻建模用于学习新闻表征。用户建模用于学习用户表征。点击预测模块用于计算候选新闻与用户表征之间的相似度。
新闻建模
新闻建模是新闻推荐系统中的一项重要任务。我们提出了一种高效的新闻表征学习方法,称为知识-内容协同编码器。如图 2 所示,它由内容协同编码器和知识协同编码器部分组成。它旨在从新闻内容和实体中学习新闻表征。
内容共编码器
如图 3 所示,本方法使用了新闻的标题、摘要和类别特征。考虑到它们具有不同的结构,我们采用了不同的方法来捕捉新闻表征。
首先是标题编码器,这里首先获取标题单词的嵌入,然后使用CNN来学习单词的上下文表示,最终获取的表示为:\([c_1^t,c_2^t,\ldots,c_n^t]\)。然后使用单词级注意力网络来给每个单词分配权重,最后按权重进行聚合。
之后是摘要编码器。摘要编码器用于从新闻摘要中学习新闻表征,跟标题编码器类似,也是先通过Glove获取单词的嵌入,不过后面是使用多头注意力网络来学习多个子空间的摘要表示,最后也经过一个注意力网络进行聚合。
最后是类别编码器,考虑到类别中单词的数量,我们使用密集层来捕捉类别表示。最后,类别表示如下:
\(\mathbf{r}^c=\mathrm{Relu}\big(\mathbf{V}_c\times\mathbf{e}^c+\mathbf{v}_c\big)\)
感觉这个比较像NAML论文的方法
知识共编码器
知识共编码器的结构如下:
该模块的目的是将知识图谱与新闻内容相结合。一方面,它可以增加可学习新闻特征的数量。另一方面,它可以减少噪声实体对学习新闻表征的影响。下面将介绍构建子类 KG 和减少噪声实体影响的方法。
知识图谱
第一步是从标题和摘要中提取相应的实体。第二步是从公开的大规模 KG Wikidata中获取其一阶实体,从而构建一个小型 KG \(G_s\)。最后,使用 TransE计算每个实体的嵌入表示
协同注意力网络
如图 4 所示,将标题和摘要的嵌入向量\(E_{1:N}^t\mathrm{~and~}E_{1:M}^a\)连接成一个新的向量\(E_{1:N+M}^{ta}\)。最后,我们采用多头自关注机制(Multihead)得到新闻信息表示\(r^{ta}\),计算过程如下:
\(\begin{aligned} E_{1:N+M}^{ta}& =\mathrm{Concat}\big(E_{1:N}^t,E_{1:M}^a\big)W^{ta} \\ \text{rta}& =\text{Multihead}\big(E_{1:N+M}^{ta},E_{1:N+M}^{ta},E_{1:N+M}^{ta}\big). \end{aligned}\)
KIEN
下文将介绍知识信息提取网络(KIEN)。如图 4 所示,该方法的目的是去除 KG \(G_s\) 中的噪声实体。首先,从新闻标题和摘要中获取的实体称为零层实体。这些实体是新闻中的重要信息。从大型 KG 中获得的相邻实体称为单层实体,例如\(r_0^t\)和 \(r_0^a\)。它们通常与零层实体有很强的相关性,但与新闻内容的联系较弱。它们都有噪声实体(噪声实体通常对学习新闻表征有负面影响)。众所周知,新闻内容是新闻主题最相关的特征。通过新闻内容过滤噪声实体特征更为有效。 因此,我们提出了一种有效的解决方案,利用新闻内容与 KG \(G_s\) 交互,选择重要的实体。我们将说明如何从标题和实体中学习新闻表征。
首先,KG Gs 中零层实体之间的关系 z 由多头自注意力网络捕捉。接着,我们将实体和标题的表示对齐。最后,零层实体的注意力查询向量 Q 与\(r_0^t\)和\(r^{ta}\)交互作用。新闻表示\(r_0^{te}\) 的计算方法如下:
\[\begin{aligned} &z=\text{Multihead}\big(r_0^t,r_0^t,r_0^t\big) \\ &Q=q^{T}\operatorname{tanh}(W_{t}r^{ta}z+b) \\ &E=\mathrm{Softmax}(Q)r_0^t \\ &T=\mathrm{Softmax}(Q^T)r^{ta} \\ r_0^{te}& =\text{Concat}(E,T)W^0. \end{aligned} \] 接下来,我们重复与第一步类似的操作。我们将\(r_0^{te}\)与一级实体交互。最后,内容和标题实体之间的信息交互结果用\(r_1^{te}\)表示。接下来我们重复这两个步骤。如图 4 左半部分所示,我们使用 KIEN 与内容表示和摘要实体进行交互。最后,交互结果用 \(r_1^{ae}\)表示。
聚合
如图 2 所示,我们利用注意力机制汇总所有新闻表征。注意力权重表示为 α。
\(\alpha=[\alpha^t,\alpha^b,\alpha^c,\alpha^{te},\alpha^{ae}].\)
标题的注意权重αt计算如下:
\(\begin{aligned}&\alpha^t=\mathbf{q}_v^T\tanh(\mathbf{U}_v\times\mathbf{r}_t+\mathbf{u}_v)\\&\alpha^t=\frac{\exp(\alpha_t)}{\sum_i^w\exp(a_i)}\end{aligned}\)
其余的几个权重的计算方式也是类似的,最终新闻的表示计算如下:
\(\mathbf{r}^\mathrm{new}=\alpha^t\mathbf{r}^t+\alpha^b\mathbf{r}^b+\alpha^c\mathbf{r}^c+\alpha^{te}\mathbf{r}^{te}+\alpha^{ae}\mathbf{r}^{ae}.\)
用户建模
该模块的目的是从用户的历史点击记录中学习用户兴趣表征。记录表示为\(u_n\),其中 k 为新闻数量。通过新闻建模获得的新闻表示为 u。为了更全面地学习用户兴趣表征,我们提出了多视图 GCN。它的重要组成部分分别是多头自关注机制和 GCN。多头自关注机制可以通过词与词之间的交互来建立序列中词与词之间的关系。这将有助于模型更好地理解文本中的每个单词。
本文提出了一种多视角 GCN。首先,输入向量 u 与矩阵 W Q 和 W K 相乘。这一步与多头自注意网络的 Q 和 K 的计算过程类似。然后,将其划分为多个子空间,得到 h 子空间下 u 中每个向量的注意力权重值 Ah
\(A_h=\mathrm{Softmax}\bigg[u\mathbf{W}_h^Q\cdot\big(u\mathbf{W}_h^K\big)^T/\sqrt{d_h}\bigg].\)
Ah 用作邻接矩阵,GCN 网络用于获取每个子空间下的用户表示 Zh。所有子空间通过注意力机制网络有选择地加权,得到最终的用户表示\(r^{user}\)
\[\begin{aligned} u_{h}^{l+1}& =\text{Relu}\bigg(D_h^{-1/2}A_hD_h^{-1/2}u_h^lW_h^l\bigg) \\ Z_{h}& =\mathrm{Softmax}(u_h^LW_h) \\ \text{Z}& =\mathrm{Concat}(Z_1,Z_2,\ldots,Z_K) \end{aligned} \]
预测和模型训练都是传统的方法,这里就不多讲解了。
NRMG算法的整体结构如下:
总结
最后整理一下,这篇文章第一篇看不是非常好懂,还是按照框架图来总结一下。
第一个部分是新闻建模,在新闻建模的过程中,新闻需要经过知识-内容共编码器,这个编码器包含两个部分,一个是知识编码器,另一个是内容编码器。
首先来说一下内容共编码器,也就是分别建模新闻的标题、摘要和类别。对于标题,因为比较短,就采用CNN来进行建模。对于摘要,因为文本较长,采用的是多头自注意力。前面两个建模了上下文之后还有经过一个注意力层。而类别就比较简单,直接经过一个dense层。
然后说一下知识共编码器。这部分是要将知识图谱和新闻内容结合,首先是先创建一个知识图谱。然后是用标题和摘要的嵌入表示进行连接,通过多头自注意力获取新闻的信息表示。然后是个人认为比较难理解的一部分,KIEN,这个部分是首先从新闻的标题和摘要中获取实体,称为第0层实体,然后从刚刚构建的知识图谱中获取这些实体的相邻实体。之后就按照图中那样进行多头自注意力网络获取标题的表示和摘要的表示。
从知识-内容共编码器中获取到这些表示后,我们就需要对这些表示来进行聚合,聚合也是根据这些表示进行一层注意力层之后获取到的权重来进行聚合的。
第二个重点就是用户建模,这里是提出了一个多视角的GCN,在构造邻接矩阵的过程中,使用了多头自关注机制,获取新闻表示中每个向量(也就是交互过的新闻中的单独一条新闻,每条新闻是一个向量)的注意力权重,然后用这个注意力权重来作为图卷积的邻接矩阵。(这个确实是一个比较新颖的想法),最后获取了用户表示。
标签:编码器,论文,mathbf,新闻,实体,NRMG,用户,笔记,表征 From: https://www.cnblogs.com/anewpro-techshare/p/18281249