论文标题:AMBERT: A Pre-trained Language Model with Multi-Grained Tokenization(多粒度分词的预训练语言模型AMBERT) 作者:Xinsong Zhang, Hang Li 机构:字节跳动 论文地址:https://www.aminer.cn/pub/5f48cdef91e011096f956039 摘要 以BERT为代表的预训练语言模型在自然语言理解(NLU)中的霸主地位毋庸置疑。这些模型中的token通常是细粒度的,对于英文,token是单词或子词;对于中文这类语言,token则是单个汉字。在英语中也存在多个单词组成的自然词汇单元,例如New York,因此使用粗粒度的tokenization也是合理的。事实上,细粒度和粗粒度tokenization对于预训练语言模型的学习各有利弊。据此,字节跳动提出联合使用细粒度和粗粒度的预训练语言模型:AMBERT。对于英文,将tokenization之后得到的细粒度(一串的单词)信息和粗粒度(一串的短语)信息输入到AMBERT,细粒度和粗粒度分别使用一个encoder,这2个encoder仅仅是嵌入层参数不同,其他参数共享,从而获取词级别的上下文表征和短语级别的上下文表征。在中文上的细粒度和粗粒度分别对应字和词。在中英文benchmark(包括CLUE, GLUE, SQuAD and RACE)上分别进行实验。结果表明,AMBERT模型在几乎所有情况下都优于现有性能最好的模型,特别是对中文的性能改善显著。 模型 AMBERT的整体框架如Figure 3所示。先对输入文本上进行tokenization,以获得细、粗粒度的token序列。细、粗粒度token序列再分别输入到两个encoder。这里的encoder与BERT或Transformer的encoder的架构完全相同。此外,两个encoder在每个对应层共享相同的参数,但二者的嵌入层参数不同。最后分别得到细粒度token序列和粗粒度token序列的的上下文表征。 模型结构简单到爆,有木有啊? 预训练 预训练的目标还是MLM,由于NSP已经是树倒猢狲散,墙倒众人推,AMBERT当然站在巨人的肩膀上(踩上一脚),在需要的时候拿过来比(数)较(落)一番。 其中$\overline{\mathbf{x}}$表示被mask掉的细粒度token(即需要重建出来的token),$\hat{\mathbf{x}}$表示原文被mask的细粒度token序列。$\overline{\mathbf{z}}$表示被mask掉的粗粒度token(即需要重建出来的token),$\hat{\mathbf{z}}$表示原文被mask的粗粒度token序列。 微调 以分类任务上微调为例,将细、粗粒度encoder中 [CLS]的表征,用于下游分类任务。微调过程的优化函数如下: 其中,$\mathbf{x}$为输入的文本,$\boldsymbol{y}$表示待预测的文本类别,$\boldsymbol{r}_{x 0}$和$\boldsymbol{r}_{z 0}$分别是细粒度和粗粒度encoder中特殊token [CLS]的表征。而最后一项则是通过归一化让两个粒度得到的[CLS]表征尽量保持一致。此外,文章还对AMBERT稍作修改,就得到了下述2种变体: AMBERT-Combo: 用两个非参数共享的encoder分别编码两种粒度的句子; AMBERT-Hybrid: 用单个encoder而不是两个encoder去同时编码两种粒度的句子,也就是把粗细粒度的句子先拼接起来再送到BERT里,这就会让自注意力在不同粒度的句子中进行交互。 实验 数据说明 中文预训练数据集使用一个包含2500万文档(57G未压缩文本))的今日头条语料库(估计不会公开的,sad+1)。英文预训练数据集则来自Wikipedia和OpenWebText的1390万文档(47G未压缩文本)的语料库。对于中文,粗细粒度分别是词和字,在CLUE上进行评测。分词工具则是字节跳动内部开发的分词工具(估计也不会开源了sad+10086)。这两种token的生成过程都利用了WordPiece技术,最终产生的中文词典分别包含21128个字和72635个词。对于英文,粗细粒度分别短语和词。英文单词是天然的细粒度token,至于粗粒度是先利用KenLM构建n-gram,用频率足够高的短语构建短语级别的字典,这些短语的最后一个单词高度依赖于其前置单词。最后利用贪心算法对文本进行短语级切分,得到30522个单词和77645个短语。英文评测任务是在GLUE上进行的,此外还在英文阅读理解数据集SQuAD和RACE进行进一步实验。 实验结果:中文数据集 中文CLUE上的实验结果如Table 1和Table 2所示。从实验结果看,AMBERT在CLUE上确实一枝独秀,在其中4个任务上取得最优结果,但在WSC和CMRC数据集上与最优结果存在较大差距,特别是CMRC数据集上堪称大型翻车现场(3个百分点的差距)。
实验结果:英文数据集 Table 4和Table 6是AMBERT在GLUE上的实验结果。在多数数据集上AMBERT要优于其他baseline模型,且多粒度的效果确实好于单粒度。但是如果放到更大范围的模型比较,AMBERT整体上逊色于RoBERTa,但是优于其他模型。另外,从机器阅读理解数据集的对比结果Table 5可以看出,在SQuAD上AMBERT大大优于Google官方的BERT,而在检测span任务中,单词级的BERT通常表现良好,短语级BERT较差。另外,在RACE的dev set 和 test set上,AMBERT发挥稳定,全场最佳。