燕彩蓉,周靈杰,張青龍,李曉林
1(東華大學 計算機科學與技術學院,上海 201620)
2(計算機軟件新技術國家重點實驗室(南京大學),江蘇 南京 210023)
3(Department of Electrical and Computer Engineering, University of Florida, Florida 32611, USA)
云計算、移動互聯網和社交媒體等技術的迅猛發展,使得網絡空間中所蘊含的信息量呈指數級增長.數據量的快速增長造成了嚴重的信息過載,如何有效地過濾信息,找到最有價值的部分,成為企業乃至國家發展的重要戰略目標.作為當前解決信息過載問題及實現個性化信息服務的最有效方法[1],預測/推薦被應用于很多領域,包括在線電子商務(如 Netflix、Amazon、eBay、阿里巴巴和豆瓣[2,3])、信息檢索(如 iGoogle、MyYahoo、GroupLens和百度[4,5])、移動應用(如Google App[6,7])等.在計算廣告領域,常用的過濾手段是點擊率(click-through rate,簡稱CTR)和轉化率(conversion rate,簡稱CVR)預測.準確估計CTR和CVR對提高流量的價值、增加廣告收入有重要的指導作用.面對多源、異構、動態的大數據,預測/推薦模型算法在準確性、擴展性和實時性方面面臨挑戰.
傳統的預測/推薦方法主要通過邏輯回歸模型和多項式回歸模型進行分類、回歸或排序.作為一種有效的信息過濾手段,隱語義模型(latent factor model,簡稱 LFM)在智能信息系統和機器學習領域成為研究熱點,并在預測/推薦方面性能表現優異.其中:研究最廣泛的矩陣分解(matrix factorization,簡稱 MF)模型主要用于預測兩個分類變量(categorical variable)之間的關系[8];張量分解(tensor factorization,簡稱TF)模型是MF的擴展,可用于預測多分類變量之間的關系[9];SVD++在 MF的基礎上考慮了偏置因素(如物品流行度和用戶個人偏好)對結果的影響,Time SVD++進一步添加了時間因子,使預測結果更加可靠[10,11].
因子分解機(factorization machine,簡稱FM)模型由Rendle在2010年首次提出[12],它綜合了矩陣分解和支持向量機(support vector machine,簡稱 SVM)模型的優勢,利用因子分解對變量之間的交互進行建模,尤其適合于數據稀疏的場景.其輸入是實數型特征,學習方法與線性回歸模型和 SVM 模型類似,內部使用了變量之間的分解交互,在數據稀疏的情況(如 CTR預測)下展現出非常高的預測質量.FM 模型被提出后,迅速成為學術界和工業界研究和應用的熱點[13,14],尤其是近年來深度學習方法和應用的普及,進一步促進了FM模型的發展.
本文首先對FM模型在寬度擴展方面的相關方法和技術進行了總結,包括特征的低階和高階交互所適用的場景、特征與特征所屬場的交互方法、特征及其分層關系之間的交互方法以及基于特征工程(feature engineering)進行特征提取、合并、智能選擇和提升的相關策略與關鍵技術;然后,從集成學習角度比較了 FM模型與其他模型的結合方式和特點,早期主要是與傳統模型進行集成,深度學習提出后,FM 與深度學習模型的集成成為研究熱點,并在 FM 模型的深度擴展方面展開了深入的研究;接著,從模型學習和實現角度比較和總結了模型的學習優化方法和分布式并行框架的實現策略.通過綜述FM的最新研究進展,對FM未來的可能研究進行展望,一方面促進 FM 在信息系統領域應用的普及,另一方面也為機器學習領域的模型研究提供新的思路.所引用的參考文獻來自數據挖掘、信息檢索、機器學習等領域的重要期刊和國際頂級會議,包括 SIGMOD,SIGKDD,SIGIR,RecSys,VLDB,WWW,DASFAA,ICML,IJCAI,NIPS等,文獻發表時間為2010年FM模型提出到本文截稿日期.
本文第 1節對預測/推薦問題以及獨熱編碼方式和特征表示進行描述,便于后續模型、屬性以及特征之間關系的理解.第2節根據國內外相關文獻闡述FM模型的結構,總結FM模型在高階交互、場交互、分層交互與傳統模型的集成以及特征工程方面的擴展研究和應用.第3節綜述FM模型與深度學習模型的集成方式及其優缺點分析.第4節從FM模型的不同學習優化方法和實現框架進行總結.第5節對FM模型的未來研究進行展望.第6節總結全文.
預測和推薦是兩類相關的任務,兩者之間的關系體現為:預測的結果可為推薦提供服務,推薦需要以預測為基礎.預測任務通常包括3種:分類、回歸和排序[1].
預測是指通過對訓練集{(x1,y1),(x2,y2),…,(xm,ym)}進行學習,建立從輸入空間X到輸出空間Y的映射f:X→Y.若輸出空間Y離散,那么這類學習任務被稱為分類(classification),若分類中只涉及兩個類別,即Y中只包含兩個值,則稱為二分類(binary classification),涉及多個類別則稱為多分類(multi-class classification).若輸出空間Y連續,那么這類任務稱為回歸(regression).對于二分類任務,Y={-1,+1}或{0,1};對于多分類任務,Y={0,1,…,n},n為類別數;對于回歸任務,Y通常為實數集[k1,k2],其中,k1為回歸下限,k2為回歸上限,一般采用相關函數(如clip)將回歸控制在一定范圍內.預測的一個典型應用就是 CTR預測,其結果只有兩個,點擊或者不點擊,可以將其轉化為二分類問題.
推薦是指通過分析和挖掘用戶(user)與物品(item)之間的二元關系及相關屬性,幫助用戶從海量數據中發現其感興趣的有形或無形的物品(如信息、服務、商品等),生成個性化推薦列表[15,16].傳統上推薦模型所使用的屬性主要包括用戶和物品的固有特征、顯式的用戶評分以及隱式的用戶反饋.隱式反饋普遍存在于互聯網中,如用戶在觀看電影、收聽音樂、瀏覽或購買商品等活動時留下的行為痕跡.近幾年來,利用社交網絡和移動位置信息進行協同過濾推薦成為研究熱點[17,18],但由于互聯網中用戶反饋多以隱式反饋的形式存在,且用戶平均瀏覽商品數一般遠小于商品總數,導致設計矩陣(用戶物品矩陣)通常是稀疏的.稀疏的數據場景為預測/推薦的研究帶來新的挑戰.推薦系統和CTR預測都可以看做是分類問題在真實場景中的應用.
預測系統通常由 3部分組成:特征提取、模型建立與訓練以及在線服務,所有工作都構建在特征之上.考慮到推薦任務中特征并不總是連續的,多數情況是類別值,所以這些特征數字化將更適合于模型訓練.為了應對一些無序的類別特征,可選用獨熱編碼(one-hot encoding)方式對它們進行編碼.獨熱編碼又稱一位有效編碼,是廣泛使用的一種特征表示方法.具體操作為:使用N位狀態寄存器對N個狀態進行編碼,每個狀態都有其獨立的寄存器位,并且在任意時候,只有一位有效.獨熱編碼解決了分類器不易處理屬性數據的問題,在一定程度上擴充了特征.獨熱編碼可將分類特征轉化為數值型特征,從而方便進行模型預測.假設某電子商務網站中耳機的品牌包括Panasonic,Sennheiser,Sony,Sound Intone,Bose,Beats,Audio-Technica和Ausdom共8種,采用長度為8的向量對耳機品牌進行獨熱編碼,特征 Panasonic可表示為(1,0,0,0,0,0,0,0),特征 Sennheiser可以表示為(0,1,0,0,0,0,0,0).圖1所示描述的是一個推薦問題(第1組表示用戶特征,第2組表示物品特征,第3組表示同一用戶評分過的其他物品,第4組表示時間特征,第5組表示本用戶最后評分的物品),特征用x表示,每個xi表示一個特征向量,對應的目標值為yi,圖中相關數據來源于Rendle等人的論文[12].

Fig.1 An example of feature vector圖1 特征向量示例
FM模型源于多項式回歸模型和因子分解模型,通過特征工程,FM模型也可以轉化為這些模型.本節首先介紹邏輯回歸模型、多項式回歸模型以及 Poly2模型之間的關系,分析其特點和不足,闡述因子分解模型的優勢,并詳細說明因子分解的多項式回歸模型在參數學習中的優勢,引出本文研究的核心 FM 模型.然后,從特征的高階交互、場交互、層次交互、與傳統模型的集成學習以及特征工程角度討論FM模型的擴展,并對FM模型的應用場景進行匯總.
邏輯回歸(logistic regression,簡稱 LR)模型是應用最廣泛的線性模型[19],其最常見的應用場景就是預測概率,即根據輸入預測一個值.它可以作為一種分類方法,主要用于二分類問題,模型描述為

其中,xi是輸入特征向量的第i個分量,向量長度為n;wi是xi對應的權值.
LR模型的學習與優化通常使用最大似然和梯度下降方法來求解模型的參數.LR模型的優勢是簡單、直觀,模型求出的系數易于理解,便于解釋,不屬于黑盒模型.不足之處是模型的輸入特征通常依賴于人工方式進行設計,而且 LR本身是線性模型,無法對特征間非線性關系進行捕捉和自動建模,從而必須依賴于人工方式進行特征組合(feature combination)來實現 2階或高階交互特征的構造.實踐中,可利用因子分解機得到的特征交叉系數來選擇輸入LR模型的交叉特征(cross feature)組合,從而避免了繁雜的特征選擇工作.
為了充分地利用特征之間的非線性關系,讓模型能夠學習到 2階或高階交互特征,可以采用多項式回歸模型.3階多項式回歸模型描述為

多項式回歸模型的優勢是能夠學習特征之間的非線性交互關系,不足是采用這種方式構造的特征數量與特征值個數的乘積相關.假如某類特征有1萬個可能的取值,另一類特征也有1萬個可能的取值,那么理論上這兩個特征組合就會產生1億個可能的組合特征項.若加入3階特征組合,則會引入更高的特征維度,導致特征爆炸問題,進而無法有效地學習高階特征.Poly2模型的提出充分考慮了多項式回歸模型的可行性和實用性,此模型只對2階特征組合進行建模[20].模型描述為

因子分解的多項式回歸(factorized polynomial regression)利用每個特征的隱向量進行組合,不需要為每個特征交互產生不同的權值.模型描述為

該模型的優勢是:可以根據隱向量長度調節參數的數量,通常,隱向量長度遠小于特征總數,所以參數大幅減少,學習效率得到提高.但其不足之處在于:公式中存在特征的平方項(2階)和立方項(3階),不利于參數的學習.
FM 旨在解決稀疏數據情況下,特征組合的參數學習不充分的問題.度為 2的 FM 模型常被稱為 basicFM,模型表示為[12]

其中,n代表樣本的特征數量,表示大小為k的兩個向量的點積(inner product),即〈vi,vj〉=.通過訓練,為每個特征O(kn)學習出唯一對應的隱向量v,〈v,v〉作為特征交叉項xx的權重參數.iijij從模型公式中直觀地看,FM模型的復雜度為O(kn2),但是通過下面的等價轉換,可以將 FM 的二次項化簡,其復雜度可優化到O(kn),即:

通過隨機梯度下降(stochastic gradient descent,簡稱SGD)方法對FM模型進行訓練,模型中各個參數的梯度可以表示如下:

根據公式(6)和公式(7),FM 的訓練和預測的復雜度均為O(kn),即 FM 能夠在線性時間內進行訓練和預測,非常高效,這為 FM 模型的廣泛應用打下堅實的理論基礎.不過,利用此模型的關鍵還在于模型輸入特征向量的構造.
FM模型被提出之后,迅速成為研究熱點.對FM模型的擴展研究工作主要從3個方面展開:輸入、處理和輸出,如圖2所示.模型輸入擴展主要通過特征工程實現;模型處理擴展主要體現為特征交互,分為獨立的特征交互和具有關聯關系的特征交互,后者進一步把關聯關系擴展為場關系和層次關系;輸出方面則通過模型集成來實現.以下將重點闡述這些研究工作及其帶來的影響.

Fig.2 A research graph of wide extension of FM model圖2 FM模型的寬度擴展研究圖譜
basicFM中主要描述了2階特征交互,能體現兩個特征之間的相互影響.由于2階特征交互關系的捕捉會極大地提高模型預測和學習的復雜度,所以在實際應用中通常僅使用2階.而且FM通過特征工程可以轉化為矩陣分解模型、張量分解模型以及SVD++模型[21]等.2階的FM相比于Poly2模型,優勢表現為以下兩點.
1) FM 模型所需要的參數個數遠少于 Poly2模型.FM 模型為每個特征構建一個隱向量,總參數個數為O(kn),其中,k為隱式向量維度,n為特征個數,通常k<<n;Poly2模型為每個2階特征組合設定一個參數來表示這個2階特征組合的權重系數,總參數個數為O(n2);
2) 相比于Poly2模型,FM模型能夠更有效地進行參數學習.當一個2階組合特征沒有出現在訓練集中時,Poly2模型則無法學習該特征組合的權重,但是FM卻依然可以學習.因為該特征組合的權重是這2個特征的隱向量的點積,而這2個特征的隱向量可以分別從別的特征組合中學習得到.
總體來說,FM是一種非常有效的能對2階特征組合進行自動學習的模型.
盡管basicFM已經表現出較高的性能,但是更高階的特征組合仍然能夠引起研究人員的興趣.Knoll等人提出了FM的高階擴展模型HOFM(high-order factorization machine)[22],并且推導出了3階FM模型的線性表示形式,可以用線性復雜度訓練此3階模型.為了把基本的2階FM模型擴展到3階,定義了一個矩陣U∈?p×m,w0∈?,W∈?n,V∈?n×k.3階的FM模型可以表示為[23]

引入3階交互后,也不會丟失線性復雜性,因為3階交互可以推導如下:

通過SGD方法對FM進行訓練,3階FM模型各個參數的梯度表示如下:

Knoll實現的3階的FM方法與Blondel等人提出的類似[23].Prillo等人觀察到:給定n+2(n>=1)個向量,一定有兩個向量的內積是非負數.所以對于一個三角形關系,兩條負數邊對應的一定是正數邊,這與實際應用會有不符.所以對于某些數據集,FM不能學習到2階交互參數,這是FM的局限性,所以提出了1.5-way FMs[24].
并非越高階的特征交互一定能帶來更好的預測效果,Knoll等人對高階的FM和馬爾可夫隨機游走(Markov random walk,簡稱MRW)方法進行比較發現:在只有用戶對物品的評分數據時,MRW較FM表現得更好;但如果再增加了標簽、物品種類等數據特征時,FM會取得更好的效果[25].Yurochkin等人提出了自適應的隨機多階交互模型MiFM(multi-way interactions of arbitrary order)[26],這個交互的選擇是由一個基于隨機超圖的先驗分布來決定.
考慮到FM模型中屬性交互的必要性和有效性,得出如下結論:當屬性數量較少時,如只有評分數據,那么屬性的 2階交互無法體現其優越性,FM 模型適合處理多屬性,當多屬性之間具有非線性的約束關系時,預測效果更好;對于通常的應用,2階FM模型即可,如果在具體應用中發現個別屬性之間存在1.5-way FMs所描述的問題,那么要刪除這些屬性交互,如果應用中多屬性之間有強關聯性,而且不考慮復雜度,則可以使用3階的FM模型.更高階的屬性交互在實際應用中將不實用,而且隨著深度學習與傳統模型的結合,也沒有必要在 FM 模型中進行更高階的屬性交互.
雖然特征之間的非線性交互關系能夠為預測提供更多的信息,但是并非所有的特征交互都有效,采用獨熱編碼后,特征之間的層次結構關系被全部摒棄,這將使得參數評估更復雜,預測準確率不夠理想.相關研究主要從兩個方面讓模型能夠體現特征之間的關系:基于場的交互和基于層次關系的交互.
(1) 場交互擴展.
場感知分解機(field-aware factorization machine,簡稱FFM)模型是在FM的基礎上,將相同性質的特征歸于同一個場[13].除了特征的一維線性組合,很多數據集的特性表明,對不同場之間的特征交互的捕捉也非常重要.FM 模型的提出,是為了解決特征的交互問題.在多場的類別數據(multi-field categorical data)中,每個場中的特征都會與其余各場中的特征有著不同程度的交互,FFM 模型為每個與其他各場交互的特征都學習一個唯一對應的隱向量,從而充分地利用到數據中的場信息.在 FFM 模型中,每一個特征xi,針對其他特征的每一個場fj,都會學習產生一個隱向量wi,fj.因此,隱向量不僅與特征相關,也與場相關.假設樣本的n個特征屬于f個場,那么FFM模型的二次項則有n·f個隱向量.根據FFM模型的場敏感特性,導出其模型方程[13]:

其中,fj是第j個特征所屬的場.如果隱向量的長度為k,那么FFM模型的一次項參數有n個,二次項參數有n·f·k個,模型預測復雜度是O(kn2+kn).參數個數的設置,對預測精度會有較大影響.FFM模型還支持并行化處理,所以計算速度可以進一步提高.而且FFM模型以場為基礎,在稀疏數據的處理上,比LR,Poly2,FM效果要好很多.
雖然FFM模型能很好地利用數據中的場信息,然而FFM模型中的參數數量與特征數乘以場數量的積成正比,這使得實際應用場景下,參數數量會輕易地達到數以千萬計甚至更多.這在現實世界的生產系統中是不可接受的.場加權的分解機FwFM(field weight factorization machine)可以解決此問題[27].特征i和特征j的交互表示為xixj〈vi,vj〉rF(i),F(j),其中,xi和xj分別為特征i和特征j對應的嵌入向量,F(i)和F(j)分別為特征i和j所屬的場,rF(i),F(j)為場F(i)和場F(j)之間的交互強度,FwFM模型定義為

FwFM模型相當于 FFM模型的擴展形式,通過增加權重rF(i),F(j)(Fk≠F(i)),來顯示地捕捉不同場之間的交互程度.FFM模型通過特征i與場j中的特征交互時,學習出隱向量vi,F(j),隱式地捕捉不同場之間的交互程度.n和m分別是特征數與場數量,k為隱向量的維度,忽略偏置項w0,那么FM的參數數量為n+n·k,FFM模型的參數數量為n+n·(m-1)·k,FwFM模型的參數個數為n+n·k+m·(m-1)/2.一般地,m<<n,所以FwFM模型相比FFM模型參數數量少得多.FwFM模型以遠低于FFM模型的參數數量,取得了可以與FFM模型相競爭的預測精度,從而能更好地應用于實際的生產系統中.
(2) 層次數據交互擴展.
真實應用場景中,上下文(context)特征之間存在著層次關系.但是FM模型在預測過程中很少去挖掘上下文特征的層級特性,因此其預測效果會受到影響.以下從3方面對FM模型進行層次數據交互擴展.
其一,針對basicFM沒有充分利用用戶和物品中有價值的分類信息(valuable category information),Zhao等人對用戶、物品及其分類關系進行了探索[28]:首先,在考慮用戶對某些物品分類的偏好時,提出了 UW-FM(user weight factorization machine)模型.然后,在考慮物品對用戶分類的影響時,提出了 IW-FM(item weight factorization machine)模型.最后,合并這兩個模型,提出了 CW-FM(category weight factorization machine)模型.CW-FM使用層級的分類信息(hierarchical category information)來避免帶有附屬關系(subordinate relations)的特征進行交互.由于物品與其所屬的類別特征、用戶與其所屬的類別特征之間存在附屬關系,即每個物品或用戶必定屬于某個類別,所以模型會確保用戶與物品之間的交互,以及用戶與物品所屬的類別特征進行交互時,能夠相互獨立,互不影響,從而更好地利用數據中帶有的層級的種類信息來提升模型精度.
Wang等人提出兩階段的建模方法HFM(hierarchical factorization machine)[29]:第1階段,首先在每個樹結構的各節點上局部訓練獲取 FM 模型的參數,并返回初始輸出(粗粒度),通過樹結構的馬爾可夫模型(treestructured Markov model)對輸出進行全局調整;第 2階段,使用廣義的卡爾曼濾波算法(eneralized Kalman filtering algorithm),比如對于數據集MovieLens-1M,可以分別對用戶、物品和時間屬性進行3層的結構分層,用戶為“Root→Gender→Age”,物品為“Root→Release-year→Genre”,時間為“Root→Day-of-week→Year”.
其二,針對特征之間的強層次關系進行交互.強層次關系是指:wi,j≠0?wi≠0 andwj≠0.
Wang等人提出了SHA2(strong hierarchical ANOVA kernel regression)模型及其特殊情況(β=1)下的SHFM(strong hierarchical factorization machine)模型[30].SHA2模型表示為

其三,為了強調某些特征的重要性,Oentaryo等人提出了 HIFM(hierarchical importance-aware factorization machine)模型[31],把重要性權重(importance weights)和層次學習(hierarchical learning)引入到模型中.如,對于曝光率高的廣告會分配更高的權重,因為如果沒能準確預測此類廣告,將會帶來很大的損失,所以在模型中會賦予它們更高的權重.
實際應用中,各種屬性之間的關系錯綜復雜.如果屬性各自獨立,那么直接可以作為FM模型的輸入;如果屬性及其特征值比較多,那么可以采用場交互來提高效率;如果屬性之間存在包含、依賴等關系,或者為了強調某些屬性的重要性,可以在模型中添加層次策略.
集成學習(ensemble learning)通常是構建并結合多個弱學習器(weak learner)來完成學習任務.根據個體學習器的生成方式,目前的集成學習方法可分為:1) 個體學習器間存在強依賴關系、必須串行生成的序列化方法,代表技術有 Boosting;2) 個體學習器間不存在強依賴關系、可同時生成的并行化方法,代表技術有 Bagging和隨機森林(random forest).根據多個學習器是否相同,又分為兩種:同質集成和異質集成.盡管FM在預測/推薦領域相對其他因子分解模型具有更好的通用性且能夠取得更好的效果,但是在某些應用場合也會表現出局限性,所以在某些應用場景中,把 FM 模型與其他模型進行集成能夠提供更多選擇方案.以下對已經研究過的各種集成方案進行總結.
(1) 同質模型集成.
Yuan等人通過引入boosting框架技術提出了BoostFM模型[32],即:根據用戶與物品的特征信息和用戶的隱式反饋(implicit feedback)信息來統一建模,通過加權組合的方式將多個同質的弱學習器轉成為一個強學習器.Yan等人對原始特征的 3個方面(用戶、物品和時間)分別抽取用戶特征、物品特征以及時間特征,然后通過GDBT(gradient boosting decision tree)和FFM模型學習到更加抽象的衍生特征;接著,通過這兩個不同的特征集訓練出兩個不同的 FFM 模型;最后,讓這兩個 FFM 模型做非線性加權集成[33].Hong等人提出了 CoFM(cofactorization machine)模型[34],采用FM模型同時對用戶的決定(decisions),即對轉發推特和用戶轉發推特的主題內容分別建模,兩方面的數據訓練出兩個獨立的FM模型,最終,這兩個FM模型協同后輸出結果.
(2) 異質模型集成.
Leksin等人將3種模型——FM模型、基于物品的協同過濾模型以及基于內容的主題模型進行線性組合、加權組合,最終結果與使用單一的方法相比有較大精度提升[35].
(3) 把單輸出問題轉為多輸出或者回歸問題.
Blondel等人針對FM模型只能輸出單值的限制,對模型進行擴展,使其能產生多輸出,主要是把基于標量的學習函數擴展為基于向量的學習函數,采用一個 3-路的張量,把二分類問題擴展為多分類問題[36].Wang等人提出了RPFM(random partition factorization machine)模型[37],為了有效利用不同的上下文信息,采用隨機決策樹算法的思想,讓樣本中相似用戶、物品或具有相似上下文的樣本分發到樹的相同節點中,同一節點中的各樣本比處于原始數據集中的各樣本之間具有更高的相關度.當要預測一個新樣本時,先根據已建立好的樹狀結構,找到此樣本應在的葉節點,然后使用該葉節點上已訓練好的 FM 模型,求得此輸入樣本的輸出預測值.若一共建立N棵樹,對于此樣本會有N個輸出,最后取平均值,便是此新樣本的最終輸出預測值:.模型首先采用K-means聚類算法對決策樹中的節點進行劃分,利用隱因子向量間的相似性作為劃分標準,這樣劃分出來的每個子節點中的樣本會具有更高的相關性.Pijnenburg等人針對LR模型不能處理具有大量可能值的分類變量的問題,通過另一種建模技術來解決這個問題,比如樸素貝葉斯.然而,這樣處理又失去了回歸的一些優點,即模型對變量解釋值的顯式估計以及對變量到變量依賴的明確洞察和控制.讓LR去直接處理多層次分類變量(many levels categorical variables),將產生稀疏的設計矩陣(design matrix),這會導致模型過擬合,產生極端系數值,所以預先通過FM將多層次分類變量轉換成少量的數值變量,然后再應用于LR模型進行處理[38].
推薦系統領域中相關研究普遍認為:集成模型相比單一模型將具有更高的精度;如果單一 FM 模型精度已經能夠滿足應用需求,那么就沒有必要集成,因為集成必將帶來計算的復雜性;如果單一 FM 模型無法滿足應用需求,那么可以考慮同質或異質模型集成;至于 FM 模型與何種模型以及采取何種方式進行集成,那么需要更多的嘗試和分析.
FM 模型中的特征很多是依賴于人工方式進行選擇和設計.特征的多少會影響模型的計算復雜度,有些重要的特征和特征組合無法被專家輕易識別.所以實現特征的預處理以及自動組合挖掘,也成為推薦系統的一個研究熱點.相比于其他機器學習系統,推薦系統更依賴于特征工程.根據使用的自動化程度,特征工程又分為人工特征工程和自動化特征工程技術.以下將從3個方面來總結特征工程在FM中的應用和影響.
(1) 從原始特征中提取更多的信息,再將其與原始特征一起作為FM的輸入.
Loni等人并不單獨引入額外的信息,而是利用聚類算法,從已有的用戶物品評分中充分挖掘信息,并將其作為部分新的特征,提高FM模型的預測精度[39].由于用戶和物品的簇(cluster)信息隱藏在用戶物品矩陣之中,層次交互擴展中采用的策略是由專家指定用戶和物品的分類,文中使用k-means聚類算法,將相近的用戶聚為一個簇,最終每個簇都會分配一個在域(domain)中的唯一 id,然后將每個域中各個用戶和物品的簇信息,添加到 FM模型的輸入特征向量中,從而擴增了 FM 模型的輸入特征向量的維度.即:將隱藏在用戶物品評分信息中的特征提取出來,并顯式地添加到FM的輸入特征向量之中,最終起到提高模型預測精度的目的[39].不過,這種方法存在新用戶的冷啟動問題,因為對于剛注冊的用戶,由于缺少足夠的歷史信息,聚成簇會損失掉新用戶的個性化問題.可以采用以下解決方法:以電子商品推薦為例,對老用戶(比如可以假定購買 5件以上商品的用戶為老用戶)和新用戶分別進行聚類,這樣可以避免減少過多的新用戶信息.
(2) 從原始特征中選擇部分重要特征,或者進行特征的合并.
并非所有特征的交互都有效,有些交互可能會成為噪聲,破壞模型的泛化能力.從原始特征中選擇重要特征,或者過濾掉不重要的特征,或者進行特征的合并,會使得減少特征數的同時,進一步提高預測精度和計算效率.Cheng等人提出了GBFM模型[40],把GBM(gradient boosting machine)模型與FM結合,著重于選取好的特征進行交互.提升方法的思路為:對于一個復雜的問題,將多個專家的判斷進行適當綜合,所得出的結果要比任何一個專家單獨判斷更加精確.每一步產生一個弱預測模型(如決策樹),并加權累加到總模型中,可以用于回歸和分類問題;而梯度提升是在此思想下的一種函數或模型的優化方法,如果每一步的弱預測模型都是擬合損失函數的負梯度而得,則稱為梯度提升(gradient boosting).通過使得損失函數在梯度上減少的方式進行m次迭代,最終合并得到一個優秀的提升模型.GBFM訓練的主要迭代公式為

GBFM 模型中,如何選取好的特征是重點,采取的特征選擇算法是選擇盡可能使目標函數降低最快的特征,比如現在有用戶(user)、物品(item)和情感(mood)這3個上下文特征.對于原始FM,其模型為

即含有所有特征的交互,而 GBFM 訓練完成特征選擇后,最終可能去除了 item和 mood的交互,產生的模型可能是

Xu等人認為,GBFM 通過基于梯度提升的貪心算法選擇特征交互,降低了模型復雜度.但是使用啟發式算法并不是最優的特征交互選擇方式,并且經過這種方式處理后的交互特征的數量仍然十分龐大,所以提出了稀疏FM(sparse factorization machine,簡稱SFM)模型[41],從學習模型中直接選取交互特征,交互過程中的所有無用特征將會被剔除.為了減少模型的復雜度,識別出有關聯的用戶特征和物品特征.即僅對有關聯的特征進行交互,所以需要學習的參數也大幅減少,模型表示為

Selsaas等人根據屬性值進行自動的特征合并,然后進行交互,能夠有效緩解特征的稀疏性.如在考慮設備屬性時,PC機具有IP地址和Cookie,移動電話(cell phone)則沒有IP地址,但是它綁定了電話號碼,如果按照獨熱編碼方式將產生很多的特征,而且很多特征是稀疏的.所以在采用模型預測之前,先對這些特征進行合并,既能減少計算時間,也能提高預測精度[42].Punjabi等人提出了魯棒FM(robust factorization machine,簡稱RFM)和基于場的FM變體模型RFFM.由于數據在收集過程中采用不同的設備,即使相同的設備,因為瀏覽器不同,都會產生不同的數據,這對數據質量是一個挑戰,采用魯棒優化(robust optimization,簡稱RO)框架可以去除噪聲[43].Lu等人針對多視圖學習(multi-view learning,簡稱MVL)和多任務學習(multi-task learning,簡稱MTL)提出多線性FM(multilinear factorization machine,簡稱 MFM)模型來應對異構的多源特征[44].Liu等人提出了 LLFM(locally linear factorization machine)模型來應對局部線性分類器(locally linear classifiers)問題[45].
(3) 對模型屬性進行提升,不同屬性可以選擇不同的提升方法.
實際應用中,用戶和物品具有針對性,即屬性會表現出一定的特征偏好.以用戶為例,80后以及90后初期的男性用戶可能會特別喜歡類似于《生化危機6》、《魔獸》、《刺客信條》等游戲改編的電影,而90后女性,特別是95后女性可能更中意《從你的全世界路過》、《有一個地方只有我們知道》、《屬于你的我的初戀》等愛情片.另外,不同屬性之間的影響程度也不同.例如,用戶所屬職業的重要程度要高于用戶家庭所在的地理位置.本項目組在 FFM模型的基礎上提出了智能化場感知模型 iFFM[46],該模型對關鍵屬性進行提升,運用特征工程技術將因子選擇智能地嵌入到算法求解過程中,并綜合利用吉布斯采樣和 SGD訓練模型來提高推薦精度.iFFM 模型中對特征xi進行關系映射表示為

其中,Bi表示屬性xi的提升項,可以進一步分解為(對應用戶)或者(對應物品).其中,pu和qv分別為用戶u的偏好、物品與屬性的關聯程度,ui和vi為相應影響權重.假設xi表示“愛情片”,那么刻畫的是用戶u對“愛情片”的隱含態度.假設xi表示“動作片”,即使用戶u在數據集上沒有觀看“動作片”的記錄,則依然可以用模擬用戶u的偏好.此時,用戶的偏好和物品的屬性特征可以表示為:


(4) 在模型中添加社交或信任等相關信息的特征來提高精度.
隨著社會網絡和移動技術的發展,社交信息在預測/推薦中起到更大的作用.Ding等人提出了 SCFM(social and crowdsourcing factorization machine)模型,在FM中添加社交和眾包信息[47].Zhou等人提出了SocialFM模型,基于社交關系對 FM 進行改進,模型中采用的輸入包括用戶、物品、用戶之間的相似性和信任關系,通過用戶之間的關系來提高推薦精度[48].Rendle等人也提出了采用特征工程,如社會網絡信息來提高推薦精度[49].
(5) 在模型中添加偏置進行調整,平衡特征在模型中所占的比重.
Chen等人指出,大多數的推薦系統都在推薦流行度高的物品,缺乏新穎性,也導致長尾現象的產生[50].其原因是在訓練數據集中,頻繁出現的物品占據了整個物品集的絕大部分,導致推薦系統給出的推薦列表中流行度高的物品更有優勢.為了緩解這種現象,盡可能去推薦一些用戶沒有接觸過但是可能會感興趣的物品,提出了cost-sensitive FM模型,其思路是降低流行度偏置(popularity bias),在推薦精度和物品流行度之間找到平衡點.模型構建方法是將代價敏感的學習(cost-sensitive learning,簡稱CSL)與FM模型進行集成,在不破壞推薦質量的基礎上,達到降低流行度偏置的目的.
正如機器學習領域大家所認同的一個觀點:數據和特征決定了機器學習的上限,而模型和算法只能逼近這個上限,由此可見特征工程的重要性.所以在應用 FM 模型時,必須要考慮它所應用的領域.FM 被廣泛使用于各個領域,表1列出FM模型被提出后在各個領域的應用.除了表1中列出的,FM模型也在其他領域得到應用,如微博排名[51]、表演藝術市場決策[52]等等.在實際應用中,可根據具體的問題來選擇具體特征,通過調節參數來達到理想的預測/推薦效果.

Table 1 Application field of FM model表1 FM模型應用領域
相比邏輯回歸模型以及其他因子分解模型,FM 在很多應用領域都展現了其獨特的優勢.不過,它仍然屬于多變量的線性模型,因為在 FM 模型中,對于每個參數θ∈{w0,{wi},{vif}},都可以得到,其中,g和h與θ無關.而現實世界中的數據關系通常是高度非線性的,無法直接采用線性模型或淺層模型來表達.FM屬于淺層模型,可以有效提取1階特征和2階特征,但是難以挖掘高階特征.盡管特征工程技術能夠幫助FM提高精度,但是特征的自動組合非常重要,已成為推薦系統的熱點研究方向之一,深度學習作為一種先進的非線性模型技術在特征組合挖掘方面具有很大的優勢.
深度學習應用于預測和推薦系統后,激發并產生了很多相關研究和成果[64-66].Zhang等人把這些模型分為兩類:一類是只使用深度學習模型,可以是單一模型,也可以集成多個不同模型來提高推薦的多樣性;另一類是把深度學習與傳統推薦方法結合起來,可以采用松耦合或者緊耦合的策略[67].實踐結果表明:深度學習適用于某些方面,如深度卷積神經網絡(deep CNN)非常適合圖像特征的提取[68],但是傳統模型解釋性更強,所以將兩者結合將更有效.Wide&Deep框架自被谷歌提出后被廣泛研究和使用[7],此框架是線性模型和深度學習模型有機結合的典范,寬度(wide)部分用于提高記憶性(memorization)能力,深度(deep)部分用于增強泛化性(generalization)能力,Deep&Cross模型對寬度部分進行進一步擴展[69].由于 FM 模型在預測/推薦領域占有非常重要的地位,因而FM模型及深度學習模型的集成方面展開了大量研究,以下將進行詳細闡述.
FM支持的神經網絡(factorization machine supported neural network,簡稱FNN)模型于2016年被提出[70],其思路為:采用FM模型對原始特征的嵌入層進行初始化,將FM的輸出作為輸入放到深度神經網絡(dense neural network,簡稱DNN)中.圖3所示為本文對該模型的結構描述.FNN證明:利用FM初始化參數能夠使梯度更快地收斂,最大限度地避免訓練過程陷入局部最小,可以獲得更好的結果.

Fig.3 Architecture of FNN model圖3 FNN模型結構
模型中最底層是FM模型,通過訓練后生成一個z向量,表示為

模型隱含層表示為
其中,a(1)是第1層(向量z)的輸出;a(l+1)是第(l+1)層的輸入,也是第l層的輸出;f(*)為激活函數,如sigmoid,tanh,relu等;w和b分別為權重矩陣和偏置.
FNN可以認為是采用FM初始化的Wide&Deep模型的深度部分.SNN模型與FNN模型的區別在于底層的訓練方法不同,它采用全連接方式,初始化時采用限制玻爾茲曼機(RBM)和自動編碼機(DAE).
PNN模型也采用類似Wide&Deep的框架,不過它在嵌入特征時增加了兩兩交叉的功能,而不是把所有的參數直接輸入到隱藏層[71].

Wide&Deep模型是谷歌2016年提出[7],最早是用來解決Google Play應用商店的APP推薦問題.模型中將推薦看做是一個搜索排序問題,輸入用戶和文本信息的集合,輸出經過排序的物品列表.推薦主要解決兩類問題:記憶性和泛化性.記憶性由寬度模型主導,根據歷史數據學到的信息,比如“百靈鳥會飛”、“老鷹會飛”;泛化性由深度模型主導,推斷在歷史數據中從未見過的情形,比如“飛機會飛”.具體到推薦系統中,記憶性主要學習用戶行為習慣,向用戶推薦與歷史購買信息相關的物品,解決準確性問題;泛化性是指可以向用戶推薦其從未購買過的物品.Wide&Deep模型將寬度模型(傳統的線性模型)和深度模型(深度學習模型)融合在一起進行訓練,圖4所示為本文對該模型的結構描述(寬度部分和深度部分的輸入特征不同).
寬度部分采用線性結構,數學公式為φwide=wTx+b,其中,x為特征矩陣,w為權重矩陣,b為偏置.與傳統邏輯回歸不同的是,這里的x包含原始特征和少數人工選擇的交叉特征.雖然沒有使用FM模型,但是應用了該模型中特征交叉這一思想.
深度部分采用DNN模型.由于人工構建的交叉特征有限,而交叉特征的類別可能包含多個,如3個或4個,因此需要DNN自動構建一些特征,數學公式為

其中,a(l)是第(l+1)層的輸入,也是第l層的輸出;f(*)為激活函數如sigmoid;w(l)和b(l)分別為第l層權重矩陣和偏置.
從特征角度分析,寬度部分主要學習1階特征和少量2階特征,deep部分用來學習高階特征.其優勢是同時學習低階特征和高階特征.

Fig.4 Architecture of Wide&Deep model圖4 Wide&Deep模型結構
Wide&Deep模型中,寬度部分采用基于邏輯回歸的簡單線性模型,它無法獲得充分的低階特征交互信息,為了彌補這一不足,Deep&Cross提出采用Cross網絡作為寬度模型來獲取低階交互信息[72],而且Cross網絡可以變換為FM等模型,所以具有非常好的一般性,圖5所示為本文對該模型的結構描述(寬度模型使用Cross網絡,可以用FM模型替換).

Fig.5 Architecture of Deep&Cross model圖5 Deep&Cross模型結構
Wide&Deep模型以及 Deep&Cross模型中,寬度和深度部分采用不同的輸入,這要求在模型使用中能夠判斷特征的選擇.在DeepFM模型[73]中,寬度和深度部分共享原始的輸入特征向量,模型更易于使用,圖6所示為本文對該模型的結構描述(寬度和深度部分共享原始的輸入特征向量,使得模型更易于使用).從特征角度來看,DeepFM的寬度部分采用了2階的FM模型結構,主要學習1階特征和2階特征,這也改進了Wide&Deep模型中的寬度部分,增加了更多的低階特征交互學習.考慮到CNN模型偏向相鄰特征的交互,RNN模型偏向點擊數據的預測,所以DeepFM的深度部分采用DNN模型.

Fig.6 Architecture of DeepFM model圖6 DeepFM模型結構
NFM模型[74]也采用了類似Wide&Deep的寬度和深度學習框架,其輸出表示為

其中,第1、2部分是線性回歸模型,與FM一致;第3部分的f(x)是模型的核心,主要對特征交互進行建模,是一個多層前向神經網絡.圖7所示為本文對該模型的結構描述(深度學習部分的輸入是交互特征).

Fig.7 Architecture of NFM model圖7 NFM模型結構
FNN模型實現了Wide&Deep框架的深度部分,它采用FM對參數進行初始化,然后再深度學習.DeepFM與PNN結構很相似,不同在于FM模型處理的屬性被單獨作為寬度部分.DeepFM與Wide&Deep的不同在于:它把寬度部分的屬性替換為FM處理后的屬性,而且寬度部分與深度部分輸入相同.NFM模型也是基于Wide&Deep框架,主要通過輸入特征的預處理來提高推薦效果.Deep&Cross模型則是對文本信息進行處理,并且將ResNet[75]應用到非圖像領域.表2對這些模型的特征進行了綜合比較.

Table 2 Comparison of depth learning model based on FM model and linear model表2 基于FM模型的深度學習模型比較
這些模型基本包括了傳統模型(尤其是FM)與深度學習模型的不同融合方式,有些是松耦合(兩者的最后結果進行合并),有些是緊耦合(一個模型的輸入依賴于另一個模型).實際應用中,如果要提高預測或推薦的精度,需要結合應用領域來增加特征工程.
為了深入理解不同模型及其不同結構的優勢,本項目組提出了DGFFM模型.模型中,寬度部分采用FFM模型,深度部分采用DenseNet模型,并且在特征中添加了時間動態因子.因為FNN和Wide&Deep采用兩種典型的框架,所以本文實現了兩種DGFFM模型:DGFFM(W&D)模型采用Wide&Deep結構,DGFFM(FNN)采用FNN的結構.實驗采用的硬件平臺為 Inter? Core? i7-7700 CPU@3.60GHz,65.86GB內存,976GB硬盤,64位 Ubuntu 16.04操作系統的工作站;編程語言為 Python,框架使用 TensorFlow;數據集為 MovieLens 1M 數據集(簡寫為ml-1m,http://grouplens.org/datasets/movielens/1m/)和 Criteo數據集,ml-1m(softmax分類)中采用 RMSE評價指標,Criteo(二分類問題)中采用AUC和LogLoss評價指標.模型比較結果見表3,其中,FNN,DeepFM和DGFFM的隱向量維度均設置為20.DenseNet部分輸出通道設置:ml-1m為[100,48,32],分別指模塊1輸出通道數、翻譯層輸出通道數和模塊 2輸出通道數,Criteo為[256,128,64].由于各種深度模型適用于不同的應用場合,所以在實驗中沒有測試每種模型的效果,只把所提出的DGFFM模型與FNN和DeepFM(采用Wide&Deep框架)模型進行了對比.

Table 3 Accurace comparison of different models表3 模型精度比較
根據表3的實驗結果,得出以下結論.
1) DeepFM在兩個數據集上均比FNN取得了更好的效果.在ml-1m上,DeepFM的RMSE減少1.5%;在Criteo上,LogLoss減少1.9%,AUC提高0.6%.這在一定程度上說明Wide&Deep具有結構優勢;
2) 3個模型中,DGFFM均取得了最好的結果.其原因是DGFFM在寬度學習部分基于FFM模型,增加了時間因子以及其他的特征工程,而且DenseNet相對于標準DNN也具有一定優勢,寬度和深度兩部分優勢相結合,進一步提高了模型的預測精度;
3) DGFFM(W&D)結果略好于 DGFFM(FNN),在 ml-1m上,RMSE減少 2.8%;在 Criteo上,LogLoss減少3.4%,AUC提高0.2%.由于Wide&Deep結構中為了保證最終層數不變,深度部分初始輸入采用的是偏置+一次項,因此Wide&Deep結構中的DGFFM比FNN結構中的DGFFM多了一部分,這可能對最終結果也造成了一些影響.但總體而言,Wide&Deep結構略好于FNN結構.
Rendle等人采用3種學習方法訓練FM模型:SGD、交替最小二乘法(alternating least-squares,簡稱ALS)和馬爾可夫蒙特卡洛(Markov chain Monte Carlo,簡稱MCMC),這些都可以在libFM中找到源碼[21].Bayer等人提出了庫fastFM[76],實現了FM的回歸、分類和排序,簡化了FM的使用.從關系型數據設計矩陣會非常龐大,使得學習和預測變得緩慢或者從標準的機器學習算法不可行的角度,Rendle等人針對關系型數據實現了 FM[77].針對FM中包含一個非凸優化問題,導致局部最小化,Blondel等人提出基于核范式的FM的凸形式,采用雙塊坐標下降算法(two-block coordinate descent algorithm)優化學習[78].Yuan等人提出兩種優化策略——RankingFM(ranking factorization machine)和LambdaFM(lambda factorization machine)優化FM模型[79].
Pan等人針對廣告交易數據的稀疏性,即存在大量零元素,可能會嚴重影響 FM 模型的性能,提出一種新的稀疏因子分解機(SFM)模型[80],其中使用拉普拉斯分布而不是傳統的高斯分布來對參數進行建模,因為拉普拉斯分布可以更好地擬合更高比例的稀疏數據零元素.Saha等人提出了 NPFM[81],它假設數據服從泊松分布(Poisson distribution),這對于建模和數據訓練計算都非常有利;NPFM 作為一個非參數模型,會從數據本身發現最適合的隱因子數量.由于FM中用戶、物品和上下文變量之間的交互被建模成它們各自隱因子特征的線性組合(linear combination),但是將用戶、物品和上下文變量之間的交互限制成線性組合并不現實,為了解決這一限制,Nguyen等人提出了高斯過程的因子分解機(Gaussian process factorization machine,簡稱GPFM)模型,即:使用高斯過程的非線性概率算法來應對上下文感知推薦,可以被應用到隱式反饋數據和顯式反饋數據集[82].一般的高斯處理回歸的推斷和學習算法都是關于數據集樣本大小的立方級復雜度(cubic complexity),Huang等人提出了GGPFM(grid-based Gaussian processes factorization machine)模型捕捉用戶與物品之間的非線性交互[83],將潛在特征(latent features)賦予網格結構(grid structures)降低模型復雜度.通常的學習和訓練方法即可滿足一般的應用需求,但是不同的應用背景對應不同的特征,模型學習和優化方式的調整可以提高精度,不過都需要通過實驗來反復驗證.
精度和效率是評價預測/推薦模型的兩個重要指標.通過從寬度上改進模型以及從深度上與深度學習模型的集成,可以極大地提高模型的精度.FM 提供了線性的計算復雜度和有用的數據嵌入,但是當數據和特征規模增大時,模型的擴展代價非常高.FM 與深度學習集成后,大數據和模型擴展性問題更加嚴重.機器學習算法的獨特性在于:(1) 迭代性,模型的更新需要循環迭代多次;(2) 容錯性,每個循環中可能產生的錯誤不影響模型最終的收斂;(3) 參數收斂的非均勻性,模型中有些參數經過幾次循環后不再改變,其他參數可能仍需要很長時間收斂.面對海量的數據加上復雜的數學運算,這些決定了分布式機器學習系統的特殊性.大數據的機器學習存在著許多挑戰和機遇[84,85],通常會采用兩種方案.
· 首先是數據并行方案.采用經典的主-從服務模式對訓練數據進行劃分,分布式存儲到各個節點上,每個節點都運行著一個或多個模型訓練進程,各自完成前向和后向的計算得到梯度;訓練結束后,各節點把參數傳遞給主服務器進行參數的合并與更新,主服務器把更新后的參數再分發到各個節點,再次進行訓練.通過多個節點并行訓練來提高學習效率;
· 其次是結構并行方案.當模型巨大、單機內存不足時,將計算工作進行劃分,即同一個大模型的不同部分交給不同節點負責(如多層網絡的各個節點),不過,這樣會產生很大的通信開銷.結構并行相對數據并行更加復雜,不過開源框架如TensorFlow平臺直接支持結構并行.
目前,主流的解決方案是使用分布式框架和并行計算模式,硬件方面則使用 GPU和 TPU等進行加速.以下將總結FM及其變體在提高效率方面的相關研究.
MapReduce并行計算模式在大數據處理領域應用非常廣泛,也可被用于提高FM的學習效率.Sun等人實現了基于 MapReduce的 SGD算法用于 FM 模型的學習,主要通過數據并行來提高模型的學習效率.不過,MapReduce模式的特征也決定了其更適合處理數據并行[86].Yan等人基于spark平臺實現FM模型的學習,其核心思想與MapReduce類似[47].Knoll等人采用參數服務器(parameter server,簡稱PS)為FM提出一種分布式的SG算法[22].PS是一個算法的計算引擎,其計算由兩組分開的計算機完成:服務器(server)和工作者(worker). server用于管理和更新模型的參數,worker處理訓練數據,任務調度器和資源管理器負責控制數據流.Li等人也采用 PS,通過一個依賴圖(dependency graph,簡稱DAG)提供了靈活的數據一致性模型[87].Zhong等人在參數服務器上實現了分布式的FM,即DiFacto,采用自適應的內存限制和頻度自適應的正則化機制,基于數據和模型統計來執行細粒度的控制,并在多臺機器分發 DiFacto[88].Li等人提出一個新的系統框架,集成了參數服務器和 MapReduce模式.通過MapReduce實現數據并行,通過PS實現模型并行,并解決了通信開銷問題和參數更新沖突問題[89].機器學習離不開分布式并行計算框架和GPU等硬件的支持.
“互聯網+”的發展以及大數據技術正在開啟一個全新認知的大數據時代,FM 模型是目前預測/推薦領域研究和應用最廣泛的模型之一.圖8所示大數據環境下預測/推薦系統的框架及其所面臨的問題.
· 問題 1:多源異構數據帶來特征表示的多樣性和復雜性.尤其是視覺數據,其特征維度高且數量大,傳統推薦主要關注非視覺文本數據及其交互,對非視覺和視覺特征的融合是新型推薦系統建立的基礎;
· 問題 2:現有推薦模型對于特征進化趨勢缺乏表示.用戶偏好與物品特征都會隨著時間而發生變化,對這些變化趨勢進行合理建模將會提升推薦效果,動態特征的提取與表示是構建動態推薦模型的關鍵;
· 問題 3:傳統模型與深度學習框架適用于不同領域,現有的融合方法不論是共享輸入還是獨立輸入,兩部分都是松耦合,兩者的結合主要用于增加推薦的多樣性.為了發揮共同優勢,需要研究模型的集成策略;
· 問題4:大數據要求模型和訓練算法具有高擴展性和高效率,盡管通用分布式計算框架提供了并行處理支持,但兩類不同的學習方式具有不同的要求,相關并行處理方法和關鍵技術還需進一步研究.

Fig.8 Framework of prediction & recommendation system and the problems faced by big data environment圖8 預測/推薦系統框架及大數據環境下所面對的問題
通過對已有FM的相關研究和應用進行分析,我們認為,目前工作可以從以下兩方面進行深入.
動態建模是推薦系統面臨的挑戰之一.Koren將時間動態性應用到矩陣奇異值分解模型SVD中,通過提取非視覺特征的時間動態因子,分別對用戶偏置和物品偏置進行動態建模,取得了較好的推薦效果[11].He等人同時對非視覺特征和視覺特征進行輕量級的時間建模,雖然沒有對變化趨勢進行細分,但也極大地改善了推薦結果[90].谷歌將流行趨勢劃分為6類:持續上升、季節上升、突然上升、持續下降、季節下降和突然下降,基本囊括時尚物品的所有變化特性.用戶行為變化趨勢和物品變化趨勢有較大差異,通常短期內物品的流行趨勢變化不明顯,研究不同特征的不同變化趨勢對于構建推薦模型具有重要意義[91].相關研究屬于特征工程領域,即在原有的屬性中添加時間因子.FM模型中可以歸納為兩類時間動態性:偏置動態性和特征動態性.
(1) 偏置動態性.
在推薦系統中,又分為用戶的偏置動態性和物品的偏置動態性.設置用戶偏置動態性的原因在于:用戶對物品的評分習慣可能會隨著時間而發生變化.例如,用戶Aphro過去傾向于給電影《秒速五厘米》評9分,現在她對于動畫片的狂熱減退,只會評 8分.同樣地,設置物品的偏置動態性的原因在于:隨著時間的推移,物品的人氣會隨之變化.以電影《戰狼2》為例,上映4小時的票房達9 741萬,接著,憑借演員精湛的演繹、電影較好的口碑以及網絡話題的引燃而迅速火熱起來,上映10天,票房便突破31億.偏置動態性的表示可以在用戶偏置bu中添加如下時間函數:

其中,b是靜態偏置,τ(t)是一個時間函數.對τ(t)進行建模,常用方式是建立簡單的時間線性模型,如 timeSVD++.然而,實際應用場景的表現通常是非線性的,甚至可能是無規則的,很難用確定的公式表示.
(2) 特征動態性.
對于屬性xi(1≤i≤n),可以細分成隨時間變化的動態屬性和保持穩定的靜態屬性,靜態屬性不需額外處理,動態屬性則可添加時間變化函數,調整為

其中,f(·)是非線性激活函數.這些偏置函數和屬性函數可以加入到FM模型中,對其靜態偏置和屬性進行調整.
傳統推薦方法與模型主要關注非視覺文本特征及其交互,如用戶與物品的固有特征描述、物品的星級評分、用戶的購買歷史、書簽、瀏覽日志、查詢模式、鼠標活動等.隨著機器視覺領域中深度學習的廣泛應用,圖像特征開始被關注,高維視覺特征也作為預測/推薦模型屬性的一部分.視覺特征容易獲得且描述準確,因此,如何提取高維視覺特征以及如何把非視覺低維特征和視覺高維特征進行有效融合,成為目前推薦領域的研究熱點[92-94],并在RecSys 2017會議中作為重要主題列出.
deep CNN模型最近被成功應用于對象檢測、圖像匹配等領域,相關研究已證明:基于海量數據訓練的deep CNN模型可以精確應用于其他數據集,在新的數據集中仍然能夠產生很好的效果.假設fi表示物品i的原始視覺特征向量,維度為D維(可以通過AlexNet,ResNet等預先訓練好,比如取AlexNet的第2個全連接層FC7的輸出作為原始視覺特征向量),那么視覺特征θi可以按如下方式建模:

其中,E是一個維度為D×F矩陣.此時,θi的特征維度為F(F<<D),從而達到降維的目的.兩個物品之間的視覺關系可以表示為

這種低秩嵌入方法僅僅能捕獲兩個物品是否關聯,關聯的原因則不能表達.實際應用中,物品之間的關聯關系可能體現為多種原因,如一件 T-恤和一條短裙搭配合適的原因可能是顏色、質地或者款式等.為了解決這個問題,可以考慮采用多重嵌入,兩個物品之間的關系可以表示為

其中,E0把物品i對應到一個參考點,對應到一個嵌入空間,Ek(k=1,2,…,N)表示與物品j的潛在匹配.傳統的FM主要面向文本等非視覺特征,如果把視覺特征也融入到FM模型中,這樣FM模型的應用將更加廣泛.
在預測/推薦系統領域,FM 模型被廣泛研究與應用.沒有萬能的模型,不同業務場景對模型的輸入特征、處理邏輯和輸出類別會有不同要求.本文從寬度擴展和深度擴展視角對 FM 模型及其變體的研究進行綜述,希望能夠提供不同的思路,為應用提供不同的選擇方案.從對國內外高水平期刊及會議上的文獻分析可以看出:將傳統FM模型與深度學習模型相結合、將視覺與非視覺特征進行融合是研究熱點.現有相關工作可以從以下幾點進行深入:(1) 研究非視覺特征和視覺特征的融合,目前的相關研究缺乏對用戶行為和物品變化趨勢的差異化和細粒度處理;(2) 寬度和深度兩種學習方式的融合目前主要用于增加推薦的多樣性,其耦合方式以及對精度和效率的影響還需進一步研究.