多模态思维链在 VQA 中的应用:先识别物体、再分析关系、最后回答问题

图片来了。朋友发来一张照片,问我:"AI为什么说小孩喜欢狗?"

AI technology illustration

照片里,一个小孩正跑着追一只狗,而狗在前面追一只猫。AI回答的是"因为小孩喜欢狗"。你不能说它完全错——小孩确实可能喜欢狗——但你一看照片就明白,它没有理解"追"这个动作。真正合理的回答应该是:"因为狗在追猫,小孩在追狗,他可能是想阻止狗追猫。"

这种"看得见但看不见"的现象,在视觉问答(VQA)领域非常常见。传统VQA模型把图像和问题编码成一个向量,然后直接吐出一个答案。中间没有"思考"这个动作。就像一个学生考试,直接在答题卡上涂B,但草稿纸上一片空白。你能指望他对吗?有时候能对,但一旦题目需要多步推理,他就彻底露馅。

我最早以为VQA就是"看图说话",后来发现,"说"很容易,"理解"很难。"看见"只需要识别出物体,"理解"需要知道物体之间的关系、意图、因果。这让我关注到一类新方法:多模态思维链(Multimodal Chain-of-Thought,MCoT)。它强制模型在回答问题前,先做几步显式推理。

思路从哪儿来:把思维链搬上图像

2022年,Google Research发表了一篇论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》,发现只要在Prompt里加上一句"Let’s think step by step",大语言模型就能生成中间推理步骤,然后准确率大幅提升。这个思想很快被移植到了多模态领域。

2023年,论文作者们发表了《Multimodal Chain-of-Thought Reasoning in Language Models》。他们的方法分两个阶段:

  1. 生成推理依据(Rationale Generation):模型根据图像特征和问题,生成一段描述性的文字,比如"图中有男孩、狗、猫,狗在追猫,男孩在追狗"。
  2. 生成答案(Answer Inference):把问题和这段推理依据拼接,再让模型输出最终答案。

关键在于,图像不是直接输入语言模型,而是通过一个视觉编码器(如ViT)提取特征,然后映射成语言模型能读懂的"视觉tokens"。也就是说,模型先"看"再"想",而不是边看边想。

论文在ScienceQA基准上,把准确率刷到了 91.25%,比之前最好的方法高出一大截。我心想:这哪是模型,这是给学生配了个草稿纸。

三步推理法:先识别、再关系、后回答

多模态思维链具体到VQA,就是三个步骤:

  1. 识别物体:图中有什么?——男孩、狗、猫。
  2. 分析关系:它们之间发生了什么?——狗在追猫,男孩在追狗。
  3. 生成答案:那么,问题的答案是什么?——追狗的是男孩。

你可能会说,这不就是常识吗?对,但传统模型恰恰缺了这步。它能说出图中有男孩、狗、猫,但当你问"谁在追狗"时,它就懵了,因为它只统计了物体的出现概率,没有建立"动作-主体-客体"的三角关系。多模态思维链的巧妙之处,在于它把关系用自然语言"写出来",逼着模型在生成答案前,把关系理顺。

一个最小示例

用伪代码表示大概是这样:

输入:图片特征 + 问题:"谁在追狗?"提示:请一步一步推理,最后给出答案。输出:步骤1:图片中有男孩、狗、猫。步骤2:狗在猫后面跑,男孩在狗后面跑。步骤3:因此,追狗的是男孩。

你看,最后一步的依据,是中间那一条关于"跑"的关系。没有这一步,答案就是悬空的。

它和传统VQA的差距

维度 传统端到端VQA 多模态思维链
推理过程 不可见,网络内部隐式完成 显式生成自然语言推理步骤
可解释性 低,只能获得置信度 高,可以检查推理理由是否合理
对常识的依赖 弱,主要靠训练数据统计 强,充分调用预训练语言模型的世界知识
计算开销 较低,单次推理 较高,需要生成额外推理文本
错误传播 无显式中间错误 可能因推理中间错导致答案错

表格中值得注意的还有"错误传播"。思维链让推理过程可见,但一旦中间步骤写错了,最终答案可能错得更加离谱。比如模型把"男孩"描述成"女孩",后面全乱套。

最坑的地方:视觉特征会撒谎

我自己的实验经历告诉我,多模态思维链真正难的不是推理,而是"视觉特征怎么变成语言"。

我最早以为,直接把图片用现成的Image Caption模型转成一句话,然后丢给GPT-3.5让它推理,就能实现多模态思维链。结果试了一下:准确率惨不忍睹。原因很简单:一句"一个男孩在户外跑"丢失了太多关键信息——男孩是在追狗,还是在赶鸭?狗是什么方向跑的?这些细节恰恰是关系推理的命脉。

后来我看了论文的实现,才发现他们把视觉特征做成了"visual tokens",每一块图像区域都能映射成一组Token,而不是整个图像压缩成一句话。这样模型就能"对准"图像里的具体位置来推理。但即便这样,视觉特征仍然有"撒谎"的时候——它可能把阴影识别成猫,把广告牌识别成人。

所以我要说:多模态思维链的效果上界,由视觉编码器决定;下界,由语言模型的推理能力兜底。

常见困惑,一次讲清

思维链和注意力机制是一回事吗?

完全不是。注意力是Transformer内部的一种计算方式,用于衡量词与词之间的关联程度;思维链是推理策略,是让模型生成中间步骤。

图像必须转成文字才能用思维链吗?

不必须。论文中的方法是把视觉特征映射成visual tokens,与文字Token一起输入语言模型。更简单的做法是先转成一句描述,但效果会打折扣。

如果模型生成的推理步骤是错的,答案还有救吗?

答案有概率对,但整体不可靠。这也是目前研究正在解决的问题——如何保证推理步骤的准确性。

局限与我的判断

多模态思维链最被质疑的一点是:它真的在"看"图吗?还是只在"猜"?

有个2023年的研究发现,很多时候模型的中间推理只是"事后合理化"——模型先定了答案,再编一段理由,而不是真正依照理由推导答案。这种现象在幻觉率高、训练数据不够的情况下尤其明显。你的麻烦在于,如果你想用它的推理过程做决策依据,就得先验证推理本身是否可靠,这又回到了开头的可解释性问题。

另外,为了配合语言模型,目前主流实现还是把视觉信号压缩成了离散的语言Token或描述文本。这意味着空间布局、颜色深浅、纹理等细节会丢失。你问"左边那个红气球和右边那个蓝气球哪个大",它可能直接蒙一个。所以我认为:

但无论如何,这条路让我看到了一个重要的可能:把推理过程显式化,即使不完美,也比完全黑盒更有希望被人类的调试和理解。未来的多模态推理,很可能是在特征层面直接融合视觉和语言,而不是先翻译成文字。到那时候,"先识别物体、再分析关系、最后回答问题"就不只是Prompt里的一个流程,而是模型内在的结构了。

在走到那一步之前,多模态思维链是一个极其实用的过渡方案。它用一个很朴素的想法——先打草稿,再答题——把VQA从一个"看运气"的任务,变成了"讲道理"的任务。这已经是一个了不起的进步了。

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/429.html

(0)
上一篇 4天前
下一篇 4天前

相关推荐