Press "Enter" to skip to content

注意力机制Attention Mechanism的数学原理

最近在写一东西,有在看注意力机制,将其数学原理总结一下。

 

神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。即是在注意给定任务中更加关键的信息,而可以适当的忽略不重要信息,从而提高任务处理的效率。

 

注意力机制可分为下面展示一些 软注意力(Soft-Attention)硬注意力(Hard-Attention) 。可理解为对于N个输入信息 X=[x1,x2,...,xN] ,硬注意力机制往往在这N个输入信息种选取某一个(随机选择或选取概率最高的);而软注意力是考虑了N个输入,计算N个输入信息的加权平均。故在很多深度学习任务中采用软注意力机制,下文都是针对软注意力机制展开的。

 

1 注意力机制的数学原理

 

注意力机制的计算步骤

 

注意力分布
Attention值

 

接下来分别解释一下 注意力分布Attention值

 

1.1 基本形式(X Q)

 

对于N个输入信息 X=[x1,x2,...,xN]q 为查询向量,定义注意力变量 z∈[1,N] 表示被选择信息的索引位置即x的下标。

 

① 对所有输入信息计算其注意力分布

 

αi 表示在给定查询q时,输入信息向量X中第i个信息与查询q的相关程度

 

由此有:

其中σi构成的概率向量就称为
注意力分布

s(xi,q) 是注意力打分函数,有以下几种形式:

看的文章中缩放点积形式用的比较多,d是维度,W、U、v是网络学习出来的参数

 

② 根据注意力分布计算 Attention值

1.2 键值对 形式(K V Q)

 

键值对形式是将基本形式中的输入信息向量X由(K,V)表示,那幺N个输入信息就可以表示为 (K, V)= [(k1,v1),(k2,v2),...,(kN,vN)] ,其中“键”K用来计算注意分布σi,“值”V用来计算聚合信息。

 

① 根据Query和Key计算二者的相似度

 

这里就是通过打分模型,计算出注意力得分

 

si = F(Q,ki)

 

② 用softmax函数对注意力得分进行数值转换

 

 

③ 根据权重系数对Value进行加权求和:

整个过程如下图所示:

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注