FUM论文阅读笔记
FUM: Fine-grained and Fast User Modeling for News Recommendation
Abstract
现存的问题:
现有方法通常先将用户点击的新闻独立编码为新闻嵌入,然后将其聚合为用户嵌入。然而,这些方法忽略了同一用户点击的不同新闻之间的词级交互,而这种交互包含丰富的细节线索来推断用户兴趣。
解决方案
在本文中,我们提出了一个细粒度的快速用户建模框架(FUM),从细粒度的行为交互中建立用户兴趣模型,用于新闻推荐。FUM 的核心理念是将点击的新闻串联成一个长文档,并将用户建模转化为文档建模任务,其中包含新闻内和新闻间的词级交互。由于 普通的transformer无法高效处理长文档,我们采用了一种名为 Fastformer 的高效转换器来对细粒度行为交互进行建模。
Introduction
事实上,同一用户点击的新闻之间的词级交互包含丰富的细节线索,可用于了解用户的兴趣。然而,现有的方法在建模用户兴趣时忽略了词级行为交互,这可能导致较差的用户建模。
在本文中,我们提出了一种细粒度的快速用户建模框架(名为 FUM),从细粒度的行为交互中建立用户兴趣模型,用于新闻推荐。在 FUM 中,我们首先将用户点击新闻的文本串联为一个长用户文档,并将用户建模任务转换为文档建模任务。然后,我们在长用户文档中捕捉新闻内和新闻间的词级行为交互,从而以精细的方式了解用户兴趣。此外,由于二次复杂性,普通Transformer网络在长文档建模中通常效率较低,因此我们采用了一种名为 Fastformer 的高效变换器网络来捕捉 FUM 中的细粒度行为交互。
Method
FUM的模型结构图如下:
我们的工作重点是从细粒度的单词级交互中准确和有效地建模用户的兴趣。
细粒度和快速的用户建模
FUM由细粒度用户模型和粗粒度用户模型组成。细粒度用户模型用于从词级行为交互中捕捉用户兴趣。其核心是将用户点击的新闻串联成一个长文档,并捕捉新闻内和新闻间的词级交互,从而建立用户兴趣模型。
具体来说,我们首先通过一个特定类型的嵌入层将新闻文本 𝑇𝑖 的第 𝑖 个类型编码成一个文本嵌入序列\(\mathbf{T}_i\in\mathbb{R}^{l\times d}\) ,其中 𝑑 是嵌入维度。然后,我们将用户阅读历史记录的文本序列连接成一个长序列\(\mathbf{T}=[\mathbf{T}_1^1;...;\mathbf{T}_k^1;...;\mathbf{T}_1^m;...;\mathbf{T}_k^m],\)且\(\mathbf{T}\in\mathbb{R}^{mkl\times d}\)。其中m是用户点击的新闻的总个数,k是文本信息的类型数,文本信息的类型包括新闻标题和新闻实体等,l是文本序列的长度。其中\(T^i_j\)是第𝑖个被点击的新闻ℎ的第𝑗个文本嵌入序列
此外,不同类型的新闻文本通常具有不同的语义特征,同时文本的位置信息对于语义理解也很重要。因此,为了进一步丰富用户文档的嵌入序列,我们将每个标记的文本嵌入与其类型和位置嵌入串联起来,建立行为嵌入序列 \(\mathbf{H}\in\mathbb{R}^{L\times g}\),其中 𝑔 是串联标记嵌入的维度,𝐿 表示行为嵌入序列的总长度(即 𝑚𝑘𝑙)。
然后说采用Fastformer。Fastformer 的核心思想是首先将全局上下文总结为嵌入 q,然后根据每个标记与全局上下文的相关性对其嵌入进行转换:
\(\begin{gathered} \mathbf{q}=Att(\mathbf{q}_1,...,\mathbf{q}_L),\quad\mathbf{q}_i=\mathbf{W}_q\mathbf{h}_i, \\ \mathbf{k}=Att(\mathbf{q}*\mathbf{k}_1,...,\mathbf{q}*\mathbf{k}_L),\quad\mathbf{k}_i=\mathbf{W}_k\mathbf{h}_i \\ \hat{\mathbf{h}}_{i}=\mathbf{W}_{o}(\mathbf{k}*\mathbf{v}_{i}),\quad\mathbf{v}_{i}=\mathbf{W}_{v}\mathbf{h}_{i} \end{gathered}\)
然后又说Fastformer也可以被其他高效的transformer所取代。然后,我们可以连接不同注意力头的输出,并为第𝑖个标记构建一个统一的上下文表示g𝑖。接下来,我们采用一个注意力网络,通过聚合其标记的嵌入来学习每个被点击的新闻的嵌入:
\(\mathbf{f}_i=Att(\mathbf{g}_{(i-1)kl+1},\mathbf{g}_{(i-1)kl+2},...,\mathbf{g}_{ikl}),\)
最后,我们将它们汇集起来,建立用户嵌入\(\mathbf{u}^f=Att(\mathbf{f}_1,...,\mathbf{f}_m)\) 。这样,我们就能从词级细粒度行为交互中高效建模并编码用户兴趣。
此外,我们还采用了粗粒度用户模型,以便从新闻层面的行为互动中更好地总结用户兴趣。我们首先使用新闻编码器将用户点击的新闻转化为嵌入式内容。然后,我们应用转换器网络对用户点击新闻的新闻级行为交互进行建模,其中 c𝑖 是语境化嵌入的𝑖 。最后,我们从新闻层面的行为交互建立用户嵌入\(\mathbf{u}^c=Att(\mathbf{c}_1,...,\mathbf{c}_m)\)并与\(\mathbf{u}^f\)合并形成统一的用户嵌入\(\mathbf{u}=\mathbf{u}^f+\mathbf{u}^c.\)。
新闻编码器
接下来,我们简要介绍 FUM 中新闻编码器的架构。对于第 𝑖 个类型的新闻文本,我们使用文本编码器从 T𝑖 中学习特定类型的新闻嵌入 t𝑖 。文本编码器由转换器和注意力网络堆叠实现。然后,我们通过聚合特定类型的新闻嵌入来学习新闻嵌入 n。
新闻推荐
这里还是采用内积的方式来计算分数,损失函数使用的是BPR Loss