在先薦推薦系統學院|第1期的分享中,第四范式資深研究員羅遠飛針對推薦系統中的高維稀疏數據,介紹了如何在指數級搜索空間中,高效地自動生成特征和選擇算法;以及如何結合大規模分布式機器學習系統,在顯著降低計算、存儲和通信代價的情況下,從數據中快速篩選出有效的組合特征。
以下是羅遠飛在先薦推薦系統學院第一期線上活動中的技術分享:
大家好!我是第四范式的羅遠飛!?
很高興能有機會和大家一起交流關于自動機器學習方面的一些工作。?我在第四范式的工作大都和自動機器學習相關,之前的精力主要集中在自動特征工程。雖然模型改進能夠帶來穩定的收益,但是更為困難。?所以如果是在做一個新的業務,?可以先嘗試從做特征入手,特征工程往往能夠帶來更明顯的收益。
AutoCross的背景
??本次報告所提及的自動機器學習,是針對表數據的自動機器學習。?表數據是一個經典的數據格式,它一般包含多列,列可能對應離散特征或者連續特征。?我們不能將用于圖像、語音或者NLP中的模型直接拿過來用,需要做特定的優化。?
本次報告提及的特征組合,特指featurecrossing,即兩個離散特征的笛卡爾積。以“去過的餐廳”為例,我經常去麥當勞,?那么我和麥當勞可以做為一個組合特征;再比如我去肯德基,則我和肯德基也可做為一個組合特征。
本次報告提及的自動特征工程,是指?自動從上表數據中發現這些有效的組合特征。比如我是一位軟件工程師,是一個特征;在第四范式工作,是另外一個特征。這兩個特征是分成兩列儲存的,我們可以把?這兩列組合成一個新的特征,?這個特征的指示性更強,更具有個性化。?
為什么需要自動特征工程呢?
首先,特征對建模效果有著非常重要的作用。其次,客戶的場景遠比建模專家多,?如我們的先薦業務有上千家媒體,我們不能給每個業務都配備一個專家,針對每一個場景人工去建模。最后,即使只有一個業務,數據也是多變的,面臨的場景也是不停變化的,?所以我們要做自動特征工程,?不能讓人力和我們的業務量呈正比。
AutoCross的相關研究
自動特征工程主要分為兩大類,一類是顯式特征組合,?另一類是隱式特征組合。
顯式的特征組合
顯式的特征組合有兩個代表性工作,分別是RMI[2]和CMI[3]。其中字母“MI”代表互信息(MutualInformation),是一個經典的特征選擇的方法。?
MI是通過統計同一個數據中,兩列特征的出現頻率和共現頻率計算得到。但是RMI的做法是在訓練集合統計一部分信息,在另外一部分成為reference數據上統計另外一部分信息,這也是“R”的來源。上圖?來自于RMI的論文[2],表示隨著不同的?組合特征加進去,然后AUC逐漸地上漲。?CMI是另外一個經典的工作,CMI通過分析對率損失函數,結合牛頓法,計算出每個特征的重要性。
它們都取得了不錯的效果。但一方面,它們只考慮二階特征組合;另外,它們均為串行算法,每次選擇一個組合特征后,都需把其他特征重新訓練一遍,是O(n^2)復雜度,其中n為特征數目。?此外,MI本身不允許一個特征下同時出現多個取值。?
隱式的特征組合
另外一類是隱式特征組合,大家可能更熟悉一些。FM[4]和FFM[5]是枚舉所有的?二階特征組合,它們組合方式是用低維空間中的內積去代表兩個特征的組合,取得了很好的效果。?隨著DL的興起,現在更流行基于DNN做隱式特征組合。但是它的可解釋性不強,一直被大家詬病。
我們提出AutoCross[1],它具有很強的可解釋性,能夠做到高階特征組合,同時具有較高的Inference效率。
AutoCross整體結構
從左往右看,?AutoCross的輸入是數據和對應的特征類型,然后經過AutoCross的Flow,?輸出一個特征生成器,能夠把學到的特征處理方式應用于新數據。
?Flow里主要有三個部分,首先是預處理,?然后是組合特征生成和組合特征選擇的迭代過程。?針對數據預處理,我們提出了多粒度離散化;針對怎么從指數級空間中有效的生成組合特征,?我們用了集束搜索(BeamSearch);針對如何有效且低代價地特征選擇,我們提出了逐域對數幾率回歸(Field-wiseLR)和連續小批量梯度下降(SuccessiveMini-batchGD)兩種方法。?
AutoCross算法
下面我們看一下每個過程所涉及的算法。?
首先是數據預處理,數據預處理的目的是補充缺失值,并將連續特征離散化。我們觀察到?,對于連續特征,在離散化的時候,如果選擇的離散化粒度不一樣,其效果會差別非常大。?甚至在一個數據集上觀察到AUC有10個百分點的差異。如果對每一個數據集都手動設置最優的離散化粒度,代價比較高,也不現實。
基于此我們提出了多粒度離散化方法,同時使用多種粒度去離散化同一個特征,比如特征“年齡”,我們按照年齡間隔為5的離散化一次,年齡間隔為10的離散化一次,?年齡間隔為20的再離散化一次,同時生成多個不同的離散化特征,讓模型自動去選擇最適合它的特征。
集束搜索(BeamSearch)
如前文所述,假設有n個原始特征,?那么可能的k階特征有O(n^k)個,這是?一個指數級增長的過程。?如何在這個空間中有效地去搜索、生成、組合特征呢?如果都生成,在計算和存儲上都不太可行。?
我們借鑒集束搜索(BeamSearch)的方法來解決該問題。它的工作原理是,先生成一部分二階組合特征,?然后用效果好的二階組合特征去衍生三階組合特征,并非生成所有的三階組合特征,相當于一種貪心的搜索方法。
逐域對數幾率回歸(Field-wiseLR)
我們通過多粒度離散化對數據進行預處理,之后通過集束搜索縮減搜索空間。
但生成的特征依然數量眾多,怎么才能快速、低代價地從生成特征中選出有效的特征呢?對此,我們提出了逐域對數幾率回歸(Field-wiseLR)算法,固定已選特征對應的模型參數,?然后計算候選特征中哪個特征?加進來,能夠最大程度的提升模型效果。這樣做能夠顯著節約計算、通信和存儲上的開銷。?
?連續小批量梯度下降(SuccessiveMini-batchGD)
為了進一步降低特征評估成本,我們又提出了連續小批量梯度下降(SuccessiveMini-batchGD)方法。在小批量梯度下降的迭代過程中,逐漸淘汰不顯著的候選特征,并給予較重要的特征更多批的數據,以增加其評估準確性。
?AutoCross-System優化
下面介紹我們在系統上做的一些優化。
緩存特征權重
從算法上來看,我們的?系統是一個指數空間的搜索問題,即使能夠降低其復雜度,它的運算代價依然很大。因此我們會對數據采樣,并序列化壓縮存儲。
?之后,當運行逐域對數幾率回歸時,系統會把已經計算過的特征權重緩存下來。如果按照以前的方法,我們需要先從參數服務器上獲取已經生成特征的權重,?這一步會帶來網絡開銷;獲取之后要做運算,并生成該特征及預測,這一步會產生計算開銷;?生成特征之后,再存儲到硬盤中,進一步會產生存儲成本。?但是,我們把之前的那些特征的權重都給緩存下來,通過直接查表,就能夠降低網絡、計算、存儲的開銷。?
在線計算
除了緩存特征權重之外,我們還進行了在線計算。我們在做特征生成的同時,有獨立的線程去序列化數據和生成特征。
數據并行
此外,數據并行也是系統優化的常用方法。系統的每個進程中都有一份計算圖,并通過主節點,?或者參數服務器,保證它們之間有序地在進行各個操作。?
審核編輯 黃昊宇
-
機器學習
+關注
關注
66文章
8492瀏覽量
134131 -
推薦系統
+關注
關注
1文章
44瀏覽量
10215
發布評論請先 登錄
智能電動輪椅控制系統的研究與設計
VirtualLab Fusion應用:光波導系統的性能研究
EBSD技術在磁性材料研究中的應用進展

數據準備指南:10種基礎特征工程方法的實戰教程

BP神經網絡在語言特征信號分類中的應用
機器學習中的數據預處理與特征工程
特征工程與數據預處理全解析:基礎技術和代碼示例

評論