Transformer:论文《Attention is all you need》+李宏毅课程

Transformer

Seq2seq model with Self-attention
Transformer:论文《Attention is all you need》+李宏毅课程_第1张图片
在RNN中虽然用到了输入序列的全部信息,但是很难实现输入序列词的同时训练,在self-attention layer中,目标序列 b 1 , b 2 , . . . , b i b_1,b_2,...,b_i b1,b2,...,bi中每一个都是基于全部输入序列而得到的,并且它们都是同时训练的。

Transformer结构:
Transformer:论文《Attention is all you need》+李宏毅课程_第2张图片
Encoder:
编码器由6个相同的层堆叠在一起,每一层又有两个支层。第一个支层是一个多头的自注意机制,第二个支层是一个简单的全连接前馈网络。在两个支层外面都添加了一个residual的连接,然后进行了layer nomalization的操作。模型所有的支层以及embedding层的输出维度都是 d m o d e l d_{model} dmodel

Decoder:
解码器也是堆叠了六个相同的层。不过每层除了编码器中那两个支层,解码器还加入了第三个支层,如图中所示同样也用了residual以及layer normalization。

Self-attention layer具体的过程:

第一步:
Transformer:论文《Attention is all you need》+李宏毅课程_第3张图片
其中:
q : q u e r y ( t o   m a t c h   o t h e r s ) : q i = W q a i q:query(to\ match\ others):q^i=W^qa^i q:query(to match others):qi=Wqai
k : k e y ( t o   b e   m a t c h e d ) : k i = W k a i k:key(to\ be\ matched):k^i=W^ka^i k:key(to be matched):ki=Wkai
v : i n f o r m a t i o n   t o   b e   e x t r a c t e d : v i = W v a i v:information\ to\ be\ extracted: v^i=W^va^i v:information to be extracted:vi=Wvai

第二步:
Scaled Dot-Product Attention:
Transformer:论文《Attention is all you need》+李宏毅课程_第4张图片
首先计算attention分数(拿每个q对每个k做attention):
α 1 , i = q 1 ⋅ k i / d \alpha_{1,i}=q^1\cdot{k^i}/\sqrt{d} α1,i=q1ki/d
其中: d d d:q和k的维度
再进行softmax运算:
Transformer:论文《Attention is all you need》+李宏毅课程_第5张图片
再计算:
b 1 = ∑ i α 1 , i ^ v i b^1=\sum_i\widehat{\alpha_{1,i}}v^i b1=iα1,i vi

在计算 b 1 b^1 b1的过程通过attention可以选择性的使用输入序列的所有信息。
Transformer:论文《Attention is all you need》+李宏毅课程_第6张图片
并且能够由矩阵计算同时计算所有 b i b^i bi,
输 入 序 列 I = a 1 a 2 a 3 a 4 输入序列I=a^1a^2a^3a^4 I=a1a2a3a4
矩 阵 Q = q 1 q 2 q 3 q 4 矩阵Q=q^1q^2q^3q^4 Q=q1q2q3q4
矩 阵 K = k 1 k 2 k 3 k 4 矩阵K=k^1k^2k^3k^4 K=k1k2k3k4
矩 阵 V = v 1 v 2 v 3 v 4 矩阵V=v^1v^2v^3v^4 V=v1v2v3v4
Q = W q I ; K = W k I ; V = W v I Q=W^qI;K=W^kI;V=W^vI Q=WqI;K=WkI;V=WvI
A = K T Q : A t t e n t i o n 分 数 的 4 维 矩 阵 , s o f t m a x 后 得 到 A ^ A=K^TQ:Attention分数的4维矩阵,softmax后得到\widehat{A} A=KTQ:Attention4,softmaxA
输 出 序 列 O = b 1 b 2 b 3 b 4 输出序列O=b^1b^2b^3b^4 O=b1b2b3b4
O = V A ^ O=V\widehat{A} O=VA

Multi-head Self-attention
不同的head关注的信息不同,可以在训练过程中关注到序列的不同信息。
Transformer:论文《Attention is all you need》+李宏毅课程_第7张图片
Transformer:论文《Attention is all you need》+李宏毅课程_第8张图片
Positional Encoding
在self-attention中没有位置信息,但是应该需要考虑位置信息。
在论文中,给每个位置定义了一个位置向量,在计算时要计算 e i + a i e^i+a^i ei+ai.

你可能感兴趣的:(论文笔记,机器学习学习笔记)