本文主要是介绍注意力机制:点积、通用、缩放点积、拼接、相加,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
自 然 语 言 推 理 (Natural Language Inference,NLI)任务中相对应的 句子等。如果将下游任务抽象成查询(query),就可 以归纳出注意力机制的通用形式,即将源文本看成 是键-值对序列,用K=(k1,…,kN )和V=(v1,…,vN )分 别表示键序列和值序列,用 Q=(q1,…,qM)表示查询序列,那么针对查询的注意力可以被描述为键-值对序列在该查询上的映射 。如图2所示,计算过程可分为三步:
(1)计算查询 和每个键 的注意力得分,常 用的计算方法包括
点积[7] 、
缩放点积[6] 、
拼接[7] 以及
相加[3] 等,如公式(1)所示;
(2)使用 Softmax 等函数对注意力得分做归一 化处理,得到每个键的权重,如公式(2)所示;
(3)将权重和其对应的值加权求和作为注 意力输出,如公式(3)所示。
其中,W 和 U 代表可学习的参数矩阵,v代表参数向量。
键−值对是源文本的组成元素,可以是字符、词、 短语、句子等,甚至是它们的组合[8] 。这些元素一般 用向量表示,向量不仅是元素的内容表示,同时也是 元素的唯一标识,在通常情况下 K=V。模型输出的 注意力是源文本序列基于查询 qt的表示,不同的查 询会给源文本序列带来不同的权重分布。注意力机制根据查询计算出源文本序列中与下游任务最相关 的部分,意味着不同的查询会关注源文本的不同部 分,因此注意力机制可以看成是一种基于查询的源文本表示方法,理论上适用于任何文本处理任务。
这篇关于注意力机制:点积、通用、缩放点积、拼接、相加的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!