要解决的问题
用一句话描述一张照片,看起来简单,实际很难。一张图里的东西远远多于一句描述能提到的量:描述只会挑出几样物体,也许还有动作和场景,其余全部略去。所以模型不只要决定用哪些词,还要隐含地决定每个词说的是图上哪一块。句子通顺是一个问题,句子说的是对的东西是另一个问题。
怎么做
Kelvin Xu、Jimmy Ba、Ryan Kiros、Kyunghyun Cho、Aaron Courville、Ruslan Salakhutdinov、Richard Zemel 和 Yoshua Bengio 于 2015 年 2 月 10 日把论文发布到 arXiv[1]。论文提出了一个基于注意力(attention)的模型,能自动学会描述图像的内容[1]。
这里的注意力指的是对输入各部分的加权。模型不必把整张图当作一个没有分别的整体,而是在生成句子的每一步给某些位置的权重大于另一些位置。权重随着句子推进而变化,因此对某个词重要的区域,不一定对下一个词重要。作者说,模型在生成描述的同时能够报告自己正看向哪里[1]。这正是这种设计带来的直接结果:塑造句子的那套权重可以读成一个位置,读者因此能看出哪个词对应图上的哪一块。
两种注意力
论文描述了一种硬性(hard)确定性注意力机制,也描述了一种软性(soft)确定性注意力机制[1]。按通常的说法,硬性机制在每一步选定一个位置,像一束必须指向某处的聚光灯;软性机制则同时把权重分散到许多位置上,像在图上盖一层半透明的薄膜,每块区域都贡献一点。论文中的两种变体都被称为确定性的,意思是注意力由模型自身的状态直接算出,而不是随机采样得到的。同时给出两种做法,就可以在同一个框架里比较完成同一件事的两种方式。
结果
作者报告,注意力机制生成的描述比一个没有注意力的同类模型更细致、也更准确[1]。由于比较时模型其余部分基本保持不变,这就把性能提升单独归到注意力身上,而不是把它混在若干因素里。
第二个结果与检查有关,与分数无关。论文说,把学到的注意力画出来后可以看到,模型在生成相应词语时学会了把目光固定在显著的物体上[1]。也就是说,词与图像区域之间的对应不是手工规定的,而是从训练中长出来的,而画出注意力让这种对应变得可见。方法的评测在 Flickr30k、COCO 和 Pascal 三个数据集上进行[1]。
为什么重要
这篇论文同时主张了两件事,而这两件事性质不同。第一件是质量:注意力比没有注意力的同类模型给出更好的描述[1]。第二件是可读性。一个把图像压成单一固定表示的描述模型,产出只有一句话;读者能评价这句话,却看不出它是怎么来的。而一个能报告自己看向哪里的模型,提供了一个人可以核对的中间产物——在这里就是覆盖在图像上、与具体词语对应的注意力图[1]。
正因为这样,这篇论文的标题本身就概括了它的做法。模型会「看」,即注视某个区域;会「注意」,即给那块区域更大的权重;还会「说」,即输出一句话。三件事由同一个网络完成,而不是分成几个独立阶段,中间那一步也不是藏起来的细节,而是作者可以画出来的东西[1]。对于任何构建或审查「图像变语言」系统的人来说,这篇论文给出了一个至今仍常被用来说明问题的范式:输出是一句话,而内部的权重可以读成图像上的一个位置。
注释与来源
- Show, Attend and Tell: Neural Image Caption Generation with Visual Attentionhttps://arxiv.org/abs/1502.03044
引用本页: 看图、注意与描述:带视觉注意力的神经图像描述生成. TellWorld, https://www.tellworld.net/zh/papers/show-attend-and-tell-2015. 更新于 2026-11-07