Bert的演进,XlNet,Albert

在自然语言处理过程中,对文本的预处理(Pre-Training)是迁移学习的重要部分,在自然语言处理中主要指词向量的使用,有两种形式one-hot和word2vec;预训练通常可以提升训练效率并提高模型效果,使用预训练的结果就是去试图寻找最优解。

词向量可以把一个单词表示为向量形式,在后续的模型中应用。

词向量可被认为代表单词的语义(semantic)。 

常用词向量模型有skip-gram, cbow, glove,这些模型不考虑上下文,即一个单词有固定(Fixed)的向量,不依赖于上下文的改变而改变。

而近年从ELMo,BERT, XLNet到ALBERT,这些模型重点都是考虑上下文对单词向量的影响。模型可以动态地去学习单词在不同上下文的词向量。

BERT是基于Transformer Encoder构建的模型,整个的架构基于DAE(Denoising Autoencoder),在BERT文章里叫作Masked Lanauge Model(MLM)。MLM并不是严格意义的语言模型,整个训练过程并不是利用语言模型方式来训练。BERT随机把一些单词通过MASK标签来代替,并预测被MASK的这个单词,过程就是DAE的过程。BERT有两种主要训练好的模型,分别是BERT-Small和BERT-Large, 其中BERT-Large使用了12层的Encoder结构。 整个的模型具有非常多的参数。

BERT的一些问题:

训练数据和测试数据之间的不一致性,也叫Discrephancy

训练BERT时随机Mask掉一些单词,但使用过程中没有MASK标签,这就导致训练和使用不一样。

不能用来生成数据;由于BERT依赖DAE结构训练,所以不像基于语言模型训练的模型具备很好地生成能力。如NNLM,ELMo是基于语言模型生成的,用训练好的模型可以生成出一些句子、文本等。但基于这类生成模型的方法论也存在一些问题,在理解一个单词在上下文里的意思的时候,语言模型只考虑了它的上文,而没有考虑下文!

鉴于Bert的如上不足,结合其他模型,提出了XlNet模型。

生成模型是单向的,即便使用Bidirectional LSTM类模型,本质是使用了两套单向的模型。为解决此问题,可使用permutation language model, 把所有可能的permutation全部考虑进来(源于NADE)。

为了迎合这种改变,将原Transformer Encoder架构改进,叫作Two-stream attention, 为更好处理较长文本,使用Transformer-XL,这就是XlNet核心。

AlBert可以使用更少参数,更少内存,并提升效果。

Factorized Embedding Parameterization。

对Vocabulary Embedding的改进。在BERT、XLNet中,词表的 embedding size(E)和transformer层的hidden size(H)是等同的,所以E=H;但实际上词库一般都很大,导致模型参数个数就会变得很大,为此提出基于factorization的方法。即不直接把one-hot映射到hidden layer, 而先把 one-hot映射到低维空间再映射到hidden layer,类似于做了矩阵的分解。

Cross-layer parameter sharing。

每一层的layer可以共享参数,这样参数数量不会以层数的增加而增加,因此模型比BERT-large小18倍以上。

Inter-sentence coherence loss。在BERT的训练中提出了next sentence prediction loss,给定两个sentence segments, 然后用BERT 预测句子的先后顺序,ALBert提出此种方法用处不大, 其使用setence-order prediction loss (SOP),即基于主题的关联预测是否两个句子调换了顺序。

参考:https://zhuanlan.zhihu.com/p/84559048

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值