CA作为多模态融合的一个重要组成部分,它通过注意力机制在不同模块之间建立联系,促进信息的交流和整合,从而提升了模型处理复杂任务的能力。
使用它需要明白以下几点要求:
-
两个序列必须具有相同的维度。(因为Query和Key要做点积累,)
-
两个序列可以是不同的模态(如文本、图像)。
-
一个序列作为输入的Query,定义了输出的序列长度,另一个序列作为输入的Key和Value。
具体地说,对于一个文本序列和一个图像序列:
-
文本通过一个Transformer编码器处理,输出作为查询向量Query。
-
图像通过CNN处理,输出经过线性变换生成键Key和值向量Value。
-
计算文本查询向量Query与图像键向量Key的点积,得到注意力分数Attention Score。
-
使用这些分数对图像的值向量Value进行加权,生成最终输出。
如上图所示。