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

特征工程實(shí)施步驟

淺談智能照明系統(tǒng)在綠色建筑工程中的應(yīng)用與優(yōu)化

BP神經(jīng)網(wǎng)絡(luò)在語(yǔ)言特征信號(hào)分類(lèi)中的應(yīng)用
機(jī)器學(xué)習(xí)中的數(shù)據(jù)預(yù)處理與特征工程
特征工程與數(shù)據(jù)預(yù)處理全解析:基礎(chǔ)技術(shù)和代碼示例

編碼器在自動(dòng)化系統(tǒng)中的應(yīng)用
振弦采集儀在隧道工程中的安全監(jiān)測(cè)與控制研究

SCADA系統(tǒng)在工業(yè)自動(dòng)化中的應(yīng)用
淺談在線監(jiān)測(cè)系統(tǒng)在水廠水質(zhì)管理工程中的應(yīng)用與研究

振弦采集儀在巖土工程固結(jié)沉降監(jiān)測(cè)中的應(yīng)用研究

振弦采集儀在巖土工程監(jiān)測(cè)中的精度驗(yàn)證與校準(zhǔn)方法研究

評(píng)論