Attention Mechanism (注意力机制)
定义:
注意力机制(Attention Mechanism)源于人类视觉的工作原理。在处理信息时,人类不会关注所有信息,而是集中注意力在关键部分上,忽略不相关的部分。注意力机制试图模拟这种行为,允许神经网络在计算时关注输入的不同部分,从而提升性能。
在深度学习中,尤其是在自然语言处理(NLP)和计算机视觉(CV)中,注意力机制被广泛应用。
形式化
假设我们有一个输入序列 x=[x1,x2,...,xn]\mathbf{x} = [x_1, x_2, ..., x_n]x=[x1,x2,...,xn],以及对应的隐藏状态 h=[h1,h2,...,hn]\mathbf{h} = [h_1, h_2, ..., h_n]h=[h1,h2,...,hn],每个 hih_ihi 是由某个 RNN 或其他模型生成的特征表示。注意力机制的核心思想是为每个输入的 xix_ixi 计算一个 权重 αi\alpha_iαi,表示模型对该输入的关注程度,然后根据这些权重加权输入特征,得到一个加权的上下文向量。
具体步骤:
-
计算注意力权重 αi\alpha_iαi:可以通过计算输入与某个查询(Query)之间的相似度来得出。假设我们有一个查询向量 qqq(如当前的解码器状态),通过一个兼容函数(如点积、加性函数等)计算相似度。
-
计算加权上下文向量:
c=∑i=1nαihic = \sum_{i=1}^{n} \alpha_i h_ic=∑i=1nαihi
其中,αi\alpha_iαi 是通过兼容函数计算出的权重,hih_ihi 是对应输入 xix_ixi 的隐藏状态。
常见的兼容函数:
-
点积注意力:计算查询向量与每个键(Key)向量的点积,然后通过 Softmax 得到权重。
αi=exp(q⋅ki)∑j=1nexp(q⋅kj)\alpha_i = \frac{\exp(q \cdot k_i)}{\sum_{j=1}^{n} \exp(q \cdot k_j)}αi=∑j=1nexp(q⋅kj)exp(q⋅ki)
其中,kik_iki 是输入的键向量。 -
加性注意力(Bahdanau Attention):通过计算查询与键的加性组合来计算注意力权重。
αi=exp(score(q,ki))∑j=1nexp(score(q,kj))\alpha_i = \frac{\exp(\text{score}(q, k_i))}{\sum_{j=1}^{n} \exp(\text{score}(q, k_j))}αi=∑j=1nexp(score(q,kj))exp(score(q,ki))
其中,score(q,ki)\text{score}(q, k_i)score(q,ki) 是查询向量 qqq 和键向量 kik_iki 之间的兼容函数,通常是一个前馈神经网络。
例子:
- 机器翻译:在机器翻译中,注意力机制可以帮助模型在翻译过程中,针对源语言句子的不同部分,分配不同的权重。对于当前要翻译的单词,模型会根据源句子中的每个单词计算一个权重,然后根据这些权重加权源句子中的单词特征,生成翻译。
Cross-modal Attention Mechanism (跨模态注意力机制)
定义:
跨模态注意力机制是注意力机制的一种扩展,它用于处理多模态数据(如文本、图像、音频等),尤其是在多个模态之间进行信息融合时。不同模态的特征可能存在差异,因此跨模态注意力机制通过在一个模态(如图像)中根据另一个模态(如文本)的信息来加权特征,从而增强两者之间的联系。
形式化
假设有两个模态的输入:文本表示 T=[t1,t2,...,tm]\mathbf{T} = [t_1, t_2, ..., t_m]T=[t1,t2,...,tm] 和图像表示 I=[i1,i2,...,in]\mathbf{I} = [i_1, i_2, ..., i_n]I=[i1,i2,...,in],文本和图像分别经过编码得到的特征序列。我们希望通过跨模态注意力机制,结合文本和图像之间的相关性来生成一个加权的特征表示。
-
计算跨模态注意力权重:
- 对于每个图像特征 iji_jij,我们计算它与文本特征 tit_iti 之间的相关性(例如,使用点积或加性函数)。然后通过 Softmax 来得到注意力权重 αij\alpha_{ij}αij,表示文本特征 tit_iti 对图像特征 iji_jij 的影响程度。
αij=exp(score(ij,ti))∑i=1mexp(score(ij,ti))\alpha_{ij} = \frac{\exp(\text{score}(i_j, t_i))}{\sum_{i=1}^{m} \exp(\text{score}(i_j, t_i))}αij=∑i=1mexp(score(ij,ti))exp(score(ij,ti))
-
加权图像特征:
- 使用计算得到的权重 αij\alpha_{ij}αij,对图像特征进行加权,得到跨模态的上下文向量 cjc_jcj。
cj=∑i=1mαijtic_j = \sum_{i=1}^{m} \alpha_{ij} t_icj=∑i=1mαijti
这就意味着每个图像特征 iji_jij 会根据文本信息的不同部分进行加权融合,从而得到一个更丰富的图像特征表示。
例子:
-
视觉-语言任务(如图像字幕生成):
- 在图像字幕生成中,跨模态注意力机制可以将图像和文本特征进行融合。例如,对于每个图像区域(比如某个物体或场景),根据当前生成的文本信息,跨模态注意力机制会调整图像区域的权重,使得生成的文本更加符合图像中的内容。
-
多模态情感分析:
- 在情感分析中,跨模态注意力机制可以将文本(如社交媒体上的评论)和图像(如配图)结合,通过对文本和图像信息的加权融合,提供更准确的情感判断。