点击下面卡片,关注我呀,每天给你送来AI技术干货!
作者:潘小小(字节跳动AI Lab算法工程师)
文末可阅读原文
今天和大家一起简单回顾一下2019年发表的《MASS: Masked Sequence to Sequence Pre-training for Language Generation》这篇论文。MASS产生的背景,是在BERT取得重大关注后,发现BERT并不适用于生成式任务之后。作者将BERT中的预测token改为了预测fragment(连续片段),同时采取了整个sequence-to-sequence modeling,取代了BERT仅仅使用encoder作为建模的做法,使得MASS更加适合生成式的任务。
1. MASS预训练框架
图中的"_"指的是[MASK],可以看到,在encoder端被mask掉的连续片段x3-x6,在decoder端作为目标输出。
用公式表达其训练目标为:
其中u:v代表一段连续token片段,文中还定义了一个超参数k,k指的是片段包含的token数
MASS = Soft mix (BERT, GPT)
作者还提供了另一个有趣的视角,来帮助理解MASS
在上图中,(a)代表的是k=1的情况,被mask掉的连续片段就“退化”成一个token,这种情况就等价于BERT (b)代表的是k=m的情况,也就是整个sequence都被mask,这种情况就等价于GPT。
2. 实验
[预训练阶段]
和BERT类似,被选中mask掉的连续片段中的每一个token,有80%的概率是正常的[MASK] token,10%的概率是被随机token替换,10%的概率保持原来的token。
k取值会使得大概50%的token被mask
[下游任务: 无监督Machine Translation]
仅使用单语+back translation构造伪平行语料用于fine-tune,得出的结果如下:
MASS和其他无监督翻译的对比
MASS和其他预训练方法的对比
[下游任务: 低资源Machine Translation]
可以看出,在相同的平行数据量的情况下,使用MASS预训练的参数进行初始化,明显高于直接训练的baseline。
3. 分析
[关于k的取值]
经过实验发现,k取值为50%平均总长度时,综合效果最好
作者:潘小小
字节跳动AI-Lab NLP算法工程师,目前专注多语言机器翻译,法国留学文艺女青年,现居上海。知乎id: 潘小小
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
点击上面卡片,关注我呀,每天推送AI技术干货~
整理不易,还望给个在看!