关于ELMo、Transformer及Bert的部分疑难问题解答

ELMo其实是考虑了目标信息的前后内容,来对目标进行预测:使用深层Bi-RNN对序列进行学习,可以学习到目标的前后文信息,以此来更好的表示目标数据。ELMo将目标数据的每层的前后文信息进行串接,并对多层的串接结果进行加权求和(权值是学习的目标之一)。

关于ELMo、Transformer及Bert的部分疑难问题解答_第1张图片

关于ELMo、Transformer及Bert的部分疑难问题解答_第2张图片

关于ELMo、Transformer及Bert的部分疑难问题解答_第3张图片

关于transformer的原理介绍,有很多地方有详细的解答,本文中我针对具体的问题,做出一些相关的解答。

Transformer中的self-attention:同一个序列中的不同元素间进行互注意。由于是序列自身的attention,因此是self-attention。

关于ELMo、Transformer及Bert的部分疑难问题解答_第4张图片

Transformer在机器翻译中的decoder:1)在进行translation操作时,会在解码器的开始输入start token,来便于后续生成;2)在encoder-decoder的阶段,decoder提供Q(即前面已经生成好的序列经过self-attention得到的输出),encoder提供K和V(即encoder对输入序列经过一系列attention得到的输出);3)masked是将所有不应该看到的序列元素屏蔽掉,如预测3个词时,应该看不到第3个词及后面所有的词的信息。

关于ELMo、Transformer及Bert的部分疑难问题解答_第5张图片

Bert训练中的mask问题:在训练中,对于输入的句子I want to go to school。如果要对want进行预测,则我们转换成token序列为:I [mask] to go to school,并利用want的前后文(I、to go to school)对[mask]进行预测得到want。

关于ELMo、Transformer及Bert的部分疑难问题解答_第6张图片

Bert对于sentence pair的一致性判断、single sentence的分类判断:都是将输入句子经过bert后,转换成对开始符[CLS]的分类问题。

关于ELMo、Transformer及Bert的部分疑难问题解答_第7张图片

Bert对SQuAD的答案判断:将问题Q和文档D当作sentence pair进行输入,并初始化一个表示start的向量s和一个表示end的向量e。在训练时(假设标准答案在文档中的词序编号为开始s_id和结束e_id),使用Bert对sentence pair对进行embedding:1)对s与D的每个token embedding进行dot product计算,并对计算结果使用softmax来预测s_id;2)对e与D的每个token embedding进行dot product计算,并对计算结果使用softmax来预测e_id。在预测时,使用同种方法执行,不过此时的s和e已经学习得到。

关于ELMo、Transformer及Bert的部分疑难问题解答_第8张图片

微调Bert进行下游其他任务的应用:主要是微调了Bert内部的最后几层encoder,以及后续的linear classifier层的参数信息。

关于ELMo、Transformer及Bert的部分疑难问题解答_第9张图片

Inputs_ID:将输入的句子进行单词的token,如palying=play+##ing,然后再对token(play和##ing)执行embedding。
Positional Encoding:transformer不像RNN一样是序列化的操作,它是平行化的操作,这也是其能够执行self-attention的原因。正式因为如此,它没有区分序列数据中每个元素的顺序信息。因此,位置编码可以帮助实现顺序信息,该编码由cos和sin固定计算(pos表示元素在序列中的位置,i表示该元素特征的第i维),不是学习得到的。
transformer中的layer normlize:Batch Normalization是在不同数据的同一维度间进行norm,而Layer Normalization是在同一数据的不同维度间进行norm。两者都是Norm处理的方法,使得训练中的参数分布更稳定一些,保证梯度进行有效的学习。
multi-head的意义以及处理方式:使用多组(数量不限,自选)权值,分别对输入的数据特征进行变换。对于每组权值得到的变换,只针对该组进行self-attention,最后多组self-attention的结果进行串接。multi-head的意义在于:不同的attention会注意到不同的特征性质,这样操作便于找到多种潜在特征。

关于ELMo、Transformer及Bert的部分疑难问题解答_第10张图片

为什么要进行除以维度的开方:当Q和K的维度很大时,导致点乘的数量级太大,使得softmax的梯度过小,造成梯度消失。因此,这么操作是为了进行维度惩罚。具体的数学解释,https://www.zhihu.com/question/339723385知乎高赞1我觉得很好。

至于其他的一些关于ELMo和Transformer的问题,哈工大的博士生忆臻的公众号整理的不错:https://mp.weixin.qq.com/s/fNBAz0ZWGpcBqcUyUFqTYg

https://mp.weixin.qq.com/s/X6O8LXMDcCoS1_yE0ia5WQ

https://mp.weixin.qq.com/s/F06nmJWUNQT1_Hq2dkSYhQ

你可能感兴趣的:(深度学习,自然语言处理与生成)