当前位置:网站首页>注意力模型---Attention Model
注意力模型---Attention Model
2022-08-10 13:36:00 【OPTree412】
注意力模型---Attention Model
1、Soft Attention Mode
1.1 什么是Soft Attention Mode
“Neural machine translation by jointly learning to align and translate”这篇论文提出了soft Attention Model,并将其应用到了机器翻译上面。所谓Soft意思是在求注意力分配概率分布的时候,对于输入句子X中任意一个单词都给出个概率,是个概率分布。
1.1 公式介绍
下面介绍一下理论文中提到的公式
在原版的Seq2Seq和添加了attention机制的Seq2Seq相比,在公式上的差别就是在式子Si中的C有没有i。因为这个i就代表了是不是每一个时间步骤上添加不同的背景向量。
Global Attention Mode其实就是softAttention Mode。在Seq2Seq的Decoder的过程中,每一个时间步的Context vector需要计算Encoder中每一个单词的注意力权重,然后加权得到。
Si代表每个Decoder的隐藏层输出
Ci表示的是背景向量,它可以由Encoder的隐藏层输出状态hj的加权平均数得出,其中状态所加的权就是注意力权重 ai。
**注意力权重 ai**可以看出就是一个softmax,用来归一化隐藏层si-1 与 Encoder的隐藏层输出状态hj的对齐程度评估。
eij是一种对齐模式,也就是注意力函数,这当中有着很多的变体。下面来看看这四种变体都有什么。
2、四种注意力中的打分函数
2.1 加性注意力(additive attention)
加性注意力是最经典的注意力机制 (Bahdanau et al., 2015) ,它使用了全连接层来计算注意力的分配:
其中,Pi表示Decoder的隐藏层输出;q表示Encoder所有的隐藏层输出;V,W,U都是可以训练的参数。
加性模型引入了可学习的参数,将向量 p p p和原始输入向量 q q q 映射到不同的向量空间后进行计算打分,显然相较于加性模型,点积模型具有更好的计算效率。
2.2 点积注意力(multiplicative attention)与双线性注意力(MLB)
乘法注意力(Multiplicative attention)(Luong et al., 2015) 通过计算以下函数而简化了注意力操作,是直接用Decoder的hidden state 点乘所有的Encoder的hidden state。
其中,ht是decoder中前一个隐藏层输出的结果;hs是encoder中所有的hidden state组合成的矩阵。
上面第一个公式有一个缺陷, ht的行数和hs的行数必须是相等的,也就要使得encoder和decoder的隐藏层长度是一样的,这样的条件太苛刻了,当不相等的时候公式便不可行,所以采用在中间加上权重矩阵的做法。
2.3 缩放点积模型
注意力机制不仅能用来处理编码器或前面的隐藏层,它同样还能用来获得其他特征的分布,例如阅读理解任务中作为文本的词嵌入 (Kadlec et al., 2017)。然而,注意力机制并不直接适用于分类任务,因为这些任务并不需要情感分析(sentiment analysis)等额外的信息。在这些模型中,通常我们使用 LSTM 的最终隐藏状态或像最大池化和平均池化那样的聚合函数来表征句子。
其中 q q q是Decoder的隐藏层输出, h h h是encoder中所有的hidden state组合成的矩阵。 D D D为输入向量的维度。
当输入向量的维度比较高的时候,点积模型通常有比较大的方差,从而导致Softmax函数的梯度会比较小。因此,缩放点积模型通过除以一个平方根项来平滑分数数值,也相当于平滑最终的注意力分布,缓解这个问题。
3、注意力变体
3.1 硬性注意力机制
直接从输入句子里面找到某个特定的单词,然后把目标句子单词和这个单词对齐,而其它输入句子中的单词硬性地认为对齐概率为0,这就是Hard Attention Model的思想。Hard AM在图像里证明有用,但是在文本里面用处不大,因为这种单词一一对齐明显要求太高,如果对不齐对后续处理负面影响很大。
3.2 自注意力(Self-Attention)
关键值注意力 (Daniluk et al., 2017) 是最近出现的注意力变体机制,它将形式和函数分开,从而为注意力计算保持分离的向量。它同样在多种文本建模任务 (Liu & Lapata, 2017) 中发挥了很大的作用。
具体来说,关键值注意力将每一个隐藏向量 hi 分离为一个键值 ki 和一个向量 vi:[ki;vi]=hi。
4、Attention 带来的算法改进
Attention机制为机器翻译任务带来了曙光,具体来说,它能够给机器翻译任务带来以下的好处:
- Attention显著地提高了翻译算法的表现。它可以很好地使Decoder网络注意原文中的某些重要区域来得到更好的翻译。
- Attention解决了信息瓶颈问题。原先的Encoder-Decoder网络的中间状态只能存储有限的文本信息,现在它已经从繁重的记忆任务中解放出来了,它只需要完成如何分配注意力的任务即可。
- Attention减轻了梯度消失问题。Attention在网络后方到前方建立了连接的捷径,使得梯度可以更好的传递。
- Attention提供了一些可解释性。通过观察网络运行过程中产生的注意力的分布,我们可以知道网络在输出某句话时都把注意力集中在哪里;而且通过训练网络,我们还得到了一个免费的翻译词典(soft alignment)!还是如下图所示,尽管我们未曾明确地告诉网络两种语言之间的词汇对应关系,但是显然网络依然学习到了一个大体上是正确的词汇对应表。
边栏推荐
- 22!Beijing Changping District notified catering service enterprises with food safety problems
- YTU 2295: KMP pattern match one (string)
- Vivado crashes or the message is not displayed
- Ethernet channel Ethernet channel
- 领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)
- 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写
- 【JS高级】ES5标准规范之创建子对象以及替换this_10
- 使用决策树对鸢尾花进行分类
- malloc 函数详解
- Error: Rule can only have one resource source (provided resource and test + include + exclude)
猜你喜欢
随机推荐
[target detection] small script: extract training set images and labels and update the index
ES5和SE6来实现一个Promise效果
BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection Paper Notes
SQL学习(基础)
Borg Maze (bfs+最小生成树)
黑客入门,从HTB开始
高数_证明_弧微分公式
1W字详解线程本地存储 ThreadLocal
Open Office XML 格式里如何描述多段具有不同字体设置的段落
“Oracle 封禁了我的账户”
PHP judges whether the file has content, and if there is no content, copy another file to write
Basic knowledge of switches
商汤自研机械臂,首款产品是AI下棋机器人:还请郭晶晶作代言
Network Saboteur
SecureCRTPortable – 破解
2022年五大云虚拟化趋势
Vivado crashes or the message is not displayed
神了!阿里数据库专家纯手写了这份604页的Oracle+MySQL攻坚指南
Network Saboteur
系统架构系列文章三--解决传统企业核心系统的性能问题