论文阅读:MinTL【数据库查询结果的embedding】

标题:

《MinTL: Minimalist Transfer Learning for Task-Oriented Dialogue Systems》

作者:香港科技大学

内容:也是基于Transformers预训练语言模型的任务型对话,与SimpleTOD,SOLOIST,BERT-TOD合称四大天王(狗头)。

源码:https://github.com/zlinao/MinTL

Bert-TOD使用的是BERT,SimpltTOD,SOLOIST都使用的GPT-2,其中SOLOIST实现去dialogue action化与机器教学。MinTL与SimpltTOD非常像,但是使用的BART和T5,而且在序列建模上有创新之处。

作者在端到端与DST两个setting下训练模型。

创新点:

(1)DST步骤生成的不是新belief span,而是belief state的变化(增删改),然后使用一个独立的额外模块,将旧span和state的变化合成新span

【按:即SOM-DST的carryover,delete,update这三种处理,它把carryover部分独立出来了。这样生成的时候只需要生成delete的与update的d-s-v,减轻decoder压力。至于encoder侧,依然是输入previous belief span和truncated context的concat】

(2)预训练模型使用的是最新的,基于encoder-decoder形式的transformers(即BART和T5),而不是纯encoder的BERT或纯decoder的GPT。结果是,我们在20%训练数据的情况下,比baseline完整数据情况下的性能还高。

Related work

Sequicity:首次提出将belief state转化为beleif span形式用于input-seq。

BART: a standard encoder-decoder Transformer with a bidirectional encoder and an autoregressive decoder.

T5:an encoder-decoder Transformer with relative
position embeddings

SimpleTOD,Bert-TOD,SOLOIST:与MinTL一样利用Transformers预训练模型做任务型对话,可以放在一起读。

MinTL

在这里插入图片描述

1、状态编辑模块(State Editing)
B t = f ( L e v t , B t − 1 ) B_t=f(Lev_t,B_{t-1}) Bt=f(Levt,Bt1)
【按:这里作者使用了Levenshtein 这个词。Levenshtein Distance 算法,又叫 Edit Distance 算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。所以用于形容state editing还是很合适的,有点像Git版本管理的机制】

2、主框架(encoder-decoder)
H = E n c o d e r ( C t , B t − 1 ) L e v t = D e c o d e r L ( H ) R t = D e c o d e r R ( H , e k ) H=\bold {Encoder}(C_t,B_{t-1})\\ Lev_{t}=\bold {Decoder}_{L}(H)\\ R_{t}=\bold {Decoder}_{R}(H,e_k) H=Encoder(Ct,Bt1)Levt=DecoderL(H)Rt=DecoderR(H,ek)
这里输入input-seq是previous belief span和truncated context的concat。第一个生成器(DST)生成 L e v t Lev_{t} Levt,然后编辑新状态 B t B_t Bt;这个 B t B_t Bt用于查询数据库,查询结果处理为一个向量 e k e_k ek。第二个生成器(NLG)生成response。

【按:本模型没有显式的POL与dialogue action预测,直接基于encoder-output和DB result生成response。相应地,本文生成器也不以 B t B_t Bt为条件】

【按:作为输入的context当然是裁剪的,这里作者的裁剪方式的取且仅取当前轮及上一轮的utterances。这点与SOM-DST是一样的。】

【按:输出的 R t R_t Rt其实是Delex. Response,最后将DB result填入,得到最后的Lex. Response。】

3、DB searching

对查询结果即KB state k t k_t kt的处理,具体如下:

We first categorize the query result k t k_t kt according to the number of matching entities and the booking availability (a detailed list of k t k_t kt values is provided in the Appendix A)

基于规则,查询结果被分成K=16类,详情见附录A,如下图:
在这里插入图片描述

简单来说,book availability有null, fail, success三类;entity match有null, 0, 1, 2-3, >3(对不同领域,门限可以不一样)五类,这样就是 K = 3 × 5 = 15 K=3 \times5=15 K=3×5=15类。

引入一个可训练矩阵 E k ∈ R K × d m o d e l E_k\in \bold R^{K \times d_{model}} EkRK×dmodel,叫做KB state embeddings。

【按:就是把预训练语言模型的token embeddings增加K个special embedding,resize,最后就可以直接look up对应的那一个 e k ∈ R d m o d e l e_k\in \bold R^{d_{model}} ekRdmodel

【按:这个过程相当于代替POL,或者说不需要显式的dialogue action。和LaRL差不多,把显式的dialogue action学习进hidden vector里。】

4、Loss

损失函数就是两个生成器的genration losses加和。

Experiments

预训练模型:T5-small, T5-base, BART-large。

【按:三个模型,参数量依次是60M,220M,400M,规模是递增的。】

向词表中添加special segment token embeddings and KB state embeddings。

数据预处理:与DAMD一样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XPXbuZDe-1602334614257)()]

参数如表7。w=2表示只取当前轮与上一轮utterance作为context。

Evaluation Metrics:Inform,Success,Bleu,Cimbined for End2End;Joint Acc. for DST。

数据集:MultiW2.0

Results

End-to-end

在这里插入图片描述

【按:这里可以看出当前(2020年)学术界喜爱的方向,即为了减少label cost,尽量不在模型内使用显式的actions】

1 Low Resource Settings

We use 5%, 10%, and 20% of the training set data to train our models and baselines.
在这里插入图片描述

结论:MinTL在小样本情况下,比很多baselines在full training data情况下,性能还高。

2 Ablation Study:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-noKFCMOg-1602334614261)(C:\Users\66820\AppData\Roaming\Typora\typora-user-images\image-20201008175942732.png)]

结论:

1、使用 state editing机制,极大提升性能。

2、两个生成器,$Lev $ generation 和response generation,共享同一decoder参数,性能会下降,证明了两个decoder上的分布确实是有差异的。更多的参数带来更好的性能。

DST

在这里插入图片描述

【按:性能自然是好,不过依然是52到53之间。看来现有的noisy annotation不清洗的前提下,DST的瓶颈也就这样了。】

Latency Analysis

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IT4X6csK-1602334614262)(C:\Users\66820\AppData\Roaming\Typora\typora-user-images\image-20201008180455897.png)]

【按:这个表参考意义其实不大。基于Transformers的生成任务,它的O(n)基本已经被参数量级和输入序列长度这俩因素锁死了】

Conclusion

个人认为,作者使用BART/T5的idea其实并不新颖,真正创新点是state editing、去dialogue actions的DB result处理这2个。

  • state editing使得模型不生成new belief span,取而代之生成 belief change,然后再基于规则获取new belief span。好处是减轻generator的压力,但是也有坏处,那就是不得不使得第二个生成器,而SOLOIST与SImpleTOD的都是只要一个生成器
  • DB result处理方法确实新颖,15种DB state被当成15个词嵌入,添加进语言模型的预训练词向量里,一方面不需要显式的15维one-hot,另一方面不需要预测显式的dialogue actions,而是把动作信息隐藏进这个嵌入向量里,这个idea和LaRL有点相似。结果是,与SOLOIST一样抛弃了dialogue actions,这方面是优于SimpleTOD的,而与SOLOIST打了个平手。

总体而言,SimpleTOD不需要多个生成器但是需要预测dialogue actions,MinTL需要2个生成器但是不需要预测dialogue actions,SOLOIST既不需要多个生成器,也不需要预测dialogue actions,但是SOLOIST没有开源,而SimpleTOD和MinTL都开源了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值