虽然有着重重困难,显式特征组合的优势在于可解释性,会提供一个非常深入的洞察,可以知道哪些特征是潜在有关系的,应该组合起来;同时这样的方法享受比较好的可叠加性:所有机器学习算法都基于特征,显式特征组合的产出是特征集,这个特征集可以增强所有其他机器学习的算法,成为训练的基础。 目前,显式特征组合主要有几种算法,一些方法基于Boosting,训练单Feature弱分类器,通过Boosting的过程寻找组合的启发;或者基于Regularization进行权重截断,形成组合候选。这些算法一般不是为了特征组合而设计,组合也多为训练过程的副产物,很难真正的获得高阶的组合特征。 新一代的显式特征组合:FeatureGO 下面介绍第四范式最新发布的算法—FeatureGO。它是基于MCTS,对特征与特征组合状态进行建模,训练组合下的收益函数。在搜索的过程中,我们做了非常多的调优技术,使用我们内部线性分型算法LFC解决连续值特征组合的问题。最终,我们发现这个特征组合最多能达到十阶以上,且发现即使达到十阶也能提供明显的的效果提升,这个是过去靠人所做不到的事情。即使是在最好的广告或者推荐系统中,人工的特征组合一般也只能到达5-6阶。 我们在4个数据及上实验了FeatureGO算法,包括两个公开的数据集(higgs、criteoDeepFM)与两个我们私有的数据集(l_data,m_data),数据集统计信息如下: 在这四个数据集上,我们使用FeatureGO产生的特征集合加上LR模型进行训练,使用AUC作为评估标准。实验效果如下。可以看到,使用了FeatureGO进行特征工程,在4个数据集上的效果都有非常明显的提升,大部分提升在AUC 2个百分点左右。 我们也实验了效果随着时间与新组合特征的加入而发生的变化,如下图所示。可以看到随着时间的变长,特征组合数越多,特征组合效果会越来越好。 基线对比算法除了LR之外,我们也比较了一些最新的非线性算法成果,在cretio广告数据上进行实验,结果如下。在这个实验里,我们也可以看到,即使是基于最新NN或者FM的特征组合,也并不能找全所有可以利用的信息,这个对比中显式特征组合依然有非常好的表现。同时要注意到的是,FeatureGO产出的新组合特征还可以进一步提高上述所有模型的效果。 在FeatureGO这样的算法背后,其实还有好多隐藏的架构上的黑科技,让基于搜索的算法可以实际变成可行。比方说我们提出了CPS(Cross Parameter-server Sharing),Dynamic Graph等技术,将计算过程中公共的数据读取处理、特征请求存储更新等进行共享,达到同时训练10个模型的时候使用远小于10倍单模型时间的效果。 关于计算能力与架构,我们认为这是人工智能至关重要的一部分。过去将APP开机速度由20ms优化到2ms其实意义并不是特别大,但是在机器学习中,10倍的速度意味着同时间训练10倍多的数据,或者同时能训练10个模型,也就意味着更好的效果,这也就代表着以往模型优化、效果优化这种只有科学家做的事情,现在优秀架构师也能做到。在这方面,谷歌是非常好的榜样。在过去,从没有人想过LR这么简单的模型也能获得良好的效果,但是通过极致的工程架构与实现优化,谷歌证明了使用上千亿特征,即使简单的LR模型也不比任何非线性模型差。第四范式也是一个架构工程优化和算法并重的公司。我们不仅做人工智能的通用平台,也会投入非常多的精力去优化速度与架构,希望能获得更强、更全面的人工智能水平和能力。 说到计算与架构这一点,atv直播,也要提到谷歌Deepmind团队最近做的另外一件工作NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING,通过强化学习框架自动进行神经元网络结构的学习,有人提到这个工作为了自动获得一个网络结构,使用了800块GPU同时进行训练,非常不实用。但我们认为,谈到将来的趋势,不会是通过专家来节省机器,降低机器的使用,而是通过机器节省专家降低专家的参与,因为随着摩尔定律,机器的计算成本会指数级的降低,但是专家的数量并不会指数增加。要让更多的领域用上人工智能,更少人力的AutoML是将来的必经之路。 (责任编辑:本港台直播) |