非凡机械网

非凡机械
科学赐予人类相信真理的力量

许宏宇:什么是检索?

许宏宇:什么是检索?

  一、初识检索

  什么是检索呢?检索是一种用户和庞大的数据库之间的互动行为。

  检索行为的发生是为了在庞大的信息群中高效的筛选出关的信息。检索行为的完成从宏观上来看一般通过两种方式,一种是搜索引擎,另一种是垂直搜索。搜索引擎有 Google、百度、搜狗等。而垂直搜索则是在大多数产品内置的对内容的检索功能,淘宝中检索各种商品,滴滴的出行场景起终点检索都属于垂直搜索。

  我们从5W原则(when-where-what-why-how)来拆解检索行为。

  when-人们希望在海量信息中寻找到相关的信息;

  where-于是他们打开了自己的手机应用或者电脑连接网络;

  why-网络上的信息繁杂他们没有办法立马找到自己想要的相关信息;

  what-于是点开了搜索引擎,在检索框内输入了关键字;

  how-随后搜索引擎在海量的各类信息中迅速呈现给用户相关的信息。

  信息和信息量的哲学态 —— 信息是减少不确定性的东西,信息也是增加确定性的东西;信息量是一个信息能减少不确定性的度量,信息量也是一个信息能增加确定性的度量。

  二、完成一次检索的逻辑

  检索需求:满足用户在海量信息中迅速筛选出自己感兴趣的内容

  检索外部流程:用户检索意图 → 输入的内容(关键词/图片/语音/二维码等)→ 搜索结果(屏蔽部分结果)→ 搜索结果展现(默认排序和选择排序)

  检索内部流程:用户输入query → query分析 → 索引&词库 → 内容筛选 → 结果召回→ 结果排序及展示

  三、检索策略框架

  检索的流程框架往往一致,但在不同的使用场景下,子项检索策略和侧重点会不同。比如在出行场景下,检索结果会侧重POI热度及距离等因素,在新闻内容类检索上会侧重于热点关键词,在外卖地址上检索会侧重于精细化地址类别识别等。

  3.1、Query分析

  Query分析主要是对用户输入的query进行信息的转译过程,将用户输入的query进行分词处理。各个搜索平台都有自己的分词模型,CRF模型是一种序列标注的机器学习方法,其关键点在于如何有足够且标注准确的训练语料库。切分后的关键词进一步用子项检索策略处理,归一化无效词,如:“的”。Query分析里面包含了很多子项策略,包括纠错,相关搜索词,query改写/变换,query类别识别,意图识别,同义词替换,Term词项构造(文本词条化,停用词过滤,词条归一化,词干提取,词形还原)等等。

  提升query分析的准确率才能够在数据库中索引找到相关的检索结果召回。

  3.2、索引&词库

  不同的搜索系统对应有不同的词库,搜索的很多优化都是集中在词库优化上。索引是将经过query分析处理后的关键词与词库中的相关内容进行匹配,

  3.3、内容筛选

  内容可分为文本信息和数据信息,文本信息用于计算内容的相关性,市面上有不少成型的开源解决方案。这一块也有成熟的Lucene算法,该算法会给出文本相关性分数,以及综合考虑文本的字数,这个搜索词在所有文本中出现的概率等因素。难点在于怎么去处理文本之间的关系,以及数据之间的关系,而这个便是搜索系统设计最核心的部分。

  3.4、结果召回及排序

  搜索在呈现结果数量方面本身是一个边际效益递减的产品。

  图片中的红色至蓝色代表用户点击次数,用户点击次数越多则该区域颜色越红,点击次数约少则为蓝色,这种用户点击行为数据可视化表示的用户点击区域的热度。由图我们可以看出用户点击行为,主要集中在前三条结果的,表明前三条检索结果点击热度较高。用户本身对首页前几条的关注度最高,剩下的关注度则相对较低。且用户对首页的检索结果远远高于后面页面的检索结果,因此搜索引擎并没有必要把所有结果都给展示用户。

  通过筛选后的检索结果展示给用户,比如我们召回了50条结果,但我可能前端展示给用户的检索结果只有10条。这个时候就需要对召回的检索结果进行合理的排序,根据算法对内容的相关度计算和业务相关性筛选后的结果进行打分排序,呈现给用户想要的检索结果。不同场景下检索结果的排序也会不一样,比如出行场景下热度高的结果排在前面,外卖地址检索时则加强距离的权重因子,距离近的排在前面,文本内容检索则将文本相关度高的结果排在前面等。

  四、检索结果评估

  评估检索结果的好坏主要从两个方向来看,一个是检索结果的数据层面,另一个是检索的性能层面(即效率)。本文关于检索结果的评估主要讨论的是数据层面的检索结果评估,常用的衡量标准是检索结果召回率,准确率和排序合理性。

  召回率(recall)=检索到的相关内容 / 所有相关的内容总和=A / (A + C)

  准确率(precision)=检索到的相关内容 / 所有检索到的内容总数=A / (A + B)

  在实际项目中,因为召回率和准确率相互影响,所以我们尽可能在保证一定召回率的情况下提升准确率(但如果是反作弊系统则是在保证准确率的情况下,保证召回率)。因此,我们通过统计出一组不同阀值下的准确率和召回率的关系,称之为P-R曲线。计算一个F值作为准确率和召回率的综合表征,F=2*P*R / (P + R) 。在实际应用中也会对参数进行调整做出适应使用场景的灵活变化。

  排序的合理性评估则是需要根据用户的使用场景确定是要根据热度排序还是距离排序等进行评估。评估时需制定评估标准,做到评估标准相互独立,完全穷尽的原则,便于他人理解与工作复查(检索结果排序常用GSB方式评估,需要注意Bad中是否有极端bad的结果)。

  五、总结

  用户在使用检索服务时,检索结果的准确度和效率是影响用户体验的关键因素,而检索结果的准确性依赖数据和推荐算法。针对不同数据类别的检索必要信息不同,检索结果的展现方式也应不一样,需要根据用户的使用场景去建设。各类检索的逻辑流程大体相似,但子项策略多样,在做检索的功能时,一定要注意用户的使用场景和用户的输入习惯。

非凡机械网 版权所有,未经允许不得转载:非凡机械网 » 许宏宇:什么是检索?
分享到: 更多 (0)