对话推荐系统CRS论文精读KGSF:Improving Conversational Recommender Systems via Knowledge Graph based Semantic Fu

前言

本篇论文2020年8月发表于KDD2020。基于语义融合,在KBRD模型的基础上增强了对话推荐系统的性能。KBRD模型详见博客对话推荐CRS论文精读KBRD:Towards Knowledge-Based Recommender Dialog System
文章链接:https://arxiv.org/pdf/2007.04032.pdf
代码链接:https://github.com/Lancelot39/KGSF

一、原文摘要

对话推荐系统(CRS)旨在通过交互式对话向用户推荐高质量的商品。对于现有的CRS工作,仍有两个主要问题有待解决:第一,对话数据本身缺乏足够的上下文信息,无法准确理解用户的偏好。第二,自然语言表达和项目级用户偏好之间存在语义鸿沟。
为了解决这些问题,我们结合了面向词和面向实体的知识图谱来增强CRS中的数据表示,并采用互信息最大化来对齐词级和实体级语义空间。基于对齐的语义表示,我们进一步开发了一个KG-enhenced推荐组件,用于做出准确的推荐,以及一个知识图谱增强的对话组件,可以在响应文本中生成信息关键字或实体。大量的实验证明了我们的方法在推荐和对话任务上的有效性。

二、为什么要提出KGSF

2.1当前CRS存在的问题

  • 第一,对话数据只由几句话组成,缺乏足够的上下文信息来准确理解用户的偏好。
    如表1所示,用户表述自己仅使用两句话,那么系统为了搞清楚用户的偏好,需要理解 s c a r y scary scary P a r a n o r m a l Paranormal Paranormal A c t i v i t y Activity Activity二者间的关系。仅仅基于上下文对话显然是无法理解的。
    在这里插入图片描述
  • 第二,自然语言表达和项目级用户偏好之间存在语义鸿沟。
    用户以自然语言表述,但实际上用户可能对表述后面的项目或是实体上(例如体裁、演员)。语言表述和实体偏好存在着语义鸿沟。那么就需要一种有效的语义融合方式来理解并生成话语。
    如上面的表1所示。系统给用户推荐了 I t It It,并附加了推荐的原因 I t It It i s is is a a a c l a s s i c classic classic t h r i l l e r thriller thriller m o v i e movie movie w i t h with with g o o d good good p l o t . plot. plot.这样的作法弥补了语义上的鸿沟,生成了解释推荐的回答。

2.2本文的创新动机

若仅仅引入项目级的知识图谱,仅仅弄清了实体项目之间的关系,而忽略了单词词义方面上的关系,例如 s c a r y scary scary t h i r l l e r thirller thirller。并且,他们没有考虑到自然语言与外界知识之间的语义差距。从本质上说,这个问题源于对话框组件和推荐组件对应两个不同的语义空间,即词级和实体级语义空间。
本文的思想是在引入项目级的 D B p e d i a DBpedia DBpedia知识图谱上,再引入一个面向单词级的 C o n c e p t N e t ConceptNet ConceptNet知识图谱,来增强两个大组件的数据表示,并关联两个知识图谱来融合两个语义空间。
工作思路简要来说就是:首先利用图神经网络分别学习在两个知识图谱上的嵌入表示,再提出互信息最大化来弥合两个知识图谱的语义差距。这样做有效于将上下文单词与项目实体连接起来。
并且本文还提出了一个KG-enhanced组件来集成推荐模块和对话模块

三、相关工作

这一部分的写作通常都是分推荐、对话系统写,再写对话推荐系统当前的研究现状。
当前已有的工作分为基于强化学习的对话推荐系统、生成式对话推荐系统。
对于生成式对话系统有ReDial,在此基础上,引入了知识图谱的CRS有KBRD,和这篇论文Deep Conversational Recommender in Travel。本文基于上述工作进一步引入了词义级的知识图谱。强调弥补推荐组件和对话组件之间的差异,使二者进行更好的集成。

四、模型

4.1如何对词级和项目级KG进行编码

4.1.1面向词级KG的编码

采用GCN图卷积神经网络来捕获ConceptNet中词节点之间的语义关系。
在这里插入图片描述
上述公式即为GCN计算每层节点表示的公式。其中,V(l)表示第l层的节点表示,A表示图的邻接矩阵,D表示一个对角矩阵,D矩阵中每行对角元素的值为A矩阵每行的累加值。Wl表示第l层的参数矩阵,是可学习的。GCN的原理即:聚合节点信息时,需考虑邻居节点的度,当邻居节点的度越大,聚合的比例就越小。详细看b站小淡鸡的视频简单粗暴带你理解GCN图卷积神经网络

通过GCN后,可以得到单词w的表示nw,维度为dw。由于关系的数量庞大,且大部分关系对于推荐没有意义,故上述的卷积计算并没有包含关系信息。

4.1.2面向项目级的编码

提取DBpedia项目子图的方法是按照KBRD那篇论文的方法来做的。在项目级这边,关系语义是重要考虑因素,所以本文采用了关系图卷积网络R-GCN学习子图上的项目表示。
在这里插入图片描述
上述公式即采用R-GCN来表示第l+1层项目e的节点表示ne,r表示关系。

4.2基于互信息最大化的知识图谱融合

采用Mutual Information Maximization(MIM)互信息最大化的方式进行词级、项目级表示的语义融合。
首先,互信息MI的意思是通过一个变量,减少另一个变量的不确定性。为了使减少的不确定性达到最大,即为互信息最大化MIM,基于KL散度实现。而KL散度的大致思想就是求两个概率分布函数之间的差异。
知道了上述的前置知识后,接下来就进入公式推理的部分
在这里插入图片描述
这一公式的意义为拉近话语文本中单词表示vw和项目表示ne。函数g表示输出实数的二分类函数,可由神经网络建模。T为对齐两个语义空间的转换矩阵, σ \sigma σ表示sigmoid激活函数。
结合下面两个公式可以从所有对话中推导出目标损失函数,并通过优化算法使损失最小化。
在这里插入图片描述
在这里插入图片描述
本文将对话中同时出现的实体-单词对<e,w>视为积极,而其他的设置为否定。显然,枚举对话中所有的实体-单词对是非常耗时的,而且还会引入噪声。本文便引入了超级令牌 w ~ \widetilde{w} w 表示上下文整体语义,这样后,只用考虑用g函数拉近实体e和超级令牌 w ~ \widetilde{w} w
w ~ \widetilde{w} w 由自注意力机制所给出:
在这里插入图片描述
在这里插入图片描述
Vc表示对话C中,所有上下文词汇嵌入表示组成的矩阵, α \alpha α表示自注意力机制得到的每个单词的权重向量。下面的公式就是自注意力机制。
这样做之后,就能在对话中识别更重要的语义信息,效率也显著提高。
具体的应用就是采用MIM损失对编码时,两个KG所用的GNN模型参数进行预训练,使两个语义空间在最开始就接近,以便有效对齐两个kg的语义空间。在微调阶段,将MIM损失作为GNN的正则化约束,以防止过拟合。这样便得到了语义融合之后的表示。

4.3KG-enhanced推荐模块

通过前两小节的工作后,我们可以得到包含对话中所有单词嵌入表示的矩阵Vc,以及包含对话中所有项目嵌入表示的矩阵Nc。再通过上小节类似于超级令牌 w ~ \widetilde{w} w 的自注意力流程后,我们可以学习到每个单词vc,和每个项目ne的embedding。
为将二者的信息进行融合,本文采用门闸机制(gate mechanism)来推导出用户的偏好表示pu,公式如下。
在这里插入图片描述
那么我们就可以计算将项目i推荐给用户u的概率Prrec。公式如下,通过这一公式可以对待推荐的项目进行排序,并生成一个推荐项目集。
在这里插入图片描述
这里定义了交叉熵损失函数,j表示对话,i表示项目,LMIM表示互信息最大化损失函数:在这里插入图片描述

4.4KG-enhanced的对话生成模块

这一模块主要采用Transformer进一步修改encoder-decoder架构。在编码器encoder模块,本文遵循标准的Transformer架构。本文主要讨论decoder模块:
在这里插入图片描述
A0的MHA表示自注意力机制,Rn-1表示第n-1层解码器的嵌入矩阵。
A1的MHA表示cross attention机制,将A0n与词级表示矩阵Vc进行交叉。
A2的MHA表示cross attention机制,将A1n与项目级表示矩阵Nc进行交叉。在这一公式,ConceptNet和DBpedia进行了融合。
A3的MHA表示cross attention机制,将A2n与编码器输出的嵌入矩阵X进行交叉。
最后,将A3输入进一个全连接的前馈神经网络,该网络具有ReLU激活层的线性变换。最后就得到了Rn
以上的五个公式可由下述表示的信息链表示:
生成的单词 → \rightarrow 面向词级的知识图谱 → \rightarrow 面向项目级的知识图谱 → \rightarrow 生成回答。
注意,生成的回复需要包含推荐项目、相关实体和描述性关键词。本文采用copy mechanism应用于生成包含以上信息的答复:普通的Transformer要求 Decoder 自己产生输出,但是对很多任务而言,也许 Decoder 没有必要自己产生输出,而是可以从输入的序列中复制一些东西出来。
公式如下所示:
在这里插入图片描述
y1…yi-1表示已确定的预测子序列,生成yi作为下一个令牌的概率Pr公式计算如上。其中,Pr表示经过FFN后,最终生成的概率结果;Pr1表示在词汇表上实现的softmax函数,其中输入为第n层解码器的输出Ri;Pr2表示经过copy mechanism后生成的概率。
定义的交叉熵损失函数如下所示,其中,N表示对话的轮次,我们可以计算出每句话语的损失值。
在这里插入图片描述

4.4训练参数学习

在这里插入图片描述
首先,采用MIM损失函数训练知识图谱模块的参数Θg
再优化Θr和Θd:在每次迭代中,先从KG模块中获取单词和项目的表示。然后,执行自注意机制和门机制,以获得用户偏好表示。最后,我们通过MIM正则化公式Lrec计算交叉熵损失,并进行梯度下降来更新参数Θr和Θd
当推荐模块的参数收敛后,再去优化对话模块Θd:在每次迭代中,先从KG模块中获取单词和项目的表示。再利用KG-enhanced Transformer推导出上下文表示,最后我们通过Lgen计算交叉熵损失,并进行梯度下降以更新Θd中的参数。

五、实验

5.1推荐任务的评价

在这里插入图片描述
如表2所示,推荐的实验采用了两大类: A l l d a t a All data Alldata C o l d s t a r t Cold start Coldstart设置。

  • all data:可以看到,ReDial以后的对话推荐模型是优于Popularity和TextCNN的,这说明了对话推荐的可行性。而ReDial与KBRD比,证明了KBRD所引入的知识图谱的有效性;KGSF的表现最优,代表了KGSF对词级与项目级的语义融合的有效性。
  • Cold start:在冷启动设置下,可以看到Popularity模型的性能在前四个中为最优,这可能是因为用户往往倾向于流行的新项目,Redial和KBRD由于只关注于上下文,或上下文所提到的项目知识图谱,效果不太好。而对于KGSF,它在冷启动设置下,表现效果仍为最佳,这是由于通过对齐两个语义空间,它可以从对话文本中捕获重要信息,从而推断用户在冷启动设置中的偏好。
  • 消融实验:为验证KG融合的有效性,本文还对两个KG进行了消融实验,-MIM表示去除了面向词级的KG,-DB表示去除了面向项目级的KG。我们可以看到这两个组件都对最终的性能有贡献。另外,去除面向项目的KG后,性能下降更明显。这是因为一旦它被移除,与MIM相对应的融合组件也被移除。
  • MIM技术的作用
    在这里插入图片描述
    在此,本文讨论了MIM技术对于模型的作用,主要探讨的是MIM在迭代次数上是否对模型有帮助。可见,有MIM时,模型的迭代次数减少,有助于模型的稳定性。

5.2对话任务的评价

  • 自动评价
    在这里插入图片描述
    可见ReDial明显优于Transformer,因其采用预训练RNN模型来编码历史语句。而Transformer在Item Ratio上表现更好,这可能是因为Transformer采用了自注意力机机制捕获两两交互,比RNN更适合建模词与项目之间的关系。而在三个基准模型上,KBRD表现均为最佳,这是因为其采用了知识图谱信息提高了实体和项目的预测概率。
    而本文提出的KGSF在四个指标上表现均为最佳,通过知识增强Transformer解码器和复制机制两大步骤利用KG信息,增强了生成文本的信息性。
  • 人工评价
    在这里插入图片描述
    本文让三位注解员从流畅性和信息量两个方面对生成的候选词进行打分。在三个基准模型中,ReDial的流畅性表现最佳,因为它在多语言任务中使用了预训练编码器,但实验发现其倾向于生成简单且重复的回答,且若不加以其他的监督信号,ReDial会对训练集中的话语进行过拟合。信息量上KBRD表现最佳,这是因为它利用KG数据来提高低频词的概率。KGSF在两个指标上的表现均为最佳。
  • 消融实验
    在这里插入图片描述
    在此,进行了MIM(去除了MIM损失)、copy机制(去除了copy机制)、项目级KG(从Transformer解码器中去除了基于KG的注意层)这三个模块的消融实验。可见三个模块对于模型都有提升效果;其中,基于项目级KG的注意力层(w/o KG-D)尤为重要,因为它可以有效的将融合后的KG信息通过多头注意力机制注入进解码器中。而对于MIM机制,它不仅仅对推荐任务有效,它还提高了生成的响应的质量,证明了MIM在基于KG的语义融合中的有效性。

5.3定性分析

在这里插入图片描述
本文给出了系统推荐的例子;可以看到第一轮推荐,关注于 f a n t a s y fantasy fantasy,推荐了两部电影 P a n ′ s Pan's Pans L a b y r i n t h Labyrinth Labyrinth S t a r d u s t Stardust Stardust;但用户都看过这两部电影,第一轮推荐不成功;第二次推荐,系统的推荐模块给 h a v e have have s e e n seen seen这两个词不大的权重,对话组件还提高了它们的权重,更有助于生成成功的回复,于是就有了S5中:“我想看这部电影,但不确定你看过没有”,最后成功推荐。

六、结论

在本文中,提出了一种新的基于知识图谱的CRS语义融合方法。通过利用两个外部知识图谱,增强了单词和项目的语义表示,并使用互信息最大化来对齐两个不同组件的语义空间。
在未来的工作中,作者将考虑使用更多种类的外部信息来提高CRS的性能,例如用户统计数据。还可以研究如何人让语言表达对推荐结果更具有说服力和可解释性。还有的研究方向是如何合并历史用户项目交互数据,并使用预学习的用户配置文件开始对话。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值