从BERT到XLNet

从BERT到XLNet——李文哲

论文作者是以解决问题的思路展开研究的

广义自回归

目录:

1、无监督预训练

2、自回归&bert的目标函数:DAE,去噪自编码

迁移学习:

不考虑上下文&考虑上下文:

DAE去噪自编码:

在原来的数据基础上加上噪声,模拟真实环境,提高模型鲁棒性

Bert:在transformer基础上,加DAE(原单词mask掉(噪声),再预测他本身),则bert的目标函数就是DAE

参考文献:

如何训练词向量,两种方式:

Bert的优点:

考虑双向的

缺点:

1、预测两个词的前提是假设相互之间独立,即new 和 York没有关系

2、训练和测试之间存在不一致性,因为训练的时候mask了一些词,预测的时候没有

ELMo优点:

比较完备的,可以考虑被预测单词之间的相关性

缺点:但是只能做单向的,不能双向同时考虑

Product rule:

VAE的过程:变分自编码器

将两种方式结合到一起,就得到了XLNet

可将ELMo的单向改造成双向的:考虑所有可能的permutation(排列、变换),相当于考虑了所有的上下文

如果token有5个,要考虑的情况有5的阶乘个,全排列

实际使用中可以不用所有的,随机采样

双向自回归

新的目标函数:排列语言模型(所有的可能性)

训练的过程就是不断去采样的过程,采样过后取期望值,为最后结果

但是不管顺序怎么改变,输入还是一样的(原来的一个)。有一个机制:attention mask,这样可以将不同的顺序做一个模拟。

Mem可理解为是一个开始符号,每次都要被依赖的

如图,按照模拟的顺序,做不同的依赖:

Attention mask:是一个矩阵

红色代表参与预测,横着看矩阵,第一行代表预测1,需要3、2、4

第二行代表预测2,需要3

可理解成不改变模型,只改变数据,数据增强的概念,数据变成了全排列语言模型。

加上Attention mask,可以学习到哪些数据可以连在一起,哪些不能连在一起


Bert是auto encoding

通过本身预测本身,是一个经典的auto encoding

既可以很好的处理噪声(mask),也有能力自己去预测自己,还可以预测出被误导的

Transformer可以用于长文本处理,但这个问题本身很难

分段计算,单独计算,减少内存,但是缺少了联系,为了连在一起,变成了Transformer-xl

NLP落地应用:

首先要定义问题的范围,明确问题本身,才能有针对性的解决,泛泛的问题没法解决


Mask 和dropout的区别:都是加入噪声,但一个是在数据层面,一个是在模型上改变


自编码优点:模型本身是考虑上下文的(双向的),目标函数就是通过上下文去预测某个单词。

自回归:有前后顺序的(单向的)。

再参数化:

标准的:相当于一个softmax

有些问题,只考虑了前提(is a city),而且都预测new,发现不管是在第4个还是第5个,概率都一样,即没考虑预测词的位置。

新的:增加了Z,位置信息

但会有一个问题:

预测不同词的时候要求不一样,矛盾了

解决方案:

将h:内容+位置 和g:位置 两条线路分开计算

Query:看不到自己

Content:看得到自己

XLNet用到了很多的数据,跟bert比较不太公平,效果比bert好

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容