我们把在前面参数和非参数模型上做的工作集合了起来,把它放到了即将开源的项目中,我们把这个项目叫做Fregata。Fregata是军舰鸟的名字,TalkingData内部的项目不管是开源还是非开源的都是用鸟来命名。为什么将机器学习的这个项目命名成军舰鸟呢?因为它是世界上飞行速度最快的鸟,可以超过400公里每小时。另外,它非常轻,只有3斤重,却又两米长的翼展,在全球分布很广。这也是我们对项目的期许:轻量级,可以承载大规模的机器学习任务,效率高,同时又能适应非常广的机器学习算法库。
这就是Fregata与MLLib的LR算法比较,蓝色的线都是Fregata的算法,绿色的是MLlib的算法,每个图的横坐标是数据扫描的次数,纵坐标是精度判断指标AUC。我们可以看到,不管是精度、收敛速度和稳定性,Fregata都是远远强过Mllib的。基本上每一次都可以一次就达到最高的精度水平,或者非常接近最高的精度水平。
这是Fregata的配置和接口。配置只有一行,非常简单。最简单的训练代码也就5行,因为我们不需要去设置参数,所以代码就变得非常简洁。
总结一下Fregata的特点。首先是对大规模问题的支持。我们实际测试过,处理超大规模10亿级样本,是完全没有问题的。对于超大规模维度的问题,Fregata能根据内存容量动态确定稀疏度的方式解决,而且速度非常快,如果内存加速的话,可以在亿级别的数据上做到10秒级别的速度;无内存加速的话,也能达到分钟级训练。据我了解,国内互联网公司里面非常昂贵的机器学习平台上面的速度,可能至少要比我们这个慢一个数量级。
我们跟MLlib做过对比,在某些情况下能够快1000倍,一般情况快个10倍以上也是很正常的。由于我们的开发是基于Spark原生版本,所以能非常容易的融入数据处理流程。因为不需要解决调参的问题,所以可以做一个标准组件,比较容易嵌入数据处理流程。
超越个人的智慧
简单再讲讲TalkingData怎么在解决人的瓶颈。因为我们的数据科学家团队并不是特别大,这样一个比较小的团队,面临着这么大量的数据,靠自己是很难完成的。
我们TalkingData作为一个中立的数据平台,愿意把数据开放出去。但是在开放数据创造更大价值,跟保护数据的安全隐私的全方位怎么平衡呢?今年上半年我们做了一个TalkingData的数据开放沙箱,在沙箱里可以向指定的人开放指定的数据。数据科学家可以在沙箱里探索数据、创造价值,同时保护原始数据不能够被拿出沙箱来保证数据的安全,来确保利用数据创造价值和保护数据安全的平衡。
沙箱的应用上,有比较成功案例。一是我们向Thasos开放了8TB的数据,二是我们跟清华大学合作的课程开放了100GB的数据,他们在上面做了很有意思的工作。
即使把数据开放出去引入全球的数据科学人才,也不能完全解决人的问题。刚才也看到了全球的人才是比较有限的。现在再看大数据四个V的支撑技术做的什么样,在速度跟体量上面,有很多大数据技术解决得不错了。在价值方面,我们有很多的人工智能的方面的发展也是非常迅速的。但是解决数据来源的复杂性是很难的,我们内部有数据管理员的团队,他们就是每天纯手工来做数据标准化清洗的工作,目前来说是整个大数据里面最短的一版,所以现在我们也在努力尝试把智能的方法引入到数据准备、数据清洗的工作中来。