人工智能是一个非常炙手可热的名词,且已经成功应用在语音、图像等诸多领域。但是,现在人工智能有没有达到可以简单落地的状态呢?工业界的人工智能需要什么技术呢?带着这些问题开始我们的思考。
首先,我们先探讨一下工业界人工智能需要一个什么样的系统?人工智能的兴起是由于数据量变大、性能提升以及并行计算技术发展共同产生的结果。所以,工业界的问题都是非常复杂的。因此,我们需要一个可扩展系统,不仅在吞吐与计算能力上可扩展,还需要随着数据量与用户的增多在智能水平上可扩展。怎么实现一个可扩展系统呢?其实很重要的一点是工业界需要高 VC 维的模型,去解决智能可扩展性的问题。怎么获得一个高 VC 维的模型呢?大家都知道,
机器学习 = 数据 + 特征 + 模型
。如果数据在给定的情况下,我们就需要在特征和模型两个方面进行优化。
特征共分两种,一种叫宏观特征,比方说年龄、收入,或是买过多少本书,看过多少部电影。另外一种是微观特征,指的是比拟细粒度的特征,你具体看过哪几本书,或者具体看过哪几部电影。每一部电影,每一本书,每一个人,都是不同的特征。书有几百万本,电影有几百万部,所以这样的特征量非常大。
模型可分为两类,一个是简单模型,比如说线性模型。还有一种是复杂模型,比如非线性模型。
这样就把人工智能分为了四个象限。如上图,左下角是
第一象限
,使用宏观特征简单模型解决问题。这种模型在工业界应用非常少,因为它特征数少,模型又简单,VC 维就是低的,不能解决非常复杂的问题。右下角的
第二象限
是简单模型加上微观特征,最有名的就是大家熟知的谷歌 Adwords,用线性模型加上千亿特征做出了世界顶尖的广告点击率预估系统。左上角的
第三象限
是复杂模型加宏观特征,也有诸多知名公司做出了非常好的效果,例如 Bing 广告和 Yahoo,经典的 COEC+ 复杂模型在这个象限内是一个惯用手段。最后是
第四象限
,利用复杂模型加上微观特征,由于模型空间太大,如何计算以及解决过拟合都是研究的热点。
刚才说沿着模型和特征两条路走,那
如何沿着模型做更高维度的机器学习呢?
研究模型主要是在学术界,大部分的工作是来自于 ICML、NIPS、ICLR 这样的会议,非线性有三把宝剑分别是 Kernel、Boosting、Neural Network。Kernel 在十年前非常火,给当时风靡世界的算法 SVM 提供了非线性能力。Boosting 中应用最广泛的当属 GBDT,很多问题都能被很好地解决。Neural Network 在很多领域也有非常成功的应用。工业界优化模型的方法总结起来有以下几点。首先,基于过去的数据进行思考得到一个假设,然后将假设的数学建模抽象成参数加入,用数据去拟合新加入的参数,最后用另一部分数据验证模型的准确性。
这里举一个开普勒沿模型这条路发现开普勒三定律的例子。在中世纪的时候,第谷把自己的头绑在望远镜上坚持观察了 30 年夜空,将各个行星的运动轨迹都记录下来。基于这些数据,开普勒不断的进行假设,最后假设行星的运动轨道是椭圆的,用椭圆的方程去拟合他的数据,发现拟合的非常好,便得到了一个新的模型:开普勒第一定律。这就是一个典型的沿着模型走的思路,通过观测数据,科学家获得一个假设,这个假设就是一个模型,然后用数据拟合这个模型的参数,最终在新的数据上验证模型是否正确,这是沿着模型走的一条路。
沿着特征走主要是由工业界来主导,比如说谷歌的 Adwords 里面有上千亿的特征,想要描述为什么会产生一次广告点击,这就需要解决高效并行的问题。这些技术大部分进展来自于 KDD 或是 WWW。沿着特征优化机器学习,就是把问题通过特征的方式分的足够细,做非常准确的模型。