学习记录
找到一样的,还是找到相关的?
从 jieba、BM25、BGE-M3 出发,用两个 recall 的集合演算理解匹配与相关性的差距。
一个检索系统可以忠实返回最相似的对象,却没有满足当前需求。要理解这个差距,可以先把几个常一起出现的名字放回各自的操作中。
从 jieba、BM25、BGE-M3 开始
jieba提供中文分词等能力,影响文本以什么单位进入后续处理。BM25根据查询词项、文档词频与长度等因素计算匹配分数;词频的增益不是无限线性增长。BGE-M3支持 dense、sparse 与 multi-vector 三种检索表示,已经提醒我们:“神经”与“词项”并不是一条只能二选一的分界。
先有可比较的表示与打分目标,再选择访问和排序方法。这些角色可以由同一个软件组合实现;上面的区分不规定一条唯一流水线。
原创设定中,查询“如何撤回旧授权”可能需要找到只写“取消先前权限”的内容;另一个查询“错误码 E17”却需要保住精确符号。前者让我们关心泛化,后者让我们关心约束。哪一种表示适合,取决于需求和材料。这个例子不报告任何模型的实测表现。
两个 recall,两个参照集合
设文档只有 a 到 h。针对当前需求,原创设定的相关集合为 R = {a, d, e, f}。给定向量及距离下,精确最近邻前三名为 N₃ = {a, b, c}。一个近似方法恰好返回 A₃ = {a, b, c}。
近邻集合召回在本例定义为 |A₃ ∩ N₃| / 3,因此是 3/3 = 100%。而针对信息需求:
Precision@3 = |A₃ ∩ R| / 3 = 1/3 ≈ 33.3%Recall@3 = |A₃ ∩ R| / |R| = 1/4 = 25%
索引完全恢复了设定中的精确邻居,却只取到一份相关文档。近似误差在这里为零,相关性差距仍然存在。这个演算只依据设定的集合,没有运行 embedding 或 ANN 软件,也没有把八个字母冒充真实语料。
Faiss 的搜索定义以给定向量和度量为对象;IR 的 precision 与 recall以相关判断与返回集合为对象。混用参照集合,会让同一个“召回率”回答不同问题。
精确率和召回率一定此消彼长吗
仍固定 R,把返回前三名改为 B₃ = {a, d, e}。此时 precision 是 3/3 = 100%,recall 是 3/4 = 75%。两者同时上升。固定返回数量和相关集合时,多找到一个相关对象,两个比例都会改善。
另一种情况是沿同一排序放宽返回数量。加入一份不相关文档会降低 precision 而不提高 recall;加入一份相关文档会提高 recall,precision 如何变化还取决于原来的比例。所谓取舍,需要说明改变的是阈值、预算、排序还是表示。
这个区别也防止我们把 lexical 与 semantic 的选择直接等同于 precision 与 recall 的取舍。前一组描述匹配机制,后一组描述评价结果;实际关系需要任务与数据来建立。
已经获得的理解与继续位置
现在可以把三个问题分开:有没有找到给定度量下的邻居,邻居是否与需求相关,返回的信息是否在后续任务里发挥作用。每一问都可以继续深入。
下一次可以从训练正负例入手:一项模型把什么当作相关,与使用者此刻需要什么,有哪些一致与差异?也可以先改变本例的需求,使相关集合变成另一组,观察同一排序为什么获得不同评价。正文中的演算已经足以独立阅读,网页演算只是方便比较的另一种呈现。
ORIGINAL TEACHING SET / 原创集合演算
换一个集合,看看比例怎样变化。
a–h、顺序与相关集合均为设定;这里没有执行 embedding、ANN 或模型检索。
深色底 = 已返回 · 下划线 = 需求相关
返回 {a, b, c} · 参考近邻 {a, b, c} · 相关 {a, d, e, f}
来源与实际阅读范围 · 5
官方资料
jieba 官方 README
分词确定后续处理所用的文本单位。
Features 与 Algorithm 的分词说明
阅读范围见定位;未运行相关软件或模型。
基础教材
Okapi BM25: a non-binary model
BM25 将词项匹配与词频、长度因素结合。
教材 §11.4.3,词频、文档长度与参数的说明
阅读范围见定位;未运行相关软件或模型。
官方资料
BGE-M3 documentation
同一模型提供多种检索表示,机制不宜按词项/神经简单二分。
Dense / Sparse / Multi-Vector 与 hybrid 说明
阅读范围见定位;未运行相关软件或模型。
官方资料
Faiss documentation
给定向量与度量界定搜索对象。
首页 What is similarity search? 与 index 说明
阅读范围见定位;未运行相关软件或模型。
基础教材
Introduction to Information Retrieval · Evaluation
评价必须明确相关集合与返回集合。
教材 §8.3,precision / recall 定义及其讨论
仅使用集合评价定义;未覆盖完整 IR 评价体系。
留下的理解
先说明分母
近邻集合与需求相关集合不同,100% 的近邻召回不保证需求得到满足。
同时改善是可能的
固定 k 和相关集合,找回更多相关对象可以同时改善 precision 与 recall。
a–h、排序与相关集合均为原创教学设定;只计算集合比例,没有运行 embedding、ANN、BM25 或 BGE-M3。
下次,从这里继续
训练正负例中的相关性,与当前的信息需求有什么差异?
区分评价对象以后,才能进一步解释表示为何匹配或失配。
过去怎样进入当下 ↗索引也能学习——究竟学了什么? ↗含当前正文、出处、阅读范围与接续线索;链接的全文不随包附带。