注意力机制可以用下面的式子来概括:
其中QKV分别是查询向量、键向量、值向量,d是特征维度。softmax控制注意力权重的和为1。
如果
也就是说Q和KV来自同一个序列。此时就是在计算同一序列之间每个元素的相关性。所以叫自注意力。
相应地,如果
也就是说Q和KV来自不同序列。此时就是在计算不同序列之间的相关性。所以叫跨注意力。不同序列,通常就是多模态的数据,比如说文本、影像数据。
跨注意力机制实现的就是将条件信号注入到特征中。
self-attention是模型对自身的理解(自建模),而cross-attention则是模型对其他事物的理解。二者结合,就既能看懂自身是什么,也能看懂外部的指令。