![](http://chuansongme.com/static/img/essay/980/145526/0.jpg)
作者:元涵 (一淘及搜索事业部-搜索技术-算法技术-主搜索与商城)
-
前言
随着网络的流行和互联网信息的爆炸性增长,如何从海量的信息中准确找到自己需要的信息成为了互联网发展面临的一大难题。传统的搜索引擎由于其通用性,对于相同的查询,所有用户得到的都是同样的结果,显然不能满足不同背景、不同目的和不同时期用户的个性化需求。在这个讲究个性和以人为本的时代,人性化的搜索引擎已经成为了时代的需求。
在淘宝的环境下,用户主要的目的就是购物。不同的用户个体在购物上更是天然就存在着很大的差异,这种差异可以反映在很多方面,有价格偏好、类目偏好、地域偏好、品质偏好等等。而我们要做的就是挖掘,理解用户的差异和不同需求,做出个性化的搜索体验,最终能够帮组用户在淘宝上购物。
-
个性化购买力
2.1 为什么需要个性化购买力
前面提到了,每个用户在很多方面都是有自己独特的偏好,而购买力就是最明显的一个方面。高帅富和屌丝对商品的价格和品质有完全不同的需求。同样是搜索“T恤”,高帅富需要的是面料材质好的品牌货;而屌丝需要的是100元3件还包邮的大路货。这种需要的差异就是我们需要做个性化购买力的原因。
2.2 购买力计算
我们将用户的购买力划分到5个档位上,低,中低,中高,高,超高。
我们会计算用户在多个不同粒度的购买力,从最细的用户+query粒度到最粗的用户组粒度,粒度越细,数据越准确,但也越稀疏。
2.2.1 用户+Query,用户+Query簇
根据用户在某一个特定query下的行为,计算用户在单个query下的购买力。由于是单个query,所以数据会非常稀疏,而且能覆盖的query很也少。将query聚类,计算用户在Query簇下的购买力会稍微缓解一下数据稀疏的问题。但这样的话又引入了一下新的问题:query聚类,相似query聚类本身就是一个不小的工作。而且虽然可以通过query聚类能部分提升数据量,但还是不足以达到丰富的程度。而且也没有必要细化到query粒度,用户在同一类目的不同query下的购买力还是会比较相似的。
2.2.2 用户+类目,用户
在类目粒度上计算用户的购买力,这个类目粒度是从后台叶子类目到后台一级类目,都会计算。由于用户在不同的类目会表现出来不同的购买力(比如IT码农,手持iphone身穿便宜的T恤),所以我们会计算用户在多个类目下购买力。用户+类目粒度的数据相对用户+query要丰富很多了,一些大的一级类目下一个用户90天平均有3-5笔左右的成交,已经具备了一定的统计意义。
结合用户在各类目维度维度的购买力,我们还是再计算一个用户整体的购买力。这个数据相对来说就更丰富一些,一个人90天平均有20笔左右的成交。
2.2.3 用户组+类目,用户组
对于那些自身行为很少的用户,我们通过将用户聚合成用户组的方式来预测他们的购买力。用户组的聚合可以主要是从两个维度:
用户的基本物理信息:
a) 地域,性别,年龄
b) 用户星级
相识行为:
a) 购买,收藏
b) 点击浏览
从不同维度将用户分类后,看他们的购买行为是否有一定的相似性(这个可以用那些成交行为丰富的用户来验证),如果购买力类似,差异不大,则说明对人的划分是有效的。 用户组粒度的购买力数据还在规划中,目前还没有实际产出。
2.3 线下计算流程
2.3.1 类目成交价格分布
在不同类目下,不同的价格代表了不同的购买力,比如在200元的T恤是比较高端了,但200元的手机是非常低端的手机,所以我们首先需要计算每个类目下各个购买力档对应价格区间。将类目下所有宝贝的成交价格从低到高排序,然后按照20%,30%,30%,15,%,5%的比例划分成5档,低档[0 - x1],中低档[x1–x2),中高档[x2– x3),高档[x3 – x4),超高档[x4 - )。
2.3.2 宝贝购买力
对于每个宝贝,查询上面的类目成交价格分布表,看一下宝贝价格是在哪一档价格区间中,将这个宝贝打上购买力档的标签。
2.3.3 用户购买力
对于用户的成交宝贝价格和点击宝贝价格,查询类目成交价格分布表,将这次成交和点击行为打上价格档的标签。然后分类目统计用户在不同价格档上的行为次数,计算得到用户在不同类目下的购买力。最后得到的购买力格式如下:
Key:用户id +类目id
Value:购买力1档:置信度|购买力2档:置信度| …
-
搜索排序上的应用
线上排序中,我们会结合用户的购买力和商品的购买力,对不同购买力的用户推荐相应购买力档的商品。
3.1 系统架构
和现有架构的区别就是用户个性化数据存储交给UPS来负责,QP通过访问UPS服务来获取用户个性化信息。
3.2 线下部分
3.2.1 宝贝购买力打标入索引
3.2.2 用户购买力数据入UPS
3.3 线上部分
3.3.1 前端接受用户的查询请求,访问QP
3.3.2 QP访问UPS获取用户的个性化购买力信息,返回给前端
3.3.3 前端将查询信息和用户信息传递给引擎和排序模块
3.3.4 排序模块根据查询信息和用户信息计算商品的得分,考虑了个性化购买力因素
3.3.5 前端得到引擎返回的经过个性化排序的商品列表展现给用户
—
微信名称:阿里技术嘉年华
微信号:alibabatech
简介:面向互联网行业全体工程师的技术交流盛会,分享实战技术,拜各路大神,听业界干货,享年度码农聚会!