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

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

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

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

1 注意力机制的数学原理

注意力机制的计算步骤

  1. 对所有输入信息计算其注意力分布
  2. 根据注意力分布计算Attention值

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

1.1 基本形式(X Q)

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

① 对所有输入信息计算其注意力分布
αi 表示在给定查询q时,输入信息向量X中第i个信息与查询q的相关程度
由此有:
注意力机制Attention Mechanism的数学原理
其中σi构成的概率向量就称为注意力分布
s(xi,q)是注意力打分函数,有以下几种形式:
注意力机制Attention Mechanism的数学原理
看的文章中缩放点积形式用的比较多,d是维度,W、U、v是网络学习出来的参数
② 根据注意力分布计算Attention值
注意力机制Attention Mechanism的数学原理

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函数对注意力得分进行数值转换

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

③ 根据权重系数对Value进行加权求和:
注意力机制Attention Mechanism的数学原理
整个过程如下图所示:
注意力机制Attention Mechanism的数学原理

上一篇:Linux下清理内存和Cache方法见下文:


下一篇:【无标题】