先这样答
解决新旧文档分布不一致导致的检索偏差,核心是提高新文档在检索阶段的权重。在实际业务中,新文档往往占比小。数量庞大的旧文档会在向量空间里淹没新文档。这会导致用户查询新政策时,系统检索不到最新内容。处理这种偏差主要有三种方法。
第一种方法是引入时间衰减因子。系统在计算检索相似度得分时,直接给新文档加权。第二种方法是按版本分库索引。工程实现上把不同时期的文档存入独立的向量库。第三种方法是结合查询意图进行路由。系统先判断用户的查询是否带有时效性意图。如果包含时效性意图,检索器优先将请求路由到新文档库。
优化检索策略后必须进行针对性评估。开发人员需要单独建立一个时效性测试集。这个测试集专门用来验证新政策的召回率。整体评估指标容易掩盖新文档检索失败的问题。单独建集可以准确衡量时间加权和分库路由的实际效果。
面试官会怎么追问
-
「时间衰减因子具体怎么加权?」 系统在原始向量相似度得分的基础上乘以一个时间函数。距离当前时间越近,函数返回值越大。开发人员需要调节衰减参数,防止旧版本里的核心文档得分过低。
-
「怎么判断查询意图里有没有时效性?」 系统可以通过大模型进行意图识别。大模型负责分析查询词中是否包含时间副词或最新政策相关的表述。识别到相关意图后,系统直接修改检索路径去查最新版本的索引库。
-
「为什么要单独建时效性测试集?」 新文档在总知识库中的占比非常小。新文档检索失败对总测试集准确率的影响微乎其微。单独建集能准确暴露系统在新政策召回上的缺陷。
回答的坑
只提修改向量相似度计算逻辑,忽略按版本分索引这种基础的工程手段。
忘记提及建立专门的时效性测试集,导致优化方案缺乏可衡量的评估环节。
同系列的题