PersonalQuery-Benchmark:Evaluating Retrieval Robustness to Personalized User Expression Differences

Wenyu Liang, Hongzhi Yin, Tongtong Wu, Fan Liu, Kexin Dai, Weiqing Wang · arXiv 2610.32164 · 发表 2026-10-23
10 分钟阅读时长 3751字 4.40综合分 第 3 名10-26 AI Search 日报
目录 · 7 节1它到底在解决什么问题?2基准怎么构造3结果一:只改句子结构,命中情况就会变4结果二:用户自己的拼写错误会稳定拉低效果5我认为的局限6一个团队可以怎么试7一句话结论
相关 5新颖 3实用 5证据 4时效 5

两个用户想买同一件商品,一个写“我要草莓味、无乳糖的希腊酸奶”,另一个写“我在找一款希腊酸奶,它是草莓味的,而且无乳糖”,还顺手把一个词拼错了,搜索结果会一样吗?这篇论文用亚马逊三个品类的真实用户评论做了一个基准 PQB,专门测这种“同一需求、不同说法”。结论是会不一样,而且差得不少。保证 5 个核心商品词完全相同、只改句子结构时,在至少有一条查询把目标商品排进第 1 名的查询对里,7 个检索方案中有约 27% 到 52% 的情况是另一条没排进去。按用户自己的打字习惯加入拼写错误后,前 20 条的命中率最多降低 12.3 个百分点(BM25),混合检索 BGE-M3 降得最少,只有 4.9 个百分点;整体效果更好的模型不一定更稳。

做电商搜索或问答检索的团队可以借这个评测思路,在上线前检查自己的系统对用户说法差异有多敏感。最有用的结论是“效果好不等于稳”:两个大模型重排序在命中率上最好,但被拼写错误拖累的幅度和 BM25 差不多,因为它们只重排 BM25 召回的前 25 条。不足是查询全部由一个 5 亿参数的小模型生成再挑选,不是用户真实写的;“个性化”的部分也主要体现在挑选和加错的方式上,检索结论本身和随机改写的差别论文没有比较。

它到底在解决什么问题?

个性化检索通常关注“用户想要什么”,比如偏好、历史行为和意图。这篇论文关注的是另一面:“用户怎么说”。同一个需求,有人习惯短句罗列属性,有人习惯完整从句;有人从不打错字,有人总是把相邻字母颠倒。这些差异和需求本身无关,但会影响检索。

难点在于缺少评测数据。真实查询日志里很少有稳定的用户身份和长期的写作历史,也很难找到“需求完全相同、只是说法不同”的查询对。PQB 的目标就是人工造出这样的查询对,并让每条查询的说法尽量像某个真实用户。

论文图 1:同一个酸奶需求的两种说法。上面一句是简单的属性罗列,下面一句用了“I am looking for”开头和关系从句,并把 lactose-free 拼成了 lacseto-free(两个字母颠倒)。两句都包含品牌、口味、无乳糖和价格这几个核心信息。
论文图 1:同一个酸奶需求的两种说法。上面一句是简单的属性罗列,下面一句用了“I am looking for”开头和关系从句,并把 lactose-free 拼成了 lacseto-free(两个字母颠倒)。两句都包含品牌、口味、无乳糖和价格这几个核心信息。

基准怎么构造

数据来自亚马逊评论 2023 版,选了乐器、电子游戏和婴儿用品三个品类。用户评论过的商品就是检索目标,商品的标题、描述和特点拼起来作为被检索的文档。

第一步是给每个用户建“句法画像”。作者从用户的历史评论里抽取句法结构规则,比如“名词被形容词修饰”这类依存关系和连续三个词性的组合,每句评论变成一个约 2.2 万维的稀疏向量。再训练一个编码器把它压到 16 维,训练目标是让同一用户的句子靠近、不同用户的句子分开。最后用每个用户历史句子的 16 维向量拟合一个高斯分布,作为这个用户的句法习惯。

第二步是生成候选查询。对每个商品固定 5 个核心检索词,用 Qwen2.5-0.5B 生成大量第一人称的购物查询。每条查询必须恰好包含这 5 个词各一次,不能加入新属性,只能改变虚词、修饰方式和从句结构。同一商品保留下来的查询两两之间,用 all-mpnet-base-v2 句向量模型算出的余弦相似度要不低于 0.9,保证意思几乎一样。

第三步是给两位用户各挑一条查询。对某个商品,一条候选查询算作“属于”用户甲,要满足三个条件:它到甲的高斯分布中心的马氏距离落在 95% 的接受区域内(16 维卡方分布的 95% 分位数 26.3);它到乙的分布中心落在接受区域外;它在甲分布下的对数概率密度比在乙分布下至少高 1。在两人都有合格查询的用户对里,作者选两个高斯分布差异最大的一对,差异用同时考虑中心距离和协方差差异的巴氏距离衡量。然后给每人挑一条在自己分布下概率密度最高的合格查询。这样每个商品得到两条说法差异明显、内容相同的查询。

第四步是加拼写错误。先用语法纠错工具把用户历史评论改正,再比对原文和改正后的文本,统计这个用户常犯哪类错误(比如字母颠倒、字母重复、键盘上相邻键打错)。然后改写这个用户的查询:只改 3 个字母以上的词,优先改这个用户历史上字符出错率更高的词,每条查询最多改 3 个不同的词。对选中的词,先在这个用户的历史错误里找可以照搬的字符改法,优先选出错词的依存关系和词性与当前词一致的那一条。比如他曾在同样的句法位置把两个字母写反,就把当前词也写反;找不到可复用的错误时,再按他各类错误的出现频率抽一种来改。改完后和原查询的句向量相似度仍要不低于 0.9,否则丢弃。

论文图 2:构造流程。上面一行从用户评论历史学出句法高斯分布;中间一行从商品信息生成候选查询、挑出个性化句法查询,再按用户的错误习惯加拼写错误,得到“干净查询和带错查询”的配对;下面一行是质量验证和检索评测。
论文图 2:构造流程。上面一行从用户评论历史学出句法高斯分布;中间一行从商品信息生成候选查询、挑出个性化句法查询,再按用户的错误习惯加拼写错误,得到“干净查询和带错查询”的配对;下面一行是质量验证和检索评测。

最终基准有 6516 条查询:3654 条个性化句法查询,以及其中 2862 条成功生成的带拼写错误版本。

质量方面,人工评测的自然度是 4.21 分(满分 5 分)。另一项测试先给标注者看用户的历史评论。再给两条商品和核心属性都相同、只有句式不同的查询,一条按这个用户的句法画像挑出,另一条是对照查询,顺序随机。标注者要选哪条更像这个用户写的,选中个性化查询的比例是 66.3%,随机猜是 50%,说明挑出来的查询确实带有可辨认的个人句法习惯。

结果一:只改句子结构,命中情况就会变

作者测了 7 个检索方案:BM25、SPLADE(学习型稀疏检索)、GTE-base(稠密向量)、ColBERTv2(逐词交互)、BGE-M3 混合检索,以及在 BM25 前 25 条结果上做重排序的 Llama-3.1-8B 和 Qwen3-Reranker-8B。

主要指标是翻转率:在至少有一条查询命中前 K 名的查询对里,只有一条命中的比例。比如翻转率 40% 意味着,只要有一个用户能在第 1 名看到目标商品,另一个用户有四成概率看不到。

检索方案第 1 名翻转率前 10 名翻转率前 20 名命中率被拼写错误拉低
BM2541.7%27.8%12.3 个百分点
SPLADE26.6%12.5%5.9 个百分点
GTE-base40.4%24.1%6.2 个百分点
ColBERTv252.2%36.4%7.1 个百分点
BGE-M3 混合检索36.3%19.2%4.9 个百分点
Llama-3.1-8B 重排序42.0%27.8%12.0 个百分点
Qwen3-Reranker-8B 重排序43.3%24.9%11.4 个百分点

上表是三个品类的平均值。所有方案的翻转率都不为零,说明光是句子结构不同就能改变结果。SPLADE 最稳,ColBERTv2 最不稳。ColBERTv2 逐个比较查询和文档里的每个词,虚词和从句结构也会参与打分,这可能是它对句式最敏感的原因,但论文没有做专门的验证。翻转率也不是随 K 增大而单调下降的,所以只看一个截断位置不足以判断稳定性。

结果二:用户自己的拼写错误会稳定拉低效果

拼写错误的影响是单向的:7 个方案在所有截断位置上的命中率和 MRR 都下降了。BM25 下降最多,因为一个字母错了这个词就完全匹配不上。BGE-M3 混合检索同时用稠密向量、稀疏权重和逐词交互三种信号,下降最少。

值得注意的是两个大模型重排序。它们在干净查询上的命中率是 7 个方案里最高的,比如婴儿用品类前 5 名命中率两者都是 38.4%,BM25 是 32.2%,GTE-base 只有 16.1%。但拼写错误带来的下降和 BM25 几乎一样。原因在配置里:它们只重排 BM25 召回的前 25 条,目标商品一旦因为错字没被 BM25 召回,重排序模型再强也看不到。另外,前 20 名的下降普遍比第 1 名大,说明错字的伤害不只发生在排序最前面。

我认为的局限

第一,查询不是真实用户写的。所有候选查询都由 Qwen2.5-0.5B 在严格约束下生成,再按用户画像挑选。真实用户的说法差异可能更大,比如会漏掉核心词或加入无关信息,而这些在 PQB 里都被禁止了。

第二,缺少“随机改写”对照。论文验证了个性化的拼写错误比全局统计或随机加错更像目标用户,但在检索评测里没有比较“按用户习惯改写”和“随机改写”对检索的影响是否不同。所以“个性化”对检索结论的增量还不清楚。

第三,评测规模偏小,绝对命中率也不高。婴儿用品类只有约 400 条查询;在这个品类里,最好的方案前 20 名命中率也只有约 53%。翻转率只在至少一条命中的查询对上统计,分母因方案而异,不同方案之间的比较需要谨慎。

一个团队可以怎么试

  1. 从自己的线上日志里找“点击了同一个商品”的不同查询,按句式和是否有错字分组,计算类似的翻转率,看看线上系统有多敏感。
  2. 如果用 BM25 召回加大模型重排,单独评估错字查询的召回率;可以考虑在召回阶段加入稠密向量或拼写纠正,而不是只靠重排序。
  3. 比较不同召回方案时,除了平均命中率,再报告一个稳定性指标,比如同一需求的不同说法之间的结果一致性。
  4. PQB 的代码和数据已经公开,可以直接用它的三个品类做一轮离线评测。

一句话结论

同一个需求换一种句式或带上用户惯常的错字,检索结果就会明显变化;混合检索最不怕错字,而效果最好的大模型重排序并不更稳,因为它受限于 BM25 召回。

维度评价
问题重要性中高。电商和问答搜索都会遇到用户说法差异
方法创新性中。用句法高斯画像和个人错误习惯构造查询对,设计细致
实验证据中。7 个方案、3 个品类、人工验证,但查询是生成的,也缺少随机改写对照
工程成本低。代码和数据公开,可直接做离线评测
是否值得尝试值得借用翻转率这个指标检查自己的检索系统

读完这篇,你觉得

点一下即可,无需登录;再点一次撤回。只统计匿名次数,不记录你是谁。

讨论

欢迎补充实验细节、复现经验或不同看法。需 GitHub 登录。

正在加载讨论…