赞
踩
[参考翻译]沈子恒的博客-CSDN博客_注意力机制
注意力模型(AM)最早应用于机器翻译[1],现在神经网络领域应用广泛。注意力机制可以根据人的视觉机制进行解释,比如说驾车经过路口时驾驶员通常会更加关注路边的行人和其他车辆驾驶情况,而注意力机制能在计算中实现类似的效果。总地来说,注意力机制能动态地调整输入内容的权重,从而更加关注有助于完成当前任务的数据。
注意力机制有三大优势:1)解决多任务任务最先进方法,如机器翻译、问题回答、情绪分析、词性标记、对话系统;2)提高神经网络可解释性;3)克服循环网络中随输入增加带来的性能下降。
图2(a)为sequence-to-sequence模型,由编码器-解码器组成,编码器是一个RNN,他接受由tokens { x 1 , x 2 , . . . . , x T } \{x_{1},x_{2},....,x_{T}\} {x1,x2,....,xT}组成的输入序列,t为输入序列长度,并编码为长度为t的向量 { h 1 , h 2 , . . . . , h T } \{h_{1},h_{2},....,h_{T}\} {h1,h2,....,hT}。解码器也是一个RNN,通过tokens-to-tokens[2]生成一个输出序列 { y 1 , y 2 , . . . . , y T ′ } \{y_{1},y_{2},....,y_{T'}\} {y1,y2,....,yT′}, T ′ T' T′ 是输出序列的长度。在每个时间 t t t , h t h_{t} ht 和 s t s_{t} st 分别表示编码器和解码器的隐藏层表示。
1)在编码器阶段,将输入信息压缩成固定长度的向量必然带来内容缺失
2)输入和输出序列之间没有对齐
从直觉上,我们希望输出的token受输入序列某个部分影响很大,但解码器并不能选择性的关注某部分序列。
注意力机制目的是为了有选择地调用 { h 1 , h 2 , . . . . , h T } \{h_{1},h_{2},....,h_{T}\} {h1,h2,....,hT},选择的实现则在于引入注意权重 $\alpha $ ,通过计算加权和生成下一个输出 c c c .
图 2 (b)展示了具有注意力机制的编码器-解码器模型。图中的半圆矩形为注意力模块,负责自主学习注意力权重
α
i
j
\alpha_{ij}
αij ,他可以自动捕获
h
i
h_{i}
hi (编码器隐藏状态,又称为候选状态)和
s
j
s_{j}
sj (解码器隐藏状态,又称查询状态)之间的相关性。然后根据以下公式生成
c
j
c_{j}
cj :
c
j
=
∑
i
=
1
T
α
i
j
h
i
c_{j}=\sum_{i=1}^{T}\alpha _{ij}h_{i}
cj=i=1∑Tαijhi
在每个解码位置
j
j
j ,内容向量
c
j
c_{j}
cj 是编码器所有隐藏状态及其相应注意权的加权和。
注意力权重通过在结构中加入一个额外的前馈神经网络来学习。前馈神经网络以 h i h_{i} hi 和 s j − 1 s_{j-1} sj−1 两种状态为神输入,并借助两种状态构成的函数种学习特定的 α i j \alpha _{ij} αij ,这函数称为对齐函数alignment function(表 1 中)。对齐函数能对 h i h_{i} hi 和 s j − 1 s_{j-1} sj−1的相关程度进行评分 e i j e_{ij} eij .将对齐函数生成的相关度评分 e i j e_{ij} eij 输入分类函数(表 1 中)生成注意力权重 α i j \alpha _{ij} αij
x = { x 1 , . . . , x T } x=\{x_{1},...,x_{T}\} x={x1,...,xT}:输入序列, T T T:输入序列长度, h i h_{i} hi:编码器隐藏层状态, c c c : 语境(Context)向量, α i j \alpha _{ij} αij:对输入的注意权重, s j s_{j} sj : 解码其隐藏状态, y j y_{j} yj:输出token, f , g f,g f,g:非线性函数, a a a:对齐函数, p p p:分类函数
图 2(b) 所示的注意力模型也可以看作是键序列
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。