IJCAI (International Joint Conference>伏羲推薦引擎是華為應(yīng)用市場(chǎng)聯(lián)合華為諾亞方舟實(shí)驗(yàn)室開發(fā)的一款推薦系統(tǒng)。針對(duì)華為應(yīng)用市場(chǎng)的業(yè)務(wù)特點(diǎn)和數(shù)據(jù)特征,伏羲推薦算法團(tuán)隊(duì)提出的端到端的深度學(xué)習(xí)推薦模型DeepFM,助力華為應(yīng)用市場(chǎng)更加精準(zhǔn)、個(gè)性化的推薦體驗(yàn)。
華為諾亞方舟實(shí)驗(yàn)室算法專家在IJCAI2017演講
特征工程(Feature Engineering)是影響推薦系統(tǒng)的重要因素。相比于其他機(jī)器學(xué)習(xí)系統(tǒng),推薦系統(tǒng)更依賴于特征工程。
傳統(tǒng)的大規(guī)模線性模型(如邏輯回歸),通常依賴于人工方式設(shè)計(jì)特征。同時(shí)由于線性模型無(wú)法對(duì)特征間的非線性關(guān)系進(jìn)行自動(dòng)建模,通常依賴于特征組合(Feature combination)來(lái)實(shí)現(xiàn)二階或高階特征的構(gòu)造。例如,在應(yīng)用市場(chǎng)場(chǎng)景下:
一些流行的應(yīng)用比較容易被用戶下載,說(shuō)明應(yīng)用的標(biāo)識(shí)會(huì)影響用戶下載 (一階特征)
吃飯時(shí)間一些外賣類的應(yīng)用比較容易被用戶下載,說(shuō)明應(yīng)用的類型和時(shí)間綜合起來(lái)會(huì)影響用戶下載 (二階特征)
年輕男性喜歡下載射擊類和角色扮演類的游戲,說(shuō)明應(yīng)用類型、用戶年齡和用戶性別綜合起來(lái)會(huì)影響用戶下載 (三階特征)
人工方式的特征工程,通常有兩個(gè)問(wèn)題:
一個(gè)是特征爆炸。以通常使用的Poly-2模型為例,該模型采用直接對(duì)2階特征組合建模來(lái)學(xué)習(xí)它們的權(quán)重,這種方式構(gòu)造的特征數(shù)量跟特征個(gè)數(shù)乘積相關(guān),例如:加入某類特征有1萬(wàn)個(gè)可能的取值(如APP),另一類特征也有1萬(wàn)個(gè)可能的取值(如用戶),那么理論上這兩個(gè)特征組合就會(huì)產(chǎn)生1億個(gè)可能的特征項(xiàng),引起特征爆炸的問(wèn)題;如果要考慮更高階的特征,如3階特征,則會(huì)引入更高的特征維度,比如第三個(gè)特征也有1萬(wàn)個(gè)(如用戶最近一次下載記錄),則三個(gè)特征的組合可能產(chǎn)生10000億個(gè)可能的特征項(xiàng),這樣高階特征基本上無(wú)法有效學(xué)習(xí)。
另一個(gè)問(wèn)題是大量重要的特征組合都隱藏在數(shù)據(jù)中,無(wú)法被專家識(shí)別和設(shè)計(jì) (關(guān)于這個(gè)的一個(gè)有名的例子是啤酒和尿片的故事)。依賴人工方式進(jìn)行特征設(shè)計(jì),存在大量有效的特征組合無(wú)法被專家識(shí)別的問(wèn)題。實(shí)現(xiàn)特征的自動(dòng)組合的挖掘,就成為推薦系統(tǒng)技術(shù)的一個(gè)熱點(diǎn)研究方向,深度學(xué)習(xí)作為一種先進(jìn)的非線性模型技術(shù)在特征組合挖掘方面具有很大的優(yōu)勢(shì)。
針對(duì)上述兩個(gè)問(wèn)題,廣度模型和深度模型提供了不同的解決思路。其中廣度模型包括FM/FFM等大規(guī)模低秩(Low-Rank)模型,F(xiàn)M/FFM通過(guò)對(duì)特征的低秩展開,為每個(gè)特征構(gòu)建隱式向量,并通過(guò)隱式向量的點(diǎn)乘結(jié)果來(lái)建模兩個(gè)特征的組合關(guān)系實(shí)現(xiàn)對(duì)二階特征組合的自動(dòng)學(xué)習(xí)。
作為另外一種模型,Poly-2模型則直接對(duì)2階特征組合建模來(lái)學(xué)習(xí)它們的權(quán)重。FM/FFM相比于Poly-2模型,優(yōu)勢(shì)為以下兩點(diǎn)。
第一,F(xiàn)M/FFM模型所需要的參數(shù)個(gè)數(shù)遠(yuǎn)少于Poly-2模型:FM/FFM模型為每個(gè)特征構(gòu)建一個(gè)隱式向量,所需要的參數(shù)個(gè)數(shù)為O(km),其中k為隱式向量維度,m為特征個(gè)數(shù);Poly-2模型為每個(gè)2階特征組合設(shè)定一個(gè)參數(shù)來(lái)表示這個(gè)2階特征組合的權(quán)重,所需要的參數(shù)個(gè)數(shù)為O(m^2)。
第二,相比于Poly-2模型,F(xiàn)M/FFM模型能更有效地學(xué)習(xí)參數(shù):當(dāng)一個(gè)2階特征組合沒(méi)有出現(xiàn)在訓(xùn)練集時(shí),Poly-2模型則無(wú)法學(xué)習(xí)該特征組合的權(quán)重;但是FM/FFM卻依然可以學(xué)習(xí),因?yàn)樵撎卣鹘M合的權(quán)重是由這2個(gè)特征的隱式向量點(diǎn)乘得到的,而這2個(gè)特征的隱式向量可以由別的特征組合學(xué)習(xí)得到。
總體來(lái)說(shuō),F(xiàn)M/FFM是一種非常有效地對(duì)二階特征組合進(jìn)行自動(dòng)學(xué)習(xí)的模型。
深度學(xué)習(xí)是通過(guò)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和非線性激活函數(shù),自動(dòng)學(xué)習(xí)特征之間復(fù)雜的組合關(guān)系。目前在APP推薦領(lǐng)域中比較流行的深度模型有FNN/PNN/Wide & Deep。FNN模型是用FM模型來(lái)對(duì)Embedding層進(jìn)行初始化的全連接神經(jīng)網(wǎng)絡(luò)。PNN模型則是在Embedding層和全連接層之間引入了內(nèi)積/外積層,來(lái)學(xué)習(xí)特征之間的交互關(guān)系。Wide & Deep模型由谷歌提出,將LR和DNN聯(lián)合訓(xùn)練,在Google Play取得了線上效果的提升。