记录一下李航老师的AMBERT: A PRE-TRAINED LANGUAGE MODEL WITH MULTI-GRAINED TOKENIZATION
想法
对于中文,加入词的信息(而不只是字)已经被证明可以带来提升(如下图各个实验证明);从最早的BERT基于单个字符masking,到基于whole word masking,基于entity level masking,以及基于text spans masking等等(抓住一个点改善是一种创新方法),都说明粗粒度词汇的识别是有意义的;作者通过注意力结果举例说明只使用单一字符的缺点,结合使用粗粒度词汇的优点,以及只使用粗粒度词汇的缺点:下图一显示“拍”极其关注“卖”,“北”过于关注“京”,显然不合理;下图二通过先做分词,“球拍”就不再过度关注“卖”,“北”也一样;由此分词得到的粗粒度词汇可能提升效果;但是分词也有缺点,就是分词不够准确,如“南京市长江大桥”可能被分词成“南京 市长 江 大桥”;因此如果能两者结合最佳~~~
做法
两个Encoder:显然,有两种粒度的输入,所以最直接的就是2 encoders,然后把各自的结果结合(如下图);这里的Encoder与Bert或者transformer结构一样更多细节
两者结构一样各层参数共享,除了embedding不一样 训练方式
预训练:
基于MLM(mask language modeling);训练目标如下:最大化masked tokens预测概率(最小化相应负值)
Fine-tuning
只使用NSP(Next sentence prediction)任务;每条训练数据为某个文档的一条长文本,或者不同文档的两个句子;训练目标如下:最大化golden类别预测概率(最小化相应负值) 其他对比结构:使用同一个Encoder;使用参数不共享的两个Encoder
中文实验结果(英文提升结果与SOTA对比不显著)
CLUE分类任务结果CLUE阅读理解任务与SOTA对比
总结
改进点不算大,中文效果还是有的;英文效果与SOTA(RoBERTa)对比不明显,作者认为一个原因是RoBERTa用了更多训练语料一些技巧:参数共享设计、对照试验设计