機器學習都能自動化了?自動之自動 = 自動的乘方?
機器學習作為人工智能領域廣受關注的技術一直倍受學習者的追捧,但其較高的技術門檻和對學習者時間、精力的要求又使人望而卻步,這篇來自Airbnb的文章就將教你自動化機器學習的實現方法。
Airbnb的數據科學項目涉及大量的機器學習,而眾所周知,機器學習的流程其實有許多重復的任務,其中包括了(但不局限于)以下幾項內容:
- 探索性數據分析:對數據進行可視化是機器學習建模前的關鍵步驟。自動化這些任務可以節(jié)省數據科學家的大量時間,比如自動繪制全部變量對要預測的目標變量的關系圖(例如散布圖Scatter Plot),以及自動計算總結性的統計數字(例如平均值和標準差)。
- 特征變換:在如何編碼分類變量、填補缺失值、編碼序列和文本等問題上有各種各樣的特征變換方法可供選擇,但其中不少方法其實已經可以在非常可靠的情況下標準化地應用于許多問題。
- 算法選擇以及調整模型參數:豐富的算法以及模型參數時混亂的方向往往令人眼花繚亂。但其實讓自動化的流程去實現這些任務會更好。
- 模型診斷:自動生成學習曲線、部分依賴圖、特征重要性圖表、ROC曲線等模型用來診斷圖表將會非常實用。
AML時代來臨
越來越多的社區(qū)開始創(chuàng)建各種工具來自動化上述及其他機器學習的工作流程。包含了類似范式的概念,這些流程常常被稱為自動化的機器學習(以下簡稱為AML)
自動化的機器學習引起熱議
實踐中的AML
對于AML,迄今為止還沒有公認的范疇,但那些常在年度ICML會議上組織AML研討會的專家們在他們的網站上定義了一個合理的AML范疇,其中包括了前文中提到的所有重復型任務的自動化。
這個對AML范疇的定義看起來很有野心,但AML在實踐中真的有效嗎?答案取決于你如何使用它。AML很難完全取代數據科學家,因此我們需要特定領域的專業(yè)知識加上人為判斷來正確配置大部分的機器學習問題。
我們還發(fā)現AML工具對使用表格式數據集的回歸和分類問題最有效。AML領域正在迅速發(fā)展。總的來說,可以相信AML在某些情況下能成倍地提高數據科學家的生產率。
在Airbnb中AML已經形成了以下成果:
(1)設定標桿
- 客觀地展示“挑戰(zhàn)者”模型:AML可以使用與現有模型相同的訓練數據集來快速展示大量“挑戰(zhàn)者”模型。這可以幫助數據科學家選擇***的模型。
(2)診斷和探索
- 檢測數據泄漏問題:因為AML可迅速地自動建立候選模型,所以我們可以在建模生命周期中更早地檢測出數據泄漏。
- 診斷:如上所述,AML可自動產生診斷的標準,包括學習曲線、部分依賴圖、特征值重要性圖表等等。
(3)自動化
- 在某種程度上,AML能自動完成如探索性數據分析、數據預處理、超參數調參、模型選擇以及把模型用于生產這些任務。
AML工具
目前市面上有很多商業(yè)版本的或開源的AML工具。我們最喜歡的AML平臺之一是DataRobot。這是個建立在很多為大家熟知的開源算法基礎上的商業(yè)化平臺。Airbnb正在進行的很多項目都使用了DataRobot。
Airbnb也嘗試過以下正在開發(fā)中的開源AML工具:
- TPOT
- Auto-Sklearn
- Auto-Weka
- Machine-JS
案例研究:顧客終身價值模型的競爭基準
Airbnb使用了機器學習來建立房客和房主的終身價值(LTV(lifetime value))模型。這些模型可以幫助Airbnb用預期回報來精細地校準營銷花費(最細可到單個用戶水平)。
對于房客,LTV模型被定義成一個標準的回歸問題,目標變量是在每個房客在某段時間跨度內的消費。這個模型的特征包括:人口,地理位置,以及從Airbnb網絡和移動應用獲取的活動信息。這個模型中有許多可變更的部分可以解釋供需彈性、預期成本和其他變量。
建模過程中重要的一點是數據科學家需要客觀地選擇算法。例如,一個復雜的模型可能比起簡單的模型可以得到一個很小的增量效益,這種取舍就需要仔細斟酌。再比如,在建立LTV模型的過程中,我們傾向去使用 eXtreme gradient boosted trees (XGBoost),這是基于以下幾點原因:
- 這個算法在解決類似問題上往往有不錯的效果。
- 在特設的交叉驗證(cross validation)中,XGBoost有***的結果。
- 時間有限。項目需要花費很多時間在特征工程(feature engineering)、數據清洗、以及將模型應用到生產系統這些模塊上。這樣就沒有很多時間去做算法選擇和參數調整。
當Airbnb意識到這些偏見后,他們通過了AML平臺(datarobot)對原始訓練數據執(zhí)行了完整性檢查來設置模型的誤差基準。
下圖列出了這些基準。這個圖表顯示了各種模型的時間交叉驗證集的均方根誤差(RMSE)分布。y軸對應不同的“藍圖”,它是算法和特征工程步驟的結合。雖然我們不會討論每個藍圖的細節(jié),但下面的圖表展示給讀者了一個概況,以便讀者了解現代AML系統能夠完成的算法選擇的任務范圍。
DataRobot制作的藍圖基準
使用AML,可以很快得到另一種觀點:線性模型對于這個問題非常有競爭力。事實上,AML平臺可以測試很多特征工程步驟,以及進行更嚴格的超參數調整,而我們通常沒有時間手動探索這些功能。此外,這些發(fā)現使得Airbnb改變了原來的算法,減少了超過5%的模型誤差。
結論
AML能幫助我們快速探索數據,以及通過更有效的調參和診斷來提高模型的準確率。上述案例研究充分展示了AML提高模型準確率的能力,但AML也兼具其他優(yōu)勢。對于適合AML的問題,可以認為AML能夠提供有效的建模方式,因為只要有訓練數據AML就很容易上手。但要注意的是,AML并不能保證100%更優(yōu)結果,但有技巧地使用AML往往能產生很不錯的結果。
來源:
https://medium.com/airbnb-engineering/automated-machine-learning-a-paradigm-shift-that-accelerates-data-scientist-productivity-airbnb-f1f8a10d61f8?from=singlemessage&isappinstalled=0
【本文是51CTO專欄機構大數據文摘的原創(chuàng)譯文,微信公眾號“大數據文摘( id: BigDataDigest)”】