NRMS论文阅读笔记
Neural News Recommendation with Multi-Head Self-Attention论文阅读笔记
这个是一篇比较老的文章,但是比较经典,就来读一下:
Abstract
精确地建模新闻和用户对于新闻推荐至关重要,而捕捉单词和新闻的上下文对于学习新闻和用户表示也很重要。在本文中,我们提出了一种具有多头自关注的神经新闻推荐方法(NRMS)。
我们的方法的核心是一个新闻编码器和一个用户编码器。在新闻编码器中,我们使用多头自我注意功能,通过建模单词之间的交互作用,从新闻标题中学习新闻表示。在用户编码器中,我们从用户浏览的新闻中学习用户的表示,并使用多头自我注意来捕捉新闻之间的相关性。此外,我们通过选择重要词汇和新闻,应用附加注意来学习更多的新闻和用户表示。
Introduction
本文提出了一种多头自我关注(NRMS)神经新闻推荐方法。我们方法的核心是新闻编码器和用户编码器。在新闻编码器中,我们通过使用多头自注意来模拟词与词之间的交互,从而从新闻标题中学习新闻表征。在用户编码器中,我们通过使用多头自我注意来捕捉用户的相关性,从而从他们的浏览中学习用户的表征。此外,我们还对新闻和用户编码器进行了加法处理,以选择重要的词语和新闻,从而学习到更多信息丰富的新闻和用户表征。
Method
本文的主要框架如下,它包含新闻编码器、用户编码器和点击预测器三个模块。
新闻编码器
新闻编码器模块用于从新闻标题中学习新闻表征。它包含三层。第一层是单词嵌入,用于将新闻标题从单词序列转换为低维嵌入向量序列。将包含 M 个单词的新闻标题表示为 [w1,w2,...,wM]。通过这一层,它被转换成一个向量序列 [e1,e2,...,eM]。
第二层是词级多头自注意力网络。单词之间的交互对于学习新闻表征非常重要。 此外,一个词可能与同一条新闻中的多个词发生交互作用。例如,在上面的例子中,单词 "火箭 "与 "结束 "和 "胜利 "都有相互作用。因此,我们建议使用多头自我关注,通过捕捉词与词之间的交互来学习词的上下文表征。第 k 个注意力头学习到的第 i 个单词的表征计算如下:
\(\alpha_{i,j}^k=\frac{\exp(\mathbf{e}_i^T\mathbf{Q}_k^w\mathbf{e}_j)}{\sum_{m=1}^M\exp(\mathbf{e}_i^T\mathbf{Q}_k^w\mathbf{e}_m)},\\\mathbf{h}_{i,k}^w=\mathbf{V}_k^w(\sum_{j=1}^M\alpha_{i,j}^k\mathbf{e}_j),\)
\(\alpha_{i,j}^k\)表示第i个单词和第j个单词之间相互作用的相对重要性。
第i个单词的多头表示\(\mathbf{h}_i^w\)是由h个单独的自我注意头产生的表示的连接,也就是:\(\mathbf{h}_i^w=[\mathbf{h}_{i,1}^w;\mathbf{h}_{i,2}^w;...;\mathbf{h}_{i,h}^w].\)
第三层是加法词关注网络。同一条新闻中的不同单词在表示这条新闻时可能具有不同的重要性。例如,在图 1 的第二条新闻中,"NFL "比 "Today "对理解这条新闻更有参考价值。因此,我们建议利用注意力机制来选择新闻标题中的重要词语,从而学习到更多信息量更大的新闻表征。新闻标题中第 i 个词的注意力权重\(\alpha_i^w\)的计算公式为:
\(a_i^w=\mathbf{q}_w^T\tanh(\mathbf{V}_w\times\mathbf{h}_i^w+\mathbf{v}_w),\\\alpha_i^w=\frac{\exp(a_i^w)}{\sum_{j=1}^M\exp(a_j^w)},\)
新闻的最终表示是上下文词表示的加权求和,表述为:
\(\mathbf{r}=\sum_{i=1}^M\alpha_i^w\mathbf{h}_i^w.\)
用户编码器
用户编码器模块用于从用户浏览的新闻中学习用户的表征。它包含两层。第一层是新闻级多头自我关注网络。通常情况下,同一用户浏览的新闻文章可能具有一定的相关性。此外,一篇新闻文章可能会与同一用户浏览的多篇新闻文章产生互动。因此,我们建议应用多头自我关注,通过捕捉它们之间的交互来增强新闻的表征。第 k 个注意力头学习到的第 i 条新闻的表征表述如下:
\(\beta_{i,j}^k=\frac{\exp(\mathbf{r}_i^T\mathbf{Q}_k^n\mathbf{r}_j)}{\sum_{m=1}^M\exp(\mathbf{r}_i^T\mathbf{Q}_k^n\mathbf{r}_m)},\\\mathbf{h}_{i,k}^n=\mathbf{V}_k^n(\sum_{j=1}^M\beta_{i,j}^k\mathbf{r}_j),\)
第 i 条新闻的多头表征是由 h 个独立的自我关注头输出的表征的合并,也就是\(\mathbf{h}_i^n=[\mathbf{h}_{i,1}^n;\mathbf{h}_{i,2}^n;...;\mathbf{h}_{i,h}^n].\)
第二层是加法新闻关注网络。不同的新闻在代表用户时可能具有不同的信息量。例如,在图 1 中,第一条新闻比第四条新闻在用户兴趣建模方面信息量更大,因为后者通常会被大量用户浏览。因此,我们建议采用加法关注机制来选择重要新闻,以学习更多信息量更大的用户表征。第 i 条新闻的注意力权重计算公式为
\(a_i^n=\mathbf{q}_n^T\tanh(\mathbf{V}_n\times\mathbf{h}_i^n+\mathbf{v}_n),\\\alpha_i^n=\frac{\exp(a_i^n)}{\sum_{j=1}^N\exp(a_j^n)},\)
最终的用户表征是该用户浏览过的新闻表征的加权和,其表述为:
\(\mathbf{u}=\sum_{i=1}^N\alpha_i^n\mathbf{h}_i^n.\)
点击预测器
点击预测模块用于预测用户点击候选新闻的概率。将候选新闻\(D^c\)表示为\(r^c\)。点击概率得分\(\hat{y}\)由用户表示向量和新闻表示向量的内积计算得出,即\(\hat{y}=\mathbf{u}^T\mathbf{r}^c\)。
模型训练
我们使用负抽样技术进行模型训练。对于用户浏览的每条新闻(被视为正面样本),我们随机抽取 K 条在同一印象中显示但未被用户点击的新闻(被视为负面样本)。我们对这些新闻的顺序进行了调整,以避免可能出现的位置偏差。这些分数通过 softmax 函数进行归一化处理,计算出阳性样本的后点击概率如下:
\(p_i=\frac{\exp(\hat{y}_i^+)}{\exp(\hat{y}_i^+)+\sum_{j=1}^K\exp(\hat{y}_{i,j}^-)}.\)
我们将新闻点击概率预测问题重新表述为一个伪(K + 1)路分类任务,模型训练的损失函数是所有正样本 S 的负对数似然,表述如下:
\(\mathcal{L}=-\sum_{i\in\mathcal{S}}\log(p_i).\)



浙公网安备 33010602011771号