天天看點

基于參數伺服器(Parameter server)的PS-SMART算法

前天第二屆阿裡雲安全算法挑戰賽終于勝利結束了,得了個季軍,雖然名次不是最理想的,不過很高興能認識一大群資料達人,整個比賽的過程也很讓人享受。這次比賽過程中我在對網頁内容進行分析的時候,部分内容使用了基于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

繼續閱讀