有一张网上很火的漫画,左边写着"YES",画着一双精致的高跟鞋;右边写着"BUT",画着一双缠满创可贴的脚。你我看一眼就笑了,因为我们瞬间明白了那个因果链条:为了好看穿了高跟鞋,然后脚遭了罪。
但如果把这张图丢给一个当下最先进的AI视觉语言模型,让它解释"这张图为什么好笑",结果往往会很尴尬。它可能只会说"图片左边是鞋子,右边是脚",完全抓不住那个"因为好看所以受罪"的因果关系,更别提背后那种"我们为了外表牺牲舒适"的自嘲意味了。
VLM
VLM(视觉语言模型):一种可以同时理解图像和文字,并根据两者生成回答的人工智能模型,比如GPT-4o就是其中的代表。
这不是一两个模型的偶然翻车,而是一个普遍现象。已经有多篇研究专门测试过,各种主流VLM在理解讽刺、反讽、表情包等幽默形式时表现都不理想。这篇论文的作者们决定不再绕圈子,直接去啃这块硬骨头:能不能教会AI理解幽默背后那条看不见的因果链?
幽默为什么这么难啃
先说说这件事到底难在哪。
幽默这个东西,本质上是关系的游戏。一个笑话或者一张搞笑图片,往往牵扯到人、物体、抽象概念、事件之间一层套一层的互动关系,而且很多时候笑点恰恰藏在"意料之外却情理之中"的落差里。你得先看懂表面的信息,再推理出隐藏的因果链条,最后察觉那个反差或矛盾,才能真正"get"到笑点。这对人类来说是几乎本能的社会认知能力,但对机器来说,是好几层抽象叠加在一起的硬任务。
已有研究给出过一些让人沮丧的数据。有工作发现,VLM在需要精细情感判断的场景里会把讽刺误判成惊讶;也有研究指出,模型经常抓不住"动作和物体"之间那种制造视觉笑点的反常搭配;还有研究表明,当图片和文字组合表达一种比喻或反讽含义时,模型倾向于把它简单地按字面意思理解,完全漏掉了话里有话的那一层。
更让人意外的是,连业内常用的"让模型说出思考过程"这类技巧,在幽默理解上也不太管用。
CoT
CoT(思维链,Chain-of-Thought):一种提示技巧,让模型在给出最终答案前,先用自然语言写出一步步的推理过程,本来在数学、逻辑类任务上效果显著。
按理说,让模型"想清楚了再说"应该更聪明才对,但已经有研究发现,思维链提示在带有主观情绪色彩的任务上反而容易"塌陷",也就是说模型不是在真正推理眼前这张图或这句话,而是在套用它记忆里现成的、笼统的模板答案,结果在讽刺识别和情感判断类任务上几乎没有提升。这就好比你让一个背了很多套话的人去点评一个具体的笑话,他张口就是"这很讽刺,反映了社会现实"这种放之四海而皆准的空话,压根没有真正看懂这张图里到底发生了什么。
这就是这篇论文要解决的核心矛盾:现有的推理增强手段,对付数学题、常识题很好使,但一遇到需要捕捉人物关系、物体互动、情绪反差的幽默场景,就集体失灵了。
用因果图给幽默"拍X光片"
研究者们的思路是,既然幽默的核心是"因为A所以B,但B和常理预期不一样"这种因果结构,那为什么不干脆让模型显式地把这条因果链画出来,而不是用一段模糊的自然语言去笼统描述?
于是他们提出了CARGO-T。
CARGO-T
CARGO-T(因果推理思维图,Causal Reasoning Graph-of-Thought):本论文提出的方法,让VLM先构建一个用代码表示的因果推理图,把图片和文字里的实体、属性、因果关系都列清楚,再基于这个结构化的"草稿"生成最终答案。
具体怎么操作呢?研究者定义了一种叫做因果推理图的东西,它是因果图的一个简化版本,只保留最核心的"原因指向结果"这一种关系,同时用轻量的元数据记录每个实体是什么、有什么属性。
因果图
因果图:一种用节点和箭头表示"什么导致了什么"的图结构,通常还带有概率参数,用来做严谨的统计推断。CARGO-T用的是它的简化版,去掉了概率计算,只留下确定性的因果箭头和实体描述,让模型更容易生成和理解。
拿开头那张高跟鞋漫画来说,CARGO-T生成的因果图大概长这样:先列出实体,高跟鞋(一种时髦但高跟的鞋子)、脚(穿着高跟鞋、多处贴着创可贴)、时尚(追求好看的社会文化驱动力)、不适(疼痛、对脚造成的负面生理影响);然后列出因果关系,"时尚"导致"脚穿上高跟鞋","脚穿上高跟鞋"导致"不适"。这样一来,那条藏在图片背后的逻辑链条就被完整、清晰地摊开在纸面上了。
这就好比你去医院拍X光片。医生光靠眼睛看你的皮肤,看不出骨头有没有裂缝,但X光片能把肉眼看不见的内部结构显影出来,让骨折的位置一目了然。如果不拍这张片子,医生只能凭经验猜测,误诊率自然更高。因果推理图干的就是类似的事:它把一张图片表面看不出来的因果结构"显影"出来,让模型不再是凭"记忆里的套话"蒙一个答案,而是先看清内部的因果骨架,再基于这个骨架给出解释。
零样本和小样本两条路
CARGO-T在实际使用时有两种玩法。
零样本
零样本(zero-shot):不给模型任何示例,直接让它根据任务描述完成任务,全靠模型自己的"知识储备"现场发挥。
第一种是零样本设置,直接在提示词里让模型"先生成一段代码表示的因果推理图,再给出最终答案"。这种玩法高度依赖模型自身的代码生成能力,所以论文里主要在GPT-4o和GPT-4o-mini这类代码能力强的商业模型上使用。
第二种是上下文学习设置,也就是在提示词里给模型看几个"标准示范",包括示范图片、示范的因果推理图、示范的正确答案,让模型照葫芦画瓢。这里有个很细致的操作:这些示范用的因果推理图不是让模型随便生成完就用,而是先用GPT-4o生成一版草稿,然后由人工按照统一的格式手动修正,确保每个示范都严格遵循"先列实体,再列属性,最后列因果关系"这套规范。
上下文学习
上下文学习(in-context learning):不训练模型参数,只是把几个"输入-输出"的示范样例放进提示词里,让模型照着示范的模式去处理新的输入。
论文里专门做了一个对比实验,来验证这个"人工修正"步骤到底有没有必要。如果直接用模型自己生成的未经修正的因果图当示范,效果就会打折扣,各项指标都比经过人工规范化的版本要差一截。这说明,示范的质量直接决定了模型模仿的质量,如果给出的示范本身逻辑混乱、格式随意,模型学到的也是一堆混乱的模仿,而不是真正规整的因果推理能力。这就好比教小朋友写字,如果你给他看的字帖本身歪歪扭扭,他练出来的字也好不到哪里去。
四个数据集,三种幽默类型
为了验证CARGO-T到底好不好使,研究者选了四个跨度很大的数据集来测试,覆盖讽刺、讽刺性表情包和多模态阴阳怪气这几种不同的幽默类型。
具体来说,任务被分成两大类。第一类是幽默理解,要求模型回答"这张图/这个梗为什么好笑",用YesBut数据集(一批讽刺漫画)和MemeCap数据集(带标题的表情包)来测试。第二类是幽默检测,简单粗暴地问模型"这个东西好不好笑",是个二分类问题,用YesBut数据集的检测版本和MMSD 2.0数据集(多模态阴阳怪气检测)来测试。
评估幽默理解的效果,用的是三个自动化的文本比较指标。
ROUGE-L
ROUGE-L:衡量生成文本和标准答案之间最长公共子序列重合程度的指标,数值越高说明用词和结构越接近参考答案。
BLEU:最初用于机器翻译评估,通过统计生成文本和参考文本之间连续词组的重合比例来打分。
BERTScore:利用BERT这类预训练语言模型计算生成文本和参考文本在语义层面的相似度,而不是简单比对字面用词,能捕捉"意思相近但用词不同"的情况。
评估幽默检测的效果,用的是准确率(Accuracy)和F1分数这两个常见的分类任务指标。
数据说话:CARGO-T到底强在哪
先看幽默理解任务在零样本设置下的表现。用GPT-4o作为底座模型时,CARGO-T在讽刺图片理解任务上的综合得分达到0.3726,比排名第二的CoD方法(0.3663)还要高,而普通的思维链方法CoT只有0.3337,比CARGO-T低了将近4个百分点。在表情包配文任务上,CARGO-T也是所有方法里得分最高的。
换成体量更小的开源模型MiniCPM,结果同样有说服力:CARGO-T依然是综合得分最高的方法,这说明这套方法不是靠堆大模型的算力硬扛出来的效果,即便是相对轻量的模型,用上因果推理图之后理解能力也能明显提升。
具体的提升幅度也很直观。在讽刺图片理解任务上,CARGO-T相比最好的基线方法,提升幅度普遍在1%到20%之间,其中用GPT-4o-mini这个中等体量模型时提升最为明显。这个现象很有意思,说明因果推理图这种结构化的引导方式,对能力没那么强的模型帮助反而更大,因为它相当于替模型把最费脑子的那部分逻辑梳理工作先做好了,模型只需要"照着骨架填内容",门槛一下子降低了不少。
上下文学习设置下的结果同样支持这个结论。在只给2个示范样例的情况下,CARGO-T在几乎所有指标上都超过了基线方法,说明哪怕只有很少量的示范,模型也能学会照葫芦画瓢地生成靠谱的因果推理图。不过研究者也发现一个有意思的边际效应:示范样例从0个增加到2个再到5个,CARGO-T相对于CoT的提升幅度反而在逐渐缩小,用GPT-4o时分别是11.66%、10.14%和5.86%。这说明多塞几个例子给模型看,收益是递减的,不是无限叠加的。这就跟你学一道新菜的做法类似,看第一遍视频教程能学会大部分要领,看第二遍能查漏补缺,但看到第五遍、第十遍,边际收获已经很有限了。
幽默检测任务的结果同样是CARGO-T全面占优。以GPT-4o在MMSD 2.0阴阳怪气检测任务上的表现为例,零样本设置下CARGO-T的准确率是49.48%,比CoT的48.07%高出接近3个百分点。在YesBut讽刺检测任务上,提升幅度稍微小一些,研究者推测这可能是因为讽刺检测缺少像阴阳怪气检测那样的辅助文字信息,模型在构建因果图时能利用的线索更少。
为什么CARGO-T的推理过程更靠谱
数据好看只是结果,研究者还想搞清楚,CARGO-T生成的那段推理内容,到底比CoT、CoD这些基线方法"好"在哪里,是真的信息量更大,还是碰巧蒙对了答案。
于是他们从两个角度做了深入分析。第一个角度是看推理内容本身包不包含更丰富、更新颖的信息,用了两种度量方式。
KL散度
KL散度(KL Divergence):一种衡量两个概率分布之间差异程度的数学工具,这里被用来比较两种方法生成的推理文字在用词分布上有多大差异,数值越高说明用词的多样性和信息量差异越大。
结果显示,CARGO-T生成的推理文字相对于CoT、CoD、CCoT这几种基线方法,KL散度值都持平或者更高,说明CARGO-T用到的词汇更丰富,携带的信息量也更大。另外研究者还设计了一个基于句子语义相似度的指标,专门衡量一种方法的推理内容里有多少语义信息是另一种方法完全没有覆盖到的,结果同样显示CARGO-T的语义新增信息量更多。
第二个角度更有意思,是直接问:从这段推理内容里,真的能推出最终的正确答案吗?研究者用了一种叫"LLM当裁判"的方法,让GPT-4去判断"给定这段推理文字,能不能合理地推导出标准答案",能推出来记1分,推不出来记0分,最后统计一个平均得分。结果CARGO-T得分45.11,比CoT的40.78、CoD的40.68、CCoT的37.64都要高。
这个结果其实回答了一个很关键的问题:CARGO-T不是靠生成一堆华丽但空洞的文字来蒙混过关,它的推理内容是真的和最终答案挂钩的,逻辑链条是通的。这就好比考试时老师批改主观题,不只是看你答案写得对不对,还要看你的解题步骤是不是真的支撑得起那个答案,还是纯属编凑出一个正确结果。CARGO-T在"步骤支撑答案"这一点上明显做得更扎实。
结构化推理为什么比自然语言碎碎念更管用
回过头来想想,为什么用代码形式的因果图,会比用CoT那种自然语言描述的推理链更有效?
自然语言写推理过程有个天然的问题:它太自由了,模型想怎么写就怎么写,容易东拉西扯,或者干脆套用一段听起来很"高级"但其实没有真正对应到当前这张图的模板话术,前面提到的"posterior collapse"(推理坍缩成套话)现象说的就是这个。
而代码化的因果图,因为有固定的结构,逼着模型必须先老老实实地列出"这张图里有哪些实体",再列出"这些实体各自有什么属性",最后才能填写"什么导致了什么"这个因果关系字段。这种格式上的约束,相当于给模型的思考过程加了一副脚手架,让它没办法偷懒直接跳到一句笼统的结论上。
这就好比写论文和发朋友圈的区别。发朋友圈你可以想到哪写到哪,情绪化地感叹一句"太好笑了"就完事;但写论文你被格式逼着必须交代研究背景、方法、数据、结论,一步都跳不过去。如果没有这层格式约束,很多本该讲清楚的逻辑环节,人(或者模型)就会下意识地跳过去,用一句模糊的总结蒙混过关。CARGO-T的代码化因果图,本质上就是给模型的"作文"套上了论文式的格式要求。
一点消融实验带来的额外发现
研究者还做了几组对照实验,来确认CARGO-T里的每个设计细节是不是都有必要。
有一组实验是往提示词里额外加入一段详细的"因果推理图定义说明",结果发现加了这段定义之后,效果反而在大多数指标上比不加定义还要略差一点。这个结果乍一看有点反直觉,按理说把规则讲得更清楚,模型应该表现更好才对。但研究者推测,这可能是因为过于详细的定义反而扰乱了模型的注意力,让它在纠结"格式该怎么严格遵守"上花了太多心思,反而分散了真正用来理解图片内容的注意力。这有点像你考试前临时抱佛脚,把一堆答题规则的细枝末节背得滚瓜烂熟,结果考试时满脑子想的都是"我这道题格式对不对",反而没心思去想题目本身该怎么解。
另一组实验验证了前面提到的"人工修正示范样例"这个步骤的价值,结果确认了不经过人工修正的示范样例,效果确实会打折扣。
写在后面
读完这篇论文,我一直在想一个问题:为什么人类看一眼那张高跟鞋漫画就能秒懂笑点,而AI需要这么复杂的一套因果图脚手架才能勉强跟上?
我猜答案可能是,人类从小到大积累的社会经验,本身就是一张密密麻麻、早已内化的因果网络。我们看到高跟鞋,脑子里瞬间就自动关联出"美丽代价"这条链条,根本不需要刻意去"画图",这套推理早就固化成了直觉。而AI没有这种成长经历带来的常识内化,它必须靠外部显式地把这条链条铺出来才能"看懂"。这某种程度上说明,当前的多模态大模型距离真正的"社会常识",可能还差着一整套人类童年到成年积累的隐性因果知识网络。
论文里还有一个细节让我印象很深:讽刺检测任务的提升幅度小于阴阳怪气检测任务,研究者归因于后者多了一段辅助文字。这其实暗示了一件事,纯靠图像去理解因果关系,比结合文字线索去理解,难度要大得多。文字给出的往往是明确的语言锚点,而图像里的因果关系需要模型自己去"脑补"实体和它们之间隐藏的联系。这或许提示了一个还没被这篇论文回答的问题:如果完全没有文字线索,只靠一张静态图片,模型能不能靠自己构建出靠谱的因果图,而不需要任何语言提示的辅助?
这大概是留给下一篇论文的题目了。
Q&A
Q1:CARGO-T是什么?
A:CARGO-T全称因果推理思维图,是一种让视觉语言模型先构建代码形式的因果推理图(列出实体、属性和因果关系),再基于这个结构化推理生成最终答案的框架,专门用来提升AI对多模态幽默内容的理解能力。
Q2:CARGO-T相比思维链CoT这类方法有什么优势?
A:CoT让模型用自然语言写推理过程,容易套用笼统模板导致"推理坍缩";CARGO-T用代码化的因果图格式,强制模型先梳理清楚实体和因果关系,推理内容信息量更丰富,也更能真正支撑最终答案,在幽默理解任务上比CoT等基线方法提升1%到20%。
Q3:CARGO-T在哪些数据集上做了测试?
A:论文在YesBut讽刺漫画数据集、MemeCap表情包配文数据集和MMSD 2.0多模态阴阳怪气检测数据集上做了测试,涵盖讽刺理解、表情包幽默理解、讽刺检测和阴阳怪气检测四类任务。
热门跟贴