Attention本质剖析

1. 为什么需要attention?  Why

语音识别或机器翻译领域传统Encoder-Decoder方案遇到性能瓶颈。

传统Encoder直接将所有输入(x1, ..,x4)编码至固定向量c,再通过decoder进行解码,该思路缺陷显而易见,每个输入没有显示的权值表示,导致每个输入的贡献相当。

Attention本质剖析_第1张图片

                                                         图1. 传统Encoder-Decoder框架

基于此缺陷,设计出带attention的Encoder-Decoder框架,如图2。这里面用C1,C2和C3代替了原始的C,Ci是输入的不同组合构成的,也就是说,Decoder不同时刻关注输入的组合是不一样的。例如解码Y1时只需要关注x1和x2,x3和x4的权重可以为0。

Attention本质剖析_第2张图片

                                               图2: 引入attention的Encoder-Decoder框架

2. 什么是attention? What

2.1 常规思路理解

Attention本质剖析_第3张图片

                                                                 图3. 基于attention计算图示 

target预测的计算如图3所示,公式如下

其中si表示Decoder中时刻i的隐状态,计算公式如下 

其中ci采用对Encoder层的所有隐状态h加权累和,attention思想在此体现。 

Attention本质剖析_第4张图片

其中aij是eij的softmax输出,eij是一个对齐模型,表征decoder的i状态和encoder的j状态的相关性,计算公式如下

Attention本质剖析_第5张图片

对齐模型eij的计算方式有多种,不同的计算方式表示不同的attention模型。

进一步,将对齐模型表示成score(ht,hs),decoder层的隐层向量hs和encoder层的隐层向量hs的对齐模型,常见计算方式有点乘dot,权重网络映射general,以及concat映射。

Attention本质剖析_第6张图片

 

2.2 K-V-Q思路理解

Attention本质剖析_第7张图片

                                                            图4. key-value-query图示 

将encoder模块的source设计成的键值对形式,对于语音识别任务,key和value是相同的,decoder模块的query和key进行逐个计算相似度,生成权重系数,再乘以value就获得最终的attention value,更细致的步骤如图5所示。

 阶段一,F(Q,K)计算Query和Key的相似度s;阶段二,进行softmax归一化生成权重attention系数a;阶段三,attention系数同value相乘累加获得最终的Attention value。

                                                               

Attention本质剖析_第8张图片

                                                                图5. Attention机制的另一种理解

 

参考资料

1. “深度学习中的注意力机制” , https://blog.csdn.net/tg229dvt5i93mxaq5a6u/article/details/78422216

2. “深度学习中Attention Mechanism详细介绍:原理、分类及应用” , https://zhuanlan.zhihu.com/p/31547842

3. NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE,https://arxiv.org/abs/1409.0473

你可能感兴趣的:(机器学习)