赞
踩
之前提过,transformer的优点是舍弃传统的RNN和CNN,通过attention机制,将任意两个位置单词之间的距离置为1,有效解决了NLP中的长期依赖问题。
长期依赖:指当前系统的状态,可能受很长时间之前系统状态的影响,是RNN中无法解决的一个问题。
理论上,通过调整参数,RNN是可以学习到时间久远的信息的。但是,实践中的结论是,RNN很难学习到长期信息。RNN 会丧失较远以前的信息的能力,导致长期记忆失效。
——————————————————————————
transformer由若干encoder和decoder组成,下图左侧为encoder,encoder由Multi-Head-Attention(多个Self-Attention)和一个全连接层(Feed Forward前向传播)组成。实现自然语言到词向量的转换。右侧是decoder,decoder由Masked Multi-Head Attention, Multi-Head Attention和一个全连接组成,输出结果是最后结果的条件概率。
上图左侧是一个transformer block,即Multi-Head Attention和一个全连接层(Feed Forward),对应下图中一个Trm,Trm数量不固定。
bert有简单和复杂两种模型,对应的超参数分别如下:
在上面的超参数中,L表示网络的层数(即Transformer blocks的数量),A表示Multi-Head Attention中self-Attention的数量,H是Hidden Layers的数量。
bert的输入是一个长度为512的3个词嵌入特征(词向量)的单位和。
三个特征词向量分别是:
此外,特殊符号[CLS]和[SEP],若输入出现[CLS],说明该模型为分类模型;[SEP]用于分割输入中的两个句子。
input是bert的输入,等于token Embeddings + 位置Embeddings + 分割Embeddings 的单位和
bert属于多任务模型,由Masked Language Model和Next Sentence Prediction两个自监督任务组成。
Masked Language Model
MLM是指在训练的时候对输入的语句进行随机mask,可以mask一些单词,也可以mask一些字。之后让模型通过语料的上下文来预测被mask的字词是什么。类似于英语的完形填空。
bert中的mask规则是,语句拆分为的全部token中,有15%的token被随机mask,mask的方式有三种:在这15%中,有80%被直接替换为[Mask];10%被替换为其他单词,10%不做变化。
Next Sentence Prediction
NSP是指当输入为多个句子时,判断句子B是否是句子A的下文。如果是的话输出"IsNext",不是的话输出"NotNext"。训练集的来源是,在全部语料库中,随机抽取两句话。其中50%保留在原语料库中的位置关系,即符合上下句关系,剩下50%不符合上下文关系。关系保存上面提到的在[CLS]符号中。
对bert进行与训练之后,需要根据具体的NLP任务,对bert的预训练模型进行微调。微调的时间比预训练的时间消耗要少得多,因此Google已经将预训练好的不同bert模型进行了公开。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。