首页 > 编程知识 正文

三部曲是什么意思(电商网)

时间:2023-05-05 02:26:16 阅读:105600 作者:785

编辑:在电商软件中搜索一个产品,页面上会显示很多相关的产品。这些页面是如何显示的?为什么会这样显示?本文作者以电商产品为例,分析其页面排名系统,希望对大家有所帮助。

00-1010上一篇文章,我们分析了一个电子商务搜索系统的业务以及召回分析器和模型。比如用户在淘宝APP搜索框输入搜索关键词“2021新款花式促销女装”时,搜索系统会通过分析器和各种模型了解用户的搜索意图,进而达到召回产品的目的(这一块的原型将在“电商搜索系统精化系列”下一个三部曲中推送给大家);

然后考虑一个问题。用户搜索“2021新款花式促销女装”后,页面如何显示,为什么会这样显示?依据是什么,如下图?

这就是我们今天要讲的。往下看:

在分析这篇文章的内容之前,我还是再次引用现实生活中的场景模型:

一家公司的产品总监需要招聘一名具有中台教育行业丰富经验的产品经理,BOSS直接聘用的岗位说明书JD(Job Description)增加了具有中台教育行业经验的招聘要求,所以以下求职者去面试:

b:应聘者有教育行业经验,但没有中国大陆和台湾的产品建设经验;c:考生有教育行业经验,但工作年限短,不够丰富;候选人D:有中国大陆和台湾的产品建设经验,但没有教育行业经验;e:申请人在中国大陆和台湾有丰富的教育经验,但之前做的是解决方案,不是产品经理岗位;现在,假设你是这家公司的产品总监,你应该选择什么?别看下面,先思考;

其实答案很简单。你必须选择一个适合这个职位要求的。那么什么是合适的,判断的依据是什么?作为产品总监,你如何评价这四位求职者?

现在一些大公司已经购买了线上招聘系统,HR和产品总监直接将这四位求职者的面试结论用文字输入到这个招聘系统中,系统会给出建议分数,提供给产品总监和HR人员进行决策评估和参考。当然,没有这个线上招聘系统也没关系。最土的方式是手工填写面试评估表,手工打分,但是这种方式的打分比较主观。

所以最后的结论就是给每个求职者打分,然后对B、C、D、E四个求职者进行打分排名,排名第一、第二、第三、第四,最后选出最佳人选。

好了,我上面说的是招聘工作。好好想想。每年高考我们都是这样挑选最好的考生吗?采用相同的场景模型,我们尝试在线移动,并将其应用于召回产品的排序。然后看:

然后,问题来了。同一个场景模型移动到线上,会涉及到召回产品如何评分。这是核心。人类有可以用于主观判断的大脑,但是计算机没有眼睛,没有感觉系统,所以不能像人类一样思考。所以我们需要做的就是输入一系列的评分规则给他,电脑就可以对召回的产品进行评分和排序,从而达到我们的目的。接下来,我们来看看排序策略。

00-1010,当你回想起之前浙江卫视的中国好声音节目,那些在电视屏幕上看到的歌手们,一定是提前开始了海选,然后一步步通过了海选,才参加了电视歌唱比赛。如果没有试听,大家只要报名就可以直接在电视上唱那首歌,这样会把浙江卫视的工作人员累死。于是,选手们通过了海选,一步一个脚印的比赛,一次过一关,最终选出了表现最好的选手。

我们采用同样的程序。召回的产品(因为这个数量级也很庞大)先海选,再选。很多业内人士称之为海选粗选,所以召回的产品首先要通过粗选进行选择,将所有可能符合用户意向且质量相对较高的产品(例如万件召回产品)通过粗选进行筛选,然后对选择结果(万件召回产品通过选择进行排序)进行优化,最终选出前1000件入选产品。

搜索引擎本身对检索性能要求很高,因此需要采用上面提到的两阶段排名过程:粗排名和精排名。粗略排名就是上面提到的海选。我们可以从搜索结果中快速找到高质量的产品,取出TOP N的结果并根据精细排名进行评分,最终将最好的结果返回给用户。因此,一般来说,在搜索系统中,粗排列对性能影响很大,细排列对最终排序效果影响很大。所以要求粗排尽可能简单有效,只能提取数据库表中的关键因素(字段)。关键问题在于如何得分。在这里,我们将介绍常见的评分策略:

首先,我们引入一个新概念——表达式计算方法。

所谓的表情计算方法:通俗地说,就是通过不同的计算公式来计算每个召回产品与用户意图的相关性。从某种意义上说,这种关联度就是得分。业界一般称这个过程为相关得分。基本运算(算术运算、关系运算、逻辑运算、位运算、条件运算)、数学函数、排序特征等常见计算公式。

基本操作:

数学函数:

>

以上两个函数比较简单,高等数学里面都有的内容,这里不再细说,下面来看下上面提到的粗排常用的几个函数(以下为天猫搜索为例):

关键词相似文本分Text similarity函数:用于计算用户输入的关键词文本与召回的商品相关度,值越大,则相关度越高;

召回商品距离现在的时间GoodsTime函数:用于计算召回的商品距离现在的时间,一般取值为(0,1)之间,一般值越大,表商品距离现在时间越近,越容易被展示在用户的界面;

类目预测函数CategoryPredic:用于计算用户输入的关键词与商品类目的相关度,关于类目预测这里需要仔细说明下:

所谓类目预测,指的是通过计算机的算法去预测搜索的关键词与商品

类目的相关程度,我们举个例子,当用户在淘宝APP搜索框中输入关键词“苹果”,则类目预测会计算商品所属类目与输入的苹果这个关键词的相关度,类目与关键词的相关度越高,商品就获得了越高的排序得分,也就是上文说到的相关算分值就越高,从而这个商品就会排在越前面,借助下面这两张图,就更好理解了:

第一张图:搜索的关键字是“苹果”,既有手机类的商品也有食物类的商品,左图就是典型的没有使用类目预测模型来打分,所以把食物类的苹果也召回并且优先排序在前面,右图是使用后类目预测模型后的打分排序效果;

用户输入“苹果”,查询到一批商品,这些商品中有一部分的商品类目是“手机类”,另一部分的商品类目是“食物类”,根据计算机大数据对全量用户的搜索历史行为分析得出,搜索“苹果”的人里面,点击“手机类”类目商品的人要比点击“食物类”类目商品的人多得多,则类目预测就会给出这样的预测结果:“手机类”类目与“苹果”的相关度要比“食物类”类目与“苹果”的相关度高,所以在计算每个商品的相关算分时,“手机类”类目商品的算分值就会比“食物类”类目的商品算分值高,因此“手机类”类目的商品会排在更前面,这样就提高了搜索的业务价值;

所以我们在做产品原型设计的时候也要考虑搜索的关键词与商品类目的相关程度,需要在原型的设计里面增加类目预测的模型的设计;

再来回过头看,我前面讲的,排序首选要进行海选也就是粗排,再针对粗排后的商品结果进行精排,粗排已经讲了,精排怎么排?

同样是要通过函数去计算搜索的关键词与商品的相关度,常见的函数有:

文本相关度函数:

text_relevance: 关键词在字段上的商品匹配度field_match_ratio:获取某字段上与查询词匹配的分词词组个数与该字段总词组个数的比值query_match_ratio:获取查询词中(在某个字段上)命中词组个数与总词组个数的比值fieldterm_proximity: 用来表示关键词分词词组在字段上的紧密程度field_length:获取某个字段上的分词词组个数query_term_count: 返回查询词分词后词组个数query_term_match_count:获取查询词中(在某个字段上)命中文档的词组个数field_term_match_count:获取文档中某个字段与查询词匹配的词组个数query_min_slide_window:查询词在某个字段上命中的分词词组个数与该词组在字段上最小窗口的比值

地理位置相关性:

distance: 获取两个点之间的球面距离。一般用于LBS的距离计算。gauss_decay,使用高斯函数,根据数值和给定的起始点之间的距离,计算其衰减程度linear_decay,使用线性函数,根据数值和给定的起始点之间的距离,计算其衰减程度exp_decay,使用指数函数,根据数值和给定的起始点之间的距离,计算其衰减程度

时效性:

timeliness: 时效分,用于衡量商品的新旧程度,单位为秒timeliness_ms: 时效分,用于衡量商品的新旧程度,单位为毫秒

算法相关性:

category_score:类目预测函数,返回参数中指定的类目字段与类目预测query的类目匹配分popularity:人气分,用于衡量物品的受欢迎程度

功能性:

tag_match: 用于对查询语句和商品做标签匹配,使用匹配结果对商品进行算分加权first_phase_score:获取粗排表达式最终计算分值kvpairs_value: 获取查询串中kvpairs子句中指定字段的值normalize:归一化函数,根据不同的算分将数值归一化至[0, 1]in/notin : 判断字段值是否(不)在指定列表中

以上函数大家不用去研究细节,看看函数的中文解释就好,帮助理解和消化,知道精排的算分怎么统计、哪些维度去统计即可,如果依然不理解的,可以跟我一起交流;

说到现在大家一定很好奇,为什么用户最关心的商品热度没有提到,不着急不着急,接下来,我们就要针对搜索热度比较高的商品一般怎么排序,引入一个新的概念—–人气模型;

上面说的类目预测模型是要实时去计算,而人气模型可以在离线的时候进行计算,一般也叫离线计算模型,这种模型也是淘宝和天猫搜索最基础的排序算法模型。

人气模型会计算量化出每个商品的静态质量以及受欢迎的程度的值,这个值称之为商品人气分,最开始人气模型是来自淘宝的搜索业务,但其实这个模型对于其他的搜索场景也有很强的通用性,在非商品搜索场景中通过人气模型也可以计算出被索引的商品的受欢迎程度,比如某个论坛,可以通过人气模型排序搜索比较多的帖子,把这些帖子内容优先展示给用户;

那么对于一个商品而言,这个人气模型究竟怎么计算,毕竟系统的目标是通过这个模型来计算商品的热度,进而打分排序,你说对吧;

一般情况下,人气模型从四个维度去计算分值,具体如下:

第一个维度:实体维度;

比如:商品、品牌、商家、类目等。

第二个维度:时间维度;

比如:1天、3天、7天、14天、30天等。

第三个维度:行为维度;

比如:曝光、点击、收藏、加购、购买、评论、点赞等。

第四个维度:统计维度;

比如:数量、人数、频率、点击率、转化率等。

每个特征从以上4个维度中各取一到两个进行组合,再从历史数据中统计该组合特征最终的特征值:

比如:

商品(实体)最近1天(时间)的曝光(行为)量(统计指标);商品所在店铺(实体)最近30天(时间)的销量(行为类型+统计维度)等等。

由以上方法产生的结果数量级,等同于去计算4个维度的笛卡尔积,再对笛卡尔积的算分高低进行排序;

好了,说到现在关于召回的商品排序所采用的算法目前我所了解的就这么多,当然能力有限,有些搜索的细节依然需要进一步去摸索;

03 召回与排序总结

我们来对上一篇文章和今天讲的内容简单的做个总结,当用户在淘宝APP搜索框中输入“2021年新款花式促销女士连衣裙”时,搜索引擎系统首先要去理解用户的意图,理解的方式就是上篇文章提到的分析器,通过对语义的理解、命名实体识别、拼写纠错、停止词模型等手段去理解用户的意图,进而通过这个意图计算机去到后台数据库中检索符合意图的所有商品,当商品被检索出来之后,搜索引擎系统首先要通过各类函数和模型对商品进行粗排,再对粗排的结果进行精排,精排的依据就是上面的函数和模型,当然还有类目预测模型和人气模型,这个就是大概的流程;

依然没有结束,首先来看下面这张图:

想一想,上面左图中的热搜底纹和热搜列表是怎么来的、右图中的下拉提示又是这么出现的?这个就是原计划需要在今天跟大家讲的引导排序内容;

关于引导排序这块的内容我们放到下一篇继续分享,今天就写到这,再见!

04 预告

本文由 @产品研究站 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Pexels,基于CC0协议

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。