电商|电商搜索系统精讲系列三步曲2( 二 )


我们采用同样的套路,召回的商品(因为这个量级也是非常巨大的)先海选,再去精选,业内很多人称海选为粗选,所以召回的商品先要进行粗选,通过粗选把可能满足用户意图并且是相对优质的商品(比如有一万个)全部筛选出来,再去优化(一万个召回的商品精选排序)这个选择的结果,最后把选出来的前1000(只是假设)个商品进行排序展示给用户;
搜索引擎本身对于检索性能要求比较高,所以需要采用上面说的两个阶段排序过程:粗排和精排。粗排就是上面说的海选,从检索结果中快速找到优质的商品,取出TOP N个结果再按照精排进行打分,最终返回最优的结果给用户。所以一般在搜索系统中,粗排对性能影响比较大,精排对最终排序效果影响比较大,因此,粗排要求尽量简单有效,只提取数据库表中的关键因子(字段)即可,关键的问题在于打分怎么打,下面将给大家介绍常见的打分策略:
我们首先引入一个新的概念—-表达式计算法
所谓表达式计算法:通俗的讲,就是通过不同的计算公式来运算每个被召回的产品和用户意图的相关度,这个相关度某种意义上讲就是打的分数,业内普遍称这个过程为相关算分,一般常见的计算公式比如基本运算(算术运算、关系运算、逻辑运算、位运算、条件运算)、数学函数和排序特征(feature)等。
基本运算:
电商|电商搜索系统精讲系列三步曲2
文章插图
数学函数:
电商|电商搜索系统精讲系列三步曲2
文章插图
以上两个函数比较简单,高等数学里面都有的内容,这里不再细说,下面来看下上面提到的粗排常用的几个函数(以下为天猫搜索为例):
关键词相似文本分Text similarity函数:用于计算用户输入的关键词文本与召回的商品相关度,值越大,则相关度越高;
召回商品距离现在的时间GoodsTime函数:用于计算召回的商品距离现在的时间,一般取值为(0,1)之间,一般值越大,表商品距离现在时间越近,越容易被展示在用户的界面;
类目预测函数CategoryPredic:用于计算用户输入的关键词与商品类目的相关度,关于类目预测这里需要仔细说明下:
所谓类目预测,指的是通过计算机的算法去预测搜索的关键词与商品
类目的相关程度,我们举个例子,当用户在淘宝APP搜索框中输入关键词“苹果”,则类目预测会计算商品所属类目与输入的苹果这个关键词的相关度,类目与关键词的相关度越高,商品就获得了越高的排序得分,也就是上文说到的相关算分值就越高,从而这个商品就会排在越前面,借助下面这两张图,就更好理解了:
第一张图:搜索的关键字是“苹果”,既有手机类的商品也有食物类的商品,左图就是典型的没有使用类目预测模型来打分,所以把食物类的苹果也召回并且优先排序在前面,右图是使用后类目预测模型后的打分排序效果;
电商|电商搜索系统精讲系列三步曲2
文章插图
用户输入“苹果”,查询到一批商品,这些商品中有一部分的商品类目是“手机类”,另一部分的商品类目是“食物类”,根据计算机大数据对全量用户的搜索历史行为分析得出,搜索“苹果”的人里面,点击“手机类”类目商品的人要比点击“食物类”类目商品的人多得多,则类目预测就会给出这样的预测结果:“手机类”类目与“苹果”的相关度要比“食物类”类目与“苹果”的相关度高,所以在计算每个商品的相关算分时,“手机类”类目商品的算分值就会比“食物类”类目的商品算分值高,因此“手机类”类目的商品会排在更前面,这样就提高了搜索的业务价值;

推荐阅读