搜索的基本框架
搜索的基本框架
1、搜索与推荐
用户从海量文本中获取信息主要通过两个途径,搜索和推荐;搜索和推荐的区别在于,搜索是通过输入一定的信息,获取对应的信息,是一个主动获取信息的过程。推荐则是app/web根据用户的历史行为数据,猜测用户的喜好,进行内容的推送。
2、搜索分类
2.1.搜索分类
一般搜索分为大搜和垂搜,大搜就是像百度、google、bing等对相关网页进行搜素。垂搜指的是某一领域的搜索,比如爱奇艺中的视频检索、淘宝的商品检索、贝壳的房子搜索等。
2.2、搜索业务
搜索词补全
搜索
相似搜索推荐
2.2、搜索常见素语
query:检索词,可以是商品名、视频名、房子信息、关键词等
doc:数据库中对应的文档,doc可以是商品,视频,房子等
索引:标识doc位置,加速搜索的一种方法,类似于书的目录。
引擎:实现检索的平台
2.3、搜索模块
query解析 -> 相关文档召回 -> 粗排 -> 相关性计算 -> 精排 -> 重排
3、各模块简介
3.1、query解析
query解析是指对文本中传入的query进行解析,一般包含query的分词、意图识别、tagging、query改写、标签识别等等。
3.2、召回
召回是指从索引表中初步获取相关的doc,一般包括2种方法,1)文本seek->粗排截断,根据关键词构建倒排索引,拉取包含query所有分词的数据;2)向量召回,将query和doc分别表示成embdding的形式,然后计算query与doc的相关性,反馈相似性最高的top n个数据。
3.3、粗排
粗排截断一般在召回之后,对文本进行一个简单的筛选功能,减小后面相关性和精排的压力。一般是一个简单的gbdt或lr模型。
3.4、相关性计算
相关性计算一般接在召回的后面,对各路召回的doc进行一个汇总,实现进一步筛选,给每个doc一个档位预测、计算一个相关性分数,供下游的精排使用。
3.5、精排
精排阶段数据量较小,一般可以使用较为复杂的模型,例如deepFM、DNN、bert等等。
3.6、重排
重排一般发生在一些业务规则,基于一些业务逻辑,对最后的结果进行重新排序。
【1】 (搜索的基本概述)