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.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开源优测

大数据测试学习笔记之基准测试HiBench

简介 HiBench是一套基准测试套件,用于帮助我们评估不同的大数据框架性能指标(包括处理速度、吞吐等)的负载指标,可以评估Hadoop、Spark和流式负载等...

59860
来自专栏ATYUN订阅号

使用Java部署训练好的Keras深度学习模型

Keras库为深度学习提供了一个相对简单的接口,使神经网络可以被大众使用。然而,我们面临的挑战之一是将Keras的探索模型转化为产品模型。Keras是用Pyth...

72840
来自专栏SDNLAB

使用机器学习算法对流量分类的尝试——基于样本分类

导言 机器学习方法目前可以分为5个流派,分别是符号主义,联结主义,进化主义,贝叶斯和Analogzier。具体到实例有联结主义的神经网络,进化主义的遗传算法,贝...

958120
来自专栏机器之心

教程 | 如何用百度深度学习框架PaddlePaddle做数据预处理

35660
来自专栏AI研习社

使用 SKIL 和 YOLO 构建产品级目标检测系统

在本文中,我们采用最新的神经网络实现目标检测,使用SKIL平台构建产品级目标检测系统。

18710
来自专栏AI研习社

手把手教你搭建能够实现 Prisma 风格迁移效果的 iOS 酷炫应用(附代码)

随着 2012 年深度神经网络在 ImageNetchallenge 比赛上以 AlexNet 模型获胜,深度神经网络开创了空前的高潮。AI 工程师已经将深度学...

24230
来自专栏程序员的知识天地

10分钟掌握Python-机器学习小项目

而且,Python 还有很多模块和程序库供我们选择,从而针对一个任务能有很多个解决方案。怎么样,听起来还是很厉害的吧?

18110
来自专栏AI研习社

谷歌正式开源 Hinton 胶囊理论代码,即刻用 TensorFlow 实现吧

雷锋网(公众号:雷锋网) AI 研习社消息,相信大家对于「深度学习教父」Geoffery Hinton 在去年年底发表的胶囊网络还记忆犹新,在论文 Dynami...

32960
来自专栏机器之心

世界上最好的语言PHP:我也可以用OpenCV搞计算机视觉

就像许多开发人员一样,我也经常使用别人的工作成果(Medium 上的文章、GitHub 上的代码等),因此也很乐意与社区分享我的成果。写文章不仅是对社区的一种回...

22030
来自专栏CSDN技术头条

Hadoop 2.0 上深度学习的解决方案

波士顿的数据科学团队正在利用尖端工具和算法来优化商业活动,且这些商业活动是基于对用户数据中的深刻透析。数据科学大量使用机器算法,可以帮助我们在数据中识别和利用模...

31380

扫码关注云+社区

领取腾讯云代金券