查询理解(Query Understanding)—查询改写总结

本文翻译的原文:https://queryunderstanding.com/query-rewriting-an-overview-d7916eb94b83

查询改写(Query Rewriting)的总结

目前为止,我们只是专注于字符级别和字块级别的查询理解,现在我们转向对实体和查询本身的理解。在这个级别上,最强大的查询理解技术就是我们称之为查询改写的一大类策略。查询改写会自动转换和改写用户搜索查询语句,以便更好地表示搜索者的意图。查询改写的策略通常有两个目的:增加召回率(recall)和提高精确度(precision)
这篇文章提供了查询改写的概述,下面我们将深入探讨具体技术的细节。

提高召回率(increasing recall)

在搜索查询中的查询改写的关键方法是检索更大的相关结果集。在极端情况下,增加召回率是指返回一些结果(希望相关)和返回无结果之间的差异。增加召回率的两个主要查询改写写策略是查询扩展(Query Expansion)和查询化简(query relaxation)。

查询扩展(Query Expansion)

查询扩展通过添加其他词块标记或短语来扩展现有查询。这些额外的信息可能与原始查询术语相关,如同义词或缩写(我们将在后面的文章中讨论如何获取这些信息)。或者可以使用我们在之前介绍的词干和拼写纠正方法来获得。

如果原始查询是词块的AND表示,则查询扩展将其替换为AND两边的或(OR)关系。例如,如果对于查询“ip lawyer”,最初检索的文档包含“ip”和“lawyer”,扩展查询可能会检索包含 “ip”或“intellectual property”,以及“lawyer”或“attorney”。

查询扩展不仅对提高召回率非常有价值,它也可以提高精确度。使用扩展标记的匹配可能比限制在原始查询标记的匹配更相关。此外,扩展术语也可作为部分信息来提高查询结果排序。

查询简化(query relaxation)

查询简化与查询扩展正好相反:不是向查询添加标记,而是删除一些无用词或字符。具体而言,查询简化通过删除(或可选)标记来增加召回率,这可能不是确保相关性所必需的。例如,对于查询“cute fluffy kittens” ,返回结果可能只会匹配“fluffy kittens” 。

查询化简是一个非常朴素的方法,例如检索与除了一个查询块之外的所有查询块匹配的文档。这种朴素的方法关键是怎么选择一个查询块才能更准确的表示查询意思。例如用“cute fluffy”替换“cute fluffy kittens” 。更复杂的查询简化策略是使用查询解析或分析来识别查询中的主要概念,然后选择用作修饰符的单词。

查询扩展和查询简化都旨在增加召回率而不会牺牲太多的精确度。通常,随着原始查询的结果集的增长,我们应该对查询扩展(尤其是查询化简)越来越保守。

提高精确度(Increasing Precision)

查询改写也可用提高精确度的方法 - 即减少不相关结果的数量。提高召回率最重要的是避免出现太少或空的结果集,提高精确率最重要的是避免出现太大或杂乱的结果集。

查询分割或分词(Query Segmentation)

有时多个词块代表单个语义单元,比如在查询语句“white dress shirt” 中的“dress shirt”。将此分块作为引用短语处理,如将查询重写为 white “dress shirt” 可以显着提高精确度,避免匹配 white shirt dresses 等。

查询分割(segmentation)与标记词块( tokenization)有关:我们可以将这些分割快视为较大的标记词块。我们通常认为标记词块是字符级的查询分割是标记词块级别。我们将在以后的文章中讨论查询分割算法。

查询范围(Query Scoping)

一般文档都是有结构的,正常文章有标题和作者,产品有分类和对应品牌等。查询改写可以通过确定或限制查询范围,使不同的查询匹配文档的不同部分,从而来提高精度度。
查询范围通常依赖于查询分段或分块,我们确定每个查询分段的实体类型,然后根据实体类型和文档字段之间的关联来限制匹配。
查询改写还可以在查询级别执行范围限制,例如将整个结果集限制为单个类别,这种限定范围通常被视为分类问题。

查询改写的意义(The Power of Query Rewriting)

查询改写是一种功能强大的工具,它可以帮助我们对查询更好的理解,从而提高查询的召回率和精确率。目前搜索引擎试图通过排名解决的许多问题,现在应该可以通过不同的查询改写方法来解决其中一部分。

猜你喜欢

转载自blog.csdn.net/huanghaocs/article/details/82314434
今日推荐