©PaperWeekly 原创 · 作者 | 褚维芜
学校 | 北京邮电大学研究生
研究方向 | 自然语言处理
笔者最近阅读了一些对话系统预训练相关的文章,其所采用的模型大致可以分为两类:生成式(GPT 系)和判别式(BERT 系、ConveRT 系)。其中判别式模型大多可以用于检索式对话系统的构建,本文主要对检索式对话系统预训练相关工作进行了整理和介绍。
背景
1.1 检索式对话系统
目前对话系统的建模主要有三种方式:生成式、检索式以及生成和检索融合的方式。检索式对话系统(Retrieval-based dialogue system)是根据对话历史和当前用户话语选择最合适的系统回复来与用户进行对话的系统。顾名思义,一个检索式对话系统的任务就是在大量的候选回复中选择一个最佳的回复反馈给用户,如下图所示。
检索式对话系统将对话建模为回复选择任务,这种方式构建的对话系统具有许多优势,例如:不需要专家定义结构化的领域本体,减少人工;避免了困难的语言生成(language generation)问题;回复选择模型的输出更方便进行约束和组合;不需要设计专用的用于决策的策略模块等。
然而,想要将对话系统应用于新的领域就需要足够多的域内数据来训练回复选择模型,获取这样的数据代价高昂且数据集的规模非常有限。尽管检索式对话系统的概念非常有吸引力,它仍然面临数据短缺(data scarcity)的问题。
1.2 预训练语言模型
目前,预训练语言模型(如 BERT、GPT 等)已经广泛应用于许多 NLP 任务。这些模型是基于大量的文本语料库(如:Wikipedia)进行自监督训练的,进一步 fine-tune 模型输出的表示可以在各种下游任务上取得很好的成果。
然而,由于文本和对话的语言模式存在一定的差异,传统的文本预训练模型很难在对话数据上进行 fine-tune。因此,近年来有研究者利用社交媒体的闲聊数据(如:Twitter、Reddit)来预训练语言模型,得到专用于对话系统的预训练语言模型,并将其运用于对话任务,取得了很好的效果。
在现有的研究中,对话系统预训练大量的工作是针对生成式对话系统(采用 GPT 系模型),也有一些以回复选择任务为主要目标的工作,这类工作更多地是应用于检索式对话系统。本文旨在对检索式对话系统预训练的一系列工作进行整理和介绍。
模型
2.1 pretrain (general-domain) + fine-tune (target domain) 模式
2019 年 6 月,PolyAI 团队发表了论文:Training Neural Response Selection for Task-Oriented Dialogue Systems [1](2019 ACL Paper),该论文提出了一种新的方法来训练面向任务型对话的回复选择模型。该方法先在 Reddit 数据集上预训练一个通用的回复选择模型,然后针对不同的对话领域对其进行 fine-tune,解决了任务型对话数据匮乏的问题。并通过实验验证了 pretrain+fine-tune 模式的有效性。
训练方式的选择:为什么使用 pretrain + fine-tune,不采用其他方式?
本文采用的方案是利用 Reddit 进行 pretrain(only run once),再利用预训练好的模型再各个领域 fine-tune。而其替代方案是,域内数据和 Reddit 数据融合成一个单一的训练集,但是这种方式存在如下的问题:
需要对每个任务进行昂贵的再训练
域内数据和 Reddit 数据大小之间的不平衡,目标任务信号被消除
初步实验结果表明,该方案的结果低于提出的轻量级 fine-tune 策略
所以 pretrain + fine-tune 才是时间上、性能上均为最佳的模式。
数据集的选择:为什么使用 Reddit 数据集?
Reddit 数据集包含原生的对话结构,且其数据量大、话题广泛、回复长度不受限制、回复话语更自然,所以非常适用于回复选择任务。
模型结构及训练
模型结构
预训练目标函数:Scaled Cosine Similarity Scoring
计算 input 和 response 之间的相似度: 。在训练过程中,一个 batch 包括 个 input-response 对,一个 batch 对于的损失函数为:
其中 为 input 对应的负样本,负样本为同一个 batch 中其余 个 response。
2019 年 11 月,PolyAI 团队在 arXiv 上传论文:ConveRT: Efficient and Accurate Conversational Representations from Transformers [2](2020 EMNLP Findings),这篇文章可以认为是 2019 ACL 的后续工作,依然是 pretrain(Reddit 数据)+fine-tune 的方式,在其基础上提出了一个更轻量级的预训练回复选择模型 ConveRT,并且模型还可以引入了更多的对话历史信息。另外,模型学习的句子编码可以 transfer 到其他对话任务(eg.意图识别)。
这篇文章是基于目前预训练模型参数量过大,训练和运行都消耗巨大的计算资源,导致其实际应用受阻的问题提出的。在现实应用场景中,我们需要一个“更小”的模型。ConveRT 是一个轻量级的双编码器预训练结构,它综合利用了多种方式来降低模型的复杂度,包括:子词表示(subword representation)、单头注意力机制(single-headed attention)、量化感知训练(quantization-aware training)等,该模型与其他模型相比,参数更少、训练时间更短、且具有更好的性能,如下表所示。
模型结构及训练
模型结构
预训练目标函数:和 2019 ACL [1] 一致
ConveRT 的后续工作
PolyAI 团队在提出 ConveRT 模型后,紧接着将该模型迁移到了其他对话任务:槽填充。Span-ConveRT [3] 是一个用于对话系统中槽填充的模型,它将 ConveRT 输出的表示输入 CNN+CRF,以此来完成槽填充任务,并且证明该模型在少样本情况下非常有效。ConVEx [4] 基于 ConveRT 的模型结构,并针对槽填充任务设计了一个新的预训练任务——Pairwise Cloze,进一步提高了对话系统中槽填充的性能。
Amazon 团队在 2021 NAACL 的 Industy Paper 发表了 Pretrain-Finetune Based Training of Task-Oriented Dialogue Systems in a Real-World Setting [5]。这篇文章依然采用 pretrain+fine-tune 的方式训练检索式对话系统,且模型部署在 agent-support 应用程序中,并实时进行评估。
模型结构及训练
模型结构
预训练目标函数:a ranking based loss function
计算 context 和 response之间的相似度 ,直接最小化给定 context 时真实 response 的负对数概率:
以上三篇工作均是主要针对回复选择任务进行对话预训练的文章,在一些其他工作中,如:以 BERT 为基础的对话预训练模型,虽然回复选择不是主要任务,但是利用这些模型分别对 input 和 response 进行编码,并分别得到其对应的表示,只需简单添加一些模块便可以构建检索式的对话系统,如 TOD-BERT [6]。
总结
本文主要对三篇检索式对话系统预训练的文章进行了梳理,从 pretrain(general-domain)+ fine-tune(target domain)模式的提出,到更轻量级的模型 ConveRT,再到检索式对话系统的真实场景应用。面向检索式对话系统的预训练研究还在不断发展,能力所限,目前还未找到更多相关的文章可以作为分析的材料,文中如有不当之处,还请读者予以指正。
参考文献
[1] Henderson M , I Vulić, Gerz D , et al. Training Neural Response Selection for Task-Oriented Dialogue Systems[C]// Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.
[2] Henderson M, Casanueva I, Mrkšić N, et al. ConveRT: Efficient and Accurate Conversational Representations from Transformers[C]//Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings. 2020: 2161-2174.
[3] Coope S, Farghly T, Gerz D, et al. Span-ConveRT: Few-shot Span Extraction for Dialog with Pretrained Conversational Representations[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 2020: 107-121.
[4] Henderson M, Vulić I. ConVEx: Data-Efficient and Few-Shot Slot Labeling[C]//Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2021: 3375-3389.
[5] Srivastava M, Lu Y, Peschon R, et al. Pretrain-Finetune Based Training of Task-Oriented Dialogue Systems in a Real-World Setting[C]//Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies: Industry Papers. 2021: 34-40.
[6] Wu C S, Hoi S C H, Socher R, et al. TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue[C]//Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020: 917-929.
特别鸣谢
感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
???? 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
???? 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
????
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·