StructBERT
StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding
StructBERT 是阿里对的一个 BERT 改进,模型取得了很好的效果,目前在 GLUE 排行榜上排名第二
首先我们看下面一个英文和中文两句话
i tinhk yuo undresatnd this sentneces.
研表究明,汉字序顺并不定一影阅响读。比如当你看完这句话后,才发这现里的字全是都乱的
其实上面两个句子都是乱序的
这就是 structBERT 的改进思路的来源。对于一个人来说,字或字符的顺序不影响阅读,模型也是一样,一个好的 LM,需要懂得自己纠错
StructBERT 的模型架构和 BERT 一样,它改进在于,在现有 MLM 和 NSP 任务的情况下,新增了两个预训练目标:Word Structural Objective 和 Sentence Structural Objective
Word Structural Objective
从未被 mask 的序列中随机选择部分子序列(使用超参数 $K$ 来确定子序列的长度),将子序列中的词序打乱,让模型重建原来的词序
$$ \mathop{argmax}\limits_{\theta}\sum \log P(pos_1=t_1,pos_2=t_2,...,pos_k=t_k\mid t_1,t_2,...,t_k,\theta) $$
其中,$\theta$ 表示模型的参数,希望的结果是把子序列恢复成正确顺序的 likelihood 最大
- Larger $K$,模型必须要学会重建更多的干扰数据,任务难
- Smaller $K$,模型必须要学会重建较少的干扰数据,任务简单
论文中设定的是 $K=3$,这对单个句子任务的效果比较好
Sentence Structural Objective
给定句子对(S1,S2),判断 S2 是 S1 的下一个句子、上一个句子、毫无关联的句子(三分类问题)
采样时,对于一个句子 S,$\frac {1}{3}$ 的概率采样 S 的下一句组成句对,$\frac {1}{3}$ 的概率采样 S 的上一句,$\frac {1}{3}$ 的概率随机采样另一个文档的句子组成句对
Ablation Studies
作者对于提出的两个预训练任务进行了消融研究,以验证每个任务的有效性
如上图所示,这两个任务对大多数下游任务的性能都有很大影响(除了 SNLI)
- 前三个是单句任务,可以看出 Word Structural Objective 对它们的影响很大
- 后三个是句对任务,可以看出 Sentence Structural Obejctive 对它们的影响很大
后记
很可惜,笔者翻遍了 github 也没有找到预训练好的 StructBERT 模型