AMM: Attentive Multi-field Matching for News Recommendation论文阅读笔记
Abstract
现存的问题:
个性化新闻推荐是帮助用户找到感兴趣新闻的关键技术,而如何精确匹配用户兴趣和候选新闻是新闻推荐的核心。现有研究一般通过聚合用户浏览过的新闻来学习用户的兴趣向量,然后将其与候选新闻向量进行匹配,这可能会失去文本语义匹配的推荐信号。
提出方法:
在本文中,我们提出了一种用于新闻推荐的多字段匹配(AMM)框架,该框架捕捉每条浏览新闻与候选新闻之间的语义匹配表征,然后将其聚合为最终的用户-新闻匹配信号。此外,我们的方法还结合了多领域信息,设计了领域内和跨领域匹配机制,利用不同领域(如标题、摘要和正文)的互补信息,获得多领域匹配表征。为了实现全面的语义理解,我们采用了最流行的语言模型 BERT 来学习每个浏览-候选新闻配对的匹配表征,并在聚合过程中加入关注机制,以表征每个匹配表征对于最终用户-新闻匹配信号的重要性。
Introduction
再次强调问题,现有的方法大多将每个用户和新闻表示为单一向量,可能会丢失文本匹配信号(如词级关系)。
因此,我们的方法不是简单地将用户浏览的新闻作为一个整体来建模,而是重点关注每一对浏览-候选新闻之间的关系,以捕捉细粒度的语义匹配表示。此外,这种配对设计便于在线服务,匹配表示可以离线存储,避免重复计算。在此,我们首先利用 BERT 学习每个浏览-候选新闻配对在不同语义层次上的匹配表征,然后将它们汇总为最终的用户-新闻匹配信号。
此外,上述方法基于单视角新闻信息或多视角信息来学习新闻之间的语义相关性,这些方法只利用了字段内的语义相关性(如标题-标题、正文-正文)。但有时,跨字段信息(如标题-摘要、标题-正文)可能对新闻匹配有益。例如,𝑛𝑒𝑤𝑠𝑎 的标题信息丰富,而𝑛𝑒𝑤𝑠𝑏 的标题只是吸引人,在这种情况下,𝑛𝑒𝑤𝑠𝑎 的标题和𝑛𝑒𝑤𝑠𝑏 的正文之间的匹配可能更好。因此,与每条新闻相关的多个字段可能包含互补信息,这促使我们学习多字段(字段内和字段间)匹配表征。
在本文中,我们提出了一种 "多领域匹配"(AMM)框架,该框架可以捕捉每一对浏览-候选新闻的多领域语义匹配表征,然后将这些表征聚合起来,作为最终的用户-新闻匹配信号,用于新闻推荐。这项工作的主要贡献概述如下:
- 我们提出了一种新的分离浏览候选新闻对匹配方法来捕获文本语义匹配信号,有利于在线搜索。
- 我们设计了 AMM 框架,以场内和跨场方式提取多场匹配表征,从而深入挖掘用户兴趣。
Method
下图显示了 AMM 的整体架构。首先,我们为每条浏览过的候选新闻构建多字段配对输入。然后,使用匹配编码器提取每个配对输入的匹配表示。最后,我们将所有配对的匹配表征汇总到用户-新闻信号中,以估计点击概率。我们将在下面的小节中介绍每个组件。
多领域匹配
不同领域的新闻通常可以相互补充。为了更好地对浏览过的候选人进行匹配编码,我们将字段内匹配和跨字段匹配作为多字段信息加以利用,以增强匹配表示。
给定用户浏览的新闻\([N_1,N_2,\ldots,N_i]\)和候选新闻 𝑁𝑥,对于每个浏览-候选新闻对(𝑁𝑖 , 𝑁𝑐),我们构建多字段对输入为\([N_i^m,N_c^n]\)其中 𝑚 ∈ {𝑡, 𝑎, 𝑏}, 𝑛 ∈ {𝑡, 𝑎, 𝑏} 和 𝑡, 𝑎 和 𝑏 分别是新闻标题、摘要和正文。我们将新闻标题 𝑁𝑡 命名为词序列\([w_1^t,w_2^t,\ldots,w_{|N^t|}^t]\),新闻摘要 𝑁𝑎 命名为\([w_1^a,w_2^a,\ldots,w_{|N^a|}^a]\),新闻正文𝑁𝑏命名为\([w_1^b,w_2^b,\ldots,w_{|N^t|}^b]\),其中 |𝑁𝑡 | 和 |𝑁𝑎 | 和 |𝑁𝑏 | 分别是标题、摘要和正文的长度。
如图 1 所示,在本研究中,不仅获得了\([N_i^t,N_c^t]\)(标题和题目)这样的字段内配对输入,还获得了 \([N_i^t,N_c^b]\)(标题和正文)这样的跨字段配对输入。最后,我们将这些表示法合并成该浏览-候选新闻对的多字段匹配表示法。
匹配编码器
该模块用于学习每条浏览新闻与候选新闻之间的语义匹配。我们将多字段匹配中的浏览-候选多字段对作为输入,然后将其输入双向变换器编码器表征(BERT),进行匹配表征学习。
给定多字段对\([N_i^m,N_c^n]\),其中 𝑚, 𝑛 ∈ {𝑡, 𝑎, 𝑏} 和相应的词序列\(N_i^m=[w_1^i,w_2^i,\ldots,w_{|N^m|}^i]\)和\(N_c^n=[w_1^c,w_2^c,\ldots,w_{|N^n|}^c].\)我们将这两个序列连接起来,配对输入为:
\(inp=[[\mathrm{CLS}],w_1^i,\ldots,w_{|N^m|}^i,[\mathrm{SEP}],w_1^c,\ldots,w_{|N^n|}^c]\)
通过添加特殊标记[CLS]作为语义匹配的聚合序列表示,[SEP]作为序列分离的聚合表示,我们以𝑖𝑛𝑝为例详细说明编码过程。
多头自注意层
该子层旨在捕捉句子的语境感知语义匹配。有了多头,来自不同位置的不同语义子空间的信息就可以被联合学习,这将非常有助于捕捉不同词块之间的匹配信号
\(\operatorname{Attn}(Q,K,\mathbf{V})=\operatorname{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\)
多头自我注意层(MH)将并行应用迭代注意函数来生成输出表征,这些输出表征被串联起来,并捕捉来自多个视图的交互信息。
\(\mathrm{MH}(\mathrm{Q},\mathrm{K},\mathrm{V})=\left[\mathrm{head}_1;\ldots;\mathrm{head}_h\right]\mathrm{W}^O\\\mathrm{head}_i=\mathrm{Attn}\left(\mathrm{QW}_i^Q,\mathrm{KW}_i^K,\mathrm{VW}_i^V\right)\)
位置感知的前馈网络
该子层旨在赋予模型非线性和不同维度之间的相互作用,是一个全连接的前馈网络(FFN),由两个线性变换和中间的 ReLU 激活组成:
\(\mathrm{FFN}(x)=\mathrm{ReLU}\left(xW_1+b_1\right)W_2+b_2\)
此外,还对每个子层进行了残差连接和层归一化处理。最后,我们可以通过匹配编码器获得每个浏览-候选新闻多字段对的匹配表示
匹配聚合器
匹配聚合器用于聚合每条浏览新闻和候选新闻的匹配表示,以获得最终的用户-新闻匹配信号。
用\(M\in\mathbb{R}^{n\times d^{\prime}}\)表示配对匹配表示矩阵,其中 n 是浏览过的候选新闻配对数,𝑑 ′ 表示多场配对匹配表示的维度。在此,我们使用以下三种聚合器获得最终的用户-新闻匹配表示\(\tilde{M}\):
- 平均/最大聚合:直接最大化或平均新闻对的匹配嵌入作为用户-新闻匹配嵌入
- 注意力聚合:\(\tilde{M}=\text{ Aggregate }(M)=\mathbf{r}^\top M\\r=\mathrm{softmax}(\tanh\left(\tilde{E}W_h+b_h\right)W_o+b_o)\)
点击预测
最后,我们介绍点击预测模块。将用户新闻匹配表示记为\(\tilde{M}\),点击概率𝑦 是通过应用全连接层计算得出的:
\(y=\mathrm{softmax}(\tilde{M}W^o+b^o)\)
总结
总结一下,这个是一篇短文,整体的框架还是比较清晰的,核心的思路就是多领域的匹配。按照图所示,就是浏览过的新闻的三个元素(标题,摘要,正文)与候选新闻的三个元素两两组合,组合的结果就是所谓的配对。
然后是匹配编码器的部分,两两的组合已经获取到了,那么怎么连接起来呢,实际上也就是将刚刚获取的配对按单词连接在一起,前面用CLS,中间用SEP分隔。做好连接以后就要进行编码了,这里就是采用传统的多头自注意力和位置编码。最后获取了多字段对的匹配表示。
最后就是聚合部分,因为获取了多个配对组合,最后也需要将这些组合表示聚合起来,然后就提出了两种不同的聚合方法。最后用聚合后的表示对新闻点击进行预测。