赞
踩
本篇论文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推荐组件,用于做出准确的推荐,以及一个知识图谱增强的对话组件,可以在响应文本中生成信息关键字或实体。大量的实验证明了我们的方法在推荐和对话任务上的有效性。
若仅仅引入项目级的知识图谱,仅仅弄清了实体项目之间的关系,而忽略了单词词义方面上的关系,例如
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。本文基于上述工作进一步引入了词义级的知识图谱。强调弥补推荐组件和对话组件之间的差异,使二者进行更好的集成。
采用GCN图卷积神经网络来捕获ConceptNet中词节点之间的语义关系。
上述公式即为GCN计算每层节点表示的公式。其中,V(l)表示第l层的节点表示,A表示图的邻接矩阵,D表示一个对角矩阵,D矩阵中每行对角元素的值为A矩阵每行的累加值。Wl表示第l层的参数矩阵,是可学习的。GCN的原理即:聚合节点信息时,需考虑邻居节点的度,当邻居节点的度越大,聚合的比例就越小。详细看b站小淡鸡的视频简单粗暴带你理解GCN图卷积神经网络
通过GCN后,可以得到单词w的表示nw,维度为dw。由于关系的数量庞大,且大部分关系对于推荐没有意义,故上述的卷积计算并没有包含关系信息。
提取DBpedia项目子图的方法是按照KBRD那篇论文的方法来做的。在项目级这边,关系语义是重要考虑因素,所以本文采用了关系图卷积网络R-GCN学习子图上的项目表示。
上述公式即采用R-GCN来表示第l+1层项目e的节点表示ne,r表示关系。
采用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的正则化约束,以防止过拟合。这样便得到了语义融合之后的表示。
通过前两小节的工作后,我们可以得到包含对话中所有单词嵌入表示的矩阵Vc,以及包含对话中所有项目嵌入表示的矩阵Nc。再通过上小节类似于超级令牌
w
~
\widetilde{w}
w
的自注意力流程后,我们可以学习到每个单词vc,和每个项目ne的embedding。
为将二者的信息进行融合,本文采用门闸机制(gate mechanism)来推导出用户的偏好表示pu,公式如下。
那么我们就可以计算将项目i推荐给用户u的概率Prrec。公式如下,通过这一公式可以对待推荐的项目进行排序,并生成一个推荐项目集。
这里定义了交叉熵损失函数,j表示对话,i表示项目,LMIM表示互信息最大化损失函数:
这一模块主要采用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表示对话的轮次,我们可以计算出每句话语的损失值。
首先,采用MIM损失函数训练知识图谱模块的参数Θg。
再优化Θr和Θd:在每次迭代中,先从KG模块中获取单词和项目的表示。然后,执行自注意机制和门机制,以获得用户偏好表示。最后,我们通过MIM正则化公式Lrec计算交叉熵损失,并进行梯度下降来更新参数Θr和Θd。
当推荐模块的参数收敛后,再去优化对话模块Θd:在每次迭代中,先从KG模块中获取单词和项目的表示。再利用KG-enhanced Transformer推导出上下文表示,最后我们通过Lgen计算交叉熵损失,并进行梯度下降以更新Θd中的参数。
如表2所示,推荐的实验采用了两大类:
A
l
l
d
a
t
a
All data
Alldata和
C
o
l
d
s
t
a
r
t
Cold start
Coldstart设置。
本文给出了系统推荐的例子;可以看到第一轮推荐,关注于
f
a
n
t
a
s
y
fantasy
fantasy,推荐了两部电影
P
a
n
′
s
Pan's
Pan′s
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的性能,例如用户统计数据。还可以研究如何人让语言表达对推荐结果更具有说服力和可解释性。还有的研究方向是如何合并历史用户项目交互数据,并使用预学习的用户配置文件开始对话。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。