1 Transformer原理
文章:《Attention Is All You Need》
模型架构图如下:
transformer的结构由encoder编码和decoder解码组成。
1.1 Encoder
Encoder组件部分由一堆Layer(可以理解为编码器)构成(论文中是将6个Layer叠在一起)。Decoder解码组件部分也是由相同数量(与编码器对应)的解码器(decoder)组成的。每个Layer由两个sub-layer组成,分别是multi-head self-attention mechanism和fully connected feed-forward network,sub-layer的结构相同,但是没有共享参数。
使用self-attrntion,考虑到以下三个需求:
- the total computational complexity per layer 每层计算复杂度
- the amount of computation that can be parallelized, as measured by the minimum number of sequential operations required.
- the path length between long-range dependencies in the network
1.2 Decoder
Decoder组件部分与Encoder很想,但是它多了一个attention的sub-layer(解码注意力层),用来关注输入句子的相关部分(和seq2seq模型的注意力作用相似)。
Transformer的一个核心特性,在这里输入序列中每个位置的单词都有自己独特的路径流入编码器。在自注意力层中,这些路径之间存在依赖关系。而前馈(feed-forward)层没有这些依赖关系。因此在前馈(feed-forward)层时可以并行执行各种路