1998 年,两名斯坦福博士生谢尔盖·布林(Sergey Brin)和拉里·佩奇(Larry Page)在第七届万维网大会上发表了一篇论文,标题朴素得不像会改变世界:《大规模超文本网络搜索引擎剖析》。论文描述的是一个跑在斯坦福校园里、索引了约 2400 万个网页的搜索引擎原型——它的名字叫 Google。
那篇论文的核心思想——用网页之间的超链接来衡量权威性,而不只是统计关键词出现次数——是现代搜索引擎的起点,也是信息检索从图书馆学转型为大规模计算系统的标志时刻。
更早的评测传统来自克兰菲尔德(Cranfield)实验:固定一批文档、一批查询、一份人工相关性判断,然后比准确率和召回率。没有这份金标准,"更好"只是口感。TREC 从 1992 年起把同一套规矩放大到磁盘级语料,BM25 正是在那里站住的。Google 的链接分析没有取消相关性判断,它是在词项匹配之上再加一层权威性先验。查询似然乘上页面先验——贝叶斯那张更新表,在这里写成了排名。
破除误解:搜索不是"找到包含关键词的文档"
最朴素的信息检索系统只做一件事:找出所有包含查询词的文档。但这忽略了用户真正想要的东西:相关性和权威性。
- 一篇包含"苹果"100 次的文章可能是关于苹果公司,也可能是水果食谱。
- 两篇同样相关的文章,一篇来自专业学术期刊,一篇来自匿名博客——用户需要的是前者。
- 用户的查询"how do I fix this"背后的真实意图,可能完全无法从字面猜到。短查询是残缺的句子,检索系统必须补全说话人没写出来的上下文。点击、地点、上一查询,都是在估这条残句的先验。相关性不是文档的内在属性,是查询与文档在某个用户此刻的配对。换用户,同一对文档的分数可以反过来。这就是为什么个性化会提高满意度,也会让"同一条搜索"不再可复核——数字人文跨域在 HTTP 篇里已经碰过可引用性。检索把这个问题做成了产品。第一页就是法庭。不在前十,等于不存在。召回的理想在这里让位给注意力的配额。
信息检索研究的核心是:如何在计算上捕捉"相关性"的人类直觉?克兰菲尔德把直觉钉成三件套:文档、查询、二元相关。真实用户的相关是分级的、因人而异的、会随点击改变的。评测集是必要的谎言。没有谎言,系统无法迭代;把谎言当成用户,系统会过拟合标注员。TREC 的贡献是让谎言足够大、足够公开,算法才能互相打。Google 后来用点击把谎言换成更脏也更接近真实的信号。脏信号要纠偏,干净信号要承认它干净得不真实。
基础架构:倒排索引
现代搜索引擎的核心数据结构是倒排索引(Inverted Index):
- 正向索引:文档 → 它包含的词
- 倒排索引:词 → 包含它的文档列表(含位置信息)
对于一个包含数十亿文档的搜索引擎,倒排索引的大小和构建速度是根本的工程挑战。Google 在 2003 年发表的 GFS 和 2004 年发表的 MapReduce,本质上就是为了解决大规模倒排索引的构建和存储问题。词到文档列表必须能追加、能分片、能容一台机器挂掉。没有这层系统,向量空间模型只是康奈尔机房里的优雅公式。检索史是算法和仓库两本书合订:Salton 写相关性,Dean 与 Ghemawat 写怎么把相关性算完。
点击是隐式相关性,便宜但脏。标题党会赢点击,不等于相关。用点击训练排序,要把位置偏差拆开:排第一的本来就更容易被点。学习排序把人工标注和点击日志都当标签,标签的偏见会写进下一版公式。评测集一旦和线上分布错位,榜上的冠军会在真实查询上翻车。
相关性模型的演进
TF-IDF(词频-逆文档频率)是经典的词项权重模型:
其中 是词 $t$ 在文档 $d$ 中出现的频率,$N$ 是总文档数, 是包含 $t$ 的文档数。一个词在少数文档中频繁出现,权重就高;如果它出现在几乎所有文档中(如"的"、"the"),权重接近零。
IDF 这一半并非凭空而来。1972 年,英国学者 Karen Spärck Jones 在《Journal of Documentation》发表《A statistical interpretation of term specificity and its application in retrieval》,提出词的"专指度"应当统计地度量——一个词出现在越少的文档里,它对区分文档就越有价值。这就是 IDF 的思想源头。有意思的是,IDF 作为启发式用了几十年都很有效,但它的理论根基(为什么恰好是 )此后几十年里始终是研究者反复追问、试图用信息论重新解释的对象——一个"先有用、后有理论"的典型案例。工程上先能分开文档,论文再追问对数从哪来。搜索引擎史充满这种顺序:倒排索引、PageRank、BM25,都是先扛住评测再补哲学。神经检索把顺序反过来一点:先有预训练的语义空间,再问它为什么对释义查询更好。顺序一反,失败模式也换了——从词不匹配变成向量空间里的假近邻。
向量空间模型(Vector Space Model)把每个文档表示为词项权重向量,用余弦相似度衡量文档与查询的相关性。这是 Gerard Salton 在康奈尔大学主导的工作:他被称为"信息检索之父",其团队从 1960 年代起开发的 SMART 系统(System for the Mechanical Analysis and Retrieval of Text)是第一个采用向量空间模型的检索系统,标志性的论文《A Vector Space Model for Automatic Indexing》(Salton、Wong、Yang)于 1975 年发表。向量空间模型、相关性反馈、Rocchio 分类等一批沿用至今的概念,都诞生于 SMART 项目。
BM25(Best Match 25)是 TF-IDF 的改进版,通过文档长度归一化和词频饱和处理,解决了长文档被偏袒、以及词频线性叠加带来的失真问题。它并非凭经验拼凑,而是出自 概率相关性框架(Probabilistic Relevance Framework)——Stephen Robertson 与 Karen Spärck Jones 等人在 1970–80 年代发展的概率检索理论,并在伦敦城市大学的 Okapi 系统 中实现,于 1992 年首届 TREC 评测中得到验证("BM"即 Best Matching,"25"是该系列权重方案的第 25 号迭代)。尽管理论更现代的神经模型层出不穷,BM25 至今仍是大多数搜索引擎和检索基准的默认基线排名函数——一个三十多年不倒的工程标杆。
PageRank(1998 年,Page 和 Brin)把网络链接结构引入排名:一个页面被许多重要页面链接,它本身就更重要。这是一个递归定义,数学上等价于计算网络邻接矩阵的主特征向量(随机游走的稳态分布)。随机冲浪者会跳到随机页面,阻尼系数把死胡同变成可遍历。链接农场随后专门污染这张图,于是排名从公开公式变成不断打补丁的对抗。权威性一旦可被优化,就会被优化。
评测上,准确率问前 k 条里有多少相关,召回率问相关的有没有被找齐。两者打架:把库倒出来召回是 1,准确率接近 0。搜索引擎把战场放在第一页,所以更常优化前十的准确与 NDCG,而不是把所有相关文档挖尽。用户也很少翻到第二页。目标函数跟着注意力走,不是跟着图书馆员的完备性理想走。
神经检索:从稀疏到稠密
传统检索依赖精确词项匹配——用户必须用上和文档一样的词。神经网络改变了这一点:
稠密检索(Dense Retrieval)用深度学习把查询和文档都编码为高维稠密向量,相似的含义在向量空间中距离相近。即使词汇不重叠(用户搜"狗",文档写"犬"),语义相似的文档也能被找到——这正是 BM25 这类稀疏词项模型做不到的。这条路线的技术拐点是 BERT(Devlin 等,2018 年提出、2019 年正式发表):预训练语言模型让"把一段文字压成一个有语义的向量"第一次变得既准又通用。稠密检索会找回同义,也会找回听起来像的噪音。稀疏模型至少要求字面上撞车,稠密模型把撞车交给训练数据里的邻近。评测必须同时看旧词项查询和新的释义查询,否则 BERT 的赢只是换了赛道。工业上常见的是两路召回再融合:BM25 保字面,向量保同义,学习排序当裁判。
双编码器(Bi-Encoder)分别编码查询和文档,离线预计算所有文档向量,检索时只需做近似最近邻搜索(Approximate Nearest Neighbor,ANN)——效率与效果都大幅提升。Facebook(Meta)的 DPR(Dense Passage Retrieval,2020)是这一范式的代表工作。但稠密检索带来一个新的工程难题:在数十亿个高维向量里精确找最近邻,代价高到不可行。Meta 在 2017 年开源的 FAISS(Facebook AI Similarity Search)正是为此而生——它用量化、倒排等手段在"内存—速度—精度"三者间权衡,把十亿级向量的相似检索做到可用,是今天几乎所有向量数据库背后的基础设施。
学习排序(Learning to Rank, LTR)则换了个思路:与其手工设计一个排名公式,不如把排序当成监督学习问题——用大量"查询—文档—人工相关性标注"训练一个模型,让它从成百上千个特征(BM25 得分、PageRank、点击率……)里学出排名。微软研究院的 RankNet(2005)、LambdaMART 是这条线的代表,后者长期是工业界搜索排序的主力,也直接把信息检索接入了 machine-learning-overview 的方法论。
RAG(Retrieval-Augmented Generation)由 Lewis 等人在 2020 年提出,2023 年随着大语言模型的爆发才真正成为主流:先检索相关文档,再让语言模型根据这些文档生成回答。它让信息检索从"返回一串链接"升级为"返回一个有出处的答案",是当前搜索与 AI 融合的主线。
评估指标
| 指标 | 含义 |
|---|---|
| Precision@K | 前 K 个结果中相关文档的比例(查准) |
| Recall@K | 相关文档中有多少被检索到(查全) |
| MAP | 平均精度均值,对每个查询在各相关文档处的精度求平均,再跨查询取均值 |
| NDCG | 归一化折扣累积增益,考虑结果排名位置 |
| MRR | 平均倒数排名,衡量第一个相关结果出现的位置 |
这里藏着信息检索最根本的一对张力:查准率(precision)与查全率(recall)的权衡。想把所有相关文档都捞回来(高 recall),就难免混进无关结果(低 precision);想让返回的每一条都精准(高 precision),又容易漏掉一部分相关文档(低 recall)。一个搜医学文献的研究者宁可多看几篇无关的,也不能漏掉关键论文(偏 recall);而一个搜"今天天气"的普通用户只想要最靠谱的那一条(偏 precision)。正因为单一指标会掩盖这种权衡,MAP 和 NDCG 这类对整个排序列表打分的指标才成为现代检索评测(如 TREC)的主力——它们同时奖励"把相关文档排在前面"和"别漏掉相关文档"。
代价与争议
过滤泡沫(Filter Bubble):个性化搜索让每个用户看到一个为自己定制的信息宇宙。Eli Pariser 在 2011 年《过滤泡沫》一书中警告,这会加剧信息茧房,强化既有偏见。反驳者认为,无个性化搜索同样存在偏见(只是偏向多数人的偏好)。
SEO 军备竞赛:搜索引擎排名算法是黑箱,催生了整个搜索引擎优化(SEO)产业——数十亿美元的努力专门用于让内容在算法中排名靠前,而非让内容本身更好。这是信息检索系统对内容生态的负外部性。
查询理解的边界:当用户问"我明天需要带伞吗",正确回答需要知道用户的位置、时间、天气数据。语义搜索已经在理解意图,但与人类图书馆员的理解能力相比,差距仍然存在。
跨域连接
- 信度与效度:检索评测的地基是人工相关性判定,而「相关」是构念不是自然量:同一份文档,换个标注者或换个任务表述就可能换标签。推论很实际——系统间的细小指标差异可能整个落在标注噪声里,因此评测必须报告标注一致性与显著性,否则排行榜上的名次差别不可解释。
- 特征值:PageRank 把重要性定义成递归的,数学上等价于求转移矩阵的主特征向量,也就是随机游走的稳态分布。阻尼因子在这里做两件事:让马尔可夫链不可约且非周期,从而保证稳态唯一;同时压低第二特征值的模,从而决定幂迭代收敛多快。调它既是在调语义,也是在调算力。
- 数据库索引与查询优化:倒排索引与 B 树索引解决同一个问题——把全表扫描换成按谓词跳过。分歧在查询语义:布尔匹配可以直接求交,打分排序却要看完整条倒排链才知道谁最高。因此检索必须引入提前终止与上界剪枝,而只有能给出剩余文档得分上界的排序函数才做得到这一点。
- 媒介与公共领域:排序器决定可见性,于是内容生产会向排序信号适应。这给出一条可检验的规律:任何被公开并被优化的排名信号,判别力都会随时间衰减,链接因此从自然投票变成可购买的商品。搜索引擎优化产业不是系统之外的滥用,而是把评分函数暴露给有激励的参与者之后的均衡。
- 语义学:稠密检索能跨词形匹配,是因为它把「意义相近」操作化成向量邻近,而向量来自分布——出现在相似上下文里的词被拉近。这条捷径有可预测的失效方向:反义词的上下文高度相似,涨与跌因而常被判为相近。所以稠密召回通常要靠词项精确匹配或重排阶段,补回被抹掉的区别。
参考文献
- Spärck Jones, K. A Statistical Interpretation of Term Specificity and Its Application in Retrieval. Journal of Documentation, 28(1), 1972.(IDF 思想源头)
- Salton, G., Wong, A., Yang, C. S. A Vector Space Model for Automatic Indexing. Communications of the ACM, 18(11), 1975.(向量空间模型奠基论文,源自 SMART 系统)
- Page, L., Brin, S., Motwani, R., Winograd, T. The PageRank Citation Ranking: Bringing Order to the Web. Technical Report, Stanford, 1998.
- Manning, C., Raghavan, P., Schutze, H. Introduction to Information Retrieval. Cambridge University Press, 2008.(可免费在线获取,信息检索入门经典)
- Karpukhin, V. et al. Dense Passage Retrieval for Open-Domain Question Answering. EMNLP, 2020.(DPR 论文)
- Lewis, P. et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS, 2020.(RAG 奠基论文)
- Robertson, S. & Zaragoza, H. The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in IR, 2009.