Modeling User Viewing Flow Using Large Language Models for Article Recommendation论文阅读笔记
Abstract
本文针对文章推荐任务提出了用户浏览流建模方法(SINGLE),该方法从用户点击的文章中建立用户恒定偏好和即时兴趣模型。具体来说,我们首先采用用户恒定浏览流建模方法来总结用户的一般兴趣,从而推荐文章。在这种情况下,我们利用大语言模型(LLMs)从之前点击的文章中捕捉用户的恒定偏好,如技能和职位。然后,我们设计了用户即时浏览流建模方法,在用户点击的文章历史记录和候选文章之间建立交互。它能仔细阅读用户点击文章的表征,并学习用户的不同兴趣观点,从而匹配候选文章。
Introduction
很多文章推荐模型主要集中在新闻推荐任务上,它从用户之前点击的新闻文章中学习用户兴趣,并为用户返回相关的新闻文章。很多工作都考虑了用户个性化信息,以便从点击的文章中更好地捕捉用户兴趣,如用户 ID 、用户上下文信息 和用户反馈。大型语言模型(LLM),如 GPT3 ,在总结用户特征以更好地匹配与用户兴趣相匹配的条目方面表现出很强的能力。
在本文中,我们提出了一种用户浏览流建模(SINGLE)方法来为用户推荐文章。如图 1 所示,我们对持续浏览流和即时浏览流进行了建模,以更好地表现用户的兴趣,从而有助于提取用户的一般兴趣和即时兴趣进行推荐。具体来说,我们通过提示 LLM 作为用户来建立持续浏览流模型,从而从浏览过的文章中提取用户偏好和特征。然后,SINGLE 对即时浏览流进行建模,以学习用户的不同兴趣观点。它使用 BERT 对文章的标题和正文进行编码,在用户访问过的文章和候选文章的表征之间建立交互,并仔细阅读访问过的文章的表征,从而进行用户即时兴趣表征。此外,SINGLE 还利用文章标题和正文中的文本信息来更好地表示文章语义。在这种情况下,我们通过将文章标题作为要点来设计摘要提示,利用 LLMs 从文章正文中提取关键词,然后生成一个简短的段落来表示文章正文。
我们的进一步分析表明,SINGLE 模型有能力模仿不同的文章浏览行为,构建更有效的文章推荐系统。用户持续浏览流建模方法通过对点击过的文章进行更多的相似用户表征来学习用户的一般兴趣。然后,用户即时浏览流根据候选文章为这些用户点击的文章分配不同的权重,从而从访问过的文章中捕捉不同的用户兴趣。它可以从点击的文章序列中捕捉到一致的主题或主题转移。
Method
在本节中,我们将介绍用户查看流程建模(SINGLE)方法。我们首先介绍 SINGLE 的框架(第 3.1 节)。然后介绍我们的用户常量和即时观看流建模方法(第 3.2 节),这些方法可以了解一般用户特征和多视角用户兴趣。
SINGLE的框架
如图 2 所示,给定用户浏览过的文章\(D_{1:t-1} = \{d_1,...,d_{t-1}\}\), 文章推荐任务旨在推荐下一篇文章𝑡,以满足用户在第 𝑡 次浏览时的信息需求。在本小节中,我们将介绍我们的文章表示和编码方法,然后介绍如何根据之前点击的文档\(D_{1:t-1}\)预测下一篇文章。
文章表示
现有的文章推荐方法通常面临长文本建模问题,这源于现有语言模型的最大长度限制。因此,这些模型舍弃了文章正文,只使用文章标题来表示文章。显然,这种文章表示方法通常会丢失一些关键语义,从而限制了这些文章推荐系统的有效性。
为了充分模拟文章的语义𝑑𝑖,我们尝试借用大型语言模型(LLM)的强大泛化能力来减少文章正文的文本长度。具体来说,我们设计了文章摘要指令𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑠,并利用 LLM 为文章主体\(d_i^{b*}\)生成简短摘要:
\(d_i^{b*}=\mathrm{LLM}(instruct_s,d_i^t,d_i^b),\)
\(d_i^t,d_i^b\)分别表示文章的标题和主体,本文说通过这种方式能使文章的长度减少十多倍。最后用生成的摘要替换文章主体,于是文章就由标题、属性和生成的正文摘要来表示。
文章编码
我们可以通过刚刚提到的标题、属性和生成的正文摘要来表示文章:
\(h_{d_i}=h_{d_i}^a;h_{d_i}^t;h_{d_i}^{b*},\)
其中;表示连接
然后我们使用BERT对这些文本内容进行编码,得到各自的表示。
\(h_{d_i}^t=\mathrm{Linear}(\mathrm{BERT}(d_i^t));h_{d_i}^{b*}=\mathrm{Linear}(\mathrm{BERT}(d_i^{b*})),\)
其中BERT的参数在训练时是被冻结的
这些文章特征\(d_i^a\)由随机初始化的嵌入表示。然后,我们将这些属性嵌入连接起来,并利用多层神经网络得到文章属性的最终表示\(h^a_{d_i}\)。
下一篇文章预测
我们的SINGLE模型通过建模用户的即时兴趣和对以前访问过的文章的持续偏好来学习用户的表示\(h_{u_t}\)。然后我们可以预测第𝑡次候选文章𝑑𝑡的点击率:
\(P(y=1|D_{1:t-1},d_t)=\mathrm{Sigmoid}(\mathrm{Linear}(h_{u_t};h_{d_t})),\)
其中\(h_{d_t}\)是文章\(d_t\)的嵌入表示
然后,我们利用交叉熵损失L来优化我们的单个模型的可训练参数:
\(\mathcal{L}=\mathrm{CrossEntropy}(y^*,P(y|D_{1:t-1},d_t)),\)
用户浏览流建模
在本小节中,我们使用文章点击历史记录𝐷1:𝑡-1 = {𝑑1, ..., 𝑑𝑡-1} 对用户行为进行建模,并学习用户表示法\(h_{u_t}\)。具体来说,我们的目标是通过模拟用户的即时兴趣和持续偏好,在第 𝑡 次推荐文章。我们将用户即时兴趣表征\(h_{u_t}^{ins}\)和用户恒定兴趣表征\(h_{u_t}^{cons}\)连接起来来代表用户:
\(h_{u_t}=h_{u_t}^{ins};h_{u_t}^{cons}.\)
用户即时浏览流建模
用户在浏览文章时通常会产生多视角兴趣,而用户即时兴趣则表明了用户快速而直接的偏好。在阅读文章的过程中,一些属于不同主题的文章会激起用户的好奇心,吸引用户点击这些文章。
为了模拟用户的即时兴趣,SINGLE 将第 𝑡 次可能互动的文章\(d_t\)视为查询,并从用户之前访问过的文章 𝐷1:𝑡-1 = {𝑑1, ..., 𝑑𝑡-1} 中仔细阅读语义,从而模拟即时浏览流。这种关注机制旨在根据候选文章𝑑𝑡,从这些访问过的文章𝐷1:𝑡-1 中提取一些语义,从而为预测下一篇文章提供一些支持性证据。具体来说,我们首先利用公式 2 得到已访问文档的文章表示\(H_{1:t-1}=\{h_1,...,h_{t-1}\}\),以及在第 𝑡 次时可能互动的文档的表示。然后就可以计算出用户即时兴趣表示:
\(h_{u_t}^{ins}=\sum_{i=1}^{t-1}\alpha_i\cdot h_{d_i},\)
\(\alpha_i=\mathrm{softmax}_i(h_{d_t}\cdot W\cdot(h_{d_i})^T),\)
用户长期浏览流建模
与我们的用户即时浏览流建模不同,用户持续浏览流旨在从不同的点击文章中析出用户的一般偏好,并了解静态的用户特征。
为了模拟用户的偏好,我们使用标记级协作过滤模型模拟用户的一般浏览行为。具体来说,我们将之前点击过的文章的文本表述𝐷1:𝑡-1 = {𝑑1, ..., 𝑑𝑡-1} 连接起来,使用 LLM 捕捉一些常见的关键词,并从𝐷1:𝑡-1 捕捉用户特征:
\(u_t^{cons}=\mathrm{LLM}(instruct_u,D_{1:t-1}),\)
其中,𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑢是提示 LLMs 在从𝐷1:𝑡-1 中提取用户特征时发挥作用的指令。然后就可以对长期的用户兴趣表示进行编码:
\(h_{u_t}^{cons}=\mathrm{BERT}(u_t^{cons})\otimes h_{d_t},\)
总结
这篇文章是使用LLM来进行推荐的一篇论文,在推荐文章时,使用了用户的短期兴趣和长期兴趣以及文章的内容来进行建模。首先针对文章内容长的问题,使用LLM来对文章内容进行摘要。然后在建模短期兴趣时,直接采用传统的注意力机制进行建模,在建模长期兴趣时,使用LLM来获取用户的喜好,用用户的喜好来建模长期兴趣。整体看下来通俗易懂,方法也非常不错。