主要从visual grounding, image caption方向(需要进行多模态融合的方向)说一下attention机制的心得,如有不正确欢迎指正留言~~
注意力机制通过设置更高的权重使得模型关注图片中的重要区域。
在 Image caption领域最早使用attention机制是2015年的《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention 》在之前生成描述是通过讲整张图片特征图通过mean pooling得到一维的图片向量送入LSTM得到。而人类对图片进行描述时一般通过对图片中的显著区域进行描述,而不是整张图片,因此不应该给图片每个区域赋予相同得权重。加入attention机制就可通过学习语言的gt与图片不同区域的相似度,实现分配不同的权重。
之后的几年里image caption中attention基本流程:将cnn提出的特征图中每个像素vi与decoder中lstm的隐状态相加后,压缩成一个权重值,乘回特征图。
之后的几年发展中,nlp也使用attention取得了很好的结果,transformer以及k,q,v版的attention。同时提出的non-local,也使得k,q,v版的attention、self-attention在计算机视觉方向又掀起一波热潮。
这时候我们提出一个思考:query与key是否需要相等?
在self-attention中query=key=value,毋庸置疑
在attention的基础概念中:是计算query与key的相似度得到权值,因此query可以和key不等。
经过我的实验,但对于跨模态模型,如果query属于一个模态(自然语言),key属于另一个模态(图像),理论上应该可行,但实验结果表示对于跨模态的q,k。模型无法学到相似度,不能得到正确结果。
我认为这种实验现象是由于query和key的差别过大导致。这时候对于大多数的文章,采用将多模态特征concat结合做为key, query。实现了减小差异,取得实验效果。