張光榮,王寶亮,侯永宏
1.天津大學 電氣自動化與信息工程學院,天津 300072
2.天津大學 信息與網絡中心,天津 300072
隨著信息時代的到來,信息過載[1]使得用戶很難從海量的數據中找到自己感興趣的內容,針對用戶興趣的推薦算法(recommendation algorithm)應運而生。推薦是根據用戶的個人歷史行為信息,預測出用戶的個性化偏好,從而為用戶提供可能感興趣的商品,目前已成為電子商務、視頻音樂點播、新聞推送等領域的核心技術[2]。
推薦算法也面臨著一系列的問題,數據稀疏性(sparseness)就是其中之一。數據稀疏性是指用戶歷史行為數據總量巨大,但具體到每一個用戶,能利用的數據卻十分稀少[3]。推薦系統(recommended system)自定義至今,針對數據稀疏性難題,研究人員提出了各種方法予以緩解,主要有兩種思路:第一是基于數據填充方法,主要思想是借助其他信息建立有效的用戶模型,以此緩解用戶歷史數據的稀疏性;第二是不借助其他數據建立模型,直接利用用戶歷史評分信息,通過矩陣分解(matrix factorization)、聚類(cluster)、機器學習(mac-hine learning)等對用戶歷史評分數據進行預處理[4]。
本文通過融合以上兩種思路,把表達用戶對商品屬性認知的標簽,通過算法預處理,加入至機器學習模型,提出融合標簽的實值條件受限玻爾茲曼機推薦算法——Tag_R_CRBMs,降低推薦算法中數據的稀疏性。
本文第2章介紹相關工作;第3章主要介紹本文提出的融合用戶標簽的實值條件受限玻爾茲曼機推薦算法;第4章內容為基于MovieLens數據集的實驗結果及分析;第5章對全文進行總結。
在借助其他信息緩解數據稀疏中,文獻[5]提出一種基于項目相似度的數據填充方法,其目的在于當原始數據集極度稀疏時通過數據填充為算法提供足夠的數據支持。文獻[6]通過用戶隱含的反饋,例如在頁面停留的時間、聽一首歌的時長、選擇商品的順序,隱含反饋信息與用戶已有的歷史信息結合,組成一個混合的推薦系統。
隨著Web2.0的到來,標簽(tag)成為一種有用且能很好反映用戶偏好的文本信息[7],在對標簽的處理中,主要有潛在Dirichlet分布(latent Dirichlet allocation,LDA)模型、TF-IDF(term frequency-inverse document frequency)模型、Word2vec模型。文獻[8]在標簽系統中運用LDA模型,以此來發現用戶與標簽、資源與標簽之間的潛在語義關系,并計算用戶選擇某個資源的條件概率,然后將計算出的概率與通過協同過濾算法計算出的資源相似度相結合,預測用戶偏好值。TF-IDF是一種統計方法,用以評估一個詞對于一個文檔集或者一個語料庫中的某一份文檔的重要程度,字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比例下降[9]。Word2vec是Google推出的詞嵌入(word embedding)的開源工具,為一群用來產生詞向量的相關模型,這些模型為雙層的神經網絡(neural network,NN),用來訓練以重新建構語言學的詞文本[10]。以上三種模型,TF-IDF以其容易理解,計算簡單的優點,在計算用戶對標簽偏愛度上脫穎而出。
在借助學習模型對數據進行預處理方法中,矩陣分解方法首當其沖,主要有奇異值分解(singular value decomposition,SVD)[11]、隱因子模型(latent factor models,LFM)[12]、非負矩陣分解(non-negative matrix factorization,NMF)[13]、基于概率的矩陣分解(probabilistic matrix factorization,PMF)[14]。矩陣分解模型通過減少用戶-商品評分矩陣的維數,能在一定程度上緩解用戶歷史數據稀疏性。矩陣分解中因子的選取至關重要,因子越能準確地描述用戶偏好與商品特征,推薦結果越準確。現有矩陣分解推薦算法通常采用商品類別構成因子向量,然而商品類別并不足以精準描述用戶偏好和商品特征,限制了矩陣分解推薦算法性能進一步提高。
隨著近年來深度學習(deep learning,DL)的興起,基于深度學習的推薦模型快速發展[15],其中以受限玻爾茲曼機(restricted Boltzmann machine,RBM)模型以及條件受限玻爾茲曼機(conditional restricted Boltzmann machine,CRBM)模型最受歡迎[16]。2013年Georgiev等[17]提出顯層為實值的單元的受限玻爾茲曼機(real-valued restricted Boltzmann machine,R_RBM)模型,使得模型訓練得到簡化,性能獲得提升。文獻[18]在實值條件玻爾茲曼機里引入了好友之間的信任關系,緩解了數據稀疏性,提升了推薦的準確性。
雖然研究者對兩個思路都進行了深入的研究,但兩個思路結合,尤其是把標簽與深度學習模型結合的研究相對欠缺。基于此,本文提出了Tag_R_CRBMs算法。首先,引入文本分類當中的TF-IDF算法,得出用戶對其所使用標簽的喜愛程度,與標簽基因(taggenome)[19]數據相乘,可以得到用戶對具有使用過標簽屬性的商品的評分,標準化預測商品評分使其在0~5的范圍內。其次借鑒文獻[17]和文獻[18]思想,提出顯層單元為實值的條件受限玻爾茲曼機(realvalued conditional restricted Boltzmann machine,R_CRBM)模型,此模型不需要把實值評分轉化為整數值評分,減少了顯層的參數,R_CRBM模型顯層輸入為通過標簽的預測評分與用戶歷史評分,條件層輸入用戶潛在的評分/未評分{0,1}向量與使用標簽/未標簽{0,1}向量。最后訓練模型,獲得模型的參數。Tag_R_CRBMs算法流程圖如圖1所示。
本文的Tag_R_CRBMs算法的主要貢獻有兩方面:第一,應用TF-IDF算法與標簽基因數據把用戶標簽數據轉換為用戶評分數據,緩解了用戶評分數據的稀疏性;第二,在R_CRBM模型的條件層中,加入了用戶潛在的使用標簽/未使用標簽信息。

Fig.1 Workflow of Tag_R_CRBMs algorithm圖1 Tag_R_CRBMs算法流程圖
用戶對商品所應用的標簽是用戶對商品態度一個很好的反饋,用戶可能對同一個商品使用多個標簽,也可能對多個商品使用同一個標簽,本文引入TF-IDF算法獲得用戶對標簽的喜愛度。
TF-IDF是一種用于信息檢索與數據挖掘的常用加權技術,TF(term frequency)為詞頻,表示一個詞在文檔中出現的頻率,IDF(inverse document frequency)為逆文檔頻率,是一個詞普遍重要性的度量。令U={u1,u2,…,un}為用戶集合,T={t1,t2,…,tk}表示用戶所使用的標簽集合,用戶對所應用標簽的使用頻率為:

式(1)中,分子表示用戶u對標簽t的使用次數,分母表示用戶使用標簽的總次數。
用戶u對標簽t的逆文件頻率為:

其中,n(ui,tj)表示標簽tj被用戶ui使用的次數,n(ui,t)表示用戶ui對標簽t使用的次數。IDF(u,t)是標簽t對用戶u普遍重要性的度量,表明標簽t被不同用戶使用的可能性。
用戶對其標簽的喜愛程度即用戶對其使用標簽的TF-IDF為:

對于標簽集合中,用戶沒有使用過的標簽,其TF-IDF值設為None。用戶對標簽的TF-IDF矩陣如表1所示。

Table 1 User-tag TF-IDF matrix表1 用戶-標簽TF-IDF矩陣
3.1節獲得了用戶對標簽的喜愛度,本節通過利用標簽基因數據與用戶對標簽的喜愛程度相乘,得到用戶-商品預測評分。
標簽基因是一種提升傳統標簽模型的數據結構,目的是更好地提供與用戶的交互。I={i1,i2,…,im}是商品集合,用rel(t,i)∈[0,1]量化每個標簽t∈T與每個商品i∈I之間的關聯度,rel(t,i)為0表示不相關,為1表示強相關。定義標簽基因G為標簽-項目矩陣,數學公式為:

其圖像化描述如表2。
基于隱因子分解模型的思想,用戶對標簽t∈T的偏愛度很高,商品i∈I和標簽t∈T強相關,那么可以預測用戶對商品i∈I擁有較高的喜愛度,因此預測用戶對商品的評分值如下式:

Table 2 Relevance table between tags and items表2 商品與標簽之間的相關性表

其中,l(u,i)表示預測的評分,由于用戶對標簽應用的缺失,l(u,i)也是一個充滿缺失值的預測評分矩陣。由于用戶歷史評分數據范圍為[0,5],l(u,i)需要進行規范化到0~5范圍內。

如式(6)所示,rp(u,i)為規范化后的評分,min(l(u,i))為l(u,i)的最小值,max(l(u,i))為l(u,i)的最大值。
RBM是Smolensky基于波爾茲曼機(Boltzmann machine,BM)提出的一種根植于統計力學的隨機神經網絡,Salakhutdinov首先運用RBM于推薦領域,并同時提出了CRBM模型[16]。本文依據已有研究,提出顯層單元為實值的條件受限波爾茲曼機(R_CRBM)模型,模型如圖2所示。

Fig.2 R_CRBM model圖2 實值條件受限玻爾茲曼機模型
設有m個商品,n個用戶,用戶對商品的反饋為0~5的實值評分,V={v1,v2,…,vm}為顯層單元,其輸入為實值評分數據,H={h1,h2,…,hF}為隱藏單元,F表示隱藏單元的數目,H為0,1二值單元,r表示條件向量,W表示隱層與顯層的連接權重,r∈{0,1}m,用以表示用戶的特征信息,本文表示用戶其潛在評分/未評分、標簽/未標簽信息,D表示r對H的影響矩陣。
依據R_CRBM模型的層內無連接,層間全連接的特點,當給定可見單元與條件單元的狀態時,第j個隱單元的激活概率為:

式(7)中,σ(x)=1/[1+exp(-x)]為sigmoid的函數,bj為隱層單元的偏置。
當給定隱單元的狀態時,顯層第i個可見單元的值為:

式(8)中,Ν為高斯分布,ai表示顯層單元的偏置。
訓練R_CRBM模型的目的是求出各參數的值,包括顯層偏置ai、隱層偏置bj、顯層與隱層的連接權重Wij,以及條件層與隱層的單向連接矩陣D,參數的獲取可以利用最大化R_CRBM在訓練集上的對數似然函數學習得到[20]。把顯層單元設置為一組訓練樣本,利用式(7)計算所有隱單元的二值狀態,在所有隱層單元的狀態確定后,根據式(8)來確定第i個可見單元vi的取值進而產生可見層的一個重構(reconstruction)。使用隨機梯度下降法(stochastic gradient descent)最大化對數似然函數在訓練數據上的值時,各參數的更新準則為:

其中,ε為學習率(learning rate),<?>data表示訓練數據分布,<?>recon表示T步采樣計算后的數據的分布。整個訓練如算法1所示。
算法1R_CRBM模型基于CD的訓練算法
輸入:評分矩陣ratings,條件向量ri,隱單元個數F,學習率ε。
1.Initialize:visible units,conditional layer,Wij,Dij,ai,bj
2.while model is not convergence
3.fort=1,2,…,T
4.fori=1,2,…,F
5.utilize formula(7)to gethi
6.end for
7.forj=1,2,…,m
8.utilize formula(7)to getvj
9.end for
10.utilize formula(10)to update parameters

輸出:顯層隱層連接矩陣Wij,條件向量與隱層連接矩陣Dij,顯層偏置ai,隱層偏置bj。
模型訓練完成后,對于某個具體用戶,輸入用戶歷史評分數據和經過計算獲得的基于標簽的評分數據以及條件向量數據至訓練好的R_CRBM模型,得到的顯層單元的值為用戶對商品的預測評分。
本章通過實驗驗證本文所提算法性能,實驗數據集采用的是 MovieLens(http://movielens.org)中的ml-20m數據集,采用5-折交叉驗證法(5-fold cross validation)進行模型訓練,以文獻[17]和文獻[18]的算法作為對比結果。文獻[17]改進了CD算法,其改進方法為可見單元的值等于對應隱單元連接權重的和(sum weight)再加上偏置,稱之為S_RBM模型。文獻[18]在R_CRBM模型中加入了基于MoleTrust[21-22]最近信任好友關系(nearest trusted friends based on MoleTrust,NTFMT),稱之為R_CRBM_NTFMT算法。
本文選取MovieLens的ml-20m數據集應用標簽數量大于10條的用戶,數據量信息如表3。
本文應用的度量方法有平均絕對誤差(MAE)、均方根誤差(RMSE)。
平均絕對誤差計算預測值與用戶實際評分值之間的平均絕對誤差,能很好地反映預測值誤差的實際情況,其計算公式如式(11):

Table 3 Experimental dataset information表3 實驗數據集信息

其中,Ntest表示測試數據集,ru,i表示實際用戶評分數據集,restimated表示預測評分,|Ntest|表示測試數據集的個數。
RMSE用來衡量觀測值與真值之間的偏差,是觀測值與真值偏差的平方和與觀測次數比值的平方根,其計算公式如式(12):

其中,Ntest表示測試集中用戶數量,|Ntest|表示測試數據集的個數,r表示用戶實際評分值,restimated表示R_CRBM模型的預測值。
4.3.1 R_CRBM中隱藏單元的確定
本實驗的目的是確定R_CRBM模型的隱單元數目,實驗中顯層單元的輸入數據為用戶商品評分矩陣,條件層輸入數據為用戶潛在的評分/未評分數據。實驗是基于Epochs=20進行的,其實驗結果如圖3、圖4所示。
如圖3、圖4所示,橫坐標表示隱單元的數目,縱坐標分別表示RMSE、MAE的值。實驗結果反映出,隱單元數目對RMSE和MAE的影響是先好后壞,符合實際情況。隱單元數量過少,不能完全表達出數據的特征,是欠擬合的狀態;隱單元數量過多,容易出現過擬合。依據本實驗結果;隱單元數量為90時,隱單元數量足夠表達數據的特征,因此本文后續實驗選擇隱單元數量為90。

Fig.3 Influence of hidden number on RMSE圖3 隱單元數目對RMSE的影響

Fig.4 Influence of hidden number on MAE圖4 隱單元數目對MAE的影響
4.3.2 條件層加入標簽/未標簽{0,1}向量影響
本文的一個貢獻為在條件層數據中加入了用戶潛在的標簽/未標簽數據,本節對向量加入的影響進行驗證。
本文驗證方法為使用兩個R_CRBM模型,兩個模型顯層單元輸入為用戶商品評分數據,一個條件層的輸入為用戶潛在的評分/未評分數據,取名為R_CRBM模型;一個條件層輸入數據為用戶潛在評分/未評分、標簽/未標簽數據,取名為R_CRBM_C模型。隱單元數量為90,其RMSE、MAE對比結果如圖5、圖6所示。
從圖5、圖6可以看出,兩個模型都在Epochs=10時開始收斂,在Epochs=70時模型收斂速度基本不變。條件向量中加入用戶潛在的標簽/未標簽信息有助于模型的收斂,使模型的預測結果更加準確。同時也說明,用戶與商品的交互信息越多,越能反映出用戶對該商品的喜愛程度。
4.3.3 模型對比實驗結果與分析
本節的模型對比實驗中,一共包括5種模型,分別是本文的Tag_R_CRBMs模型以及4個對比模型,分別是最經典的RBM模型與CRBM模型[16],文獻[17]的S_RBM模型以及文獻[18]的R_CRBM_NTFMT模型。各模型的RMSE以及MAE如圖7、圖8所示。
如圖7、圖8所示,5種模型的收斂速度大致相同,都是在Epoch為10時開始收斂,在Epoch達到70的時候,各模型的收斂速度基本不變。從圖中RMSE與MAE的值可以看出,文獻[17]的S_RBM模型以及文獻[18]的R_CRBM_NTFMT模型明顯優于經典的RBM與CRBM模型,而本文提出的Tag_R_CRBMs優化效果明顯,取得了理想的預測結果,說明本文所提方法具有一定準確性與有效性。

Fig.5 Influence of conditional layer input data on RMSE圖5 條件層輸入數據對RMSE的影響

Fig.6 Influence of conditional layer input data on MAE圖6 條件層輸入數據對MAE的影響

Fig.7 RMSE of five comparable models圖7 5個對比模型的RMSE

Fig.8 MAE of five comparable models圖8 5個對比模型的MAE
本文針對推薦算法中數據稀疏性難題,提出融合標簽的實值條件受限玻爾茲曼機推薦方法。采用MovieLens數據集對本文提出的方法進行測試,并對結果進行了展示與分析,實驗結果表明了本文提出的推薦方法的有效性。
用戶的歷史信息數據量巨大,更新速度快,如何在盡可能多的利用用戶歷史信息條件下,降低時間復雜度,實時快速準確地為用戶提供感興趣的商品,是今后研究的重點。