代码混合信息检索:基准、分析与现有检索器的局限性 Code-Switching Information Retrieval: Benchmarks, Analysis, and the Limits of Current Retrievers
首次系统性揭示代码混合查询使现代检索器全面退化的鲁棒性瓶颈
前置知识
代码混合(Code-Switching)
指说话者在同一次对话或同一句话中交替使用两种或多种语言的现象,在全球约70%的双语人群中极为常见,例如"mRNA vaccine 的已知信息和最新进展"。
代码混合是真实搜索行为的高频模式,但主流检索系统主要在单语或跨语言场景下训练和评测,能否处理混合查询是评估IR鲁棒性的关键。
稠密双编码器检索(Dense Bi-encoder Retrieval)
通过对比学习将查询和文档独立编码为向量,以点积或余弦相似度计算相关性,是现代IR的主流范式,常用 InfoNCE 损失训练。
论文核心实验即围绕双编码器展开,并对比了其在单语与代码混合查询下的差异,是理解方法动机和结果的必要背景。
MTEB 基准与 nDCG@10
MTEB 是大规模文本嵌入任务评测基准,nDCG@10 是排序质量的归一化折损累积增益指标,关注前10个结果的相关性与位置。
论文沿用 MTEB 框架扩展出 CS-MTEB,并主要以 nDCG@10 报告 Touché/HumanEval/TRECCOVID/FollowIR 的检索效果。
跨编码器重排序(Cross-encoder Reranking)
将查询与候选文档拼接后共同输入 Transformer,联合编码以获得细粒度相关性分数,计算代价高于双编码器但精度更高。
论文实验同时涵盖 BM25、双编码器、跨编码器和 ColBERT v2 晚期交互模型,需理解它们架构差异才能解读性能差异。
研究动机
现代信息检索系统经历了从 BM25 等统计方法到稠密向量检索、再到跨编码器和晚期交互模型的演进,但几乎所有评测仍局限于单语或显式跨语言场景。然而在真实搜索行为中,代码混合极为普遍——社会语言学研究显示双语人群中每10分钟会发生超过15次语码转换,Ahmed 等人对三国社群的考察与 Gupta 等人对 Bing 日志的大规模分析均证实娱乐类查询中混合语言占比可达约27%。这意味着当用户输入"mRNA vaccine 的最新进展"这种英文术语嵌套在中文里的查询时,现有系统可能已默默失效,却缺乏专门基准暴露这一问题。论文通过人工改写 4 个 IR 基准得到的 CSR-L 数据显示,英文检索器 e5-large-v2 在中文混合下 nDCG@10 平均下降约11.90,ColBERT v2 下降11.31,跨编码器 Qwen3-Reranker-4B 下降7.13,问题普遍且严重。
本文的目标是论文提出对代码混合 IR 的首次系统性研究,目标有三:(1) 构建高质量、人工校验的 CSR-L 基准,覆盖中-英、日-英两种混合方向与 4 类 IR 任务(论证检索、代码检索、生物医学IR、指令遵循);(2) 进一步扩展为 CS-MTEB,沿用 MTEB 协议覆盖 11 个任务、7 类任务类型与 9 种混合语言,揭示代码混合缺陷是否具有普遍性;(3) 测试词典级词表扩展这一低成本干预能否弥合性能缺口,从而判断问题根源在词表层还是更深层的表示失配。
与已有工作不同的是,已有工作如 Litschko 等人 (2023) 与 Do 等人 (2024) 仅在跨语言或 bitext 检索等受限场景下使用代码混合数据;Winata 等人 (2024) 的 MINERS 关注语义对齐但任务范围窄;Zuo 等人 (2025) 揭示了 LLM 在直接处理跨语言双编码器输出时的失败,但未触及代码混合这一被严重低估的语言现象。论文的独特切入角度在于同时覆盖检索-重排序-聚类-分类-STS-对分类六类任务、横跨人工与 LLM 两种标注方式,并将词表扩展这一具体干预纳入因果分析,从而把"代码混合是 IR 的脆弱性瓶颈"从直觉升级为带量化证据的论断。
核心方法
论文方法可理解为"先揭露、再缓解"的三阶段框架:阶段一用人类双语标注者将原始英查询改写为中-英或日-英混合形式,构成 CSR-L;阶段二用 LLM(MiMo-V2-Flash)批量生成更大规模的 CS-MTEB,覆盖 11 个任务;阶段三提出基于双语词典的词表扩展方法,把英文检索器中目标语言词嵌入初始化为源语言翻译嵌入的均值。整体技术路线围绕"构造混合查询→在多种检索范式上评测→提出并评估低成本缓解策略"展开,最终目标是定位代码混合在词法、几何与语义三个层面的具体影响。
核心创新体现在两点。第一个是把"代码混合"从语言学话题转化为可量化的 IR 鲁棒性评测对象:通过同时控制语言对、查询侧混合(文档不变)和评测指标(nDCG@10 / p-MRR),把性能差异精确归因于查询端的语码转换。第二个是把词表粒度不匹配问题形式化为子词-词两级聚合:给定双语词典 $D=\{(w_t, w_s)\}$,先用源语言子词嵌入均值表示翻译词 $w_s$,再对所有翻译的均值作为目标词 $w_t$ 的初始化嵌入 $\mathbf{e}_{w_t}=\frac{1}{|N(w_t)|}\sum_{w_s \in N(w_t)}\mathbf{v}_{w_s}$,无翻译时回退到 $\mathcal{N}(0,\sigma^2)$,从而在不动主模型的前提下注入跨语言语义先验,这与已有"翻译投影"或跨语言对齐工作形成区别。
方法步骤详情
步骤一由三位精通英中日的研究者对 Touché 2020、HumanEval、TRECCOVID、FollowIR 四个基准共 455 条查询进行人工改写:一人先重写、第二人校验编辑或弃用,确保自然且保留信息需求,得到 CSR-L 中-英和日-英两个版本。步骤二固定查询侧混合、文档不变,使用 BM25、e5-large-v2、all-MiniLM-L12-v2、mE5-large、bge-m3、Arctic-Embed-m/l-v2.0、Qwen3-Embedding-0.6B/4B/8B 共 9 个双编码器,加 5 个跨编码器与 ColBERT v2,以 nDCG@10(FollowIR 用 p-MRR)报告差异。步骤三用 MiMo-V2-Flash 按精调提示模板批量生成 CS-MTEB,覆盖中、日、德、西等 9 种语言、11 个任务。步骤四词表扩展:对 all-MiniLM-L12-v2 和 e5-large-v2 用 MUSE 双语词典按子词→词→目标词两级聚合初始化目标词嵌入,再在 CSR-L 上重测。
技术新颖性
技术新颖性主要体现在三方面:(1) 在评测层面提出 CSR-L + CS-MTEB 双轨基准,前者保真度优先、后者规模优先,弥补现有 MINERS 等基准只覆盖有限任务的不足;(2) 在分析层面通过对 e5-large-v2 与 Qwen3-Embedding-0.6B 的查询嵌入做 PCA 可视化,把性能退化与"代码混合查询在嵌入空间中漂移成独立聚类"这一几何现象直接关联,多语模型质心距离仅 0.20 而英语模型达 0.25;(3) 在干预层面给出子词到词的层次化词嵌入初始化公式 $\mathbf{e}_{w_t}=\frac{1}{|N(w_t)|}\sum_{w_s}\frac{1}{|T(w_s)|}\sum_{k\in T(w_s)}\mathbf{e}_k$,明确处理词典词与子词词表的粒度不匹配,这一形式化虽借鉴自 Zeng 等人 (2023),但在代码混合检索语境下尚属首次系统验证。
实验结果
CSR-L 中文结果(Table 2)显示代码混合让所有检索器普遍退化:BM25 平均 nDCG@10 由 37.59 跌至 31.03(-6.56),ColBERT v2 跌 11.31,e5-large-v2 跌 11.90,Qwen3-Embedding-8B 仍 -3.68,体现"再大模型也不能免疫"。Touché 2020 上 BM25 由 60.32 跌至 37.68,e5-large-v2 由 42.52 跌至 22.88;HumanEval 因结构简单退化温和。多语模型明显更稳——控制规模时 Arctic-Embed-m-v2.0 比 e5-large-v2 跌幅小约 5 点——但仍不免疫。CS-MTEB(Table 3)扩展到 11 个任务后,e5-large-v2 在中日德西四种混合下总分由 55.91 跌至 40.70-45.00;日语重排序崩溃最严重,e5-large-v2 由 60.17 骤降至 25.75。Table 4 的词表扩展使 e5-large-v2 中文版平均分由 35.32 升至 43.50,但仍未追平单语水平。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| CSR-L 中文四基准平均(Touché+HumanEval+TRECCOVID+FollowIR) | nDCG@10 与 p-MRR 平均 | BM25 31.03 / ColBERT v2 31.26 / e5-large-v2 35.32 / Qwen3-Embedding-8B 66.20 | BM25 37.59 / ColBERT v2 42.57 / e5-large-v2 47.22 / Qwen3-Embedding-8B 69.88(原始英文查询) | 代码混合下分别退化 -6.56 / -11.31 / -11.90 / -3.68 个 nDCG 点;扩展最强模型仍存显著缺口 |
| Touché 2020 论证检索(中文-英文代码混合) | nDCG@10 | BM25 37.68 / e5-large-v2 22.88 / Qwen3-Embedding-8B 68.55 | BM25 60.32 / e5-large-v2 42.52 / Qwen3-Embedding-8B 75.77(原始查询) | 绝对下降分别为 22.64 / 19.64 / 7.22 点,论证类查询对代码混合最敏感 |
| CS-MTEB 11 任务综合(中文混合) | Macro Avg over 7 categories | e5-large-v2 40.70 / Arctic-Embed-m-v2.0 45.33 / Qwen3-Embedding-0.6B 57.24 | e5-large-v2 55.91 / Arctic-Embed-m-v2.0 54.62 / Qwen3-Embedding-0.6B 64.12(原始查询) | 代码混合导致最大约 15.21 点绝对下降;多语模型优于英语专用但仍退化 |
| CS-MTEB 日语重排序(AskUbuntuDupQuestions) | Task Score | e5-large-v2 25.75 / Qwen3-Embedding-0.6B 37.33 | e5-large-v2 60.17 / Qwen3-Embedding-0.6B 63.09(原始查询) | 崩溃式退化,绝对下降 34.42 / 25.76 点,是全文最严重单点退化 |
| CSR-L 词表扩展后中文版四基准平均 | nDCG@10 与 p-MRR 平均 | all-MiniLM-L12-v2 37.73 / e5-large-v2 43.50 | all-MiniLM-L12-v2 30.09 / e5-large-v2 35.32(未扩展) | 提升 +7.64 / +8.18 点,证明词表干预有效但远未追平单语水平 |
局限与改进
作者明确承认两个局限:一是语言与现象覆盖仅限英语与少量伙伴语言在查询侧的混合,未涵盖罗马化、拼写变体、社区约定以及文档侧混合等更广泛的代码混合现象;二是人工与 LLM 标注不可避免地引入风格噪声,尤其 LLM 生成的 CS-MTEB 查询可能存在系统性偏差,因此作者强调应关注跨模型的一致趋势而非单一数值。从我的观察补充三方面:(1) CSR-L 仅 455 条查询,统计显著性受限于样本规模,部分 FollowIR 上 p-MRR 仅小数点后两位差异难以严格归因;(2) 跨编码器评测使用全语料直接打分而非标准 retrieve-then-rerank 流程,导致 Table 2 绝对值与传统重排序基准不可直接比较,作者也明示这一警告但未提供一致框架下的对比;(3) 词表扩展仅在两个英语专用模型上验证,未触及多语模型与跨编码器,因此"词表覆盖不足"是退化"原因之一"而非"主因"的结论仍待更广谱的消融。
独立分析的弱点
独立分析可识别三个可改进方向:(1) 基线选择偏窄——未在 CSR-L 中加入 LLM-as-reranker、混合检索(BM25 + dense fusion)等近期强基线,因此无法判断"代码混合脆弱性"是否同样存在于这些范式;改进方向是引入 BM25+RRF 融合与 GPT-4/Claude 重排序基线。(2) 词典资源单一——词表扩展完全依赖 MUSE 词对齐,对低频词、长尾词与未登录词的初始化退化为随机高斯,对长尾混合查询可能反而放大噪声;改进方向是结合子词频率过滤与字符级 n-gram 回退,并对未登录词采用 sentence-level 对比学习微调。(3) 任务覆盖不对称——CS-MTEB 中聚类、STS、对分类任务的代码混合仅作用于文档或句子一侧,与 CSR-L 的查询侧混合策略不一致,可能低估或高估部分任务的真实影响;改进方向是统一"混合发生在哪一侧"的协议并报告按侧拆分的结果。
未来方向
作者在 Discussion 与 Limitations 中提出的方向包括:扩展到更多伙伴语言与文档侧混合、研究 LLM 直接处理多语双编码器输出时的代码混合鲁棒性、以及把代码混合作为独立语言模态构造专门训练数据。基于本文成果可进一步延伸的方向有:(1) 在统一框架下比较 rerank-then-translate、translate-then-rerank 与 native-rerank 三种流水线在代码混合查询下的差距;(2) 将词表扩展与 LoRA 微调结合,验证词表先验能否加速代码混合场景的适配;(3) 探索 retrieval-augmented code-switching prompting,即检索少量人工标注混合示例以增强 LLM 生成或重排序器;(4) 把 CS-MTEB 接入 MTEB 官方排行榜,长期跟踪模型演进对代码混合鲁棒性的影响。
复现评估
论文明确声明代码、数据集与 CS-MTEB/CSR-L HuggingFace 集合均公开,GitHub 仓库链接见原文;CSR-L 的人工改写流程、标注者资质、改写指令以及 LLM 提示模板均提供于附录 A 与附录 D,CS-MTEB 还附带 50 条生成查询的人工抽检(Table 19)。算力方面未给出明确 TPU/GPU 时长,但评测对象包括 Qwen3-Embedding-8B 与 Qwen3-Reranker-8B 等大体量模型,本地复现门槛偏高,建议借助 HuggingFace Inference Endpoints 或 vLLM 加速;最重计算的跨编码器全语料打分可能需要 A100 级别 GPU 数小时。复现难度整体中等:CSR-L 数据可直接复用,CSR-L 评测只需运行公开检索器脚本,CS-MTEB 评测沿用 mteb 框架;唯一难点是 MiMo-V2-Flash 生成 CS-MTEB 时的随机性需固定 temperature 以保证结果稳定。
论文图表