Query-Key-Value Perspective on Attention Mechanism 怎么用“查询-键-值”理解注意力机制

注意力机制

RNN编码-解码模型

论文[1]中,从RNN编码-解码模型演进出注意力机制。RNN编码-解码模型中,编码器输入序列\mathbb{x} = (x_1,..., x_{Tx} )h_t\in \mathbb{R}^n是编码器RNN在t时刻的隐状态(hidden state),
h_t = f (x_t, h_{t-1}) \tag{1}
隐状态序列\mathbb{h}=[h_1,..., h_{Tx}]的生成向量(编码)c
c = q ([h_1,..., h_{Tx}]) \tag{2}
其中fg都是非线性函数。
解码器用来预测下一个y_{t'},定义了一个条件概率
p(\mathbb{y}) = \prod_{t=1}^T p(y_t | [y_1,..., y_{t-1}], c) \tag{3}
其中解码器输出\mathbb{y} = [y_1,..., y_{Ty}],对RNN有
p(y_t | [y_1,..., y_{t-1}], c) = g(y_{t-1},s_t,c) \tag{4}
其中s_t是解码器RNN在t时刻的隐状态。

注意力机制

The graphical illustration of the proposed model trying to generate the t-th target word y_t given a source sentence x.

定义(3)中的条件概率为
p(y_i | y_1,..., y_{i-1}, \mathbb{x}) = g(y_{i-1}, s_i, c_i) \tag{5}
s_i是RNN在i时刻的隐状态。
s_i = f(s_{i-1}, y_{i-1}, c_i) \tag{6}
这里条件概率依赖的是上下文向量(context vector)c_i,在每个i是不同的。
c_i = \sum_{j=1}^{T_x} \alpha_{ij} h_j \tag{6}
权重
\alpha_{ij} = \frac{e^{e_{ij} } }{\sum_{k=1}^{Tx} e^{e_{ik}} } \tag{7}
其中
e_{ij} = a(s_{i-1}, h_j) \tag{8}
这种调整模型(alignment model)对输入在位置j和输出在位置i的匹配程度进行打分。

查询-键-值

RNN编解码结构的例子

根据(8)注意力的权重分数(attention scores)取决于编码RNN状态h_j和解码RNN状态s_{i-1}。则获取attention scorese_{ij}需要计算这个网络T_x\times T_y次,其中编码序列长度T_x,解码序列长度T_y
可以考虑把sh先投影到同一个空间,再定义个这个空间内的测度(如点乘)来计算attention scores[2]。除了用“Dot-Product Attention”,也可以用其他测度,如“additive attention”。其他形式的可以参考[3]
e_{ij} = f(s_i)g(h_j)^T \tag{9}
这样只要计算T_yf(s_i)T_xg(h_j),再矩阵乘法即可。这两个投影就是[4][5]里面提到的查询(query)和键(key)。
\mathrm{Attention}(Q, K, V ) = \mathrm{softmax}(\frac{QK^T}{\sqrt{d_k}})V \tag{10}
公式(10)来自论文[4]\frac{1}{\sqrt{d_k}}是缩放因子,所以这种注意力称之为“Scaled Dot-Product Attention”。容易看出,值V对应的是h,(对解码器)查询Q对应f(s_i),(对编码器的)键K对应g(h_j)。键g(h_j)就是值h_j在某个空间上的投影。可以参考论文[6]的中2.2节Self-Attention,写的很明确。论文中提出“Relative Position Representations”,相等于限定了attention的“感受视野”。

Self-Attention

论文[4]中,没有用RNN的编码-解码结构,而是“self-attention”,QK的获取更直接:对每个不同的输入元素(单词)都对应一个Query向量,一个Key向量,一个Value向量。这三个向量都是输入单词的embedding向量乘以投影矩阵W^QW^KW^V得到的[5]

Multiplying x1 by the WQ weight matrix produces q1, the "query" vector associated with that word. We end up creating a "query", a "key", and a "value" projection of each word in the input sentence.

写成矩阵的形式[5]

Every row in the X matrix corresponds to a word in the input sentence. We again see the difference in size of the embedding vector (512, or 4 boxes in the figure), and the q/k/v vectors (64, or 3 boxes in the figure)

所以公式(10)的形式如下。


The self-attention calculation in matrix form

这样,一个单词的attentionz_i包含了来自其他单词的编码。

Multi-Headed Attention

论文[4]提出的“multi-headed” attention是对“self-attention layer”的扩展。self-attention中可能把大部分权重集中到一个输入单词上,而事实上可能有多个关联的单词。Multi-headed attention采用多组矩阵独立计算,得到多组Z,然后把多组Z联接起来组成一个矩阵,方便前向-后向传递(详见[5])。只有第一个“head”需要输入embeddingsX,后面的输入上一个的输出R即可[5]

如下表对“it”进行编码时,一个attention head焦点在“the anima”,另一个attention head在“tired”。采用多个attention head更容易表示某个输入单词。

2 single self-attention layer Multi-headed attention

总结

序列到序列的编码-解码结构中,引入注意力机制来建立对某一个输出和一系列输入(的编码)直接的关系。查询和键分别对应两个张量(tensor),可以看作是输入的数据/编码/状态序列和输出的数据/编码/状态序列在某个空间上的投影。值对应输入的数据/编码/状态序列,键可以看作是值的投影。键和值可以完全相等[7],也可以是同源对不同空间的投影张量。查询对应输出,对应target,对应解码器;键和值对应输入,对应source,对应编码器。对于self-attention特例,查询也对应输入,来获取输入序列(可以是数据/编码/状态)的某个输入元素和序列中相邻其他元素的关系。

附录

其他例子

Image Transformer

把用注意力机制来生成文本的方法应用到生成图像[8](提高分辨率、修复、补足)。生成的像素点对应的某个通道的数值q'取决于原始像素点数据q、前后生成的数据m_1,m_2,...和位置编码p_q, p_1,p_2,...


从公式可以看出构成了self-attention。因为是图像处理,文中还介绍了1D attention和2D attention。

并行计算

前面提到过,用“Dot-Product Attention”可以减少计算量、增加并行度。由于序列的相关性P(y_t| y_{t-1}, y_{t-2}, y_1),生成y_t前需要生成y_{t-1}, y_{t-2}, y_1,这不利于并行计算。训练时候因为标记已知,根据前面符号的条件概率可以并行计算,但解码时只能顺序计算y_1,...,y_n
为了解决这个问题,[9]提出用一组离散的隐变量(discrete latent variables):l_1,...,l_m来综合y_1,...,y_n的相对信息,m<n,通常m = n/8。目标是可以独立地由l_1,...,l_m来重构y_1,...,y_n的每个元素,实现并行计算。这需要一个自编码(autoencode)把y_1,...,y_n编码为l_1,...,l_m。隐变量通常是连续的,期望l_1,...,l_m是离散的,通常有三种方法来使用这些离散隐变量

  • Gumbel-Softmax
  • VQ-VAE
  • Improved semantic hashing

作者比较验证了这几种方法,还提出了decomposed vector quantization (DVQ),比VQ-VAE好[9]

论文[10]中,通过使用“memory-compressed attention”减少了VK参与计算的参数简化了计算(下图中间)。使用“local attention”,把长序列分成几个短的子序列,并行运算后再融合(下图最右)。

Reference


  1. Neural Machine Translation by Jointly Learning to Align and Translate

  2. what-exactly-are-keys-queries-and-values-in-attention-mechanisms

  3. Effective Approaches to Attention-based Neural Machine Translation.pdf

  4. Attention Is All You Need

  5. The Illustrated Transformer

  6. Self-Attention with Relative Position Representations

  7. Depthwise Separable Convolutions for Neural Machine Translation

  8. Image Transformer

  9. Fast Decoding in Sequence Models using Discrete Latent Variables

  10. Generating Wikipedia by Summarizing Long Sequences

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容