前天第二届阿里云安全算法挑战赛终于胜利结束了,得了个季军,虽然名次不是最理想的,不过很高兴能认识一大群数据达人,整个比赛的过程也很让人享受。这次比赛过程中我在对网页内容进行分析的时候,部分内容使用了基于Parameter Server的PS-SMART进行分析。我看了一下,好像其他队伍都没有用这个算法,就想给大家简单介绍一下。
我用PS-SMART的原因主要要有2个:
1,节省资源,虽然PS-SMART跑起来感觉比较慢,不过很省资源,很适合这次算法赛(资源有限制)。
2,支持稀疏矩阵,可以直接对三元组转化的K_V结果进行处理。
3,支持二分类,多分类和回归,可以满足多种需求。
大家在资源有限,而且对速度要求不是特别高的场景下可以多考虑一下PS-SMART,用起来结果还是不错的。不过使用的PS-SMART时候要注意控制维度,如果稀疏矩阵的特征维度过大(我测试是超过25000),很容易发生错误。
以下是PAI上关于PS-SMART多分类的帮助:
PS-SMART多分类
PS是参数服务器(Parameter server)的简称。PS致力于解决大规模模型的离线、在线训练任务。SMART是Scalable Multiple Additive Regression Tree的缩写,是Gradient boosting decesion tree (GBDT)在PS上的一个实现。基于PS的Smart实现可以支持百亿样本、几十万特征的训练任务,可以在上千个节点上运行,且有failover功能,稳定性好。同时,PS-Smart支持多种数据格式、训练目标和评估目标,以及输出特征重要性,并包含直方图近似等加速训练的优化。
快速上手
https://zos.alipayobjects.com/rmsportal/CqElMhULXnCHLwYfIgug.png
图中我们使用训练数据学习了一个PS-SMART多分类模型。输出桩有3个,依次为
输出模型:offlinemodel,接统一的预测组件,目前不支持输出叶子节点编号
输出模型表:依然是二进制格式,不可读,是为了兼容已有PS-SMART预测组件,支持输出叶子节点编号,评估指标等功能。但对数据格式有较多要求,体验不佳,会逐渐改良或用其他组件代替。
输出特征重要性表:特征的重要性,有三种重要性类型可选(详见参数说明)
具体帮助请看帮助:
https://help.aliyun.com/document_detail/42745.html?spm=5176.doc42747.6.548.L1ghS9#PS-SMART多分类
关于PS(Parameter Server)可以看这篇论文:
http://www.cs.cmu.edu/~muli/file/ps.pdf?spm=5176.doc42745.2.45.WdNXZm&file=ps.pdf