大家肯定都使用过电商网站买过东西,但是有没有思考过一个问题:当你在搜索框输入一个关键词之后,电商网站是如何帮你快速、准确的找到你想要的商品的呢?
前端页面层面用户只是点击了一个搜索按钮,非常简单。但是从后端底层逻辑来说,却异常复杂。接下来我就用尽量通俗易懂的语言跟大家讲一下。
搜索的后端逻辑主要分为以下几个步骤:
步骤一:用户输入关键词
我们称用户输入的关键词叫做“Query”。
步骤二:预处理
搜索引擎可以对用户输入的搜索词做预处理,以此提供用户更想要的搜索结果。这个步骤主要分为以下几个子步骤:去除搜索词的无用部分,比如用户搜索:华为手机的充电线,其中“的”就是无用词。当然违反广告法以及违法、涉黄的词也是无用词。
改写/纠错,用户在某些场景下由于疏忽可能导致输入词存在错误,这时候就需要算法或者人工进行改写或者纠错,比如用户搜索“华W手机”这时候就需要纠错为“华为手机”
步骤三:分词
经过预处理之后,就要进行分词,分词效果的优化直接影响召回数量,减少无结果率,提高搜索召回质量,所以在整个搜索逻辑中非常核心。
什么叫分词呢?还是以“华为手机的充电线”为例,经过预处理之后已经把“的”这个无用词去掉了,剩下“华为手机充电器”这个核心词。
效果差的分词是:华、为、手、机、充、电、器,这么分词搜索引擎都不知道该如何给你返回商品
效果好的分词:华为、手机、充电器,这样语义才是清楚的,才可以进行后续的召回操作。
当前已经有比较常见的分词词库,来处理常见的分词,比如阿里云开放搜索,都可以帮助电商企业实现很好的分词效果,所以如果是一家初创的电商网站的话可以直接购买词库。
步骤四:同义词扩展
分词完成以后,是不是就直接帮用户去召回跟关键词相关的商品了呢?不是的。
中间需要加一个同义词拓展的过程,这其实就是对于分词效果的优化,这样可以减少无结果量,提升召回的质量。
因为在我们的语言中,存在着形态和发音完全不同的两个词有可能表达的一个意思的情况。比如:男人和男士,还比如AirPods和苹果耳机。
由于用户在输入端输入的信息和商品信息匹配端的信息不是对等的;比如:商品标题里由于维护的字数有限,没法将所有的相关的关键词信息输入进去,如果我们将标题维护男士皮鞋* 那么用户输入“男人皮鞋”,使用精确匹配的规则就无法搜索到对应的产品,因此同义词就是用以扩展搜索结果,给到用户更多相符合的产品而存在的。
关于同义词是怎么来的,其实在电商中每家公司都会维护一个同义词的词库,当分词完成之后就可以直接从词库中寻找同义词。
步骤五:匹配召回
在讲匹配召回之前先跟大家补充一个搜索逻辑中一个非常重要的概念叫做:索引。
我们知道搜索的核心在于将最合适的货品展示在最有需求的用户面前。用户的需求我们可以通过分词获取到,那货品的信息我们该如何获取到呢?答案就是索引。
索引,简单理解就是电商中带有各种商品属性的商品库,其实就是可以理解为电商平台的商品库,商品的结构化数据会存储在索引倒序表中,作为连接用户需求和商品的桥梁。
那这个商品库中有哪些商品属性呢?
首先第一部分商品的固有属性:商品名称、商品的颜色、尺码等规格属性、商品库存、所属类目、商品价格、商品标签等等都是;第二部分是销售属性:商品的销量、评分、转化率等数据,以上就是索引库的内容。
所谓的匹配,其实就是将用户分词后的“需求”跟商品的的标题,属性,类目,标签,描述等所有索引信息进行匹配,然后把符合要求的商品抽取出来展示给用户,这就是匹配召回。
步骤六:无少结果判断
匹配召回的时候需要加一种判断,就是无结果或者少结果的判断。比如我搜索“XXYYAABB”平台上就没有对应的商品跟我的搜索词相匹配,这就是无结果的情况。
少结果,没有给大家找到对应的例子。其实大家可以理解为:用户搜索的关键词搜到小于X个产品,有些公司设置为4;有些公司设置为8;有些公司设置为12,反正大家理解这个意思就可以了。
其实不管是无结果还是少结果的情况,处理逻辑都是类似的就是给一些推荐搜索,如下图所示:
步骤七:类目预测
如果搜索匹配召回不是无结果或者少结果的情况,那就进入到类目预测环节。
比如用户搜索“苹果”,那用户到底是想购买苹果电子产品呢?还是购买水果苹果呢?
还比如用户搜索小米,那用户是搜索小米手机呢?还是小米电视?还是小米智能手表?还是我们吃的粮食小米,这都是不确定的。但是当用户输入一个关键词之后,大概率是一个物品词或者一个品牌词,所以就要先提前预测一下用户到底想要购买哪一类商品,这就是类目预测
类目预测就是根据类目下的文本信息和行为数据,计算query与类目的相关度,从而达到预测query的查询意图的目的,计算哪些类目与query最相关,用类目相关度影响搜索结果的排序。
也就是说,当通过行为数据分析,发现搜索”电脑”的用户,大部分的搜索意图都为“笔记本”,那么召回排序上优先“笔记本类目”。
但是每个类目下又有非常多的商品,比如像笔记本里面也有非常多的商品,这些商品也需要跟用户的搜索词全词匹配,不是说预测出来的类目下的所有商品都会召回,而是需要用户进行一定的筛选。
类目预测完成之后其实筛选项的参数范围也就确定了。相信大家肯定都注意到了我搜索电脑和搜索手机的筛选项是不一样的。
步骤八:商品排序
类目预测结束之后,就是排序。就是召回的这些商品先展示哪个后展示哪个?
排序的算法有很多种,比如根据用户的行为数据进行排序,根据商品的综合评分排序。
排序的具体规则都是每家电商的不传之秘,不然作为商家就会利用电商的排序规则从而为自己谋利,也就破坏了搜索服务的公正性。大家也不需要清楚的知道电商的具体排序算法,但是可以了解一下排序的影响因子。
虽然各家公司的排序因子会存在一定差异性,但是主要参考两大维度:商品维度,比如商品价格、商品的销量(又分为7日销量、15日销量,月销量等)、商品的类目相关度、商品详情页的转化率、加购率、收藏率、购买好评率、退货率等。
还有一个是店铺的维度,比如店铺客服的回复时效、店铺整体的好评率、退货率、电铺整体的商品丰富度等等一些维度。
为什么会选择以上这些因子作为重点参考呢?是因为我们基于这样的一些思维假设:
1)我们认为消费者查询商品时都期望商品的价格足够优惠,对应价格因子。
价格因子主要看商品的定价,是否有促销价,历史成交价等子因子。
2)我们认为消费者希望商家提供的商品质量足够高,也就是质量因子,质量因子可以通过购买好评率、商品的销量、收藏率、加购率、商品的退货率等因子体现。
3)我们认为消费者希望商家提供的商品的相关服务足够好,对应服务因子。
服务因子主要是指商品交易环节所提供的各个环节服务的综合水平,主要可以通过商家回复的时效性、店铺好评度等子因子体现。
然后综合以上影响因子,每一项有一个权重值,经过一系列的算法计算,权重越高的商品搜索结果越靠前。
综合分值(相关性)=影响因子*权重/平衡数值
跟词库类似,权重也是需要定期更新不断完善的过程。
步骤九:前端渲染
当排序确定之后就可以直接从商品中心调取商品数据,前端渲染展示给用户了,也就是我们在搜索结果页看到的商品列表了,这就是一个完整的搜索后端的逻辑。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至22018681@qq.com 举报,一经查实,本站将立刻删除。