定义:简言之,就是找东西。找东西需要有东西可找,也需要找东西的入口。
用户输入想要寻找的内容,计算机根据该内容检索数据库中数据,并返回用户给用户。
所以核心是让资源与用户需求相匹配。
涉及方:
需求方视角
|
供应方视角
|
平台视角
| |
搜索
|
希望解决问题
|
创造内容满足用户,变现
|
输出满足用户
整合资源满足用户、注体验
不满足的创造来满足
收入
|
搜索的流程:
搜索基本过程
![](https://i-blog.csdnimg.cn/blog_migrate/37ab751797544a2ba5ca3c6ea464b325.png)
-
搜索的详细过程:输入查询→查询处理(纠错、词意理解之类)→检索→召回(向量召回:基于session向量召回、基于bert语义向量召回)→过滤→排序(初排、精排、重排)→输出
-
数据:采集→数据库→预处理→索引生成→索引数据
-
输入查询:用户输入的query,希望找到什么内容
-
查询处理:用户自己输入文字,主观性会很强,这时候会出现很多问题,比如输错字、输入拼音、语句有毛病、输入的文字系统没有、甚至有用户不知道自己找什么,随便输入一通。
对输入文字纠错
搜索软件对拼音的纠正
用户会出现输错的情况,很多平台都会针对文字进行纠正
对繁体字的纠正,综合性的平台目前都有执行,但是垂直类的平台因存在账号、视频、文章的原因,并没有进行纠正
对query进行回退
从出词可以看出,已经并不是在用户query后面接内容
-
所以这时候系统会根据用户输入的query进行纠错、分词、回退、词意理解等操作,目的就是从字面上尽可能理解用户的需求,方面后续的系统进一步操作
-
检索:系统将处理好的query在系统里进行查找,但是数据库的内容庞大,纠正要给用户看什么内容呢?这时候就要进行第一步的筛选→召回
-
召回:召回其实就是按照某项标准从池子里取出某些数据。这里包括3个部分:召回路径、召回结果
-
召回路径:也就是召回规则或者策略,常见的有关键词召回、文本相似召回、相似意图召回等等
召回路径 召回条数 去重条数 结果条数 关键词召回 10000 9999 7021 相似文本召回 2000 1888 1321 相似意图召回 3000 2122 2110 历史点击召回 7899 6790 5121 ...... ...... ...... ...... ...... ...... ...... ...... -
召回结果:将召回候选的内容按照标准打分,按照得分高低排序,最后取top
-
产品可以发挥的作用:协同技术制定召回策略,训练模型;选择需要召回的技术库;扩大/缩小召回量;制定召回规则/阈值;增加召回路径(看后搜、搜后搜、意图相近、文本相近、多路径召回等等)
-
-
过滤:过滤往往与业务的安全性相关,这一步的目的是剔除掉那些色情、政事、敏感人物相关的内容,所以会有很强的标准作为参考,而且标准是不停变化的,这就需要人工+机器协同进行。其实这一步放在哪一步之间都行,而且也可以不止过滤一次,根据业务要求来,比如可以过滤站外信息、相同内容去重等等。
召回候选 安全性过滤 去重过滤 时效性过滤 ...... 10000 8000 6000 4000 ...... 99999 6000 5000 3500 ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... -
产品可以发挥的作用:制定过滤条件(缩进/放开对低质内容的限制、缩进/放开文本/图片的限制、缩进/放开相关性的系数)
-
-
排序:排序的逻辑是基于某一目标,将用户与产品作为指标,通过算法训练好的函数,计算出预测目标值,按照预测目标值进行筛选与顺序展示。
-
这一过程一般包括粗排和精排,是搜索重要的环节,路径离用户越近,可能对用户的影响就越大,所以这一环节常常是业务部门优化的重点之一。
-
粗排:与精排相对,从字面意思上可以看出,是按照比较简略的规则和策略将召回的内容进行简单排序,本质上是选出最能满足用户需求的内容。
-
因为召回的内容数据其实也不少,所以这一步也会踢掉一些内容,只会取排序后的top内容。常见的规则会有热度(赞转收藏等)、标签、近期行为等等。(ps:其实有一步的前提是数据庞大且业务需求,如果数据本身就很少,就没必要进行这一步了==)
-
-
精排:这是搜索过程中非常重要的一环,目的是从召回、粗排中按照更加严格的标准,将粗排过的内容进行排序。
-
因为展示的内容以及顺序会影响用户的满意度、业务的收入,所以在精排环节会有很多的排序策略,比如按照历史点击模型、相关性模型、ecpm模型等等。这里需要注意的是,模型需要一定的数据进行训练,模型的标准也不是固定的
候选 综合得分 排序 相关分 CTR分 CVR分 ecpm分 ..... ..... 候选1 0.92 1 0.45 0.23 0.04 0.03 ..... ..... 候选2 0.88 2 0.25 0.13 0.05 0.05 ..... ..... 候选3 0.34 4 0.1 0.21 0.09 0.04 ..... ..... 候选4 0.45 3 0.25 0.2 0.09 0.033 ..... ..... ...... ...... ...... ...... ...... ...... ...... ..... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... -
产品作用:制定排序策略。尤其是在数据多了之后,算法没办法照顾到很多的指标,所以需要产品选择利用那部分数据,参与算法的计算。这些数据包括用户用户属性(年龄、性别、地域、学历、收入.......),内容属性(发布时间、时长、作者、图文形式......),行为属性(ctr、vv、下单、付费、下载、活跃、lt......),显著特征(最近租房的人可能需要购买家具、暑期到了旅游旺季、毕业季迎来招聘季......)
-
-
-
-
输出:一般来说,从你进入到搜索页面,你的搜索行为就算是开始了。所以一般会有搜索前,搜索中,搜索后三个流程。
-
在搜索前,系统会根据你的历史行为、用户属性、用户需求、近期热点、重点通知等等标准进行推荐,而用户可以根据推荐点击搜索。常见的界面是搜索框+猜你想搜+搜索榜,这三者的顺序在不同软件是也是不一样的,例如微博就是搜索框+搜索榜单+feed流推荐内容
-
-
搜索中:搜索过程中的界面相对简单,都是根据用户的输入词进行补充或者修改,最多是字体、颜色、底色有细微的差别,目的就是引导用户点击
-
-
搜索后:用户在搜索后的变动花样更多,因为越接近用户的决策,对用户的影响越大。展示上会有文本、文本+图片、大图、大图+小图等等。因为目的就是促使用户点击→决策,所以现在很多软件会缩短搜索的路径,比如以前点击后需要站外打开,现在直接在站内承接。
-
-