黃若然 崔 莉 韓傳奇
1(中國科學(xué)院計(jì)算技術(shù)研究所泛在計(jì)算系統(tǒng)研究中心 北京 100190) 2(中國科學(xué)院大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 北京 101408)
推薦系統(tǒng)在網(wǎng)絡(luò)搜索、在線廣告和商業(yè)導(dǎo)購的發(fā)展中扮演了關(guān)鍵的角色,它解決了網(wǎng)絡(luò)大數(shù)據(jù)給人們帶來的“信息過載”問題,也為顧客提供了個(gè)性化信息服務(wù)和決策支持.一個(gè)成功的推薦系統(tǒng)能為客戶提供高效的推薦服務(wù),提高企業(yè)的生產(chǎn)利潤,并產(chǎn)生相應(yīng)的經(jīng)濟(jì)效益和社會效益.目前,推薦系統(tǒng)已成功應(yīng)用在電子商務(wù)(如Amazon、阿里巴巴等)、社交網(wǎng)絡(luò)(如Twitter、微博等)、電影推薦(如Netflix、豆瓣等)、音樂推薦(如LastFM、網(wǎng)易云音樂等)、新聞推薦(如今日頭條、GoogleNews等)[1].
現(xiàn)有的個(gè)性化推薦系統(tǒng)面臨的一個(gè)主要問題是數(shù)據(jù)的稀疏性.數(shù)據(jù)稀疏指的是用戶往往只對比例很小的服務(wù)存在反饋,導(dǎo)致用戶-物品的反饋矩陣非常稀疏,其稀疏度通??蛇_(dá)到99%以上[2],即用戶平均只與不到1%的服務(wù)有過歷史交互.這使推薦系統(tǒng)難以有效地學(xué)習(xí)用戶的偏好,無法生成準(zhǔn)確的推薦列表.早期在稀疏數(shù)據(jù)上計(jì)算用戶偏好的個(gè)性化推薦算法主要為邏輯斯諦回歸(logistic regression, LR)[3]和支持向量機(jī)(support vector machines, SVM)[4],但這類算法太過依賴人工特征工程,需要耗費(fèi)大量的精力,導(dǎo)致計(jì)算效率低下.
為了更高效地解決因數(shù)據(jù)稀疏帶來的人工特征繁瑣和推薦精度不準(zhǔn)確的問題,Rendle[5]提出了一種基于矩陣分解的機(jī)器學(xué)習(xí)算法:因子分解機(jī)(factorization machine, FM).FM通過構(gòu)建特征的交叉組合,來學(xué)習(xí)用戶-物品間潛在的交互關(guān)系.FM可以在非常稀疏的數(shù)據(jù)環(huán)境中進(jìn)行豐富的特征交互計(jì)算,且可以應(yīng)用于任何特征值為實(shí)值的情況.相比于其他因式分解模型只能用于一些輸入數(shù)據(jù)比較固定的情況,F(xiàn)M更加通用和靈活.此后,為了進(jìn)一步挖掘特征交互思想背后的價(jià)值,Juan等人[6]在FM的基礎(chǔ)上引入了“類別”(或“場”)的概念,即“field”,并提出了類別因子分解機(jī)(field-aware factorization machine, FFM).FFM的主要思想是把相同性質(zhì)的特征歸于同一個(gè)類別,并單獨(dú)進(jìn)行熱獨(dú)(one-hot)編碼,因此在FFM中每一個(gè)特征都會針對其他特征的每個(gè)類別學(xué)習(xí)一個(gè)隱變量,該隱變量不僅與特征相關(guān),也與類別相關(guān).
隨著深度學(xué)習(xí)的迅速發(fā)展,He等人[7]在2017年提出了神經(jīng)因子分解機(jī)(neural factorization machine, NFM),NFM可以看作是FM的神經(jīng)網(wǎng)絡(luò)推廣,它推遲了FM的實(shí)現(xiàn)過程,并在其中加入了更多非線性運(yùn)算.相比于NFM,注意力因子分解機(jī)(attentional factorization machine, AFM)[8]則更多地關(guān)注特征交互間的權(quán)重計(jì)算,它為每一對交互特征分配一個(gè)所屬的注意力因子,用以更好地區(qū)分不同特征間的重要程度來達(dá)到更好的預(yù)測效果.隨后,Hong等人[9]受到FFM類別交互的啟發(fā),在AFM的基礎(chǔ)上引入了類別交互的概念,提出了一種將特征和類別分別進(jìn)行交互的模型——感知交互因子分解機(jī)(interaction-aware factorization machines, IFM),并在多個(gè)領(lǐng)域取得了最優(yōu)的效果.
本文在IFM的基礎(chǔ)上,提出特征-類別交互機(jī)制(feature-over-field interaction mechanism, FIM)的概念,通過對特征向量和類別向量進(jìn)行融合,并將融合后的向量兩兩配對交互,以獲取更為豐富的交互語義信息.并以此為支持點(diǎn),提出了新的因子分解機(jī)模型——特征-類別交互因子分解機(jī)(feature-over-field interaction factorization machine, FIFM).FIFM從特征交互角度、類別交互角度和特征-類別交互角度出發(fā),更加全面地獲取稀疏場景下的各類交互信息,進(jìn)一步提高了預(yù)測效果.此外,為提高FIFM的泛化性使其適應(yīng)多種復(fù)雜的數(shù)據(jù)場景,我們還提出了一種基于FIFM的神經(jīng)網(wǎng)絡(luò)版本——廣義特征-類別交互模型(generalized feature-field interaction model, GFIM).相比于FIFM,GFIM的參數(shù)和時(shí)間復(fù)雜度更高,但同時(shí)也能捕獲更多高階的非線性特征交互信息,適合算力較高的應(yīng)用場景.
本文的主要貢獻(xiàn)有4方面:
1) 提出了一種將特征-類別融合后進(jìn)行交互的機(jī)制FIM,使其可以學(xué)習(xí)特征-類別之間更為深層次的潛在語義信號;
2) 提出了一種面向稀疏情景的特征-類別交互因子分解機(jī)FIFM,它從特征交互、類別交互及特征-類別交互的視角出發(fā),能夠更加準(zhǔn)確地預(yù)測稀疏條件下的用戶意圖;
3) 基于深度學(xué)習(xí)理論提出了一種FIFM的神經(jīng)網(wǎng)絡(luò)版本GFIM,相比于FIFM,GFIM的參數(shù)量和時(shí)間復(fù)雜度更高,但同時(shí)也能捕獲更多高階的非線性特征交互信息,適合高算力應(yīng)用場景;
4) 在4個(gè)真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明相比于現(xiàn)有的主流模型,我們提出的模型能夠在參數(shù)量近似的情況下,在均方根誤差(RMSE)指標(biāo)上取得更好的效果.
FM是一種基于矩陣分解的機(jī)器學(xué)習(xí)算法,最大的特點(diǎn)是對于稀疏的數(shù)據(jù)具有很強(qiáng)的特征交互學(xué)習(xí)能力.FM通過對交互后特征的低秩展開,為每個(gè)特征構(gòu)建隱式向量,并利用隱式向量的點(diǎn)乘結(jié)果來建模2個(gè)特征的組合關(guān)系,實(shí)現(xiàn)了對2階特征組合的自動學(xué)習(xí).值得注意的是,F(xiàn)FM的任意2組交叉特征的隱向量都是獨(dú)立的,每一個(gè)特征都對應(yīng)一個(gè)獨(dú)一無二的類別,并為其分配一個(gè)隱向量,因此相比于FM的特征數(shù)乘以隱向量維度的參數(shù)量,它還多乘以一個(gè)類別數(shù)量,進(jìn)而引入了更多的計(jì)算參數(shù),為實(shí)際的運(yùn)算帶來不小的計(jì)算花銷.而Chen等人[10]則從特征選擇的角度,提出了一種基于FM的貝葉斯個(gè)性化特征交互選擇算法,來篩選淘汰出那些在特征交互中效率較低的交互配對.通過在FM中集成貝葉斯個(gè)性化選擇機(jī)制來進(jìn)一步提高特征交互的效率.除此之外,另一種較為新穎的特征交互學(xué)習(xí)方法是將特征向量嵌入過程映射到可違反洛倫茲三角不等式的雙曲空間當(dāng)中[11],由雙曲三角形的特殊幾何特性學(xué)習(xí)交互信息.
隨著近幾年深度學(xué)習(xí)在各個(gè)領(lǐng)域的成功應(yīng)用[12-14],基于深度學(xué)習(xí)的特征交互預(yù)測方法也相繼被提出.為了能夠直接利用神經(jīng)網(wǎng)絡(luò)層,Wang等人[15]提出了一種簡單的結(jié)合方法——因子分解機(jī)支持神經(jīng)網(wǎng)絡(luò)(factorization machine supported neural network, FNN),它直接將FM與多層感知機(jī)(mul-tilayer perceptron, MLP)進(jìn)行串聯(lián)組合,并采用FM預(yù)訓(xùn)練得到的隱含層及其權(quán)重作為神經(jīng)網(wǎng)絡(luò)第1層的初始值,之后再不斷堆疊全連接層,最終輸出預(yù)測結(jié)果.由于FNN嵌入權(quán)重的初始化是FM預(yù)訓(xùn)練好的,因此它不是一個(gè)端到端的訓(xùn)練過程.考慮到FM特征交互方法只進(jìn)行嵌入向量的兩兩內(nèi)積求和,因此該改進(jìn)方法沒有充分利用2階特征組合的信息.He等人[7]提出了基于深度學(xué)習(xí)的神經(jīng)因子分解機(jī)NFM,它的主要思想是利用2階交互池化層(bi-interaction pooling, BIP)對FM嵌入后的向量兩兩進(jìn)行元素級別的乘法,形成同維度的向量求和后作為前饋神經(jīng)網(wǎng)絡(luò)的輸入.Guo等人[16]于2017年提出了DeepFM(deep factorization machine)模型,將深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)部分與FM相結(jié)合,用FM做特征間的低階組合,用深度神經(jīng)網(wǎng)絡(luò)層(deep neural network, DNN)做特征間的高階組合,通過并行的方式組合2種方法并獲得了更精確的效果.Xiao等人[8]提出了一種注意力因子分解機(jī)AFM,該文作者認(rèn)為現(xiàn)有的FM交互特征權(quán)重未做區(qū)分,不是所有特征交互都有同樣的價(jià)值,相反低貢獻(xiàn)度的交互特征可能會引入噪聲.該文作者通過對FM不同的特征交互引入不同重要性因子來改善FM的學(xué)習(xí)方式.
1.1節(jié)和1.2節(jié)提到的方法中,大多是針對于特征交互的預(yù)測方法,如FM,NFM,AFM,也有針對類別交互的預(yù)測方法,如FFM.基于此,Hong等人[9]提出將特征交互和類別交互進(jìn)行融合的IFM,并利用交互后的感知向量共同作用于預(yù)測結(jié)果.IFM由于其優(yōu)異的表現(xiàn)效果,現(xiàn)已成為稀疏特征預(yù)測方法中的重要對比方法.
本文在IFM分別將特征交互和類別交互獨(dú)立交互的基礎(chǔ)上,提出了一種特征-類別融合交互的新機(jī)制FIM,用以進(jìn)一步增強(qiáng)交互信息在稀疏條件下的預(yù)測結(jié)果.FIM不僅可以對IFM進(jìn)行信息增益,還可以與其他FM模型進(jìn)行銜接,在時(shí)間和空間的消耗均與主流模型接近的情況下提高其他FM模型在各自適用領(lǐng)域內(nèi)的精度.
傳統(tǒng)的SVM難以解決特征稀疏問題,F(xiàn)M主要是為了解決數(shù)據(jù)稀疏的情況下特征怎樣組合的問題.FM的主要思想是利用多維特征之間的交叉關(guān)系,利用矩陣分解的方法進(jìn)行參數(shù)的訓(xùn)練.基本的符號表示為:
假定每一條訓(xùn)練數(shù)據(jù)擁有特征屬性x={x1,x2,…,xm},其中xi表示第i個(gè)真實(shí)的特征值,m表示特征的數(shù)量,它的真實(shí)值y可代表用戶是否進(jìn)行了點(diǎn)擊(或選擇).非零特征交互對表示為
(1)
(2)
(3)
為了將交互操作擴(kuò)展到其他維度,F(xiàn)FM在FM的基礎(chǔ)上對同一個(gè)類別特征單獨(dú)進(jìn)行one-hot編碼,使得特征在交互時(shí)能夠捕獲更多關(guān)于類別的學(xué)習(xí)向量,通過增加可學(xué)習(xí)的參數(shù)空間來提升效果.
假設(shè)樣本的m個(gè)特征屬于f個(gè)類別,那么FFM的二次項(xiàng)有mf個(gè)隱向量.而FM模型中,每一維特征的隱向量只有一個(gè).FFM的模型方程為
(4)
如果隱向量的特征維度為d,那么FFM的二次參數(shù)則有mfd個(gè),遠(yuǎn)多于FM模型的md個(gè).由于FFM參數(shù)較多,在實(shí)際的運(yùn)行中需要極大的算力作為支撐,因此為其在工業(yè)界的應(yīng)用和推廣帶來了不小的挑戰(zhàn).
傳統(tǒng)FM只學(xué)習(xí)到了2階交叉特征和線性回歸特征等此類低階信息,未對深層次信號做進(jìn)一步的挖掘.NFM通過對FM做神經(jīng)網(wǎng)絡(luò)擴(kuò)展并添加了更多的非線性運(yùn)算來進(jìn)一步提升深層信號的獲取能力.NFM的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示:
Fig. 1 The network architecture of NFM圖1 NFM的網(wǎng)絡(luò)架構(gòu)
相比于FM,NFM采用2階池化層結(jié)構(gòu)來對2階交叉信息進(jìn)行處理,使交叉特征的信息能更好地被DNN結(jié)構(gòu)學(xué)習(xí),降低DNN學(xué)習(xí)更高階交叉特征信息的難度.我們將NFM的2階交互部分歸納為
(5)
式(5)為NFM的核心思想(為方便表示,我們省略其線性部分).即對FM嵌入后的向量兩兩進(jìn)行元素級別的乘法,形成同維度的向量求和后作為前饋神經(jīng)網(wǎng)絡(luò)的輸入,⊙表示逐元素乘法運(yùn)算.在計(jì)算完式(5)后得到一個(gè)維度為d的向量,圖1中還使用了多層感知機(jī)以捕獲更為高階的交互信號.
相比于NFM,AFM[8]則更加著重于特征交互間的權(quán)重計(jì)算.它的主要思想是通過在逐元素乘法之后形成的向量進(jìn)行加權(quán)求和,權(quán)重是基于網(wǎng)絡(luò)自身產(chǎn)生的.此方法是引入一個(gè)注意力子網(wǎng)絡(luò)(attention net).AFM的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示:
Fig. 2 The network architecture of AFM圖2 AFM的網(wǎng)絡(luò)架構(gòu)
由圖2可以看到,右上角的注意力子網(wǎng)絡(luò)是相比于NFM多出的部分,并且AFM沒有MLP部分,當(dāng)權(quán)重都相等時(shí),AFM退化成無全連接層的NFM.AFM的預(yù)測值為
(6)
其中αij負(fù)責(zé)為每一對交叉項(xiàng)分配權(quán)重,是特征xi和特征xj進(jìn)行配對交互時(shí)對應(yīng)的注意力因子,用以衡量二者之間的特征重要程度.其計(jì)算過程為
hij=MTReLU(W1(Vi⊙Vj)xixj+b1),
(7)
(8)
其中,W1∈Ka×d,M∈Ka×1,b1∈Ka分別表示權(quán)重轉(zhuǎn)換矩陣、轉(zhuǎn)換向量和偏置項(xiàng),Ka表示注意力網(wǎng)絡(luò)中隱藏層的單元維度,η控制收縮性.
受到FFM類別概念的啟發(fā),IFM在AFM的基礎(chǔ)上提出了使用類別感知交互(field-aware inter-action, FAI)來進(jìn)一步影響交互特征,使其能從類別領(lǐng)域出發(fā)發(fā)揮預(yù)測作用.IFM的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.
圖3所示的IFM對比圖2所示的AFM,增加了虛線框中的FAI.這里的類別與FFM中“類別”的實(shí)現(xiàn)有所不同,F(xiàn)FM是為每一個(gè)特征分配與其他特征所在類別相對應(yīng)的隱變量;而IFM中的類別則認(rèn)為是當(dāng)前一個(gè)特征下對應(yīng)一個(gè)類別,交互只在特征對應(yīng)的類別上實(shí)現(xiàn).因此相比FFM,IFM所需要的參數(shù)量更少,其結(jié)合AFM中的特征交互部分得到:
(9)
其中,fi為特征xi的類別,F(xiàn)fi,fj表示維度為KF的特征xi和特征xj所屬類別的類別交互向量,用以計(jì)算類別級別的關(guān)系.
從3.1~3.3節(jié)中FM系列的演化歷史我們可以知道:NFM比原始FM多了2階池化層,AFM在NFM的基礎(chǔ)上為每一對特征交互增加了注意力網(wǎng)絡(luò),IFM則在AFM的架構(gòu)上添加了類別感知交互.FM,NFM,AFM都是針對特征交互的預(yù)測,而IFM則是在特征和類別分別交互的基礎(chǔ)上進(jìn)行預(yù)測.
本文中所提出的FIM則是基于IFM增加了特征-類別融合,并對融合后的向量進(jìn)行兩兩配對交互.該交互過程后有2種呈現(xiàn)模式:1)矩陣乘法,即FIM最終輸出為每一對交互結(jié)果的標(biāo)量值eij;2)讓每一對特征-類別融合后的交互以元素逐點(diǎn)相乘的形式出現(xiàn),即向量Eij,用于輸入更為復(fù)雜的時(shí)間網(wǎng)絡(luò)結(jié)構(gòu).針對這2種FIM對每對交互的輸出形式——元素級eij和向量級Eij,我們提出2種相對應(yīng)的模型,即FIFM和GFIM.圖4展示了FIFM的網(wǎng)絡(luò)架構(gòu).
Fig. 4 The network architecture of FIFM圖4 FIFM的網(wǎng)絡(luò)架構(gòu)
不同于FFM靠增加隱式的參數(shù)來學(xué)習(xí)潛在的field信息,F(xiàn)IM顯式地學(xué)習(xí)特征和類別之間的關(guān)聯(lián),降低了學(xué)習(xí)的成本.為了方便理解,我們將式(9)重新定義為
(10)
其中,第1個(gè)“1”表示融合特征和類別交互后的權(quán)重系數(shù),第2個(gè)黑斜體“1”表示類別交互向量,第3個(gè)“1”表示特征交互的注意力系數(shù).至此,我們在IFM的基礎(chǔ)上提出特征類別機(jī)制,它綜合了特征、類別及特征-類別3種不同的交互視角,我們可將此過程擴(kuò)展為
(11)
相比式(9),我們增加了元素特征值eij,用于學(xué)習(xí)特征-類別后更深層次的隱藏信息,并衡量IFM中特征部分和類別部分組合時(shí)的重要性.
Ffi,fj=HT(Ufi⊙Ufj),
(12)
其中,H∈d×KF,U∈n×KF,而KF是H和U隱藏因子的神經(jīng)元數(shù)量.通過式(12)的分解,類別交互的復(fù)雜度可以由線性關(guān)系表示:d×KF+KF×n.
從式(12)中可以看到,類別交互學(xué)習(xí)同原始的因子分解機(jī)中的2階特征交互(Vi⊙Vj)xixj具有相似的結(jié)構(gòu).由于最終的維度相同,這2種結(jié)構(gòu)是可以相互影響和計(jì)算的.這2種結(jié)構(gòu)映射為雙線性關(guān)系:
simH(C,G)=CTHG,
(13)
其中,C=Ufi⊙Ufj,G=(Vi⊙Vj)xixj.
在獲取到特征交互和類別交互之后,本工作對潛在影響因子進(jìn)行了進(jìn)一步的挖掘,即融合特征-類別向量,并為其賦予一定的學(xué)習(xí)參數(shù),使其能夠在擁有特征-類別混合信息的同時(shí)還能進(jìn)行2階交互,提高預(yù)測精度.此操作會帶來4個(gè)效果:
1) 學(xué)習(xí)特征-類別之間更為深層次的潛在語義信號,這些語義信號能夠?yàn)镮FM中特征交互和類別交互在預(yù)測階段帶來信息增益,提高預(yù)測精度.
2) 融合后的特征-類別向量也可以看作是一個(gè)匯集了特征-類別信息的新向量,在2階交互后自身也具有一定的信息預(yù)測能力,屬于特征-類別概念中新的衍生模型.
3) 由于FIM的輸出是按特征或類別交互進(jìn)行逐一配對的(關(guān)于i,j索引),因此FIM可以和其他FM模型無縫銜接以增強(qiáng)預(yù)測能力.
4) 特征-類別的融合是基于已有的特征向量和類別向量,除了融合時(shí)的學(xué)習(xí)參數(shù)外,不會增加額外的空間負(fù)擔(dān).在時(shí)間復(fù)雜度上也僅維持在2階向量交互的級別,與NFM的2階池化操作保持相同.
針對于上述4個(gè)效果,我們會在第4節(jié)實(shí)驗(yàn)1~3的結(jié)果分析中逐一進(jìn)行驗(yàn)證.
實(shí)現(xiàn)特征和類別的融合,我們需要將二者的維度進(jìn)行統(tǒng)一,由于KF?d,考慮到計(jì)算的時(shí)間和空間復(fù)雜度,對xi所對應(yīng)的原始向量Vi做一個(gè)線性變換:WT(Vi·xi),其中W∈KF×d,之后將其與類別嵌入向量做逐點(diǎn)相加操作.特征和類別的融合向量可以表示為:
Ri=WT(Vi·xi)⊕Ufi,
(14)
⊕表示向量間的逐點(diǎn)相加.由于類別特征向量是按照特征-類別進(jìn)行劃分的,即它本身就擁有n個(gè)類別,即對應(yīng)n個(gè)非零值,因此我們也可以對其進(jìn)行兩兩交互.鑒于式(14)已可以分別求得特征交互向量G和類別交互向量C.因此,只需要計(jì)算二者結(jié)合的向量Ri即可得到兩兩交互的權(quán)值影響因子:
eij=Ri·Rj,
(15)
對于式(15),除了為每一對交互向量獲取元素級別的融合交互特征eij外,還可通過元素逐點(diǎn)相乘,為每一對特征交互或類別交互獲取對應(yīng)交互向量.
Eij=Ri⊙Rj,
(16)
交互向量相比于交互特征具有更為豐富的信息單元,可用于場景數(shù)據(jù)更為復(fù)雜的高階神經(jīng)網(wǎng)絡(luò)預(yù)測.
3.5.1 FIFM的網(wǎng)絡(luò)架構(gòu)
FIFM通過引入3.4節(jié)中的FIM來模型化特征交互.圖4展示了FIFM的網(wǎng)絡(luò)架構(gòu).
(17)
(18)
(19)
(20)
3.5.2 模型訓(xùn)練
FIFM的目標(biāo)主要為推薦系統(tǒng)中的一系列預(yù)測任務(wù),可分為二分類、回歸和排序等.對于二分類任務(wù),常用的損失函數(shù)為對數(shù)損失(log loss)[17];對于回歸任務(wù),常用的損失函數(shù)為平方損失.同NFM,DeepFM,AFM,IFM類似,本文主要討論回歸任務(wù)并優(yōu)化平方損失.相似的策略也可以用于分類和排序任務(wù).針對目標(biāo)函數(shù),我們采用了梯度下降算法中的AdaGrad[18]優(yōu)化器來迭代地計(jì)算每一輪參數(shù)的值.為了防止模型過擬合,在模型中為嵌入矩陣V和U添加了L2[19]正則,并且在神經(jīng)元的計(jì)算過程中使用了Dropout[20]技術(shù)來進(jìn)一步規(guī)范模型的訓(xùn)練過程,并加快訓(xùn)練速度.目標(biāo)函數(shù)定義為:
(21)
其中,λ和γ分別用于控制嵌入矩陣V和U的正則化學(xué)習(xí)率.FIFM模型的算法流程如算法1所示:
算法1.FIFM算法描述.
① 初始化參數(shù)矩陣V,M,H,U,W,W1;
③ 根據(jù)式(6)~(8)計(jì)算特征交互向量αij·Vi⊙Vj;
④ 根據(jù)式(12)計(jì)算類別交互向量Ffi,fj;
⑤ 根據(jù)式(14)和式(15)計(jì)算特征-類別融合交互標(biāo)量eij;
⑦ 根據(jù)式(21)計(jì)算損失函數(shù);
⑨ end for
3.5.3 FIFM的時(shí)空復(fù)雜度
1) 空間復(fù)雜度分析(space complexity analysis)
對于嵌入矩陣V的參數(shù)量為O(m×d),而類別嵌入矩陣U,除原有的O(n×KF)參數(shù)量外,還有式(12)帶來的O(d×KF)參數(shù)量.式(7)和式(8)的注意力子網(wǎng)絡(luò)引入了參數(shù)量O(d×Ka+2×Ka).此外,式(14)引入了O(d×KF)的參數(shù)量.因此總的參數(shù)量為O(2Ka+(2KF+m+Ka)d+nKF),由于Ka和KF一般均小于d且n?m,因此在特征數(shù)m較大,即數(shù)據(jù)足夠稀疏的情況下,總的參數(shù)量可近似為原始的FM參數(shù)量O(md).值得注意的是,本文的主要對比模型IFM[9],在文獻(xiàn)[9]中分析指出了空間復(fù)雜度的消耗也近似為O(md).相比IFM,F(xiàn)IFM增加的參數(shù)消耗主要來源于式(14)中的W∈KF×d,因此FIFM比IFM增加的空間消耗維持在一個(gè)以d為變量的線性函數(shù)上.
2) 時(shí)間復(fù)雜度分析(time complexity analysis)
針對提出的FIFM,可在此基礎(chǔ)上應(yīng)用深度神經(jīng)網(wǎng)絡(luò)(DNN)進(jìn)行進(jìn)一步拓展,以更好地學(xué)習(xí)高階特征交互.為此,我們對式(17)~(19)做一個(gè)神經(jīng)網(wǎng)絡(luò)下的新定義,將各自獨(dú)立為神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中的向量模塊.特征向量集合和類別向量集合分別定義為:
(22)
(23)
對于特征-類別融合的標(biāo)量集合,我們將其擴(kuò)充到向量級別,以更好地適應(yīng)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程:
(24)
(25)
(26)
P0=SFea(c)⊕SField(c)⊕[SFea-Field(c)·Ws],
(27)
Pl=σ(QlPl-1+zl),
(28)
其中Ws∈KF×d,σ為神經(jīng)網(wǎng)絡(luò)的非線性激活函數(shù),本文選取ReLU[21]神經(jīng)元的激活函數(shù).
令rl代表第l層的神經(jīng)元個(gè)數(shù),則有Ql∈rl×r(l-1),zl∈rl分別表示第l層神經(jīng)元的映射矩陣和偏置項(xiàng).
Pl∈rl代表第l層的隱藏層輸出,由此,GFIM可表示為:
(29)
Fig. 5 The inference structure of GFIM圖5 GFIM推理部分的結(jié)構(gòu)
GFIM模型算法流程如算法2所示:
算法2.GFIM算法描述.
① 初始化參數(shù)矩陣V,M,H,U,W,W1,Ws,Q;
⑥ 通過式(27)計(jì)算融合后的特征向量P0;
⑦ for eachlinLdo
⑧ 執(zhí)行式(28)以獲取每輪神經(jīng)網(wǎng)絡(luò)迭代后的向量Pl;
⑨ end for
為了更好地展現(xiàn)本文所提出的FIFM和GFIM的特點(diǎn),我們列出了其余6種主流的FM模型,并比較了它們的相關(guān)特性,詳細(xì)內(nèi)容如表1所示:
Table 1 Comparison of Characteristics AmongDifferent Models表1 不同模型間的特性比較
為了證明本文提出的FIFM和GFIM的有效性,本文在真實(shí)數(shù)據(jù)集上進(jìn)行驗(yàn)證實(shí)驗(yàn),并將其結(jié)果與其他主流模型進(jìn)行對比分析.
本文面向情景預(yù)測選用了4個(gè)真實(shí)的稀疏數(shù)據(jù)集:MovieLens[22],F(xiàn)rappe[23],Book-Crossing[24],Criteo[25].MovieLens中記錄了來自90 445個(gè)特征的2 006 859條用戶物品交互記錄,其稀疏度為99.99%.Frappe記錄了5 382個(gè)特征的288 606條用戶物品交互記錄,其稀疏度為99.81%.Book-Crossing記錄了來自Book-Crossing讀書網(wǎng)站的用戶信息,其中包含來自6個(gè)類別的226 336個(gè)特征,共計(jì)1 213 367條記錄.Criteo是一個(gè)來自Kaggle競賽的CTR預(yù)測數(shù)據(jù)集,共有來自39個(gè)類別的662 913個(gè)特征,共計(jì)51 871 397條記錄.由于Criteo的數(shù)據(jù)均為匿名處理后的LIBSVM格式數(shù)據(jù),無法獲知具體的用戶及物品數(shù),也無法計(jì)算稀疏度.為了保證實(shí)驗(yàn)的公平性,我們采用了與NFM和IFM相同的實(shí)驗(yàn)設(shè)計(jì),整個(gè)數(shù)據(jù)集被劃分為訓(xùn)練集(70%)、驗(yàn)證集(20%)和測試集(10%).所有的模型在訓(xùn)練集上進(jìn)行訓(xùn)練,并在驗(yàn)證集上優(yōu)化和調(diào)整訓(xùn)練結(jié)果.由于4個(gè)數(shù)據(jù)集都只包含了正樣例,為保證訓(xùn)練的合理性,我們隨機(jī)為每個(gè)正樣例采樣2個(gè)負(fù)樣例進(jìn)行配對訓(xùn)練.具體來說,對于MovieLens數(shù)據(jù)集,我們會隨機(jī)采樣2個(gè)用戶未對電影打過的標(biāo)簽;對于Frappe和Book-Crossing數(shù)據(jù)集,我們將隨機(jī)抽樣2個(gè)用戶未交互過的物品進(jìn)行配對;對于Criteo數(shù)據(jù)集,我們沿用了原數(shù)據(jù)集中已經(jīng)存在的對應(yīng)比例正負(fù)樣本配對實(shí)例.對于每個(gè)正樣例,我們將目標(biāo)值設(shè)置為1;而對于負(fù)樣例,我們將目標(biāo)值設(shè)置為-1.表2記錄了4個(gè)數(shù)據(jù)集詳細(xì)的統(tǒng)計(jì)信息.
Table 2 Statistics of Datasets表2 數(shù)據(jù)集統(tǒng)計(jì)信息
在主流的推薦系統(tǒng)預(yù)測指標(biāo)評測中,平均絕對誤值差(mean absolute error,MAE)和均方根誤差(root mean square error,RMSE)是評分預(yù)測任務(wù)的常用評價(jià)指標(biāo).考慮到RMSE相比MAE受異常值的影響更大,能更好地反映實(shí)驗(yàn)效果,因此在本文中,我們選取RMSE來評價(jià)具體的模型性能.RMSE的主要思想是通過計(jì)算預(yù)測值與真實(shí)值之間的差異來衡量推薦算法的準(zhǔn)確性,其值越小,推薦的性能越好:
(30)
其中,N表示測試集記錄條數(shù),yi代表真實(shí)目標(biāo)值.
為了驗(yàn)證本文所提出的FIM模型在預(yù)測過程中的最終效果,本文選取6種經(jīng)典的相關(guān)領(lǐng)域預(yù)測模型進(jìn)行對比.
1) LibFM[5]是原始FM的官方實(shí)現(xiàn)版本,也是當(dāng)前經(jīng)典的推薦預(yù)測模型對比模型之一.
2) NFM[7]模型將矩陣分解模型與神經(jīng)網(wǎng)絡(luò)相結(jié)合,用于提取項(xiàng)目2階線性特征及高階非線性特征.
3) FFM[6]在FM的基礎(chǔ)上了擴(kuò)展了“field”的概念,它將每一個(gè)特征(feature)都?xì)w屬于一個(gè)特定類別.類別與特征是一對多的關(guān)系,在學(xué)習(xí)時(shí)通過構(gòu)造3維的類別-特征-維度嵌入矩陣來進(jìn)行向量學(xué)習(xí).
4) DeepFM[16]通過引入神經(jīng)網(wǎng)絡(luò)來對2階以上的特征交互進(jìn)行建模.它主要由FM和DNN這2部分組成,分別學(xué)習(xí)低階和高階的特征交叉關(guān)系,底部共享嵌入向量的權(quán)重輸入.
5) AFM[8]通過對FM不同的特征交互引入不同重要性因子來改善FM,重要性因子由注意力網(wǎng)絡(luò)學(xué)習(xí)得到.
6) IFM[9]通過構(gòu)建特征和類別各自的交互向量,來分別學(xué)習(xí)不同領(lǐng)域的交互信息.
為保證實(shí)驗(yàn)的公平性,所有的模型均在平方差損失函數(shù)下進(jìn)行學(xué)習(xí)和優(yōu)化.同NFM和IFM一樣,我們將學(xué)習(xí)率的取值范圍設(shè)置為{0.005,0.01,0.02,0.05},并取其中最好的值進(jìn)行預(yù)測.同時(shí),為了防止過擬合,我們也對L2正則和Dropout率進(jìn)行了取值上的微調(diào).對于L2,其λ和γ取值范圍可選取為{1E-6,1E-5,1E-4,…,1E-1}.而對于Dropout率,其取值范圍為{0,0.1,0.2,…,0.9}.所有模型均使用AdaGrad[18]優(yōu)化器進(jìn)行優(yōu)化.同時(shí),對于Movie-Lens,F(xiàn)rappe,Book-Crossing,Criteo,每批次的訓(xùn)練數(shù)量依次為1 024,128,256,64,這些數(shù)量依據(jù)實(shí)驗(yàn)條件在不同數(shù)據(jù)集下的可計(jì)算性而定.所有模型嵌入層的向量維度默認(rèn)為256.同IFM一樣,我們將η的默認(rèn)值設(shè)置為10.未提及的其他參數(shù)會保留原有的參數(shù)設(shè)置并進(jìn)行適當(dāng)?shù)奈⒄{(diào).其中,我們將KF的值分別在MovieLens和Frappe上設(shè)置為8和32以獲得最佳效果.在Book-Crossing和Criteo數(shù)據(jù)集上,KF設(shè)置為16.我們將實(shí)驗(yàn)的默認(rèn)迭代數(shù)設(shè)置為40,并采用Early Stop策略,即當(dāng)模型在驗(yàn)證集上連續(xù)5次未超過當(dāng)前已記錄下的最好結(jié)果,便停止訓(xùn)練.
1) 硬件環(huán)境.本文所有實(shí)驗(yàn)均在同一Linux服務(wù)器環(huán)境下進(jìn)行測試.CPU為Intel?Xeon?Silver 4114@2.20 GHz,顯卡為NVIDIA GeForce RTX 2080 Ti(顯存容量11 GB,顯存位寬352 b,顯存頻率1 4000 MHz),內(nèi)存為32 GB 2 666 MHz DDR4.
2) 軟件環(huán)境.實(shí)驗(yàn)的系統(tǒng)環(huán)境為Ubuntu 16.04.實(shí)驗(yàn)編程語言為python 3.6.5,相關(guān)的深度學(xué)習(xí)框架為tensorflow,CUDA及cuDNN的環(huán)境分別為10.0和7.4.CPU環(huán)境運(yùn)行下的編譯器為GCC 4.8.為了支持實(shí)驗(yàn)的數(shù)據(jù)預(yù)處理以及相關(guān)的統(tǒng)計(jì)和分析工作,我們還引入了相關(guān)的Python科學(xué)計(jì)算包,具體用到的版本是:tensorflow(1.14.0),numpy(1.17.4),matplotlib(3.0.2),pandas(0.23.4),scikit-learn(0.20.1).
實(shí)驗(yàn)1.不同模型的性能比較.
如表3所示,我們將所有的模型在4個(gè)通用數(shù)據(jù)集上進(jìn)行了比較,并列出了每一個(gè)模型所需的參數(shù)量.為了增強(qiáng)實(shí)驗(yàn)的說服力,我們給出了10次實(shí)驗(yàn)結(jié)果的平均值和實(shí)驗(yàn)方差,以“±”連接,作為最終結(jié)果.為方便區(qū)分,我們將本文提出的模型進(jìn)行了加粗標(biāo)記.由于FFM模型在Criteo數(shù)據(jù)集上的參數(shù)量過大,不便于在當(dāng)前實(shí)驗(yàn)環(huán)境下計(jì)算,故我們在此未列出其結(jié)果.從結(jié)果中我們可以看到,F(xiàn)IFM模型及其擴(kuò)展版本GFIM在所有比較模型中均獲得最好的表現(xiàn).其中,F(xiàn)IFM的平均表現(xiàn)在MovieLens,F(xiàn)rappe,Book-Crossing,Criteo數(shù)據(jù)集上分別比次最優(yōu)的IFM模型提升1.32%,0.48%,0.67%,1.62%.而GFIM的平均表現(xiàn)在MovieLens,F(xiàn)rappe,Book-Crossing,Criteo數(shù)據(jù)集上分別比IFM提升3.26%,1.65%,1.17%,2.19%(對應(yīng)3.4節(jié)的效果1).雖然看起來這樣的提升指標(biāo)并不明顯,但需要指出的是,即使1%的性能提升也可能在實(shí)際應(yīng)用中帶來巨大的經(jīng)濟(jì)收益[12].而對于DeepFM,其在MovieLens及Frappe數(shù)據(jù)集上的表現(xiàn)差于NFM,而在Book-Crossing及Criteo上實(shí)驗(yàn)結(jié)果反超NFM.這得益于DeepFM的2階交互和MLP的并行預(yù)測機(jī)制,相比于NFM串行的2階交互池化層在訓(xùn)練時(shí)需要的信息量更多,因此在Book-Crossing和Criteo這種涵蓋較為豐富信息的大參數(shù)量數(shù)據(jù)集下更容易捕獲潛在的影響因子.DeepFM在Criteo上還超過了AFM,因此DeepFM可適用于大數(shù)據(jù)量環(huán)境下的工業(yè)預(yù)測.對于FIFM及GFIM,它們在所有數(shù)據(jù)集上都能有較為穩(wěn)定的表現(xiàn),且都優(yōu)于其他主流的因子分解機(jī)模型,驗(yàn)證了我們模型的準(zhǔn)確性.同時(shí)我們所提出的2個(gè)模型相比主流模型引入的額外參數(shù)量十分有限,且隨著數(shù)據(jù)記錄規(guī)模的增加(例如Criteo和MovieLens的記錄遠(yuǎn)大于Frappe),額外的參數(shù)花銷占比會越來越小,但帶來的表現(xiàn)增益卻依然得到了不小的提升(對應(yīng)3.4節(jié)的效果4的參數(shù)占用).
Table 3 Performance Comparison of Different Models表3 不同模型的性能比較
需要指出的是,GFIM相比于FIFM引入了神經(jīng)網(wǎng)絡(luò),具有更強(qiáng)的泛化能力,因此也需要消耗更多的參數(shù).但相比于同樣引入field概念的FFM,參數(shù)量卻減少了很多.不同于FFM為每一個(gè)特征的每一個(gè)領(lǐng)域分配一個(gè)獨(dú)立的d維嵌入向量,我們的模型為每一個(gè)類別單獨(dú)分配一個(gè)低維度的向量進(jìn)行獨(dú)立交互學(xué)習(xí),極大降低了所需的向量空間.并且提出的FIM又進(jìn)一步對特征和類別之間所存在的潛在關(guān)系進(jìn)行更深層次的挖掘,提高了表現(xiàn)效果,這也是本文區(qū)別于其他主流模型的根本所在.
實(shí)驗(yàn)2.FIM的影響.
為了驗(yàn)證FIM的有效性,我們進(jìn)行了基于FIM的消融實(shí)驗(yàn).FIM-*代表FIM分別在不同種類的FM模型進(jìn)行對應(yīng)組合,此時(shí)式(14)中的W會因維度需要而進(jìn)行變更.此外,F(xiàn)IFM也可以理解為FIM+IFM版本.實(shí)驗(yàn)結(jié)果如表4所示:
Table 4 Impact of FIM表4 FIM的影響
從表4我們可以分析得到:
1) 單以FIM組件直接作為輸出結(jié)果,自身就有較好的預(yù)測效果,相比于原始的FM,在MovieLens,F(xiàn)rappe,Book-Crossing,Criteo依次提升了3.95%,0.87%,2.66%,5.90%.與此同時(shí),F(xiàn)IM在MovieLens和Book-Crossing數(shù)據(jù)集上比表3中的FFM提高了1.55%和0.57%,而在MovieLens數(shù)據(jù)集上比表3中的DeepFM提高了0.28%,驗(yàn)證了FIM自身就能攜帶較為豐富的預(yù)測影響因子(對應(yīng)3.4節(jié)的效果2).
2) FIM在類別較多的數(shù)據(jù)集上提升效果更為明顯.例如FIM在Criteo上甚至高于NFM,并與表3中的AFM結(jié)果相接近.我們認(rèn)為主要原因可能是Criteo數(shù)據(jù)集擁有多達(dá)39個(gè)類別,具有豐富的類別信息,相比于NFM和AFM只在特征上進(jìn)行交互,F(xiàn)IM將特征和類別信息進(jìn)行了融合,更能發(fā)揮在多類別數(shù)據(jù)集上的優(yōu)勢.
3) 雖然FIM具有一定的預(yù)測效果,但其在所有數(shù)據(jù)集上的表現(xiàn)仍差于IFM,這主要得益于IFM對特征交互和類別交互信息都進(jìn)行了抽取,也說明了特征交互及類別交互的融合能夠很好地支持模型的預(yù)測.
4) 為了充分驗(yàn)證FIM在各個(gè)模型上的影響力,我們還探究了FIM與第3節(jié)提到的NFM,AFM,IFM中的類別組件部分的組合版本.從實(shí)驗(yàn)中可以發(fā)現(xiàn),NFM和AFM在集成了FIM組件后在4個(gè)數(shù)據(jù)集上均有不錯(cuò)的提升效果.其中,F(xiàn)IM-NFM在Frappe數(shù)據(jù)集上甚至高于了IFM,F(xiàn)IM-AFM在Frappe和Criteo上高于了IFM,說明了本文所提出的FIM不僅自身具有不錯(cuò)的預(yù)測能力,還能為其他的FM模型帶來較好的增益效果(對應(yīng)3.4節(jié)的效果3).
5) 與FFM相比,雖然FIM也使用了類別的概念,但二者的角度完全不同,F(xiàn)FM是為每一個(gè)特征都對應(yīng)一系列存在的類別,初始化的計(jì)算模型是一個(gè)關(guān)于m,n,d的3維張量,而FIM在計(jì)算類別時(shí)默認(rèn)非0特征屬于一個(gè)類別,計(jì)算模型是一個(gè)關(guān)于n和d的2維矩陣,能極大地節(jié)省參數(shù)空間.
6) 從上述1)~5)分析得出,所提出的FIM不僅能和各類FM變體無縫銜接,還能為這些FM模型帶來不錯(cuò)的增益效果,甚至在無任何模型下也可以超越原始的FM模型,證明了FIM的有效性.
實(shí)驗(yàn)3.不同模型的時(shí)間消耗.
Fig. 6 Average training time of each epoch for different models on CPU and GPU圖6 在CPU和GPU上模型每輪的平均訓(xùn)練時(shí)間
為了進(jìn)一步驗(yàn)證參數(shù)量對于模型訓(xùn)練在時(shí)間上帶來的影響,我們統(tǒng)計(jì)并計(jì)算不同模型在CPU和GPU上40輪的平均每輪訓(xùn)練時(shí)間.為方便直觀展示,我們選取了4個(gè)有代表性的模型進(jìn)行對比:LibFM,F(xiàn)FM,DeepFM,IFM.其中FIFM和GFIM參數(shù)量要多于LibFM和IFM,并且小于FFM和DeepFM.實(shí)驗(yàn)結(jié)果如圖6所示:
從圖6中我們可以發(fā)現(xiàn):
1) 所有模型在GPU的訓(xùn)練時(shí)間要明顯少于CPU,這主要得益于GPU可以在執(zhí)行深度學(xué)習(xí)任務(wù)時(shí)使用更多的核心進(jìn)行并發(fā)計(jì)算,也是當(dāng)前主流服務(wù)器都采取GPU進(jìn)行深度學(xué)習(xí)的主要原因[13].
2) 雖然FFM在參數(shù)上要遠(yuǎn)多于其他模型,但訓(xùn)練時(shí)間并未表現(xiàn)出與參數(shù)量成正比例的關(guān)系,相比DeepFM,F(xiàn)FM的訓(xùn)練時(shí)間甚至還要略短一些,這可能是因?yàn)镕FM在訓(xùn)練時(shí)只做了通用的2階交互,參數(shù)量的增加雖然為其帶來了一定的計(jì)算復(fù)雜度,但相比于DeepFM復(fù)雜的多層感知機(jī)網(wǎng)絡(luò)計(jì)算過程,計(jì)算時(shí)間花銷更小,因此時(shí)間消耗也能保持在可接受的范圍.
3) 得益于FM簡化型的結(jié)構(gòu),LibFM在CPU和GPU上都有最快的訓(xùn)練速度,但帶來的不足是交互時(shí)學(xué)習(xí)到的信息量不足,導(dǎo)致它在所有的數(shù)據(jù)集上的表現(xiàn)最差.
4) 由于FIFM可看作是在IFM的基礎(chǔ)上增加了FIM模塊,因此在訓(xùn)練時(shí)間上要略長于當(dāng)前最好的IFM.從圖6中CPU實(shí)驗(yàn)結(jié)果可以看到,增加FIM后在時(shí)間上帶來的每輪花銷在CPU上只體現(xiàn)在1~4 s之間,對于在40輪迭代之前就到達(dá)收斂的模型來說也是能夠接受的.此外,得益于GPU的加速能力,F(xiàn)IFM模型的訓(xùn)練時(shí)間在GPU上相比于IFM可以縮短到平均不足1 s,這對于當(dāng)下GPU作為主流深度學(xué)習(xí)服務(wù)器的場景是完全可以忽略的(對應(yīng)3.4節(jié)的效果4的時(shí)間消耗).
5) GFIM作為FIFM的神經(jīng)網(wǎng)絡(luò)版本,由于加入更為高階的多層感知機(jī),訓(xùn)練時(shí)間長于FIFM,但由于GFIM在主體結(jié)構(gòu)上傳承于FIFM,因此它的總體時(shí)間也相較FFM和DeepFM有所降低.
6) 從上述1)~5)分析可知,F(xiàn)IFM和GFIM在實(shí)際訓(xùn)練時(shí)是完全能夠滿足當(dāng)下服務(wù)器對于時(shí)間復(fù)雜度的需求.
實(shí)驗(yàn)4.不同策略在數(shù)據(jù)集上帶來的影響.
為了進(jìn)一步驗(yàn)證組成FIFM模型的各個(gè)策略在訓(xùn)練的過程中對最終的表現(xiàn)結(jié)果帶來了哪些影響.我們做了對比實(shí)驗(yàn):將Fea(+)記為僅保留特征交互的方法,線性部分保持不變.將Field(+)記為僅保留類別交互的方法,而將Fea_Field(-)記為FIFM去除特征-類別權(quán)重后(保留特征交互和類別交互)的方法.將Fea(+)、Field(+)、Fea_Field(-)這3個(gè)方法結(jié)合已有的FIFM模型在2個(gè)訓(xùn)練集上進(jìn)行了40次迭代訓(xùn)練,并記錄下它們在測試集上每一輪的表現(xiàn).
Fig. 7 Performance of different strategies on MovieLens and Frappe datasets圖7 不同策略在MovieLens和Frappe數(shù)據(jù)集上的表現(xiàn)
圖7展示了不同策略在MovieLens數(shù)據(jù)集和Frappe數(shù)據(jù)集上的表現(xiàn).可以看出,隨著迭代次數(shù)的增加,所有的模型都逐漸趨向于收斂.毫無疑問的是,集合了所有策略的FIFM獲得了最好的效果.對于收斂速度而言,在MovieLens和Frappe數(shù)據(jù)集上獲得最快收斂的分別是FIFM和Field(+).在模型趨于穩(wěn)定后,不同策略的表現(xiàn)結(jié)果從大到小依次為FIFM>Fea_Field(-)>Fea(+)>Field(+).我們可以發(fā)現(xiàn),結(jié)合了特征嵌入矩陣和類別嵌入矩陣的Fea_Field(-)比單獨(dú)的交互學(xué)習(xí)具有更明顯的提升作用.此外,特征交互帶來的增益大于類別交互,這也是由于特征向量包含了類別向量不具備的更為精細(xì)化的信息.相比MovieLens,Field(+)在Frappe上收斂得更快,這可能是因?yàn)镕rappe的類別特征具有10個(gè),相比MovieLens的3個(gè),類別嵌入矩陣可以得到更充分的學(xué)習(xí).
實(shí)驗(yàn)5.不同維度的模型在數(shù)據(jù)集上的效果.
Fig. 8 Performance of varying field embedding KF on MovieLens and Frappe圖8 不同類別嵌入維度KF在MovieLens和Frappe上的表現(xiàn)
我們比較了不同的類別嵌入維度KF在2個(gè)數(shù)據(jù)集上的表現(xiàn).從圖8中看到,隨著維度的持續(xù)上升,表現(xiàn)效果也會因過擬合而有所下降,因此合理的KF值需要取決于不同數(shù)據(jù)集具體的數(shù)據(jù)特征.例如圖8(a)中,KF在MovieLens上獲得最佳表現(xiàn)的嵌入維度8要明顯區(qū)別于圖8(b)的嵌入維度32.我們也將其歸結(jié)為數(shù)據(jù)集的類別因素.由于Frappe上的類別數(shù)10要遠(yuǎn)多于MovieLens上的3,因此感知交互層能夠獲取9×10/2=45個(gè)交互向量,而同樣的MovieLens只能獲取2×3/2=3個(gè)交互向量,故獲取可訓(xùn)練信息也就遠(yuǎn)小于Frappe,導(dǎo)致更小的維度提前達(dá)到了訓(xùn)練的飽和狀態(tài).同時(shí),我們注意到,F(xiàn)IFM隨著維度變化的波動性要小于GFIM,這是由于GFIM引入了逐點(diǎn)相乘的向量級別乘法,對維度變化更為敏感.但相比于特征-類別標(biāo)量計(jì)算的FIFM也容易取得最佳效果,同時(shí)也更容易帶來過擬合問題致使后續(xù)效果下降.
圖9展現(xiàn)了特征嵌入向量的維度d在MovieLens和Frappe上的表現(xiàn).不同于類別嵌入矩陣維度KF,特征嵌入矩陣維度d需要更大的數(shù)值以獲得最佳的表現(xiàn)效果.FIFM和GFIM在2個(gè)數(shù)據(jù)集上的最佳取值均在256左右,此維度要遠(yuǎn)遠(yuǎn)大于KF的8和32,間接說明了特征交互相比于類別交互具有更豐富的信息量,這也是此前眾多基于特征交互的FM改進(jìn)模型獲得成功的原因.而GFIM受到過擬合的影響帶來的RMSE表現(xiàn)下降也沒有圖8中的類別交互那么明顯.
Fig. 9 Performance of varying feature embedding don MovieLens and Frappe圖9 不同特征嵌入維度d在MovieLens和Frappe上的表現(xiàn)
相比于其他稀疏預(yù)測模型,本文提出的FIFM具有更好的表現(xiàn)效果.GFIM在FIFM基礎(chǔ)上引入了神經(jīng)網(wǎng)絡(luò)作為支撐,從而進(jìn)一步提升了實(shí)驗(yàn)效果的上限.
實(shí)驗(yàn)6.數(shù)據(jù)稀疏環(huán)境下不同模型的性能比較
為了進(jìn)一步評估數(shù)據(jù)稀疏性對推薦性能的影響,我們在MovieLens上選取不同規(guī)模的數(shù)據(jù)內(nèi)容,用于模擬不同稀疏程度(10%,30%,50%,70%,90%)的訓(xùn)練數(shù)據(jù)集,所有模型在不同程度數(shù)據(jù)稀疏環(huán)境下的性能表現(xiàn)如表5所示:
Table 5 RMSE Comparison of All Models with Different Sparse Degrees on MovieLens
從表5中我們可以發(fā)現(xiàn),伴隨著MovieLens數(shù)據(jù)集稀疏程度的上升,所有的模型表現(xiàn)效果均有不同程度的降低.需要特別指出的是,在90%稀疏條件下,所有模型均有較大幅度的性能下降.而基于FM的改進(jìn)模型例如AFM或DeepFM,由于采用了神經(jīng)注意力機(jī)制或深度高階特征擬合學(xué)習(xí)方法,下降幅度小于原始的FM.同時(shí)我們還發(fā)現(xiàn),F(xiàn)FM和IFM均引入了類別交互模型,但FFM的表現(xiàn)整體上要差于依賴于神經(jīng)網(wǎng)絡(luò)機(jī)制的IFM,也差于未考慮交互模型的DeepFM,這表明了深度學(xué)習(xí)在特征擬合時(shí)仍然具有強(qiáng)大的高階特征擬合能力.
本文從特征-類別融合的角度出發(fā),提出了一種新的特征-類別交互因子分解機(jī)模型(FIFM),并基于深度學(xué)習(xí)的泛化理論給出了相應(yīng)的神經(jīng)網(wǎng)絡(luò)擴(kuò)展模型GFIM.相比于從特征交互角度出發(fā)的FM,NFM,AFM,從類別交互角度出發(fā)的FFM和以特征、類別分別交互角度出發(fā)的IFM模型,我們提出的模型加入了從特征-類別融合的視角,并設(shè)計(jì)了一種新的特征-類別融合交互機(jī)制(FIM).FIM計(jì)算特征和類別融合后的交互特征,豐富了在各類稀疏場景下的高階語義信息和潛在預(yù)測因子,進(jìn)一步提高了預(yù)測的準(zhǔn)確性.同時(shí),本文還進(jìn)行了多類實(shí)驗(yàn)來探究在不同場景下的預(yù)測結(jié)果,記錄了不同數(shù)據(jù)集下的時(shí)間和空間消耗情況,并分析了原因.在4個(gè)真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,在常規(guī)實(shí)驗(yàn)環(huán)境和稀疏實(shí)驗(yàn)環(huán)境下,本文提出的FIFM和GFIM模型相比于主流的預(yù)測模型在RMSE指標(biāo)上都具有提升效果.
作者貢獻(xiàn)聲明:黃若然負(fù)責(zé)論文框架設(shè)計(jì)、算法提出、實(shí)驗(yàn)設(shè)計(jì)和運(yùn)行,以及論文撰寫、修訂和最終審核;崔莉負(fù)責(zé)論文整體研究思路的提出、內(nèi)容設(shè)計(jì)和最終版本修訂;韓傳奇負(fù)責(zé)部分內(nèi)容撰寫、文獻(xiàn)調(diào)研以及插圖設(shè)計(jì)和修訂.