武毅:大数据处理中算法调优不是最重要的

个人简介 武毅,毕业于武汉理工大学,开源爱好者&geek,活跃于多个开源社区,积极推进百分点开源事业。2011 年加入百分点,参与百分点推荐引擎的开发,完成多个推荐引擎版本的迭代。现任职百分点高级架构师,负责百分点大数据平台,云平台开发维护。

QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。

   

1. 各位InfoQ的网友大家好,现在我们是在QCon2016北京现场,作客专访间的是百分点的武毅。您是一个开源的爱好者,能否介绍一下您在百分点开源方面所做的工作?

武毅:2015年我个人会有一些开源的项目在github和开源中国上,另外还参与推进百分点公司内部的一些开源项目,可以在github上面找到,就是github加百分点,这上面我推进了几个项目开源的工作,其中包括一个基于thrift的高可用的RPC框架,另外是一个基于redis的集群管理框架,还有一个是监控的平台。在2016年的时候也会继续推进更多开源的框架。

   

2. 除了开源技术和开源社区,您平时有哪些业余爱好?

武毅:这个大家都了解,作为一个技术狂热,比较宅,也会去看一些重金属的音乐。

   

3. 您自己是玩音乐吗?

武毅:对,我是百分点乐队的主音吉他手。

   

4. 我们了解到百分点的核心技术之一是大数据的操作系统BD-OS,其中有一个设计我们觉得特别好,是企业服务总线ESB,它支持以热插拔的方式集成各种异构系统及数据服务,您能介绍一下这个热插拔的设计思路和具体实现吗?

武毅:在最早推荐引擎的时候我们就有一个数据消息的总线,但当时的业务比较单一,所以我需要接入的消息格式是比较确定的,当时接的就是web的埋点数据、采集的数据和互联网抓取的一些数据,这些数据通过前端的rest接口,发到下面一个redis,后面是kafka。但后来发现这两个只能满足特定场景的需求。

   

5. 是因为数据格式的问题吗?

武毅:包括数据格式,包括我希望前面有垃圾过滤、数据的预转换、预处理等等,还有企业本身有一些文件类型的数据和非结构化的数据,还有它自有的一些数据库里面的数据,这些数据不能够很有效的通过这一个接口进入我们的系统。所以后面就把它做成一个可以以插件的方式去挂载在不同的采集端,这些采集端会把数据做一次初期的清洗和转换,转换成我们需要的格式,一般是json,然后有少量的protobuf这样的格式,进入到这个消息总线,这样对于后边的处理会非常的方便。都是统一的格式,而且是schemaless没有特定的字段的设定,后边包括storm的实时处理和在hadoop上的mapreduce等等都会非常方便。

   

6. 我这边又有一个小问题,您刚才讲到总线,像空间站那种挂载,挂一个plugin上去的这种方式对总线带宽有没有瓶颈?

武毅:这个不会有,因为这个总线的设计本身是分布式的概念,在前面的每个plugin会连接到下面分布式每台集群里面,流量大的时候完全可以增加新的节点,这样流量会平均分配到集群的节点里去。

   

7. 另外,非结构化数据有没有什么特殊处理?

武毅:我们会根据业务的一些要求、需求,把非结构化数据转化成我们能够识别和简单能够处理的。有一段前期的处理,前期的处理是第一步,后端到了总线下面的数据还会做进一步的计算和处理。

   

8. 您在百分点完成了多个推荐引擎版本的迭代,能不能讲讲您认为比较有代表性的或者有比较大跨越的版本?

武毅:应该是从1.0到2.0这个版本,因为2.0现在在线上已经比较稳定的运行一段时间了,但1.0到2.0版本之间经历了非常大的架构变动。当时Hadoop才刚兴起,有大量计算需求可以并行跑在上面。另外,我们自主研发了一套推荐的规则引擎,一开始大家常用的做法是做一些非常牛的算法,对算法进行各种调优、训练,但是发现单纯算法还是不能满足我的需求,需要把业务的规则加进去,并且要把人的场景和偏好加进去,这样的话就衍生出来一套完整的规则引擎。加上之前所积累的算法库,几乎所有的业务规则都可以不用写一行代码就可以完成规则的调优。

   

9. 可不可以这样理解,这个版本的更新在您看来比较大的是底层架构的调整,但是引擎本身的feature没有太大的改变?

武毅:本身推荐引擎的架构、数据流是没有变化,但是里面的核心思路都变成可配的。

   

10. 百分点的推荐引擎跟其他互联网公司的推荐系统有哪些不同?比如电商系统的推荐或者搜索引擎的广告推荐。

武毅:百分点推荐引擎最大的区别是在于它可以个性化的推荐千人千面的产品出去,而且它可以支持电商、媒体、app、移动端等各种数据。千人千面体现在百分点会为我所记录到的访客建立一个用户画像,包括兴趣偏好,用匿名ID去记。记录这些偏好之后,会根据他当前浏览的场景或者他最近的一段场景,预测他有可能购物的偏好,这是比较大的一个区别。

   

11. 这个区别我还是有点不是特别理解,比如电商它有自己的一套帐号系统,百分点因为没有用户的个人信息,可能是通过user agent或者IP、指纹等去识别,跟电商相比起来,你的画像匹配会比它更精准吗?还是你的预测比它更强?

武毅:你刚才提了两个问题,一个是怎么样精确匹配到用户,这个技术点上百分点有一个核心的技术,就是即使我不知道你的帐号是什么,也可以用匿名的方式拉通你在PC上的浏览行为和在移动端或者任意终端是不是一个人。我会通过后台的模型和算法去预测到这是一个人,当然也有可能比如说我的帐号经常是我老婆在用,但是它预测出来这个帐号是个女的,实际这个帐号是男的,对我来说推荐引擎只需要了解你的购物偏好是女的。

   

12. 预测的话其实电商自己做得也不是很好,你们这边是通过什么模型来做预测?

武毅:我们有一个专门的模型和算法的团队在做这块事情,也积累了非常多调优的经验。但的确您说的这个也是一个点,就是对于模型和算法来说不是选择一个模型或者一个算法就一蹴而就的。这是一个不断迭代的过程。在我们线上也大量采用了包括ABTEST、特征工程等方法去不断的提炼我们的模型和特征。

   

13. 前一段时间我们infoq上也有几篇文章在谈ABTEST,你们ABTEST用得多吗?

武毅:在线上非常多。

   

14. 这跟电商也不是很一样?

武毅:对。

   

15. 截止到现在Hadoop技术已经过了十年了,您能从这个角度谈谈对大数据技术未来的看法吗?

武毅:可能大家对大数据有不同的理解,但是在我看来大数据是历史发展的必然趋势。首先从计算机发明到现在来说,信息化走过了非常漫长的一段路,几乎每天人都需要和信息化的系统去打交道。现在每个人都有手机、每个人都有PC,在这些手机和PC之上我们会发现构建了一层虚拟的数据层,大家可以去类比黑客帝国里matrix这个概念。数据的这一层其实就是我做大数据的一个基础,我有海量的数据了,但是我从这些海量的数据里面如果有足够的计算能力,是能够发现其中的一些我之前没有办法能够想得到的结果。

   

16. 就是类似于Hadoop这种技术可能在未来还会有更大的飞跃?

武毅:对,是这样。

InfoQ:好,谢谢您。

你可能感兴趣的:(武毅:大数据处理中算法调优不是最重要的)