Croft-Harper 1979 — 没有相关性反馈也能跑概率检索
待复核这篇论文解决了 1976 年 Robertson-Sparck Jones 概率检索模型(BIM,二元独立模型:只看词出现/不出现)的冷启动问题:原版要知道每个查询词在”相关文档”里出现的概率,但新语料上往往没有标注。Croft 和 Harper 的做法是——先假设”相关概率”对所有词是同一个常数(典型 0.5),这一项在排序里变成常数被消掉,剩下的只跟”含该词的文档数”有关,也就是 IDF 的概率版本;再叠一个简单的文档内词频(tf)项,BIM 第一次能在零相关性数据下跑。
日常类比:一桌子菜没人尝过。Robertson-Sparck Jones 说”按好吃概率排序最优”;Croft-Harper 说”那就先假设大家口味一样、都给中位数,反正排序时常数会被消掉”。粗暴,但排序往往够稳。
工程意义:概率 IR 不再是”有标注才能玩”的玩具,可以直接铺到新语料上做第一版排序。今天你在 Elasticsearch / Lucene 里碰到的 BM25 默认排序,IDF 那一项的概率血统,很大一部分要追到这里。
不理解 1979 这步近似,下面这些事都没法解释:
- 为什么 BM25 的 IDF 常写成
log((N-df)/df)一类形式,而不是纯频率论的log(N/df)——前者走概率推导这条线 - 为什么零反馈设定下 BIM 终于能进实用系统(1976 公式本身估不出相关概率)
- 为什么 Croft 后来在 UMass 建的 CIIR 能影响多年 IR 研究——本文是其开山级工作之一
- 为什么 1994 年 BM25 能”接力”——它主要替换本文的线性 tf,IDF 形式大体沿用
一句话:没有 1979 的”先能跑”,后面 1994 的”跑得更好”就没有可替换的底座。
读完本文再看 BM25,建议只盯一件事:哪些项被保留、哪些项被替换。保留的是概率 IDF 气质;替换的是 tf 形状与长度归一。
把”能跑的近似”和”更准的曲线”拆开看,IR 史会清晰很多。
1976 的概率排序原理(PRP:按相关概率排序最优)说:按 P(相关 | 文档) 排最好。展开后,每个查询词要估两个量:
- p_i:词出现在相关文档里的概率(像”好菜里出现香菜的概率”)
- u_i:词出现在不相关文档里的概率(像”普通菜里出现香菜的概率”)
冷启动时没人告诉你哪些文档相关,p_i 估不出来,BIM 就瘫痪。
- 假设所有词 p_i 相同(典型 0.5):这一项对排序无影响;u_i 用语料估成 n_i / N(含该词的文档数 / 总文档数),权重变成
log((N-n_i)/n_i)——IDF 的概率版。类比:先假设”口味中位数”,让未知项闭嘴。 - 补上线性 tf:原版 BIM 只看出现/不出现;本文让文档内出现次数越大得分越高。类比:菜单里写了五次”特供”,比写一次更显眼(但也更容易刷屏)。
- coordination level(协调级 / 命中几个词):用
C · |Q ∩ D|给”命中几个查询词”显式加分。类比:点了两道菜名都对上的店,比只对上一道的更靠谱。
最终骨架可以记成:
score(Q, D) ≈ C · |Q ∩ D| + Σ tf(q, D) · log((N - n_q) / n_q)不用背公式,记住两块:覆盖度 + 概率 IDF × 词频。常数 C 只是在两块之间调音量。
案例 1:p_i = 0.5 怎么变成 IDF
Section titled “案例 1:p_i = 0.5 怎么变成 IDF”BIM 词权重是 log((p_i (1-u_i)) / (u_i (1-p_i)))。逐步代入:
- 令 p_i = 0.5 → 分子分母各有一个 0.5,消掉后变成
log((1-u_i)/u_i) - 用全集近似不相关集:u_i ≈ n_i / N
- 得到
log((N-n_i)/n_i)
这就是 IDF 概率版。后来 BM25 沿用同类形式,并常加 +0.5 平滑,避免 df 极端时数值难看。
为什么这一步叫”概率版”而不是”数词频”?因为它从 BIM 的比值权重推出来,目标是逼近按相关概率排序;Salton 路线则是把文档当成向量做夹角。两条路后来在工程里都叫过 TF-IDF,但考试/论文里最好分开说。
案例 2:三篇文档手工算个迷你排序
Section titled “案例 2:三篇文档手工算个迷你排序”查询只有一个词 优化器。设语料 N = 100,该词 df = n = 10,则 IDF 项 log((100-10)/10) = log(9) 对三篇相同。三篇文档的 tf 分别为 1、3、50:
| 文档 | tf | 1979 风格(∝ tf·IDF) | BM25 饱和 tf(示意) |
|---|---|---|---|
| A | 1 | 约 1× | 约 1× |
| B | 3 | 约 3× | 略高于 1×,远不到 3× 的”无限涨”感 |
| C | 50 | 约 50× | 停在小个位数倍附近 |
跟做结论:冷启动时 IDF 拉开”稀有词”,线性 tf 拉开”同词多写”;刷词频会在 1979 公式里几乎线性上分,这正是 1994 要修的点。若你在笔记本上只改 tf、不动 N/df,排序名次就会跟着刷词文档往上爬——这是可复现的直觉实验。
案例 3:coordination level 管覆盖度
Section titled “案例 3:coordination level 管覆盖度”查询 深度学习 优化器:
- 文档 A 两词都有 →
|Q∩D| = 2 - 文档 B/C 各中一词 →
|Q∩D| = 1
C·|Q∩D| 显式给 A 加分。BM25 用对每个查询词求和来隐式覆盖;本文把”命中几个词”写成单独一项,教学上更好看见”覆盖度”这个旋钮。调大 C,系统更偏爱”词都命中”的文档;调小 C,更听 tf-idf 的话。
- 当成普通 TF-IDF 同义词:Salton 向量空间的 TF-IDF 来自几何相似度;本文来自 BIM 概率推导。形式像,来历不同——混谈会把两条历史线拧成一股。
- 忽略 coordination level:教材常只讲
Σ tf·IDF,但原文是 coord 项与 tf-idf 项并列;漏掉就读不懂论文公式里的 C。 - 以为 p_i = 0.5 是乱猜:其实是故意让该项不影响排序的工程让位,不是声称”所有词同等相关”。
- 以为 1979 就等于 BM25:1979 是概率 IDF + 线性 tf;S 形 tf 与长度归一要等 1994。Lucene 把 BM25 设为默认 Similarity 是 Lucene 6.0(2016),不是 2009。
补充记忆法:看见 log((N-df)/df) 先问”有没有 +0.5、有没有长度归一”——有,多半已是 BM25 家族;没有且 tf 还在线性涨,更接近 1979 这篇的教学骨架。
适用 vs 不适用场景
Section titled “适用 vs 不适用场景”适用:
- 没有相关性反馈的字面检索(多数冷启动语料、内网文档库第一版)
- 教学:解释 BM25 的 IDF 为何不是单纯
log(N/df) - 对比 IR 两条线——向量空间(几何)vs 概率排序(PRP)
- 需要一个可解释、可手算的排序基线,再往上叠学习排序或向量召回
不适用:
- 要语义/同义词/跨语言匹配 → dense retrieval
- 现代神经检索(embedding / cross-encoder)——已不基于 BIM
- 短查询 + 很长文档且无长度归一 → 本文未做文档长度校正,需 1994 及以后的 BM25 变体
- 已有大量点击/标注反馈时,应走带反馈的概率模型或学习排序,而不是停在 p_i=0.5
历史小故事(可跳过)
Section titled “历史小故事(可跳过)”- 1972 年:Sparck Jones 提出频率论 IDF(
log(N/df)一类) - 1976 年:Robertson + Sparck Jones 形式化 PRP 与 BIM——但依赖相关性反馈
- 1979 年:本文假设 p_i 常数,BIM 在零训练数据下可跑
- 1980s:Croft 在 UMass Amherst 建 CIIR,影响后续 IR 研究
- 1994 年:Robertson + Walker 用 S 形 tf + 长度归一 → BM25
- 2016 年:Lucene 6.0 默认 Similarity 切到 BM25——概率 IDF 这条线进入更广的工程默认
- “假设错了但排序对了”可以是合法策略——让未知项变成对排序无影响的常数
- 桥梁论文只动一处:1976 不能跑 → 1979 能跑 → 1994 跑得更稳
- 理论与工程接力:好看的公式要先能部署,再谈曲线拟合
- 零训练 baseline 寿命长:BM25 仍常守第一道闸,根子有一部分在 1979 的 IDF 近似
- 读公式先问”哪一项在没数据时估不出”——本文的贡献正是把那一项变成对排序无害的常数
- 论文:Using Probabilistic Models of Document Retrieval Without Relevance Information(Journal of Documentation 1979)
- 综述:Robertson 2009《Probabilistic Relevance Framework: BM25 and Beyond》——串起 1976/1979/1994
- 教科书:Manning et al.《Introduction to Information Retrieval》第 11 章 PRP
- okapi-bm25-1994 —— 接力线性 tf,换成 S 形分式
- bm25-okapi —— BM25 工程视角
- salton-vsm-1975 —— 另一条线:向量空间与频率论加权
- okapi-bm25-1994 —— 1994 用 S 形 tf 接力本文;本文是 BM25 直接前身之一
- bm25-okapi —— BM25 工程视角;IDF 项可追溯到概率推导线
- bm25 —— BM25 概念总览
- anserini-2017 —— 学术复现工业 BM25 的实验台
- salton-vsm-1975 —— VSM/TF-IDF 几何路线,便于对照”形式像、来历不同”
- elasticsearch —— 默认排序常走 BM25,工程上能摸到这条历史线
- bm25 —— BM25 — 用概率框架给搜索结果排队