从结构化搜索到学习排序与检索的技术演进

本文探讨了现代搜索系统从传统结构化搜索到学习排序与检索的技术演进,详细介绍了基于强化学习的多臂赌博机方法如何优化候选选择和排序,解决检索阶段的探索与利用平衡问题。

从结构化搜索到学习排序与检索

大多数现代搜索应用、广告平台和推荐系统都采用类似的多层信息检索架构,至少包含候选选择(检索)阶段和候选排序(排名)阶段。给定查询和上下文,检索阶段将可能的候选空间从数百万(有时数十亿)减少到(通常)数百或更少。排名阶段随后微调候选排序以呈现给客户。这种方法既灵活又可扩展。

典型搜索漏斗

典型的搜索漏斗从查询理解开始,到显示结果结束。

在某音乐服务中,先前通过应用学习排序模型改进了前k个候选的排名,这些模型从客户反馈或行为(点击、喜欢、添加到收藏、播放等)中学习。结合来自查询、上下文、客户偏好和候选特征的输入信号来训练模型。

然而,这些好处仅适用于检索阶段选择的候选。如果最佳候选不在候选集中,无论排名模型多么优秀,客户都无法获得他们想要的内容。

最近,已将学习排序方法扩展到包括检索,称之为学习排序与检索。大多数现有检索模型是静态(确定性)的,而学习检索是动态的,并利用客户反馈。

因此,提倡使用上下文多臂赌博机的方法来学习检索,这是一种强化学习形式,优化探索新检索策略与利用已知策略之间的权衡,以最小化"遗憾"。

候选选择策略

结构化搜索和查询理解

常见的候选检索策略是全文本搜索,它将自由文本文档索引为词袋,使用术语统计生成相关性评分(例如BM25排名函数)存储在倒排索引中。倒排索引将单词映射到包含这些单词的文档。全文本搜索解决了许多搜索用例,特别是当期望显示候选(例如曲目标题或艺术家姓名)应与查询具有词汇相似性时。

可以通过几种方式扩展全文本搜索。一种是使用某种实体质量度量来偏置结果。例如,在计算候选分数时考虑音乐曲目的流行度,使得两个具有相同标题的曲目中较流行的更有可能进入首页。

还可以通过将全文本搜索应用于结构化数据(通常称为元数据)的上下文来扩展它。例如,文档中的字段可能包含实体类别(例如产品类型或主题)或实体属性(如品牌或颜色),更复杂的评分函数(例如Lucene评分)可以考虑这些。

结构化搜索可以有效地与查询理解结合,查询理解将查询标记映射到实体类别、属性或两者的组合,后来用作检索约束。这些方法通常使用内容理解从自由文本中提取元数据,以便用类别和属性标记对象或实体,作为字段存储,为底层文本添加结构。

神经检索模型

最近,受表示学习、变换器和自然语言处理大型语言模型进展的启发,搜索工程师和科学家将注意力转向向量搜索(也称为基于嵌入的检索)。向量搜索使用深度学习模型生成密集(例如句子BERT)以及稀疏(例如SPLADE)向量表示,称为嵌入,捕获查询、上下文和实体的语义内容。这些模型通过快速k近邻向量相似性搜索,使用精确和近似最近邻算法实现信息检索。

根据BEIR基准,向量和混合(词汇+向量)搜索比传统方法产生更相关的结果,并在零样本IR模型上运行更快。在推荐系统中,客户和会话嵌入(作为查询/上下文)和实体嵌入也用于在检索阶段个性化候选。这些文档可以在多阶段排名架构中由另一个LTR神经模型重新排名。

记忆索引

研究表明,用户行为(例如查询点击信息)是检索中最重要的字段,作为给定查询/上下文哪些实体有效哪些无效的运行记忆。在冷启动场景中,甚至可以训练一个模型,当给定输入文档时,生成文档可能回答的问题(或更广泛地说,文档可能相关的查询)。

然后这些预测的问题(或查询)和分数被附加到原始文档,作为预测查询-实体分数进行索引。一旦捕获查询引发的用户对实体的行为,这些计算的统计信息可以替换预测值,成为实际的Q2E分数,更新用于排名的记忆索引。随着新遇到的查询出现,由于其他策略的命中,将生成额外的Q2E对和相应分数。

现实世界的复杂性

在文章"向干草堆扔针"中写道:

如果你对特定歌曲、艺术家或流派感兴趣,与搜索引擎的交互应该相当简单。如果你可以使用直接映射到结构化数据的词语表达简单的搜索意图,你应该合理地期望搜索应用程序理解你的意思并相应地检索结果。

然而,正如将展示的,在构建服务数百万客户的产品时,客户以特定于他们经验和地区的方式表达自己,我们不能合理地期望查询"使用直接映射到结构化数据的词语表达搜索意图"。

让我们从解构一个例子开始。假设要在音乐搜索系统中处理查询"love"。即使对于单个领域(例如音乐/音频),也有许多种实体可能匹配此查询,例如歌曲、艺术家、播放列表、电台,甚至播客。对于每个这些类别,可能有数百甚至数千个可能的候选匹配关键词"love"。除此之外,每个类别具有也可以匹配关键词的不同属性(例如,“love"映射到流派"情歌”)。

客户可能还期望在搜索结果中看到相关实体(例如,返回歌曲的相关艺术家)。因此,虽然在客户心中肯定有一个主要通过关键词表达的主要搜索意图,但可能有许多可能的映射或解释应该考虑。每个都有正确的可能性,这将生成一系列底层结构化搜索,首先识别可能的目标实体,然后带来相关或派生内容。

正如已经发现的,这样的系统的构建和维护本质上不可扩展。

还存在由于不正确查询理解和/或内容理解导致的错误复合问题。对查询和实体的类别和属性分配,通常使用人工标记和ML分类模型的组合,可能是错误的甚至完全缺失。此外,分配值可能不是二元的。例如,“Taylor Swift"显然被认为是流行艺术家,但她的一些歌曲也被分类为乡村音乐、另类/独立或独立民谣。

鉴于解释在选择候选结果中的中心地位,从与客户互动中学习的能力对于成功检索至关重要。然而,基于QU+SS和/或FT搜索的搜索应用通常使用静态查询计划,无法在检索阶段合并反馈。

另一方面,虽然深度模型显示出巨大潜力,它们也需要大量投资,并且在可预见的未来似乎不太可能完全取代基于关键词的检索方法。

学习检索

在资源无限且无延迟约束的世界中,不需要检索漏斗,可能更倾向于对所有可能候选进行排名。但我们不生活在这样的世界。现实是,决定增加精度(通常通过利用已知有效内容)和增加召回率(通过探索更多来源和增加检索候选数量)之间的正确平衡,对于搜索、广告平台和推荐系统至关重要。在非常动态的应用(如音乐搜索)中尤其如此,其中上下文很重要,新实体、类别和属性不断添加。

虽然如果能确定为每个查询/上下文产生最优首页的单一候选选择策略会很棒,但在实践中这是无法实现的。最优候选选择策略取决于查询/上下文,但我们先验不知道这种依赖性。需要学习检索。

尝试达到正确探索-利用权衡的一种方法是实施多臂赌博机优化,学习选择检索策略(臂)子集的策略,以最大化通过一系列搜索获得的随机奖励总和。也就是说,策略应最大化预期结果存在于这些策略产生的集合中的可能性总和,如后来通过用户行为(例如点击链接)确认。

MAB方法使用强化学习从表现良好的策略中抽取更多候选,同时从表现不佳的策略中抽取较少。特别是,对于学习检索,上下文多臂赌博机算法是理想的,因为它们设计为将查询/上下文特征和行动特征(与候选选择策略相关)作为输入,以最大化奖励,同时保持健康的探索率以最小化遗憾。

例如,期望基于语言模型的嵌入(即语义策略)对于主题搜索表现更好,而词汇策略对于直接实体搜索(也称为针对性查询)更有用。

查询/上下文特征可能包括查询信息,如语言、查询类型、QU槽填充和意图分类、查询长度等;用户的统计和配置文件信息;当前时间信息,如星期几、是否周末、上午或下午、是否假日季节等;以及用户行为的历史(聚合)数据,例如该用户听得最多的音乐流派。

行动特征可能包括相关性/相似性分数;历史查询策略性能和结果数量;检索的实体类型,例如新添加的、流行的、个性化的等;以及关于底层检索源的信息,例如词汇匹配、文本/图嵌入、记忆等。

模型基于这些特征和检索策略组合学习泛化,以最大化奖励。最后,使用所选策略产生结果的并集生成单个候选列表,冒泡到排名层。

总结

总之,使用查询理解(当可用时)和结构化搜索是构建搜索系统的良好起点。通过添加学习排序,可以开始获得考虑客户反馈和提高系统质量的好处。然而,这不足以解决在现实应用(如音乐搜索)中观察到的难题。

作为大多数搜索、广告和推荐系统中使用的多层IR架构中常见检索和排名阶段的扩展,提出了通用的学习排序与检索系统架构,包括基于不同检索策略的多个候选生成器。一些产生众所周知的、可利用的结果,如基于记忆索引的结果,而其他更专注于探索,产生新颖的、风险更高的或更意想不到的结果,可以增加反馈多样性并提供反事实数据。

这种反馈无法通过当今使用的静态(即完全确定性)检索和排名系统收集。还建议使用ML,特别是RL,优化检索策略子集的选择和从中抽取的候选数量,以最大化在此类集合中找到预期结果的可能性。

通过合并客户反馈并使用ML进行LTR&R,可以(1)简化搜索系统和(2)为客户冒泡最佳可能候选。LTR&R是解决精度导向搜索和需要更多召回和探索的广泛模糊查询的有希望路径。

致谢:Chris Chow、Adam Tang、Geetha Aluri和Boris Lerner

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计