亚马逊颠覆搜索技术:自定义词汇库提升检索性能,效率提高50%,准确度飙升12%!
引言:搜索引擎中的词汇选择与检索效率
在搜索引擎的世界中,词汇的选择对于检索效率至关重要。传统的搜索引擎技术,如BM25,依赖于对文档中词汇的频率统计来估计词汇的重要性。然而,随着预训练语言模型(如BERT)的兴起,我们现在可以通过直接优化检索任务来学习文档中词汇的重要性。这些学习到的词汇重要性分数是许多学习型稀疏检索技术的基础,这些技术仍然利用倒排索引来处理查询。
然而,学习型稀疏表示与传统排名函数的一个关键区别在于,它们之间的词汇表紧密集成。例如,基于BERT的学习型稀疏索引通常将词汇限制在BERT词汇表中出现的词汇上,通常这个词汇表被限制在大约30,000个条目以提高模型效率。这种词汇表的选择对于检索质量和运行时效率有着直接的影响。
本文将探讨词汇选择、检索质量和学习型稀疏表示的运行时效率之间的关系。我们提出了一种针对TILDE文档扩展的语料库特定修改,这种修改利用自定义词汇表,并在训练时增加了困难负样本的增强。我们的方法简单有效,为不同的学习型稀疏模型提供了新的性能权衡。
声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」 智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人
神奇口令: 小瑶读者 (前100位有效)
论文标题、机构、论文链接和项目地址
- 论文标题:Improved Learned Sparse Retrieval with Corpus-Specific Vocabularies
- 机构:1. University of Massachusetts Amherst, USA; 2. Pinecone, Italy; 3. Amazon AGI, USA
- 论文链接:https://arxiv.org/pdf/2401.06703.pdf
- 项目地址:https://github.com/PxYu/CSV-for-LSR-ECIR24
概述学习型稀疏表示与传统索引的对比
学习型稀疏表示(Learned Sparse Models)如SPLADE、TILDE和uniCOIL等,利用现有的稀疏检索技术和标准倒排索引数据结构,实现了与传统索引方法相媲美的检索性能。倒排索引经过优化,具备高扩展性、成本效率高、实时更新能力强等特点,是当今大多数商业搜索系统中核心的首阶段检索组件之一。
与传统的排名函数(如BM25)相比,最新的学习型稀疏表示的一个关键区别在于倒排索引的词汇表与生成文档重要性表示的模型词汇表之间的紧密整合。基于BM25的倒排索引可能包含数百万个独特的标记,而学习型稀疏索引通常将词汇表限制在BERT词汇表中出现的标记上。这个词汇表通常被限制在大约30,000个条目以提高模型效率。
引入 Corpus-Specific Vocabularies (CSV) 的概念
1. CSV的定义及其在检索模型中的作用
Corpus-Specific Vocabularies(CSV)是针对特定语料库定制的词汇表。与标准的BERT词汇表相比,CSV提供了更广泛的查询术语覆盖范围,可以轻松地纳入不同模型的训练过程中,并且更好地对应于倒排索引中下游排名任务的实际词汇表使用情况。
在学习型稀疏表示中,CSV的使用有助于解决词汇表选择、检索质量和运行时效率之间的关系。通过对目标语料库进行训练的WordPiece分词器,可以调整用于稀疏模型的词汇表,以更好地适应检索时的需求。例如,uniCOIL模型在训练时会考虑子词单元的上下文,但在使用标准倒排索引进行检索时,每个标记都是独立处理的。CSV的提出旨在调整这种不匹配,通过在目标语料库上训练具有不同、更大词汇表大小的分词器来实现。在本文中,我们特别试验了30,000,100,000和300,000的词汇表大小,并发现增加词汇表大小对检索质量和运行时延迟都有积极影响。
CSV的概念和应用为学习型稀疏表示提供了新的性能权衡,并且在不同的学习型稀疏模型中都表现出广泛的适用性和潜在的优化空间。
CSV在学习型稀疏模型中的应用
1. 词汇选择对检索质量和运行效率的影响
在学习型稀疏模型中,词汇选择是影响检索质量和运行效率的关键因素。传统的基于BM25的倒排索引可能包含数百万个唯一标记,而学习型稀疏索引通常限制词汇量,以提高模型效率。例如,BERT词汇通常限制在约30,000个条目。通过使用Corpus-Specific Vocabularies(CSV),我们可以提高查询项的覆盖率,并在倒排索引中更好地匹配实际使用的词汇条目。实验表明,增加词汇量可以同时提高检索质量和减少运行时延迟。
2. 预训练目标的调整及其对模型性能的提升
预训练是学习通用语言表示的过程,通常在大型文本语料库上进行。在搜索环境中,可以通过在目标检索语料库上进行预训练来提高模型在实际检索任务上的性能。我们的研究中,直接在目标检索语料库上进行预训练,以减少预训练的成本和环境影响,并根据经验证据表明,这种方法可以提高检索任务的有效性。
3. 文档扩展技术的优化
文档扩展是为了缓解词汇不匹配问题而对文档进行增强的技术。例如,TILDE模型直接优化术语重要性估计和文档扩展。在我们的工作中,我们提出了一种基于CSV的文档扩展方法,该方法在训练时利用定制词汇和硬负样本的增强,以提高文档扩展的性能。
4. 基于蒸馏的训练方法
使用训练有素的教师模型的输出作为训练信号,可以显著提高学生模型的学习成果。我们使用KL散度作为训练损失,并使用标准的交叉编码器作为教师模型来训练uniCOIL和SPLADE-DOC模型。
实验设置与基线模型介绍
1. 数据集和评估指标
我们使用MS MARCO v1和MS MARCO v2数据集进行实验,并主要使用MS MARCO v1 Dev集的6,980个查询进行评估。此外,我们还使用了TREC 2019和2020的测试查询。
2. 实验硬件配置
所有模型均在8×A100 GPU上训练,而我们的延迟实验则在单线程执行模式下的Intel Xeon 8375C CPU上进行。
3. 模型和基线的选择
我们专注于研究调整底层语言模型并在目标语料库上进行预训练对稀疏检索模型的影响。我们使用SPLADE和uniCOIL作为例子,并实验了30,000,100,000和300,000的不同词汇量。作为基线,我们重新训练了具有标准BERT词汇的uniCOIL模型,并报告了现有的BT-SPLADE-L模型、标准BM25、DocT5Query和ColBERTv2等作为高效且有效的基线进行比较。
词汇选择与索引统计的实验结果
1. 不同词汇量对检索统计的影响
实验结果显示,词汇量的增加对检索统计产生了显著影响。在不使用文档扩展的uniCOIL模型中,随着词汇量的增加,查询中的平均词汇数减少,含有子词汇的查询比例也随之下降。例如,当使用默认BERT词汇时,含有子词汇的查询比例为48%,而使用相同大小的自定义词汇量时,这一比例降至35%。当词汇量增至100,000和300,000时,这一比例分别降至11%和2%。此外,随着词汇量的增加,文档长度、每次查询的posting数量以及平均检索时间(MRT)均有所减少。值得注意的是,即使是30,000词汇量的自定义词汇,其性能也优于标准BERT-30k词汇在所有指标上的表现。总体来看,与基于标准BERT-30k的uniCOIL模型相比,CSV-300k的检索速度提升了20%。
2. CSV对检索质量的提升
CSV的使用不仅改善了检索统计,还提升了检索质量。对比实验中,未使用文档扩展的CSV-100k(第3行)与使用标准TILDE扩展的CSV-100k(第4行),可以看出虽然延迟有所增加,但检索质量得到了改善。在MS MARCO v2上进行预训练(第5行)和使用增强文档扩展(TILDE-A)均能在保持延迟中性或降低延迟的同时提高检索质量。最后,使用经过蒸馏训练的uniCOIL版本(uCOIL-D,第7行)提供了最佳的检索质量(0.391 MRR),与ColBERTv2(0.397 MRR)这类最先进的后期交互模型相当。
查询延迟的实验分析
1. CSV对查询延迟的显著减少
实验表明,使用CSV可以显著减少查询延迟。例如,使用标准BERT词汇的uniCOIL模型(表2的第1行)的平均响应时间为33.88ms,而我们最快的基于uniCOIL的方法将平均响应时间减少到17.06ms(表3的第11行),降低了50%。同样,通过CSV增强的SPLADE模型也展示了类似的延迟改善(见表4)。
2. CSV在不同词汇量下的延迟对比
CSV-300k与CSV-30k相比,尽管在表1中报告了相反的数字,但我们发现TILDE-A扩展显著增加了文档大小(CSV-300k平均增加了90.71个词汇,CSV-30k增加了41.63个词汇)。这种增加抵消了通过增加词汇量获得的posting列表长度减少的效果。通过调整TILDE-A的超参数,仅使用前40/50个词汇进行扩展,在第10至12行中,我们看到更大词汇量的延迟与CSV-30k相当,同时检索性能略有提升。总结来说,对于MS MARCO v1,使用自定义词汇(与第8行相比的第9行)对提高检索质量更为重要,而增加词汇量则对降低延迟有积极影响。
此外,表5显示我们的改进也适用于TREC查询集。尽管标准BM25和DocT5Query仍然更快,但CSV相对于常规uniCOIL减少了平均延迟50%(17.63ms对比33.73ms),并且在效率和效果上都优于最先进的BT-SPLADE-L方法。
预训练成本与模型大小的讨论
1. 不同词汇量预训练的资源消耗
在探讨预训练成本时,词汇量的大小是一个关键因素。传统的倒排索引可能包含数百万个独特的标记,而基于BERT的学习稀疏索引通常将词汇量限制在约30,000个条目以提高模型效率。然而,这种限制在处理文本时可能会导致词汇不匹配的问题。为了解决这一问题,研究者们提出了使用特定于语料库的词汇(Corpus-Specific Vocabularies, CSV)来优化文档扩展和模型训练。
预训练通常在大型文本语料库上进行,如BooksCorpus和英文维基百科,但这种做法可能会带来高昂的计算成本。为了减少成本和环境影响,研究者们选择仅在目标检索语料库上进行预训练。这种方法虽然减少了在大型语料库上预训练多个语言模型的成本,但同时也需要更多的时间和资源。例如,使用不同大小的词汇量进行预训练,需要4-13小时不等,这是由于更大的词汇量带来的计算开销。
2. 模型大小与参数数量的关系
模型的大小与其参数数量直接相关。随着词汇量的增加,模型的参数数量也会相应增加。例如,将词汇量从30,000增加到300,000,模型的参数大小从109M增加到316M,与BERT-large的参数大小相当。这种增加不仅影响了预训练的时间和资源消耗,也对模型的运行效率产生了影响。然而,研究表明,使用CSV可以有效地提高检索质量和查询延迟,这表明在模型大小和效率之间存在一种权衡。
结论与未来工作方向
1. CSV在检索系统中的有效性
研究结果表明,特定于语料库的词汇(CSV)在提高学习稀疏检索系统的检索质量和查询延迟方面是有效的。CSV的应用简单而有效,可以应用于不同类型的模型。通过实验,研究者们发现,与标准BERT词汇相比,使用CSV可以在保持或提高检索质量的同时,显著减少查询延迟。例如,与使用BERT-30k词汇的uniCOIL模型相比,CSV-300k在延迟上快了20%。
2. 未来可能的研究方向与潜在改进
未来的研究可以探索更复杂的词汇选择策略,以及考虑倒排索引检索时的训练和文档扩展策略。此外,搜索特定的预训练任务,如coCondenser,提供了与词汇变化正交的好处。未来的工作可以探索这些技术之间的潜在交互,并进一步提高检索系统的效率和效果。此外,对于如何在保持检索性能的同时进一步减少模型大小和预训练成本,也是未来研究的一个重要方向。
声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」 智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人
神奇口令: 小瑶读者 (前100位有效)