KRED: Knowledge-Aware Document Representation for News Recommendations

  • 合并知识entity会更好的理解文档
  • 现有的文档理解模型要么是在不考虑知识实体的情况下表示新闻文章(如BERT),要么是依赖于特定类型的文本编码模型(如DKN),因此泛化能力和效率受到影响。

KRED首先通过关注知识图谱中的邻接信息来丰富实体的嵌入。然后,应用背景嵌入层来注释不同实体的动态背景,如频率、类别和位置。最后,信息提炼层在原始文档表示法的指导下聚合实体嵌入,并将文档向量转化为一个新的向量。

DKN的问题: 只考虑了文章标题作为输入,如果扩展到文章主题也会有效率低下的问题; Kim-CNN 不够灵活, 无法应用在Transformer上

给定一个可以由任何类型的(natural language understanding)NLU模型(如BERT[8])产生的文档向量,KRED融合了文章中包含的知识实体,并以快速、弹性和准确的方式产生一个新的表示向量。

贡献

我们提出了一个知识增强的文档表示模型,命名为KRED,以快速、弹性、准确的方式改进新闻文章的表示。KRED是完全灵活的,可以用知识实体增强任意的基础文档向量。在实验部分,我们用两种不同的基础文档向量设置,即LDA+DSSM和BERT,来证明这一优点。

为了充分利用知识信息,我们提出了KRED的三个关键组成部分,包括实体表示层、上下文嵌入层和信息提炼层。通过消融研究,我们验证了每个组件确实对模型有贡献。

我们强调了连接多种新闻推荐应用的必要性,并提议在多任务框架下训练KRED。据我们所知,我们是第一个提出一个知识意识模型来服务于各种新闻推荐应用。通过进行全面的实验,我们证明了这种联合训练框架能够显著提高各种新闻推荐任务的性能。

我们提供了一些可视化的案例研究,以用户友好的方式说明KRED如何帮助理解文档和生成文档嵌入。

image-20210817164510439

方法

我们提出了一个新闻文档的知识表示增强模型,如图2所示。给定一个任意的文档向量(DV,如BERT生成的),表示为vd,我们的目标是生成一个知识增强的文档向量(KDV),它可以被各种下游应用程序使用。我们的框架有三个好处。首先,与依赖金-CNN的DKN不同,它对应该使用哪种特定的文档表示方法没有限制。在预训练+微调范式时代,各种预训练模型都可以用于我们的框架。其次,它可以利用新闻文档中包含的所有数据,例如标题、正文和元数据。第三,它是快速的,因为一方面它将知识实体融合到一个基本文档向量中,而无需重新计算整个文本串;另一方面,我们尽最大努力为中间组件选择轻量级操作。接下来我们介绍KRED中的三个关键层:实体表示层、上下文嵌入层、信息提取层。

实体表现层(Entity Representation Layer)

知识图谱为g = {(h, r, t) | h, r \in \epsilon, t \in R}, \epsilon 是实体集合,R 是关系集合,利用TransE学习知识图谱中的实体与关系的嵌入向量。

和之前一样,实体不仅仅可以用自己的嵌入表示,还可以用其相邻部分表示,我们利用知识图关注(KGAT)网路的思想来生成实体表示。

使用N_h表示头节点为h的三元组集合,则一个向量可以表示为

image-20210825142410784

\oplus 是 concat,e_h, e_t 是从TransE中学习的实体向量。\pi(h, r, t)是控制邻居节点需要传播到当前实体的信息量的关注度权重,具体实现是通过两层全连接神经网络。

image-20210825145715181

然后通过softmax来归一化系数。考虑到复杂度的递增,这里只聚集了一跳的邻居信息。

上下文嵌入层 Context Embedding Layer

为了降低时间复杂度,输入不是文章的所有内容(标题+摘要)。KRED选择了从文档中提取实体的决定性信息。我们观察到一个实体可能以不同的方式出现在不同的文档中,比如位置(指在标题中出现还是在摘要中出现)和频率。动态语境极大地影响了文章中实体的重要性和关联性。我们设计了三个上下文嵌入特性来编码动态上下文:

位置编码 Position Encoding

位置是指实体是否在标题或摘要中。在许多情况下,新闻标题中的实体比只出现在新闻主体中的实体更重要。我们在实体嵌入中加入一个位置偏差向量C_{p_i}^{(1)},其中p_i表示i实体的位置类型。(在代码中,计算在标题中出现次数=该实体在标题中出现次数+该实体在摘要中出现的次数)

频率编码 Frequency Encoding

频率在某种程度上可以说明实体的重要性。因此,我们创建了实体频率的编码矩阵C^{(2)},然后我们计算每个实体的出现频率f_i,将其作为一个离散索引来查找频率编码向量C_{f_i}^{(2)},然后将其添加到新闻实体向量f_i中。f_i的上限为20。

类别编码Category Encoding

实体属于不同的类别,例如,Donald Trump是一个人,Microsoft是一个公司,RecSys是一个会议。显式地揭示实体的类别有助于模型更容易、更准确地理解内容。因此,我们主要维护一个类别编码矩阵C^{(3)}。对于每个类型为t_i的实体i,我们在其嵌入向量中添加一个类别编码向量C_{t_i}^{(3)}。

image-20210825154057829

信息蒸馏层 Infomation Distillation Layer

一个实体的最终重要性不仅由它自己的消息决定,还受文章中同时出现的其他实体和文章的主题的影响。KRED使用一种注意机制将所有实体的信息合并到一个输出向量中。我们遵循Transformer中的术语(查询、键和值)。 原始文档向量v_d用作查询。键和值都是实体表示e_{Ih}:

注意力权重计算为

image-20210825162337636

其中\epsilon_v 是表示文本v中的实体集合。然后将实体向量和原始文档向量连接起来,通过一个全连接的神经网络。

image-20210825163211768

得到KDV(知识感知文档向量)

有趣的是,我们没有使用自我注意编码器或多头注意机制,因为我们通过实验观察到,这些组件并没有带来显著的改善。一个可能的原因是,一个新闻文档中实体之间的关系不像NLU中的原始文本那样复杂,因此添加复杂的层是没有用的,而且会带来不必要的计算成本。

多任务学习(Multi-Task Learning)

在行业推荐系统中,除了个性化的项目推荐(又名user2item推荐)之外,还有一些其他重要的任务,如项目到项目推荐(item2item)、新闻流行度预测、新闻类别分类和本地新闻检测。我们发现,这些任务具有相同的知识模式,它们的数据可以相互补充。因此我们设计了一种多任务学习方法来训练KRED模型,如模型图所示。很容易理解为什么多任务学习方法比使用特定任务数据训练模型更好。以新闻类别分类任务为例。我们用于类别分类的标记数据库被限制在我们的文档语料库的大小。但是,用户-项目交互数据集要大得多。考虑到相似用户倾向于阅读主题相似的新闻,传递用户-项交互中的协同信号可以极大地提高新闻类别分类的学习。

在多任务框架中,所有任务共享与主干模型相同的KRED,但在KRED之上,它们包括一些特定于任务的参数作为预测值。在这些任务中,只有项目推荐任务涉及用户组件。所有其他任务仅依赖于文档组件。因此,在这一部分中,我们介绍了两种预测因子和损失函数。

预测

user2item

输入包括用户向量u_i和文本向量v_j

image-20210825164925707

g是单层神经网络的预测函数。

采用一种广泛使用的注意力合并方法来生成用户向量u_i。基本上,我们将用户的历史点击文档向量输入到一个单层神经网络中,以获得关注度得分。然后合并按关注度得分加权的文档向量,以得到用户向量u_i。

item2item

增加了一层神经网络(128维度和tanh来激活)来转化文档向量,使用余弦相似度来衡量两个文档之间的关系。对于所有其他任务,输入向量仅为文档向量v_j,因此预测函数为$$
\hat{y}(j) = g(v_j)
$$

损失函数

利用基于排名的损失函数进行优化。给定训练集中的正向(user-item / item – item),对应随机抽样五个负样例(user – item / item – item)

image-20210825165707605

其中J 表示包含一个正向和五个负向的候选集,\gamma 是softmax的平滑系数(测试值为10比较好)

image-20210825170220123

其中H表示用户点击历史集合,\theta表示可训练的参数集合,\lambda表示正则化系数。

对于其他任务,由于他们属于多分类问题,所以我们以交叉熵作为目标函数。

image-20210825170742296

如果标签y(i)是c时,y_{j, c} = 1 ,否则y_{j, c} = 0。M表示标签的最大数量,二分类问题可以看作是多分类问题的特例,为了避免引入新的超参数来组合不同任务的损失函数,我们采用了两阶段的方法进行多任务训练。在第一阶段,我们每隔几个batches就轮流训练不同的任务。在第二个阶段,我们只包含目标任务的数据,以最终确定特定于任务的模型。(wild & deep)

数据集和设置

  • Microsoft News(MSN News) 2019.1.15 – 2019.1.28
    • 对于个性化推荐任务, 第一周训练和验证,第二周测试集。为了建立用户配置文件,额外收集了在开始日期前另外两周的日志。过滤掉点击少于5的用户。总665034用户,24542新闻,1590092互动。文档平均字数为701。使用内部工具链接到Satori,保留置信度>0.9的实体,使用新闻图技术Hi-Fi Ark对原始知识图进行处理。平均一个文档包含24个实体,在一跳领域覆盖3314628个实体,1006个关系,71727874个三元组,新闻数据集开源版本为MIND。
    在本文中,我们考虑了新闻推荐系统中的五个重要任务,包括个性化推荐、项项推荐、新的热度预测、新闻类别分类和本地新闻检测。在新闻热度预测任务中,我们将新闻文章按点击量等分成四组,每组表示一定的热度(即一般、流行、超人气和病毒式)。本地新闻检测是一项不平衡的二值分类任务,其正确率在我们的数据集中只有12%。在新闻类别分类任务中,我们在新闻语料库中有15个顶级类别。

数据集 MIND

  • 包含四个部分: 行为, 新闻, 实体嵌入, 关系嵌入

行为

  • 展示ID
  • 用书ID
  • 推送给用户新闻的时间
  • 历史 用户在展示前的点击历史
  • 推送列表 其中1是点击行为 0是未点击
image-20210901141352496

新闻

  • 新闻ID
  • 类别
  • 子类别
  • 标题
  • 摘要
  • 网址
  • 标题实体
    • 标签(wiki数据中的实体名称)
    • 类型(wiki数据中的实体名称)
    • wikiID
    • 置信度
    • 偏移量
    • 原始实体名称
  • 抽象实体
image-20210901142047206

实体嵌入和关系嵌入

image-20210901143145926

BaseLine

我们的目标是学习知识感知文档嵌入,并将KRED与几组方法进行比较:

  • 第一组包括不同类型的普通文档表示模型,不使用知识图谱,可以表示出我们的模型如何通过注入知识信息来改善这些模型。选择LDA+DSSM / BERT 作为基本文档向量。输出为DV_{LDA+DSSM} 和DV_{BERT} 我们还提供了一种简单的方法来注入知识信息作为基线,即把实体嵌入层和之前两个作为拼接。此外,NAML是一个很牛的baseline,它使用多视图的关注模型来学习多种类型的新闻内容的新闻表,如标题,正文和类别(但它没有考虑知识实体)。
  • 第二组包括几个最新的模型,在建模中使用知识图谱,通过与他们的比较,验证出我们提出的知识融合机制的有效性。DKN, STCKA, ErNIE,KRED_{BERT} Single-task去掉了多任务训练机制,直接对目标任务进行训练。
  • 第三组包括FM,Wide&Deep,与前面不同的是,他们将手工特征作为输入,并学习特征交互以进行预测。对于这两个baseline, 实体作为附加特征输入到模型中。

NDCG归一化折损累计收益: 评价指标(https://www.cnblogs.com/by-dream/p/9403984.html)

NLU: 自然语言理解(Natural Language Understanding)

实验结果

个性化推荐

表1报告了不同模型在个性化推荐任务中的详细结果。

image-20210825194323763
  • Wide&Deep模型的性能优于FM模型,这表明深层模型比浅层模型更适合于建模复杂的特征交互作用。然而,Wide&Deep只使用完全连接的多层神经网络来学习特征交互,并且严重依赖于特征工程。对于新闻文章,NLU模型可以产生比手工特征更好的文档表示。因此,包含NLU组件来提取文档表示的模型(包括NAML、DKN、STCKA、Ernie、BERT和KRED)可以很容易地获得比Wide&Deep和FM更好的性能。
  • 知识实体对于新闻推荐确实非常重要。这可以从在LDA+DSSM和BERT设置上验证,DV∗+实体结果明显好于DV∗结果KRED_{LDA+DSSM+}+entity和KRED_{BERT}+entity进一步改进了DV_{LDA+DSSM}+entity和DV_{BERT}+entity的设置,这意味着我们的模型比注意+串联方法更有效地融合了知识。
  • DKN、STCKA和Ernie是三种不同类型的知识型文档理解模型,它们可以作为强有力的基线。它们比DVLDA+DSS M好,但在大多数情况下比KREDLDA+DSS M差,在所有指标上都比KREDBERT差。这一比较进一步证明了我们提出的模型在将知识信息融合到文档表示中的有效性。
  • BERT表示取得了较好的性能,甚至优于一些具有知识感知的基线模型。这表明,来自大规模语料库的预训练(以及后续的任务精调)极大地有助于文档的理解。由于我们的模型可以接受任意类型的文档向量作为基本输入,所以我们可以增强BERT表示,所得到的模型,即KREDBERT,获得了最好的性能。大规模的预训练非常耗时和昂贵,我们灵活的框架可以直接消耗预训练的模型,并且可以很容易地适应未来任何新的预训练模型。
  • 联合训练KRED(包括KREDLDA+DSS M和KREDBERT)优于相应的单任务训练KRED(包括KREDLDA+DSS M单任务和KREDBERT单任务),且在7天内趋势一致。在实验中我们发现,个性化用户2项推荐的显著改进主要来自于user2item推荐和item2item推荐的联合训练。一个可能的原因是,item2item关系提供了文章之间的一些内在信息和规律性,这不容易被user2item训练过程捕获,本质上是一种多项对项的训练模式。

item2item

  • 我们基于原始的用户-文章点击日志构建了一个项对项推荐数据集。目标是找到一组正对(a,b),例如,如果用户点击了文章a,他/她很可能会点击文章b。我们使用共同点击关系来建立积极的成对关系。如果两篇新闻文章被100个以上的普通用户点击,我们将这两篇文章视为正项对。我们将其随机分为训练集/有效集/测试集,比例为80%/10%/10%。对于训练和验证数据中的每一项,我们随机抽取5篇负面新闻文章作为负面案例,对于测试数据集,我们随机抽取100篇负面新闻文章,以使测试评价更可靠。
  • 在现实世界的工业推荐系统中,近似最近邻域搜索(ANN)技术通常用于快速检索项目[7]。要使用人工神经网络技术,需要将项目编码为固定长度的向量。因此,对于每个模型,我们取其对应的文档表示向量,并使用余弦相似度来度量两个文档之间的关 系。图3报告了结果。所有深度模型都比LDA模型有很大的优势,这表明深度学习技术在文本理解中的强大威力。伯特和厄尼利用了预训过程,所以他们比NAML更好。我们的KRED进一步优于Bert和Ernie,这进一步证实了我们提出的知识融合技术是有效的。
image-20210825230821667

文档分类与热度预测

文章类别分类、文章热度预测和地方新闻检测任务都属于文章级分类问题。因此,为了简明起见,我们将性能比较结果合并到一个表中。如表2所示,三项任务的结论是一致的。实体信息不仅对个性化推荐和项目间推荐非常重要,而且对于这三个文章级分类任务也是非常重要的。表2中另一个有趣的发现是,KREDBERT相对于KREDBERT单任务的改进令人印象深刻。原因是这三个物品分类任务的数据标签非常有限。然而,来自用户与项目交互的数据要丰富得多。在培训过程中联合考虑多个任务可以跨域共享和传递知识,因此不同的任务可以从彼此中受益,而低资源领域的好处尤其显著。

image-20210825231415850

消融研究

image-20210825231421001

接下来,我们将研究每一层对KRED的贡献。由于KRED有三个关键层,我们每次移除一层,并测试其性能是否受到影响。表3显示了结果。由于不同任务的结论相似,为了节省篇幅,我们只报道了KREDBERT在个性化推荐任务上的结果。我们观察到,删除任一层都会导致性能显著下降,这表明所有层都是必需的。

效率比较

为了评估效率,我们将我们的KRED模型与DKN中的STCKA和KCNN模块的计算成本进行了比较。Ernie属于像Bert这样的预先训练的模型,因此不适合进行比较。实验在采用GPU Tesla P100、CPU Xeon E5-2690 2.60 GHz 6处理器的Linux机器上进行。我们准备了100,000份文档,并统计了每个模型一个时期的平均培训/测试时间成本。批处理大小设置为64。标题的最大字长设置为20,正文的最大字长设置为1000。结果如表4所示。与KCNN和STCKA对整个文本内容建模不同,KRED将实体的聚合信息作为额外的输入,因此在训练和推理步骤上都要快得多。

image-20210825231556890

文档嵌入的可视化

为了更好地理解文档表示的质量,我们对文档嵌入进行了可视化研究。具体地说,我们首先使用t-SNE算法将文档表示投影到2-D空间[15],然后在图4中绘制文档的分布图,其中每个点代表一个文档,文档根据它们的类别用不同的颜色表示。我们可以观察到,同一类别的文档往往聚集在一起,KRED模型产生的嵌入呈现出比ERT和LDA模型更好的分布模式。我们进一步计算了Calinski-Harabaz得分[3]作为一个定量指标来比较不同模型的聚类模式。较高的Calinski-Harabasz得分与具有更好定义的簇的模型相关,KRED、BERT和LDA模型的得分分别为426、375和68。

image-20210825231854113

相关工作

新闻推荐系统

[16]认为基于ID的方法不适合新闻推荐,因为候选新闻文章很快就会过期。作者利用去噪自动编码器来生成新闻文章的表示向量。[12]探讨如何有效利用来自多个不同渠道的内容信息,以获得更好的新闻推荐。[26]提出了一种注意力模型,该模型可以利用用户ID的嵌入来生成个性化的文档表示。[25]将新闻标题、新闻正文、新闻类别视为不同的新闻视角,引入多视角学习模型学习新闻表征。[26]进一步提出通过在新闻表示学习过程中集成用户嵌入来学习个性化新闻表示。然而,前述工作要么使用手工特征,要么从文本串中提取表示,都没有研究知识图的使用。以知识图作为边信息的DKN[20]是与本文最相关的工作,我们在引言部分阐述了DKN与我们工作的关系,并在实验部分报告了性能比较。[14]在离线阶段将用户历史总结为多个互补向量,并在新闻推荐场景中展示了该方法的优势。[13]构建了一个特定领域的知识图,称为新闻图,用于更好地识别知识的新闻推荐。

知识感知推荐系统

事实证明,将知识图作为辅助信息在提高推荐系统的准确性和可解释性方面是很有前途的。[4]联合学习推荐模型和知识图补全模型,实现了更高的推荐准确率和对用户偏好的更好理解。[22]提出了一种面向知识图增强推荐的多任务特征学习方法。[24]传统方法如FM假设每个用户与项目的交互都是一个独立的实例,而忽略了实例或项目之间的关系。因此,作者建议使用知识图将项目与其属性联系起来。[19]介绍了一种端到端的推荐框架RippleNet,该框架模拟用户偏好在知识实体集合上的传播,缓解了推荐系统中稀疏性和冷启动的问题。[21,23]研究了利用图卷积网络作为整合知识图和推荐系统的后端模型。然而,这些知识感知推荐模型不能直接应用于新闻推荐,因为一篇新闻文章不能映射到知识中的单个节点。相反,它与一系列实体相关,有效地将知识实体融合到文档内容中是成功的新闻推荐的关键。

结论

我们提出了KRED模型,该模型以快速、弹性、准确的方式增强了基于知识图的实体信息对新闻文章的表示能力。KRED由三个核心部分组成,即实体表示层、上下文嵌入层和信息蒸发层。不同于大多数现有的只关注个性化推荐任务的工作,本文研究了新闻推荐服务的五个关键应用,包括个性化推荐、项对项推荐、本地新闻检测、新闻类别分类和新闻热度预测,并提出在多任务学习框架中联合优化不同的任务。大量的实验表明,我们提出的模型一致且显著地优于基线模型。在下一步的工作中,我们将研究一个Kreu模型,即一个面向用户的知识感知表示增强模型。

代码

数据预处理

  • 新闻实体出现频率: 标题和摘要的出现频率直接相加
  • 类别和子类别的数据没有使用

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注