歐高亮, 汪海濤, 姜 瑛, 陳 星
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
隨著大數據時代的到來,各大互聯網公司對數據越來越重視,尤其是各大國內外的電商網站的實際需求是推進推薦算法研究的動力。國內外的電商網站上和社交網絡上,最常見的推薦算法則是根據用戶的歷史行為數據來推薦用戶可能會購買的或者感興趣的商品或者話題。在現實的推薦系統中,影響推薦準確度的2個主要因素:數據稀疏性[1]、冷啟動。在沉默用戶占大多數的情況下,依賴用戶歷史行為數據的協同過濾算法的預測性能必然不夠理想。
協同過濾推薦模型可以分為:早期提出的基于記憶的推薦;發展較為成熟的基于模型的推薦[2,3];前瞻性較好的混合型推薦[4,5]。基于模型的推薦中矩陣分解方法[2~4]是其最具代表性的一個方法。隱語義模型(latent factor model,LFM)[2]算法則是矩陣分解算法中較為常用的。LFM算法通過降維來獲得隱含特征,進一步預測用戶對商品的潛在打分,其推薦精度有待提高。
近年來,深度學習理論發展使得利用神經網絡從大規模無標注數據中提取特征成為可能。Oord A V D[9]和Xang X提出直接用卷積神經網絡(convolutional neural network,CNN)[8]和深度信念網絡(deep belief network,DBN)[9]從內容信息中學習特征表示用于音樂推薦。為了綜合利用評論文本和評論信息來提高推薦系統的效果,Wang H等人提出了協同深度學習(collaboration deep lear-ning,CDL)模型[10],CDL解決了模型在數據稀疏時,學習隱藏特征不充分的缺陷,其沒有考慮沉默用戶問題。當前國內研究人員,張敏等人提出了隱因子模型(stack and denoi-sing auto-encoder,SELFM)[11]來加強語義,利用層疊降噪自動編碼器(SDAE)提取商品評論文本特征,將用戶評論與評分聯合,以此提高評分預測的準確性,但SDAE的學習能力和分類精度不如稀疏邊緣降噪自動編碼器(sparse marginalized denoising auto-encoder,SmDAE)。鄧俊峰[12]提出的一種優化的SmDAE模型,把稀疏、邊緣降噪編碼器的優點聯合在一起,增強了深度網絡的學習能力和分類的準確度。
本文模型選用改進的SmDAE用來處理評論文本。
結合深度學習和協同過濾的方法,提出了一種改進SmDAE與近鄰項目影響力的矩陣分解模型相結合的混合推薦模型(Sm-LFM),在特征提取的部分,通過SmDAE算法從經過選詞模型的評論文本中提取項目特征向量。并優化了SmDAE網絡,Softmax是當前分類效果較好的分類器,并且把分類器加到整個網絡的輸出,把網絡輸出分類為商品評分的五類評分,并且將實際評分和預測評分參與SmDAE網絡微調,將評分作為特征提取有效性反饋。在協同過濾部分,在數據過于稀疏會導致LFM模型不能很好顯示項目的真實的特征,通過商品特征向量來計算近鄰項目的影響力,將近鄰項目影響力加入矩陣分解模型中以加強項目特征表征性,來提高算法效率與推薦精確度。
Sm-LFM模型主要框架如圖1所示。Sm-LFM模型由評論處理模型,文本編碼模型、LFM矩陣分解模型三部分構成。

圖1 Sm-LFM模型框架
文本編碼模型所用的詞空間大小由評論處理模型確定。每個商品全部評論合并評論文本特點是找不到任何規律的,其長短不一、詞匯量變化大,且自動編碼器的輸入要求是定長。在評論文本各詞出現頻率差異較大,很難判斷是不是商品特征的關鍵字。在所有評論中,少量的評論與評分相互矛盾,也沒有實際意義,屬于無效的評論。首先把無效的評論過濾,再采用關鍵詞抽取方法(TFIDF)來確定每個詞的重要性,TFIDF是當前文本處理比較常見的方法。選出TFIDF值最高一組構成一個詞空間。每個商品的評論都有一個與詞空間對應的相同維度的向量來表示,即評論處理模型的輸入。
1.2.1 自動編碼器
自動編碼器由輸入層(h)、隱含層和輸出層(y)組成,輸入層和輸出層規模相同,隱含層規模小于輸入和輸出層的規模。設編碼函數為f,解碼函數為g,則
h=f(x):=Sf(wx+p)
(1)
(2)
式中Sf和Sg分別為編碼器和解碼器的激活函數。
訓練網絡參數盡可能地使h和y靠近,其用重構誤差L(x,y)來表示接近程度。當Sg為Sigmoid函數時,有
(3)
訓練集樣本是S,自動編碼器的整體損失函數
(4)
對于稀疏自動編碼器(SAE),其損失函數為
(5)

對于邊緣降噪自動編碼器(mDAE),其損失函數為
(6)

1.2.2 稀疏邊緣降噪自動編碼器
在編碼器的隱含層上同時引入了SAE的稀疏性限定條件和mDAE的邊緣降噪限定條件,形成SmDAE,顯然SmDAE也就具有兩種網絡的優點。其網絡結構如圖2所示。

圖2 SmDAE的網絡結構
在隱含層上分別加入SAE和mDAE的約束表達式,歸納式(5)稀疏自動編碼器和式(6)邊緣降噪自動編碼器的損失函數表達式,得到的SmDAE的損失函數
JmDAE(θ)=L(x,fθ(μx))+JSAE+JmDAE
(7)
1.2.3 改進的SmDAE特征提取
評論文本通過SmDAE處理后得到的只是商品特征,預測的評分以及用戶對商品的喜愛程度才是最終的結果。為了充分利用評論文本的信息以提高特征質量,優化SmDAE網絡,整個網絡的輸出后面加上分類器,把輸出分類為商品評分的五類評分,且將實際評分和預測評分作為特征的有效性反饋,此時的優化目標需在式(7)的基礎上加上預測評分和真實評分損失函數Y
(8)

通過訓練網絡來優化損失函數J。因為單層SmDAE網絡的特征提取能力不足,也不能充分體現網絡的優勢。因此,解決的方法則是堆疊,形成多層SmDAE網絡。通過首先分層訓練每層SmDAE,再微調整個網絡已達到網絡最優化。
1.3.1 近鄰項目的相似度計算和影響力計算
比較項目相似性時,只需要計算每個項目特征向量的相似性即可。采用余弦相似度來計算項目的相似度,余弦值越接近1則越相似。假設A[A1,A2,…,An],B[B1,B2,…,Bn]為兩個n維特征向量。相似度計算
(9)
為了反映近鄰項目對目標項目的影響,本文將近鄰項目對目標項目的影響力融入到矩陣分解模型中。假設影響力為X,則N個近鄰項目對目標項目的影響力為
(10)
式中X為項目產生的影響力,T為近鄰項目的集合,Wf為每個近鄰項目產生的影響力隱式反饋。
1.3.2 矩陣分解模型
用戶行為數據集即用戶—項目評分矩陣,使用LFM對其降維,R矩陣為用戶—項目評分矩陣,矩陣值Rui為用戶u對項目i的評分。LFM將評分矩陣RU×I分解為2個低維度矩陣PU×N與QN×I。用戶U對商品I的評分模型為
(11)
將近鄰項目的影響力加入到評分模型中,得到新的評分模型
(12)
所有的評論集合為K,最優化損失函數C來估計參數,損失函數

λ2‖QI‖2+λ3‖X‖2
(13)
協同過濾算法容易過擬合的主要原因就是評分矩陣過于稀疏,在損失函數中加入了正則項λ1‖PU‖2+λ2‖QI‖2,防止過擬合,采用隨機梯度下降法來最小化損失函數,該算法是最優化理論里最基礎的優化算法,首先通過求參數的偏導數找到最速下降方向,然后通過迭代法不斷地優化參數,系數λ則需要反復實驗得到。式(13)中的C則是LFM模型的最小化的目標。
文本編碼模型可以微調整個矩陣分解的過程,來提升模型預測準確率,同時在優化LFM模型時,也可以微調文本編碼模型的參數,使整個模型的性能最優化。在數據過于稀疏會導致LFM矩陣分解模型不能很好地顯示項目的真實的特征,本文將近鄰項目影響力加入矩陣分解模型中以加強項目特征表征性。
實驗數據集采用亞馬遜數據(Amazon product data)。亞馬遜作為美國最大的電商平臺,其評論數據集真實有效;幾乎涵蓋了所有商品的種類;子數據集根據平臺的商品類別劃分的,由于數據集過于龐大,本文實驗中選擇性下載藝術、食品、手機、鞋類、辦公用品等5個用于實驗的其中5個5核心“小”子集,這5個數據評論子集評論內容翔實,文中實驗選擇的5個數據集各方面皆互異,對于測試本文模型在不同環境下的性能有益。
實驗數據集隨機按照1∶9分成測試集和訓練集,為了對比實驗的條件盡可能一致,因此,對比實驗也用本文模型相同的訓練集合測試集。
本文采取均方根誤差MSE來評價模型性能。假設測試集為T,其中,RUI是用戶u對商品i的實際評分,UI是模型預測出來的用戶u對商品i的評分,則MSE定義為
(14)
選擇CDL和混合SDAE模型[13]作為本文的對比模型。CDL模型將概率化LFM模型與貝葉斯SDAE模型相聯合,CDL模型通過從商品的內容和標簽來提取特征,從而得到用戶對商品評分的數學期望。用Theano來實現CDL模型,CDL中LFM模型與本文模型的部分參數、細節盡可能相同。混合SDAE模型是將極限學習機和SDAE相結合推薦模型,使用逐層自編碼的思想將極限學習機與降噪自編碼器堆疊,計算的堆棧降噪自編碼器的深度學習模型,最后通過用模型提取的特征應用于最近鄰算法預測打分。對于混合SDAE模型中SDAE,與本文模型的網絡層數、部分參數、細節盡可能相同。
對于本文Sm-LFM模型,通過評論處理模型選擇出2 000個TFIDF值最高的詞,作為文本編碼模型的輸入,文本編碼模型中選擇3層SmDAE網絡,隱含特征空間的維數取n=300,系數取λ1=λ2=λ3=0.1。此中SmDAE網絡的第一、二、三層的輸出維度取值依次取800,80和5,降噪參數每層都相同為0.94,近鄰數目取10個。文本編碼模型和矩陣分解模型都用較為常見的方法訓練,前者采用Adam方法,后者采用隨機梯度下降方法。
為確保本文模型和對比模型的對比性,采用均方根誤差(mean square error,MSE)作為衡量模型預測評分準確度的指標均方根誤差,即預測評分與測試集真實的評分的MSE。
2.3.1 不同模型性能對比
在Sm-LFM、混合SDAE模型[13]和CDL模型上分別運行測試數據集,從表1可以看出,Sm-LFM模型的性能在5個子數據集上均有提升,相比CDL和混合SDAE模型都有較大的提升。提升效果最好的和最差的分別是鞋類和辦公用品,前者提升了近8.4 %,后者提升近1 %。
在同樣使用深度學習網絡提取特征的情況下,Sm-LFM比混合SDAE模型性能提升約 5.43 %,混合SDAE模型沒有引入額外的特征加強信息,且其評分預測使用極限學習機和最近鄰算法嚴重依賴特征質量,且學習能力弱于Sm-LFM使用的SmDAE。Sm-LFM比CDL模型性能最高提升8.370 %,CDL模型通過從商品的內容和標簽來提取特征的能力不如通過SmDAE從評論文本提取特征的能力。

表1 性能對比
2.3.2 超參數的影響
超參數n代表了SmDAE網絡從評論文本中提取出的項目特征的有效維度,也是矩陣分解的隱因子空間維度,即式(9)中的n。因此,n的取值將會很大程度影響算法的精確度,圖3是不同n值對SmDAE的MSE性能的影響。由圖 3可以看出,當n值低于100時,提取不到有效的項目特征;當n值過大時,引入干擾信息會使MSE的值增大;式(13)中λ根據反復實驗得到,當λ1=λ2=0.1,且n=400時,模型性能最優,MSE為0.68。

圖3 超參數n對模型性能(MSE)的影響
本文提出Sm-LFM模型,概括考慮評論文本與評分用來挖掘商品的潛在特征,并考慮了近鄰項目對預測評分的影響,預測評分的準確率上相比混合SDAE模型和CDL模型有所提高,雖然本文模型的訓練時間相比對比模型花費的更多,但本文模型不需要每一次數據更新都重新開始訓練,只需微調模型即可,所以,本文模型的平均訓練時間相比其他模型來說,依然較短。在下一步的工作中,考慮將評論文本中的無效評分與評分和評論文本內容不符合的評論過濾,并且將嘗試把更多文本分析相關的深度模型引入推薦算法中來進一步來提高算法效率與推薦精確度。