检索靠字面重合,还是学出来的向量?
公平比较检索器,要固定问题、文档库和判据,只换一个部件。
这一页为什么在这里
第二个决策点:知识放在外面以后,第一件事是“取”。2020 年春,检索靠字面重合(BM25),还是学出来的向量(DPR)?先让学生押,再让学生说“怎么比才公平”:同一批问题、同一个文档库、同一个判据,只换检索器。这是方法线的第二招:只换一个部件,差别才算得到它头上。
上屏
- 第 1 步:两栏。左「字面重合(BM25)」:问题和段落都看成一袋词;共有的词越多、越少见,分越高;几十年来最强的基线。右「学出来的向量」:问题和段落各变成一个向量(第三讲那一招),意思近的离得近;用词不同、意思相同也能找到;2020 年以前在开放域问答上没有稳赢 BM25。底部:2020 年春,要在 2,100 万段维基百科里检索,你押哪个?
- 第 2 步:题面“怎么比才公平?”四行对照框:同一批问题(Natural Questions:真实的搜索问题)|同一个文档库(2,100 万段维基百科,每段 100 词)|同一个判据(取回的前 20 段里有没有答案)|只换:检索器(高亮)。
讲
第 1 步 · 教师可说的话
在两种检索方案之间押注
知识放在外面,第一件事是“取”。2020 年以前,取靠字面重合,BM25 这类方法用了几十年,又快又稳。学出来的向量早有人试,意思相近就能找到,哪怕用词不同;但在开放域问答上一直没稳赢。2020 年春天,换你来给两千多万段维基百科做检索,押哪个?
指图与比较
在两种检索方案之间押注
第 2 步 · 教师可说的话
设计公平的部件比较
押之前先想:怎么比才算公平?问题要一样,文档库要一样,判据要一样,比如前 20 段里有没有答案;只换检索器这一个部件。否则分数高了,你分不清是检索器的功劳,还是别的东西变了。
指图与比较
设计公平的部件比较
本页衔接
下一页看同分布下只换检索器的真实结果。
连续教师稿原文
知识放在外面,第一件事是“取”。2020 年以前,取靠字面重合,BM25 这类方法用了几十年,又快又稳。学出来的向量早有人试,意思相近就能找到,哪怕用词不同;但在开放域问答上一直没稳赢。2020 年春天,换你来给两千多万段维基百科做检索,押哪个?
押之前先想:怎么比才算公平?问题要一样,文档库要一样,判据要一样,比如前 20 段里有没有答案;只换检索器这一个部件。否则分数高了,你分不清是检索器的功劳,还是别的东西变了。
完整推理
BM25 的直觉。 把问题和段落都看成一袋词,不管顺序。一个词在段落里出现得越多,分越高,但增长会饱和(词频);这个词在整个文档库里越少见,越有区分力,权重越大(逆文档频率);长段落按长度归一,避免靠篇幅占便宜。它不用训练,又快又稳,几十年里一直是检索的强基线。弱点是认字不认意:“汽车”和“轿车”对它是两个词。
学出来的向量(双编码器)。 用一个编码器把问题变成向量,另一个编码器把段落变成向量,用两个向量的内积衡量相关;意思相近的离得近(第三讲的嵌入)。好处是用词不同也能找到;难处是要有足够的问答对来训练。在 2020 年以前,这类方法在开放域问答上并没有稳定赢过 BM25。
当年的两难。 RAG 需要一个检索器从 2,100 万段里取材料。押 BM25 稳妥;押向量,可能更好,也可能白忙。
怎么比才公平。 问题、文档库、判据都相同,只换检索器;否则分数差了,分不清是检索器的功劳,还是别的东西变了。DPR 用的判据是“前 20 段里有没有含答案的段落”(top-20 检索准确率),它测的是取到没有,不是最后答对没有:取到以后,阅读器还可能读错。
学生可能的回答与误区
- 第 1 步|多数人押向量,理由是“深度学习更好”。这正是下两页要检验的直觉:Q09 里它赢了,Q10 里换个领域它输了。
- 第 1 步|押 BM25 的理由常是“专有名词和编号多的时候,字面匹配更准”。这是对的直觉,Q10 会看到它在哪些领域成立。
- 第 2 步|“比最后的问答准确率就行。”那样会把阅读器的差别也算进来;要评检索器,就只看检索这一步。
- 第 2 步|把“前 20 段含答案的比例”当成最终问答准确率。它只说明取到了,取到和用对是两关(Q12)。
教学构造与出处
- 教学构造:两栏的概括与“你押哪个”的题面是课件做的。
- DPR · Dense Passage Retrieval for Open-Domain Question Answering:Karpukhin 等,arXiv 2004.04906v3,EMNLP 2020;读 §2–§4:BM25 基线、双编码器、维基百科切成 100 词一段(约 2,100 万段)、前 k 段检索准确率。来源支持。
- 第三讲讲过的向量表示(嵌入)在这里当作已知。