向量检索中的流行度偏见:为什么相同的五个文本块总是主导每个查询
· 阅读需 13 分钟
从任何成熟的 RAG 系统中提取一周的检索日志,并按分块(chunks)被返回的频率进行排序。其分布形态几乎总是相同的:一小部分分块出现在数千次查询中,而语料库中的绝大多数内容仅出现几次,甚至从未出现过。系统没有故障。它正在精准地执行索引构建时的预期功能 —— 而这恰恰是问题所在。
这就是向量检索中的流行度偏差(popularity bias),而且随着语料库的增长,这种情况会变得更加严重。少数分块变成了“引力井”,在互不相关的查询中频频胜出,而长尾内容则悄然消失在 top-k 截断值之下。你的 RAG 系统开始让人感觉“平庸” —— 用户提出具体问题,得到的回答听起来却像是为别人写的一样。等到产品部门开始投诉时,这种分布不均的情况往往已经持续数周了。
