李宗陽,吉 源,沈志宏
(1.中國科學院 計算機網絡信息中心,北京 100190;2.悉尼大學,悉尼 NSW2000)
推薦系統在各種在線電子商務網站和旅游門戶網站中備受重視。傳統的推薦系統通常對二維用戶-項目評分數據進行操作,試圖預測用戶對特定項目(如產品)的偏好或評分。
近年來,除了用戶項目評分外,各大網站平臺還收集了各種有價值的信息。特別是,不同結構的信息,如購買意圖、時間、地點、同伴和活動內容,都可被用來提高推薦性能[1-9]。在線網站中的非結構化文本評論通常包含用戶對產品或服務的意見、態度和偏好,并在各種個性化推薦中與用戶-項目評分數據一起被利用[10-14]。
相比之下,在這項工作中,除了考慮用戶對項目的總體評分數據外,還考慮了多個屬性的用戶對項目的評分來解決推薦問題。在許多的電子商務網站上,除了總體評分外,在線用戶通常還可以根據產品或服務的多個給定屬性或方面對其滿意度進行評分。
基于多個用戶在各種不同屬性上的項目評分以提供建議的系統,通常被稱為多屬性推薦系統(multi-criteria recommender system,M-CRS)。在過去的幾年里,研究者們在處理多屬性推薦系統方面做出了很大的努力?,F有的方法大致可以分為三類,分別是基于啟發式鄰域的方法、基于聚合的方法和基于模型的方法?;卩徲虻膯l式方法首先通過使用各種多屬性相似性度量并基于用戶鄰域的已知評分來預測用戶的未知評分,從而為目標用戶找到一個鄰域列表[15-19]。盡管推薦結果是可以解釋的,但是基于鄰域的方法往往受到原始評分數據稀疏的影響,并且在處理大型數據集時可能無法擴展。假設總體項目評分和個別屬性特定評分之間存在某種關系,基于聚合的方法嘗試在它們之間構建聚合函數,然后應用該函數聚合多個屬性特定評分以進行預測[17,20-24]。相比之下,基于模型的方法主要用于利用觀察到的多屬性評分數據開發預測模型,然后使用該模型預測用戶對未知項目的評分[25-31]。不同的推薦方法對實際的推薦問題具有很強的魯棒性,因此該文采用了基于學習模型的方法來解決多屬性推薦問題。
張量分解在多屬性推薦系統中得到廣泛應用。張量是矩陣的多維擴展,是用于建模多面數據的應用程序中非常強大的工具。張量分解是基于模型的技術的里程碑。已針對多屬性推薦系統開發了各種張量分解技術[32-33]。但是,所有用于多屬性建議的現有技術都存在數據稀疏和污染的問題。換句話說,由于評分張量非常稀疏,并且在實際應用程序中包含惡意用戶的虛假信息,因此產生的潛在因素仍然不足以實現令人滿意的性能。
為了克服多屬性推薦器系統中的數據稀疏和污染問題,該文嘗試將輔助信息合并到評級張量中,以利用先驗特征,并使用對抗性學習來防御來自假信息的攻擊。 通常,輔助信息在傳統的單屬性推薦也稱為邊信息(side information)[10-14]。
但是,如何將輔助信息有效地整合到評分張量中,以及如何利用對抗性學習來增強模型的魯棒性在該方案下仍是挑戰。
為了克服這兩個挑戰,該文通過集成深度表示學習和張量因子分解提出了對抗性深度張量因子分解(ADTF)的方案,其中嵌入了輔助信息以有效補償張量稀疏性,而對抗性學習則用于增強模型穩健性。
通過結合對抗性堆疊降噪自動編碼器(adversarial stacked denoising autoencoder,ASDAE)和CANDECOMP / PARAFAC(CP)張量因子分解,展示了ADTF方案下的實例,其中用戶和項目的輔助信息與稀疏的多屬性評分和潛在因子在聯合優化學習下緊密相關。一方面通過堆疊降噪自動編碼器(stacked denoising autoencoder,SDAE)對用戶和商品的邊信息進行編碼,以分別補償用戶和商品的塔克分解潛在因素。并使用梯度方法更新了三個潛在因子矩陣。另一方面,對抗訓練用于學習中間層的有效潛在因素,而不是放在SDAE的外部輸入上。
該文的貢獻可總結如下:為了解決多屬性建議中的數據稀疏和污染問題,提出了一種將深度結構和張量因子分解相集成的通用架構,嵌入了輔助信息以有效補償張量稀疏性,并且采用了對抗性學習以增強模型的魯棒性;基于通用體系結構提出一種特定的ADTF方案,其中CP張量分解和兩個針對用戶和項目的ASDAE結合在一起,以改進基于張量分解的建議;在三個真實數據集上的實驗結果表明,在多屬性推薦方面,提出的ADTF優于最新方法。
在推薦系統中已廣泛使用多屬性評分,現有的技術可以簡單地分為三類,包括基于啟發式鄰域的方法、基于聚合的方法和基于模型的方法。基于啟發式鄰域的方法嘗試使用各種多屬性相似性度量來收集目標用戶的鄰居,然后基于這些鄰居的已知評分估計未知評分[15]。Lakiotaki等人[16]使用多維距離度量計算成對用戶之間的距離,然后采用多屬性協同過濾方法確定每個用戶最喜歡的項目。Liu等人[17]提出了一種基于用戶偏好的偏好格來預測未知項的評分。Mikeli等人[18]利用多屬性歐氏距離估計每對用戶之間的總距離,并利用協同過濾技術解決推薦問題。Sreepada等人[19]提出了一種新的技術來學習每個用戶偏好的屬性以及使每個項目流行的屬性。此學習有助于找到相似的用戶/項目組,以便向用戶推薦適當的項目。盡管推薦結果通常是可以解釋的,但是基于鄰域的方法往往受到原始評分數據的稀疏性的影響,并且在處理大型數據集時可能無法擴展。
假設總體用戶評價與單項目屬性評價之間存在一定的關系,基于聚合的方法主要是建立映射函數來聚合多個特定屬性的評價進行預測。Lakiotaki等人[20]提出了一種效用加性方法,在給定的推薦屬性下對邊際用戶的偏好進行綜合。Jannach等人[21]提出使用支持向量回歸來學習個別屬性特定評分的相對重要性,然后使用加權方法將基于用戶和項目的回歸模型結合起來預測未知評分。Zheng[22]提出應考慮多個屬性之間的依賴性,提出了一種基于屬性鏈的多維度評分匯總推薦方法。Hamada等人[23]提出了一種基于聚合函數的方法,利用自適應遺傳算法有效地融合了多屬性推薦系統的屬性評分,提高了多屬性推薦系統的準確性。
另一方面,基于模型的方法旨在利用觀察到的多屬性評分數據學習預測模型,然后利用該模型估計用戶對未知項目的評分[24]。Sahoo等人[25]提出了一種基于概率混合模型的算法,利用多屬性評分依賴結構改進推薦。Nilashi等人[26]提出了一種基于自適應神經模糊推理和自組織地圖聚類模型的推薦方法。Hamada等人[27]為提高推薦系統的預測精度,提出了一種基于模糊集和系統的結構和主要特征的推薦模型。Li等人[28]利用多線性奇異值分解技術,研究推薦任務的用戶、項目和屬性之間的顯式和隱式關系。Hassan等人[29]提出了一種使用模擬退火算法訓練的神經網絡模型,以提高多屬性推薦系統的預測精度。Tallapally等人[30]提出了一種擴展的疊層自動編碼器來有效地學習每個用戶的屬性和總體評分之間的關系。
與上述工作不同的是,該文考慮了多屬性推薦中的數據污染問題,并通過對抗訓練和引入額外信息,來提高推薦系統的魯棒性。
推薦系統容易受到惡意用戶的攻擊,這些惡意用戶會制作一些虛假信息進行數據污染,從而使得推薦模型的推薦結果偏離原始數據分布,從而導致推薦中的錯誤[34]。
最近,對抗性機器學習技術在各種任務(例如圖像字幕,序列生成,圖像到圖像翻譯,神經機器翻譯和信息檢索)上顯示出了出色的性能。
盡管展示了巨大的潛力,但在推薦系統中應用對抗性機器學習技術的工作很少[35-36]。Wang等人[35]提出了一種minimax對抗游戲,以減少傳統訓練模型對對抗示例的敏感性,這成為了三種不同任務的最新方法,包括網絡搜索、問題解答和項目推薦。He等人[36]通過選擇具有成對損失函數的模型,將對抗性噪聲引入訓練過程來改進信息檢索GAN(IRGAN)。
與先前的工作不同,該文進一步利用了將邊信息納入CP分解中的優勢,以解決多屬性建議中的數據稀疏問題,在多屬性推薦系統中,通過對抗性訓練來解決數據污染問題。
先前的研究表明,矩陣分解及其變體是現代推薦系統中使用的主要技術[32-33]。在這一節中,將介紹矩陣分解技術的一些初步內容,并在表1中給出一些相關的符號。

表1 符號定義
在推薦系統中,矩陣分解模型常被用于處理用戶和項目之間的二維偏好關系,其中矩陣允許每個用戶在[1-5]的5分評分表上任意對給定項目進行評分。
然后,基于已知的評分數據,將用戶和項目投影到一個聯合的潛在因子空間,使得用戶項目偏好可以建模為該空間中潛在因子的內積。形式上,設um從用戶m的矩陣因式分解模型導出的潛在因子表示,in為項目n的潛在表示。然后,可由此估計項目i的用戶m的偏好評分rmn。
(1)
顯然,推薦系統的關鍵挑戰是如何在聯合潛在因素空間中導出用戶和項目的表示。為了實現這一點,使用等式(2)將觀察到的用戶項評分數據集的正則化平方損失最小化。

α(‖um‖1+‖in‖1)
(2)
其中,O是指用戶項對的集合(m,n),其值rmn是已知的。第一項是預測誤差的平方,第二項和第三項分布是L2范數,L1范數正則化,控制了模型復雜度,其中α和β是超參數。
公式(2)中的優化問題可以用經典的隨機梯度下降法來解決,該方法迭代更新用戶和項目的潛在因素向量[37]。一旦優化過程完成,公式(1)便可用于直接預測給定用戶對未知項的評分。
通常,多屬性推薦系統(MCRSs)是指除了支持推薦的總體用戶項目評分之外,還利用各種不同屬性的用戶項目評分的系統。如文獻[15]所述,MCR的公式如下:
U×V×C→R0×R1×…×RL-1
(3)
其中,左側的U、V和C分別是用戶、項目和屬性的集合,而右側的R0表示用戶對項的總體評分,R1,…,RL-1表示用戶對單個屬性的評分(L為屬性數)。在公式中,總體評分信息被視為一種特殊類型的屬性評分。
給定觀察到的用戶項目屬性評分數據,首先通過擬合觀察到的數據建立多屬性預測模型,然后應用該模型預測用戶對未知項的總體評分和多屬性特定評分。
自然地,引入一個三階張量(矩陣的推廣)來表示三維用戶項目屬性評分數據。
基于張量分解的方法已廣泛應用于多屬性推薦系統[15-19]。但是,它們遭受數據稀疏和污染的困擾。事實證明,深度學習模型可以有效地從原始數據中發現各種任務的潛在表示[29-37]。對抗訓練方法通過動態生成對抗示例來增強訓練過程。為了改善基于張量分解的建議,利用深度學習和對抗訓練有效地合并了輔助信息,從而使所得模型克服了上述缺點。
該文提出的ADTF嘗試將深度結構與張量分解結合起來,其中深度結構處理附帶信息,而張量分解處理3D 用戶項目屬性評分數據。
為用戶構建深層結構,其中分別將用戶的真實和虛假輔助信息作為輸入。通過聯合優化網絡和張量因子分解潛在用戶的因子,學習到有效的用戶潛在表示。
類似地,對物品構建同樣的深層結構,其中將物品的真實和虛假輔助信息作為輸入。通過聯合優化深度網絡和張量因子分解項目的潛在因子,可以學習項目的有效潛在表示。
輔助信息參與學習有效的潛在表示,這為張量分解提供了有效的知識遷移,而對抗訓練則防御了來自虛假信息的攻擊,因此所提出的對抗深度張量網絡的通用架構可以緩解稀疏張量和數據污染問題。在通用架構的基礎上,通過集成ASDAE和CP張量分解來提出特定的實例。
基于上面提到的通用體系結構,特定的ADTF方案由三個組件組成:用戶的ASDAE、項目的ASDAE和張量分解。如圖1所示,在ADTF中,單個ASDAE會將真實和偽造的輔助信息都作為輸入,而通過判別器進行對抗訓練,通過自編碼器進行特征提取。

圖1 對抗深度張量網絡結構
(4)
并獲得最終輸出層L(u)的輸出為:

(5)


ADTF通過以下目標函數從評分張量和輔助信息中學習用戶的潛在因子、項目的潛在因子和屬性潛在因子。
(6)
其中,總損失函數J由五個部分組成:張量分解的損失函數Lt,輔助信息的重構誤差函數Lr,深度表示和潛在因子之間的近似誤差函數La,對抗訓練的重構誤差函數Ld和防止過度擬合的正則化項freg之間的損失函數。
第一項Lt表示稀疏評級張量上的因式分解損失,其公式為:
(7)
其中,θt={U,V,C};二元張量I是稀疏性指標,其中每個元素指示是否觀察到了相應的等級;?表示潛在因子向量在上述相應矩陣中的外積;⊙是按元素相乘。
第二項為輔助信息對于用戶和物品的重建成本,其公式為:
(8)
其中,θr={Wu,bu,Wv,bv},α和β是懲罰參數。
第三項,用戶和項目的深度表示和潛在因子向量之間的近似誤差,公式為:
(9)
其中,θa={Wu,bu,Wv,bv,U,V},ρ和γ是懲罰參數。
對抗訓練的損失函數公式表示為:
(10)

最后一項為正則化項freg,約束整個網絡,其公式如下:

‖W(v)‖2+‖b(u)‖2+‖b(v)‖2
(11)
在公式(6)中,Θ=θt∪θr∪θa。
張量分解與神經網絡的結合難以通過統一的神經網絡參數回傳進行更新,而為了同時取得張量分解的高效性和神經網絡的有效性,通過分布迭代優化而不是聯合優化。
該文針對ADTF提出的分步迭代優化,通過使用以下兩步過程來實現。
步驟I:給定所有神經網絡的權重W與偏置b,u、v、c,對總損失函數J在公式中的梯度可以通過以下方式獲得:
(12)
其中,Iijl指示是否觀測到相應的評分。計算得到梯度后,統一進行梯度更新。
步驟II:固定潛在因子向量U、V和C,所有神經網絡的權重W與偏置b可以通過SGD方法的反向傳播來訓練兩個ASDAE:
(13)
(14)

(15)
循環迭代兩個步驟,直到收斂為止。
通常,兩個SDAE的中間層調節多屬性評分和邊緣信息的相互作用,以學習潛在因子。這兩個中間層是使ADTF能夠同時學習有效的潛在因素并捕獲用戶和項目之間的相似性和關系的關鍵。
為了評估算法,該文使用了來自TripAdvisor、Yahoo!Movie和RateBeer的數據集,這三個數據集都被廣泛用于多屬性推薦系統的評估。在實驗中,對每個數據集的實驗結果進行五次交叉驗證,并采用平均絕對誤差(MAE)、命中率(HR)和歸一化折現累積增益(NDCG)來評估推薦性能:
(17)
MAE越低,推薦性能越好。
(18)
其中,Hits@K是推薦列表中顯示的目標項目數,GT是真實項目集。
(19)
其中,ZK確保排名結果的值范圍為[0,1],ri是位置i處項目的評分。HR和NDCG越高,推薦性能越好。
通過多屬性推薦實驗,對提出的方法ADTF進行了驗證。
AFBM[9]:基于聚合函數的方法(aggregation function based method),使用矩陣分解將觀察到的用戶標準評級數據分解為因子,然后使用學習模型根據單個標準(不包括特殊總體標準)估算用戶的評級。
CMF[10]:集合矩陣分解模型(collective matrix factorization),可聯合分解多個不同矩陣,包括用戶項目矩陣和包含附加邊信息的矩陣;
HCF[11]:混合協同過濾模型(hybrid collaborative filtering),融合了矩陣分解和aSDAE模型;
DCF[12]:深度協作過濾(deep collaborative filtering)是一種廣泛使用的深度學習推薦模型,結合了概率矩陣分解與降噪堆疊自動編碼器來實現推薦效果;
t-SVD[24]:張量奇異值分解(tensor singular value decomposition)是將MF方法推廣到更高維度的張量分解模型;
DTF:將文中的ADTF去除對抗訓練模塊,用于對比對抗訓練模塊的效果;
ADTF:文中所提出的對抗性深度張量因子分解模型(adversarial deep tensor factorization,ADTF),在深度學習網絡中融合評分張量和輔助信息,并經過對抗訓練以增強模型魯棒性。
表2列出了評估方法的評分預測精度,其中每個數據集的最低MAE用黑體突出顯示。

表2 不同算法在數據集上的MAE性能
可以看出,ADTF在MAE方面明顯優于目前的對比方法。表2的實驗結果表明,提出的基于張量因子分解的多屬性評分信息聯合建模方法,能夠考慮用戶、項目和屬性維度之間的相關性,提高預測性能。相比之下,AFBM采用支持向量回歸的方法對屬性信息進行聚合,只考慮了用戶與屬性、項目與屬性等三個維度中任意兩個維度之間的相關性。t-SVD和ADTF的效果說明張量因子分解非常適合MCRS,因為它是一種很好的建模三維(即用戶、項和屬性)之間內在交互的方法。
可以看出,在一般情況下,HCF,DCF和CMF優于AFBM,而ADTF和DTF又優于t-SVD,這表明在2D評分矩陣或3D評分張量中合并輔助信息的有效性。ADTF,DTF,HCF和DCF優于CMF,表明深度結構可以更好地獲取邊信息的特征。HCF,DCF,CMF和AFBM僅考慮三個維度中任意兩個維度之間的相關性,因此ADTF,DTF和t-SVD優于這些方法。ADTF的性能優于DCF,這表明張量分解方法可以有效地學習三個維度之間的內在相互作用,這對于多準則推薦系統是一個很好的選擇。ADTF的性能優于DTF,這表明對抗訓練可以有效提高深度學習網絡的魯棒性。

(a)HR@K (b)NDCG@K

(a)HR@K (b)NDCG@K

(a)HR@K (b)NDCG@K
為了進一步評估Top-K項目推薦,圖2~圖4顯示了三個數據集上不同方法的性能,其中潛在因子數設置為10。
圖2~圖4中推薦列表K的長度不固定,而是通過考慮K取值2到10之間來評估方法在不同Top-K場景下的推薦效果。這里,選擇的K最大到10,是因為用戶通常會只關注一些最重要的建議,而實際應用場景中,通常訪問頻率最高的也僅限于前十的推薦建議。可以觀察到,隨著K的增加,由于目標項目出現在Top-K列表中的可能性將會提高,因此得到的性能如預期一樣得到改善。在三個數據集、不同場景下的Top-K推薦中,ADTF都取得了最好的效果,證明了提出的方法的有效性和魯棒性。
該文提出對抗深度張量因子分解模型(ADTF)進行推薦,將深度表示學習和張量因子分解相結合。ADTF可以從評分張量和輔助信息中學習有效的潛在因子。在實際數據集上的實驗結果表明,ADTF在評分預測任務和Top-K推薦任務上的表現優于最新模型。未來的工作中,將考慮改進輔助信息的合并方式和對抗性訓練網絡,以在多標準推薦系統中實現更好的性能。