为什么问“蓝色食物为什么这么少”,搜索引擎只给你一个答案?

你有没有过这种经历,在搜索引擎里打一个问题,结果发现回来的十条链接讲的都是同一件事?

比如你问"为什么蓝色的食物这么少",你其实脑子里可能同时好奇好几件事:为什么大自然里蓝色色素这么罕见?人们看到蓝色食物心理上是什么反应?食物在加工过程中颜色会不会变?这明明是三个完全不同角度的问题,答案可能分别来自生物学论文、心理学研究、还有食品化学的文章。可是你搜出来的结果,往往清一色都在讲蓝色色素的化学结构,剩下两个角度几乎看不到。

这不是你运气不好。首尔大学的研究团队最近做了一个挺扎实的调查,发现现在几乎所有主流的检索系统都有这个毛病,他们管这个现象叫"单一视角偏见"。这篇论文的核心工作,一是造了一个专门用来检测这种偏见的超大测试集,二是提出了一套修正方法,读下来还挺有意思,我们慢慢聊。

现有的题库为什么测不出这个问题

在讲研究团队怎么解决问题之前,得先说清楚为什么这个问题一直没被好好解决过。

信息检索(IR,一种通过输入查询词从海量文档中找出相关内容的技术)这个领域测试系统好不好用,靠的是各种基准测试集,说白了就是一堆标准问题加标准答案,让系统去做,看它答对多少。可问题是,市面上绝大多数测试集问的都是"封闭式问题",什么叫封闭式,就是问题只有一个标准答案,比如"世界上最高的山是哪座",答案就是珠穆朗玛峰,没有第二种说法。

这类封闭式问题测起来很方便,对错一目了然,但现实生活里你搜索的问题很少长这样。你更常问的是"该不该吃维生素补充剂""远程办公到底好不好"这种没有唯一答案、涉及多个角度的开放式问题。

也有一些测试集意识到了这一点,开始收录开放式问题,比如AmbigQA、PIR、BeRDS这几个数据集。但研究团队仔细扒了扒这些数据集的内容,发现了一个共同的短板:这些开放式问题虽然承认答案不唯一,但支撑这些答案的文档,往往还是集中在同一个学科领域,而且清一色都是纯文字资料。换句话说,这些数据集测的是"一个问题有几种说法",却测不出"一个问题需不需要跨学科、跨媒介地找证据"。

论文里给了一组对比数字挺直观的。像BeRDS这个数据集,平均每个问题只涉及2.21个子话题,跨越1.30个学科领域,图片文字混合的程度基本为1,也就是几乎全是文字。而这篇论文新造的数据集,平均每个问题对应4.98个子话题,横跨3.34个学科领域,图文混合度达到1.91。这不是简单的数据量堆砌,而是覆盖广度上有质的差别。

这就好比你去问一个全科医生"我最近老头疼是怎么回事",一个只会照本宣科的医生可能翻来覆去只跟你讲颈椎问题,因为他脑子里对头疼的理解就固化在这一个原因上。而一个真正靠谱的全科医生,会同时考虑睡眠、饮食、用眼、心理压力这些完全不同维度的可能性,然后分别给你不同科室的建议。如果医生的知识结构本身就是单一视角的,那他给出的诊断永远不会全面,哪怕他态度再认真、检查再仔细,出发点错了,结果就跑偏。检索系统也是一样的道理,如果拿去训练和测试它的题库本身就没有覆盖多学科多媒介的需求,那系统学出来自然也是单一视角。

数据集怎么造出来的

研究团队给这个新数据集起名叫MULTI?IR,规模不小,一共收了10万4900多个问题,全部来自Stack Exchange。

这个来源本身就有点讲究,因为Stack Exchange是个问答社区,很多帖子下面挂着好几个不同用户给出的答案,而且社区有投票机制,能自然筛选出真正有价值的回答,还有些回答里会引用外部链接作为证据来源。这三个特性正好契合研究团队想要的东西,多角度、有质量保证、有据可查。

数据构建走的是一条三步走的自动化流程,最后再加一道人工核验。

第一步是筛选帖子。研究团队从77个Stack Exchange的子站点里选帖子,这些站点覆盖科技、文化娱乐、科学、商业、生活艺术五大类别。只保留答案数超过3个、且至少有3个不同用户投过票的帖子,确保帖子既有足够的讨论量也有足够的认可度。

第二步是提取"视角"并核实。

视角(perspective):指一个开放式问题背后隐含的某个具体子问题,代表问题的一个侧面,比如前面提到的蓝色食物问题里,"蓝色色素为什么稀有"就是一个独立的视角。

研究团队用GPT-5-mini从每个帖子的答案里提取出若干个视角,提完之后还要做两道核验。第一道叫唯一性检验,用一个叫all-MiniLM-L6-v2的句子编码模型把所有视角转成向量,如果两个视角的向量相似度超过0.8,说明它们其实说的是同一件事,就得删掉一个。第二道叫忠实性检验,用Bespoke-MiniCheck-7B这个模型判断每个提取出来的视角是不是真的能从原答案里推导出来,不是模型自己瞎编的,编出来的直接扔掉。这一步筛完之后,只保留视角数量在4个以上的问题,最终留下10万4900多个问题,对应52万1700多个视角。

第三步是给每个视角配上支撑文档,并保证这些文档"专属"于这个视角。研究团队从Google图片搜索抓图片,从C4这个大规模网络文本语料库里抓文字段落,每个视角各抓10篇候选文档。因为一篇文档有可能同时能支撑好几个视角,比如一段讲食品添加剂历史的文字,可能同时能回答"心理认知"和"社会问题"两个视角,这样的文档如果分给两边都算数,测试起来就会失真。所以研究团队用Qwen3-VL这个多模态大模型去逐一核实,确保最后留下的文档只专属支撑一个视角,不能脚踏两条船。

这个"专属支撑"的要求听起来有点较真,但其实很关键。想象你要给三个不同科目的老师批改同一份作业集,如果一份作业里同时写了数学和语文的内容,你把它同时算进数学卷和语文卷的评分里,那最后两科的分数其实是被污染的,你根本分不清学生数学到底学得怎么样。同样的道理,如果一篇文档被算作同时支撑好几个视角,那测试系统"能不能覆盖多个视角"这件事本身就失去了意义,因为一篇文档蒙对了好几个视角,会让系统的表现看起来比实际更好。

最后,团队还用一个叫EAI-Distill-0.5b的分类模型给每篇文档打上学科标签,一共分成94个不同领域,最终形成了101万2000多篇多模态文档,图片文字都有。整个过程走完,团队还额外做了人工验证,雇了Amazon Mechanical Turk上的标注员对样本抽查打分,发现提取出来的视角99.1%都算相关,96.2%互相不重复,90.2%的文档确实只专属支撑一个视角。这套流程还挺靠谱。

现有检索系统到底有多偏

数据集造好了,研究团队马上拿三个当下比较先进的多模态检索模型试了试水,分别是MM-Embed、GME-Qwen2和Qwen3-VL。

多模态检索模型:一种能同时理解文字和图片、并根据查询词从海量图文数据库里找出相关内容的AI模型。

结果挺扎心的。用原始问题去检索,取排名前20的结果,看每个视角有没有至少一篇支撑文档被检索到。三个模型表现出惊人一致的规律,排名第一的视角命中率相当高,但排名第二、第三、第四的视角,命中率断崖式下跌。也就是说,这些系统对一个开放式问题,脑子里其实只认准了一个"主流理解",剩下的角度基本被忽略。

那问题出在哪呢?是模型压根没理解问题里藏着的这些角度,还是它理解了,但文档库里那些文档的表示方式跟问题表示方式对不上号?研究团队做了个很聪明的对照实验。他们直接把标注好的视角描述文字拿来当查询词,分别检索,再把结果按轮流的方式合并起来看。这一测,命中率立刻变得均衡了,几乎每个视角的命中率都拉到差不多的水平。

这说明什么,说明问题不在文档那一侧,文档本身是够用的,问题出在查询词的表示上。当你只给系统一个笼统的原始问题时,它把整个问题压缩成了一个向量,这个向量天然就偏向了最主流的那个理解方式,其他角度被稀释掉了。

这个现象让我想起一个生活里的场景。你去问一个不太熟悉你需求的翻译,把一句意思很丰富的话翻译成另一种语言,如果这句话本身有好几层含义,比如中文里常见的双关或者隐喻,一个匆忙翻译的人往往只会挑一个最字面、最直白的意思来译,剩下的弦外之音全丢了。不是因为原文里没有那些意思,是因为翻译者把整句话压缩成了单一的一层理解,其余信息在压缩过程中被牺牲掉了。检索系统面对开放式问题也是同样的道理,把一个多角度的问题塞进一个向量里,就必然要丢东西,而丢掉的往往是那些不那么"主流"的角度。

SPIN:用噪声向量撬开多个理解角度

找到了问题的根源在查询词表示这一端,研究团队接下来要解决的就是怎么让一个查询词能同时对应多个不同的理解方向。他们提出的方法叫SPIN,全称是Steering Perspectives by Injecting Noise,直译过来就是"通过注入噪声来引导视角"。

先说这个方法要绕开的两个坑。市面上已有的多样化检索方法主要走两条路,一条是查询扩展,遇到问题先让一个大语言模型帮忙把问题改写成好几个不同版本的子问题,这个办法管用,但每次检索都得调用一次大模型,成本不低,速度也慢。另一条路是多向量检索,让系统给一个查询词生成好几个不同的向量,理论上能覆盖多个角度,但训练这种多向量系统通常需要大量的"文档级相关性标注",也就是得有人告诉系统,这篇文档到底跟这个查询相不相关,这种标注做起来又贵又费时间。

SPIN想绕开这两个坑。它的做法是这样的,先找一个已经训练好、参数完全冻结不动的检索模型,然后在这个模型的某个中间层里,插入几个可学习的"噪声向量"。

噪声向量:一组通过训练学出来的小型参数,加到模型内部某一层的表示上,用来把这个表示朝不同方向轻轻推一把。

具体流程是这样的,给定一个查询问题,先让它正常走到模型的中间层,得到一个中间表示,然后往这个表示上加一个噪声向量,再让加了噪声的结果继续往后走完剩下的网络层,得到一个"被引导过"的查询向量。同一个查询问题,配上不同的噪声向量,就能得到好几个方向各不相同的查询向量。训练的目标很简单,让这几个不同方向的向量,分别去靠近标注好的那几个视角描述文字所对应的向量。

这里有个细节挺讲究的,研究团队为什么选择在"中间层"注入噪声,而不是在最开始或者最末端?他们提到之前有研究发现,Transformer模型的中间层保留的语义信息更丰富多样,越往后走到最后几层,表示会逐渐收敛,趋向于一个固定的、单一的理解方式。也就是说,模型内部本身就有一个从"多种可能性并存"到"逐渐收敛成一个答案"的过程,SPIN选择在还没完全收敛之前的中间层动手脚,正是要趁着信息还没被压扁的时候,把它朝不同方向撑开。

这个设计思路让我想到揉面团。刚开始揉面的时候,面团里的水分和面粉分布还很不均匀,各个部分性质差异很大,这时候你稍微用力往不同方向拉一拉,很容易把面团拉出不同的形状。可等你把面团揉到最后、已经完全揉匀了,这时候不管你怎么使劲拉,它都会自动缩回一个统一的形状,因为整个面团内部结构已经高度一致了。SPIN如果选在最后一层才注入噪声,效果就跟在揉好的面团上使劲一样,几乎拉不出什么变化,模型的输出已经收敛得太死了。研究团队后续也做了对照实验验证了这一点,把噪声注入点放在网络接近末端的位置,随着噪声向量数量增加,效果反而不再提升,印证了这个"收敛"的猜测。

训练目标的设计上也有讲究。因为一个查询问题对应好几个视角,而模型生成的也是好几个向量,这是个"多对多"的匹配问题,不能简单粗暴地规定第一个噪声向量必须对应第一个视角。研究团队用了一种叫noisy-OR的概率组合方式,只要生成的这几个向量里,有任意一个足够接近某个目标视角,就算这个视角被覆盖到了,同时还会用同一批次里其他问题的视角当作负样本,让模型学会区分哪些向量不该对上号。

推理阶段更简单,给定一个新的查询问题,用训练好的几个噪声向量分别生成几个查询向量,每个向量单独去检索一遍文档库,取出各自的排序结果,最后把这几个排序结果按轮流方式交替合并,凑够需要的数量为止。

实验结果说了什么

研究团队把SPIN和好几种基线方法放在一起比,包括最原始的直接检索、经过微调的原始检索、大模型查询扩展法、还有另一种叫ARE(自回归多向量生成)的多向量方法。

结果显示,三个检索模型直接零样本跑MULTI?IR,命中率前十(HC@10)最高只能到28.83,跟提供标注视角作为查询的上限相比,差距在15到35个百分点之间。就算把检索深度加到前100篇(HC@100),差距依然有19到35个百分点,说明这不是检索深度不够的问题,是根本没理解问题背后藏着这么多层意思。

在使用了标注数据训练的方法之间比较,也能看出门道。用文档级标注训练的ARE方法,比微调过的原始检索模型提升了5到6个百分点。而用视角级标注训练的SPIN,表现远超同样用视角标注训练的大模型查询扩展法,命中率前十上高出8到13个百分点,软覆盖率指标(用大模型判断检索结果是否真的支撑某个视角)更是高出18到22个百分点。有意思的是,大模型查询扩展法用了跟SPIN同样数量的多个查询版本,命中率却反而比不做任何多样化处理的原始模型还低,这说明单纯生成多个查询版本本身没用,关键得是这些不同版本真的各自对准不同的视角。

再比较SPIN和ARE这两种都是多向量检索的方法,SPIN在命中率前十上比ARE高出3.6到4.5个百分点,软覆盖率上更是高出14到15个百分点。而且SPIN只需要视角描述这种相对便宜的标注,不需要ARE那样的文档级标注,论文附录里算过一笔账,做文档级标注要多花13.6倍的算力和2.5倍的API调用成本。这意味着SPIN不仅效果更好,成本还更低,这种双赢的组合在方法学研究里其实不算太常见。

更让人意外的是,把SPIN迁移到两个完全没见过的开放式检索测试集PIR和BeRDS上,效果依然稳定。在PIR上,命中率前十提升了9到12个百分点,即使检索到前100篇文档,提升依然有3.8到6.1个百分点。在BeRDS上,原本表现就已经比较高的模型提升幅度稍小,但GME-Qwen2这种起点较低的模型提升了整整20个百分点。这说明SPIN学到的不是某个数据集特有的技巧,而是一种通用的、能迁移到新场景的"多视角敏感度"。

换个角度看看SPIN到底强在哪

研究团队还做了几组额外分析,挺能说明问题。

第一组分析对比了SPIN和其他几种参数高效微调方法,比如前缀微调(Prefix-tuning)和LoRA。结果显示SPIN只用了2万多个参数,效果比参数量是它上万倍的LoRA还要好7.5个百分点。而且同样是"扰动式"方法,把注入位置放在中间层比放在最开始,效果提升了29.1个百分点,这个提升幅度相当惊人。反观LoRA和适配器这类"重参数化式"方法,就算把可训练层数砍掉一半,效果提升也只有1.7到2.0个百分点。这说明这两类方法的作用机制完全不同,直接给模型内部表示"轻轻推一把",比重新调整大量权重参数更精准也更高效。

第二组分析看的是检索结果能不能覆盖不同学科领域和不同媒介形式。SPIN在媒介覆盖上表现接近满分,几乎追上了理论上限的91%,但在学科覆盖上只追上了理论上限的35%到47%。也就是说,SPIN已经很擅长在文字和图片之间切换视角了,但要真正理解跨学科的不同视角,还有相当大的提升空间,这也是论文自己坦承的一个局限。

第三组分析特别有意思,研究团队按照每个问题对应的多篇支撑文档在向量空间里"分散程度"进行分组,看SPIN在文档分布很分散的问题上表现如何。结果是文档越分散的问题,SPIN带来的提升越大,最分散那组提升了24.4个百分点,即使是文档聚集得很紧的那组,也提升了8.7个百分点。这恰好印证了SPIN设计的初衷,一个查询向量确实没办法同时靠近散布在空间各处的多篇相关文档,而给它配上多个方向各异的查询向量,正好补上了这个短板。

写在后面

读完这篇论文,最让我意外的其实不是SPIN这个方法本身,而是那个前置的诊断实验,用标注好的视角文字去检索,结果立刻从严重偏斜变得均衡。这个实验设计得很聪明,它没有直接跳去修方法,而是先花力气把"病灶"精确定位在查询表示这一侧,而不是文档表示或者检索算法本身。很多论文容易犯的错误是方法先行,先想好一个解决方案再去凑一个问题,这篇论文的顺序反过来了,先把问题诊断透了,方法自然就跟着水到渠成。

另一个值得琢磨的点是学科覆盖和媒介覆盖之间那道明显的鸿沟。SPIN在图文切换上几乎做到了极致,但在跨学科理解上还差得远。这背后可能反映了一个更深的问题,图片和文字之间的差异,本质上是"表现形式"的差异,模型相对容易通过训练学会切换表现形式。但学科之间的差异,是"知识结构"的差异,生物学和心理学看待同一个现象的底层逻辑完全不同,这种差异恐怕不是简单加几个噪声向量就能撑开的,可能需要更根本的知识注入。这个留白挺诚实的,也挺值得后续研究继续往下挖。

下次你在搜索框里打下一个问题,不妨想想,这个问题背后是不是也藏着好几层你自己都没意识到的角度。而你看到的那十条搜索结果,到底是真的覆盖了这些角度,还是只是同一个角度换了十种说法。

Q&A

Q1:MULTI?IR是什么?

A:MULTI?IR是首尔大学团队构建的开放式信息检索基准测试集,包含10万4900多个来自Stack Exchange的问题,每个问题都标注了多个隐含视角及对应的跨学科、跨媒介支撑文档,用来检测检索系统能否全面覆盖一个问题的多个角度。

Q2:SPIN方法是怎么解决单一视角偏见的?

A:SPIN在冻结参数的检索模型中间层注入几个可学习的噪声向量,让同一个查询问题能生成多个方向不同的查询表示,分别对齐不同的视角描述,从而覆盖更多角度,且只需要视角级标注,不需要昂贵的文档级相关性标注。

Q3:单一视角偏见具体表现在哪里?

A:研究发现现有多模态检索模型对开放式问题检索时,结果高度集中在一个主流理解角度,其余隐含视角的命中率大幅下降,而如果直接用标注好的视角文字去检索则表现均衡,说明问题出在查询表示压缩了多重含义,而不是文档库本身不够。

作者声明:作品含AI生成内容
举报/反馈
分享到: 微博 QQ 空间
对本文内容有合作意向?
我们将在 1 个工作日内与您联系
留言咨询