赞
踩
目录
对于word2vec这种静态词向量,不能解决一词多义的问题,ELMO提出了一种动态的词向量的表达方式,其核心思想是:事先用语言模型学好一个单词的word embedding 此时多义词无法区分,不过没关系,在实际使用的word embedding 的时候单词已经具备了特定的上下文了,这时候可以根据上下文单词的语义,去调整单词的word embedding。
其才采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练,第二阶段是在下游任务中时,在预训练的网络中提取对应单词的网络各层的word embedding。
在第一阶段中,其采用了双层的双向LSTM作,目前语言模型的训练目标是根据单词的 的上下文去预测正确单词 ,图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外 ;右端的逆向双层LSTM代表反方向编码器,输入的是从右到左的逆序的句子下文Context-after;每个编码器的深度都是两层LSTM叠加。如果这个网络训练好之后,输入一个新句子,句子中的每个单词都能得到对应的三个embeddin,最底层是 word embedding ,往上走是第一层双向LSTM对应单词的Embddding(这层编码句法信息更多一些),再往上走是第二层LSTM对应单词位置的Embedding ,(这层编码单词的信息更多一些)。
第二阶段, 如何使用? 以QA任务为例,对于问句X输入到预训练好的ELMO中,这样X中的每个单词都能得到三个Embedding,之后给予这三个Embedding中的每一个Embedding一个权重a,这个权重可以学习得到,然后根据各自权重累积求和,将三个Embedding整合一个,然后将其作为X句在自己任务的那个网络结构中的对应单词的输入。
EMLO优点 解决了一次多义的问题,并且对于下游任务的性能提升效果还不错,证明了预训练模型是有效的。
EMLO缺点 :事后看(GPT和Bert出来之后对比)1、LSTM的抽取特征能力远弱于Transformer 2、双向拼接式融合特征能力偏弱
bert架构 Transformer的解码器
输入: 位置编码(可学习) + 句子位置编码 + Token Embedding
任务: 1、MASK Language Model
为了减小训练和Fin-tune之间的mismatch ,mask trick: 15%的单词背MASK ,这15%中
80%被mask 10%不变 10%被换成其他词。
2、NSP(后来被Roberta 证明没啥用)
使用BPE
1、解决OOV问题
针对BERT 进行的改进和提升,
有以下几点:
1、针对bert训练中的mask 是静态 ,roberta 采用动态的掩码方式
2、去掉了NSP任务
3、对于文本编码,bert使用的BPE roberta使用了 WordPiece 的编码方式
4、调大了bachsize
5、增加了训练数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。