深度了解Transformer【1】

深度了解Transformer【1】

前言:

Transformer由论文《Attention is All You Need》提出,谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。

本文采取逐一的介绍论文里面的核心概念,希望让普通读者也能轻易理解。

论文下载:

Attention is All You Need 论文pdf下载

关注菜鸡Ai公众号,后台回复:Transformer

可以打包下载包括此文在内的14篇Transformer论文。

Transformer交流群:

关注菜鸡Ai公众号,后台回复:加群

或者添加微信号 cjai007

备注一下,学校/公司 +昵称 +方向 即会有人拉你进群。

即会有人拉你进群。

研究背景:

•RNN相关算法只能从左向右依次计算或者从右向左依次计算,限制了模型的并行能力

•顺序计算的过程中信息会丢失,尽管LSTM等门机制的结构一定程度上缓解了长期依赖的问题,但是对于特别长期的依赖现象,LSTM依旧无能为力

解决办法:

•使用了Attention机制,将序列中的任意两个位置之间的距离是缩小为一个常量

•非RNN的顺序结构,因此具有更好的并行性,符合现有的GPU框架

•早期Transformer主要用于机器翻译任务,当然现在已经无处不在了。

原理:

•本质上由encoder+decoder组成

深度了解Transformer【1】_第1张图片

•encoder包括self-attention、feedforward

•decoder包括self-attention、encoder-decoder attention和feed forward

关键:

self-attention

•将单词转化为词向量embedding

•每个embedding由不同的权值矩阵得到三个向量:Query,Key,Value

深度了解Transformer【1】_第2张图片

具体过程:

1.输入单词转化为嵌入向量

2.根据嵌入向量得到q k v 三个向量

3 为每个向量计算一个值 score=q.k

4 为了梯度稳定,Transformer使用score的归一化

5 对值score 施以softmax激活函数

6 softmax点乘Value值v,得到加权的每个输入向量的评分v

7 相加之后得到最终的输出结果 z

深度了解Transformer【1】_第3张图片

FFN

多层感知器做特征映射、重组,增强特征的表述能力

Mutil-headattention

•相当于nhead个attention

1.增强特征的表述能力

•把一个高维空间分成了8个子空间, 相应地V也要分成8个head;

然后在这8个子空间里分别计算Q和K的相似度, 再分别组合V.

这样可以让attention能从多个不同的角度进行结合,每个子空间都会从自己在意的角度或者因素去组合源语言, 从而得到最终的翻译结果.

2.并行化、速度快

•用单head,深层网络:没法并行化,梯度传导困难

深度了解Transformer【1】_第4张图片

深度了解Transformer【1】_第5张图片

Decoder

•self-attention:当前编码和已编码的关系

•encoder-decoderattention:当前编码和encoder特征关系

​ •Q来自解码器的上一个输出,K和V来自编码器encoder

深度了解Transformer【1】_第6张图片

残差连接

加入残差连接,优化网络收敛

深度了解Transformer【1】_第7张图片

位置编码position embedding

•目前介绍的Transformer模型并没有捕捉顺序序列的能力,无论句子的结构怎么打乱,Transformer都会得到类似的结果(只是一个功能更强大的词袋模型)

解决办法

•在编码词向量时引入了位置编码(Position Embedding)的特征

1.根据数据自动学习

2.手工设计

几种位置编码position embedding

•序列长度作为文本每个字的位置编码

•使用文本长度对位置编码做归一化

位置编码准则

•需要体现同一单词在不同位置的区别。

•需要体现一定的先后次序,并且在一定范围内的编码差异不应该依赖于文本的长度,具有一定的不变性。

•需要有值域的范围限制

​ --有界周期函数

深度了解Transformer【1】_第8张图片

参考:

https://jalammar.github.io/illustrated-transformer/

https://arxiv.org/abs/1706.03762

你可能感兴趣的:(基础相关,深度学习,人工智能,nlp)