赞
踩
可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对<Source,Target>,我们的目标是给定输入句子Source,期待通过Encoder-Decoder框架来生成目标句子Target。
Encoder顾名思义就是对输入句子Source进行编码,将输入句子通过非线性变换转化为中间语义表示C:
对于解码器Decoder来说,其任务是根据句子Source的中间语义表示C和之前已经生成的历史信息,来生成i时刻要生成的单词:
如果Source是中文句子,Target是英文句子,那么这就是解决机器翻译问题的Encoder-Decoder框架;如果Source是一篇文章,Target是概括性的几句描述语句,那么这是文本摘要的Encoder-Decoder框架;如果Source是一句问句,Target是一句回答,那么这是问答系统或者对话机器人的Encoder-Decoder框架。
指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制。Q(Query), K(Key), V(Value)三个矩阵均来自同一输入,首先我们要计算Q与K之间的点乘,然后为了防止其结果过大,会除以一个尺度标度 ,其中
为一个query和key向量的维度。再利用Softmax操作将其结果归一化为概率分布,然后再乘以矩阵V就得到权重求和的表示。该操作可以表示为
其中 是我们模型训练过程学习到的合适的参数。上述操作即可简化为矩阵形式:
Transformer用于执行翻译任务,实验表明,这一模型表现极好,可并行化,并且大大减少训练时间。其本质上是一个Encoder-Decoder的结构,编码器由6个编码block组成(encoder每个block由self-attention,FFNN组成),同样解码器是6个解码block组成(decoder每个block由self-attention,encoder-decoder attention以及FFNN组成),与所有的生成模型相同的是,编码器的输出会作为解码器的输入。
模型结构如下图所示:
编码器:编码器有6个完全的层堆栈而成,每一层都有两个子层。第一个子层是多头的self-attention机制上面讲过了,第二层是一层简单的前馈网络全连接层。在每一层子层都有residual和归一化。
解码器:解码器也是有6个完全相同的层堆栈而成,每一层有三个子层,在编码栈的输出处作为多头的attention机制。
多头注意力机制:点乘注意力的升级版本。相当于 个不同的self-attention的集成(ensemble),在这里我们以
举例说明。Multi-Head Attention的输出分成3步:
参考:深度学习:transformer模型、放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较
ELMO是“Embedding from Language Models”的简称,ELMO的论文题目:“Deep contextualized word representation”更能体现其精髓:在deep contextualized这个短语,一个是deep,一个是context,其中context更关键。ELMO的本质思想是:我事先用语言模型学好一个单词的Word Embedding,根据上下文单词的语义去调整单词的Word Embedding表示,这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义。ELMO采用了典型的两阶段过程:
优点:
缺点:
GPT是“Generative Pre-Training”的简称,从名字看其含义是指的生成式的预训练。GPT也采用两阶段过程:
一个新问题:对于NLP各种花样的不同任务,怎么改造才能靠近GPT的网络结构呢?
与ELMO区别:
优点:
缺点:
Bert采用和GPT完全相同的两阶段模型:
改造下游任务:
与GPT区别:
优点:
Bert最关键两点:
创新点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。