本章的主要内容有:
1、注意力机制概述
注意力机制简单来说就是:加权求和机制/模块
加权求和模块 : 神经网络中的一个组件,可以单独使用,但更多地用作为 网络中的一部分。
2、传统注意力机制
2.1 注意力模块结构
1、注意力模块结构如下图所示:
功能:对于集合 K ,求相对 Q 各个元素的权重,然后按权重相加形成 Q 要的结果
2、注意力模块计算的步骤如下:
步骤1 :计算 f ( Q ,K i )
![[自然语言处理入门]-NLP中的注意力机制_第2张图片](http://img.e-com-net.com/image/info8/2b7aeaf217f0461fb11b9e3dad6a008c.jpg)
步骤2: softmax(f ( Q ,K i ) )( 计算对于Q 各个 Ki 的权重 )
![[自然语言处理入门]-NLP中的注意力机制_第3张图片](http://img.e-com-net.com/image/info8/42aea0c6603041a7aa12b5f011391685.jpg)
步骤3: 计算输出(各 K i 乘以自己的权重,然后求和 )
3、注意力模块训练
将模块放到整体模型中,不需要额外的训练数据权重可以由模块中 的参数学到。
4、注意力模块评价
放到各个任务中检验,通过任务指标的提升证明模块的效果。
具体的注意力机制可以参考这篇博客:
https://blog.csdn.net/qq_43687860/article/details/122729748?spm=1001.2014.3001.5501
2.2 软注意力与硬注意力
1、Soft AM:在求注意力分配概率分布的时候,对于输入句子X中任意一个单词都给出个概率,是个概率分布。
2、Hard AM :直接从输入句子里面找到某个特定的单词,然后把目标句子 单词和这个单词对齐,而其它输入句子中的单词硬性地认为对齐概率为0。
2.3 全局注意力机制与局部注意力机制
1、全局注意力 Global Attention
Decode端Attention计算时要考虑输Ecoder端序列中所有的词
Global Attention Model 是Soft Attention Model
2、局部注意力 Local Attention
Local Attention Model本质上是Soft AM和 Hard AM的一个混合或折中。
一般首先预估一个对齐位置Pt,然后在Pt左右大小为D的窗口范围来取, 类似于Soft AM的概率分布。
2.4 注意力机制的优势
- 让任务处理系统找到与当前任务相关显著的输入信息,并按重要性进行处理,从而提高输出的质量。
- 不需要监督信号,可推理多种不同模态数据之间的难以解释、隐蔽性强、复杂映射关系,对于先验认知少的问题,极为有效。
- 解决长距离依赖问题 ,提升任务性能
存在问题:对RNN有注意力偏置问题
解决方案:Coverage机制可以缓解注意力偏置问题
3、 注意力编码机制
注意力机制可以作为一种编码机制,即:通过建立序列各元素之间的关联关 系形成一种序列表示(按元素之间关系对序列进行编码);或通过不同序列 元素之间的关联关系形成不同序列间的融合表示
注意力机制作为编码机制主要有:
◆ 单一向量编码: 将输入序列按规则编码成单一向量表示。如, 句表示/篇章表示 ,某词的上下文表示等。
◆ 不同序列间编码: 将2个序列编码成二者的融合的表示序列, 如, 匹配任务和阅读理解任务常用的融合层表示。
◆ 同一序列自编码: 利用多头自注意力编码对一个句子编码可以起到 类似句法分析器的作用。如Transformer的编码端。
3.1 单一向量编码
通过建立序列K各元素与Q之间的关联关系形成单一向量表示(按元素之间 关系对序列进行编码)
例1:Q为确定值的句向量编码(句表示)
例2: Q为隐变量的句向量编码(句表示)
例3:对序列中某元素的真正上下文编码(词编码)
3.2 不同序列间编码
将二个序列编码成二者的融合的表示序列(如,匹配任务和阅读理解任务常 用的融合层表示)
例 :对K序列和Q序列编码
![[自然语言处理入门]-NLP中的注意力机制_第11张图片](http://img.e-com-net.com/image/info8/ff4dc6b7929747e2a38b7c0ffa2957c4.jpg)
3.3 同一序列自编码
利用多头自注意力编码对一个句子编码可以起到类似句法分析器的作用
例:对同一序列自注意力编码
多头(Multi-Head)自注意机制就是做多次同样的事情(参数不共享),然后把结果拼接 。
多头自注意力编码对一个句子编码可以起到类似句法分析器的作用 。
参考文献:
国科大-胡玥老师-《自然语言处理》课件-第5章NLP中的注意力机制。
李宏毅课程http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html