实战交叉编码器重排序:余弦相似度遗漏了什么
· 阅读需 11 分钟
你的RAG管道检索了前10个文档,但LLM的答案依然有误。你将检索数量增加到50,结果还是错的。令人沮丧的是:正确的文档一直都在向量数据库里——只是排在第23位。这不是召回率的问题,而是排序的问题,而余弦相似度正是罪魁祸首。
向量搜索在找到语义相邻内容方面做得不错,但"语义相邻"和"对这个具体查询最有用"并不是一回事。余弦相似度衡量的是嵌入空间中两个向量之间的夹角,而这个夹角只能捕捉粗粒度的主题接近度。它无法捕捉查询中特定词语与文档中特定词语之间的细粒度交互——"如何防止缓冲区溢出"与"缓冲区溢出利用技术"在向量层面差异微妙,但对于你的检索系统来说却至关重要。
