前言
-
KDD2020 基于外源KG对CRS进行的工作
- code :https://github.com/RUCAIBox/KGSF
对话式推荐系统(CRS)旨在通过交互式对话向用户推荐高质量的物品。现有CRS有两个主要问题有待解决:
- 对话数据缺少足够的上下文信息,无法准确地了解用户的偏好。 很实在的问题
-
自然语言表达与物品级用户偏好之间存在语义鸿沟(semantic gap)。 语言表达到具体物品存在gap
针对以上问题: - 文中结合了面向单词和面向实体的知识图谱(KG)来增强CRS中的数据表示,并采用互信息最大化来对齐单词级和实体级的语义空间。
- 基于对齐的语义表征,进一步研究用于进行准确推荐的KG增强的推荐模型,以生成信息丰富的关键字或实体的KG增强对话模块。
本质上,问题源于:对话模块和推荐模块对应于两个不同的语义空间,即单词级语义空间和实体级语义空间。本文尝试合并两个特殊的KG,以增强这两个部分的数据表示,并通过关联两个KG来融合两个语义空间。
推荐关注物品信息,对话关注文本信息,分别对应实体级-和单词级-的KG,构成两个不同的语义空间
CRS Task Review
通过多轮对话向用户提供适当的商品。在对话中,聊天代理根据上下文对话历史分析并了解用户的偏好。然后,它要么生成适当的推荐,要么开始新一轮的对话以进一步解释。该过程结束,直到任务成功或用户离开。在CRS中,有两个主要组件需要开发,即推荐组件和对话组件。 这两个组件应无缝集成,并且成功推荐是最终目标。
Approach
1. Encoding External Knowledge Graphs
如上表一所示,完全理解用户偏好并生成合适的回复是非常难的。文中分别使用两个KG来在增强推荐侧(item/entity)和对话侧的表征(word)
-
Encoding Word-oriented KG
基于微软的ConceptNet作为单词级KG,其中语义信息表示为,为单词间的关系。并非ConceptNet中的所有单词都对任务有用,只考虑出现在语料库中的单词,从ConceptNet中提取它们相关的三元组,并删除了与语料库中的单词相关的三元组很少的单词。 基于GCN来捕获单词节点之间的语义关系。 在每次更新时,GCN都会从图中的一跳邻域接收信息,并执行汇总操作:
这里没有介绍GCN的训练方式。
-
Encoding Item-oriented KG
针对推荐物品,要考虑的另一种语义信息:物品及其相关实体。 利用开源KG: DBpedia。 三元组由⟨e1,r,e2⟩表示,其中e1,e2∈E是实体集E中的项目或实体,而r是关系集R中的实体关系。 从这些数据集中相关物品和实体作为种子开始,在DBpedia图上提取它们的一跳三元组。 对于面向物品的KG,关系语义还是很重要的。 因此利用R-GCN来学习提取的子图上的物品表示:
2. KG Fusion via Mutual Information Maximization
以上可以获得了两种KG的节点表征,分别由(单词w)和(物品表示)表示。 为了弥合单词和物品之间的语义鸿沟,文中使用Mutual Information Maximization technique(MIM)互信息最大化技术,用于相互改善两个耦合信号(例如,输入和输出)的数据表示。 其核心思想是基于互信息(MI)的概念。 给定两个变量X和Y的MI定义为
MI实际上计算比较困难,MIM因此也不需要计算精确的MI值,而是尝试以下面的形式最大化MI:
对于本文,有两种语义信息(即单词和实体),并且希望对齐它们的语义表示空间。 进行对话后,首先从话语文本中收集单词(非停用词)和实体(包括物品)。 对于在对话中共同出现的实体词对⟨e,w⟩,我们通过转换矩阵拉近它们的表示
为了有效地对齐两个KG的语义空间,对前面利用的两个GNN采用MIM损失进行预训练,这迫使两个语义空间在开始时就接近。 在fine-tuning阶段,我们将MIM损失视为GNN的正则化约束,以防止过度拟合。 通过融合的KG的表示进行推荐。
3. KG-enhanced Recommender Module
推荐的重点是学习用户偏好。 与传统的推荐系统不同,文中假设没有以前的交互记录。(CRS推荐往往都只利用当时context的信息),我们只能利用对话数据来推断用户的偏好。 首先,整理对话中出现的所有单词。通过lookup,可以获得预训练的单词/物品向量,并将这些向量拼接得到矩阵和,通过自注意力机制对两个矩阵得到特征向量。
为了合并两部分的信息,利用gate机制来构建用户偏好表征:
4. KG-enhanced Response Generation Module
研究如何在CRS中生成回复话语,采用Transformer [27]开发编码器-解码器框架。 encoder遵循标准的Transformer架构。 并采用KG增强的decoder。 为了在解码时更好地生成响应,结合了上下文词和物品的KG增强表示。 在自我注意子层之后,我们进行两个基于KG的注意层,以融合来自两个KG的信息:
是encoder的输出,是上一层decoder的输出,区别与标准的Transformer,这块引入了的物品和单词的KG信息。
与聊天模型不同,预期生成的回复需要包含推荐的物品,相关实体和描述性关键词。 文中进一步采用复制机制(copy mechanism)来增强此类令牌的生成。 形式上,给定预测子y1,···,yi-1,产生yi作为下一个标记的概率为:
是通过将encoder输出作为输入,实现上是在词汇表上的softmax函数构成生成概率,是通过复制机制实现的复制概率, 在两个KG的节点上,而表示我们已使用的两个KG。 copynet:https://zhuanlan.zhihu.com/p/73590690
为了学习响应生成模块:
实验
实验设置
- 数据集
基于REDIAL数据集进行构建,是电影推荐任务。 - 评估:
对于推荐任务,根据[4],我们采用Recall @ k进行评估。除了标准设置外,我们还考虑推荐系统中的一种特殊情况,即冷启动
在CRS中,由于我们有对话上下文。为了模拟CRS中的冷启动场景,我们仅考虑上下文中没有提及任何项目的测试案例。这项实验旨在研究我们的融合策略对于从基于单词的语音中学习用户偏好是否有用。
对于对话任务,评估包括自动评估和人工评估。我们使用Distinct n-gram(n = 2、3、4)来测量句子级别的多样性。对于CRS,对话系统能够生成与项目或实体相关的信息性答复尤其重要。因此,我们引入了一种新的度量标准,计算所生成话语中物品的比率。与传统的对话任务不同,我们不需要产生类似于地面真实话语的响应。相反,最终目标是成功提出建议。因此,我们采用人工评估,而不是使用BLEU指标。我们邀请三个志愿者在两个方面给生成的候选者打分,即流畅性和信息性 (Fluency and Informativeness)。分数范围是0到2。
小结
这篇工作的motivation指出了CRS现有问题,通过引入两种不同的KG来增强CRS,具体基于生成的思想进行对话生成,将对话和推荐两部分进行融合,跟其他通过策略控制对话和推荐的方法有较大区别。因此本文的CRS更偏向聊天向的任务。
END
本人简书所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人简书主页查看最新信息https://www.jianshu.com/u/40d14973d97c