Transformer论文简记

资源

Transformer来自论文: All Attention Is You Need

别人的总结资源:

  1. 谷歌官方AI博客: Transformer: A Novel Neural Network Architecture for Language Understanding
  2. Attention机制详解(二)——Self-Attention与Transformer 谷歌软件工程师
  3. 一个是Jay Alammar可视化地介绍Transformer的博客文章 The Illustrated Transformer,非常容易理解整个机制,建议先从这篇看起,这是中文翻译版本
  4. 放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较 中科院软件所 · 自然语言处理 /搜索 10年工作经验的博士(阿里,微博);
  5. Calvo的博客:Dissecting BERT Part 1: The Encoder,尽管说是解析Bert,但是因为Bert的Encoder就是Transformer,所以其实它是在解析Transformer,里面举的例子很好;
  6. 再然后可以进阶一下,参考哈佛大学NLP研究组写的“The Annotated Transformer. ”,代码原理双管齐下,讲得也很清楚。
  7. 《Attention is All You Need》浅读(简介+代码) 这个总结的角度也很棒。

总结

这里总结的思路:自顶向下方法

model architecture

一图胜千言,6层编码器和解码器,论文中没有说为什么是6这个特定的数字

1122

Encoder

1122

Decoder

如果我们想做堆叠了2个Encoder和2个Decoder的Transformer,那么它可视化就会如下图所示:

翻译输出的时候,前一个时间步的输出,要作为下一个时间步的解码器端的输入,下图展示第2~6步:

下面是一个单层:Nx 表示 N1, … , N6 层

11

parts

Multi-head Attention

其实就是多个Self-Attention结构的结合,每个head学习到在不同表示空间中的特征,所谓“多头”(Multi-Head),就是做h次同样的事情(参数不共享),然后把结果拼接。

1122

Self-Attention

实际上是scaled dot-product attention 缩放的点积注意力:

1122

Add

residual connection: skip connection 跳跃了解

Norm

layer norm 归一化层

Positional encoding

google的这个位置编码很魔幻,是两个周期函数:sine cosine
数学系出生的博主的解释:《Attention is All You Need》浅读(简介+代码),相比之下Bert的位置编码直观的多。

查看本网站请使用全局科学上网
欢迎打赏来支持我的免费分享
0%