極深因子分解機(jī)模型:特征(features)的構(gòu)建對推薦系統(tǒng)來說至關(guān)重要,直接關(guān)系到推薦系統(tǒng)的精準(zhǔn)性。在傳統(tǒng)的推薦系統(tǒng)中,高階交叉特征通常由工程師手工提取,不僅人力成本高昂、維度空間極大,而且不可泛化。因此自動(dòng)學(xué)習(xí)特征的交互是十分有必要的 ,但目前已有的相關(guān)工作學(xué)習(xí)的是隱式的交互特征,且特征交互發(fā)生在元素級(jí)(bit-wise)而非向量級(jí)。為此,微軟亞洲研究院社會(huì)計(jì)算組在KDD 2018上提出一個(gè)新的模型——極深因子分解機(jī)(xDeepFM)。
近年來,隨著深度學(xué)習(xí)技術(shù)在語音識(shí)別、計(jì)算機(jī)視覺和自然語言理解等領(lǐng)域取得巨大成功,越來越多的學(xué)者們也在著手研究基于深度學(xué)習(xí)技術(shù)的推薦系統(tǒng)。對于搭建精準(zhǔn)的推薦系統(tǒng)而言,特征(features)是至關(guān)重要的。從特征構(gòu)建的層面而言,現(xiàn)階段深度學(xué)習(xí)技術(shù)在推薦系統(tǒng)中的應(yīng)用可以大致分為兩類:
?。?)從原始數(shù)據(jù)中自動(dòng)學(xué)習(xí)出蘊(yùn)含語義的隱特征,例如從本文、圖像或者知識(shí)網(wǎng)絡(luò)中提取出有效的隱特征;
?。?)自動(dòng)學(xué)習(xí)多個(gè)相關(guān)特征之間的交互關(guān)系。
特征交互指的是學(xué)習(xí)兩個(gè)或多個(gè)原始特征之間的交叉組合。例如,經(jīng)典的基于模型的協(xié)同過濾其實(shí)是在學(xué)習(xí)二階的交叉特征,即學(xué)習(xí)二元組[user_id, item_id]的聯(lián)系。而當(dāng)輸入數(shù)據(jù)的內(nèi)容變得豐富時(shí),就需要高階的交叉特征,例如,在新聞推薦場景中,一個(gè)三階交叉特征為AND(user_organization=msra,item_category=deeplearning,time=monday_morning) , 它表示當(dāng)前用戶的工作單位為微軟亞洲研究院,當(dāng)前文章的類別是與深度學(xué)習(xí)相關(guān)的,并且推送時(shí)間是周一上午。
傳統(tǒng)的推薦系統(tǒng)中,高階交叉特征通常是由工程師手工提取的,這種做法主要有三種缺點(diǎn):
?。?)重要的特征都是與應(yīng)用場景息息相關(guān)的,針對每一種應(yīng)用場景,工程師們都需要首先花費(fèi)大量時(shí)間和精力深入了解數(shù)據(jù)的規(guī)律之后才能設(shè)計(jì)、提取出高效的高階交叉特征,因此人力成本高昂;
?。?)原始數(shù)據(jù)中往往包含大量稀疏的特征,例如用戶和物品的ID,交叉特征的維度空間是原始特征維度的乘積,因此很容易帶來維度災(zāi)難的問題;
(3)人工提取的交叉特征無法泛化到未曾在訓(xùn)練樣本中出現(xiàn)過的模式中。
因此自動(dòng)學(xué)習(xí)特征間的交互關(guān)系是十分有意義的。目前大部分相關(guān)的研究工作是基于因子分解機(jī)的框架,利用多層全連接神經(jīng)網(wǎng)絡(luò)去自動(dòng)學(xué)習(xí)特征間的高階交互關(guān)系,例如FNN、PNN和DeepFM等。其缺點(diǎn)是模型學(xué)習(xí)出的是隱式的交互特征,其形式是未知的、不可控的;同時(shí)它們的特征交互是發(fā)生在元素級(jí)(bit-wise)而不是特征向量之間(vector-wise),這一點(diǎn)違背了因子分解機(jī)的初衷。來自Google的團(tuán)隊(duì)在KDD 2017 AdKDD & TargetAD研討會(huì)上提出了DCN模型,旨在顯式地學(xué)習(xí)高階特征交互,其優(yōu)點(diǎn)是模型非常輕巧高效,但缺點(diǎn)是最終模型的表現(xiàn)形式是一種很特殊的向量擴(kuò)張,同時(shí)特征交互依舊是發(fā)生在元素級(jí)上。
在KDD 2018上,微軟亞洲研究院社會(huì)計(jì)算組提出了一種極深因子分解機(jī)模型(xDeepFM),不僅能同時(shí)以顯式和隱式的方式自動(dòng)學(xué)習(xí)高階的特征交互,使特征交互發(fā)生在向量級(jí),還兼具記憶與泛化的學(xué)習(xí)能力。
壓縮交互網(wǎng)絡(luò)
為了實(shí)現(xiàn)自動(dòng)學(xué)習(xí)顯式的高階特征交互,同時(shí)使得交互發(fā)生在向量級(jí)上,我們首先提出了一種新的名為壓縮交互網(wǎng)絡(luò)(Compressed Interaction Network, 簡稱CIN)的神經(jīng)模型。在CIN中,隱向量是一個(gè)單元對象,因此我們將輸入的原特征和神經(jīng)網(wǎng)絡(luò)中的隱層都分別組織成一個(gè)矩陣,記為X^0 和X^k。CIN中每一層的神經(jīng)元都是根據(jù)前一層的隱層以及原特征向量推算而來,其計(jì)算公式如下:
其中,第k層隱層含有H_k條神經(jīng)元向量。隱層的計(jì)算可以分成兩個(gè)步驟:(1)根據(jù)前一層隱層的狀態(tài)X^k和原特征矩陣X^0,計(jì)算出一個(gè)中間結(jié)果Z^k+1,它是一個(gè)三維的張量,如下圖所示:
圖1 CIN的隱層計(jì)算步驟一:根據(jù)前一層隱層狀態(tài)和原始輸入數(shù)據(jù),計(jì)算中介結(jié)果
在這個(gè)中間結(jié)果上,我們用H^k+1個(gè)尺寸為m*H^k的卷積核生成下一層隱層的狀態(tài),該過程如圖2所示。這一操作與計(jì)算機(jī)視覺中最流行的卷積神經(jīng)網(wǎng)絡(luò)大體是一致的,唯一的區(qū)別在于卷積核的設(shè)計(jì)。CIN中一個(gè)神經(jīng)元相關(guān)的接受域是垂直于特征維度D的整個(gè)平面,而CNN中的接受域是當(dāng)前神經(jīng)元周圍的局部小范圍區(qū)域,因此CIN中經(jīng)過卷積操作得到的特征圖(Feature Map)是一個(gè)向量,而不是一個(gè)矩陣。
圖2 CIN的隱層計(jì)算步驟二:根據(jù)中介結(jié)果,計(jì)算下一層隱層的狀態(tài)
CIN的宏觀框架可以總結(jié)為圖3。它的特點(diǎn)是,最終學(xué)習(xí)出的特征交互的階數(shù)是由網(wǎng)絡(luò)的層數(shù)決定的,每一層隱層都通過一個(gè)池化操作連接到輸出層,從而保證了輸出單元可以見到不同階數(shù)的特征交互模式。同時(shí)不難看出,CIN的結(jié)構(gòu)與循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是很類似的,即每一層的狀態(tài)是由前一層隱層的值與一個(gè)額外的輸入數(shù)據(jù)計(jì)算所得。不同的是,CIN中不同層的參數(shù)是不一樣的,而在RNN中是相同的;RNN中每次額外的輸入數(shù)據(jù)是不一樣的,而CIN中額外的輸入數(shù)據(jù)是固定的,始終是X^0。
圖3 CIN的宏觀結(jié)構(gòu)概覽
極深因子分解機(jī)
參考Wide&Deep和DeepFM等模型的設(shè)計(jì),我們發(fā)現(xiàn)同時(shí)包含多種不同結(jié)構(gòu)的成分可以提升模型的表達(dá)能力。因此我們將CIN與線性回歸單元、全連接神經(jīng)網(wǎng)絡(luò)單元組合在一起,得到最終的模型并命名為極深因子分解機(jī)xDeepFM,其結(jié)構(gòu)如圖4所示。
圖4 極深因子分解機(jī)xDeepFM
集成的CIN和DNN兩個(gè)模塊能夠幫助模型同時(shí)以顯式和隱式的方式學(xué)習(xí)高階的特征交互,而集成的線性模塊和深度神經(jīng)模塊也讓模型兼具記憶與泛化的學(xué)習(xí)能力。值得一提的是,為了提高模型的通用性,xDeepFM中不同的模塊共享相同的輸入數(shù)據(jù)。而在具體的應(yīng)用場景下,不同的模塊也可以接入各自不同的輸入數(shù)據(jù),例如,線性模塊中依舊可以接入很多根據(jù)先驗(yàn)知識(shí)提取的交叉特征來提高記憶能力,而在CIN或者DNN中,為了減少模型的計(jì)算復(fù)雜度,可以只導(dǎo)入一部分稀疏的特征子集。
實(shí)驗(yàn)結(jié)果
我們在Criteo、大眾點(diǎn)評和必應(yīng)新聞等三個(gè)數(shù)據(jù)集上對上述模型進(jìn)行評測,這三個(gè)數(shù)據(jù)集分別對應(yīng)廣告推薦、餐館推薦和新聞推薦等不同的應(yīng)用場景。所采用的評測指標(biāo)為AUC和LogLoss。我們將xDeepFM與多種當(dāng)前主流的深度推薦模型進(jìn)行對比,結(jié)果如表1所示。在三個(gè)數(shù)據(jù)集上,xDeepFM模型在AUC和LogLoss上均超過了其它基準(zhǔn)模型。這說明,結(jié)合顯式和隱式的特征交互能夠有效提高推薦系統(tǒng)的準(zhǔn)確性。
表1 三個(gè)數(shù)據(jù)集上的評測結(jié)果
同時(shí),我們還關(guān)注不同的基本單元模型的學(xué)習(xí)能力。我們對比了FM、DNN、CrossNet和CIN在三個(gè)數(shù)據(jù)集上單獨(dú)學(xué)習(xí)的結(jié)果,它們分別對應(yīng)只有二階特征交互、隱式特征交互、特殊的顯式特征交互和基于向量的顯式特征交互模式。實(shí)驗(yàn)結(jié)果如表2所示。在Criteo上,CIN和DNN的表現(xiàn)比較接近,而在大眾點(diǎn)評和必應(yīng)新聞數(shù)據(jù)集上,CIN比其它三個(gè)單元模型表現(xiàn)的要好。
表2 四種單元模型在三個(gè)數(shù)據(jù)集上的獨(dú)立結(jié)果
除此之外,我們還探討了神經(jīng)網(wǎng)絡(luò)中的超參數(shù)對模型的影響,例如網(wǎng)絡(luò)的深度、網(wǎng)絡(luò)的寬度以及激活函數(shù)的選取等等。值得一提的是,目前最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)并不需要做到很深,通常在3層左右即可,原因可能是現(xiàn)實(shí)環(huán)境中需要的有效特征交互階數(shù)本質(zhì)上并不高,也有可能是神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法還不足以訓(xùn)練出良好的更深層次的網(wǎng)絡(luò)。
總而言之,我們提出了一種極深因子分解機(jī)模型xDeepFM,通過結(jié)合顯式和隱式的高階特征交互能力來提升推薦系統(tǒng)的精準(zhǔn)度。該模型的有效性在多個(gè)不同的應(yīng)用場景下都得到了驗(yàn)證。但是,目前xDeepFM仍然存在計(jì)算復(fù)雜度偏高的缺點(diǎn)。未來我們將持續(xù)改進(jìn)它的性能,以便它能夠被應(yīng)用在大規(guī)模計(jì)算任務(wù)中。
https://yyk.familydoctor.com.cn/21222/newslist_2_1.html
https://yyk.familydoctor.com.cn/21222/newslist_1_1.html