Pre-trained Natural Language Understanding for Task-Oriented Dialogue

前言

众所周知,预训练BERT语言模型在许多NLP任务重大放异彩,用来文本内容和语义的表征学习很有效果,而且大大降低了下游任务的训练时间。但是由于普通文本和任务型对话之间的语言模式的潜在差异,使得现在的预训练语言模型在实际使用中作用不大。

至于对话领域的预训练语言模型,大多数都用的是开放域的数据集来训练,例如Reddit或Twitter,用于对话响应的生成。而对于任务导向型对话预训练语言模型来说,还没有效果很好或者说是开源了的好模型,所以本篇论文针对面向任务的对话系统,结合现有 BERT 基础架构提出了一个新的预训练目标。

TOD-BERT带来了如下的成果:

  • 在任务导向型对话的IR(意图识别),DST(对话状态追踪),DAP(对话行为预测),RS(响应选择)这四个下游任务中,达到了SOTA的效果;
  • 实验证明了,TOD-BERT具有较强的few-shot能力,可以缓解面向任务对话的数据稀缺的问题;
  • TOD-BERT在训练时,把BERT中NSP(预测下一个句子是否是下一句)替换为RCL(Response contrastive loss响应对比损失);

论文提供的源码以及我应用在对话系统中的实践仓库如下:
TOD-BERT
nlp-dialogue

模型细节

数据集

首先我们需要来看一下,模型使用了九种数据集,都是多轮对话,在数据集上也取得了很好的效果,使用多领域多轮对话也是因为坐着极力想证明,做任务导向型的对话所用的预训练模型,一定要用任务导向型的语料库来训练效果才好。

This paper aims to prove this hypothesis: self-supervised language model pre-training using task-oriented corpora can learn better representations than existing pre-trained models for task-oriented downstream tasks.

使用语料如下:
在这里插入图片描述

模型结构

预训练语言模型方面,选用的是Base BERT(不过文中提到使用其他语言模型也是可以的,选用BERT只是因为它比较火,事实上论文的源码也是使用了很多其他的语言模型),损失函数方面使用的是MLM和RCL(后面详细说明)。

还有一个比较特别的就是TOD-BERT为用户和系统引入了两个特殊的token来模拟相应的对话行为,即在用户的utterance前加入[USR],在系统的utterance前加入[SYS]。从而能够将一个多轮对话的所有的utterance连接起来,变成一个序列,结构如下:
在这里插入图片描述

损失函数

首先是MLM,熟悉BERT的应该都知道,我在这里就提一下:
L m l m = − ∑ m = 1 M l o g P ( x m ) L_{mlm}=-\sum_{m=1}^MlogP(x_m) Lmlm=m=1MlogP(xm)

其中, M M M 为被mask的token的总数, P ( x m ) P(x_m ) P(xm) 是token x m x_m xm 在词汇表上预测的概率。

接下来重点看一下RCL,它有如下几个优点:

  • 能够学到[CLS]这个token的更好的表示,这对于所有下游任务都是必不可少的;
  • 刺激模型去捕获潜在的对话顺序、结构信息和响应相似性;

具体做法是,采用双编码器方法,模拟了多个负样本。有一批对话 { D 1 , … , D b } \{D_1,…,D_b \} { D1,,Db},随机选择的回合 t t t 分割每个对话,例如, D 1 D_1 D1 将被分割成两部分,一部分是上下文 S 1 1 , U 1 1 . . . S t 1 , U t 1 S_1^1,U_1^1...S_t^1,U_t^1 S11,U

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨痕_777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值