设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

天猫推荐算法团队的那些事儿

2014-4-2 10:41| 发布者: joejoe0332| 查看: 3658| 评论: 0|原作者: 杨赛|来自: InfoQ

摘要:   天猫技术部算法组是一个相对比较新的团队,刚刚成立一年,目前有10个算法工程师和5个开发工程师。这个团队所负责的内容是天猫上的数十个推荐产 品,这些推荐产品帮助消费者找到他们喜欢的东西,将用户跟商品匹配 ...

  天猫技术部算法组是一个相对比较新的团队,刚刚成立一年,目前有10个算法工程师和5个开发工程师。这个团队所负责的内容是天猫上的数十个推荐产 品,这些推荐产品帮助消费者找到他们喜欢的东西,将用户跟商品匹配的路径缩短。当然对天猫平台来说,推荐算法的价值在于提高转化率。从去年的双十一开始, 天猫技术部推荐算法组第一次将推荐产品引入到了双十一大促活动当中。


  2014年,阿里巴巴集团举办了阿里巴巴大数据竞赛,大赛的规则、题目、比赛数据、评价标准与评审,都是由算法组负责。最近,InfoQ中文站采访了这个团队的负责人张奇(得福),了解天猫推荐算法组的团队情况与工作内容。


  嘉宾简介


  张奇,花名得福,2010年毕业于中国科学技术大学计算机系,信息检索方向博士。2010年7月加入阿里云计算, 搜索广告组,从事搜索广告算法研究,参与Yahoo中国搜索中搜索广告的排序算法设计,负责了国内最大规模之一的,每天近40亿网页浏览记录的挖掘、用户 行为分析和User Profile 建模。2012年3月加入天猫产品技术部,推荐算法组,负责天猫推荐算法的改进和数十个推荐业务的优化,包括PC推荐业务、无线推荐业务,建立起一套基于 机器学习的推荐算法流程。


InfoQ:简单介绍一下天猫技术部推荐算法组的职责和团队分工?

得福:推荐算法和搜索、广告系统类似,很多模块之间都有上下游关系,如分析用户偏好兴趣,采集用户点击、购买行为,计算用户现在想买什么,比如想买 连衣裙还是t-shirt,连衣裙是日韩风格还是欧美风格。还有的组做排序,比如有一堆的商品,连衣裙,天猫有几十万款连衣裙,给用户看什么?这就需要先 做品牌、价位的筛选,再有个性化排序,给每个商品计算分数,通过预测点击率、购买率,来给候选商品做重排序,这样选出10个、20个商品给用户看。另外还 有一些固定的物理属性,如用户的性别、收入水平等。每个模块都有上下游关系,不同的人做不同的系统。每个推荐流程都有用户行为分析、商品检索、个性化排 序、返回前台的过程。

产品上来说有不同分工,我们这边也是PM制度:比如一共有40~50个推荐产品,如果有新的产品要开发,就需要PM来协调上下游的模块的同事一起去 完成。PM跟运营或PD沟通需求是什么,需要我们怎样支持,需求怎样拆解成现有的推荐算法能够支持的模块,然后安排各个模块的同学去开发,还要监控上线之 后产品的效果,效果好或不好,有数据报表,不好有改进意见。每个产品都要有同学去负责。

整个推荐分商品推荐、品牌推荐、活动这三种,如果一个同事对某种类型比较熟悉了,跟对应的业务方也非常熟悉了,可能他就专门把这个类型的产品负责好。商品推荐比较广泛,推荐比较多,就要分给不同的同学。总体来说,这一块在系统上是横向的划分,业务上是纵向的划分。


InfoQ:你以前做的是阿里云搜索。搜索和推荐产品上从算法和产品的角度来看,差别大么?

得福:算法和产品都不太一样。算法方面,搜索是处理带有明确意图的query,很多工作都基于对query的理解上面,包括query怎么分词,如 何抽取有用的信息,包括品牌、商品型号、类目等,就是通过query的关键词抽取来反映用户意图,然后做查询、排序。推荐的话,用户不会输入query, 他们用自己的行为表达自己的兴趣。对我们来说这更困难,你要从非常多的行为里把用户的兴趣抽象出来,我们需要做很多用户意图理解的模块。这是两者在算法上 最大的区别。

产品方面,搜索是一个通用系统,固定的产品形式就是有一个框。推荐的产品可以有很多变种,不同行业也不一样,比如服装可能是基于风格、搭配来推荐,书籍、音乐则是另外一种推荐方式,比如书籍要考虑话题、类别、知识水平,所以比搜索来说,产品形式会更加复杂。


InfoQ:验证新算法会有AB测试吧?怎么做的?

得福:我们的测试有两种,一种离线测试(线下测试),一种线上测试。一开始我们都做线上AB test,你拿5%或10%的流量供测试,95%或90%的流量作为基准,然后你可以做参数变动或算法调整。这是以前。后来我们考虑到,因为同时会有很多 算法想要做测试,一方面流量有限,而且对天猫来说流量是非常值钱的,每个用户可能只有20分钟或者30分钟,所以一个算法如果未经验证就到线上做AB,其 实是很浪费流量的,对用户的体验也不好,5%或10%的用户可能会使用一个非常差的版本。

所以渐渐就开发了一套离线评测方法,不需要线上流量就能测试:它用以前的日志去模拟现在的行为,相当于把日志作为模型的输入,看不同版本的算法在日 志上跑的结果怎么样,来判断这个东西放到线上后大概的效果。这种系统不会100%准确,离线结果A比B好10%并不表示在线上也是10%,但一般如果离线 显示A比B好,那到线上A一般也会比B好,好多少不一定。我们用离线方法就可以淘汰很多不太靠谱的算法——A如果比B明显要差,我们就可以去掉。只有A比 B好,我们才拿到线上测,保证流量能够被充分利用。另一个好处是,离线测试十分快速,因为处理日志跑起来是很快的,可能十几分钟就跑完了很大的用户量,而 线上一方面流量少——不可能切换太多过来,同时你需要看很多天,效果才能稳定下来,可能需要一到两周才能看出效果。

所以这两个方法现在我们同时在用,互相补充。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部