武毅: 2015年我个人会有一些开源的项目在github和开源中国上,另外还参与推进百分点公司内部的一些开源项目,可以在github上面找到,就是github加百分点,这上面我推进了几个项目开源的工作,其中包括一个基于thrift的高可用的RPC框架,另外是一个基于redis的集群管理框架,还有一个是监控的平台。在2016年的时候也会继续推进更多开源的框架。
2. 除了开源技术和开源社区,您平时有哪些业余爱好?
武毅: 这个大家都了解,作为一个技术狂热,比较宅,也会去看一些重金属的音乐。
3.
武毅: 对,我是百分点乐队的主音吉他手。
5. 是因为数据格式的问题吗?
武毅: 包括数据格式,包括我希望前面有垃圾过滤、数据的预转换、预处理等等,还有企业本身有一些文件类型的数据和非结构化的数据,还有它自有的一些数据库里面的数据,这些数据不能够很有效的通过这一个接口进入我们的系统。所以后面就把它做成一个可以以插件的方式去挂载在不同的采集端,这些采集端会把数据做一次初期的清洗和转换,转换成我们需要的格式,一般是json,然后有少量的protobuf这样的格式,进入到这个消息总线,这样对于后边的处理会非常的方便。都是统一的格式,而且是schemaless没有特定的字段的设定,后边包括storm的实时处理和在hadoop上的mapreduce等等都会非常方便。
武毅: 这个不会有,因为这个总线的设计本身是分布式的概念,在前面的每个plugin会连接到下面分布式每台集群里面,流量大的时候完全可以增加新的节点,这样流量会平均分配到集群的节点里去。
7. 另外,非结构化数据有没有什么特殊处理?
武毅: 我们会根据业务的一些要求、需求,把非结构化数据转化成我们能够识别和简单能够处理的。有一段前期的处理,前期的处理是第一步,后端到了总线下面的数据还会做进一步的计算和处理。
武毅: 应该是从1.0到2.0这个版本,因为2.0现在在线上已经比较稳定的运行一段时间了,但1.0到2.0版本之间经历了非常大的架构变动。当时Hadoop才刚兴起,有大量计算需求可以并行跑在上面。另外,我们自主研发了一套推荐的规则引擎,一开始大家常用的做法是做一些非常牛的算法,对算法进行各种调优、训练,但是发现单纯算法还是不能满足我的需求,需要把业务的规则加进去,并且要把人的场景和偏好加进去,这样的话就衍生出来一套完整的规则引擎。加上之前所积累的算法库,几乎所有的业务规则都可以不用写一行代码就可以完成规则的调优。
武毅: 百分点推荐引擎最大的区别是在于它可以个性化的推荐千人千面的产品出去,而且它可以支持电商、媒体、app、移动端等各种数据。千人千面体现在百分点会为我所记录到的访客建立一个用户画像,包括兴趣偏好,用匿名ID去记。记录这些偏好之后,会根据他当前浏览的场景或者他最近的一段场景,预测他有可能购物的偏好,这是比较大的一个区别。
武毅: 你刚才提了两个问题,一个是怎么样精确匹配到用户,这个技术点上百分点有一个核心的技术,就是即使我不知道你的帐号是什么,也可以用匿名的方式拉通你在PC上的浏览行为和在移动端或者任意终端是不是一个人。我会通过后台的模型和算法去预测到这是一个人,当然也有可能比如说我的帐号经常是我老婆在用,但是它预测出来这个帐号是个女的,实际这个帐号是男的,对我来说推荐引擎只需要了解你的购物偏好是女的。
武毅: 我们有一个专门的模型和算法的团队在做这块事情,也积累了非常多调优的经验。但的确您说的这个也是一个点,就是对于模型和算法来说不是选择一个模型或者一个算法就一蹴而就的。这是一个不断迭代的过程。在我们线上也大量采用了包括ABTEST、特征工程等方法去不断的提炼我们的模型和特征。
14. 这跟电商也不是很一样?
武毅: 对。
武毅: 可能大家对大数据有不同的理解,但是在我看来大数据是历史发展的必然趋势。首先从计算机发明到现在来说,信息化走过了非常漫长的一段路,几乎每天人都需要和信息化的系统去打交道。现在每个人都有手机、每个人都有PC,在这些手机和PC之上我们会发现构建了一层虚拟的数据层,大家可以去类比黑客帝国里matrix这个概念。数据的这一层其实就是我做大数据的一个基础,我有海量的数据了,但是我从这些海量的数据里面如果有足够的计算能力,是能够发现其中的一些我之前没有办法能够想得到的结果。