1. 引言
端到端面向任务的对话系统帮助用户完成某项特定任务的时候,例如订餐等,通常会借助于外部知识库的知识,通过检索和当前对话有关的实体知识信息来生成友好的系统响应 [1] [2] [3] 。虽然一些像ChatGPT的大语言模型(LLMs)在理解多回合对话和生成流畅的响应方面变现出不菲的能力,但是它们仍然需要访问特定的知识来处理特定的任务,因此知识检索在对话系统中仍需要作为一个重要的组件进行长期探索。
为实现面向任务的对话生成,目前存在两种主要的方法用来实现对话系统,一种方法是开发一个模块化结构模型 [4] ,它主要有三个模块构成,分别是自然语言理解、对话管理和自然语言生成 [5] 。但是,模块化结构的方法需要根据知识库预先定义对话状态模式,其中每个模块需要大量的人工注解来完成系统的训练。另一种方法则是用端到端的形式来构建对话系统,它没有上述的模块划分,消除了那些模块中人工注解的规则和目标值,直接利用对话文本生成端到端的系统响应 [6] - [11] 。

Figure 1. Example of dialogue history and related entity relationship diagram
图1. 对话历史以及相关实体关系图示例
将大规模的知识库(KB)整合进神经网络模型,通过和外部知识的结合来生成满足用户需求的响应,如何高效地把外部知识库整合进网络模型是如今端到端任务型对话系统的主要挑战。丰富的编码语义则是系统和知识库高效结合的前提。Liu等人 [12] [13] 在编码之前,通过数据预处理的方法获得知识库中与当前对话有关的实体知识,如图1所示,将它们以图结构的形式和对话历史共同编码在神经网络中。虽然这样的做法可以得到和对话历史有关的实体知识,但是其中难免包含着冗余的信息,这些信息并不是当前会话所需要的,在系统生成响应的时候,很容易导致一些实体的预测出现错误。
MAKER [14] 模型将知识检索与响应生成解耦,通过引入实体选择器和属性选择器,从知识库中选择相关的实体和属性,最后响应生成器根据对话上下文和多粒度检索结果生成系统响应。虽然该模型通过模块解耦缓解了传统方法中知识检索与响应生成之间的弱监督学习问题,但是仅仅通过对话上下文的编码来与外部知识相结合,一定程度上缺少对话相关实体知识的语义信息。
为了解决上述问题,本文提出了一种基于实体知识推理的端到端任务型对话系统。本文在对话历史的编码信息中通过实体掩码获取当前对话的实体信息,利用神经网络推理得到相关的实体知识。相对于在编码前利用数据预处理得到的相关实体知识,这样就减少了冗余知识的部分,能够自适应地根据当前语义推理出需要的实体知识。为了缓解知识检索和响应生成之间存在的弱监督问题,本文利用响应生成时的交叉注意力分数与检索到的实体的正负样本作对比训练,以突出当前对话上下文相关实体的语义信息,最后利用联合学习促进系统响应的生成,提高系统响应的实体预测准确率。
三个多轮面向任务型对话数据集Stanford Multi-domain (SMD) [2] 、Multi-WOZ 2.1 (MWOZ) [3] 和CamRest [1] 中的实验表明,本文模型能够生成丰富的响应内容,并且在端到端任务型对话模型中拥有着更高的EntityF1分数。本论文的主要贡献总结如下:
1) 通过利用实体掩码抽取对话上下文的实体信息,并结合上下文语义推理出当前对话相关的实体信息。
2) 提出了一个基于实体知识推理的端到端任务型对话系统,同时利用检索实体的正负样本信息作为正负监督信号,突出对话上下文所需的实体语义,促进响应实体的生成。
3) 从三个基准数据集(SMD、Multi-WOZ 2.1和CamRest)上的实验结果可以看出本文模型可以输出丰富的响应内容,有着更加精准的实体预测准确率。
本文的其余部分结构如下。第一节为引言部分;第二节介绍了相关工作;第三节详细描述了模型结构;在第四节中介绍了实验设置,评估数据集,实现细节和实验结果;第五节对全文进行了总结。
2. 相关工作
端到端任务型对话系统往往需要结合外部知识库通过人机对话来达到用户的某种目标,它将用户对话信息编码之后直接输出对应的系统响应 [15] [16] [17] 。目前端到端任务型对话存在许多由RNN [18] 神经网络结构训练的语言模型,Eric等人 [2] 提出了一种端到端对话模型,该模型在考虑模型中实体的一跳关系的同时使用键值对来表示知识库,Mem2Seq [6] 使用无序记忆网络 [19] 来表示知识库中的知识三元组。DSR [7] 将对话模型与从知识库中检索实体的注意力机制相结合。Reddy等人 [8] 利用多级内存以查询实体和键值对的形式来表示知识库。Wu等人 [10] 提出GLMP (Global-to-Local Memory Pointer Networks)用来预测在解码过程之前出现在系统响应中的实体标记。为了促进任务对话的生成,HMNs [20] 提出了一个异构记忆网络,将用户对话历史和外部知识编码进不同的记忆网络中。KB-retriever [9] 提出了一种检索器,以确保预测的实体在表格知识库的同一行。DF-Net [11] 提出了一种共享–私有模型来学习不同领域之间的共享特征。
此外,还有许多研究采用多任务学习框架来共同生成对话状态和模板响应。Sequicity [17] 提出了一种两阶段复制机制,用在编码器–解码器架构中共同生成对话状态和系统响应。Mehri [21] 等人提出了结构化融合网络,将模块解决方案的结构特征融合到端到端对话模型中。Zhang等人 [22] 利用多目标响应对解码器进行了增强,来处理一对多问题。HRGNN-AO [12] 构建了一个异构关系图来捕获图结构信息,并对两个输入文本进行联合编码。GraphMemDialog [13] 提出了基于图记忆网络(GMN)的Seq2Seq模型来学习隐藏在对话历史中的固有结构信息,并对对话历史和KB之间的动态交互进行建模。但是这些模型将对话历史信息和数据预处理得到的相关实体知识一起编码,从而导致对话历史上下文中存在一定量的冗余实体信息,解码时容易造成错误的实体预测。
随着Transformer [23] 预训练语言模型的兴起,端到端任务型对话领域也逐渐使用预训练语言模型作为编码器或解码器来完成对话上下文的理解和响应的输出。最近,一些工作利用预训练语言模型将整个线性化知识库作为输入来辅助响应生成。UnifiedSKG [24] 使用统一的文本到文本框架来生成系统响应,DialoKG [25] 通过知识图嵌入对知识库的结构信息进行建模,并且利用知识注意力掩码来选择相关的知识三元组;然而,考虑到工业知识库中有数千或数百万条记录,知识库的可伸缩性也会成为这些端到端方法的关键挑战,Q-TOD [26] 提出重写对话上下文,生成用于知识检索的自然语言查询;MAKER [14] 提出了一个知识检索器用来选择相关的实体知识和属性。MK-TOD [27] 提出了一个最大化边缘似然度的方法来训练检索器并使用响应生成中的信号进行监督,为了缓解外部知识的扩展性问题,Dual-Feedback-TOD [28] 提出了一个检索器–生成器架构,通过生成器产生正负反馈来训练检索器。
3. 模型结构
为了缓解利用实体知识图编码造成的对话上下文实体知识冗余的问题,本文模型在预训练语言模型的基础上利用实体掩码提取上下文信息的实体部分,利用推理模型推理得到当前对话相关的实体信息;为了缓解知识检索和响应生成之间存在的弱监督问题,以突出当前对话上下文相关实体的语义信息,利用响应生成时的交叉注意力分数与检索到的实体的正负样本作对比训练,如图2所示,本文提出了一个基于实体知识推理的端到端任务型对话系统,下面详细介绍每个部分。

Figure 2. Structure diagram of the end-to-end task-oriented dialogue system model in this paper
图2. 本文端到端任务型对话系统模型结构图
3.1. 对话上下文编码
除为了缓解对话上下文语义的长距离依赖问题,进而更充分地理解任务对话的上下文内容,本章选择使用预训练语言模型Bert作为编码模型。给定一个T轮对话
,
和
分别表示第t轮对话的用户请求和系统响应;使用
来表示第t轮的对话上下文,
,通过编码器
编码对话上下文:
(1)
其中
表示第t轮对话上下文
的编码表示,
表示
的输出表示。
3.2. 实体推理
在第t轮对话上下文中,根据外部知识库实体信息,可以将
中的非实体令牌的掩码设置为0,实体令牌所在的位置设置为1,即有第t轮对话上下文实体掩码
,N为第t轮对话上下文的令牌个数。通过:
(2)
得到
的实体编码信息
,再由推理模型得到
的实体推理信息
:
(3)
由此得出对话上下文最终的编码信息表示,
。
3.3. 知识检索
本模型将外部知识库设置为实体集合的形式,即
,每一个实体
由Z个属性键值对组成,
;该端到端任务型对话系统将对话上下文
和知识库K作为输入,并且生成丰富的系统响应
。
把每个实体的属性键值对拼接在一起作为实体行,将编码器
作为外部知识编码器来编码知识库的每一个实体行;通过上下文向量与实体向量的点积作为实体
与当前上下文
的匹配分数
:
(4)
从中选取前K个得分最高的实体:
(5)
检索top-K个实体可以表示为最大内积搜索(MIPS),可以使用FAISS [29] 等高效的相似度搜索库将其加速到亚线性时间。本模型均使用预训练语言模型来实现
和
,并让它们共享权重,其中模型的“[CLS]”令牌表示用作编码器的输出。已有研究表明,用BERT权值初始化
和
可能导致表征崩溃进而损害检索性能。因此,模型通过远程监督的预训练对编码模型进行初始化。
3.4. 响应生成
模型的响应生成器是在FiD (Fusion-in-Decoder) [30] 模型的基础上构建的,而FiD模型则是基于预训练模型T5 [31] ;FiD模型由编码器
和解码器
组成,编码器负责独立处理对话上下文和K个不同的实体文本输入,其中输入通过拼接对话上下文
和候选实体
而形成的。然后将编码器的输出表示拼接起来,以创建当前对话论述的全局表示
。
解码器将
作为输入并自回归地生成响应,在此过程中,解码器利用因果注意力来合并来自先前生成的令牌信息,并利用交叉注意力来合并输入令牌
信息,这使得解码器能够同时考虑到生成的令牌信息和检索到的实体令牌信息,响应的概率分布可定义为:
(6)
表示响应
的长度。
3.5. 联合学习
知识检索通过从响应生成器提取知识作为监督信号来更新,由于响应中只有与KB相关的令牌直接和知识库有联系,因此模型考虑将这些令牌到每个检索实体的交叉注意力分数视为要提取的知识,因为交叉注意力分数通常可以衡量每个实体和响应之间的相关性。假设响应
中包含Q个知识库相关的令牌,我们用
表示每个知识库相关的令牌到实体
的交叉注意力得分,
表示
中的令牌数量,L是解码层数;然后可以计算出实体
的累计得分:
(7)
其中
是通过softmax归一化操作来获得K个检索实体上的交叉注意力分布
,以此来反映它们在响应中的重要程度。
最后,将计算检索实体的检索分数
与交叉注意力分数
的KL-散度作为训练损失:
(8)
同理,将倒数K个检索实体的得分记为
,作为检索实体的负样本,同样在响应生成时获取响应中KB相关的令牌与负样本检索实体的交叉注意力分数,从而获得检索实体的负样本损失
。
此外,该模型通过最小化负对数似然损失来训练响应生成器:
(9)
最终的训练损失由检索实体的正负样本检索损失和响应生成器的损失组合而成:
(10)
4. 实验
4.1. 数据集
本章将使用三个多轮任务型对话数据集来训练和评估模型:Stanford Multi-domain (SMD) [2] 、Multi-WOZ 2.1 (MWOZ) [3] 和CamRest [1] 。
1) SMD数据集是一个使用Wiz-of-Oz框架收集的人与人交互的多领域数据集,每个对话都是在司机和车载助手之间的进行的。该数据集平均有2.6回合,平均每个对话有62.3个三元组。它包括三个不同的领域:日程、天气和导航。
2) Multi-WOZ 2.1数据集是近来发布的人与人交互的对话语料库,数据量更大,语言表达更丰富,成为面向任务型端到端对话的一个更具有挑战性的对话建模的基准。它包括七个不同的任务领域:餐厅、酒店、景点、火车、医院、出租车和警察。本文选择了三个领域(餐厅、酒店和景点)来测试模型,因为其他领域缺乏对任务对话至关重要的知识库信息。在这三个领域中,平均每个对话有5.6个回合和54.4个三元组。
3) CamRest数据集仅包含餐厅领域的对话,涉及到676个多回合对话,平均每个对话有5个回合,它的每个对话平均有22.5个知识库的三元组。
这些数据集中的每个对话都与一个浓缩的知识库相关联,该知识库包含满足对话中用户目标的所有实体。MWOZ数据集中每一个浓缩知识库中包含7个实体;SMD和CamRest数据集浓缩知识库的大小则不固定,SMD数据集的每个浓缩知识库平均有5.95个实体,而CamRest数据库平均有1.93个实体。本文模型实验遵循Raghu等人 [32] 在三个数据集上的数据分割方式,如表1所示。
4.2. 实验设置
本章模型代码使用Pytorch框架开发,使用BERT预训练模型作为对话上下文和知识库的编码模型,使用T5生成式语言模型来实现模型的响应生成器。这些预训练模型均使用AdamW优化器进行微调,数据集批量大小为{2, 4},以每4.8 K个梯度步长控制10−4的线性衰减学习率的更新来更新模型。本章实验使用一块24G的NVIDIA A10显卡进行模型训练,并且基于测试集的模型性能保存最好的模型结果。
4.3. 对比模型
本文选择基于Transformer模型训练的基线模型作对比,其对比基准模型如下:
ECO [33] :该模型使用trie约束来确保生成实体的一致性,然后使用这些实体来指导响应的生成。
DialoKG [25] :该模型引入了结构感知的知识嵌入技术和加权知识图注意力掩码策略,进而优化系统对相关知识信息的选择能力。
Q-TOD [26] :该模型将对话上下文重写为自然语言查询来用于知识检索。
MAKER [14] :该模型引入了一种具有实体检索和属性选择的多粒度检索器来查找相关的知识信息。
MK-TOD [27] :模型提出利用响应生成的信号进行监督,应用最大边际似然来训练感知检索器。
Dual-Feedback-TOD [28] :该模型提出了一种检索器–生成器架构,利用检索器检索相关知识并使用生成器生成系统响应。
PluDG [34] :该模型将知识视为知识图并提出了一种知识抽取插件来捕捉图的特征,并且通过生成提示实体来辅助系统响应生成。
4.4. 评估指标
本章模型将BLEU [35] 和Entity F1 [2] 作为评估指标。BLEU根据生成的响应与黄金响应的n-gram重叠来衡量其流畅性。Entity F1通过对生成的响应中的属性值的精度和召回分数进行为微平均,来度量生成的响应是否包含正确的知识。通过这些指标可以全面地评估该模型在知识检索和任务型对话系统中的性能。
4.5. 实验结果
对于模型ECO、DialoKG、Q-TOD和MAKER,本章采用Wan等人 [14] 的实验结果,对于模型MK-TOD [27] 、Dual-Feedback-TOD [28] 和PluDG [34] ,则采用各自文章中的实验数据,实验结果表2所示。

Table 2. Experimental results of this paper’s model and baseline models
表2. 本文模型与基线模型的对比实验结果
三个数据集的实验结果如表2所示,可以发现本文模型在使用T5-Large作为响应生成器的时候,MWOZ数据集在实体预测准确率方面达到了一个更好的性能,Entity F1分数比基线模型中的MAKER模型高出0.11,但是BLEU分数稍微有些降低,而在使用T5-Base作解码器的时候,虽然Entity F1分数没有MAKER模型高,但是BLEU分数要比MAKER高出0.48;在SMD和CamRest数据集模型虽然没有达到一个最好的性能,但是仍有一个较好的结果分数,在三个数据集中,其中MWOZ数据集对话中出现的实体数量最多,本文模型在抽取和推理对话上下文实体信息的时候,相对容易地能够找到实体知识和上下文信息的关联,所以针对对话中出现较多实体的情况,本文模型完成用户的目标有着一定的优势。
5. 结论与展望
本文提出一个基于实体知识推理并利用检索实体的正负样本促进响应生成正确实体的端到端任务型对话系统。首先通过实体掩码抽取对话上下文的实体信息,根据上下文信息推理出当前对话需要的实体知识,以便从外部知识库检索出正确的实体信息;将检索实体的正负样本与响应生成的交叉注意力分数相结合用作对比学习,形成正负监督信号来突出正确实体的语义信息,进而促进系统响应生成正确的实体。三个公共数据集上的实验结果展示了模型预测响应实体的准确性和高效性并且有着相当不错的语言流畅度。
然而,针对MWOZ数据集,虽然本章模型的性能对比基线模型实现了更佳的性能,但是在SMD和CamRest数据集上,这种效果却未能呈现,在任务对话中实体知识出现较少的情况下,本文模型捕捉实体间关系的能力稍有不足,可能是因为面对较小数据集,本文模型不能够根据对话上下文熟练掌握实体信息之间的关联,接下来或许可以使用任务对话专用的预训练语言模型来进一步验证猜想。