在过去的20年中,解释,处理搜索查询的方式以及向用户显示结果的方式已完全改变。该过程已经从仅基于文本匹配的检索发展到现阶段——尝试基于对查询的真实语义理解以及上下文,位置,时间,用户的先前短期和长期浏览活动来获得搜索结果。 同时多年来,甚至用户起草搜索查询的方式也发生了变化,这主要是因为从桌面到移动环境的转变。对于手持移动设备,查询主要通过语音而不是键入来进行,而说话用户自然倾向于使用语法正确的查询(自然语言查询)而不是关键字表示的查询。例如用户更可能语音查询“谁是印度最好的古典歌手”而非“最佳古典歌手印度”,而后者在文字查询中并不少见。
由于移动设备的环境而出现的另一种查询是诸如“我现在可以在哪里吃芝士蛋糕”这样的上下文问题。 对于此类查询,系统不需要返回全局检索的文档列表。 为了生成相关的个性化结果,查询理解模块(Query Understanding Module)必须将查询的意图,用户位置和时间传递给负责检索结果的基础答案生成模块。 这些位置,时间信息不仅传递给答案生成模块,而且还被查询理解模块本身使用,以检测意图以及其他信息,如用户先前搜索的上下文,用户兴趣等。
查询理解的另一个有趣的发展趋势是个人数字助理,最近在各种移动设备中都非常常见。这些个人数字助理是一种通用界面,其中查询/命令通常通过语音提供,以执行可在设备上完成的任何类型的操作,如在互联网上搜索,在设备上本地搜索,安排会议,设置警报,向所述联系人打电话或发短信,从设备或互联网播放音乐,或为任何任务设置提醒等。此类个人数字助理的一些例子是“Microsoft Cortana TM”,“Apple Siri ”和“Google Now”。他们必须了解哪些查询用于Web搜索,并必须重定向到底层Web搜索引擎,以及哪些查询用于某些本地设备操作。查询理解模块需要了解查询的类型,并相应地触发相应的负责服务或从搜索引擎获取结果。
目前对查询理解的要求较高,这种类型的搜索技术是当前新兴的搜索技术,其中包含的查询理解模块一般利用NLP技术,上下文知识 - 用户以前的搜索和浏览活动,关于他的兴趣的知识,位置,查询时间,位置的天气等,以精确预测意图并获取最佳结果。 这样的系统必须具有以下特征:
1.查询的语义理解:下图显示了匹配查询到文档时的语义级别。 每个级别的相邻示例阐明了查询的语义理解范围。 例如 “utube”这个词在词义层面被理解为“youtube”。
2.上下文和先前的任务理解:在模糊查询的情况下,可以利用上下文的标识和概念跟踪的构建来精确地识别意图。比如用户提出查询“michael jordan”,现在的意图可能是搜索篮球运动员或伯克利机器学习的知名教授。现在假设先前的查询是“机器学习”,用户的意图很可能是找到伯克利的迈克尔乔丹教授。
3.用户理解和个性化:不同的用户有不同的兴趣,用户很可能从他感兴趣的领域或工作中搜索。
如前文所述,查询理解模块的使用主要有三个目的 - 推断查询的意图,通过提供建议并优化查询以检索更好的结果来指导他达到精确的意图。 下图显示了处理上述目的的组件及其位置。 橙色部分组成用于查询推理任务的模块,用于查询细化的绿色部分和用于查询建议的蓝色部分。
[图片及描述来源;Prakash, A. (2015). Techniques for Deep Query Understanding.]
发展历史
早期搜索仅基于直接文本匹配,并且使用Lucene索引等机制来构建从术语到文档的倒排索引。通常以“标题”,“副标题”等XML标签的形式给出的字段(以及文本)也被用于基于用户提供的他想要执行搜索的字段来限制检索文档。这些文档用于手动提交到搜索目录,提交者用于提供一些额外的“标记”字段及其描述文档的值,搜索者可以使用这些字段过滤掉返回的结果。此机制仍然用于几乎所有在线购物网站,如Flipkart,亚马逊等,用户根据其功能,价格,制造商等过滤掉产品。这些字段,如价格,制造商品牌,功能称为方面和价值每个人都可以采取称为facet values。在这种情况下,查询类似于数据库查询,谈不上太多查询理解,其中facet values用于限制返回的结果。
从90年代开始,能够对搜索结果进行排名的算法开始出现。Norbert Fuhr在1992年介绍了机器学习排序的总体思想,将信息检索中的学习方法描述为参数估计的一般化。 Bill Cooper在1992年也同样提出了逻辑回归,并将其与伯克利研究小组一起使用,成功地为TREC(Text REtrieval Conference)提供了排名功能。 不过当时机器学习排序的算法并不突出,主要是因为当时可用的数据集很有限。自2000年中期以来,NIPS,SIGIR和ICML等一些会议举办了机器学习排序的专项研讨会。商业网络搜索引擎也是在这时开始使用机器学习排名系统。这种类型的搜索引擎在最低级别使用基本类型文本搜索引擎,但包括基于给定查询的检索文档的相关性对结果进行排名的概念。它有非常基本的查询理解来识别用户查询中的关键字。 这些进步提供了比基本搜索更好的结果,因为结果是根据相关性(有用性)进行排序的。
再进一阶的搜素技术就是我们前文提到的当前新兴的搜索技术,2008年,Huanhuan Cao和Qiang Yang等人指出大多数先前的Web查询分类算法对各个查询进行分类而不考虑其上下文信息。 然而,许多Web查询简短且模糊,其真实含义在没有上下文信息的情况下是不确定的。他们提出了一种新颖的上下文感知查询建议方法,该方法分两步进行。在离线模型学习步骤中,为了解决数据稀疏性问题,通过聚类点击式二分法将查询概括为概念。然后,根据会话数据,构造概念序列后缀树作为查询建议模型。在在线查询建议步骤中,通过将用户提交的查询序列映射到一系列概念来捕获用户的搜索上下文。通过在概念序列sufix树中查找上下文,他们的方法以上下文感知的方式向用户建议查询。他们在包含1:80亿搜索查询,20.6亿次点击和8.4亿次查询会话的商业搜索引擎的大规模搜索日志中测试了该方法。实验结果表明,他们的方法在覆盖范围和建议质量方面均优于两种基线方法。 2009年,他们通过使用条件随机场(CRF)模型将上下文信息合并到查询分类问题中。 他们在搜索会话中使用相邻查询及其相应的点击URL(网页)作为上下文信息。 对现实世界的搜索日志进行的大量实验验证了她们方法的有效性,与当时其他最先进的基线相比,他们的方法可以将F1得分提高52%。
2013年,Jingjing Liu,Jim Glass等人讨论了如何在查询理解中应用NLP技术,例如利用语言解析知识进行语义理解。她们利用分层解析树中编码的语言知识来进行查询理解。具体来说,对于自然语言查询,从查询解析树中提取一组语法结构特征和语义依赖特征,以增强推理模型学习。从真实自然语言查询的实验表明,增加具有语言知识的序列标记模型可以提高各种领域中的查询理解性能。
2018年, Gary Ren等人讨论了对话查询中的查询理解。他们将会话查询定义为依赖于当前会话的上下文的查询,并且将会话查询理解问题表示为上下文感知查询重构,其目标是将会话查询重新形成为搜索引擎友好的查询,以满足用户»会话设置中的信息需求。这种上下文感知查询重构问题有助于序列建模。他们提供了一个大规模的对话查询开放域数据集,以及从该数据集中学习的序列模型的各种序列。最好的模型能够正确地重新构造了所有会话查询的一半以上,显示了序列对此任务进行序列建模的可能性。
主要事件
年份 | 事件 | 相关论文/Reference |
1992 | Norbert Fuhr介绍了机器学习排序的总体思想,将信息检索中的学习方法描述为参数估计的一般化 | Fuhr, N. (1992). Probabilistic Models in Information Retrieval. Computer Journal, 35(3): 243–255, |
1992 | Bill Cooper使用提出了逻辑回归与伯克利研究小组一起成功地为TREC(Text REtrieval Conference)提供了排名功能 | Cooper, W.S., Gey, F.C., Dabney, D.P. (1992). Probabilistic retrieval based on staged logistic regression. In: Proceedings of the 15th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR 1992), pp. 198–210. |
2008 | Huanhuan Cao和Qiang Yang等人提出了一种新颖的上下文感知查询建议方法 | Cao, H.; Jiang, D.; Pei, J.; He, Q.; Liao, Z.; Chen, E.; Li, H. (2008). Context-Aware Query Suggestion by Mining Click-Through and Session Data. KDD. |
2009 | 2009年,Huanhuan Cao和Qiang Yang等人通过使用条件随机场(CRF)模型将上下文信息合并到查询分类问题中 | Cao, H.; Hu, D. H.; Shen, D. and Jiang, D. (2009). Context-Aware Query Classification. SIGIR. |
2013 | Jingjing Liu,Jim Glass等人讨论了如何在查询理解中应用NLP技术,例如利用语言解析知识进行语义理解 | Liu, J.; Pasupat, P.; Wang, Y.; Cyphers, S. and Glass, J. (2013). Query Understanding Enhanced by Hierarchical Parsing Structures. in ASRU. |
2018 | Gary Ren等人讨论了对话查询中的查询理解 | Ren, G. et al. (2018). Conversational Query Understanding Using Sequence to Sequence Modeling. WWW. |
发展分析
瓶颈
搜索理解主要针对对用户搜索意图的理解,而理解用户搜索的真实意图主要存在以下难点:
- 搜索输入不规范,高度多样化的自然语言查询会给我们匹配带来难度;
- 查询词过于模糊,如用户搜索“变形金刚”,是指变形金刚的电影还是游戏?
- 意图强度,表现为不同用户对相同的查询有不同的需求强度。比如:宫保鸡丁。宫保鸡丁菜,菜谱需求占 90%。宫保鸡丁歌曲,歌曲下载需求占 10%。又比如:荷塘月色。荷塘月色歌曲,歌曲下载需求占 70%。荷塘月色小区,房产需求占 20%。荷塘月色菜,菜谱需求占 10%。
- 意图存在时效性变化,就是随着时间的推移一些查询词的意图会发生变化。比如:华为 P10 国行版 3 月 24 日上市。3 月 21 日的查询意图:新闻 90%,百科 10%3 月 24 日的查询意图:新闻 70%,购买 25%,百科 5%5 月 1 日的查询意图:购买 50%,资讯 40%,其他 10%5 年以后的查询意图:百科 100%
- 数据冷启动的问题,用户行为数据较少时,很难准确获取用户的搜索意图。
- 没有固定的评估的标准,CTR、MAP、MRR、nDCG 这些可以量化的指标主要是针对搜索引擎的整体效果的,具体到用户意图的预测上并没有标准的指标。
[描述来源:https://www.cnblogs.com/bonelee/p/7000113.html]
未来发展方向
将深度学习技术引入搜索理解,如上文已经提到的现在正在实现的使用自然语言处理来帮助搜索引擎更好地联想,不失为一个可行的方向。
Contributor: Yuanyuan Li