StructBERT详解

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 ObjectiveSentence Structural Objective

Word Structural Objective

从未被mask的序列中随机选择部分子序列(使用超参数 K K K来确定子序列的长度),将子序列中的词序打乱,让模型重建原来的词序


a r g m a x θ ∑ log ⁡ P ( p o s 1 = t 1 , p o s 2 = t 2 , . . . , p o s k = t k ∣ t 1 , t 2 , . . . , t 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) θargmaxlogP(pos1=t1,pos2=t2,...,posk=tkt1,t2,...,tk,θ)
其中, θ \theta θ表示模型的参数,希望的结果是把子序列恢复成正确顺序的likelihood最大

  • Larger K K K,模型必须要学会重建更多的干扰数据,任务难
  • Smaller K K K,模型必须要学会重建较少的干扰数据,任务简单

论文中设定的是 K = 3 K=3 K=3,这对单个句子任务的效果比较好

Sentence Structural Objective

给定句子对(S1,S2),判断S2是S1的下一个句子、上一个句子、毫无关联的句子(三分类问题)

采样时,对于一个句子S, 1 3 \frac{1}{3} 31的概率采样S的下一句组成句对, 1 3 \frac{1}{3} 31的概率采样S的上一句, 1 3 \frac{1}{3} 31的概率随机采样另一个文档的句子组成句对

Ablation Studies

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Gvf7oSD-1603103094313)(https://i.loli.net/2020/10/15/d2TEIvcjkPZyDg3.png#shadow)]

作者对于提出的两个预训练任务进行了消融研究,以验证每个任务的有效性

如上图所示,这两个任务对大多数下游任务的性能都有很大影响(除了SNLI)

  • 前三个是单句任务,可以看出Word Structural Objective对它们的影响很大
  • 后三个是句对任务,可以看出Sentence Structural Obejctive对它们的影响很大

后记

很可惜,笔者翻遍了github也没有找到预训练好的StructBERT模型

Reference

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值