劉振鵬,尹文召 ,王文勝,孫靜薇
1.河北大學 電子信息工程學院,河北 保定 071002
2.河北大學 信息技術中心,河北 保定 071002
當下互聯網信息快速傳播,用戶能夠通過搜索關鍵字來獲取相關信息,然而推薦信息也在逐步踏入生活之中,在電子商務、新聞推薦,以及如今流行的短視頻社交領域,用戶多數通過平臺推薦來獲取信息。但是信息的種類、數量不僅巨大而且還在不斷的增長,如何將信息精確的推薦給用戶,個性化推薦系統(tǒng)[1]就被應用于這些平臺之中。
協(xié)同過濾推薦算法[2-3]是推薦系統(tǒng)中常用的算法,根據用戶與項目之間的交互數據,例如瀏覽、收藏、加購、購買等行為,作為用戶-項目的隱式反饋,或者以評分方式進行交互。利用這些交互數據計算用戶(項目)之間的相似度來進行推薦。當評分數據稀疏時,推薦性能就會下降,而且當面臨新用戶或者新項目需要推薦時,由于沒有歷史交互數據,無法進行準確的推薦,遭遇冷啟動問題[4-5]?;趦热莸耐扑]算法需要人為的根據項目的內容信息去標記其特征,并根據特征推薦給相關愛好的用戶,雖然不會遭遇項目冷啟動問題,但在擴展性方面十分有限。
協(xié)同過濾推薦算法中最受歡迎的有基于矩陣分解(MF)的推薦算法,MF通過用戶喜好矩陣和項目特征矩陣作內積去重構用戶-項目的評分矩陣,但是僅靠內積是無法精確逼近用戶項目的交互關系,而且這樣淺層的結構也無法挖掘用戶以及項目深層的特征[6]。
近些年,深度學習快速發(fā)展,一些常用的深度學習模型(DNN、CNN、RNN、AE等)[7-10]在計算機視覺、圖像處理、自然語言處理等領域都得到了廣泛的應用。相對而言,在推薦系統(tǒng)中利用深度學習技術[11-14]來加強對推薦項目內容的分析,挖掘出更深層的隱性特征,也是相關研究領域的一種趨勢,需要更多相應高效的模型。
協(xié)同主題回歸模型(CTR)[15]通過利用文本信息將基于主題模型(LDA)[16]模型與概率矩陣分解模型(PMF)[17]模型進行融合,提升了推薦系統(tǒng)的準確率。但是,CTR從文本信息中提取隱性特征,當文本信息稀疏的時候,文本隱性信息的表達就會出現偏差。卷積矩陣分解(ConvMF)[18]通過CNN與PMF模型相結合,模型能夠很好地提取文本內容方面的特征,但是并不能很好地做到對于ID類特征的提取。協(xié)同過濾深度學習(CDL)[19]是通過利用輔助信息進行推薦的模型,它主要是將棧式降噪自動編碼器(SDAE)[20]整合到PMF中,從而在評分預測方向上,做出更準確的精度,但它需要手動地調節(jié)神經網絡中的每個參數,而且,這些集成模型基于詞袋模型,也不注意詞的順序以及文本的上下文信息,導致對于文檔信息的理解的準確性下降,影響推薦效果。
針對上述問題,本文提出一種基于深度學習的混合推薦模型(HRS-DC),通過使用專門處理相應數據類型的神經網絡模型從輔助信息中提取用戶和項目的隱性特征并通過非線性結構擬合它們之間的交互關系,做出更精準的預測。利用深度神經網絡學習用戶輔助信息和項目輔助信息中的ID類特征,得到用戶隱性向量和項目隱性向量,利用卷積神經網絡提取出項目輔助信息中文本類的隱性向量,將得到的項目隱性向量連接為完整的項目隱性向量,再將用戶隱向量、項目隱向量作為輸入進行神經協(xié)同過濾,得出最佳模型。在數據集MovieLens和amazon上的實驗結果表明,較CTR、PMF、CDL、ConvMF相比該模型在預測準確性上提高了1%~27%,也在一定程度上緩解了冷啟動問題。
矩陣因子分解模型[21]利用因式分解得出新的評分矩陣R,這兩個隱因子矩陣U、V也代表著用戶隱含信息和項目隱含信息。如公式(1)所示:
將預測評分矩陣R與真實評分矩陣rating相比較,通常對于這兩個矩陣不能達到相等的精確程度,要做的是最小化它們之間的差距,這就變成了一個最優(yōu)化問題。通過優(yōu)化損失函數來找到u和v中合適的參數,損失函數的優(yōu)化公式如下所示:
其中,rij∈{1,2,3,4,5}為評分矩陣rating中用戶i對物品 j的真實評分,D為用戶i對項目 j評過分的集合,uik∈U為用戶i的k維隱向量,即為用戶偏好矩陣,矩陣中數值代表著用戶對k個屬性的愛好程度,vkj∈V為項目 j的k維項目隱向量,即為項目屬性矩陣,矩陣中數值表示項目中所含k個屬性成分的強弱。將這兩個矩陣作內積即為用戶—項目評分矩陣R,在公式(2)中添加正則化項來避免過擬合,其中λ和γ為正則化系數。
傳統(tǒng)的求解方法是矩陣分解,為每個user和item找到一個隱向量,并利用線性乘積來估計隱向量在低維空間的復雜交互關系,導致對用戶和物品之間精確的關系的約束。增加隱式空間向量的維度k雖然能解決該問題,但是這會影響到模型的泛化能力,產生過擬合現象,面對稀疏的評分數據時,MF的推薦效果也會變差。
融合MF與神經網絡的模型神經協(xié)同過濾(NCF)利用非線性的結構來模擬用戶和項目的關系,通過隱式反饋來預測用戶對項目的評分,利用神經網絡進行高階建模,來提高協(xié)同過濾的性能[22-23]。但協(xié)同過濾的核心仍然是MF,并未進行深入的挖掘用戶和項目各自的深層特征。本文提出利用深度表示學習體系結構來獲得用戶和項目的深層隱性特征。
基于CNN的模型偏向于相鄰特征之間的交互,基于RNN的模型更適合于具有順序依賴關系的點擊數據,而基于DNN的模型適于挖掘數據的深層特征,神經網絡模型(DeepFM)融合了因子分解機(FM)和DNN,將低階特征FM與高階特征DNN交互建模,進行點擊預測,提高預估的準確性[24]?;谏鲜瞿P?,本文提出一種基于DNN的矩陣分解模型,將用戶和項目的輔助信息經過預處理轉化為密集的矩陣,再將矩陣表示經過多層隱藏層,再經過全連接層得到隱因子向量的輸出,然后將得到的隱因子模型U、V作為輸入,將其作內積得矩陣R,如圖1所示。
圖1 基于DNN的混合推薦模型網絡架構圖
圖中第一層為輸入層,神經元個數為z個,數據的輸入維度也為z維,第二層為嵌入層,將輸入的數據映射為k維數據,再接下來為n層隱藏層,圖中用Li(i∈[1,n])表示,每層的數據維度也不相同,這是為了能更好地發(fā)揮模型非線性特性。
用戶ui(i=1,2,…,m)對項目vj(j=1,2,…,n)的評分為rij,嵌入層將用戶的信息映射為m×k的矩陣,用戶的特征向量表示經過嵌入矩陣后變?yōu)閤u_i,項目的信息數據則變?yōu)閚×k的矩陣,項目的特征向量表示經過嵌入矩陣后變?yōu)閥v_j。對于映射關系,將ID以及各類顯性特征先變?yōu)轫樞蛄斜?,ID本身即為有序列表,而像用戶職業(yè)之類的,假設用戶職業(yè)有n類,則將這些類別用[1,2,…,n]代替,再建立一個索引矩陣,索引大小為n×k,其內容數據服從為隨機均勻分布,職業(yè)也將通過嵌入層被索引表示。
用戶信息矩陣經過嵌入層映射變?yōu)閤u_i,進入隱藏層學習訓練,輸出如下所示:
其中,Li為第i層的輸出向量,fi為第i層的激活函數,常用的激活函數有sigmod、tanh和relu,在此選用的是relu函數。wi為第i層的權重向量,bi為第i層的偏置向量。同理,項目信息也進行同樣處理。
經過深層次的隱藏層學習訓練后用戶信息變?yōu)楦映橄蟆⒊砻艿南蛄?,再經過全連接層輸出為矩陣U,類似用戶信息數據的處理,項目信息數據輸出為矩陣V,對矩陣U、V作內積得預測評分矩陣R。
CNN在文本信息特征提取方面有著其獨特的優(yōu)勢,對于項目輔助信息中的字段類型的特征,利用卷積神經網絡學習出其隱性特征。網絡來自于文獻[25]的底層架構,在CNN之前添加嵌入層,將文本信息映射為相應的數值,再進行訓練,框架如圖2所示。
圖2 基于卷積神經網絡的框架
嵌入層能將原始文本轉換成密集數字矩陣,而這個矩陣作為輸入,再經過卷積層、池化層、全連接層。首先,將文檔中的單詞進行序列化,利用單詞嵌入模型將單詞初始化為向量,文本信息D∈Rk×n即表示為:
其中,n為單詞的個數,也表示文檔的長度,在嵌入層進行轉化過后每個單詞的維度變?yōu)閗維。在卷積層對嵌入矩陣上做卷積,一個文本卷積后的特征,卷積公式如下所示:
卷積特征與卷積核是相對應的,本文利用多組卷積核獲取整個文本的卷積特征。由于l并非固定數值,卷積過后會得到長度不一的特征向量,阻礙特征的轉化,池化層通過對卷積層獲取的多組上下文特征向量進行max-pooling池化,進行特征長度的固定,選取其中最大的特征。
將池化層的輸出傳遞給全連接層,輸出文檔的隱因子特征向量,公式如下所示:
在本文中,提出一種基于深度學習的混合推薦模型(HRS-DC),深入挖掘用戶項目輔助信息中的深層特征,再利用改進的NCF強大的表示性學習性能,擬合非線性交互關系,得出最佳模型。
用戶信息一般無文本描述類信息,字段類特征可以將其轉化為ID類特征,將用戶輔助信息輸入DNN之前,首先經過嵌入層,在嵌入層中將原始稀疏特征轉換成稠密的數字向量,成為一種對應關系,初始特征作為在嵌入層的映射,再經過隱藏層的學習訓練,得到輸出向量,即用戶隱因子特征向量。同樣,項目特征中含有文本類特征,項目類特征中的ID類特征同處理用戶特征一樣,經過DNN網絡訓練的得出隱因子向量,對于文本類特征,則利用CNN進行訓練提取,本文通過CNN從項目文本特征中提取項目隱性特征,與DNN輸出向量連接后作為項目隱因子向量,輸入改進的NCF網絡,將提取到隱性特征進行非線性擬合,通過迭代訓練,優(yōu)化模型參數,得出最佳模型,輸出預測評分,根據評分的高低,進行top-k推薦,HRS-DC框架如圖3所示。子向量的維度要一致,而且訓練的所用的網絡層數也一致,這也是為了確保隱因子特征的所含的意義相同。
圖3 基于神經網絡的混合推薦模型
從輔助信息中深度挖掘隱性特征,提取隱因子向量,為了使得預測更加準確,將隱因子向量進行神經協(xié)同過濾,進行改進高階非線性模型多層感知機(MLP++)以及改進淺層模型廣義矩陣分解(GMF++)兩種模型的對比,兩者均利用了用戶和項目的隱性特征向量。
在GMF++中,對于用戶和項目的隱形特征向量作內積,再經過神經網絡全連接層,輸出預測評分。其計算公式表示如下:
式中,?表示相對應的向量元素相乘,aout為激活函數,h為輸出層的權值,ru,i為預測得分。在本文中,aout可以是一個非線性激活函數,h可以從訓練數據中學習,因此它比MF具有更強的學習能力。
MLP++將用戶和項目的隱因子向量串聯起來,通過多層神經網絡學習用戶-項目關系。MLP++和GMF++使用相同的方法從輔助信息中提取用戶和項目特征。然而,MLP++在神經協(xié)同過濾模塊中采用了不同的學習策略。MLP++與GMF++處理用戶和項目隱因子向量的方式不同,將學習到的用戶隱因子向量ui和項目隱因子向量vj串聯起來,在協(xié)同過濾模塊中采用多層感知器學習高階用戶-項目關系。MLP++的協(xié)同過濾方面定義如下:
用戶信息經過DNN提取出隱因子特征向量的過程和第2章相關內容部分相似;項目隱因子部分,將項目中的ID類與文本類特征經過相應神經網絡提取項目隱因子特征向量V進行連接,在連接之時為了確保隱因
Wx和bx表示權重、偏差,ax表示X層的激活函數,[]表示向量的連接,不同于NCF中的MLP使用多層感知器來學習用戶-物品關系,但它只依賴于隱式反饋。MLP++使用CNN和DNN從輔助信息中提取用戶和物品特征,從而能夠了解到一個用戶和物品之間的關系。
本文采用代價函數為逐點損失類型的優(yōu)化函數,在模型優(yōu)化時,為了防止訓練出現過擬合現象,同時提高模型的泛化能力,使用L2正則化項,Ue和Ie分別為嵌入層的用戶項目的索引值,W和B為各層神經網絡的權值和偏差,Ii,j為用戶i對項目 j評過分,則其表示為1,否則為0。
神經協(xié)同過濾過程輸出預測評分ru,i??紤]到隱式反饋的特點,將1視為與物品相關的用戶,將0視為與物品無相關的用戶,神經協(xié)同過濾模塊的激活函數選用relu函數。對于ui和vj,使用Adam優(yōu)化器去求得最優(yōu)解。η是學習率,設置為0.000 3,更新方式如下所示:
給定U和V,可以根據反向傳播算法。通過交替更新變量,可以找到L的局部最優(yōu)值。
操作系統(tǒng)為ubuntu14.04,Intel Core i5處理器和4 GB RAM;編程環(huán)境為python2.7,深度學習計算框架為TensorFlow 1.4。
4.2.1 數據集
實驗使用的是MovieLens-1M、MovieLens-10M、amazon數據集。數據集的信息如表1所示。
表1 ML-1M、ML-10M、amazon數據信息表
4.2.2 數據預處理
模型輸入層的數據為用戶和項目的輔助信息,模型輸出層為用戶-項目的預測評分。用戶數據分別有用戶ID、性別、年齡、職業(yè)類型。項目數據分別有項目ID、電影名和電影類型以及基于本文所需要用到的電影描述信息,從網絡電影資料庫去匹配(IBDM)。對于文本信息,本文進行3個步驟,設置文檔長度最長為300,去除停用詞典里停用的詞,從TF-IDF值中選前8 000單詞構成詞典,對于數值信息,刪除評分信息少于3個的用戶以及缺少文本描述信息的項目。
本文采用均方根誤差作為實驗指標,它能夠作為直接而且準確的指標,反映出模型的預測值與真實值之間的偏差,能夠體現出整個網絡模型的準確性,通過計算預測評分與實際評分之間的偏差度量預測的準確性,差值越小則預測的質量越高,T表示為測試集中所有用戶i對項目j已評過分的集合。
為了驗證本文所提HRS-DC模型的推薦性能,與以下幾種先進的模型進行了對比實驗。
(1)PMF[17]:概率矩陣分解模型,僅通過用戶-項目的評分數據進行協(xié)同過濾推薦。
(2)CTR[15]:協(xié)同主題回歸模型,是一種新的推薦模型,將協(xié)同過濾(PMF)和主題建模(LDA)結合,通過使用評分和文檔信息來進行推薦。
(3)CDL[14]:協(xié)同深度學習模型,通過使用棧式降噪自動編碼器分析文檔來提高評分預測的準確性。
(4)ConvMF[18]:卷積矩陣分解模型,將卷積神經網絡與矩陣分解模型相結合進行推薦。
從數據集MovieLens-1M中,隨機抽取3種不同比例的數據作為訓練集和測試集,結果如表所列。設置隱因子的維度為80,神經協(xié)同過濾模塊選用GMF++模型。在3種不同比例訓練集的訓練效果下,本文算法均優(yōu)于3種對比算法;在訓練集從40%、60%、80%的情況下,算法效果一直在提升,也說明本文算法在使用了更多的輔助信息進行訓練后能產生更好的預測評分效果。
由表2得知,在MovieLens-1M訓練集所占比例越大時,用于訓練的數據越多,模型得到的預測結果最佳,基于此,將數據集均隨機分為80%的訓練集,10%的驗證集,10%的測試集。在ML-1M中,實驗還在改進的NCF的網絡層數、隱因子的維度等參數方面進行尋求最佳模型的對比,如圖4所示。
表2 模型在ML-1M訓練集中不同比例的結果(RMSE)
圖4 隱因子的不同維度的對比圖
不同的隱因子的維度也代表著不同的特征向量,為了尋求最佳的隱因子維度,進行了多種測試,分別設置[16,32,64,128]這4種不同的維度,實驗表明從16增至64的過程中,隨著訓練周期的增加預測的準確性在逐步提高,當維度為128時,準確性下降,這也表明了并不是維度越高模型的效果越好。
如圖5所示,通過進行GMF++和MLP++兩種模型的對比,從實驗結果中可以看出,GMF++的預測準確度要高于MLP++的準確度,隨著MLP++隱藏層層數的增加,其準確性也在提高,MLP++還有很大的提升空間。
圖5 GMF與MLP對比圖
為了驗證本文算法的有效性,將本文算法與概率矩陣分解算法(PMF)、協(xié)同過濾主題回歸算法(CTR)、協(xié)同過濾深度學習算法(CDL)、卷積矩陣分解算法(ConvMF)在共同數據集MoiveLens-1M、MoiveLens-10M、amazon下進行對比驗證,如表3所示。
表3 實驗模型對比表(RMSE)
本文算法中通過比較,在MovieLens-1M數據集中,HRS-DC相對于PMF提高了5.7%,相對于CTR提高了5.7%,相對于CDL提高了4.7%,相對于ConvMF提高了1%;在MovieLens-10M數據集中,HRS-DC相對于其他模型提高了0.7%~5.4%;在amazon數據集中,相對于其他模型相對于其他模型提高了1%~27.4%,顯然,當數據量增大后,預測評分的準確性更高,在如今海量數據的規(guī)模下,準確性也會越來越高,當然模型還有很大的改進空間。不僅限于文本輔助信息,還可以擴展到其他類型的輔助信息。在以后的工作中,會嘗試加入更多的輔助信息,比如知識本體和圖像。通過將更有代表性的輔助信息結合到推薦系統(tǒng)中,希望能夠進一步提高推薦精度。
本文提出了一種基于深度學習的個性化推薦模型,實驗結果表明,相比傳統(tǒng)方法,本文算法的預測準確性有所提高,利用DNN和CNN訓練項目輔助信息,并得出隱因子特征矩陣,在本文算法中,輸入神經網絡的數據沒有原始評分矩陣,而是利用用戶和項目的輔助特征信息,所以可以根據新用戶或新項目的特征給予推薦,一定程度上解決了預測評分準確性差,以及冷啟動問題。從實驗結果可以看出,將深度學習模型應用于推薦系統(tǒng)是一個值得探尋的方向。本文在數據預處理和模型超參數調節(jié)上花費了較長的時間,還有待改進,今后的工作還可以考慮用其他深度學習模型來做推薦。隨著深度學習技術的發(fā)展,深度學習在解決稀疏性以及冷啟動過程中一定會成為推薦系統(tǒng)領域中一項非常重要的技術手段。