近年來,人工智慧、深度學習、機器學習等等概念被炒得很熱。那麼這些高大上的名詞之間有什麼關係呢?

人工智慧,即所謂的AI是一個很寬泛的概念,機器學習是其中重要的組成部分,比如大家熟知的一些演算法,如邏輯回歸等。機器學習又囊括了表示學習,比如淺度自編碼器。深度學習是表示學習的子集,更是機器學習的子集。借用美團的圖,下圖就一目瞭然。今天主要講一下機器學習在用戶畫像標籤挖掘中的應用。

機器學習中的演算法有很多,下圖簡單羅列了一些。

比如我們要做一個用戶年齡預測的問題。大致需要經過六個步驟。

1)確定目標。年齡預測最終的目標結果是預測用戶的年齡段還是具體的年齡。如果是前者,就需要確定分段區間,後者則是一個回歸預測問題。

2)觀察數據。我們需要知道當前可利用的數據有哪些,包括行為相關的數據和其他標籤數據,如婚姻狀況、子女等。數據的質量和量級是很重要的。少量樣本無法覆蓋足夠的輸入樣本空間,大樣本對雜訊的敏感性更弱。可以通過各種可視化的方式來對數據進行統計分析。

3)特徵工程。機器學習=40%數據清洗與加工 + 40%特徵工程 + 20%模型開發。特徵工程的重要性不言而喻。一般數據類型主要分為類別型和數值型。類別型的特徵可以做onehot編碼,或者直接應用於樹型分類器。數值型的特徵一般會做離散化處理,包括二值化、分桶、分位數離散化。這一塊涉及的知識有很多,特徵組合也是比較重要的,通常可以採用GBDT、FM等方法來進行交叉特徵組合。

4)模型選擇。對於年齡預測這一問題,可以根據數據測試貝葉斯、邏輯回歸、決策樹等方法。

5)模型訓練。訓練集和測試集要劃分開。k折交叉驗證方法是較常用的。

6)模型調參。GridSearch方法嘗試,可以列印中間信息,通過查看AUC曲線縮小參數空間。

在spark中機器學習的開發被封裝成pipeline,容易調試,復用程度也很高。下圖就是一個示例。

下圖展示了spark內Estimator的一些子模塊。

模塊足夠豐富後,其實僅靠拖拽足以完成一整套機器學習流程。目前已知的,國內的就有阿里數加,第四範式先知,騰訊DIX,中科院計算所開源的EasyML,國外的有微軟Azure Machine Learning,亞馬遜的Machine Learning 。

希望大家有所收穫~


推薦閱讀:
相關文章