馬 鑫, 吳 云, 鹿?jié)晒?/p>
1.貴州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,貴陽550025
2.中科國鼎數(shù)據(jù)科學(xué)研究院,北京100089
隨著“互聯(lián)網(wǎng)+”時代的到來,物聯(lián)網(wǎng)技術(shù)、5G 技術(shù)、無人駕駛技術(shù)等逐步興起.這些新技術(shù)的發(fā)展使社會進入信息爆炸的時代[1-2].在互聯(lián)網(wǎng)中,每天都會產(chǎn)生大量圖像、文字、視頻等各種各樣的信息,如何有效地分析用戶的行為反饋信息和項目的隱藏描述信息,為用戶進行個性化推薦已經(jīng)成為當下的研究熱點[3-5].推薦系統(tǒng)在一定程度上解決了“信息過載”的問題[6].推薦系統(tǒng)中最具代表性的推薦算法就是近鄰的協(xié)同過濾推薦算法[7].傳統(tǒng)的近鄰算法包含基于用戶的協(xié)同過濾推薦算法和基于項目的協(xié)同過濾推薦算法,這兩種算法都是利用用戶-項目的評分數(shù)據(jù)進行相似度計算,找到用戶的近鄰集合或者項目的近鄰集合,然后進行推薦[8-10].然而,基于用戶的協(xié)同過濾推薦算法要求用戶-項目評分數(shù)據(jù)具有較高的飽和度,才能產(chǎn)生更加準確的推薦結(jié)果.但用戶不可能對所有產(chǎn)生行為的項目進行評分,所得到的用戶-項目評分數(shù)據(jù)異常稀疏.因此如何有效解決數(shù)據(jù)稀疏性問題、提高推薦結(jié)果是本文研究的重點.
隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,其在計算機視覺、自然語言處理和語音識別等領(lǐng)域取得了巨大成功,這也為個性化推薦技術(shù)的研究提供了新機遇和挑戰(zhàn)[11-13].其中最具代表性的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)是一種非線性前饋神經(jīng)網(wǎng)絡(luò),其卷積層能更好計算深層次的隱藏特征.在個性化推薦中,卷積神經(jīng)網(wǎng)絡(luò)可以深層次挖掘用戶和項目的隱藏特征[14-16].本文針對數(shù)據(jù)稀疏性問題,提出了基于卷積神經(jīng)網(wǎng)絡(luò)和降噪自編碼(denoising auto-encoder, DAE)神經(jīng)網(wǎng)絡(luò)混合的神經(jīng)網(wǎng)絡(luò)評分預(yù)測模型(convolutional-denosing autoencoder collaborative filtering, CDAECF),該模型有效地結(jié)合了用戶的顯性反饋數(shù)據(jù)和隱性反饋數(shù)據(jù),深入挖掘了用戶的隱含特征向量.
協(xié)同過濾推薦算法可應(yīng)用于各個領(lǐng)域,隨著用戶和項目數(shù)量的急劇增加,用戶不會對所有產(chǎn)生行為的項目做出評價,只有極少數(shù)用戶會對部分項目做評價[17-18],因此就會使用戶-項目評分數(shù)據(jù)異常的稀疏.傳統(tǒng)的基于用戶協(xié)同過濾推薦技術(shù)借助用戶-項目評分數(shù)據(jù)進行相似度的計算,找到相似用戶鄰居集進行推薦.如果用戶-項目評分數(shù)據(jù)十分稀疏,將嚴重影響相似度計算的準確性,進而影響最終的推薦結(jié)果[19-20].
針對數(shù)據(jù)稀疏性問題,國內(nèi)外研究者進行了大量的研究工作.文獻[21]將關(guān)聯(lián)規(guī)則思想與加權(quán)分析的方法相結(jié)合,提出了基于關(guān)聯(lián)規(guī)則策略加權(quán)的Slope One 算法,從用戶評分和項目特征兩個角度對算法進行了改進.文獻[22]認為基于Slope One算法的填充解決數(shù)據(jù)稀疏性問題的方法沒有考慮用戶相似度和項目相似度,填充結(jié)果過于單一,于是在此基礎(chǔ)上融合了用戶相似度和項目相似度權(quán)重函數(shù).文獻[23]提出了一種新型協(xié)同過濾推薦模型CDA-MF(卷積去噪自動編碼器-矩陣分解),將卷積神經(jīng)網(wǎng)絡(luò)和降噪自編碼神經(jīng)網(wǎng)絡(luò)結(jié)合起來并集成到矩陣分解算法中,挖掘上下文特征得到用戶-項目預(yù)測評分,從而降低數(shù)據(jù)稀疏性.上述方法雖然在一定程度上可以解決數(shù)據(jù)稀疏性問題,但均未將用戶的顯性反饋數(shù)據(jù)和隱性反饋數(shù)據(jù)結(jié)合起來.
本文針對數(shù)據(jù)稀疏性問題,提出了融合卷積神經(jīng)網(wǎng)絡(luò)和降噪自編碼神經(jīng)網(wǎng)絡(luò)混合的神經(jīng)網(wǎng)絡(luò)協(xié)同過濾推薦模型,能夠有效地結(jié)合顯性反饋數(shù)據(jù)和隱性反饋數(shù)據(jù).首先通過卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到用戶特征向量矩陣,然后結(jié)合用戶-項目評分數(shù)據(jù)通過降噪自編碼神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到用戶-項目的預(yù)測評分,從而解決數(shù)據(jù)稀疏性,提高推薦結(jié)果.
混合的神經(jīng)網(wǎng)絡(luò)協(xié)同過濾評分預(yù)測模型由卷積神經(jīng)網(wǎng)絡(luò)和降噪自編碼神經(jīng)網(wǎng)絡(luò)組成.在該模型中,將通過卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的用戶特征向量矩陣作為降噪自編碼的神經(jīng)網(wǎng)絡(luò)初始權(quán)重,然后將用戶的評分數(shù)據(jù)作為輸入,通過DAE 模型訓(xùn)練得到用戶預(yù)測評分.混合神經(jīng)網(wǎng)絡(luò)評分預(yù)測模型總體模型結(jié)構(gòu)如圖1 所示.
圖1 CDAE 模型結(jié)構(gòu)圖Figure 1 CDAECF model structure diagram
用戶特征向量模型提取原理如圖2 所示.
圖2 基于卷積神經(jīng)網(wǎng)絡(luò)的用戶特征向量提取模型Figure 2 User feature vector extraction model based on convolutional neural network
在圖2 中,將用戶Ui的所有評論合并起來經(jīng)過文本向量化技術(shù)處理后得到的文本向量化矩陣作為卷積神經(jīng)網(wǎng)絡(luò)x值的輸入,然后將Ui的所有評分值的均值作為卷積神經(jīng)網(wǎng)絡(luò)中y值的輸入.
1)文本向量化
本文使用的文本向量化技術(shù)是Google 在2013 年提出的基于神經(jīng)網(wǎng)絡(luò)的word2vector 語言訓(xùn)練工具中的Skip-gram 模型[24].定義用戶的數(shù)據(jù)形式為用戶-評論-評分模式用R表示,即
式中,Ui為用戶i,Cij為用戶i對項目j的評論集合,Rij為用戶i對項目j的評分集合,⊕表示用空格連接,整理式(1)得
2)輸入層
本文將用戶-項目評論數(shù)據(jù)表示成二維矩陣.用戶Ui評論數(shù)據(jù)經(jīng)過Skip-gram 模型訓(xùn)練得到的長度為w的一維文本向量化數(shù)據(jù)然后將縱向重復(fù)w次堆疊,得到大小為w×w二維詞向量矩陣.
3)卷積層
假設(shè)卷積層一共有m個神經(jīng)元,每個神經(jīng)元t通過滑動卷積核Ft對輸入的樣本數(shù)據(jù)作卷積計算獲得卷積后的特征圖.假設(shè)卷積核窗口尺寸大小為l×h,即Ft ∈Rl×h,其中l(wèi)表示詞向量的長度,h表示詞向量的維度.假設(shè)ei表示用戶第i個特征圖,如式(5)所示.
式中,* 表示卷積計算,bi為偏置向量,f為非線性的激活函數(shù)ReLU,即
每次滑動卷積窗口都會對局部進行卷積操作并以此獲得局部特征值,這些特征組成了1 個一維特征組E為
假設(shè)共有G種不同的卷積核,每個卷積核對輸入數(shù)據(jù)進行卷積計算都可以得到一幅特征圖,這些特征圖可以組成一個n×G的特征矩陣H,即
式中,G為卷積核數(shù)目,n為文本長度.
4)池化層
本文采用最大池化操作來保留特征圖中的主要特征.假設(shè)Mt={m1,m2,··· ,mn}表示第t個卷積層卷積計算得到的特征圖,那么采用最大池化層操作就是保留Mt中的最大值,則第t個卷積層的池化結(jié)果為
5)全連接層和輸出層
假設(shè)全連接層的神經(jīng)元數(shù)目為m,經(jīng)過全連接層的非線性激活函數(shù)ReLU()激活后,得到1 個固定特征一維用戶的隱含特征向量ui
式中,ui ∈Rm,pui為池化層的輸出值,wui為全連接層的權(quán)重值,bui表示偏置量.
假設(shè)輸入層有n個神經(jīng)元,輸入數(shù)據(jù)是用戶-項目評分矩陣中的每一行,隱藏層有h個神經(jīng)元,輸出層神經(jīng)元數(shù)目與輸入層神經(jīng)元數(shù)目保持一致,其訓(xùn)練過程如圖3 所示.
圖3 降噪自編碼神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程Figure 3 Denoising auto-encode neural network training process
在該模型中,分別將用戶-項目評分矩陣中的每一行作為輸入數(shù)據(jù),將用戶特征向量矩陣U作為初始權(quán)重,從已經(jīng)存在的評分數(shù)據(jù)中學(xué)習(xí)隱含規(guī)律.用戶-項目的預(yù)測評分計算過程為
本文使用的實驗數(shù)據(jù)Movielens-1M 數(shù)據(jù)集[25]包含了6 040 個用戶對3 900 多部電影的100 多萬條評論,其中每個用戶至少包含了20 條評分記錄,評分數(shù)值范圍為1~5.在本文的實驗中,將實驗數(shù)據(jù)集隨機分成20%的測試集和80%的訓(xùn)練集.
為了驗證本文提出算法的有效性,使用F1 值作為評價標準.
1)準確率(Precision):推薦準確率是指推薦的項目中,用戶喜歡的項目數(shù)與總的推薦項目數(shù)的比值.
式中,R(u)表示根據(jù)用戶u在訓(xùn)練集上行為給用戶u推薦的項目的列表,T(u)表示用戶u在測試集上的喜歡的項目列表
2)召回率(Recall):推薦系統(tǒng)的召回率表示推薦的項目中用戶喜歡的項目數(shù)與用戶所有喜歡的項目數(shù)之間的比值,召回率的計算過程為
3)F1 值(F1 score):是準確率和召回率的綜合指標.其中,F(xiàn)1 取值越大,表明算法的性能越好.F1 值定義為
從圖4 可以看出,當?shù)螖?shù)小于50 時,F(xiàn)1 值整體隨卷積核數(shù)目G值的增大而緩慢增大.當?shù)螖?shù)大于等于50 時,F(xiàn)1 值隨卷積核數(shù)目增大先緩慢增加后逐漸下降,當?shù)螖?shù)為50,卷積核數(shù)目為40 時F1 值最大,此時推薦效果最好.
實驗1降噪自編碼神經(jīng)網(wǎng)絡(luò)隱藏層神經(jīng)元數(shù)目h對推薦結(jié)果的影響
實驗2卷積核數(shù)目對F1 值的影響.
圖4 卷積核數(shù)目對F1 值的影響Figure 4 Influence of the number of convolution kernels on F1 score
在圖5 中,當?shù)螖?shù)小于50 時,F(xiàn)1 值整體隨隱藏層神經(jīng)元數(shù)目增加而增加,此時推薦準確率不高.當?shù)螖?shù)為100 時,F(xiàn)1 值整體比迭代次數(shù)為50 時低,提升速度變慢,最后下降.此種情況說明訓(xùn)練過程出現(xiàn)“過擬合”現(xiàn)象.當?shù)螖?shù)為50 時,F(xiàn)1 值先增大后減小,當隱藏層神經(jīng)元數(shù)目為60 時,F(xiàn)1 值最大,推薦效果最好.
圖5 DAE 中隱藏層神經(jīng)元數(shù)目h 取值對F1 的影響Figure 5 Influence of the value of the number of hidden neurons h in DAE on F1 score
實驗3降噪自編碼神經(jīng)網(wǎng)絡(luò)的噪聲比對推薦結(jié)果的影響
本文中噪聲比是指在原始數(shù)據(jù)中加入噪聲的數(shù)據(jù)與原始數(shù)據(jù)之間的比例,用4 種不同比例的噪音進行訓(xùn)練,其結(jié)果如圖6 所示.
表1 不同噪聲比對F1 值的影響Table 1 Effect of noise ratio on F1 score
圖6 噪聲比對F1 值的影響Figure 6 Effect of noise ratio on F1 score
綜合分析圖6 和表1 可以看出,當沒有加入噪聲,迭代次數(shù)為50 時,F(xiàn)1 值最大.隨著噪聲比逐漸變大,不同迭代次數(shù)的F1 值均先升高后降低.當噪聲比為0.3,迭代次數(shù)為50 時,F(xiàn)1值最大,此時推薦結(jié)果最好.
實驗4不同推薦算法推薦結(jié)果的比較
為了驗證本文提出的CDAECF 算法推薦結(jié)果具有更高的準確性,此次在相同的試驗集條件下,與傳統(tǒng)的協(xié)同過濾推薦算法(User-ItemCF)、單純使用基于降噪的自編碼器的推薦算法和基于奇異值分解的推薦算法(singular value decomposition, SVD )的F1 值進行對比,其結(jié)果如圖7 所示.
從圖7 分析可以看出,本文提出的CDAECF 算法的F1 值均高于另外3 種算法,說明本文提出的CDAECF 推薦算法推薦準確度明顯高于另外3 種算法.從表2 分析可知,本文提出的CDAECF 模型準確率比DAE 算法的準確率高了將近6%.這表明本文利用卷積神經(jīng)網(wǎng)絡(luò)對用戶-項目評論數(shù)據(jù)進行特征提取后,結(jié)合降噪自編碼神經(jīng)網(wǎng)絡(luò)可以有效提高推薦準確率.本文提出CDACF 推薦算法和CDE 推薦算法性能高于User-ItemCF 算法和SVD 算法,說明基于深度學(xué)習(xí)的非線性學(xué)習(xí)模型與傳統(tǒng)的線性學(xué)習(xí)模型相比更能深層次全面地挖掘用戶-項目評分數(shù)據(jù)的隱含特征,從而提高推薦準確率.
在協(xié)同過濾推薦算法中,數(shù)據(jù)的稀疏性是影響推薦結(jié)果最重要的因素之一,針對數(shù)據(jù)稀疏性問題,本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)和降噪自編碼神經(jīng)網(wǎng)絡(luò)混合的評分預(yù)測模型.首先將用戶的評論數(shù)據(jù)和向量化通過卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到用戶特征向量矩陣U,然后分別將U作為降噪自編碼神經(jīng)網(wǎng)絡(luò)的初始權(quán)重參數(shù),最后將用戶的評分數(shù)據(jù)作為輸入數(shù)據(jù),經(jīng)過DAE 訓(xùn)練后得到用戶-項目預(yù)測評分,從而解決數(shù)據(jù)稀疏性問題.與其他算法對比表明,本文提出的模型具有更好的推薦準確性,為后續(xù)的推薦算法的研究提供了參考.