王栋: 要做好推荐,只有技术是不够的
非商业转载请注明作译者、出处,并保留本文的原始链接: http://www.ituring.com.cn/article/208749
王栋,美团网技术总监,负责美团外卖的搜索推荐及数据团队。2009年他博士毕业于清华大学人工智能实验室,研究机器学习算法及计算机视觉的中层语义表示 问题。毕业后先后任职于hulu及优酷,主要从事网络视频中的搜索、推荐、广告等流量变现工作。曾多次带队或参与TRECVID/KDDCUP等国际机器 算法竞赛并取得第一名。2011年带领团队搭建出世界上第一个实用的视频人脸标注系统( hulu face match )。王栋是国内推荐系统的早期关注和研究者,对视频搜索有丰富研究经验,他实现了展示及效果广告的流量预估,在线匹配及用户定向等多项核心技术的大规模应 用,另外,他在电影票房预测等数据挖掘的前沿方向也取得了突破。王栋目前关注O2O领域中的数据、算法及平台化问题,期望借助智能技术,更方便快捷地满足 用户吃喝玩乐的需求,同时助力商户理解其目标用户,发现并促成商机。
机器学习的一万小时理论
“我的导师张钹老师现在已经80多岁了,由于各种政治运动的影响,他40岁才开始做研究。"
问: 您是什么时候开始接触计算机的?
我接触网络其实挺早的,但是最开始只是玩,没有意识到有机会去做一些真正能改变世界的事情,比较后知后觉。我在清华大学学的电子计算机,可能因为性格原因,所以一直偏向于研究性的东西。之前也曾经有过很多好玩、可以创业的想法,但是没有真正自己去动手从头做到尾。
问:您在清华从事研究工作很长时间,对于计算机科学的研究来说,学术界和工业界有什么差别?
学术界其实更多的是要做更有趣的研究,要有创新。学术界并不在乎工业上应用某个算法是否现实。比如一个用户的一次推荐花上十分钟对学界来说可能 是可以接受的,只要推荐效果好,可以随后再去优化实现的速度。但在工业界,更多的是从实际效果出发,有给定响应时间等限制条件,且需要有和业务挂钩的客观 衡量的指标,包括从用户维度和公司商业维度去考量,所以会受到比较多的现实限制。
国内的大部分公司现在并不会花很多人力去做纯粹的研究,美团也类似。但我们会关注学界的发展,看有哪些看起来接近靠谱的东西,我们可以拿过来为 我所用。但我们不会自己去做很多探索性的研究,这个可能是一个比较明确的界限。在平时,我们的工作任务也会有偏向“研发”的工作,也就是又有研究、又有开 发,需要两者结合的工作。所以如果有同学有自己的想法,可以自己去花10%到20%的时间去尝试。
问:您曾经在清华大学从事的都是计算机视觉方面的研究,现在是否可以说您已经脱离了这个领域?
具体研究现在当然不搞了,但也没有完全脱离。以前我们做的是语音、图像、视频的内容分析和理解,以及一些算法的研究,这些研究和推荐搜索背后的 原理还是类似的,都是机器学习,或者说是能够深入和自发学习一些复杂规则的系统。对于这样的系统来说,输入和输出的标准都是人设定的,系统自身现在还不具 备自主学习的能力。所以从这个角度上说,这两种技术我觉得还是相通的。
比如,之前我们做的物体识别或人脸识别其实就是一个样本,机器学习系统来抽取一些特征,从而通过模型判断某些属性是否存在。语音也是类似的。 对于现在的大数据研究来说,真正的核心问题就是如何建立一个合理的问题表示,或者说一个层次化的表示结构,能够把问题表达清楚。 然后通过明确优化的目标,你就可以利用各种工具去做优化,最后得到一个满足你要求的结果。
问:您之前说过,您现在很多精力其实都用在协调和激发您的同事上。您现在在管理和技术上如何平衡自己的时间和精力?
总体的思路还是成就别人,然后成就事业。我自己只是牵线搭桥,为别人提供更好的环境和机会,我日常处理的很多工作就是协同目标和协调资源。除此之外,我也 需要对业务有比较多的思考。比如做商户:商户相关的基础逻辑是什么?商户最根本的需求是什么?我们怎么样去满足需求?以什么样的路径、什么样的产品形态去 满足?有一些可能会涉及到技术的运营方式,比如怎么样能更快地吸引商户进来?这些都需要蛮多的积累。
对我来说,技术只能靠自己周末去抽空补了,平时没时间。工作中管理是一方面,另外还有很多业务相关的事情需要去了解、去同步,所以没有很多时间去自学和沉淀。毕竟是做技术管理,也需要不断同步前沿的信息,好在持续学习研究了这么多年,也是很有意思的事情。
从宏观上说,我对于技术的关注包括某种技术的历史源流、它之前是什么样子、现在发展到什么阶段,以及能够对我们当前的业务产生什么样的作用。从公司的业务 上说,有可能用户发表的评论信息文本处理以后效果会很明显,所以至少我们在这个技术上要持续保持关注。从个人兴趣上说,我最近一直对DNN比较感兴趣,我 们团队也在尝试做一些合适的应用。DNN下一步会有怎样的进展,人工智能在未来十年二十年会有什么样的发展,我们都拭目以待。我觉得, 我们的下一代长大后都要学会跟机器人共处,因此,我经常会想怎么样能够让他们更早、更好地去了解计算机 ,将来也好打交道。
问:对于那些对机器学习感兴趣或者正在相关专业学习的同学,您有哪些学习方面的建议?
现在的互联网时代提供了一个特别好的机会。我刚上大学的时候看论文还都需要去图书馆借阅期刊,现在arxiv上尚未正式发表的最新研究成果都有 了,想学什么都很方便。你还可以用Coursera这样的网站直接在课堂上学习,有世界知名的老师授课,只要想学肯定能学好。你还有各种机会可以去跟大家 交流、去公司实习,或者参加各种竞赛,这些活动都会让你获得很好的实战经验。
如果要学习机器学习,首先就是要坚持。我知道有些比较牛的人原先本来不做算法,对计算机也不懂,但就是感兴趣,他能够持之以恒地去学、去做,然后在学和做 的过程中不断反思、复盘,看自己到底还有哪些地方做得不够好,然后不断提高,最后做到了顶尖的水平。比如我的博士导师张钹老师,他现在已经80多岁了,之 前一直因为各种运动影响而没有机会做研究,40岁改革开放之后才开始做。他的数学很好,而他也一直很努力地学习和思考。所以他能把这个东西想得很清楚,很 快就站在了世界的前沿。
在坚持的前提下,第二是要不断去反思。到底怎么样能让自己的思考更加深入,能够对问题的感受更清楚。
第三,就是要选好一个方向,因为机器学习最终还是要实际应用的。如果还没有确定方向的话,可以先去探索一下,然后找一个自己感兴趣的,未必是最时髦的方向。然后你要在这个方向上持之以恒地钻研,无论是图像、文本,还是结构化的数据分析,其实都是跟应用领域相关的。
2006年 The Cambridge Handbook of Expertise and Expert Performance 出版。很多人在此基础上提出了一万小时的学习理论,我觉得在机器学习领域也适用。有很多数学理论你要去了解,很多编程方法你要去掌握,还有很多跟特定应用 领域相关的知识,比如做语言需要了解语言学,做图像或者语音需要了解的人的视觉感知机制或听觉机制。另外,还有对之前的研究成果的理解和判断,也是需要时 间去积累的。所以归根到底,坚持还是最重要的。
在数据中淘金
“要从算法原理上说,美团相比于其他公司可能并没有多大优势,但是我们有我们的特点。”
问:无论在清华大学还是在Hulu,您都曾完成很多富有挑战性的活动或项目,比如TRECVID/KDDCUP国际机器算法竞赛和视频人脸标注系统。O2O领域最吸引您的是什么?对于您的研究和开发来说最大的挑战是什么?
现在大家都说O2O,之前很多人叫团购,以后的话,可能大家会想到的是服务引擎的概念,也就是我们做的本地生活服务。怎样能把消费者和商家的需 求匹配起来?商家肯定希望能找到比较适合他品牌定位的用户,针对这些用户可能会做促销活动进行拉新,或者对老客进行更好的维护;消费者或者说用户则有不同 的要求,拿吃饭为例,有人希望能吃到符合自己口味又有性价比的东西,有人希望环境安静一点,有人希望不用跑太远。从餐饮业推广到美发、结婚等行业,这些行 业其实都有很长的决策、支付和履约的链条,大家在做某些决策的时候都很困惑,所以需要获取很多信息。如果我们能够对个人信息进行积累,再结合我们对商家线 上线下服务的整体信息,然后利用一种比较复杂的匹配方式,就能在用户没有非常精确地说出他的需求时,就帮他匹配到。我觉得这是未来非常有潜力的方向。
问:在工业界,您能接触到大量这样的真实数据?
王栋:这是肯定的,但工业界的数据跟学术界不太一样,有很多噪声。我们在现实中处理这些数据时,一方面会遇到爬虫,或者有人去刷单,我们需要结合风控部门 在训练模型时把这些噪声处理掉;还有一些用户可能数据特别稀疏,这时如果把他直接加进样本集用于训练未必是一个好的选择,所以需要做很多前期处理工作。为 了让大家做算法调研时能够更快地迭代,我们在这方面比较注重平台化建设,这样就不需要花费时间重复开发工具,可以集中精力调算法。
问:能否请您介绍一下美团基于Spark的离线训练平台?和基于Hadoop的系统是如何结合的?
我们离线数据的收集是在Hadoop上,一些统计数据的处理也是在Hadoop上,这是我们用来做机器学习训练的一个平台。Spark现在和 Hadoop统一采用YARN管理,部署在同一个集群上,这样数据交互会更容易。我们很早就开始用Spark,比如早期我们发现算法可能在某些情况下不收 敛,所以我们还向Mllib的项目提交过一些Patch。
现在的研发已经比较完善了,所以我们在现有平台的基础上做了很多工具,能够在训练的时候很快提取我们需要的特征、打好标记,然后迅速通过离线的 方法得知最终效果是什么样的。要做离线调研的话,大部分时间实际上是在取数据、分析数据,最后看效果,不好了再去调。整个离线调研过程占用大家工作时间的 比例很高,所以我们很有必要去做优化,这样我们才能有更多的时间去做真正重要的事。
关于我们的排序解决方案,可以参考美团技术博客 http://tech.meituan.com/meituan-search-rank.html 。
问:相比于你们的竞争对手,你认为美团的架构和算法有什么特点?
可能不太好评价竞对或者说友商,就说说我们自己吧。我们这边对于推荐一直是蛮看重的,最早从PC端的时候就开始做,2013年时大家把注意力转 到了移动端上。随着屏幕变小,推荐,尤其是个性化的推荐变成了非常有价值的事。当时移动端的负责人陈亮(他现在负责酒店业务),很早就看到了这一点,随即 开始招团队做这方面的事情。
我觉得当时比较好的一个思路就是,上来我们先搭了一个很好的框架,这个框架能够很方便地去实现算法。对工程和算法进行了简单的集成之后,我们一方面可以不断地迭代优化这个架构,另一方面可以用算法本身做很多灵活的实验,包括流量分配、不同的算法测试,等等。
我们接下来所做的工作其实更多涉及用户的各种行为,我们会把搜索过程中的行为以及历史上使用美团的行为数据搜集起来。另外我们也想办法去获取一些用户的评价反馈,也就是让用户自己去主动吐槽。我们再利用各种收集信息的手段,把这些数据累积起来。
第三步,我们开始做个性化推荐的排序。在当时,虽然推荐排序在学术界已经研究得比较清楚了,但在工业界还没有很广泛的应用。最早的时候大家都用 传统的item CF/user CF这样简单粗暴又有效的做法。但是要做得好,继续做深化提高,做算法调优是避免不了的。我们当时试着研究了各种排序的策略,做到了个性化推荐,后来从个 性化搜索到个性化排序,我们也都做到了。
具体内容可以参考美团技术博客中机器学习InAction系列的文章,如 http://tech.meituan.com/machinelearning-data-feature-process.html 。
问:刚才第二步您提到了跟用户有关的信息搜集。亚马逊的首席科学家Andreas Weigend曾说过:"亚马逊做的不是从数据中分析出信息,而是建立一套有效的评价和反馈机制,让用户形成一个良好的社区,让用户自身对于产品进行推 荐。"在美团的推荐系统中,是否也考虑让用户群体成为产品的一部分?
我们之前也做过一些尝试,比如把用户不感兴趣的内容删除,或者用户自己提交兴趣。在影视相关应用上,如果用户看到下面的条目,点击了,但是没有看上面的, 那就说明上面内容可能是用户不感兴趣的。这些方法很多也是被业界广为使用的,事实上各种效果好的模型业界也都在用,要从算法原理上说,美团相比于其他公司 可能并没有多大优势。 我们的特点在于,首先我们能更好地利用美团特有的数据,其次我们可以利用数据结合业务找到很多有效的特征,这些特征可能跟我们的应用场景相关。
我们之前也和豆瓣、阿里等公司交流过彼此的一些经验,发现在不同场景下,真正产生效果的特征是不太一样的。比如,现在本地电商的商品推荐,是跟用户当时所 在的位置有很大关系的,用户有需求的时候一般是找离他比较近的,所以这是一个很大的制约因素。另外推荐也和用户本身有关,比如一个刚毕业的学生不一定每天 会去吃大餐。反倒在豆瓣上,这种不同形态的消费更多的是基于用户的兴趣,因为用户付出的成本就是时间,很可能不需要花钱。而我们受现实的约束更大一些,我 们需要考虑离用户比较近的商家的评价、销量,以及价格优惠的力度,还有用户以前的消费记录、搜索记录,以及用户对类似品类的兴趣,这些都是我们排序的依 据。 我觉得推荐是蛮偏业务场景的,和产品相关,并不光是技术好就能做好。
关于我们推荐的工作总结,可以参考 http://tech.meituan.com/mt-recommend-practice.html 。
问:美团的四个产品美团团购、美团外卖、猫眼电影,以及美团酒店的技术架构相对独立程度如何?这些产品存在哪些技术上的共享?
美团的所有业务都是部署在美团云上的。美团云作为美团业务的基础,稳定支撑了整个业务。美团云的技术架构主要有以下几个特点:
-
分钟级的云资源交付,支持虚拟机和物理机。
-
美团云使用可见性隔离虚拟机减小了应用之间的影响,避免软件冲突、管理维护冲突等问题。
-
面对CPU、内存、存储空间、io能力的利用率低问题,多元化业务分时复用资源将资源利用率提高了10倍。
-
美团云采用单实例的资源分配与回收,解决了资源回收难、业务淡出、不能整合及混布其他应用等问题。
-
建立了分业务的精细计量模型,可精确计算各业务部门的运营成本资源使用情况。
另外,美团云在调度方面做了很多优化。比如,同业务的VM使用不同Host;将业务分为I/O型、CPU型、内存型;并且在餐饮和电影票业务上分闲忙时段,错开高峰期。
在技术架构特点方面,美团云现在采用的是多机房部署模式,每一个机房都是自主运营,多个机房资源串连在一起,避免单机房出现故障而导致服务中断 的问题。美团云提供的存储有两种:本地存储和分布式IP SAN存储。本地存储提供高性能稳定性,分布式IP SAN存储则提供灵活性。
除了底层架构,再往上各个业务有自己各自的特点。比如外卖其实并不只是关心下单,还要看之后的履约配送环节。我们以前也做过一些和电影相关的数 据工作,后来为了让业务跑得更快,猫眼电影就成立了独立的技术团队。现在,大家会有一些技术交流,内部讨论,然后我们会提供一些平台级别的工具,比如分词 的技术,就是各业务都在用,再比如我们做的搜索平台架构,各个业务也都在用,他们可以直接基于搜索的框架,提供自己业务的逻辑。比如查询的内容是五道口, 在猫眼里面就是找相关的附近电影院,比如五道口工人俱乐部电影院;如果在酒店频道里找,可能找的就是宾馆。业务理解上的差异会让最后出来的结果也不一样, 这部分是可以定制化的,我们的平台现在提供这样的能力。
问:猫眼电影的票房预测现在进展到了什么程度?
2015年六、七月份的时候我们做出过一版票房预测,当时提前一个月预测的准确率差不多能达到百分之七八十。猫眼产品的负责人,他也会去跟发行 方商量要不要跟美团做联合发行。他反馈票房预测是很有价值的方向。这块美团肯定还会持续去改进,因为我们的数据搜集比以前做得更好了。
我们现在用到的特征还是猫眼本身的一些用户行为特征,包括搜索、历史评价等等。好多人都说要利用导演、演员,以及微博搜索量去做, 我们实践之后发现这种方法不靠谱,还是我们自己的数据最有效。