京东推荐系统中的机器学习与大规模线上实验

摘要

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

视频内容

页面越简洁越好?

对于一个互联网产品来说,是不是越简洁越好呢?

微软的必应搜索原来的界面非常混杂,后来为了让页面更加简洁,他们把所有浏览器自带的广告全部屏蔽,只保留原始的自然搜索结果以及少量它们自己的搜索广告。就在那一年,整个必应的搜索广告收入提升了47%。

但是也有反例。2014年的亚马逊和如今的京东淘宝都差不多,是一个花里胡哨的页面,有很多导航栏,不会浪费任何一点空间。后来他们的设计师想要做一个简洁的页面,让用户可以直奔主题进行购物,所以就把页面改得非常简洁,看起来的确非常符合工程师文化了,可页面改版后他们的订单却出现了大幅度下跌。

新开一个页面好不好?

2008年,MSN在Hotmail上实验了点击链接新开一个tab功能,邮箱人均打开量提升8.9%。2011年,MSN在其搜索页面上重复这个实验,同样带来了5%的提升,这是MSN历史上最成功的实验。

另一个反例则是In easy,是美国的一个二手货交易小网站,他们的实验平台做得非常好。当时也做了类似的事情,就是在用户搜索完之后开出一个新的弹窗,用户可以在两个窗口之间进行鉴别和比较,非常方便。但是当这个做完之后,他们的整个搜索用户流失率提升到了71.52%。

无限下拉页面

Ineasy认为,以前用户要从第一页看到第二页的时候需要点击“下一页”,会带来用户等待和流失的情况。于是他们做了一个让页面自然往后滑动,无需点击的方案。没想到这个举措导致整个用户的购买率降低了22%。

我们在京东的购物车推荐页面也使用了这个方案,将购物车推荐改为了无限下拉模式。而这却是我们史上最成功的推荐产品实验,在这个实验期间出现了50%的收入提升。

以上几个案例表明,同样的策略,在A成功,但并不代表在B也能成功;以前成功不代表现在也能成功,反之亦然。有的时候我们甚至不知道为什么会成功或失败。

因为一件事情的影响因素太多了,我们要知道到底是什么原因导致的成功,需要去做严格的因果推断。A/B实验是最好的因果检验工具。

微软实验平台的大总监在2010年提出了“Hippos are dangerous!”,意思就是在一个公司里,如果只听最高层那个人的想法其实是很危险的。大多数互联网产品是要面对全中国很多用户,而最高层的想法只能代表一小部分人群。

如果有可能,无论要进行什么改变都要先做A/B实验。

A/B实验核心三要素

利用统计学的思想,我们认为在实验设计中,包含了实验对象、实验因素和实验效应。

而实验对象可以类比为A/B测试中的分流,实验因素类比为单因素,实验效应类比为指标。

分流

我们要做随机分流,保证不同簇群间的用户可能会有差异但能够通过不同的随机进行消减。

通过AA实验验证多层实验的正交性,并计算最少实验流量。

我认为分流还需要有一个均等原则。京东在去年年底进行了为期十天的实验,测试组最初只有5%的流量,然后对比线上的大流量。一开始我们认为A算法一定比B算法要好,它也的确有更优异的表现。之后在逐渐放量的过程中,因为我们的实验日期是2016.12.10~2016.12.20,在这期间包含了“双十二”。在A的量最小的时候正好处于“双十二”期间,到后来大家的荷包都被抽干了进入低潮期,我们的流量变大了,所以虽然A的每一天都比B要好,但是平均意义上比B要差。这点给我带来的启示就是尽量不要在特殊的日子进行发布或者做灰度测试。

单因素

我建议实验因素越简单越好,一次只测试一个因素。一旦确认了一个因素的正面影响,就马上开始下一个。这样带来的时间缩减,比一开始花三个月时间把整套体系建完再上线要好很多。

指标

著名的逻辑学大师Peter Drucker说过,“If you can’t measure it,you can’t improve it.”

我们首先要找到一个衡量的方法,然后就能通过各种方法进行优化。

要衡量优化指标,就需要引入假设检验,计算置信区间。要明确区分随机因素和真实影响。重大提升出现的概率不到1/500,而且在一个成熟系统中,基本上都被做过了。大多数的增长都是缓慢的累积,因此方向比努力更重要。

多个指标的平衡

业界的做法:其它指标没有下降,或者下降不显著的情况下,另一些指标上升,即可认为是一次成功的实验。不允许用降低一个指标来提升另一个。

学界的做法:使用机器学习的方法,学出指标之间的最佳组合,以进行最好的区分。

我们成功的实验

个性化VS非个性化:个性化为我们的整个搜索引流带来了剧烈的提升。

机器学习VS规则:从规则版本变为机器学习版本,曾为我们的购物车推荐带来了很大的提升。

深度学习VS机器学习:从机器学习到深度学习,给我们的广告收入带来了一定的提升。

我们现在做的强化学习正在为我们的首页用户粘性带来不可估量的提升。

这一切实验都告诉我们,更深的数据挖掘、更细致的模型、更广的覆盖和更实时的响应,都能给我们的持续增长带来无限可能。

机器学习实践要点

我认为机器学习无非是建立一个Y=f(X)函数,Y是优化目标,f是模型,而X是怎样去做特征。

Y:深入理解你的metrics,调整正负样本的权重很重要,加入人工标注。

f:只要确定了目标,要找一个合适的模型是不难的。

X:我们要做大量的特征工程。这里再提出一个feature log的工作,很多工程师的工作都是在清洗数据、拼接数据、找很多不同的信息然后把它布置上线。在布置上线的过程中,我们把所有特征的取值直接记录下来。这有两个好处,第一个好处是在下一次进行模型训练的时候不用自己拼接,只要把这个log抽出来,工程师的工作可能会从原来90%的数据清洗+10%的数据建模变成了50%的拼接,剩下的50%全部用于建模。

另外它还可以保证线上线下的一致性。最后还是要不断进行优化。

最后的一点建议

一旦有了点子,越早开始试验越好。一次只改动一个地方。

线上线下一致性非常重要。无论工程师的水平有多高,实现都很可能是有问题的。

如果一个实验一开始就不奏效,除非查到实现bug。不然继续等待下去,它也一定不会奏效。

性能监控越实时越好,产品数据分析t+1天绝对是必要的。

我今天的分享就到这里,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-09-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏点滴积累

人工智能入门

前言 这个名字起的非常大,但是本文只能从一些概念和我自己的理解上介绍一下什么是人工智能。本文只是给从未接触过此块的人一个大致的印象和思路,其余人请直接略过。 一...

48770
来自专栏机器之心

知乎:源自社区又服务于社区的 AI 技术

每次知乎的技术负责人公开谈及人工智能技术,「智能社区」都是一个绕不开的词汇。然而「智能社区」也是一个相对陌生的概念:如今研究者与工程师们明确了深度神经网络在语音...

13900
来自专栏AI科技评论

谷歌研究阻止“人工智能毁灭人类”的核心,都在这篇论文里面了

马斯克和霍金等科技界名人纷纷表示,要警惕人工智能失控。图片来源:CT。 人们一定还没忘记,今年谷歌DeepMind的人工智能软件AlphaGo打败了世界围棋大师...

311100
来自专栏牛客网

热乎的腾讯数据分析实习生面经

早上九点半,五星级酒店房间里一对一面试。 面试官是个笑起来很好看的南方美女,我猜应该是搞推荐算法的。 开场是常规,自我介绍,介绍简历中的项目经历。很失败,被批用...

38970
来自专栏数据科学与人工智能

【数据】数据驱动决策的13种思维

小编邀请您,先思考: 1 如何让数据驱动决策? “数据驱动决策”,为了不让这句话成为空话,请先装备以下13种思想武器,相信将来你一定能用上! 1. 信度与效度...

390100

数据整合和机器学习深入客户见解

本文精选与新的DZone人工智能指南中。免费获取更有深度的文章,行业统计,以及更多!

24980
来自专栏ATYUN订阅号

世界上最大的大脑:拥有一百万个处理核心的神经形态计算机

科学家刚刚激活了世界上最大的“大脑”:一台拥有一百万个处理核心和1,200个互连电路板的超级计算机,它们像人脑一样运作。科学家宣布,这是世界上最大的神经形态计算...

9710
来自专栏AI研习社

数据科学家不能错过的顶级 Github 代码仓库 & Reddit 讨论串(六月榜单盘点)

2018 年已经过半,是时候来发布六月版的 GitHub 项目库和 Reddit 版块 TOP 榜单。在撰写本文的过程中,我已经学习了不少机器学习的知识,有从开...

12330
来自专栏CDA数据分析师

你真的懂什么叫数据挖掘吗?

我对做事的流程非常感兴趣。我想要知道一些可以把事情做好的好方法,甚至在可能的情况下可以知道做这些事情的最好方式。就算你的技能不强,理解相关方面的知识不深,这个过...

24250
来自专栏CSDN技术头条

机器学习开发者的现代化路径:不需要从统计学微积分开始

【编者按】机器学习算法的传统学习路径,是从统计学、概率论、线性代数、微积分等多种数学知识开始,但专业程序员、机器学习爱好者、MachineLearningMas...

21950

扫码关注云+社区

领取腾讯云代金券