推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

微軟研究院AI頭條發表於2018-08-22

編者按:特徵(features)的構建對推薦系統來說至關重要,直接關係到推薦系統的精準性。在傳統的推薦系統中,高階交叉特徵通常由工程師手工提取,不僅人力成本高昂、維度空間極大,而且不可泛化。因此自動學習特徵的互動是十分有必要的 ,但目前已有的相關工作學習的是隱式的互動特徵,且特徵互動發生在元素級(bit-wise)而非向量級。為此,微軟亞洲研究院社會計算組在KDD 2018上提出一個新的模型——極深因子分解機(xDeepFM)。

近年來,隨著深度學習技術在語音識別計算機視覺和自然語言理解等領域取得巨大成功,越來越多的學者們也在著手研究基於深度學習技術的推薦系統對於搭建精準的推薦系統而言,特徵(features)是至關重要的。從特徵構建的層面而言,現階段深度學習技術在推薦系統中的應用可以大致分為兩類:

(1)從原始資料中自動學習出蘊含語義的隱特徵,例如從本文、影象或者知識網路中提取出有效的隱特徵;

(2)自動學習多個相關特徵之間的互動關係。

特徵互動指的是學習兩個或多個原始特徵之間的交叉組合。例如,經典的基於模型的協同過濾其實是在學習二階的交叉特徵,即學習二元組[user_id, item_id]的聯絡。而當輸入資料的內容變得豐富時,就需要高階的交叉特徵,例如,在新聞推薦場景中,一個三階交叉特徵為AND(user_organization=msra,item_category=deeplearning,time=monday_morning) , 它表示當前使用者的工作單位為微軟亞洲研究院,當前文章的類別是與深度學習相關的,並且推送時間是週一上午。

傳統的推薦系統中,高階交叉特徵通常是由工程師手工提取的,這種做法主要有三種缺點:

(1)重要的特徵都是與應用場景息息相關的,針對每一種應用場景,工程師們都需要首先花費大量時間和精力深入瞭解資料的規律之後才能設計、提取出高效的高階交叉特徵,因此人力成本高昂

(2)原始資料中往往包含大量稀疏的特徵,例如使用者和物品的ID,交叉特徵的維度空間是原始特徵維度的乘積,因此很容易帶來維度災難的問題;

(3)人工提取的交叉特徵無法泛化到未曾在訓練樣本中出現過的模式中。

因此自動學習特徵間的互動關係是十分有意義的。目前大部分相關的研究工作是基於因子分解機的框架,利用多層全連線神經網路去自動學習特徵間的高階互動關係,例如FNN、PNN和DeepFM等。其缺點是模型學習出的是隱式的互動特徵,其形式是未知的、不可控的;同時它們的特徵互動是發生在元素級(bit-wise)而不是特徵向量之間(vector-wise),這一點違背了因子分解機的初衷。來自Google的團隊在KDD 2017 AdKDD & TargetAD研討會上提出了DCN模型,旨在顯式地學習高階特徵互動,其優點是模型非常輕巧高效,但缺點是最終模型的表現形式是一種很特殊的向量擴張,同時特徵互動依舊是發生在元素級上。

在KDD 2018上,微軟亞洲研究院社會計算組提出了一種極深因子分解機模型(xDeepFM),不僅能同時以顯式和隱式的方式自動學習高階的特徵互動,使特徵互動發生在向量級,還兼具記憶與泛化的學習能力

壓縮互動網路

為了實現自動學習顯式的高階特徵互動,同時使得互動發生在向量級上,我們首先提出了一種新的名為壓縮互動網路(Compressed Interaction Network, 簡稱CIN)的神經模型。在CIN中,隱向量是一個單元物件,因此我們將輸入的原特徵和神經網路中的隱層都分別組織成一個矩陣,記為X^0 和X^k。CIN中每一層的神經元都是根據前一層的隱層以及原特徵向量推算而來,其計算公式如下:

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

其中,第k層隱層含有H_k條神經元向量。隱層的計算可以分成兩個步驟:(1)根據前一層隱層的狀態X^k和原特徵矩陣X^0,計算出一箇中間結果Z^k+1,它是一個三維的張量,如下圖所示:

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

圖1 CIN的隱層計算步驟一:根據前一層隱層狀態和原始輸入資料,計算中介結果

在這個中間結果上,我們用H^k+1個尺寸為m*H^k的卷積核生成下一層隱層的狀態,該過程如圖2所示。這一操作與計算機視覺中最流行的卷積神經網路大體是一致的,唯一的區別在於卷積核的設計。CIN中一個神經元相關的接受域是垂直於特徵維度D的整個平面,而CNN中的接受域是當前神經元周圍的區域性小範圍區域,因此CIN中經過卷積操作得到的特徵圖(Feature Map)是一個向量,而不是一個矩陣。

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

圖2 CIN的隱層計算步驟二:根據中介結果,計算下一層隱層的狀態

CIN的巨集觀框架可以總結為圖3。它的特點是,最終學習出的特徵互動的階數是由網路的層數決定的,每一層隱層都通過一個池化操作連線到輸出層,從而保證了輸出單元可以見到不同階數的特徵互動模式。同時不難看出,CIN的結構與迴圈神經網路RNN是很類似的,即每一層的狀態是由前一層隱層的值與一個額外的輸入資料計算所得。不同的是,CIN中不同層的引數是不一樣的,而在RNN中是相同的;RNN中每次額外的輸入資料是不一樣的,而CIN中額外的輸入資料是固定的,始終是X^0。

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

圖3 CIN的巨集觀結構概覽

極深因子分解機

參考Wide&Deep和DeepFM等模型的設計,我們發現同時包含多種不同結構的成分可以提升模型的表達能力。因此我們將CIN與線性迴歸單元、全連線神經網路單元組合在一起,得到最終的模型並命名為極深因子分解機xDeepFM,其結構如圖4所示。

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

圖4 極深因子分解機xDeepFM

整合的CIN和DNN兩個模組能夠幫助模型同時以顯式和隱式的方式學習高階的特徵互動,而整合的線性模組和深度神經模組也讓模型兼具記憶與泛化的學習能力。值得一提的是,為了提高模型的通用性,xDeepFM中不同的模組共享相同的輸入資料。而在具體的應用場景下,不同的模組也可以接入各自不同的輸入資料,例如,線性模組中依舊可以接入很多根據先驗知識提取的交叉特徵來提高記憶能力,而在CIN或者DNN中,為了減少模型的計算複雜度,可以只匯入一部分稀疏的特徵子集。

實驗結果

我們在Criteo、大眾點評和必應新聞等三個資料集上對上述模型進行評測,這三個資料集分別對應廣告推薦、餐館推薦和新聞推薦等不同的應用場景。所採用的評測指標為AUC和LogLoss。我們將xDeepFM與多種當前主流的深度推薦模型進行對比,結果如表1所示。在三個資料集上,xDeepFM模型在AUC和LogLoss上均超過了其它基準模型。這說明,結合顯式和隱式的特徵互動能夠有效提高推薦系統的準確性

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

表1 三個資料集上的評測結果

同時,我們還關注不同的基本單元模型的學習能力。我們對比了FM、DNN、CrossNet和CIN在三個資料集上單獨學習的結果,它們分別對應只有二階特徵互動、隱式特徵互動、特殊的顯式特徵互動和基於向量的顯式特徵互動模式。實驗結果如表2所示。在Criteo上,CIN和DNN的表現比較接近,而在大眾點評和必應新聞資料集上,CIN比其它三個單元模型表現的要好

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

表2 四種單元模型在三個資料集上的獨立結果

除此之外,我們還探討了神經網路中的超引數對模型的影響,例如網路的深度、網路的寬度以及啟用函式的選取等等。值得一提的是,目前最優的網路結構並不需要做到很深,通常在3層左右即可,原因可能是現實環境中需要的有效特徵互動階數本質上並不高,也有可能是神經網路的優化方法還不足以訓練出良好的更深層次的網路。

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

推薦系統特徵構建新進展:極深因子分解機模型 | KDD 2018

總而言之,我們提出了一種極深因子分解機模型xDeepFM,通過結合顯式和隱式的高階特徵互動能力來提升推薦系統的精準度。該模型的有效性在多個不同的應用場景下都得到了驗證。但是,目前xDeepFM仍然存在計算複雜度偏高的缺點。未來我們將持續改進它的效能,以便它能夠被應用在大規模計算任務中。

瞭解更多技術細節,請閱讀我們的論文:

xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems

論文連結:https://arxiv.org/abs/1803.05170

相關文章