趙衎衎,張良富,張 靜,李翠平,陳 紅
1(中國人民大學(xué) 信息學(xué)院,北京 100872)
2(數(shù)據(jù)工程與知識工程教育部重點(diǎn)實(shí)驗(yàn)室(中國人民大學(xué)),北京 100872)
隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等技術(shù)的迅猛發(fā)展,互聯(lián)網(wǎng)的各類服務(wù)應(yīng)用層出不窮,數(shù)據(jù)規(guī)模呈現(xiàn)指數(shù)級增長.根據(jù)國際數(shù)據(jù)集團(tuán) IDC的 2012年報(bào)告顯示:到 2020年,全球數(shù)據(jù)總量預(yù)計(jì)將達(dá)到 2011年的 22倍,即35.2ZB[1].雖然大數(shù)據(jù)中蘊(yùn)含著豐富的價(jià)值和巨大的潛力,但同時(shí)也使得信息過載問題越發(fā)嚴(yán)重.在此背景下,推薦系統(tǒng)誕生.作為解決信息過載問題的有效方法,推薦系統(tǒng)已經(jīng)成為學(xué)術(shù)界和工業(yè)界的關(guān)注熱點(diǎn)并得到廣泛應(yīng)用,形成了眾多相關(guān)研究成果.一般地,推薦系統(tǒng)從用戶歷史數(shù)據(jù)中自動學(xué)習(xí)用戶的需求和興趣,通過多樣化的推薦算法從海量數(shù)據(jù)中挖掘出用戶感興趣的項(xiàng)目(如信息、服務(wù)和物品等).目前,推薦系統(tǒng)已經(jīng)在很多領(lǐng)域得到成功應(yīng)用,包括電子商務(wù)(亞馬遜、阿里巴巴、京東等)、信息檢索(如 Google、百度等)、社交網(wǎng)絡(luò)服務(wù)(如Facebook、QQ、微博等)、位置服務(wù)(如Foursquare、Yelp、大眾點(diǎn)評等)、新聞推薦(如今日頭條、Google news等)、電影推薦(如Netflix、豆瓣等)等[2].
從信息過濾的角度來看,傳統(tǒng)的推薦系統(tǒng)主要分為基于內(nèi)容推薦系統(tǒng)、協(xié)同過濾推薦系統(tǒng)和混合推薦系統(tǒng).其中,最經(jīng)典的算法非協(xié)同過濾算法莫屬,而矩陣分解在重要問題上出色的預(yù)測能力,讓其成為協(xié)同過濾算法中應(yīng)用最為廣泛的模型.在矩陣分解模型中,數(shù)據(jù)被組織為用戶-物品矩陣,矩陣中每個(gè)值被編碼成0/1或真實(shí)評分,以表示用戶與物品間的交互行為.矩陣分解模型的目標(biāo)在于從用戶-物品矩陣中分別學(xué)習(xí)每個(gè)用戶和物品的隱因子向量,最終學(xué)習(xí)得到的這種隱因子向量可用于近似重建可觀察的交互值,并預(yù)測缺失或未知交互值.
在更多上下文特征可獲取的今天,隨著多種上下文特征引入建模,傳統(tǒng)矩陣分解方法的擴(kuò)展研究快速展開,使其能夠?qū)⒏嗌舷挛囊蛩匾肽P?然而大多數(shù)基于上下文特征的分解方法都有其特定的應(yīng)用場景,相比傳統(tǒng)的矩陣分解模型而言,算法泛化能力大大降低.在此背景下,文獻(xiàn)[3]提出了著名的因子分解機(jī)模型.
因子分解機(jī)(factorization machines,簡稱FM)是一個(gè)通用的模型,其在Movielens數(shù)據(jù)集上的數(shù)據(jù)組織形式如圖1所示,每個(gè)數(shù)據(jù)實(shí)例中的所有特征(用戶、電影、當(dāng)前用戶對其他電影評分、觀看時(shí)間、當(dāng)前用戶觀看的上一部電影)被組織成一個(gè)向量Xi,并對應(yīng)一個(gè)目標(biāo)值yi,特征之間互相平等.憑借該模型,Rendle在KDD Cup 2012中分別取得Track1第2名和Track2第3名的成績.與原有的分解方法相比,該模型將特征工程的一般性與分解模型的優(yōu)越性相融合.它能夠通過特征工程模擬絕大多數(shù)的特定分解模型,如 SVD++[4],FPMC[5],timeSVD++[6],BPTF[7],PITF[8]等.
Fig.1 Data organization example of FM on Movielens dataset圖1 基于Movielens的FM數(shù)據(jù)組織示例
本文首先對因子分解機(jī)模型進(jìn)行溯源,探討因子分解機(jī)模型和其他流行的基于上下文的分解方法的關(guān)系,指出因子分解機(jī)模型能夠通過其強(qiáng)大的泛化能力自然地模擬這些特定場景下的分解算法;然后綜述近年來涌現(xiàn)的針對不同問題的各種因子分解機(jī)模型的變種,從模型的準(zhǔn)確性及性能角度出發(fā),將其分為基于準(zhǔn)確性的優(yōu)化和基于性能的擴(kuò)展;接著,從獨(dú)立于問題模型的角度綜述適用于因子分解機(jī)模型求解的代表性優(yōu)化方法,指出每種優(yōu)化方法的優(yōu)勢和不足;最后,本文分析了現(xiàn)有因子分解機(jī)模型仍然存在的問題,針對這些問題,提出了可能的解決思路,并對未來研究方向進(jìn)行了展望.
本節(jié)第 1節(jié)對因子分解機(jī)模型的提出進(jìn)行溯源,指出分解方法如何從傳統(tǒng)矩陣分解一步步發(fā)展為因子分解機(jī)模型.第 2節(jié)綜述現(xiàn)有因子分解機(jī)模型及其變種.第 3節(jié)綜述現(xiàn)階段適用于因子分解機(jī)模型求解的代表性優(yōu)化算法.第 4節(jié)對因子分解機(jī)模型研究目前仍存在的問題進(jìn)行分析,指出可能的解決思路,并對未來的研究方向進(jìn)行展望.最后,在第5節(jié)總結(jié)本文.
矩陣分解模型作為推薦算法的研究熱點(diǎn),已經(jīng)在推薦系統(tǒng)相關(guān)領(lǐng)域得到大規(guī)模的應(yīng)用.該算法的核心思想是:把推薦問題轉(zhuǎn)化為矩陣完全分解問題,把稀疏用戶評分矩陣映射到給定的用戶集合和項(xiàng)目集合,通過矩陣運(yùn)算預(yù)測缺省評分,反映用戶對項(xiàng)目的潛在偏好,按照用戶對未評分項(xiàng)目的預(yù)測評分值對用戶進(jìn)行推薦[9].矩陣分解算法能夠有效降低高維數(shù)據(jù)稀疏性,并且對噪聲和冗余不敏感,擁有良好的可擴(kuò)展性,但是可解釋性較差,計(jì)算復(fù)雜度高[10].
傳統(tǒng)的矩陣分解算法有奇異值分解(SVD)[11]、非負(fù)矩陣分解(NMF)[12]、概率矩陣分解(PMF)[13]等.這些算法的共同特點(diǎn)是將高維矩陣分解成為 2個(gè)或多個(gè)低維矩陣的乘積形式,便于在一個(gè)低維空間研究高維數(shù)據(jù)的性質(zhì).PureSVD[14]直接對用戶評分矩陣做 SVD分解,未知值采用 0值填充,可以快速獲取用戶對項(xiàng)目預(yù)測評分.但是SVD允許分解出現(xiàn)負(fù)值,這在物理上缺乏可解釋性.與SVD相比,NMF可以保證分解所得矩陣的每個(gè)元素均是正值,這使得NMF具有直觀的物理意義.不同于SVD和NMF,PMF從概率的角度預(yù)測用戶評分,假設(shè)用戶和商品的特征向量矩陣都符合高斯分布,基于這個(gè)假設(shè),把用戶偏好問題轉(zhuǎn)換為概率組合問題,從更深層次討論了矩陣分解的概率解釋.
在大數(shù)據(jù)時(shí)代移動設(shè)備智能化的今天,上下文因素的獲取變得極為容易,例如用戶的人口統(tǒng)計(jì)信息、物品的本身屬性、時(shí)間、位置、社交網(wǎng)絡(luò)等.早在2005年,文獻(xiàn)[15]研究指出,把上下文信息融入推薦系統(tǒng)將有利于提高推薦精確度.因此,研究者考慮基于豐富的上下文信息提升傳統(tǒng)用戶-物品矩陣分解模型的準(zhǔn)確率.文獻(xiàn)[16]把位置上下文引入推薦系統(tǒng),引入高維SVD(HOSVD),很好地處理了用戶-位置-活動三維張量.文獻(xiàn)[6]把時(shí)間上下文引入建模,提出一種timeSVD++算法,提高預(yù)測用戶電影評分的精準(zhǔn)度.文獻(xiàn)[17]將聯(lián)合PMF(UPMF)引入上下文廣告推薦,把用戶評分矩陣分解為用戶、廣告和網(wǎng)頁特征矩陣的乘積.
上述推薦算法分別將不同的上下文因素融入分解模型中,提高了特定場景下的推薦精準(zhǔn)度,然而這種基于特定上下文特征的分解方法其泛化能力較低,沒有一個(gè)方法能將大多數(shù)上下文特征以特征工程的方式融入分解模型中去.在此背景下,文獻(xiàn)[3]提出了著名的因子分解機(jī)模型.接下來,第1.1節(jié)將對因子分解機(jī)模型的數(shù)據(jù)組織形式和模型表達(dá)式進(jìn)行說明.在后續(xù)章節(jié)中,給出如何使用因子分解機(jī)模型模擬其他特定模型.
假設(shè)一個(gè)預(yù)測問題的訓(xùn)練數(shù)據(jù)D=(X,y),其中,X∈?n×p表示當(dāng)前數(shù)據(jù)集D有n個(gè)實(shí)例,每個(gè)實(shí)例由一個(gè)維度為p的稀疏向量組成,y∈?n則表示n個(gè)實(shí)例對應(yīng)的真實(shí)標(biāo)簽,(Xi,yi)表示第i個(gè)實(shí)例Xi對應(yīng)標(biāo)簽為yi.
FM能夠?qū)斎胗?xùn)練集D=(X,y)不同特征間的交互進(jìn)行分解建模,其d階交互模型表示見公式(1).
然而,隨著特征交互階數(shù)的增加,模型參數(shù)規(guī)模成指數(shù)級增長,導(dǎo)致計(jì)算復(fù)雜度不可接受.通常在實(shí)際應(yīng)用時(shí),二階FM模型已有較好的表現(xiàn),故稱二階FM為標(biāo)準(zhǔn)FM模型.將公式(1)簡化為標(biāo)準(zhǔn)FM,其表達(dá)式見公式(2).
與多項(xiàng)式回歸的不同之處在于:特征的兩兩交互并不由一個(gè)獨(dú)立的參數(shù)wj,j′來建模,而是使用兩個(gè)分解的隱因子向量來估計(jì)交互參數(shù)wj,j′的值,即有,這使得FM能夠在高稀疏數(shù)據(jù)上有較好的表現(xiàn).
假設(shè)當(dāng)前訓(xùn)練數(shù)據(jù)包含m個(gè)用戶和n個(gè)物品的交互.對于傳統(tǒng)矩陣分解,構(gòu)造用戶-物品交互矩陣Rm×n,通過矩陣運(yùn)算預(yù)測缺省評分,完成對用戶隱因子矩陣U和物品隱因子矩陣V的學(xué)習(xí):
然而,這種最基本的矩陣分解思想在實(shí)際情況下并不能很好地度量用戶和物品的交互.用戶之間是具有差異性的,例如有的用戶偏向給出物品較高的評分.同樣的,這種情況也會出現(xiàn)在物品中.通過對公式(3)加入用戶/物品和全局偏置項(xiàng),得到一個(gè)更加合理的分解模型:
同樣地,使用上述例子構(gòu)建基于標(biāo)準(zhǔn) FM 模型的訓(xùn)練集,形成一個(gè)指示矩陣X∈R|U|×|V|,每個(gè)數(shù)據(jù)實(shí)例x由|U|+|V|維稀疏向量構(gòu)成.假設(shè)當(dāng)前數(shù)據(jù)實(shí)例表示用戶u與物品i的交互,則該向量x僅第u和|U|+i個(gè)位置為1,其他均為0:
在這種情況下,FM與矩陣分解模型表達(dá)式相同:
假設(shè)訓(xùn)練集由m個(gè)用戶、n個(gè)物品以及上下文特征L組成,其中,特征L不為0的列數(shù)為c.標(biāo)準(zhǔn)FM數(shù)據(jù)組織格式可表示如下:
基于上述場景,標(biāo)準(zhǔn)FM模型可表示如公式(6):
如果{l1,l2,…,lm}表示用戶對物品的隱式反饋特征,那么公式(7)前5項(xiàng)與完整SVD++模型完全相同.
假設(shè)訓(xùn)練數(shù)據(jù)包含3類特征,分別為用戶、物品和物品對應(yīng)的標(biāo)簽,與第1.3節(jié)中應(yīng)用場景類似,其FM數(shù)據(jù)組織形式可表示如下:
兩兩交互張量分解模型(pairwise interaction tensor factorization,簡稱PITF)可表示如公式(7):
從上式可以看出:與標(biāo)準(zhǔn)FM模型相同特征共享隱因子向量不同,PITF中,每個(gè)特征在與不同類別特征交互時(shí),其對應(yīng)的隱因子參數(shù)是不同的.
假設(shè)訓(xùn)練數(shù)據(jù)中,每個(gè)數(shù)據(jù)實(shí)例包含p維特征,基于線性核的支持向量機(jī)可表示如公式(8):
顯然可見,線性核支持向量機(jī)與一階 FM 模型(不存在特征間兩兩交互)具有相同表達(dá)式.繼而,使用非奇次多項(xiàng)式核替代線性核,支持向量機(jī)在特征二階交互時(shí)可以表示為公式(9):
由公式(9)可知,多項(xiàng)式核使得支持向量機(jī)能夠?qū)μ卣鏖g更高階的交互進(jìn)行建模.與標(biāo)準(zhǔn)FM相比,兩個(gè)模型都能夠?qū)μ卣鏖g高階交互進(jìn)行建模,不同之處在于:多項(xiàng)式核 SVM 所有的交互參數(shù)都是完全相互獨(dú)立的,這點(diǎn)與多項(xiàng)式回歸相同;而標(biāo)準(zhǔn) FM 的交互參數(shù)通過分解學(xué)習(xí)得到,并且由于每個(gè)特征對應(yīng)的隱因子參數(shù)在與任何其他特征交互時(shí)是共享的,因此進(jìn)一步降低了模型復(fù)雜度.此外,通常對非線性核 SVM,需要轉(zhuǎn)化為其對偶問題進(jìn)行求解;而標(biāo)準(zhǔn)FM可以直接進(jìn)行優(yōu)化.
除去上述分解模型,標(biāo)準(zhǔn) FM 還能高度模擬其他特定上下文分解模型,例如 FPMC(factorizing personalized markov chains)[5]、BPTF(Bayesian probabilistic tensor factorization)[7]、TimeSVD++[6]、最近鄰模型[18]以及基于用戶(物品)屬性上下文模型[19,20].
雖然FM已經(jīng)被廣泛應(yīng)用于預(yù)測、推薦等領(lǐng)域,且通常都能夠獲得較好的結(jié)果,然而在具體實(shí)踐中仍存在大量挑戰(zhàn).從模型的準(zhǔn)確率和效率性能兩個(gè)方向出發(fā),FM存在的問題可總結(jié)如下.
· 在準(zhǔn)確率方面
(1) 一般具體的 FM 模型的應(yīng)用中取二階交互,即特征的交互僅限兩兩相互交互建模.雖然理論上可以證明隨著交互度的增加,FM模型的時(shí)間復(fù)雜度呈線性增長趨勢,但是由于 FM數(shù)據(jù)表示的高維稀疏性,其高階交互的線性時(shí)間復(fù)雜度在現(xiàn)實(shí)應(yīng)用中亦難以接受;
(2) 神經(jīng)網(wǎng)絡(luò)在特征的高階非線性交互建模及高階特征表示方面具有較好的效果,而標(biāo)準(zhǔn) FM 在特征的低階交互建模方面有一定的優(yōu)勢,兩者的融合必定會取得更好的模型性能;
(3) FM 的成功很大程度源于它對特征間的交互行為進(jìn)行了建模,這種交互的加入更加符合事物的規(guī)律,有效地提升了算法的性能.然而在現(xiàn)實(shí)生活中,并不是所有的特征交互都能得到正向的增益,噪音特征的加入甚至?xí)p害模型的準(zhǔn)確性,因此,如何對特征交互加以甄別,進(jìn)一步提升算法的性能和效率,仍是一個(gè)巨大挑戰(zhàn);
(4) 由于FM表達(dá)式的整體非凸性,標(biāo)準(zhǔn) FM基于梯度的優(yōu)化,其步長及正則化超參的選擇都會影響到模型訓(xùn)練的收斂.如何規(guī)避此類超參初值選擇對模型收斂的影響、如何重構(gòu)模型使得其目標(biāo)函數(shù)整體呈現(xiàn)凸優(yōu)化,有一定的困難;
(5) 在標(biāo)準(zhǔn)FM中,所有特征之間相互平等,類別和層次信息無法得到體現(xiàn).如何將這些信息融入模型,進(jìn)一步提升模型性能,是一個(gè)問題.
· 在模型訓(xùn)練效率和性能方面
由于FM模型和數(shù)據(jù)組織形式的高維稀疏性,在大數(shù)據(jù)環(huán)境下:一方面,更多的上下文特征不斷涌入;另一方面,數(shù)據(jù)規(guī)模不斷增加.兩者共同導(dǎo)致因子分解機(jī)的模型復(fù)雜度增加和訓(xùn)練數(shù)據(jù)增長,傳統(tǒng)的單機(jī)環(huán)境已無法滿足其需求(內(nèi)存無法全部存儲且計(jì)算效率低下).因此,如何對模型的學(xué)習(xí)進(jìn)行擴(kuò)展以提高其效率變得尤為迫切.
針對上述問題,研究者從不同角度給出了解決方案.
2.1.1 高階交互
文獻(xiàn)[3]提出:標(biāo)準(zhǔn) FM 模型可以適用于任意階特征交互場景,其模型表達(dá)式如公式(1)所示.然而,一般情況下只使用d=2,即兩兩特征交互.原因有二.
· 其一,同階交互時(shí),在建模當(dāng)前特征在與其他特征的交互過程中,當(dāng)前特征對應(yīng)的分解隱因子向量是共享的.然而當(dāng)存在多階特征交互時(shí),不同階特征對應(yīng)的隱因子向量是不共享的,模型的參數(shù)增長量會隨著特征維度的大小線性增長.由于因子分解機(jī)模型將用戶、物品本身也作為特征平等對待,因此在實(shí)際工業(yè)環(huán)境下,其特征維度會非常之大.當(dāng)特征的高階交互存在時(shí),模型參數(shù)的增長會非常迅速,導(dǎo)致存儲及計(jì)算資源指數(shù)級增加,限制了模型的推廣.例如,假設(shè)特征維數(shù)維m,不同階分解所得隱向量的維度均為k,忽略全局偏置和單個(gè)特征對應(yīng)權(quán)重.當(dāng)d=3時(shí),與兩兩特征交互相比,新增模型參數(shù);
· 其二,文獻(xiàn)[3,21-23]僅給出了二階特征交互下模型的4種優(yōu)化策略——隨機(jī)梯度下降、坐標(biāo)下降、馬爾可夫蒙特卡洛法和基于自適應(yīng)正則的隨機(jī)梯度下降算法.
一般地,高階交互的加入能夠使模型的性能進(jìn)一步提高.針對標(biāo)準(zhǔn) FM 模型在高階交互中存在的問題,研究者給出了自己的方案.
文獻(xiàn)[24]直接擴(kuò)展二階因子分解模型至三階,并沿用二階的交互項(xiàng)表達(dá)式變換技巧對三階交互項(xiàng)進(jìn)行了優(yōu)化.相比原始的三階交互,時(shí)間復(fù)雜度降低.最后使用隨機(jī)梯度下降學(xué)習(xí)得到最終模型.然而,該三階模型依然未解決能夠向更高階通用擴(kuò)展的問題,且模型復(fù)雜度依然隨階按倍數(shù)增長.相似的,文獻(xiàn)[25]提出一種三階因子分解模型,與標(biāo)準(zhǔn)因子分解機(jī)模型不同,作者使用 ANOVA核建模特征間的三階交互,使用坐標(biāo)下降法對三階ANOVA核因子分解機(jī)模型優(yōu)化.
與上述只達(dá)到三階交互的模型不同,文獻(xiàn)[26]提出一種任意高階共享因子分解模型.作者同樣使用了ANOVA核對其進(jìn)行重構(gòu).ANOVA核通常被用來建模特征間的交互,與因子分解機(jī)模型的交互項(xiàng)相似.ANOVA核的特性使得高階的 ANOVA核可以遞歸轉(zhuǎn)化為對應(yīng)的低一階交互核.因此,作者使用非齊次 ANOVA核的特性,遞歸地從高到低建模不同階特征交互過程,在該核中,同一特征的隱因子向量在不同階的特征交互中是可共享的.此外,不同階的交互對模型的影響可使用權(quán)重參數(shù)建模.就如何高效地優(yōu)化高階共享因子分解機(jī)模型,作者提出了一種動態(tài)規(guī)劃算法,用于計(jì)算不同階交互對模型的貢獻(xiàn)值和計(jì)算梯度.由于核的遞歸特性,該動態(tài)規(guī)劃算法能夠避免許多重復(fù)性計(jì)算.此外,作者使用基于隨機(jī)梯度和坐標(biāo)下降這兩種優(yōu)化算法對模型進(jìn)行了優(yōu)化.
文獻(xiàn)[27]提出一種基于多任務(wù)多視圖(multi-task multi-view)的高階因子分解機(jī)模型.多任務(wù)多視圖學(xué)習(xí)假設(shè)一個(gè)大的任務(wù)能夠分解為多個(gè)子任務(wù),每個(gè)子任務(wù)則由多個(gè)視圖構(gòu)成.其最終目標(biāo)則是根據(jù)所有子任務(wù)中的訓(xùn)練集信息,利用多個(gè)視圖的交互,學(xué)習(xí)得到一個(gè)非線性的分類或回歸模型.在多任務(wù)多視圖中,整個(gè)任務(wù)可以看做一個(gè)張量,每個(gè)視圖和子任務(wù)為張量的一個(gè)維度.然而,由于訓(xùn)練數(shù)據(jù)的稀疏性,無需物理構(gòu)建一個(gè)張量訓(xùn)練集合.作者首先摒棄了直接使用單個(gè)參數(shù)來建模某個(gè)特定交互,轉(zhuǎn)而采用使用 CP分解(canonical polyadic decomposition),大大降低了參數(shù)規(guī)模.進(jìn)而分析若直接使用多視圖交互建模,最終只能得到一個(gè)基于滿(最高)階交互的非線性模型的限制,通過給每個(gè)視圖中添加一個(gè)常量為 1的列,使得不同視圖間的交互可以由原來的滿階交互變?yōu)閺囊浑A到滿階的不同階交互并存.與標(biāo)準(zhǔn)高階 FM 的不同階交互由不同參數(shù)負(fù)責(zé)相比,這種基于多任務(wù)多視圖的高階FM的不同階交互的參數(shù)是共享的.這種機(jī)制大大減少了參數(shù)的規(guī)模,與上述基于ANOVA核的高階FM有異曲同工之妙.最后,由于多任務(wù)維度的存在,經(jīng)過基于坐標(biāo)下降的CP分解,該維度生成與其他視圖的交互隱因子矩陣對應(yīng)的特定任務(wù)權(quán)重矩陣.即,用戶針對不同的任務(wù)(話題)具有不同的喜好程度(權(quán)重).
文獻(xiàn)[28]在文獻(xiàn)[27]的基礎(chǔ)上提出一種新的基于多視圖的結(jié)構(gòu)因子分解機(jī)模型.在文獻(xiàn)[27]中,一個(gè)視圖中僅包含一項(xiàng)實(shí)體,由一個(gè)向量表示,且視圖間實(shí)體不存在重疊.而在文獻(xiàn)[28]中,作者改變思路,文中每個(gè)視圖可包含若干項(xiàng)實(shí)體,因此,視圖以一個(gè)向量的形式存在,且不同實(shí)體間允許存在實(shí)體重疊.由于不同視圖間存在實(shí)體重疊,因此該重疊的實(shí)體在進(jìn)行 CP分解時(shí),所生成的隱因子矩陣可共享.此外,作者采用了與文獻(xiàn)[27]中相同的技巧,使得同一視圖內(nèi)可進(jìn)行不同階交互隱因子共享.
文獻(xiàn)[29]提出多視圖分解機(jī)(multi-view machine,簡稱MVM),與文獻(xiàn)[27]類似,作者使用基于CP分解的多視圖來完成高階FM的建模,并且采用與之相同的技巧完成不同階的交互隱因子的共享.此外,作者認(rèn)為:并非所有的高階交互都是有其物理意義的,且高階交互通常難以解釋,因此,作者提出通過對原始的全部視圖進(jìn)行分割,形成多個(gè)視圖集合,使用MVM對多個(gè)視圖集合分別學(xué)習(xí)的方法來降低交互階數(shù).在CP分解過程中,使用隨機(jī)梯度下降法來優(yōu)化目標(biāo)函數(shù).最后,作者基于Spark完成了MVM的分布式實(shí)現(xiàn).
2.1.2 神經(jīng)網(wǎng)絡(luò)與因子分解機(jī)
隨著神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的興起,研究者考慮如何將因子分解機(jī)與神經(jīng)網(wǎng)絡(luò)相結(jié)合,提高最終模型的性能.文獻(xiàn)[30,31]提出使用神經(jīng)網(wǎng)絡(luò)完成用戶/物品特征隱因子表示和學(xué)習(xí),然后將其串聯(lián)成一個(gè)單獨(dú)特征向量,最后基于該特征向量使用標(biāo)準(zhǔn)FM完成模型的訓(xùn)練.與文獻(xiàn)[30,31]先神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)特征表示后因子分解機(jī)訓(xùn)練模型的方式不同,文獻(xiàn)[32-36]均利用因子分解機(jī)模型作為神經(jīng)網(wǎng)絡(luò)的輸入進(jìn)行特征的高階非線性交互建模.其中,文獻(xiàn)[32]提出一種基于因子分解機(jī)和神經(jīng)網(wǎng)絡(luò)的高階非線性特征交互模型,簡稱 FNN.具體地,在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行點(diǎn)擊率預(yù)測時(shí),FNN并未直接使用稀疏的0-1向量特征,而是考慮先利用標(biāo)準(zhǔn)FM基于隨機(jī)梯度下降法預(yù)訓(xùn)練得到模型所包含的全局偏置、每個(gè)特征對應(yīng)的一階權(quán)重和二階交互因子向量,然后將上述全部模型參數(shù)作為隱含層的輸入,使用神經(jīng)網(wǎng)絡(luò)方法生成最終模型.該方法能夠?qū)?biāo)準(zhǔn) FM 模型所生成的參數(shù)進(jìn)行高階非線性交互,提升神經(jīng)網(wǎng)絡(luò)方法的預(yù)測能力.與文獻(xiàn)[32]類似,文獻(xiàn)[33]提出一種神經(jīng)網(wǎng)絡(luò)與非線性因子分解機(jī)模型的混合模型NLFM.NLFM基于標(biāo)準(zhǔn) FM模型的全部參數(shù)(除去全局偏置參數(shù)),使用神經(jīng)網(wǎng)絡(luò)完成后續(xù)的訓(xùn)練.然而,與FNN將模型參數(shù)作為隱含層的輸入不同,NLFM首先將模型參數(shù)輸入一個(gè)嵌入層,生成并輸出標(biāo)準(zhǔn)FM模型中每個(gè)特征對應(yīng)的一階交互和與其他特征之間的二階交互,然后將嵌入層的輸出作為隱含層的輸入,進(jìn)而利用神經(jīng)網(wǎng)絡(luò)完成訓(xùn)練.為了提高最終模型預(yù)測能力,文獻(xiàn)[33]進(jìn)一步提出使用堆棧去噪自動編碼器對原始用戶/物品及其上下文特征進(jìn)行降維,降低數(shù)據(jù)稀疏度.在生成的高級特征基礎(chǔ)上,使用 NLFM 進(jìn)行模型訓(xùn)練.與文獻(xiàn)[32,33]不同,文獻(xiàn)[34-36]僅對特征的交互因子使用神經(jīng)網(wǎng)絡(luò)方法進(jìn)行高階非線性交互建模.其中,文獻(xiàn)[34]基于Wide&Deep網(wǎng)絡(luò),結(jié)合因子分解機(jī)和深度學(xué)習(xí),提出一種基于深度網(wǎng)絡(luò)的因子分解機(jī)模型DeepFM進(jìn)行廣告點(diǎn)擊率預(yù)測.具體地,DeepFM對共享二階交互因子矩陣分別采用標(biāo)準(zhǔn)FM和深度神經(jīng)網(wǎng)絡(luò)建模二階特征交互和高階特征交互,然后基于因子分解機(jī)模型輸出和深度神經(jīng)網(wǎng)絡(luò)輸出結(jié)果的和完成最終的預(yù)測.文獻(xiàn)[35]研究了稀疏輸入數(shù)據(jù)情況下的推薦問題,基于因子分解機(jī)提出了一種神經(jīng)因子分解機(jī)模型 NFM.NFM 保持因子分解機(jī)模型的全局偏置和特征的一階權(quán)重形式不變,將特征交互因子作為嵌入層,在嵌入層上增加一個(gè)雙線性交互池化操作,即因子分解機(jī)模型特征二階交互部分,然后將池化的輸出作為隱含層的輸入實(shí)現(xiàn)特征間的高階非線性交互.值得注意的是:雙線性交互池化操作的加入,使得 NFM 能在更少隱含層的情況下獲得更好的預(yù)測能力,而且參數(shù)更少,訓(xùn)練更加容易.文獻(xiàn)[36]通過擴(kuò)展 NFM 模型提出一種注意力因子分解機(jī)模型 AFM,通過將注意力機(jī)制引入雙線性交互池化操作中,進(jìn)一步提升NFM的表示能力和可解釋性.
2.1.3 交互特征選擇
在標(biāo)準(zhǔn)FM模型中,特征間的交互涵蓋整個(gè)特征集.然而在真實(shí)場景下,有些特征是不相關(guān)的,它們的交互是沒有任何物理意義且不可解釋的,甚至由于噪音特征的引入損害了預(yù)測結(jié)果.換言之,并非所有的特征交互都會對最終的預(yù)測值起到正向增益的效果.基于此,研究者提出對特征交互進(jìn)行選擇以提升模型性能和效率.
文獻(xiàn)[37]提出了一種基于梯度Boosting的貪婪的特征交互選擇方法,并與標(biāo)準(zhǔn)FM模型整合為一個(gè)統(tǒng)一的框架——GBFM.具體地,在每次迭代中,使用一個(gè)貪婪的梯度Boosting方法選擇一組交互特征,基于上一步預(yù)測與真實(shí)值的殘差來優(yōu)化所選交互特征的隱因子向量.在特征選擇過程中,作者采用一種多層貪婪啟發(fā)式算法,在每層總是選擇使得目標(biāo)下降最快的一類特征.實(shí)驗(yàn)證明,GBFM 很好地提升了模型的性能.然而,這種基于梯度Boosting的特征交互選擇是有問題的:迭代的交互特征選擇機(jī)制意味著不同次迭代可能選擇重復(fù)的特征,但重復(fù)特征在不同次迭代所對應(yīng)的隱因子向量是不同的,從而一定程度上導(dǎo)致模型參數(shù)規(guī)模的增大,使得訓(xùn)練效率降低.
與迭代的貪婪特征選擇機(jī)制不同,文獻(xiàn)[38]僅僅考慮選擇有用的用戶和物品之間的交互.具體地,作者首先將標(biāo)準(zhǔn)FM模型中的交互隱因子矩陣按照特征劃分為用戶隱因子矩陣和物品隱因子矩陣,通過矩陣變換重構(gòu)標(biāo)準(zhǔn) FM 模型;然后在損失函數(shù)中分別對用戶和物品隱因子矩陣加組稀疏正則項(xiàng),達(dá)到移除無關(guān)用戶和物品特征的效果;最后使用塊坐標(biāo)下降學(xué)習(xí)得到用戶和物品隱因子矩陣.這種特征選擇方法最大的問題在于:它限制了FM模型基于特征工程的強(qiáng)大泛化性,導(dǎo)致上下文特征無法參與建模.
文獻(xiàn)[39]認(rèn)為基于梯度Boosting和稀疏正則的方法在大規(guī)模高階特征交互選擇時(shí)是不可行的,提出一種可進(jìn)行任意階交互特征選擇的貝葉斯回歸因子分解機(jī)模型.具體地,使用超圖來表示特征間的任意階交互關(guān)系,其中:特征為頂點(diǎn),特征的任意階交互子集為超邊,交互特征選擇由隨機(jī)超圖上的先驗(yàn)分布指導(dǎo)完成.與上述兩種方法相比,該方法具有更強(qiáng)的泛化性.
2.1.4 概率模型
在標(biāo)準(zhǔn) FM模型中,作者首先給出了包括隨機(jī)梯度下降[3]和交替最小二乘[21](坐標(biāo)下降)在內(nèi)的兩種優(yōu)化策略.這兩種策略在優(yōu)化時(shí),其超參的初始值都需要用戶指定.然而,由于FM模型的非凸性,這種隨機(jī)指定超參的方式很可能會使得模型陷入一個(gè)局部最優(yōu)解;而 FM 模型在真實(shí)環(huán)境下因?yàn)槟P蛥?shù)高維且數(shù)據(jù)規(guī)模巨大,訓(xùn)練一次是非常耗時(shí)的.因此,得到一個(gè)局部最優(yōu)解再重新訓(xùn)練,這無疑是不可接受的.在不考慮對模型本身不作出修正時(shí),研究者考慮從概率模型角度出發(fā),得到一個(gè)無需手動指定超參的概率FM模型.
文獻(xiàn)[22]率先提出一個(gè)概率FM模型,該模型在標(biāo)準(zhǔn)FM概率圖模型基礎(chǔ)上添加了一層對超參的超先驗(yàn):對除了全局偏置外所有模型參數(shù)的正太分布所對應(yīng)的平均值添加高斯超先驗(yàn),對所有模型參數(shù)的正太分布所對應(yīng)的準(zhǔn)確率添加伽馬超先驗(yàn),最后利用吉布斯抽樣和共軛先驗(yàn)分布求得模型最優(yōu)參數(shù).文獻(xiàn)[40]提出一個(gè)基于非線性上下文協(xié)同過濾方法:高斯過程FM(GPFM),GPFM能夠無縫利用用戶對物品的顯式和隱式行為.具體地,作者使用高斯過程,對每一個(gè)用戶生成高斯先驗(yàn),針對用戶的顯式和隱式行為生成高斯似然,在此基礎(chǔ)上計(jì)算得到邊緣似然,最終使用隨機(jī)梯度下降對負(fù)的對數(shù)邊緣似然最小化函數(shù)進(jìn)行優(yōu)化,得到最優(yōu)模型參數(shù).文獻(xiàn)[41]認(rèn)為文獻(xiàn)[22]中所提數(shù)據(jù)服從正態(tài)分布,對于某些使用整數(shù)評分的場景是不合適的,且在選擇隱因子向量維度時(shí)需要進(jìn)行交叉驗(yàn)證,這無疑是非常耗時(shí)的.基于這兩個(gè)問題,作者對整數(shù)評分場景使用伽馬分布,并使用一個(gè)伽馬過程自動搜尋一個(gè)理想的隱因子向量維度,該過程并不需要交叉驗(yàn)證.文獻(xiàn)[42]首先提出在點(diǎn)擊率預(yù)測這種高度稀疏數(shù)據(jù)上利用拉普拉斯分布代替?zhèn)鹘y(tǒng)的高斯分布.與高斯分布相比,拉普拉斯分布更加適合于高維稀疏數(shù)據(jù)并辨別度量相關(guān)特征的關(guān)系.由于拉普拉斯分布是非平滑的,基于貝葉斯推論的 FM 模型難以優(yōu)化,而拉普拉斯分布能夠使用混合高斯分布來模擬,最終使用馬爾可夫蒙特卡洛方法對基于拉普拉斯分布的稀疏FM模型進(jìn)行優(yōu)化.
2.1.5 凸優(yōu)化及在線學(xué)習(xí)
為了從根本上解決標(biāo)準(zhǔn)FM模型的非凸問題并保持保證兩階特征交互矩陣的低秩特性,研究者給出了多種方案[43-46].文獻(xiàn)[43]提出一種針對二階特征交互因子矩陣改進(jìn)的凸因子分解機(jī)模型 CFM.具體地,CFM 保持標(biāo)準(zhǔn)FM模型的一階特征權(quán)重參數(shù)不變,將原有的二階特征交互因子矩陣V∈?p×k重構(gòu)為Z∈?p×p.雖然表面上Z的參數(shù)規(guī)模大于V,但是CFM并不物理存儲Z,而是通過矩陣特征分解的方式將對稱矩陣Z分解為多個(gè)秩為1的矩陣的和.相比標(biāo)準(zhǔn)FM模型需要指定二階特征交互隱因子矩陣V的維度k,CFM在最終的優(yōu)化目標(biāo)函數(shù)中使用核范數(shù)保證分解的低秩特性,無需用戶手動設(shè)置.文獻(xiàn)[44]將標(biāo)準(zhǔn)FM模型中的全局偏置參數(shù)糅合至特征的一階權(quán)重,形成一個(gè)增廣向量,并對二階特征交互隱因子矩陣采用與文獻(xiàn)[43]類似的表示.不同的是:文獻(xiàn)[43]對所有的特征二階交互進(jìn)行建模并采用塊坐標(biāo)下降的方法對目標(biāo)函數(shù)進(jìn)行優(yōu)化;而文獻(xiàn)[44]僅考慮不同特征間的二階交互(不考慮順序),采用 Hazan算法對模型參數(shù)進(jìn)行更新.總結(jié)文獻(xiàn)[43,44]可知:兩者僅對二階特征交互隱因子矩陣進(jìn)行變換,最終得到一個(gè)一階特征權(quán)重參數(shù)和二階特征交互隱因子矩陣分別優(yōu)化的凸因子分解機(jī)模型.基于上述文獻(xiàn),文獻(xiàn)[45]進(jìn)一步提出一種可在線學(xué)習(xí)的凸因子分解機(jī)模型 OCCFM.OCCFM 將因子分解機(jī)中的全局偏置、一階特征權(quán)重和二階特征交互隱因子矩陣等所有模型參數(shù)全部糅合,形成一個(gè)增廣參數(shù)矩陣,文獻(xiàn)[46]采用與之相同的凸因子分解機(jī)模型表示.在模型優(yōu)化時(shí),對所有模型參數(shù)統(tǒng)一進(jìn)行更新.由于因子分解機(jī)模型獨(dú)特的數(shù)據(jù)結(jié)構(gòu)表示,隨著越來越多上下文特征的加入,其參數(shù)規(guī)模不斷增加,導(dǎo)致模型面臨所有分解方法都存在的巨大挑戰(zhàn)——新數(shù)據(jù)到來后模型參數(shù)的更新.巨大的參數(shù)規(guī)模和訓(xùn)練數(shù)據(jù)集合,使得模型的全量更新所消耗的計(jì)算資源和時(shí)間是不可接受的,而且線下的更新方式勢必導(dǎo)致用戶體驗(yàn)變差.因此,如何對因子分解模型進(jìn)行在線更新成為研究熱點(diǎn).文獻(xiàn)[45,46]在凸因子分解機(jī)模型基礎(chǔ)上分別使用在線條件梯度和 FTRL(follow the regularized leader)兩個(gè)經(jīng)典的在線凸優(yōu)化方法完成模型的學(xué)習(xí).
2.1.6 層次信息引入
在標(biāo)準(zhǔn)FM模型中,并不存在類別信息,所有特征之間是平等的.同一特征與任意其他特征的同階交互,其對應(yīng)的隱因子向量是共享的,這種共享機(jī)制極大地減少了參數(shù)規(guī)模.然而這種設(shè)置并不符合實(shí)際情況,一些研究者認(rèn)為:當(dāng)特征在與不同類別特征交互時(shí),應(yīng)該使用不同的隱因子向量.因?yàn)殡[因子向量刻畫了兩類特征交互的內(nèi)涵,而不同的類別特征交互其所具備的物理含義很可能是全不同的.基于這種假設(shè),文獻(xiàn)[8]提出一種基于因子分解的個(gè)性化標(biāo)簽推薦方法,作者使用用戶、標(biāo)簽和物品這 3類特征,分別對(用戶-物品)、(用戶-標(biāo)簽)和(標(biāo)簽-物品)這3類交互進(jìn)行因子分解,得到了較好的推薦效果.在文獻(xiàn)[8]的基礎(chǔ)上,文獻(xiàn)[47]提出了一種通用的基于類別上下文的因子分解機(jī)模型 FFM,針對同一特征與不同類別間特征的同階交互使用不同的特征隱因子向量,并給出一種并行思路,應(yīng)用至點(diǎn)擊率預(yù)測中.相較于標(biāo)準(zhǔn)FM模型,雖然FFM有效地提高了模型準(zhǔn)確率,但是模型的參數(shù)規(guī)模也成倍增加.假設(shè)訓(xùn)練數(shù)據(jù)中存在f類不同特征,總的特征維度為p,每個(gè)特征的二階交互隱因子向量維度為k,那么標(biāo)準(zhǔn) FM 模型參數(shù)規(guī)模為p(k+1)+1,FFM 的參數(shù)規(guī)模為p(fk+1)+1,其中,1<
與上述泛化的基于不同類別特征交互的隱因子向量來刻畫類別層次信息不同,文獻(xiàn)[49]聚焦移動廣告點(diǎn)擊率預(yù)測場景,利用場景中不同類別隱含的層次信息和重要度信息構(gòu)建樹狀訓(xùn)練集劃分,實(shí)現(xiàn)數(shù)據(jù)實(shí)例與不同類別的交互.
2.1.7 其他應(yīng)用場景
針對標(biāo)準(zhǔn) FM 本身存在的問題和挑戰(zhàn),上述研究分別從一個(gè)或多個(gè)角度進(jìn)行了優(yōu)化研究.如何將因子分解機(jī)模型應(yīng)用至具體不同場景下不同問題下,也有研究者給出了多樣的解決方案.
文獻(xiàn)[50]提出同時(shí)使用兩個(gè)因子分解機(jī)模型來同時(shí)分別建模用戶興趣(是否轉(zhuǎn)發(fā)某條推特)和發(fā)現(xiàn)推特中的話題,兩個(gè)模型之間可以通過不同的共享機(jī)制聯(lián)系,作者共提出 3種不同的共享機(jī)制,包括特征共享、隱式空間共享和隱式空間正則化(距離).文獻(xiàn)[51]將因子分解機(jī)模型應(yīng)用至跨領(lǐng)域協(xié)同過濾中,這種方法通過連接其他領(lǐng)域和目標(biāo)領(lǐng)域的特征,使得模型能夠充分利用其他領(lǐng)域的信息來補(bǔ)充當(dāng)前領(lǐng)域上下文,以提高目標(biāo)領(lǐng)域的推薦性能.受文獻(xiàn)[52]針對矩陣基于層次上下文相似度分割的啟發(fā),文獻(xiàn)[53]認(rèn)為,基于似上下文環(huán)境的數(shù)據(jù)實(shí)例建模能夠提高模型精度,提出利用數(shù)據(jù)集中隱含的層次信息,多次隨機(jī)構(gòu)造多顆決策樹.在每個(gè)層次節(jié)點(diǎn)的訓(xùn)練集劃分時(shí),使用當(dāng)前節(jié)點(diǎn)上所有的訓(xùn)練集基于隨機(jī)梯度下降或坐標(biāo)下降法進(jìn)行訓(xùn)練,然后利用K-means聚類算法對當(dāng)前節(jié)點(diǎn)對應(yīng)類別生成的隱因子向量進(jìn)行聚類劃分,得到多個(gè)聚類中心,按照聚類中心,將當(dāng)前訓(xùn)練數(shù)據(jù)分割分發(fā)至下一層.重復(fù)上述過程.在測試階段,使用多個(gè)隨機(jī)決策樹生成值的平均作為最終的預(yù)測結(jié)果.文獻(xiàn)[54-56]將用戶之間的信任度、相似度和相互關(guān)注等信息融入因子分解機(jī)模型特征向量中,提高推薦準(zhǔn)確率.一般地,標(biāo)準(zhǔn)FM模型用于推薦、預(yù)測等領(lǐng)域,然而針對排序場景,模型并未給出相應(yīng)的優(yōu)化,因此,文獻(xiàn)[57]提出結(jié)合Learning-to-Rank的因子分解機(jī)模型,針對AUC度量方法進(jìn)行直接優(yōu)化.受文獻(xiàn)[58]的BPR排序理論影響,文獻(xiàn)[59]提出基于 AUC度量方法的排序因子分解機(jī)模型,在進(jìn)行負(fù)例選擇時(shí),作者利用隱式反饋和內(nèi)容信息提出一種自適應(yīng)的采用算法,其主要思路是:相同類別中,用戶對有過歷史行為的物品比未有過歷史行為的物品有更高的評分.然而,AUC度量并不適合于Top-N推薦任務(wù).基于AUC的排序使得在度量錯誤的排序時(shí),無論其處在Top-N推薦列表的頂部或底部具有一樣的影響力.這種設(shè)定是不符合常理的.文獻(xiàn)[60]認(rèn)為,在Top-N推薦列表的頂部具有比在底部更高的正確率是非常重要的,而能達(dá)到這種排序效果的度量方法有 NDCG和 MRR.因此,提出了LambdaFM,直接基于NDCG和MRR等排序度量方法進(jìn)行優(yōu)化,對處在不同排序位置的物品對賦予不同的權(quán)重,并提出3種采樣策略.文獻(xiàn)[61]提出一種基于Boosting的排序因子分解機(jī)模型,其主要思想是:在每次迭代時(shí),生成一個(gè)新的排序因子分解機(jī)模型用于優(yōu)化上一步的殘差,其中,每步的排序模型基于 Learning-to-Rank優(yōu)化.此外,作者維護(hù)了一個(gè)權(quán)值向量用于對每一對物品對進(jìn)行動態(tài)權(quán)值分配,主要是對當(dāng)前表現(xiàn)較差的物品對賦予更高的權(quán)值,以達(dá)到糾正的效果.
FM現(xiàn)在已經(jīng)被廣泛地應(yīng)用于預(yù)測、推薦等領(lǐng)域,特征工程和分解模型的結(jié)合,使得它通常能獲得較好的性能[3,21,50,51,54].然而模型獨(dú)有的特征組織形式導(dǎo)致它在大規(guī)模數(shù)據(jù)集下,傳統(tǒng)的單機(jī)環(huán)境已無法滿足其需求.因此,模型的擴(kuò)展應(yīng)運(yùn)而生.目前,針對因子分解機(jī)模型的擴(kuò)展研究主要集中在兩個(gè)方面:數(shù)據(jù)/參數(shù)形式重組和分布式擴(kuò)展.
在數(shù)據(jù)重組方面,文獻(xiàn)[62]基于標(biāo)準(zhǔn)模型提出一種不改變單機(jī)環(huán)境,而是針對模型底層數(shù)據(jù)的組織特征重新建立新的模型,不但有效地降低了底層數(shù)據(jù)的存儲,而且提高了模型的計(jì)算效率.文獻(xiàn)[28]也使用了同樣的技巧,以提升其提出的基于多視圖的結(jié)構(gòu)因子分解機(jī)模型.與改變底層數(shù)據(jù)組織、提升模型訓(xùn)練效率不同,文獻(xiàn)[63]認(rèn)為:在真實(shí)工業(yè)環(huán)境中,其所能獲得的特征維度之高直接造成了昂貴的存儲和計(jì)算代價(jià),這大大阻礙了快速推薦在計(jì)算資源有限設(shè)備(如移動設(shè)備)上的應(yīng)用.因此,作者提出離散化因子分解機(jī)(DFM),將原模型的實(shí)數(shù)型特征交互因子矩陣改為布爾型.相較之下,布爾型因子矩陣具有低存儲、可快速計(jì)算等優(yōu)點(diǎn),然而在原優(yōu)化方案下,取值范圍的縮小必然導(dǎo)致模型性能的下降.為此,作者提出一種特殊的離散參數(shù)優(yōu)化方案來學(xué)習(xí)布爾因子矩陣.實(shí)驗(yàn)結(jié)果表明:DFM在保證良好模型準(zhǔn)確率的同時(shí),能16倍加速于FM.
在分布式擴(kuò)展方面,文獻(xiàn)[64]基于Map-Reduce對標(biāo)準(zhǔn)FM模型進(jìn)行了實(shí)現(xiàn).文獻(xiàn)[65]首次提出使用基于異步隨機(jī)梯度下降的參數(shù)服務(wù)器框架來實(shí)現(xiàn)模型的分布式擴(kuò)展.為了進(jìn)一步提高模型計(jì)算效率和性能,作者對模型本身進(jìn)行了兩方面的優(yōu)化:首先,作者認(rèn)為,針對所有特征的隱因子向量使用相同維度是不必要的,浪費(fèi)了存儲和計(jì)算資源,針對數(shù)據(jù)集中出現(xiàn)頻率低的特征,可以適當(dāng)?shù)亟档蛯?yīng)的隱因子向量維度,就此,作者提出一種基于頻繁度的啟發(fā)式方法度量隱因子向量維度;第二,在正則化項(xiàng)部分,作者加入了稀疏正則項(xiàng)和基于特征出現(xiàn)頻率自適應(yīng)的正則項(xiàng)進(jìn)一步提高了模型效率和性能.與文獻(xiàn)[65]類似,文獻(xiàn)[66]在基于 Map-Reduce的參數(shù)服務(wù)器框架下對標(biāo)準(zhǔn) FM 模型進(jìn)行了優(yōu)化.所不同的是,優(yōu)化方法使用了一種分布式坐標(biāo)下降算法.為了減少服務(wù)器和worker端的通信代價(jià)并減少參數(shù)更新沖突,作者提出一種啟發(fā)式數(shù)據(jù)劃分策略.與主從分布式框架不同,文獻(xiàn)[67,68]提出一種環(huán)形的分布式框架.該框架摒棄了服務(wù)器端,使得集群中僅存在兩類節(jié)點(diǎn):調(diào)度節(jié)點(diǎn)和worker節(jié)點(diǎn).其中:調(diào)度節(jié)點(diǎn)負(fù)責(zé)響應(yīng)模型調(diào)度請求,存儲全局變量;worker節(jié)點(diǎn)則負(fù)責(zé)模型的更新和存儲.基本思想是:在數(shù)據(jù)分發(fā)時(shí),調(diào)用Spark接口將整個(gè)訓(xùn)練集按照既定數(shù)據(jù)分發(fā)策略平均分發(fā)至每一個(gè)worker節(jié)點(diǎn),然后進(jìn)行模型訓(xùn)練.訓(xùn)練時(shí),令每個(gè)worker節(jié)點(diǎn)各自獨(dú)立保存一部分模型參數(shù),使用各個(gè)節(jié)點(diǎn)的子數(shù)據(jù)集對保存的模型參數(shù)進(jìn)行更新,最終得到與客戶端節(jié)點(diǎn)相同數(shù)目的相互獨(dú)立的部分模型.然而由于 FM 數(shù)據(jù)組織形式的高維稀疏性,將數(shù)據(jù)分發(fā)至每個(gè)worker,數(shù)據(jù)稀疏性愈發(fā)嚴(yán)重.如果僅使用每個(gè)worker節(jié)點(diǎn)上的子數(shù)據(jù)集對自身的模型進(jìn)行更新,最終學(xué)習(xí)得到的模型準(zhǔn)確率無法保證.因此,作者設(shè)計(jì)了一套環(huán)形的模型調(diào)度機(jī)制.這種調(diào)度機(jī)制允許每個(gè)worker節(jié)點(diǎn)不但可以更新它本身存儲的模型,還可以更新不屬于它的其他worker節(jié)點(diǎn)的模型.即:節(jié)點(diǎn)在更新完模型后,將模型推送至它的原始保存節(jié)點(diǎn),然后通過調(diào)度函數(shù),節(jié)點(diǎn)選擇另一個(gè)新的從未更新過的模型,從所屬節(jié)點(diǎn)拉取該模型,繼續(xù)使用子數(shù)據(jù)集對新模型更新.在下一個(gè)模型選擇時(shí),優(yōu)先考慮同一機(jī)器上其他節(jié)點(diǎn)(每個(gè)核可表示一個(gè)節(jié)點(diǎn)).另外,為避免頻繁的模型調(diào)度,每個(gè)模型在一個(gè)節(jié)點(diǎn)上的學(xué)習(xí)基于多次迭代完成.模型訓(xùn)練結(jié)束后,在模型預(yù)測階段,利用已經(jīng)學(xué)習(xí)得到的多個(gè)模型對每個(gè)測試實(shí)例進(jìn)行獨(dú)立預(yù)測,對多個(gè)模型預(yù)測的結(jié)果采用多數(shù)投票的方法進(jìn)行合并.相比主從分布式框架,該環(huán)形分布式系統(tǒng)能夠有效地減少節(jié)點(diǎn)間的通信頻度和規(guī)模.與上述對標(biāo)準(zhǔn)FM模型的優(yōu)化不同,文獻(xiàn)[69]使用參數(shù)服務(wù)器框架實(shí)現(xiàn)了基于領(lǐng)域的因子分解機(jī)模型的分布式擴(kuò)展,分別與 All-Reduce、類 Map-Reduce等分布式實(shí)現(xiàn)進(jìn)行了對比.文獻(xiàn)[29]對提出的多視圖分解機(jī)模型進(jìn)行了基于Spark平臺的分布式實(shí)現(xiàn).
總結(jié)FM模型的3種不同分布式底層框架,給出不同框架的詳細(xì)比較如表1和圖2所示.按照架構(gòu)分類,基于 Map-Reduce/Spark和參數(shù)服務(wù)器的分布式屬于主從式架構(gòu),環(huán)形分布式則屬于端到端的架構(gòu).主從式架構(gòu)中必須包含一個(gè)或多個(gè)服務(wù)器節(jié)點(diǎn),最新的模型參數(shù)全部存儲于服務(wù)器節(jié)點(diǎn),參數(shù)的更新計(jì)算則由worker節(jié)點(diǎn)完成.然而,端到端的結(jié)構(gòu)中并不存在服務(wù)器節(jié)點(diǎn),因此模型參數(shù)的存儲和更新均由各個(gè) worker節(jié)點(diǎn)完成.相比Map-Reduce/Spark,參數(shù)服務(wù)器的服務(wù)器組機(jī)制能夠極大地分擔(dān)通信壓力.在通信方面,Map-Reduce/Spark和參數(shù)服務(wù)器框架在每次迭代時(shí),服務(wù)器與worker節(jié)點(diǎn)間都必須進(jìn)行參數(shù)傳遞,不同之處在于:Map-Reduce/Spark結(jié)構(gòu)需要廣播整個(gè)參數(shù)空間至每個(gè)worker節(jié)點(diǎn),參數(shù)服務(wù)器架構(gòu)則只需傳送與worker節(jié)點(diǎn)上數(shù)據(jù)對應(yīng)的參數(shù)即可.而環(huán)形分布式框架由于模型參數(shù)和數(shù)據(jù)在同一節(jié)點(diǎn),只有worker間進(jìn)行模型交換時(shí)才會進(jìn)行必要的參數(shù)傳遞.綜上所述,Map-Reduce/Spark通信代價(jià)最大,參數(shù)服務(wù)器框架次之,環(huán)形分布式最小.在參數(shù)更新同/異步方面,若由于數(shù)據(jù)劃分不均衡,同步更新中有些節(jié)點(diǎn)計(jì)算快,有些節(jié)點(diǎn)計(jì)算慢,由此產(chǎn)生的等待時(shí)延會大大降低訓(xùn)練效率.因此一般情況下,異步更新效率要高于同步更新.在模型學(xué)習(xí)完成時(shí),主從式框架最終只產(chǎn)生一個(gè)模型.然而在環(huán)形分布式架構(gòu)下,每個(gè)節(jié)點(diǎn)都會產(chǎn)生一個(gè)獨(dú)立的部分模型,在模型應(yīng)用階段,使用多個(gè)部分模型獨(dú)立預(yù)測每個(gè)實(shí)例,根據(jù)場景不同,利用投票表決或求平均的方式得到最終預(yù)測結(jié)果.
Table 1 Comparison of different distributed frameworks表1 不同分布式框架對比
Fig.2 Architecture of different distributed frameworks used in FM model圖2 FM模型不同分布式系統(tǒng)框架圖
本節(jié)將綜述適用于求解因子分解機(jī)模型的優(yōu)化算法.為便于描述,我們首先將約束優(yōu)化因子分解機(jī)模型的損失函數(shù)統(tǒng)一形式.假設(shè)訓(xùn)練集(x,y)∈D,我們使用y?(x|Θ)表示因子分解機(jī)模型表達(dá)式,則模型參數(shù)的優(yōu)化問題通常通過定義損失函數(shù)來使得訓(xùn)練集D的損失和最小來完成.即有:
為避免模型訓(xùn)練時(shí)產(chǎn)生過擬合,向上述優(yōu)化目標(biāo)中加入正則項(xiàng)函數(shù)R(Θ):
針對具體的任務(wù),可選擇不同的優(yōu)化算法.因子分解機(jī)模型在分類和回歸場景中都有較好的表現(xiàn),這里以回歸和二分類問題為例.
· 在回歸問題中,其損失函數(shù)通常定義如下:
· 在二分類問題中,其損失函數(shù)可如下定義:
其中,σ(x)為 logistic 函數(shù).
目前,針對FM模型的優(yōu)化有4種優(yōu)化學(xué)習(xí)算法,分別是隨機(jī)梯度下降、交替最小二乘法、基于自適應(yīng)正則項(xiàng)值的隨機(jī)梯度下降和MCMC.下面我們將對這4種算法分別進(jìn)行剖析.
隨機(jī)梯度下降算法是眾多機(jī)器學(xué)習(xí)算法中最常用的優(yōu)化算法,在不同損失函數(shù)下均能有較好的表現(xiàn)以及較低的計(jì)算復(fù)雜度、存儲復(fù)雜度等特性.它的具體思路是每次從訓(xùn)練集中隨機(jī)選擇一個(gè)樣本來更新模型參數(shù).
再次回顧標(biāo)準(zhǔn)FM模型如公式(2)可知,模型共包含3類參數(shù):w0,w,V.雖然FM模型在整體上表現(xiàn)出非凸性,但是在優(yōu)化每一個(gè)參數(shù)Θ={w0,w1,wi,…,V1,1,…,V1,f,…,Vi,f}時(shí),目標(biāo)函數(shù)可看做凸函數(shù).
在隨機(jī)梯度下降算法中,每一步每個(gè)參數(shù)的更新都可表示為
其中,η∈?+表示每次迭代的學(xué)習(xí)速率.
針對不同的任務(wù)場景下不同損失函數(shù)梯度的計(jì)算是不同的.在回歸問題中有:
對于二分類問題:
具體到每一個(gè)參數(shù),其相對模型表達(dá)式的偏導(dǎo)可表示為
算法1給出了FM模型在隨機(jī)梯度下降算法下的詳細(xì)優(yōu)化過程.
算法1.隨機(jī)梯度下降法.
輸入:訓(xùn)練集D,迭代次數(shù)T,隱因子維度k,正則化項(xiàng)參數(shù)λ,學(xué)習(xí)速率η,初始化參數(shù)σ;
輸出:FM模型參數(shù)Θ=w0,w,V.
通過分析隨機(jī)梯度下降可知,學(xué)習(xí)速率η的選取對目標(biāo)函數(shù)的收斂影響非常大.其中:如果η過大,則會導(dǎo)致算法不收斂;若η選擇過小,則會導(dǎo)致算法收斂過慢,嚴(yán)重影響模型訓(xùn)練效率.因此,如何設(shè)置適當(dāng)大小的η,是隨機(jī)梯度下降優(yōu)化算法成功的關(guān)鍵所在.
基于訓(xùn)練數(shù)據(jù)實(shí)例的迭代,隨機(jī)梯度下降算法沿著損失函數(shù)梯度下降的方向小步地行進(jìn)來完成損失函數(shù)的最小化.與隨機(jī)梯度下降優(yōu)化不同,交替最小二乘法采用最小化每一個(gè)模型參數(shù)的方法來完成優(yōu)化.具體地,在固定其他參數(shù)不變的情況下,每次更新一個(gè)參數(shù),使當(dāng)前參數(shù)沿著梯度方向?qū)ふ移渥顑?yōu)解,每個(gè)參數(shù)的最優(yōu)解可通過使其偏導(dǎo)為0得到.
為了方便取得最優(yōu)解,這里我們確定公式(11)中的正則化項(xiàng)采用L2范數(shù).然而在標(biāo)準(zhǔn)FM模型中,假設(shè)訓(xùn)練集D共n個(gè)數(shù)據(jù)實(shí)例,每個(gè)數(shù)據(jù)實(shí)例包含p維特征,那么在隱因子向量維度為k時(shí),共有1+p+kp個(gè)模型參數(shù).若為每一個(gè)模型參數(shù)都給定一個(gè)獨(dú)立的正則化項(xiàng)系數(shù),這無疑大大增加存儲和計(jì)算復(fù)雜度.通過對同一類模型參數(shù)采用相同正則項(xiàng)系數(shù)的方法,可大大簡化這一過程.因此,公式(11)可進(jìn)一步表達(dá)如公式(18):
假設(shè)當(dāng)前任務(wù)為回歸問題,通過對損失函數(shù)在模型參數(shù)θ下求偏導(dǎo)并令偏導(dǎo)為 0,得到θ最優(yōu)解.在標(biāo)準(zhǔn) FM模型中,其具有多線性特點(diǎn),即:對任意模型參數(shù)θ∈Θ,標(biāo)準(zhǔn) FM 模型可以寫成兩個(gè)函數(shù)gθ和hθ線性組合的方式,獨(dú)立于參數(shù)θ:
其中,hθ即當(dāng)前參數(shù)相對模型表達(dá)式的偏導(dǎo)數(shù):
基于上述表述,模型參數(shù)θ*的最優(yōu)解可表示如公式(21):
在固定其他參數(shù)的前提下,使用公式(21)對每個(gè)模型參數(shù)θ進(jìn)行更新,多次迭代直至收斂,即可完成對所有模型參數(shù)的優(yōu)化.通過分析參數(shù)更新公式(21)可知,其中最耗時(shí)計(jì)算部分主要集中在以下兩個(gè)式子:
從公式(22)可以看出,在每次更新一個(gè)參數(shù)時(shí),都需對y-y?(x)重新計(jì)算.而在更新參數(shù)V時(shí),hθ(x)也需要進(jìn)行復(fù)雜的重新計(jì)算完成.為了提高訓(xùn)練效率,可通過預(yù)計(jì)算的方式避免上述部分的重復(fù)計(jì)算.
令e和q分別表示如下:
則針對參數(shù)Vl,f的計(jì)算可簡化為
算法2給出了FM模型在交替最小二乘算法下的詳細(xì)優(yōu)化過程.
算法2.交替最小二乘法.
輸入:訓(xùn)練集D,迭代次數(shù)T,隱因子維度k,正則化項(xiàng)參數(shù)λ,學(xué)習(xí)速率η,初始化參數(shù)σ;
通過分析交替最小二乘可知:相比隨機(jī)梯度下降,一個(gè)顯著的優(yōu)勢在于交替最小二乘中不存在學(xué)習(xí)速率η的選取,但是正則項(xiàng)超參λ仍然會影響模型的優(yōu)化,好的正則項(xiàng)系數(shù)的搜索是十分耗時(shí)的.
在隨機(jī)梯度下降和交替最小二乘中,一般正則項(xiàng)超參λ的設(shè)置由用戶手動完成,若選擇不好,則導(dǎo)致模型的欠擬合或過擬合.嚴(yán)格來說,一個(gè)好的正則項(xiàng)超參λ需要經(jīng)過昂貴的搜索得到.為克服這一缺點(diǎn),基于自適應(yīng)正則項(xiàng)的隨機(jī)梯度下降算法被提出[23].該方法能夠避免最佳正則化項(xiàng)系數(shù)的網(wǎng)格搜索過程,具體地,通過對模型參數(shù)Θ與正則化項(xiàng)系數(shù)λ使用交替最小二乘固定其中一個(gè)、優(yōu)化另一個(gè)的方法來達(dá)到正則化項(xiàng)系數(shù)λ的自適應(yīng).
通常,理想正則化項(xiàng)系數(shù)λ*的選取使用驗(yàn)證集的方法.即,將訓(xùn)練集D分割成不相交的兩部分:D=DT∪DV.首先,使用給定的正則化常數(shù)λ,在DT上完成模型參數(shù)Θ的優(yōu)化;然后,在驗(yàn)證集DV評估學(xué)習(xí)到的模型參數(shù)Θ的質(zhì)量.由于訓(xùn)練集DT和驗(yàn)證集DV不相交,因此學(xué)習(xí)得到的模型參數(shù)Θ在驗(yàn)證集上的評估質(zhì)量能夠充分說明其在更大數(shù)據(jù)集上的有效性.
根據(jù)上述描述,為得到優(yōu)化的正則化項(xiàng)系數(shù)λ*,可構(gòu)建損失函數(shù)如公式(26):
在這個(gè)嵌套損失函數(shù)中,最外面的優(yōu)化目標(biāo)是通過在驗(yàn)證集上最小化損失來決定最佳正則化項(xiàng)系數(shù)λ*.但這個(gè)損失并不直接取決于正則化項(xiàng)系數(shù),而是依賴訓(xùn)練集上模型參數(shù)Θ的學(xué)習(xí)情況,即有公式(27):
對于這種嵌套的損失函數(shù),一個(gè)直接優(yōu)化上述目標(biāo)的方法就是使用交替最小二乘法,其中,參數(shù)分為兩類:一類是模型參數(shù)Θ,一類是正則化項(xiàng)系數(shù)λ.然而這種方法是有問題的——在固定模型參數(shù)時(shí),正則化項(xiàng)系數(shù)λ并不會顯式出現(xiàn)在公式(26)中.
為了解決上述問題,一個(gè)比較巧妙的方法是,Θt+1的值依賴于λ,因此可以利用模型參數(shù)更新公式對上述式子進(jìn)行改進(jìn):
基于上述改進(jìn),優(yōu)化目標(biāo)函數(shù)(26)轉(zhuǎn)化為公式(29):
正則化項(xiàng)系數(shù)λ在驗(yàn)證集DV上的更新見公式(30):
在清楚了模型參數(shù)更新及正則化項(xiàng)系數(shù)更新梯度后,算法3給出了FM模型在基.于自適應(yīng)正則化隨機(jī)梯度下降的詳細(xì)優(yōu)化過程.
算法3.基于自適應(yīng)正則化的隨機(jī)梯度下降算法.
輸入:訓(xùn)練集D,迭代次數(shù)T,隱因子維度k,學(xué)習(xí)速率η,初始化參數(shù)σ;
輸出:FM模型參數(shù)Θ=w0,w,V.
隨機(jī)梯度下降和交替最小二乘算法使用點(diǎn)估計(jì)?y的方法學(xué)習(xí)出模型參數(shù)Θ;而馬爾可夫蒙特卡洛法(MCMC)則是基于貝葉斯推論,通過抽樣的方法來生成?y的分布.與隨機(jī)梯度下降和交替最小二乘法相比,MCMC允許將超參放入模型中一起進(jìn)行優(yōu)化,避免了費(fèi)時(shí)的最優(yōu)超參搜索過程.而這種將超參加入模型優(yōu)化的方法需要我們將標(biāo)準(zhǔn)FM的概率圖模型(圖3(a)所示)擴(kuò)展為基于超參超先驗(yàn)的FM概率圖模型,如圖3(b)所示.
Fig.3 Comparison of the probabilistic interpretation of standard factorization machines (left) to Bayesian factorization machines (right) extended by hyperpriors圖3 標(biāo)準(zhǔn)FM概率模型與基于超先驗(yàn)的貝葉斯FM概率模型對比
具體地,基于吉布斯采樣的MCMC方法下,FM模型中每個(gè)參數(shù)的條件后驗(yàn)分布可表示如下:
觀察 MCMC下每個(gè)參數(shù)的條件后驗(yàn)分布,可以發(fā)現(xiàn),其與交替最小二乘法優(yōu)化公式十分的相似.即:當(dāng)α=1且μ=0 時(shí),有.兩種方法的不同之處在于:MCMC從參數(shù)的后驗(yàn)分布進(jìn)行采樣,而交替最小二乘法則使用其期望值.
在FM模型的MCMC推論中,假設(shè)先驗(yàn)參數(shù)μθ服從標(biāo)準(zhǔn)正太分布,而λθ和α服從Gamma分布,可得:
其中,Θ0:={μ0,γ0,αλ,βλ,α0,β0}用來描述超先驗(yàn)分布.
基于上述表示,超參的值可以通過從其相應(yīng)的條件后驗(yàn)分布中采樣自動獲得:
其中,
算法4給出了FM模型在MCMC下解決回歸i的詳細(xì)優(yōu)化過程.若想將其擴(kuò)展到二分類任務(wù)的解決,則需要將正態(tài)分布的映射到伯努利分布.這樣,MCMC算法就能預(yù)測一個(gè)實(shí)例屬于正類或者負(fù)類的概率.
算法4.馬爾可夫蒙特卡洛算法.
輸入:訓(xùn)練集Dtr,測試集Dte,迭代次數(shù)T,隱因子維度k,初始化參數(shù)σ;
輸出:測試集Dte上預(yù)測結(jié)果.
通過對MCMC方法分析可知MCMC的正則項(xiàng)超參ΘH是抽樣選取的,為此引進(jìn)了新的超先驗(yàn)參數(shù)Θ0.但是,超先驗(yàn)參數(shù)的數(shù)目要小于正則化項(xiàng)超參的數(shù)量.另外,更重要的一點(diǎn)在于:相比隨機(jī)梯度下降和交替最小二乘算法,MCMC對于超先驗(yàn)參數(shù)Θ0的選擇不敏感.即使該參數(shù)選擇不好,FM模型也能得到較好的結(jié)果.
本節(jié)綜述了FM模型常用的4種優(yōu)化學(xué)習(xí)方法,分別是隨機(jī)梯度下降法、交替最小二乘法、基于自適應(yīng)正則的隨機(jī)梯度下降法和馬爾可夫蒙特卡洛法.下面我們從時(shí)間復(fù)雜度、空間復(fù)雜度、適用任務(wù)場景、超參數(shù)類型這4個(gè)方面對上述方法總結(jié)說明,見表2.其中,Nz(X)表示訓(xùn)練集中所有不為0特征的總個(gè)數(shù).由于每次迭代時(shí)參數(shù)的更新計(jì)算通過遍歷一次訓(xùn)練集即可完成,因此 4種優(yōu)化方法在時(shí)間復(fù)雜度上是一致的.然而在存儲復(fù)雜度上,各個(gè)優(yōu)化算法所需的存儲空間是不同的.兩類隨機(jī)梯度下降算法下的 FM 優(yōu)化只需要存儲模型中每一個(gè)參數(shù)的迭代更新值,故其存儲復(fù)雜度為常數(shù)級.與上述梯度更新相比,交替最小二乘法和馬爾可夫蒙特卡洛方法除去 1+p(k+1)大小內(nèi)存用于參數(shù)的存儲外,還需要O(nk)的內(nèi)存去存儲預(yù)計(jì)算結(jié)果.在適用任務(wù)場景中,使用不同損失函數(shù)或分布的 4種優(yōu)化方法都能勝任常見的回歸或分類問題.在超參類型上,隨機(jī)梯度下降需用戶自定義的超參最多,包括學(xué)習(xí)速率、分布初始化參數(shù)和正則化項(xiàng)系數(shù).基于自適應(yīng)正則化的隨機(jī)梯度下降和馬爾可夫蒙特卡洛法將正則化項(xiàng)系數(shù)作為參數(shù)糅合到模型中進(jìn)行共同學(xué)習(xí),避免了最優(yōu)正則化項(xiàng)系數(shù)的搜索過程,模型學(xué)習(xí)過程更加健壯.而除了隨機(jī)梯度下降,其他 3種優(yōu)化方法都不存在學(xué)習(xí)速率的指定,也使得模型的優(yōu)化更加穩(wěn)定.
Table 2 Comparison of different optimization methods表2 不同優(yōu)化方法對比
在第 2節(jié)給出了因子分解機(jī)模型在準(zhǔn)確性提升和性能加速兩個(gè)方面取得的研究進(jìn)展,然而仍存在以下幾點(diǎn)不足.
(1) 模型準(zhǔn)確性方面
現(xiàn)有對FM模型準(zhǔn)確性提升的工作基本從低階到高階交互、神經(jīng)網(wǎng)絡(luò)與FM的結(jié)合、好的交互特征選擇、概率模型推導(dǎo)、凸優(yōu)化模型、在線學(xué)習(xí)、層次信息引入以及具體場景分析等 8個(gè)方面展開.在高階交互方面,基于更高階特征交互的FM模型固然能夠進(jìn)一步挖掘特征之間的相互關(guān)聯(lián),從而提升模型準(zhǔn)確率,然而FM的高階交互會導(dǎo)致模型可解釋性進(jìn)一步降低,并可能進(jìn)一步放大噪音特征對模型準(zhǔn)確性的影響.在神經(jīng)網(wǎng)絡(luò)與 FM的結(jié)合方向,現(xiàn)有結(jié)合方案可分為兩類:① 將標(biāo)準(zhǔn)FM模型作為神經(jīng)網(wǎng)絡(luò)的輸入,以便于后續(xù)利用神經(jīng)網(wǎng)絡(luò)完成特征的更高階非線性交互;② 同時(shí)使用標(biāo)準(zhǔn)FM模型和神經(jīng)網(wǎng)絡(luò)分別完成特征的低階和高階交互建模,未來可考慮與其他更多類型神經(jīng)網(wǎng)絡(luò)的結(jié)合以適應(yīng)不同的應(yīng)用場景.在交互特征選擇領(lǐng)域,已有的工作多是基于標(biāo)準(zhǔn)FM模型展開的,存在可擴(kuò)展性較低以及模型參數(shù)規(guī)模并未因?yàn)樘卣鬟x擇而減小等問題.針對FM模型的在線學(xué)習(xí),現(xiàn)有工作基于凸 FM模型展開,分別利用流行的凸優(yōu)化學(xué)習(xí)算法在線條件梯度和 FTRL完成模型的更新.然而這種單機(jī)在線學(xué)習(xí)算法已無法適用于大規(guī)模參數(shù)和數(shù)據(jù)集的場景.最后,在層次信息引入上,研究者從樹狀層次特征引入和不同類別特征交互使用不同隱因子向量/權(quán)重兩個(gè)角度展開來提高模型準(zhǔn)確性,但是依然存在拘泥于特定場景、模型規(guī)模指數(shù)級增加及無法適用于高階特征交互建模等問題.
(2) 模型效率方面
現(xiàn)有針對 FM 模型的分布式擴(kuò)展工作已有多種方案,然而挑戰(zhàn)依然存在.按照分布式框架的不同,可分為Map-Redce/Spark、參數(shù)服務(wù)器框架和環(huán)形分布式框架.基于Map-Reduce/Spark平臺的擴(kuò)展既有高階FM模型,也有標(biāo)準(zhǔn) FM 算法,最大的短板在于全局模型需存放于一個(gè)服務(wù)器節(jié)點(diǎn)且模型傳輸時(shí)通信開銷巨大,導(dǎo)致其在模型規(guī)模龐大的真實(shí)生產(chǎn)環(huán)境中無法應(yīng)用.基于參數(shù)服務(wù)器框架的擴(kuò)展目前僅限于標(biāo)準(zhǔn) FM 模型,相比 Map-Reduce/Spark架構(gòu),通信開銷更少,模型存儲也不再限制于一個(gè)服務(wù)器節(jié)點(diǎn).然而由于模型的高維性,多次迭代下通信開銷依然巨大.在此背景下,基于環(huán)形分布式的二階FM模型被提出,優(yōu)勢在于通信開銷和頻次進(jìn)一步減小,但稍顯劣勢之處在于單個(gè)節(jié)點(diǎn)上存儲的模型規(guī)模有所增加.從上述描述可以看出:標(biāo)準(zhǔn) FM 模型的分布式擴(kuò)展已趨于成熟,然而基于FM的高階交互、特征選擇、凸模型以及在線學(xué)習(xí)等多種模型變種的分布式擴(kuò)展依然存在瓶頸,有待進(jìn)一步完善.
針對上述因子分解機(jī)模型研究中依然存在的問題,對其未來研究方向進(jìn)行探討.
(1) 模型準(zhǔn)確性研究
在高階模型可解釋性方面:一方面,可借助特征選擇算法降低高階建模時(shí)所需的特征數(shù)目,從而降低交互階數(shù),并剔除噪音、冗余和不相關(guān)特征;另一方面,對所有特征的相關(guān)性進(jìn)行分析,使用多個(gè)高階FM模對每組特征完成交互建模,最終根據(jù)任務(wù)場景,利用加權(quán)平均或投票表決的方式進(jìn)行預(yù)測.
在神經(jīng)網(wǎng)絡(luò)與FM模型的結(jié)合方面,現(xiàn)有研究神經(jīng)網(wǎng)絡(luò)部分都是基于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)或向傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中加入注意力機(jī)制,后續(xù)研究可從神經(jīng)網(wǎng)絡(luò)部分入手,考慮 FM 模型與其他高級神經(jīng)網(wǎng)絡(luò)類型如長短期記憶網(wǎng)絡(luò)LSTM的結(jié)合,可用于在流式數(shù)據(jù)中挖掘用戶的長期和短期興趣,提升推薦結(jié)果質(zhì)量.
在交互特征選擇方面,研究目標(biāo)大致可分為兩個(gè)方向:① 考慮擴(kuò)展基于標(biāo)準(zhǔn) FM 的交互特征選擇至高階FM 模型,與現(xiàn)有高階交互研究相結(jié)合,不僅可以達(dá)到降低模型參數(shù)規(guī)模的目標(biāo),而且提高了模型準(zhǔn)確性和可解釋性;② 考慮采用現(xiàn)有流行方法高效的選擇好的交互特征,如可利用神經(jīng)網(wǎng)絡(luò)基于原始數(shù)據(jù)完成特征的表示學(xué)習(xí),利用強(qiáng)化學(xué)習(xí)思想選擇.
在FM模型的在線學(xué)習(xí)方面,有兩個(gè)基本問題需要考慮:其一,假設(shè)新進(jìn)數(shù)據(jù)特征維度不變,即不存在新特征的加入,這種情況下,如何利用新進(jìn)數(shù)據(jù)增量更新已有模型;其二,假設(shè)新進(jìn)數(shù)據(jù)中存在新用戶、新物品和新的上下文特征,那么如何基于已有模型較小調(diào)整甚至不改變的情況下學(xué)習(xí)得到新的模型.現(xiàn)有工作都是以特征維度不變?yōu)榍疤嵴归_的,后續(xù)的研究方向可從3個(gè)方向入手:① 利用其他已有的在線學(xué)習(xí)方法完成FM模型及其變種的增量更新;② 擴(kuò)展單機(jī)環(huán)境下FM模型的在線學(xué)習(xí)方法至分布式環(huán)境下,以適應(yīng)真實(shí)生產(chǎn)環(huán)境下的大規(guī)模參數(shù)和數(shù)據(jù)集;③ 考慮新的特征加入條件下,利用矩陣運(yùn)算達(dá)到基于已有模型的較小調(diào)整甚至不改變情況下更大規(guī)模新的模型的學(xué)習(xí).
在層次信息引入方面,現(xiàn)有工作主要存在特定場景特殊分析、模型規(guī)模指數(shù)級增長以及不適用于高階特征交互建模等短板.因此,未來可考慮提出一種通用的層次特征建模方法,使得 FM 模型能夠利用這種層次的特征有效提高模型的表達(dá)能力,如結(jié)合神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制,使得特征間的高階交互建模得以實(shí)現(xiàn),并利用注意力機(jī)制學(xué)習(xí)得到不同類別特征交互的強(qiáng)度.
(2) 模型效率研究
現(xiàn)有針對 FM 模型效率提升主要分為基于數(shù)據(jù)/參數(shù)重組和基于分布式兩種.其中,由于分布式優(yōu)化在大數(shù)據(jù)環(huán)境下的高效性使其成為主流研究方向,得到較多關(guān)注.然而多數(shù)工作都是基于標(biāo)準(zhǔn) FM 模型展開的,在變種FM模型,如高階交互、特征選擇等方面僅僅做了簡單的分布式實(shí)現(xiàn).在FM模型的增量更新方面,目前仍無相關(guān)研究.因此,如何針對上述兩個(gè)方向進(jìn)行分布式擴(kuò)展是非常值得關(guān)注的.
作為一種通用的分解模型,因子分解機(jī)模型能夠取得較好的預(yù)測和推薦結(jié)果,近年來在機(jī)器學(xué)習(xí)領(lǐng)域得到了廣泛的應(yīng)用和關(guān)注,取得了諸多研究成果.本文首先從分解模型的演化角度說明了傳統(tǒng)的矩陣分解模型如何一步步進(jìn)化到基于特定上下文的分解方法,進(jìn)而得到本文綜述重點(diǎn)——通用因子分解機(jī)模型,并通過因子分解機(jī)模型與其他流行的特定分解模型的相互關(guān)聯(lián)性說明了因子分解機(jī)模型強(qiáng)大的泛化性;然后,從因子分解機(jī)模型的準(zhǔn)確性和性能兩方面出發(fā),說明標(biāo)準(zhǔn)因子分解機(jī)模型存在的不足,并給出近年來研究者針對這兩個(gè)方面所存在問題的優(yōu)化方案;接著,從獨(dú)立于問題模型的角度綜述了FM模型常用的4種優(yōu)化方法,并指出各個(gè)優(yōu)化算法的優(yōu)勢和不足;最后指出了現(xiàn)有因子分解模型研究中存在的不足和未來可能的研究方向.