论文笔记整理:潘锐,天津大学硕士。
链接:https://www.aaai.org/ojs/index.php/AAAI/article/view/6425
来 源:AAAI 2020
论文简介
保持对话的一致性和避免内容重复是构建以知识为基础的多轮对话系统的两个关键因素。尽管一些工作倾向于将对话历史与外部知识(如个人背景信息)结合起来以提高对话质量,但它们往往忽略了将相同的知识多次融入对话会导致内容重复。这一现象的主要原因是缺乏对对话层面知识使用的有效控制。为此,本文设计了一种历史自适应知识融合机制,构建了一种有效的多轮对话模型,通过反复更新知识并逐步将其融入历史,来解决内容重复问题。
方法及模型
1、模型概述
模型由三部分组成:编码器层、历史适应层和输出层。
首先,编码器层使用Bi-GRU分别捕获外部知识、历史信息和候选答案的上下文信息。之后利用self-attention机制识别重要信息,忽略无关信息。在历史适应层中,反复更新外部知识,并逐步将其融入历史。这不仅有助于历史捕获知识,而且可以动态更新基于历史的知识。然后利用层次递归网络提取序列信息和上下文信息。最后,在输出层中计算历史记录和候选回复的相似度。
2、编码器层
编码器层负责提取上下文信息。具体地说,知识信息P、历史信息C和候选回答信息A分别由编码模块处理。编码模块由一个Bi-GRU组件和一个self-attention组件组成。在不失去一般性的情况下,,表示句子的嵌入矩阵,其中l是句子的个数,k 代表句子的长度,d 代表隐藏层的大小。
首先编码到, 然后用self-attention机制计算句子级表示。句子级表示更关注句子中的关键信息。对于每个句子:
3、历史适应层
外部知识的控制和更新与对话的上下文紧密相关。本文设计了一种新的门控机制来控制外部知识信息向当前和下一轮对话的流动。一方面,该模块将知识信息集成到当前的对话中,获得知识感知的表示,这样有助于保持对话的一致性。另一方面,知识感知表示也有助于控制下一轮用于解决重复问题的知识更新。
历史知识更新
假设知识信息的初始状态为,然后根据历史信息循环更新知识。动态更新路径如下所示:
在步骤 t 更新外部知识如下:
这里使用U有两个目的:1)控制流向下一轮的知识信息。2)从话语层面选择语义相关的知识信息进行语境理解。
对于第一个目的,在和U之间进行非线性运算,得到新的表示形式。
然后,设计遗忘门来选择新旧知识表示,
设计这种架构是考虑到对话的一致性和重复性。通过运用门控机制鼓励选择与当前对话语义相关的知识,避免选择重复但不必要的知识。
对于第二个目的,将U标准化,对知识表示的每一个部分进行评分,得到知识感知的历史表示,这种表示将外部知识结合起来,以保持一致性。然后更新外部知识并逐步将其融入历史。
分层历史信息编码器
使用来自编码器层的不同GRU对上下文历史信息进行编码,并使用self-attention机制将重要信息提取到一个向量上。编码前,历史(其中)被送入GRU和self-attention结构。将最终有意义的历史表示表示为O。
4、输出层
输出层负责计算历史和候选回复的相似性,从候选回复中选择上下文一致的回复。
实验
数据集:Persona-Chat和CMUDoG dataset
Baseline:KV profile Mmeory (Zhang et al. 2018)和Transformer (Mazaré et al. 2018)
实验结果:
自动评价:用r@k和F1作为自动度量指标。
上表展示了在两个数据集上的自动评价结果,可以看到与基线相比,本文的模型有了显著的改进。r@k和F1的改进意味着所提出的模型能够更好捕获对话中的深层语义信息,并从提供的回复中选择更相关的回复。此外,模型对CMUDoG数据集的改进比Persona-Chat数据集的改进要大。原因可能是CMUDoG数据集包含更多的知识和更丰富的语义。历史自适应知识更新机制可以更好地训练,帮助对话有效地控制CMUDOG数据集上知识的使用。
人工评价:从重复性、一致性和相关性三个维度评价。
首先,本文的模型在人类评价方面优于基线,这表明了所提出的历史子女适应机制的有效性。第二,本文的模型有效减少了重复。
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 网站。
来源:oschina
链接:https://my.oschina.net/u/4312354/blog/4816801