Self Attention:不是 Target 和 Source 之间的 Attention 机制,而是 Source 内部元素之间或者 Target 内部元素之间发生的 Attention 机制,也可以理解为 Target=Source 这种特殊情况下的注意力计算机制。

具体计算过程是一样的,只是计算对象发生了变化而已。

注意力机制和自注意力机制的区别

抽象的文本处理领域的 Encoder-Decoder 框架

20230601163049

没有用注意力情况

首先,输入的信息经过 encoder 先转换为语义编码 c

生成输出的时候,借助语义编码 c

I= f(语义编码 c)

love= f(语义编码 c,I)

you = f(语义编码 c,I,love)

为什么没有用到注意力机制?
因为对于输出的每一个字,语义编码 c 的都是一样的,
而这个语义编码是通过我喜欢你四个字来的,
也就是对于生成 I,love,you,而言,用到的我喜欢你四个字的权重是一样的

用注意力的情况

比如生成 I 的时候,

语义编码 c= [ 我(0.7),喜(0.1) ,欢(0.1) ,你(0.1) ],

这样就比较合理了

这里的这个 I 就是查询 Q(因为我现在的需求就是生成 I),也就是类似我们淘宝实例中的查询(query)“笔记本”

这里的这样语义编码 c1,c2,c3 就相当于淘宝的数据库返回的查询结果

我喜欢你就相当于淘宝数据库里面的一件件物品,这个时候 key 和 value 都是“我”对应的语义编码

我的(0.7)这个 0.7 就是公式算出来的相似度权重

20230601163400
表达的意思就是,我查 I 的时候,“我”是 0.7 的概率,排在最前面,所以我会优先选择它,其它字依次
20230601163416
语义编码 c 的信息是动态变化的