淘宝搜索算法现状

标签: 淘宝 搜索 算法 | 发表时间:2015-04-21 16:58 | 作者:
出处:http://kb.cnblogs.com/

  淘宝搜索排序的目的是帮助用户快速的找到需要的商品。从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置。为了更好的实现这个目标,算法排序系统基本按三个方面来推进:

   一、算法模型

  当用户输入关键词进行搜索的时候,系统依据算法模型来给匹配到的每个商品进行实时的计算,并按照分数的大小对商品进行排序。

  对于好的算法模型,首先需要考虑我们能够有哪些特征因子可以应用。比如在网页搜索中,算法模型基本就是按网页的重要性和相关性给网页计算一个分数,然后进行排序。这里的相关性,和重要性就是网页排序模型中两个重要的因子。具体来说相关性因子是指搜索关键字在文档中出现的度数,当这个度数越高时,则认为该文档的相关程度越高。重要度因子比如 Google 的 Pagerank,可以理解为一个网页入口超级链接的数目:一个网页被其他网页引用得越多,则该网页就越有价值。特别地,一个网页被越重要的网页所引用,则该网页的重要程度也就越高。 

  考虑淘宝搜索的时候,有些特征因子是很容易能想到的,比如:

   A、文本的相关性:关键词和商品的匹配,匹配的程度,是否重要词的匹配,匹配词之间的距离等,都可能影响相关性。比如搜索“小鸭子洗衣机”的时候,一个商品的中心词是洗衣机的要比卖洗衣机配件商品的相关性高,小鸭子连在一起的相关性要比“小”和“鸭子”分开时候的相关性高等。文本相关性最基本的计算方式可以参考 BM25 等。

   B、类目热点:淘宝数据的一个重要特质是每个商品都挂靠在类目属性体系下面,每个商品都做了一个很好的分类。在搜索过程中,同一搜索词的大量用户行为数据很容易聚焦到相应的热点类目,比如“手机”的搜索行为会集中到手机类目,而不是配件类目。

   C、图片质量:图片是电子商务网站非常重要的一个数据,图片是否精美吸引人,图片上是否有各种各样的“牛皮癣”,和商品匹配度等都很大程度上影响着用户的点击和购买决策。

   D、商品质量:每个商品都有不同的质量,商品的描述真实性,是否物美价廉,受人欢迎的程度等。

   E、作弊因子:类似于全网搜索有关键词堆砌,link spam,网页重复等等作弊的问题,电子商务搜索也面临同样的问题,比如商品关键词堆砌,重复铺货,重复开店,广告商品引流等等,也有商品特有的问题如价格作弊,交易作弊等,需要利用统计分析或者机器学习来做异常行为,异常规律的发现和识别并运用到排序中。

   F、公平因子:淘宝的商品很丰富,每个搜索词下都有足够多的商品在竞争,需要在相似质量的情况下让更多的商品和卖家有展示的机会,而不是像网页搜索一样是一个基本静态的排序,照成商品点击和展示的马太效应。

  类似的商品,卖家,买家,搜索词等方面的特征因子有很多,一个排序模型就是把各种各样不同的特征因子组合起来,给出一个最终的关键词到商品的相关性分数。只用其中的一到两个特征因子,已经可以对商品做一些最基本的排序。如果有更多的特征参与到排序,我们就可能得到一个更好的排序算法。组合的方法可以有简单的人工配置到复杂的类似 Learning to Rank 等的学习模型。

  那么如何衡量不同算法之间的优劣呢? 

   二、线下评估

  算法模型的评估一般分为线下的评估和线上的评估,线下的评估很多都体现在搜索中常用的相关性(Relevance)指标。相关性的定义可以分为狭义相关性和广义相关性两方面,狭义相关性一般指检索结果和用户查询的相关程度。而从广义的层面,相关性可以理解为用户查询的综合满意度。当用户在搜索框输入关键词,到需求获得满足,这之间经历的过程越顺畅,越便捷,搜索相关性就越好。

  在淘宝搜索衡量狭义相关性的时候,一般是使用 PI(Per Item)测试的方法:

   A、抽取具有代表性的查询关键词,组成一个规模适当的关键词集合

   B、针对这个关键词集合,从模型的产出结果中查询对应的结果,进行人工标注(人工判断为相关性好、中、差等), 对人工评测的结果数据,使用预定义好的评价计算公式比如 DCG 等,用数值化的方法来评价算法模型的结果和标注的理想结果的接近程度。

  利用人工标注数据来计算相关性的分数,来判断模型的好坏;在这个过程中人工不可避免的会有主观的判断,但综合了多人的判断结果还是可以获得一个有统计意义的结果,另一方面标注数据也可以帮助我们找到一个算法表现不理想的地方,有针对性的提升。
广义的相关性线下评测比较困难,受人工主观因素的影响更大,一般使用 SBS(Side by Side)的评测方法,针对一个关键词,把两个不同算法模型产出的结果同时展示在屏幕上,每次新模型和对比模型展示的位置关系都是随即的,人工判断的时候不知道哪一边的数据是新模型的结果,人工判断那一边的搜索结果好,以最终的统计结果综合来衡量新模型和老模型的搜索表现。

  线下评测的方法和指标有很多,不同的搜索引擎会关注不同的指标,比如以前 Yahoo 的全网搜索引擎比较关注 RCFP(Relevance,Coverage,Freshness,Perspective)等,淘宝搜索线下评测时候一般统计 DCG 和 SBS 的指标。

  线下的评测方法从统计上有一定的指导意义,能从一定程度上区分模型的好坏,但要真正验证算法模型的好坏,还需要接受真实的流量来验证。

   三、线上测试

  为了真实验证一个算法模型的好坏,需要有一个系统能提供真实的流量来检验。淘宝搜索实现的 BTS(Bucket Testing System)系统就是这样的一个环境,在用户搜索时,由搜索系统根据一定的策略来自动决定用户的分组号(Bucket id),保证自动抽取导入不同分组的流量具有可对比性,然后让不同分组的用户看到的不同算法模型提供的结果。用户在不同模型下的行为将被记录下来,这些行为数据通过数据分析形成一系列指标,而通过这些指标的比较,最后就形成了不同模型之间孰优孰劣的结论。只要分组的流量达到一定的程度,数据指标从统计意义上就具有可比性。

  不同的 BTS 系统会关注不同的数据指标,在淘宝搜索,有一些重要的指标是很多算法模型测试的时候关注的:

  • 访问 UV 成交转化率:来淘宝搜索的 UV,最终通过搜索结果成交的用户占比。
  • IPV-UV 转化率:来淘宝搜索的 UV,有多少比例的用户点击了搜索结果
  • CTR:搜索产生的点击占搜索产生的 PV 的比例
  • 客单价:每个成交用户在淘宝搜索上产生成交的平均价格
  • 基尼系数:基尼系数是一个经济学名词,考量社会财富的集中度;如果社会财富集中到很少一部分富人手中的时候,基尼系数就会增大,社会的稳定性和可持续发展性就会出现问题;淘宝搜索借用了这个概念来衡量搜索带给卖家的 PV 展示,和点击的集中度,在保证用户体验的前提下,给更多的优质或小小而美的卖家展示的机会。

  大部分时候我们都有好几个模型和功能在线上测试,我们用 BTS 的方式来观察测试的情况,如果提升稳定就逐渐开放给所有用户,如果没有提升,我们也能从中获得经验帮助我们更好的理解用户。

  作者介绍:青峰,淘宝搜索算法总监。

相关 [淘宝 搜索 算法] 推荐:

淘宝搜索算法现状

- - 互联网分析
淘宝搜索排序的目的是帮助用户快速的找到需要的商品. 从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置. 为了更好的实现这个目标,算法排序系统基本按三个方面来推进:. 当用户输入关键词进行搜索的时候,系统依据算法模型来给匹配到的每个商品进行实时的计算,并按照分数的大小对商品进行排序.

[转]排名算法(二)--淘宝搜索排序算法分析

- - 工作笔记
原文:https://blog.csdn.net/u011966339/article/details/78052569 . 淘宝搜索排序的目的是帮助用户快速的找到需要的商品. 从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置. 为了更好的实现这个目标,算法排序系统基本按三个方面来推进:.

【读图】淘宝搜索排名规则

- - i天下网商
有心人虎用军根据视频《淘宝搜索排名规则——相关性解读及其策略》整理出了详尽的思维导图,虽然不能完全代表淘宝搜索排名规则,但对于初级阶段的卖家来说,是不可多得的一份实战干货. 天下网商视觉团队设计,图说淘宝搜索排名规则. (注:此图仅供卖家学习交流,具体操作请以淘宝官方制定的淘宝搜索排名规则为准. 【网商百宝箱】淘宝搜索新规解读.

文本搜索:淘宝搜索新玩法

- - 派代网 - 资讯
“对于消费者和商家来说,都是新的开始. 淘宝搜索部门负责人文德如此描述将于1月7日测试上线的文本搜索选购知识的新功能. 这项新功能主要在用户搜索结果中增加产品选购的相关知识,而选购知识的提供者就是卖家. 淘宝搜索历来都是卖家关注的焦点,每一个排名的变化都会影响到卖家的切身利益,也会带来卖家或多或少的批评.

分布式搜索算法

- - 杨尚川的个人页面
对于搜索引擎来说,索引存放在成千上万台机器上,如何进行分布式搜索呢. 假设搜索结果是以分页的方式显示,以PageNumber代表当前页,从1开始,以PageSize代表页面大小,默认为10,以N代表搜索服务器数量. 最简单的分布式搜索算法为:有一台 合并服务器负责接受用户的搜索请求,然后分别向N台机器获取前PageNumber*PageSize条结果,得到的结果数为N*PageNumber*PageSize,然后把这些数据重新进行排序,根据所要显示的页面PageNumber,获取从(PageNumber - 1) * PageSize + 1开始的PageSize条结果返回给用户.

淘宝搜索规则十大金牌经验

- - i天下网商
史上最全搜索规则经验分享,包括:常见的违规现象、详情页链接的问题、主图质量的问题、卖家信誉的问题、橱窗推荐位和下架时间的使用、滞销宝贝的处理、宝贝属性的影响、消保的影响等. 处理: 系统识别后对涉嫌虚假销量、信用的宝贝给予三十天的单个宝贝搜索降权,同时根据卖家店铺涉嫌虚假交易情节严重程度给予卖家七至九十天的全店宝贝搜索降权.

【读图】27条影响淘宝搜索排名的因素

- - i天下网商
27条影响淘宝搜索排名的因素,不是绝对真理,却是非常实用的经验分享,给精细化运营添点料. 天下网商视觉团队作图,图说淘宝搜索排名因素. 【读图】2011淘宝母婴数据分析.

鬼脚七:淘宝卖家需知的搜索知识(上)

- - 派代网 - 资讯
对淘宝卖家来说,自然搜索流量最重要的一部分,如何从淘宝搜索获取更多的免费流量,是每个卖家最关注的话题之一. 之前很多卖家朋友会经常问我,能否讲讲搜索排序算法. 1、所有搜索引擎的排序算法,都是最保密的,无论是Google、Baidu,还是淘宝搜索. 我不可能告诉大家具体的算法,更何况算法每个月都有调整,或大或小.

HBase在淘宝主搜索的Dump中的性能调优

- - 搜索技术博客-淘宝
目前HBase已经运用于淘宝主搜索的全量和增量的数据存储,有效的减低的数据库的压力,增强了业务扩展的能力. Dump系统的特点是要求在短时间内处理大量数据,对延时要求高. 在实施这个项目过程中,我们积累了一些优化的实践,抛砖引玉,供大家参考. 环境:Hadoop CDH3U4 + HBase 0.92.1.