ANN召回与速度权衡
约 60 分钟
ANN召回与速度权衡
先从一次真实检索开始
我们不先背名词。想象用户提交了一个查询,系统必须在有限延迟内,从明确语料中找出真正能完成任务的文档,并解释为什么这样排序。本节处理 ANN召回与速度权衡。先把用户任务、查询、文档单元、时间窗口和允许动作写清,避免把字符串匹配误当成相关性。
本节专属对象
近似最近邻用图、倒排量化等结构减少搜索,需用exact top-k衡量ANN recall。。请逐个指出对象属于查询侧、文档侧、语料统计、排序状态还是评价证据;同一个数字如果换了分母或语料版本,含义就会改变。任何实现都必须保存规则和版本,不能只留下最终排名。
公式从哪里来
在“ANN召回与速度权衡”中,核心关系是:ANNRecall@k=|ANN_k∩Exact_k|/k。。先解释每一项的输入、单位、取值范围和成立条件,再沿等号逐步计算。若分母为零、posting无序、标注缺失、权限变化或离线/线上版本不一致,应明确失败,而不是输出一个看似正常的分数。
老师带着算完例题
exact top10与ANN重合9篇,ANN recall@10=.9。。这个例子已经给出输入、中间计算和结论。现在只改变一个量,先预测排名或指标会向哪个方向变化,再复算;如果方向相反,就回到定义、对数底、归一化、位置编号和语料口径逐项排查。
把推导拆成可以检查的行
请把“ANNRecall@k=|ANN_k∩Exact_k|/k。”抄成不少于三行的计算链:第一行列原始输入和语料统计,第二行计算局部量或中间集合,第三行才得到分数、指标或候选。每一行右侧写出它依赖的前提。然后用“exact top10与ANN重合9篇,ANN recall@10=.9。”中的数值逐项代入,而不是直接写最终答案。检索题最常见的失误不是算术,而是把df与cf、字符与token、排名从0还是1开始、宏平均与加权平均、余弦与点积、候选召回与相关性召回混在一起。
完成“ANN召回与速度权衡”的正向计算后要做两次反查。第一次从结果返回输入:得分若增大,究竟是哪一个term贡献、字段boost、位置gain、概率或候选发生变化?第二次从原始文本返回结果:分词、规范化、权限、索引版本和查询解析中任一步改变,结论是否仍成立?本节还要用“只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。”检验反查链;只有能双向追到具体输入,公式才真正接到了系统上。
落到可执行算法
抽样query跑精确基准,扫描ef/probe等参数,画召回-延迟-内存曲线。。实现要输出关键中间证据,例如term、doc id、tf、df、位置、候选集合、逐项得分、相关等级或延迟阶段。只输出top-k而没有中间量,会让错误无法定位,也无法证明库函数配置正确。
复杂度与系统边界
同时写出时间、空间和I/O主要由哪个量控制:语料文档数、词表、posting长度、候选数、向量维度、分片数或top-k。算法在小语料正确,不等于在长posting、尾部查询、多租户和索引更新时仍满足延迟与一致性。
把本节实现放进完整链路再看一次:原始文档经过处理和索引,查询经过理解与召回,候选再经过过滤、排序与评价。“近似最近邻用图、倒排量化等结构减少搜索,需用exact top-k衡量ANN recall。”位于其中哪一段,它消费谁的输出,又为谁提供输入?如果它改变了候选集合,就必须同时检查recall;如果只改变次序,要做query级排名比较;如果改变权限或语料边界,旧的离线指标不能直接沿用。
“ANN召回与速度权衡”的实验报告至少保留语料hash、查询、索引/模型版本、参数、逐项中间量、最终top-k和运行时间。手算“exact top10与ANN重合9篇,ANN recall@10=.9。”证明实现语义,规模实验说明成本,再以“只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。”注入失败并说明边界;三类证据不能互相替代。库函数可以用于生产,但必须用本节专属算例确认配置确实实现了“ANNRecall@k=|ANN_k∩Exact_k|/k。”。
最短失败反例
本节反例是:只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。。请指出它破坏了哪一个前提,构造最小输入让错误显现,再给可执行修正和回归测试。不能只写“注意异常”,必须说明错误结果会漏召回、错排序、泄漏权限、夸大指标还是增加尾延迟。
在线练习与代码证据
本节绑定单选、多选、计算和严格文本推导;章节另有真实Python实验,每题至少四组测试。文本题按对象2分、公式与中间步骤3分、算完例题3分、失败边界与修正2分公开评分。
闭卷自检
合上正文后重建五项:对象“近似最近邻用图、倒排量化等结构减少搜索,需用exact top-k衡量ANN recall。”;核心式“ANNRecall@k=|ANN_k∩Exact_k|/k。”;算完的例题“exact top10与ANN重合9篇,ANN recall@10=.9。”;执行步骤;反例“只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。”。五项缺一项,就还没有学会《ANN召回与速度权衡》。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。
实现ANN召回与速度权衡时,哪条证据链最严格?本节失败边界是:只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。
围绕ANN召回与速度权衡完成可复算解答:解释对象“近似最近邻用图、倒排量化等结构减少搜索,需用exact top-k衡量ANN recall。”,逐行使用 ANNRecall@k=|ANN_k∩Exact_k|/k。 重算例题“exact top10与ANN重合9篇,ANN recall@10=.9。”,再针对失效边界只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。构造最小输入并给修正。
【评分量表】对象与口径2分;公式和中间步骤3分;例题数值3分;失败边界与修正2分。
完成ANN召回与速度权衡的检索设计与推导。
【量表】对象口径2;公式推导3;算例证据3;失败修正2。具体边界:只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。
完成ANN召回与速度权衡的检索设计与推导。
【量表】对象口径2;公式推导3;算例证据3;失败修正2。具体边界:只用业务relevance评ANN导致混入编码器质量;参数只在平均查询调。