背景
Transformer是google研究人员提出的一种模型,基于Encoder-Decoder架构。
原文为:Arxiv:Attention Is All You Need
代码库为:Github:tensorflow/tensor2tensor
任务定义
In neural language modelling, a neural network estimates a distribution over sequences of words or characters that belong to a given language (Bengio et al., 2003). In neural machine translation, the network estimates a distribution over sequences in the target language conditioned on a given sequence in the source language.
参考文献:ByteNet:Arxiv:Neural Machine Translation in Linear Time(ByteNet)
语言建模(language model)就是估计一个序列所对应的概率分布。翻译模型(machine translation)就是估计在给定序列的基础上目标语言的序列对应的概率分布。
内容分析
Introduction
循环神经网络:参考文献:IEEE Xplore:Long Short-Term Memory
IEEE Xplore:Long Short-Term Memory就是用循环神经网络去解决上面的建模问题,但是由于序列化的原因,运行速度受限。
也有用卷积网络去解决这个问题的比如VGG-16:Arxiv:Very Deep Convolutional Networks for Large-Scale Image Recognition,google研究人员在VGG-16基础上进一步进行全卷积化得到了Fine-tuned VGG-16:Arxiv:Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs。利用这个文章中所提到的膨胀技术,google研究人员又开发出了ByteNet:Arxiv:Neural Machine Translation in Linear Time。进而针对ByteNet及其他网络中存在的注意力机制的问题,提出全部仅使用注意力机制的网络:Transformer:Arxiv:Attention Is All You Need
从VGG-16变换为Fine-tuned VGG-16如下图所示:
BackGround
自注意力机制:参考文献:Arxiv:Long Short-Term Memory-Networks for Machine Reading,Arxiv:A Deep Reinforced Model for Abstractive Summarization。
本文中使用了自注意力机制,也就是将序列中不同位置相关联。
Model Architecture
自回归:Arxiv:Generating Sequences With Recurrent Neural Networks
自回归的直观表达式就是:
y
t
=
f
(
y
t
−
1
,
x
t
)
y_t=f(y_{t-1},x_t)
yt=f(yt−1,xt)
关键在于attention注意力机制是什么。
对比上面基于全卷积的模型,可以发现模型结构变了。
Encoder-Decoder
Residual connection:Arxiv:Deep Residual Learning for Image Recognition
直观表达式就是:
y
=
f
(
x
)
+
x
y=f(x)+x
y=f(x)+x