每日最新頭條.有趣資訊

深度特徵合成:自動化特徵工程的運作機制

大數據文摘出品

編譯:M.Y.Love、Hope、雲舟

將機器學習的方法推廣到新問題仍然存在著不小的挑戰,其中最嚴峻的問題之一,就是人工提取特徵的複雜性和高時間耗費性,本文就將帶你了解自動化特徵提取方法。

機器學習算法面臨的最大技術障礙就是它們需要通過對數據的處理才能夠運作——它們只能利用數值型數據進行預測。數據是由相關變量組成的,一般稱為“特徵”。如果計算得到的特徵不能清晰地揭示預測資訊,那麽任何參數的調整都無法讓模型表現得到提升。對數字特徵進行提取的過程,我們稱之為“特徵工程”。

自動化特徵工程能夠對必要而繁瑣的工作進行自動化處理,從而優化機器學習模型的構建和部署,這樣數據科學家就可以更多地關注其他重要步驟。下面我們會介紹深度特徵合成(DFS:Deep Feature Synthesis)的基本概念,這個自動化特徵工程方法創建的特徵能夠與數據科學家自己創建的特徵媲美。

始於MIT

DFS是2014年麻省理工學院電腦科學與人工智能實驗室提出的一個概念。創始人Kalyan Veeramachaneni和Max Kanter利用DFS構建了一台“數據科學機器”,它可以針對複雜的多表格數據集自動構建預測模型。利用這個系統,他們在線上數據競賽中取得了不錯的成績,在906支隊伍中超越了615支人類參賽者組成的隊伍。

在2015年IEEE數據科學和高級分析國際會議中,他們在同行評議的論文中分享了自己的研究工作。那個時候這個方法就已經成熟了,不僅給Feature Labs的產品提供了幫助,還推動了包括伯克利和IBM在內的全球科學家的研究工作。

理解深度特徵合成

深度特徵合成有三個關鍵概念需要理解:

1、特徵源自數據集中數據點之間的關係。DFS擅長針對數據庫或日誌檔案中常見的多表格數據集和交易數據集實施特徵工程。之所以專注於這種數據,是因為它是企業中最常見的數據類型:Kaggle上一個對16,000個數據科學家進行的調查表明,對關係型數據集的探索佔用了他們65%的工作時間。

2、對於多個數據集,很多特徵是採用相似的數學運算得到的。我們採用客戶購買記錄的數據集來幫助大家理解。對於每個客戶,我們可能會關心他們單次購買金額最高的訂單。為此,我們將收集與客戶相關的所有交易,並找到“購買金額最大值”的資料欄。對於其他問題,比如飛行班機的數據集,使用最大值提取可以發現“最長班機延誤時間”,這有利於我們對將來的班機延誤時間進行預測。

儘管在描述上有所差異,但這兩者的數學原理是一樣的。在這兩種情況下,我們對數值列表採用相同的操作,生成基於特定數據集的新特徵,這些與數據集本身無關的操作,我們稱之為“基元”。

3、新的特徵通常由先前獲取的特徵派生出來。基元是DFS的基石,它定義了輸入和輸出的類型,把基元組合起來就可以構造與人工創建的特徵相媲美的複雜特徵。

DFS可以根據關聯特性跨實體應用基元,這就是我們能夠基於多個表格創建特徵的原因。我們可以通設定搜索的最大深度來控制創建特徵的複雜度。

數據科學家經常會在交易數據或事件日誌中計算“事件發生的平均時間間隔”,這個特徵可以幫助我們預測欺詐行為或未來顧客的活躍時間。DFS可以通過組合Time Since和Mean兩個基元來完成這個特徵的提取。

這個例子突出了基元的第二個優點——它們可以用參數化的方法快速枚舉很多有意思的特徵。不僅可以使用平均值,我們還可以用最大值、最小值、標準差或中位數來對時間間隔進行匯總,從而產生不同的特徵。如果我們要向DFS添加一個新的基元——比如兩個位置之間的距離——它將自動與現有基元進行組合,這個過程完全不需要額外的人工設定。

持續改進

在2017年9月,我們發布了DFS的開源計劃,將項目開放廣大資深的數據科學家進行測試。在此之後的三個月裡,Featuretools成為了Github上解決特徵工程問題最受歡迎的庫。

這意味著任何群體的人都可以加入項目並貢獻他們的基元,從而使所有用戶收益。由於基元是獨立於特定數據集定義的,因此只要數據類型相同,添加到Featuretools的任何新基元都可以運用到其他數據集中。有的時候可能是被用在相同領域中,但是也可以運用在完全不同的背景中。比方說,社區中的一個貢獻者利用了2個基元來處理自由文本格式的數據。

處理時間

在模型擬合的時候我們有時很容易就會把與預測資訊緊密相關的資訊泄露到模型中去。之前零售商給客戶的應用程式就是一個典型的例子:生產模型與公司的發展完全對不上號。他們希望預測誰會成為未來的客戶,但是在模型中最重要的特徵是顧客已經打開的郵件數量。在訓練中模型的精度非常高,但是在實際應用中卻完全不適用。

回頭思考一下,理由其實很簡單 - 這些潛在客戶是在成為客戶之後才開始閱讀電子郵件的。這個公司在做人工特徵工程的時候並沒有排除事件發生之後(成為客戶之後)才獲得的數據。

Featuretools的DFS可以利用“截止時間”為每個特定時間的樣本進行特徵提取。它會模擬樣本在過去時間點的情況,以確保在有效的數據上進行特徵工程。這樣可以減少標簽泄露帶來的問題,使數據科學家在使用這些模型的時候更有信心。

用自動化增強人性化

DFS可用於開發無人類介入的基準模型。然而,特徵工程的自動化應被視為對人類知識經驗的補充 - 它能夠使數據科學家更加高效地構建更精確的模型。

對於許多問題,基準分數足以讓人們確定方法是否有效。在一個案例中,我們在Kaggle上對1,257名人類競爭者進行了一項實驗。我們使用DFS生成特徵矩陣,然後使用回歸器來創建機器學習模型。

機器學習分數(RSME)與排行榜上的百分位數。隨著分數下降,排行榜上的位置上升。彩色垂直線代表使用Featuretools的不同實驗方法得到的排行榜位置。

我們發現,在幾乎沒有人類介入的條件下,DFS能夠創建出優於兩個基準模型的模型。在實際環境中,這是機器學習能夠輔助特徵工程的有力證據。進而,我們通過添加自定義基元來超越80%的競爭對手,並獲得了接近最佳的得分。

應用深度特徵合成

我們最近寫了一篇文章,內容是關於使用自動化特徵工程來提高全球銀行欺詐檢測模型的表現,從而提高利潤。在這個案例中,我們要預測交易是否屬於欺詐,我們根據進行交易客戶的歷史行為創建了特徵。DFS創建了諸如“自上次交易以來的時間間隔”,“交易之間的平均時間間隔”和“使用此卡的最後一個國家/地區”等特徵。所有這些特徵都參考了各數據點之間的關係,並使用截止時間確保特徵構建基於事件發生之前的數據。

得到的結果與銀行現有的軟體解決方案相比,誤報數量下降了54%,從而減少了錯誤判斷不良用戶的次數。新的模型預計會為每200萬筆交易帶來190,000歐元的增收。

深度特徵合成vs深度學習

深度學習可以對影像、文本和音頻進行特徵工程,但是通常需要大量樣本進行訓練,而DFS則針對公司使用的結構化事務和關係型數據集。

DFS生成的特徵對於人類來說更容易解釋,因為它們使用的是可以用自然語言輕鬆描述的基元組合。深度學習中的變換必須通過矩陣乘法來實現,而DFS中的基元可以轉換為專業知識能夠描述的任何函數。這增加了技術的可訪問性,並為沒有業務背景的機器學習專業人員提供了更多貢獻自己專業知識的機會。

此外,深度學習通常需要大量樣本來學習複雜的結構,而DFS則是基於數據集的特點來構建潛在特徵的。對於許多企業來說,不一定有足夠的樣本來做深度學習,DFS則提供了一種能夠基於更小的數據集來進行特徵工程的方法,而且這些特徵更加容易被人類所解釋。

特徵工程的美好未來

自動化特徵工程極大地提高了機器學習的潛力,讓數據科學團隊能夠更加快速地對收集的數據進行分析。有了自動化特徵工程之後,數據科學家能夠更快速地應對新的問題。更重要的是,數據科學家能夠更好地在自己的業務背景中發揮自己的技能優勢。

著名的機器學習教授Pedros Domingos曾經說過,“機器學習的聖杯之一是把越來越多的特徵工程自動化。”我們由衷地讚同這個觀點,能夠在這個領域最前沿進行工作和研究的我們,實在是興奮至極!

相關報導:

https://www.featurelabs.com/blog/deep-feature-synthesis/?from=singlemessage&isappinstalled=0

【今日機器學習概念】

Have a Great Definition

志願者介紹

獲得更多的PTT最新消息
按讚加入粉絲團