半监督学习和显式策略注入的生成式任务导向对话预训练模型

前言

今天要介绍的这篇是将对比学习应用到对话系统的一篇最新paper

GALAXY: https://arxiv.org/pdf/2111.14592.pdf

废话不多说,直接开始~

也欢迎文末关注笔者的微信公众号等等,会有更多好内容分享给大家~

贡献

先给出其贡献点。

(1)第一个使用半监督让模型显示学习对话策略的研究。

(2)实验结果显示了方法的有效性,其学习到了对话策略。

(3)同时利用了有标签数据和无标签数据,给这一领域带来一些启发。

对话预训练模型

一个任务型对话系统,可以概括成三个基础能力:

(1)Dialog understanding:从用户话语中提取结构化语义。

(2)Policy planning:判断对话意图。

(3)Dialog generation:产生合适的语句,返回结果。

近年来端到端的预训练模型被广泛的应用到任务型对话系统,将其转化为了一个生产式任务,效果取得了显著性提高。本篇paper也是采用的预训练模型进行的。

问题

当前对话型预训练模型在大规模数据集上预训练时面临如下问题:

(1)各种对话语料标记注释的不一致

(2)大部分语料是没有标签的

(3)大部分语料由于没有标签只能进行自监督训练,所以只能学到一些通用的知识,一些对话策略没有被很好的利用

数据集

这里利用了两个数据集,一个是带有标签的数据集,另一个是不带有标签的数据集分别为UniDA和UnDial。

UniDA

这里作者整理了已有的8个benchmarks数据集,并采用ISO的方式,整体进行了标准,使得其成为了一个新的具有统一标签的数据集即UniDA,具体的一共是20种标签(下面描述都简称DA),如下:

大的方面分为Social Convention、Directive、Information Seeking、Information Providing、Information Checking五个方面,比如Social Convention是最基本的一些社会用语,包含hello,thanks等等,更详细的可以看paper的附录A.1。

最后的形成的UniDA数据集如下:

UnDial

作者这里从网络上爬取了大量的对话数据,包括论坛聊天等等,然后进行预处理最后得到一个大的无标签数据集,具体的预处理逻辑包括比如(1)去除带有url的(2)除去有连续重复三次以上单词的等等,更多详细的可以看附录A.2。

详细的统计信息如下:

最后生成的UnDial数据集统计信息如下:

方法

整体框架

这里采用的整体框架是UniLM,它包含了一个双向的encoder用以表征语义和一个单向的decoder用以生成。具体的输入端形式如下:包含tokens, roles, turns, and positions四个embedding。详细的见附录B.1

Pre-training Objectives

这部分是预训练任务,是全文最重要的idea,包含response selection, response generation, DA prediction and consistency regularization四个部分

整体如上,左边是上述提到的输入,左边是预训练任务,蓝色线代表双向attention,橙色线代表单向attention。

下面一个一个来看

response selection

说白了这个任务就是看一对pair(context,reponse)是否匹配,是一个二分类任务,其能够学到一些对话上下文语义,具体的这一任务是在双向encoder层最后加一个二分类head进行,如上图最左边的的RS。

正样本对就是真实的pair,负样本对就是从语料中随机抽reponse。

response generation

就是一个基本的根据context生成reponse的生成任务,采用的是loglikelihood loss。

DA prediction

这里利用的是有标签数据UniDA, 任务是预测标签,由于一些responses有多个DA,所以这里视作为一个多标签分类任务。所以最后接的head是一个sigmoid。

Consistency Regularization

这里利用的是无标签数据UnDial,具体思路采用的就是最近大火的对比学习,感兴趣的小伙伴可以看笔者之前的一篇博客:

对比学习火了前言最近对比学习火起来了,其思想特别简单,而且效果好,只要利用一般来说就有收益,快来学习起来吧,总结起来就是https://mp.weixin.qq.com/s/EOlXjdd1gCruiF-B1JoIgg

这里数据增强也是借鉴了Simsce等paper,采用的是dropout。

具体为:

两次dropout得到两个不同的表征,然后经过softmax,即如下

然后基于q_{1}(a|c)q_{2}(a|c)做kl散度。

c代表context,a代表DA标签。

Semi-supervised Pre-training Paradigm

这里主要讲怎么联合训练这些上述任务。

对于有标签UniDA数据集,直接相加上述四个loss即:

对于无标签UnDial数据集,由于没有标签,所以无法进行DA prediction 任务所以是其余三个任务loss相加:

这里需要说明的是,由于UnDial数据集包含了大量开放领域对话数据,有很多noisy,所以这里设计了一个门机制(公式中的g)用来只选择那些好样本参与训练。具体的思路就是

其中

可以看到,说白了就是选择熵小的,熵小就代表判断DA类别越问题,举个例子:假设一共4个类别那么

(0.7,0.1,0.1,0.1)的熵要小于(0.25,0.25,0.25,0.25)。说白了前者这个样本比较确定结果,后者这个样本模型都不知道其属于哪个DA,那么我们就不要了。

总的来说最后预训练总loss就是上述两个loss的加和:

训练过程中,将UniDA和UnDial数据集shuffle,随机batch,进行训练。

Fine-tuning and Inference

在fine-tuning 阶段,对于有DA标签的任务,这里将DA标签和response组合成新的reponse,供模型生成,如果没有,那任务就只生成response,同时为了避免fintune任务和pretrain任务差异过大,所以在fintune阶段还说保留了DA prediction任务。如下:

需要注意,对于有DA标签的下游任务,这里的 \alpha=1,相反 \alpha=0

实验结果

(1)首先来看整体收益

在MultiWOZ2.0和MultiWOZ2.1上采用了Inform、Success和BLEU三个指标,为了得到一个整体的性能,这里使用的是Comb = (Inform + Success)×0.5+BLEU 。

同理在In-Car上采用了Match、 SuccF1和BLEU三个指标,为了得到一个整体的性能,这里使用的是Comb = (Match + SuccF1)×0.5+BLEU。

可以看到结果都是最好

(2)再来看dialog policy预训练任务的有效性

为了消除模型带来的偏差,这里用了UniLM和PLATO两种模型作为baseline,其中TOD-UniLM 和TOD-PLATO代表在UniDA和UnDial数据集上预训练原始数据的original objectives任务,同样Fine-tuning阶段也保持一致。

(3)半监督方式的有效性

这里对比了本文提出半监督方式的有效性,具体对比的baseline是Pseudo-Labeling、 Variation Autoencoder (VAE)和multi-task learning。

其中前两种方式可以具有看附录C。

第三种方式就是图片中的 GALAXY_{multi},即不加Consistency Regularization这一预训练任务。其实就是对Consistency Regularization这一loss的一个消融实验。

(4)低资源场景下的性能

这里同时验证了一下模型在低资源(小样本)场景下的性能

分析讨论

这里作者对所提方法为什么会有效,进行了一些讨论和实验,进一步加以说明

(1)学习曲线

为了模拟真实场景(有少量有标签的数据和大量无标签的数据),作者使用10%的UniDA数据+所有UnDial 数据作为train,剩下的90%UniDA数据作为test进行实验,结果如上。

可以看到在一开始KL loss降到了0,说明模型坍塌了,所有特征输出趋向于常数,但是由于DA prediction 任务的存在,这一问题在后面的迭代中得到了缓和,同时由于Consistency Regularization的存在,避免了DA prediction的过拟合,即随着training F1的持续增加,test F1没有出现下降。

(2)消融实验

这里是对预训练任务的一个消融实验。

(3)具体case

这里具体给了一个case,对比的baseline是UBAR,可以看到GALAXY在两轮的对话中都取得正确答案。

总结

总的来说,还是通过对比学习,将大规模的无标签数据进行了利用。对比学习利用无标签数据这一trick其实已经被用到了方方面面,比如多模态中的大一统模型等等,所以说是一个热点。

另外最近较火的还有Prompt,甚至已经有论文将Prompt+对比学习结合了起来PromptBert。将最近这些火的idea,结合结合,如果很好的能应用到一个领域,那下一个靓仔就是你,赶快头脑风暴,卷起来吧~~

 关注

微信公众号

知乎:

小小梦想 - 知乎ML/NLP研究员,欢迎关注微信公众号“算法让生活更美好” 回答数 75,获得 46 次赞同https://www.zhihu.com/people/sa-tuo-de-yisheng/posts

github:

Mryangkaitong · GitHub

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值