©PaperWeekly 原创 · 作者 | 褚维芜
单位 | 北京邮电大学硕士生
研究方向 | 自然语言处理
任务型人机对话系统旨在帮助用户完成特定领域中的特定任务,例如:餐馆预订、天气查询和航班预订等,具有很高的应用价值。然而,一些问题阻碍了任务型对话系统在实际应用中进行部署:
一方面,任务型对话数据的收集和标注费时费力,且不同领域之间难以迁移;另一方面,虽然开放域的无标注对话数据易于获取、数据量大,利用这些数据可以训练的基于 sequence-to-sequence 结构的端到端对话系统,但采用开放域数据训练的端到端对话系统没有任务相关的信息,容易产生不可靠和无意义的回复。
研究表明,在对话数据上微调后的 GPT 模型可以生成有意义的系统回复,提高对话系统的性能。因此,在对话领域开发大规模预训练生成模型是有实际意义的。本文旨在对基于 GPT-2 的端到端任务型对话系统相关工作进行梳理和总结。
PLMForTOD:GPT-2 首次应用于任务型对话系统
论文标题:
Hello, It’s GPT-2 - How Can I Help You? Towards the Use of Pretrained Language Models for Task-Oriented Dialogue Systems
收录会议:
WNGT 2019
论文链接:
https://aclanthology.org/D19-5602/
1.1 本文的方法
本文在大型无标注的语料训练的生成式预训练模型(GPT-2)基础上,利用迁移学习来实现面向任务的对话建模。模型结构如下图所示。
为了使 GPT-2 更好地对任务型对话数据进行建模,本文整合了过去相关的研究,提出了四个方面的改进:
领域自适应和去词汇化(Domain Adaptation and Delexicalization):在任务型对话中,很多词汇使某个领域专有的,如果直接应用原始对话来训练模型,将会出现很多未登录词(OOV)。所以一般任务型对话系统的输出使 Delexicalize 的,即将对应的槽值替换为槽名。
将 Belief state、Database state、Context 均建模为普通的文本形式:Belief state 的普通文本形式 Domain1 Slot1 Value1 Slot2 Value2 Domain2 Slot1 ...;Database state 的普通本文形式为 Domain1 # of entities Domain2 # of entities ...;Context 中加入 [SYSTEM] 和 [USER] token。
增加 Token-level 的 embedding 来分别学习 [SYSTEM] 和 USER 的表示。
利用核采样代替贪婪采样来生成更多样化和语义更丰富的回复。
为了评估 GPT-2 的生成能力转移到任务型对话建模中的生成能力,本文使用 MultiWOZ 数据集对 GPT-2 进行 fine-tune。在 Fine-tune 阶段采用了多任务学习的方式,涉及两个任务:Language Modeling(LM)任务和 next utterance classification(NUC)任务:
language modeling(LM):根据之前的单词来预测下一个单词
next utterance classification(NUC):判断对话历史 和系统回复 是否匹配
本文采用 dialogue-context-to-text generation 作为评测任务,设定三个评测指标:系统是否回复了合适的实体(Inform)、系统是否回答所有用户请求(Success rate)以及回复的流畅性(BLEU)。baseline 模型为一个回复生成模型 [3],评测结果如下。
从实验结果可以看出,在选定的三个评测指标下,贪婪采样的方式其实是优于核采样的。因为核取样增加回复的多样性,这可能会降低生成特定于域 token 的概率。在不损害实际性能的情况下,依靠核采样而不是贪婪采样来产生更丰富的系统回复是可以接受的。
另外,由于本文采用的模型的输入非常简单,新的信息可以很容易地以纯文本地形式输入模型,虽然本文的模型性能不如目前的 SOTA,但是这种简单的模型非常利用领域的迁移。
ARDM:两个 GPT-2 分别编码用户和系统语句
论文标题:
Alternating Recurrent Dialog Model with Large-scale Pre-trained Language Models
收录会议:
EACL 2019
论文链接:
https://aclanthology.org/2021.eacl-main.110/
代码链接:
https://github.com/qywu/ARDM
2.1 本文的方法
虽然 PLMForTOD 中首次尝试在面向任务的对话生成中利用大规模预训练模型 GPT-2,但它的输入包含了有监督信号 belief state,并且没有取得比 baseline 更好的结果。而本文则是在没有任何标注的情况下利用大规模预训练模型进行对话的建模。
由于用户和系统的语言模式不同,采用统一的编码器对其进行编码无法反映系统和用户之间话语分布的差异。基于此,本文提出了 Alternating Recurrent Dialog Model (ARDM) ,使用两个 GPT-2 交替组合来分别学习系统和用户的话语分布,如下图所示。
本文的目标是对用户和系统的话语分布进行建模。具体而言,给定用户 () 和系统 () 之间的多回合对话 (),可以将 表示为一系列的话语 ,其中 为对话的轮次。分别利用两个 GPT-2 模型来对用户话语的分布()和系统话语的分布()进行建模。 和 为标准的语言模型(LM):
之后,可以定义对话模型 :
本文通过最大化上式来训练对话模型,为了有效地模拟多轮对话分布,还需要一个记忆机制来编码历史信息。对于第 轮的话语,重用存储在记忆 中的隐藏状态 来获取 ,并将 存储回记忆中作为 。本文使用 self-attention 来实现记忆机制,然后通过计算 和当前话语的 , , 定义 的递归关系:
可以使用 来计算语言模型的交叉熵损失 。最后本文采用核采样的方式进行解码。
2.2 主要结果
本文在两个任务型对话数据集上对 ARDM 模型进行了评测,分别是:CamRest676 和 MulitWOZ。对于 CamRest676 数据集,采用 BLEU-4 和 Success F1 两个评测指标来分别评测回复生成的质量和任务的完成率。评测结果如下图。
值得注意的是,为了测试 ARDM 模型在更少的训练数据下是否保持其性能,本文将训练数据减少到 50%,而性能仅略有下降。使用一半的训练数据,ARDM 仍然明显优于 Sequicity。这一实验结果表明,由于大规模训练前语言模型的优势,ARDM 在低资源环境下具有鲁棒性。
对于 MultiWOZ 数据集,评测指标和 PLMForTOD 中一致,baseline 模型为 TransferTransfo [2],评测结果如下图。
通过分析生成的响应发现,如果会话历史中出现了多个域,ARDM 模型在回答用户请求时往往会出错。这一发现表明,最大似然估计(MLE)在直接优化指标方面存在局限性,而强化学习(RL)可以极大地提高对话系统中的任务完成度,这就是为什么 LaRL 有更高的 Success rate。然而,LaRL 的 BLEU-4 评分较低。因此,在 RL 设置中,需要在生成回复质量和任务成功率之间进行权衡。
NeuralPipeline:提高系统的可解释性
论文标题:
End-to-End Neural Pipeline for Goal-Oriented Dialogue Systems using GPT-2
收录会议:
ACL 2020
论文链接:
https://aclanthology.org/2020.acl-main.54/
代码链接:
https://github.com/KAIST-AILab/NeuralPipeline_DSTC8
对话系统的建模有两个方式:pipeline 和 end-to-end。pipeline 方式中各个模块只能分别优化,并不能保证整体性能的最优化;end-to-end 方式直接生成系统回复,可解释性很差。另一方面,PLMForTOD 中的 GPT-2 模型的输入需要包含 belief state 信息,因此只能对有标注的数据生成回复。
基于以上问题,本文使用 GPT-2 模型来按顺序完成 pipline 模型中各个模块的工作,包括:预测对话状态(DST)、预测系统动作(POL)、数据可查询、生成系统回复(NLG),模型不仅会生成系统回复,还会生成对话状态、系统动作等中间输出,可以提高对话系统的可解性,模型图如下所示。
模型包含两个部分:1)在 delexicalize 后的 MultiWOZ 数据集上 fine-tune 过的 GPT-2 模型;2)数据库查询模块。上图中的数字代表顺序,整体流程为:
根据对话历史,生成预测的对话状态
根据对话历史和对话状态,生成预测的系统动作
如果系统动作(' inform ', ' book ')需要来自数据库的外部信息,查询模块将检索候选信息并返回其中一个
当检测到空查询结果时,需要更新当前的系统动作
根据对话历史、对话状态和系统动作,生成 delexicalize 的系统响应
根据查询信息,将系统回复中的 delexicalize 的信息替换为查询结果
和 PLMForTOD 中一样,本文在 Fine-tune 阶段有两个目标函数:Language Modeling()和 next-utterance classification()任务。不同的是,本文的 LM 任务除了回复生成外,还包括了对话状态和对话动作的生成。模型最终的损失函数为:
3.2 主要结果
DSTC8 中端到端多领域对话系统任务中有两个评价标准(评测结果如下图所示):
自动评测:Success Rate, Book Rate, Return, Turns, Precision,Recall, F1
人工评测:Success Rate, Language Understanding Score, Response Appropriateness Score, Turns
之后,本文在 MultiWOZ 数据集上进行了两个任务的评测:对话状态追踪(DST)和回复生成(NLG)。从评测结果看出,本文的模型与 SOTA 模型相比是具有竞争力的。
SimpleTOD: Simpler and Better
论文标题:
A Simple Language Model for Task-Oriented Dialogue
收录会议:
NeurIPS 2020
论文链接:
https://arxiv.org/abs/2005.00796
代码链接:
https://github.com/salesforce/simpletod
SimpleTOD 的思想大致上和 NeuralPipeline 是一致的,都是使用 GPT-2 直接生成对话状态和对话动作。但是 NeuralPipeline 在对话状态跟踪和端到端上的评测性能都比以往的单任务、模块化的模型低,而本文提出的 SimpleTOD,不仅可以在 DST、NLG 性能上达到当时的 SOTA,而且在模型输入、训练方式等方向相较于 NeuralPipeline 而言都更加简单。SimpleTOD 的 simple 主要体现在以下五个方面:
模型结构:只是用单一的模型(GPT-2)来实现对话系统端到端的建模,避免了对话系统中的子模块的设计,这一点上和 NeuralPipeline 并无区别
输入序列的定义:NeuralPipeline 中 tokenization 使用的了一些特殊符号:,,and,而 SimpleTOD 中的 tokenization 是基于选择帮助模型学习每个片段的语义角色的语义词和结束符 <|endofbelief|>
嵌入层:不包含为 SYSTEM 和 USER 设计的 token-type embedding
训练算法:只采用了 LM,并没有使用 next-utterance classification 这个任务进行 fine-tune
预训练数据:SOLOIST 在 MultiWOZ 上进行 fine-tune 之前,还在任务型对话数据上进行了 furthur pretrain,而 SimpleTOD 不需要多余的预训练数据
SimpleTOD 的整个流程如下图所示。
4.2 主要结果
SimpleTOD 在各个任务上的评测结果如下所示。除了常用的 Inform、Success、BLEU 等评测指标为,还加入了一个综合评测指标 。
SOLOIST:在任务型对话数据上 further pretrain
论文标题:
SOLOIST: Building Task Bots at Scale with Transfer Learning and Machine Teaching
收录会议:
TACL 2021
论文链接:
https://arxiv.org/abs/2005.05298
代码链接:
https://github.com/pengbaolin/soloist
SOLOIST 和 SimpleTOD 属于同期工作。在使用对话数据进行微调后,GPT-2 可以对用户选择的任何主题做出真实和连贯的连续响应,但由于缺乏基本的任务信息,生成的响应对完成任何特定的任务都没有意义。
本文提出的 SOLOIST 和NeuralPipeline、SimpleTOD 相比,主要有两个方面的不同:一是,本文使用了公开任务型对话数据对 GPT-2 进行 further prerain;二是,本文在训练模型时只需要 belief state 的标注,而其他模型还需要 act 标注信息,标注成本低。SOLOIST 模型如下图所示。
模型输入
定义 为对话历史、 为 belief state、 为 DB state、 为 delexicalize 的对话回复,原始数据集中的信息如下:
模型输入是将以上信息进行拼接,因此,训练数据集中的每轮对话可以表示为:
具体而言,对于上图中的对话,模型的输入为:
预训练任务
本文采用多任务学习的方向训练模型,有三个预训练任务:Belief Prediction、Grounded Response Generation、Contrastive Objective。信念状态预测和回复生成任务是 NeuralPipeline、SimpleTOD 是一致的,损失函数计算分别如下所示:
SOLOIST 在输入的 [EOS] 位置,引入了一个对比损失函数,该函数用于预测输入是正样例 还是负样例 。负样例是通过以 50% 的概率随机替换 中的一部分生成的,本文的负样例包含 3 种形式:negative belief、negative response、negative belief + response,损失函数如下:
最后,模型的损失函数为三个预训练任务的损失函数相加:
Fine-tune
Fine-tune 阶段和预训练阶段采用相同的损失函数。预训练和 Fine-tune 使用的数据集分别如下所示。
5.2 主要结果
end-to-end评测结果
评测指标和 SimpleTOD 是一样的,SOLOIST 在 CamRest676 和 MultiWOZ2.0 上的端到端评测结果如下:
另外,对话系统大部分情况下需要迁移到具有较少特定任务训练样本的新任务,因此小样本场景下对对话系统进行评估是一种更接近显示的方式。本文验证了 SOLOIST 在小样本场景下的性能相较于其他模型有较为显著的提升。
NLU任务
除了端到端评估外,本文在多个自然语言理解任务上对 SOLOIST 进行了评估,包括:意图识别、槽填充、对话状态追踪(DST)。评测结果如下:
从表中可以看出:
当使用完整数据集进行 Fine-tune 时,SOLOIST 的性能最好,但当使用较少的样本进行 Fine-tune 时,其性能下降得比 USE+ConveRT 更快;
SOLOIST 的性能明显优于 SoTA 方法 Span- ConveRT,并且在小样本场景下,性能差距会更大;
与 SimpleTOD 相比,SOLOIST 在 DST 任务上的精度提高了 1.13%。分析认为,这是因为任务型对话进行预训练使 SOLOIST 具备了包括 DST 在内的任务完成能力。
论文标题:
UBAR: Towards Fully End-to-End Task-Oriented Dialog Systems with GPT-2
收录会议:
AAAI 2021
论文链接:
https://ojs.aaai.org/index.php/AAAI/article/view/17674
代码链接:
https://github.com/TonyNemo/UBAR-MultiWOZ
尽管 SimpleTOD 和 SOLOIST 模型在端到端任务型对话系统评测中取得了很好的结果,但它们并没有充分探索面向现实任务的对话设置的训练和评测过程。具体而言,它们是在对话轮次级别(turn-level)而不是对话会话级别(session-level)进行训练和评估的,这使得以上模型具有局限性,主要表现在三个方面:
一是,以上方法的对话历史只包含用户话语和系统回复,而忽略了信念状态和系统动作等中间信息,而这些中间信息可为当前轮次回复的生成提供参考;二是,以上方法使用的对话历史中包含 ground truth system response,这使得每个对话轮次的回复生成是相互独立的;三是,在现实场景下,对话系统是无法获取 ground truth system response 的。
为了解决上述问题,本文提出的 UBAR 模型在对话会话级别上对面向任务的对话进行建模。使用每个对话轮次的用户话语、信念状态、数据库结果、系统行为和系统响应组成的整个对话序列在 GPT-2 上进行微调。这种训练数据是类似于现实生活中面向任务的对话系统的工作流的,UBAR 能够以对话历史中先前的信念状态和系统动作为条件,使得当前轮次的推理更容易。UBAR 的模型结构如下所示。
整个流程为:在第一个轮次 时,用户输入的话语为 ,UBAR 根据 生成信念状态 , 用于数据库的检索,以检索满足 约束下的实体数量,查询结果为 ,根据 ,UBAR生成系统动作 和 delexicalize 的系统回复 ,至此完成第一轮的交互。在第 轮,UBAR 基于用户话语和所有先前生成的输出 来生成 、 和 。
本文将对话数据预处理为简单的文本形式,所有序列都被表示组件的开始和结束的特殊的标记包围,如下图所示。UBAR 在 Fine-tune 阶段只采用了 LM,并没有使用 next-utterance classification 这个任务。
UBAR 在 MultiWOZ2.0 和 MultiWOZ2.1 上做了评测,评测指标和 SimpleTOD 是一样的。UBAR 在三种 context-to-response 设定下进行了评测:基于 ground truth belief state and system act 生成系统回复;基于 ground truth belief state 生成系统动作和系统回复;端到端生成信念状态、系统动作和系统回复。评测结果如下所示。
UBAR 在 inform rate, success rate 和 combined score 上均超过了其他模型,但是 BLEU 值比 HDSA 低,这表明 UBAR 更基于完成对话任务而不是语言层面的流畅。
总结
本文对近几年基于 GPT-2 的端到端任务型对话系统的相关工作做了总结和梳理,目前这方面的工作主要是不断改进训练数据输入的方式和格式,在模型结构和训练目标方面并没有太多的创新。如何为大模型设计合适和训练目标来学习任务型对话中特有的任务信息,以及如何使用开放域的对话数据来提升任务型对话系统的性能应该会是未来一个有趣的研究方向。
参考文献
[1] Budzianowski P, Vulić I. Hello, It’s GPT-2-How Can I Help You? Towards the Use of Pretrained Language Models for Task-Oriented Dialogue Systems[C]//Proceedings of the 3rd Workshop on Neural Generation and Translation. 2019: 15-22.
[2] Wolf T, Sanh V, Chaumond J, et al. Transfertransfo: A transfer learning approach for neural network based conversational agents[J]. arXiv preprint arXiv:1901.08149, 2019.
[3] Budzianowski P, Casanueva I, Tseng B H, et al. Towards end-to-end multi-domain dialogue modelling[J]. 2018.
[4] Wu Q, Zhang Y, Li Y, et al. Alternating Recurrent Dialog Model with Large-scale Pre-trained Language Models[C]//Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics: Main Volume. 2021: 1292-1301.
[5] Ham D, Lee J G, Jang Y, et al. End-to-end neural pipeline for goal-oriented dialogue systems using GPT-2[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 2020: 583-592.
[6] Hosseini-Asl E, McCann B, Wu C S, et al. A simple language model for task-oriented dialogue[J]. arXiv preprint arXiv:2005.00796, 2020.
[7] Peng B, Li C, Li J, et al. SOLOIST: Building Task Bots at Scale with Transfer Learning and Machine Teaching[J]. Transactions of the Association for Computational Linguistics, 2021, 9: 907-824.
[8] Yang Y, Li Y, Quan X. UBAR: Towards Fully End-to-End Task-Oriented Dialog System with GPT-2[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(16): 14230-14238
特别鸣谢
感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·