Generative News Recommendation论文阅读笔记
Generative News Recommendation论文阅读笔记
Abstract
现存的问题:
大多数现有的新闻推荐方法都是通过在候选新闻和历史点击新闻产生的用户表示之间进行语义匹配来解决这一任务。然而,他们忽略了不同新闻文章之间的高级联系,也忽略了这些新闻文章与用户之间的深刻关系。而且这些方法的定义决定了它们只能按原样提供新闻文章。
解决方案:
将几篇相关的新闻文章整合到一个连贯的叙述中,将有助于用户更快、更全面地了解事件。在本文中,我们提出了一种新的生成式新闻推荐范式,其中包括两个步骤:
- 利用大型语言模型(LLM)的内部知识和推理能力,在候选新闻和用户表示之间进行高级匹配;
- 根据相关新闻和用户兴趣之间的关联,生成一个连贯的和逻辑结构化的叙述,从而吸引用户进一步阅读新闻。
具体来说,我们提出 GNR 来实现生成式新闻推荐范例。首先,我们利用 LLM 生成主题级表征,并将其与语义级表征相结合,从而构成新闻和用户的双级表征。接下来,为了生成连贯的叙述,我们探索新闻关系,并根据用户偏好过滤相关新闻。最后,我们提出了一种名为 "UIFT "的新颖训练方法,用于训练 LLM 将多篇新闻融合为连贯的叙述。广泛的实验表明,GNR 可以提高推荐准确率,并最终生成更加个性化和事实一致的叙述。
Introduction
传统的新闻推荐存在以下局限:
- 新闻推荐是一项基于内容的任务,主要依赖于候选新闻与用户偏好之间的语义匹配。这些方法只能捕捉显性语义关系,而忽略了准确推荐所需的同样重要的隐性关系。
- 现有的新闻推荐系统只能推荐原始形式的新闻。用户需要阅读大量冗长的新闻文章才能了解事件的整体背景。此外,不同兴趣的用户会看到完全相同的内容,没有任何个性化。新闻推荐系统的理想结果是提供一个简明的段落,概述用户感兴趣的主要事件。
本文介绍了一种新颖的生成式新闻推荐范例(GNR)。我们的方法将大语言模型(LLM)作为生成器,通过精确迎合用户需求来增强新闻推荐。如图 2(a)所示,传统的新闻推荐方法使用候选新闻和用户表征(主要由用户的历史点击新闻列表组成)进行语义匹配。这些方法随后会以原始格式向用户展示新闻文章。相比之下,我们的方法利用 LLM 为新闻和用户生成主题级表征,如图 2(b) 所示。然后,我们探索个性化的相关新闻集作为信息源,并生成连贯且逻辑结构清晰的叙述,以吸引用户并鼓励他们阅读更多新闻。
具体来说,GNR由三个模块组成。前两个模块旨在检索一个包含用户感兴趣的新闻及其相关新闻的新闻集,最后一个模块将该集合中的新闻融合成一个连贯的叙述。
第一个模块是生成双层表征: 按照之前的新闻推荐方法 ,我们首先获得用户和新闻的语义级表征。然后,我们利用 LLM 将新闻内容和用户资料映射到主题级表示。最后,我们将这些表征组合成双层表征。
GNR Method
GNR的步骤如下:
首先,我们利用LLM来生成主题级表示,并将它们与语义级表示结合起来,以获得双级表示
其次,我们设计了一个三步管道来获取个性化和相互关联的新闻集。在这个过程中,我们首先对候选新闻进行排序,然后探索新闻文章之间的关系,最后对相关的新闻集进行过滤。
第三,我们融合新闻集,生成一个简短的多新闻叙事,可以帮助用户快速了解他/她感兴趣的新闻事件。
生成双层表示
更高层次的连接可以帮助新闻推荐系统更好地匹配用户和新闻,这样的连接需要获得领域知识和推理能力。因此,我们建议使用LLM来为新闻和用户生成主题级的表示。最后,我们将主题级表示与语义级表示相结合,以获得双级表示,并促进更准确的匹配。
主题级新闻表示
为了获得更高层次的新闻表征,我们利用 LLM 中的常识性知识来总结每条新闻的主题。具体来说,我们首先手动构建了一个提示模板,然后将原始新闻内容作为输入,包括新闻标题、摘要和类别。
主题级用户表示
我们将包含各种新闻主题的用户档案视为用户的更高层次表征。为了获得这一表征,我们利用 LLM 来推断用户历史点击列表中每条新闻之间的联系,并生成用户配置文件的描述。此外,我们还通过上下文学习来利用 LLM。我们手动创建一个提示模板并输入新闻信息,其中包括新闻标题、类别和主题级别的新闻表示。
双级表示组合
如上所述,我们利用 LLM 为新闻和用户生成主题级表示。同时,我们可以根据新闻的原始内容获得语义级表示。然后,我们需要将这两个表征结合起来,为推荐系统提供双层表征。我们还使用了多视图注意力网络来融合表征:
\(\alpha_{s}=q_{v1}^{T}\tanh\left(\mathrm{Linear}\left(e_{s}\right)\right),\alpha_{t}=q_{v2}^{T}\tanh\left(\mathrm{Linear}\left(e_{t}\right)\right)\)
\(\alpha_s^{\prime}=\frac{\exp\left(\alpha_s\right)}{\exp\left(\alpha_s\right)+\exp\left(\alpha_t\right)},\alpha_t^{\prime}=\frac{\exp\left(\alpha_t\right)}{\exp\left(\alpha_s\right)+\exp\left(\alpha_t\right)}\)
\(e_d=\alpha_s^{\prime}e_s+\alpha_t^{\prime}e_t\)
其中:𝑒𝑠是语义级表示的嵌入,𝑒𝑡是主题级表示的嵌入,𝑒𝑑是双层表示的嵌入。
个性化的相关新闻探索
为了确保推荐叙事的连贯性并迎合用户的兴趣,必须从新闻语料库 N 中提取一个个性化且相互关联的新闻集,称为 "参考新闻集"。为了实现这一目标,我们设计了一个三步流程,包括双层新闻排序、新闻关系探索和个性化过滤。
双级新闻排序
为了有效地迎合用户的兴趣,我们采用了一种类似于传统新闻推荐范式的候选新闻排名方法。为了训练排名模型,我们使用负抽样,随机选择未被点击的候选新闻作为负样本。那么用户点击正面候选新闻的概率为
\(\hat{y}_{i}=e_{i}^{user}\cdot e_{i}^{cand},\\p_{i}=\frac{\exp\left(\hat{y}_{i}^{+}\right)}{\exp\left(\hat{y}_{i}^{+}\right)+\sum_{j=1}^{K_{neg}}\exp\left(\hat{y}_{i}^{j}\right)}\)
我们通过对数似然损失来优化正样本𝑝𝑖的概率:
\(\mathcal{L}_{ranking}=-\sum_{i\in S}\ln\left(p_i\right)\)
这里损失函数比较像BPR Loss
然后,我们可以得到每条候选新闻的排名得分,表明候选新闻与用户偏好的匹配程度。然而,排名榜上的前几条新闻可能互不相关,这就给根据这些新闻生成连贯的叙述带来了挑战。因此,我们只选择排名前 1 的新闻作为重点新闻 𝑛𝑓,并以此为基础进行后续步骤。
新闻相关性探索
在获得焦点新闻𝑛𝑓 之后,我们需要从新闻语料库中找到一些相关的新闻文章,以生成连贯的叙述。因此,我们使用新闻关系分类器来判断两篇新闻是否相关,并设置关系阈值𝛼。为了训练模型,我们从新闻网站上收集了一组相关的新闻对,形成训练数据集。我们基于Siamese网络构建新闻关系分类器,并使用对比学习损失法训练模型。正对数据是一对相互关联的新闻文章,我们随机选择一些不相关的新闻文章来构建负对数据。损失函数的计算公式如下:
\(\mathcal{L}_{classify}=\max\left(\left\|e_i^{news}-e_j^{news}\right\|-\left\|e_i^{news}-e_k^{news}\right\|+\epsilon,0\right)\)
我们使用这个新闻关系分类器来探索相关新闻集\(\mathcal{N}^{rel}=\{n_{1}^{rel},n_{2}^{rel},\ldots,n_{j}^{rel}\}\)与焦点新闻语料库𝑛𝑓相关。
个性化过滤
由于相关新闻集 N𝑟𝑒𝑙 是根据新闻关系来探索的,这就忽略了用户的偏好。在本模块中,我们建议使用传统的推荐系统对相关新闻集进行个性化过滤。我们将相关新闻集 N𝑟𝑒𝑙作为候选集,并计算相关新闻嵌入\(e_i^{rel}\)与用户嵌入\(e_i^{user}\)之间的匹配得分\(\hat{y_i}\),如下所示:
\(\hat{y}_i=e_i^{user}\cdot e_i^{rel}\)
然后我们选择匹配得分最高的𝑇−1新闻文章。结合上面获得的焦点新闻𝑛𝑓,我们形成了参考新闻集N𝑟。
兴趣感知的多新闻叙事融合
传统的新闻推荐方法通常以原始形式推荐新闻文章。因此,当用户对某一特定新闻事件表示兴趣时,他们需要阅读大量相关的新闻文章来了解相关内容。这一过程非常耗时,用户体验也不尽如人意。同时,由于推荐系统会向兴趣各异的用户提供相同的新闻内容,因此个性化程度也会降低。为了应对这一挑战,我们提出了基于用户兴趣的多新闻叙事融合方法。在本节中,我们首先介绍多新闻叙事融合的过程,随后介绍 UIFT 方法,该方法旨在使生成的叙事更贴近用户兴趣。
首先,为了确保叙事的连贯性和可读性,我们使用焦点新闻𝑛𝑓(作为多新闻叙事的中心点。然后,生成的叙述的目标是提取符合新闻集N𝑟的关键事实,并将这些关键事实围绕焦点新闻𝑛𝑓进行融合。
尽管一般的黑盒子 LLM 具有上下文学习能力,但它们在捕捉用户兴趣(推荐任务的一个重要方面)方面仍然存在缺陷。因此,我们提出了用户兴趣对齐微调(User Interest Alignment Fine-Tuning,简称 UIFT),旨在增强 LLM 生成的多新闻叙事的个性化。UIFT的示意图如下:
我们首先利用 ChatGPT 生成多新闻叙事,然后对我们的多新闻叙事生成器进行有监督的微调,将 ChatGPT 的能力和知识提炼到我们的叙事生成器中。然后,UIFT 通过纳入排名损失来训练我们的多新闻叙事生成器,从而使其对多新闻叙事的排名与用户兴趣相一致。
收集了一个包含多个焦点新闻nf的训练集,由ChatGPT生成多新闻叙述\(n_{ChatGPT}\),以及用生成器融合的多新闻叙述\(n_{GNR}\)。接下来,UIFT首先允许经过监督微调训练的叙事生成器𝜋来预测每个新闻的条件概率𝑝𝑖:
n是集合\(\{n_i^{ChatGPT},n_i^{GNR},n_i^f\}.\)中的新闻
在 UIFT 中,模型会学习给予更个性化的新闻更高的概率,从而符合用户的兴趣。具体来说,我们根据用户的兴趣对新闻集 \(\{n_i^{ChatGPT},n_i^{GNR},n_i^f\}\)进行排序。我们依靠新闻推荐系统来反映用户兴趣。根据推荐系统计算出的预测分数,我们可以得到新闻之间的排名(即\(r_i^{GNR}<r_i^{ChatGPT}<r_i^f\)),𝑟𝑖 ∈ {1, 2, 3} 表示新闻的排名。当𝑟𝑖 越小,说明相应的新闻更符合用户的兴趣。
我们的训练目标是让排名 𝑟𝑖 更好的新闻获得更大的概率 𝑝𝑖 。我们通过排名损失来实现这一目标:
\(L_{\mathrm{rank}}=\sum_{r_i<r_j}\max\left(0,p_i-p_j\right),\)
总结
最后整理一下,这篇文章分为三个部分
首先是生成双层表示,通过GPT生成主题级新闻表示和用户表示,然后将双级表示进行融合。
然后是找出要推荐的新闻,通过使用类似BPR Loss的损失函数找到焦点新闻,然后根据焦点新闻获取相关的新闻集,最后再进行个性化过滤得到参考新闻集
最后是将多个新闻进行融合,这里是训练了一个叙事生成器来生成多新闻叙述,然后应该用GPT也生成多新闻叙述,然后对三种叙述(其中一个是焦点损失)进行排名来用于推荐。应该是这样吧,最后一块不是看的很懂,得看一下代码。