Query Auto Completion自动完成查询(一)
当我们用搜索引擎或其他工具搜索内容时,输入框下方的提示内容会根据你的输入进行调整展示。这个过程我们称之为Query Auto Completion(QAC)。用户不完整的输入我们称之为Query Prefix,提示的那些内容我们称之为Query Completions。
图1 检索系统
为什么要做QAC?
1、用户很多时候有一个想法,不清楚如何表达。QAC可以帮助用户确切地具体化查询。
2、减少用户的键盘输入。据统计显示,QAC帮助用户平均减少50%的输入。
3、在找到查询目标之前,如果没有QAC,用户可能需要多次查询。QAC可以减少用户搜索的次数,相应地减轻了服务器的压力。
QAC架构
图2 QAC架构图二展示了QAC的基本架构。用户输入一个查询前缀,系统根据查询前缀从查询日志中找出满足条件的query completions,然后根据一些特征进行排序,并将结果返回给用户。
图3 QAC处理流程
具体化服务器处理的QAC流程如图3表示。服务器首先根据前缀和基本的排序器粗略排序取出Query list 1,然后再根据一些特征和算法排序器取出满足需求的Query list 2返回给用户。
QAC 分类
根据算法使用的特征多少,我们将QAC分为启发式模型和基于学习的模型。
启发式模型:通过直接利用满足匹配的query内容计算得分。因为直接利用query进行计算,所以特征会很少。
基于学习的模型:通过学习算法提取出大量的特征计算得分。学习算法通过训练提取出大量合理的特征。
两类模型主要在re-ranker阶段起作用。因此我们的QAC模型可看作为一个re-ranker。而re-ranker所需的特征可分为时间相关的特征和以用户为中心的特征。时间相关的特征是说一些查询会随着时间的变化变化。比如说”新年“会在每年过年时又很多查询,而其他时间段查询较少。以用户为中心的特征就是用户相关的特征,比如说用户历史查询,用户的个人信息(年龄、性别等)。
后面将会分别讲述两种模型基于不同维度的算法信息。上述信息主要来自与论文[1]。
[1] Cai F, De Rijke M. A survey of query auto completion in information retrieval[J]. Foundations and Trends® in Information Retrieval, 2016, 10(4): 273-363.