作者 | kaiyuan 整理 | NewBeeNLP
大家好,我是kaiyuan。电商搜索全链路系列文章们躺在我的草稿箱里已经N久了,上一篇整理还是在上次,错过的小伙伴点击传送门:电商搜索全链路(PART I)Overview
这一篇来聊聊搜索系统第一步,Query理解与处理。
一般而言用户输入的Query属于超短文本(淘宝query切词后平均长度不足3个),容易存在拼写错误、歧义、表达不准确等问题,因此对Query理解的越精准,搜索服务的效果也就越好。
通常在搜索系统中,QP(Query Processor)模块负责这部分的工作。Query理解的整体pipeline大致如下:
Query理解pipeline
可以看到,主要包括query预处理、分词、纠错、改写、类目预测、实体识别、Term重要性分析等模块,需要注意下,各个业务会根据自身特点对上述各个模块的顺序进行调整或增减,但一些关键模块是相通的。
接下来看看,当你在搜索引擎中输入一个Query敲下回车后,发生了什么?
预处理这一步相对简单,大多是一些规则和人工搞定的事,方便后续模块的进一步分析和处理。主要会包括以下步骤:
Query分词就是将Query切分成多个term,如:“手机淘宝”切分成“手机 淘宝”两个term。分词可以说很简单也可以说很复杂,譬如对于英文搜索,分词可以只按空格切分即可,但是对于中文,就可有的玩了。
文本分词作为NLP的一个超基础任务,具体细节这里不会再啰嗦。对于想要深入了解的同学,推荐一些综述资料,也可以找NewBeeNLP往期推文
目前业界中大部分搜索系统中的分词模块都会有专门的基础中台部门来迭代优化,亦或直接使用开源的分词工具(譬如JieBa、HanLP、PyLTP、LAC等等),直接调用即可。
在搜索引擎中,query改写是很重要的一环。由于自然语言中有很多近义词或者同义词,用户可以有多种方式表达自己的搜索意图;同时,难免存在用户由于先验知识掌握不够或输入过程引入噪音导致输入query存在一定错误。
因此query改写是对原始query的有效补充,将改写query和原始query一起参与搜索可以改善搜索结果。
按照具体功能的不同,大致可以分为三个子模块:
纠错源于输入query拼写错误,一般是由于用户认知或输入习惯等原因导致。错误拼写影响整个搜索流程,包括召回相关性、排序合理性等,最终影响用户搜索体验。
query纠错的业务形态如下,以淘宝为例:
query错误的类型根据业务的不同有不同的划分,但大同小异。以腾讯搜索为例,他们根据 query中是否有不在词典中本身就有错误的词语 ,将query错误类型进行分类,如下所示。
业界和学界的技术方案主要可以分为pipeline和end2end两种类型
pipeline的方式将大任务分为多个子模块执行,中文纠错任务通常包含错误检测和错误纠正两个子任务,
End2End的方式联合优化纠错任务,如
然而在实际应用场景中,会存在很多论文未涉及的问题,分享一些业界的真实案例,供参考:
Query归一有时也称为同义近义替换,其目标是对长尾冷门的query/词语进行归一到热门标准query,改善召回结果。和上述query纠错的区别是,这里的query更多是正确的,只是在表述上不规范难以与索引匹配。
涉及的主要技术就是同义词挖掘及语义实体对齐。具体实现上有很多方式,譬如
在很多情况下,用户输入的query是模糊的,并不能准确表达其搜索需求,譬如用户想要购买健身博主刘畊宏的同款瑜伽垫,但是并不知道具体的品牌款式,转而使用模糊的"刘畊宏"作为query来搜索。
query扩展可以帮助用户挖掘潜在需求(有些类似搜索中的推荐,所以有时也可称为query推荐),同时也可以扩大搜索的召回。
Query扩展的业务形态如下。具体的实现方式可以根据粒度的不同分为Term粒度和Query粒度两种:前者往往将query中的部分term使用同义或相关的term进行扩展,更多的为语义上的扩展;后者直接扩展出一个完整的query,与原串同时进行检索。
可以看下美团搜索query扩展方面的技术大图。
更多的方案公开总结已有很多,可参考:
还有部分QP内容拆分到下一篇继续~ 下期再见!
[1]
Review of Chinese Word Segmentation Studies: https://manu44.magtech.com.cn/Jwk_infotech_wk3/CN/Y2020/V4/I2/3/1
[2]
NLP分词算法深度综述: https://zhuanlan.zhihu.com/p/50444885
[3]
哈工大讯飞文本纠错系统: http://cogskl.iflytek.com/archives/1306
[4]
平安寿险AI:文本纠错技术: https://zhuanlan.zhihu.com/p/159101860
[5]
丁香园:搜索中的Query扩展技术: https://zhuanlan.zhihu.com/p/138551957
[6]
丁香园:搜索中的Query扩展技术(二): https://zhuanlan.zhihu.com/p/296504323
[7]
美团搜索中查询改写技术的探索与实践: https://tech.meituan.com/2022/02/17/exploration-and-practice-of-query-rewriting-in-meituan-search.htm