我们之前已经学过了注意力模型,但是那是基于RNN模型的。RNN模型的结构决定了它不能并行运算,只能按照时间步一步一步地进行计算。自注意模型解决了这个问题。
自注意模型引入了3个变量q,k,v。q是用来对其他的k进行匹配的,k是用来被其他q匹配的,这两个值用来计算注意力系数
α
\alpha
α。v是抽取出的特征。图中的a是one-hot编码经过embedding后的值。
注意力系数是这样计算的:
α
i
,
j
=
q
i
⋅
k
j
/
d
\alpha_{i,j}=q^i \cdot k^j/\sqrt{d}
αi,j=qi⋅kj/d
其中d表示q和k的维度。
计算出的
α
\alpha
α通过一个softmax层变成
α
^
\hat{\alpha}
α^。
通过上图中的式子,会得到第一个输出b1。
b1,b2,b3,b4是并行计算出来的。
既然可以并行计算,我们就可以使用矩阵运算并使用GPU加速。
NLP-自注意模型
最新推荐文章于 2023-09-20 21:55:31 发布