阿里雲機器學習 AutoML 引擎介紹與應用

碼農談IT發表於2023-02-23

導讀 在演算法行業有這樣一種說法,80% 的時間用在做資料清洗和特徵工程,僅有 20% 的時間用來做演算法建模,其核心是在說明資料和特徵所佔比重之大。與此同時,越來越多的資料從業者們也希望能夠降低機器學習的入門門檻,尤其是降低對特定領域的業務經驗要求、演算法調參經驗等。基於這一背景,AutoML 應運而生。

本文將介紹:

1. 什麼是 AutoML

2. 超參調優(HPO)

3. 自動特徵工程(AutoFE)

4. 網路結構搜尋(NAS)

5. AutoML - 其它


分享嘉賓|孔維丹 阿里巴巴 高階技術專家

編輯整理|胡回 中南大學

出品社群|DataFun


01

什麼是 AutoML

1. 典型的機器學習流程圖

阿里雲機器學習 AutoML 引擎介紹與應用

典型的機器學習流程包括:
  • 資料採集和預處理。
  • 特徵工程。
  • 模型選擇,在有了待 training 的資料之後我們會選擇一個模型來進行訓練。
  • 模型調參,在模型訓練過程中有很多引數需要調整。
  • 模型壓縮,為了提升推理效率(inference efficiency),要考慮對模型進行一些壓縮。
  • 模型評估 & 部署,對壓縮後的模型進行評估,然後上線。
在這一流程中,有很多模組都可以應用機器來進行最佳化:
  • Hyperparameter Optimization(HPO)超參調優,主要針對模型調參,當然 HPO 也可以運用到整個流程中的各個階段。
  • AutoFE,主要針對特徵工程。
  • Neural Architecture Search (NAS) ,主要針對模型選擇模組,在做模型選擇的時候,可以考慮選擇現成的經典模型和經典模型的改造,也可以考慮從無到有創造出更適合應用的模型。
2. 阿里巴巴計算平臺 PAI 架構圖
透過以下架構圖可以看到 AutoML 在整個 PAI 計算平臺中的位置。

阿里雲機器學習 AutoML 引擎介紹與應用

PAI 架構中最下面是基礎硬體層、分散式的最佳化、排程層,基於此構建了各類計算引擎的框架,比如深度學習框架 TensorFlow 、Pytorch,流式機器學習框架 Alink 等。AutoML 引擎則是構建在計算引擎之上,為更上層的演算法、產品和業務提供服務,起到了承上啟下的作用。
02
超參調優(HPO)
1. HPO -目標

阿里雲機器學習 AutoML 引擎介紹與應用

通常一個模型,會有很多引數需要進行調整,這些超參的範圍構成了一個搜尋的空間。HPO 的目標就是在這個空間裡找到最優的超參組合,並提供訓練完成的模型。
2. HPO - 搜尋空間
引數型別舉例:
  • 樹模型:
樹的數量(10,50,100)
樹的深度(5,6,7)
特徵取樣率(0.6,0.7,0.8)
訓練資料取樣率(0.6~0.8)
僅僅這幾個引數,就已經存在一個很大的搜尋空間待選擇,對人工調參來說並不友好。
  • 深度模型:Learning rate、batch_size、Learning rate decay、網路深度、卷積核大小等等。
深度模型中待選的超參更多,這些引數組合起來則會是一個巨大的搜尋空間。如何在巨大的搜尋空間中高效快速地找到最優的超參,是 HPO 要研究的核心問題。
3. HPO-搜尋策略

阿里雲機器學習 AutoML 引擎介紹與應用

  • 窮舉法
搜尋策略裡最常見的辦法,包括隨機選擇超參、按次序窮舉超參。
  • 機率模型
利用訓練過程中得到的資料,基於機率模型,來做貝葉斯最佳化演算法,或者做 TPE 演算法,幫助我們更大機率的搜到更好的超參。
  • 取樣演算法
PAI team 提出的一種更高階的模型。當面臨很大資料量去進行訓練的時候,時間成本是非常大的。考慮到搜尋空間裡邊有大量的很早就可以排除掉的引數組合,如果能夠用非常低的取樣率,比如說百分之一甚至千分之一、萬分之一的資料量,透過訓練就能夠提前排除大量低質超參,就可以大大地提高訓練效率。然後逐步將取樣率提高,對剩下的超參進行細化調整,這樣就可以在提高訓練的效率的同時嘗試更多的超參組合。實驗證明,與機率模型做了一些對比,取樣演算法有更好的提升。
4. HPO-EarlyStop 策略
為進一步提高 HPO 訓練的效率,我們也會使用 EarlyStop 策略。EarlyStop 策略參考下圖。

阿里雲機器學習 AutoML 引擎介紹與應用

圖上每一條曲線是一個訓練的具體任務,橫軸是 epoch,可以看到部分任務訓練的曲線到了最後,而更多的任務則是訓練了幾個 epoch 之後,就提前被停止放棄。這樣也可以大大提高訓練效率,節省訓練開銷。
5. PAI-AutoML HPO
AutoML 在 PAI studio 上有具體產品的透出。對於使用者而言,只需要在 UI 上選擇具體的演算法,然後提供引數選擇就可以輕鬆使用 AutoML HPO 的功能。

阿里雲機器學習 AutoML 引擎介紹與應用

6. HPO-業務案例

阿里雲機器學習 AutoML 引擎介紹與應用

  • 0號:阿里內部的一個業務團隊,在使用 HPO 之前人工選擇的的超參。
  • 1號、2號、3號:是透過使用 HPO 的服務以後,得到的超參的組合。
  • 2號實驗有著最優的效果,1 號實驗在最終效果與 baseline 接近的情況下,使用的 tree_num 大幅減少。這也就意味著,線上上執行的時候會有更高的效率。
7. 線上資料分時實驗
內部業務線分時實驗,對比如下:

阿里雲機器學習 AutoML 引擎介紹與應用

  • 2 號實驗優於 0 號 baseline,如果業務方更關注線上的效果,那可以選擇 2 號實驗。
  • 如果業務有效能或者資源限制的考量,可以選擇 1 號的實驗。
  • HPO 除了能夠幫找到最優的超參之外,還給我們提供了相同 metric 下效能效率更高的選項。
8. HPO - 合作伙伴案例

阿里雲機器學習 AutoML 引擎介紹與應用

椰子科技在使用 PAI AutoML 的調參服務,大大地提高了效率,節省了人力。
03
自動特徵工程(AutoFE)
1. 為什麼需要特徵工程?

阿里雲機器學習 AutoML 引擎介紹與應用

資料和特徵本身決定了機器學習的上限,而模型和演算法是逼近這個上限。深度模型也不例外。所以當有更好的資料,更優的特徵的時候,會提高最終的效果。
在網際網路行業, CTR 預估、模型推薦場景的需求還是重中之重,在這兩個場景下面,絕大部分的特徵還是表格資料,而自動特徵工程,恰恰可以應用在這些表格資料之上。
另一方面,金融行業對模型最終的可解釋性要求比較高,對於 Deep learning 這樣的 model 會有一些心理上的抗拒,透過特徵工程進行最佳化,可以使特徵有更好的可解釋性。
與 HPO 類似,AutoFE 的研究方向也是兩個,一個是搜尋空間,一個是搜尋策略
2. AutoFE – 搜尋空間 - 操作與候選特徵
搜尋空間關注的一個是用什麼樣的操作,另一個是選取哪些特徵。

阿里雲機器學習 AutoML 引擎介紹與應用

(1)一元的運算子
  • 離散化。
  • 歸一化。
  • 數學運算。
  • 統計特徵,計數、最大值、最小值等。在推薦場景中,統計特徵會有很好的效果。
(2)二元的操作
  • 數學運算。比如關注的是一個人是胖還是瘦,通常會使用 BMI 指標,這樣的指標就是典型的二元操作。
  • 邏輯運算。比如有一列特徵是性別,還有一列特徵是年齡,那麼性別是男,且年齡在20 到 30 歲之間,這就是一個典型的交叉的邏輯特徵。
  • 統計特徵。比如 Average A Group By Label,對於這個特徵而言,關注它和 Label 列直接的關係。這個特徵和 Label 直接交叉之後,可能會得到一個很強的特徵。
3. AutoFE – 搜尋策略 -候選特徵選擇

阿里雲機器學習 AutoML 引擎介紹與應用

  • FeatureTools 與 DFS (Deep Feature Synthesis)
開源專案,透過定義表格上的 entity、entity 的 ID 以及 entity 之間的關係,作用於多個表格,表格往往都是關係性資料庫的表格,然後去分析獲得特徵的組合,包括一些統計特徵。
  • PAI – AutoFE:SAFE (Scalable Automatic Feature Engineering)
來自螞蟻的一篇 paper,面向的場景是大寬表。這個演算法基於 Alink 引擎,可以很容易地處理海量的資料,也可以充分地依賴於 Alink 提供的各種演算法和運算元。FeatureTools 是需要程式碼開發的工作,使用上有一定的難度。而 PAI-AutoFE 在設計時,就考慮以配置驅動,無需程式碼開發,只需要提供簡單的配置,就可以端到端地做自動的特徵工程。
4. PAI-AutoFE - SAFE 演算法

阿里雲機器學習 AutoML 引擎介紹與應用

可以從端到端來看,使用者輸入是一個原始的表格以及 label 列。最終輸出到使用者的還是原始的那個表格,記憶新加的特徵,並且明確地告訴使用者這些特徵的計算方式,比如 A 列加 B 列、group by A 列、B 列的最大值等等。
整個過程分兩個階段
  • 階段一:找到候選的特徵。
  • 階段二:在這些候選特徵裡面剔除掉效果不好的特徵,保留效果好的特徵,然後再把它加到最終的表格裡面去。
具體細節:
  • 執行 GBDT,得到多棵樹,以及每棵樹上會有一些分裂節點、具體的分裂值。
  • 特徵組合篩選。透過分析 GBDT 樹的分支,可以得到特徵交叉的候選組合。而使用 GBDT 則可以把特徵組合候選量大幅降低。在有了這些候選特徵組合之後,還可以進一步地去做過濾,GBDT 給了資料集的劃分,對資料的特徵組合,可以去計算 IGR(資訊增益率),透過保留資訊增益率比較高的組合,可以進一步的減少組合的特徵。
  • 特徵生成。得到了這些優秀的特徵以後,再透過執行運算子,生成新的特徵。
  • 移除無用特徵,進一步最佳化。比如計算 information value(資訊價值),把 IV 值比較高的特徵給留下來。
  • 再次執行 GBDT, 讓 GBDT 給每個特徵打分,透過 GBDT 得到的 feature importance(特徵重要性),保留最終特徵。
整個流程下來,不會對使用者的原始資料增加很多,但是卻會得到很好的效果。
5. AutoFE – PAI 平臺推薦解決方案 EasyRec + AutoFE

阿里雲機器學習 AutoML 引擎介紹與應用

在推薦領域,PAI 平臺做了一個推薦的解決方案:EasyRec。這個解決方案裡使用了各種 deep model, 幫使用者做了基礎的特徵工程,端到端幫助使用者生成模型。EasyRec 整合有 HPO 和 AutoFE 模組,開啟這些功能,可以讓使用者的特徵效果得到進一步的提升。

阿里雲機器學習 AutoML 引擎介紹與應用

上圖是影片領域某客戶的案例,2022年5月13-15 日三天的資料,紅色框是 baseline, 是 EasyRec 的效果,v5 是表明已經迭代到了第五版。黑色框裡的是使用了 AutoFE 之後的實驗結果。
可以看到,使用 AutoFE 之後的效果顯著優於 baseline, 最大會有十個點以上的提升。點選率、影片觀看時長都有明顯的提升。儘管 AutoFE 使用了傳統的機器學習的方法進行自動特徵工程,但在 Deep learning model 上同樣有著很優秀的表現。
04
網路結構搜尋(NAS)
1. 背景

阿里雲機器學習 AutoML 引擎介紹與應用

深度學習開啟了 AI 的大門之後,各個領域的專業問題都可以用深度學習來進行最佳化。不管是在 CV、NLP,還是在其他不同的領域,都會需要到不同的模型。
2. NAS – 終極目標

阿里雲機器學習 AutoML 引擎介紹與應用

機器學習的終極目標:使用者只需要提供資料和 label, NAS 系統便能夠使用盡可能少的資源資源的情況下,快速的給出一個便於使用者理解的模型。
3. NAS – 組成部分

阿里雲機器學習 AutoML 引擎介紹與應用

與 HPO 和 AutoFE 類似,NAS 首先也是要定義一個網路結構的搜尋空間,因為搜尋空間很大,所以同時需要研究出更高效的搜尋策略,更巧妙的加速方案。
搜尋空間:
  • 有向無環圖;
  • 塊單元;
  • 元結構。
搜尋的演算法,目的是更快更高效地找到最優的模型,包括:
  • 強化學習
  • 進化演算法
  • 梯度最佳化
  • 貝葉斯最佳化
加速的方案有:
  • 全部訓練
  • 部分訓練
  • 全值共享
  • 網路態射
  • 超網路
4. NAS – 強化學習典型方案

阿里雲機器學習 AutoML 引擎介紹與應用

經典 NAS 的處理過程使用了強化學習(reinforcement learning)的方法。使用引數推薦出的一個模型進行訓練並得到 metric,然後給到控制器(controller),在已有模型的基礎上推薦下一個潛在具有最優 metric 的模型,然後把該模型給到右邊這個 child network ,再從零開始訓練。這樣又可以得到下一組模型和 metric 的組合,迴圈往復,最終選出一個最好的網路。
這一方案最大的缺點是,每次訓練都需要從零開始,不同模型之間做了大量重複訓練,卻沒有共享訓練成果的, 所以效率非常地下。
5. NAS – OneShot - ENAS/DARTS

阿里雲機器學習 AutoML 引擎介紹與應用

此基礎之上,出現了很多 OneShot 方法。
(1)最佳化點
  • ENAS 方法做了不同模型之間的權值共享,訓練不再從零開始,大大地提高了訓練的效率。
  • DARTS 方案,不再使用 reinforcement learning 的方法,而是重新設計了一個可微的網路,透過梯度下降的方法去尋找一個最優的網路結構。
(2)問題點
  • OneShot 方法依舊需要大量的訓練。
  • 搜尋的空間大:搜尋空間是一個 super net 超網路,而結果是在這個超網路上的一個子網路。
6. NAS – 主幹網路搜尋

阿里雲機器學習 AutoML 引擎介紹與應用

迴歸到實際使用者使用場景,使用者做訓練時,並非都是從零開始。一種情形是,使用者已經使用了經典模型,但是希望有更好的效果。另一種情形是,使用者已經設計了一個網路,並且希望能夠在此基礎之上,能夠有一些微調,以得到更優的效果。
針對這類需求,一部分 NAS 研究工作的重心,落到了 model 裡的 backbone 主幹網路的搜尋。主幹網路消耗了訓練中的絕大部分的時間,所以主幹網路的最佳化,能夠大幅提高訓練效率。

阿里雲機器學習 AutoML 引擎介紹與應用

  • 案例
NAS-FPN 和 DetNAS,共同點是都使用了 FPN(Feature Pyramid Network)方法。在基礎網路之上,透過設計 FPN 把原網路的特徵層抽取出來,合併成新的特徵,再加回到待抽取的網路特徵裡。這樣搜尋空間就是使用者自己的 backbone,同時能提取出高階的特徵。
然而,這類方法還存在一個問題,它仍然是一類 OneShot 方法,依舊需要訓練原有的資料,訓練開銷還是比較大。
7. NAS-MaE-NAS

阿里雲機器學習 AutoML 引擎介紹與應用

針對上述主幹網路搜尋存在的問題,達摩院提出了 MaE-NAS 的方法。它是 Zero-shot  的方法,不再需要訓練資料,而是透過評價網路的結構來確定網路需要怎樣修改。
優勢在於:
  • 無需訓練網路引數,搜尋代價幾乎為 0。
  • 效率非常高。
  • 在精度,模型大小,推理速度,計算量等指標上全面超越主流網路結構。
(1)MaE-NAS 核心演算法

阿里雲機器學習 AutoML 引擎介紹與應用

MaE-NAS 核心演算法本質上是把原有的 CNN 網路看成是一個資訊系統,透過計算網路輸出層的熵,熵越大,則代表著這個網路的表達能力就越強,效果就越好。透過這樣的方法來訓練網路結構,相比 OneShot 方法更加高效。
(2)MaE-NAS 案例

阿里雲機器學習 AutoML 引擎介紹與應用

在拍立淘的案例中,透過使用 MaE-NAS 方法,可以把模型大大的壓縮,部署到客戶端。在這種情況下,同樣是輸入一張圖片,客戶端就已經對商品進行了檢測,只把商品的熱區,也就是我們關注的一小部分摳出來上傳到伺服器,再透過伺服器的特徵提取,最終返回檢索結果,使使用者搜尋時延大幅降低。
05
AutoML – 其他

阿里雲機器學習 AutoML 引擎介紹與應用

AutoML 也會有很多其他領域的研究,比如 Transfer-learning,歡迎大家觀看。

阿里雲機器學習 AutoML 引擎介紹與應用

06

問答環節

Q1:Auto FE 裡 IV 值高的特徵和 GBDT 選出的特徵有什麼關係,能相互印證嗎?

A1:在計算 IV 的時候,如果一些特徵比較強,跟其他特徵組合的時候,它會在多個特徵下面表現出IV值都很高,但是可能是重複的。而在 GBDT 有一個特點,如果兩個特徵一模一樣,那麼一個特徵很強的時候,另一個特徵的權重就會直接打到零。所以從這個角度上講, IV 值高不一定代表 GBDT 這邊最後選出來的特徵會是強。但是如果把上述情況剔除掉,那麼 IV 值高在 GBDT 的 importance 也相對高。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2936628/,如需轉載,請註明出處,否則將追究法律責任。

相關文章