佘學兵,熊 蕾,黃 麗,劉承啟
(1. 江西科技學院信息工程學院,江西 南昌 330098;2. 南昌大學網(wǎng)絡中心,江西 南昌 330031)
過濾推薦算法是為了幫助受眾群體精準地獲得所需信息,但在實際應用過程中,常存在由于用戶對于某個項目的瀏覽信息過少導致推薦效率下降、匹配度降低的問題[1],所以如何通過稀疏數(shù)據(jù)進行過濾推薦是目前亟需解決的問題之一[2]。
朱元[3]等人首先建立異構(gòu)信息網(wǎng)絡后構(gòu)造用戶屬性權(quán)重矩陣,然后在此基礎(chǔ)上采用模糊貼近度算法對元路徑屬性權(quán)重進行估計,并找到其最近的鄰居,最后通過Top-N分析法進行過濾推薦。田保軍[4]等人通過CFMTS將獲取到的全局和局部信息值加入過濾推薦算法中,將CFMTS與PMF相結(jié)合建立推薦模型,采用梯度下降法計算用戶和項目特征向量從而完成過濾推薦。賈俊杰[5]等人將數(shù)據(jù)按照信任度進行劃分得到用戶間顯式信任值,結(jié)合用戶評分可信度、隱式和顯式信任值獲取專家信任因子完成稀疏數(shù)據(jù)的過濾推薦。以上方法沒有綜合考慮用戶的整體評分特征和不同項目的單獨評分對于數(shù)據(jù)補全產(chǎn)生的影響,存在MAE值和RMSE值大、F1值小的問題。
為了解決上述方法中存在的問題,提出基于長短期記憶的稀疏數(shù)據(jù)過濾推薦算法。
用期望Ex、熵En和超熵He對云數(shù)據(jù)特征進行整體表征,稱其為云的特征向量[6],用C(Ex,En,He)表示,設(shè)樣本方差用S2表示,樣本均值用X表示,得到Ex、En和He的計算公式如下
(1)
為了綜合考慮用戶的整體評分特征和不同項目的單獨評分,避免結(jié)果有效性不佳的問題,基于長短期記憶的稀疏數(shù)據(jù)過濾推薦算法采用相關(guān)因子對相似性進行計算,設(shè)兩個不同用戶i和j對于同一項目進行評分的總數(shù)用xi,j表示,權(quán)衡系數(shù)用λ表示,不同用戶對同一項目進行評分的數(shù)目越多,對應的λ越大,得到相關(guān)因子Φ(xi,j)=1-1/2λxi,j,由相關(guān)因子公式可以看出,隨著xi,j的增大,Φ(xi,j)的值也隨之增大,得到的最終填充項數(shù)據(jù)也越準確。若Φ(xi,j)大于由用戶根據(jù)數(shù)據(jù)集決定的指定值,則對用戶相似度進行計算。
云模型通過用戶評分尋找相似用戶并補全缺失項目評分,具體計算步驟如下:
1)采用逆向云算法結(jié)合用戶評分項對目標用戶特征向量進行計算。
2)尋找需要補全的評分數(shù)據(jù)缺失項,計算目標用戶與其他用戶之間的Φ(xi,j),若滿足條件,則對用戶相似性進行計算。
3)結(jié)合計算得到的相似性數(shù)據(jù)建立用戶相似列表,獲取該用戶最近的K個鄰居。
4)根據(jù)獲取到的K個鄰居評分情況,通過加權(quán)平均算法和Φ(xi,j)進行考慮,對用戶的缺失的評分項進行計算。
將用戶評分項和余弦距離相結(jié)合獲取用戶相似度和相關(guān)因子[9],通過用戶i最近的K個鄰居對其沒有評分的項目I1進行評分補全,補全方法依據(jù)相似性原則和加權(quán)平均算法,設(shè)用戶i的鄰居u對于項目I1的評分用ru,1表示,i的K個鄰居用Ngb(i)表示,i的總評分均值用Si表示,u的總評分均值用Su表示,i與u的相似度用sim(i,u)表示,i與u的相關(guān)因子用Φ(xi,u)表示,得到補全用戶評分項Si1的計算公式如下所示[10]
(2)
通過式(2),將稀疏數(shù)據(jù)中缺失部分進行補全。
(3)
設(shè)t時刻輸入門的狀態(tài)值用i(t)表示,x(t)、h(t-1)和t-1時刻記憶單元候選值c(t-1)對i(t)產(chǎn)生影響,對應的權(quán)值用Wxi、Whi和Wci表示,得到i(t)計算方式如下
i(t)=σ(Wxixt+Whih(t-1)+Wcic(t-1)+bi)
(4)
設(shè)t時刻遺忘門狀態(tài)值用f(t)表示,對應的權(quán)值用Wxf、Whf和Wcf表示,遺忘門的作用是避免歷史信息對記憶單元產(chǎn)生影響[12],f(t)計算方式如下
f(t)=σ(Wxfxt+Whfh(t-1)+Wcfc(t-1)+bf)
(5)
設(shè)t時刻記憶單元的狀態(tài)值用c(t)表示,?是點積計算,得到c(t)的計算方式如下
(6)
設(shè)用來調(diào)控t時刻記憶單元狀態(tài)的輸出狀態(tài)值用o(t)表示,對應的權(quán)值用Wxo、Who和Wco表示,σ是sigmoid函數(shù),得到o(t)的計算方式如下
o(t)=σ(Wxox(t-1)+Whoh(t-1)+Wcoc(t-1)+bo)
(7)
(8)
LSTM的結(jié)構(gòu)分為以下幾層:
1)輸入層
通過對應項目的描述文檔獲取所需數(shù)據(jù),添加到輸入層中。
2)Embedding層
3)LSTM層
LSTM層的作用是獲取上下文的特征,將序列D輸入至LSTM層中,設(shè)ci表示上下文特征的分量,W表示LSTM層的網(wǎng)絡權(quán)重,ci受到W和wi的共同影響,網(wǎng)絡偏置用b表示,得到ci和上下文的特征C的計算方式如下
(9)
4)線性層
利用線性層優(yōu)異的非線性映射能力對LSTM輸出的非線性特征組合處理,即在向量空間中采用簡易權(quán)重對非線性組合特征進行學習[14]。設(shè)線性層權(quán)重用Wl表示,偏置用bl表示,得到線性層的輸出lo=tanh(Wl*C+bl)。
5)Dropout層
Dropout層在對網(wǎng)絡進行訓練時通過預先設(shè)定的概率值達到控制神經(jīng)元輸出的作用,促使每次網(wǎng)絡訓練使用的數(shù)據(jù)特征只為全部數(shù)據(jù)特征中的一部分,在線性層后接入Dropout層可以避免過度擬合的問題[15]。
設(shè)概率值為1-p的二值向量用mask表示,以線性層的輸出lo作為Dropout層的輸入,得到Dropout層輸出y如下所示
(10)
6)輸出層
以項目隱形特征向量S作為輸出層結(jié)果,設(shè)輸出層權(quán)重用Wo表示,輸出層偏置用bo表示,得到輸出層結(jié)果S=tanh(Wo*lo+bo)。
以項目行文檔為輸入,設(shè)全部權(quán)重用W′表示,行文檔子項用xj表示,得到文檔隱向量Sj=LSTM(W′,Xj)
(11)
(12)
通過MAP對用戶和項目的隱式特征向量進行求解,LSTM網(wǎng)絡權(quán)值和偏置如下
(13)
(14)
定義W、V(或U)為常數(shù),簡單優(yōu)化函數(shù)Γ即可看作二次函數(shù),通過??汕蠼釼(或U)的最優(yōu)解ui和vi
(15)
但由于W受到網(wǎng)絡結(jié)構(gòu)的影響,無法通過U和V的方式求解,因此引入L2正規(guī)化方差函數(shù)求解Γ,得到W的方差ε(W)并用BP算法求解,計算方式如下
(16)
因為W、V、U交替更新,所以在收斂前進行重復優(yōu)化,直至得到最優(yōu)W、V、U,得到稀疏數(shù)據(jù)過濾推薦算法模型rij
(17)
通過模型rij,完成基于長短期記憶的稀疏數(shù)據(jù)過濾推薦。
為了驗證基于長短期記憶的稀疏數(shù)據(jù)過濾推薦算法的有效性,需要對該算法進行測試。
將平均絕對誤差(MAE)作為測試指標對所提方法、文獻[3]方法和文獻[4]方法進行檢驗,MAE值越小,則對應的過濾推薦算法推薦效果越好。MAE測試結(jié)果如圖1所示。
圖1 MAE測試結(jié)果
根據(jù)圖1分析可知,在鄰居數(shù)量不同的情況下,所提方法的推薦效果明顯優(yōu)于文獻[3]方法和文獻[4]方法,因為所提方法結(jié)合用戶的整體評分特征和對不同項目的單獨評分進行了綜合考慮,引入相關(guān)因子對相似性進行計算,避免結(jié)果有效性不佳的問題,使所提方法對稀疏數(shù)據(jù)的過濾推薦效果更好。
采用均方根誤差(RMSE)對所提方法、文獻[3]方法和文獻[4]方法進行檢驗,RMSE值越小,則對應的過濾推薦算法的推薦精確度越高。得到RMSE測試結(jié)果如圖2所示.
圖2 RMSE測試結(jié)果
由圖2可以看出,采用所提方法、文獻[3]方法和文獻[4]方法對稀疏數(shù)據(jù)進行過濾推薦時,所提方法的RMSE均小于文獻[3]方法和文獻[4]方法,在稀疏度為40%時,所提方法、文獻[3]方法和文獻[4]方法的RMSE值都比較高,但所提方法仍然遠低于文獻[3]方法和文獻[4]方法,說明所提方法的過濾推薦精確度越高。
將Recall和Precision的調(diào)和值F1作為指標對所提方法、文獻[3]方法和文獻[4]方法進行檢驗,設(shè)總用戶集中用戶i的推薦項目集合用R(i)表示,用戶i在測試集中真實參與的項目集合用T(i)表示,Recall、Precision和F1值計算方式如下
(18)
(19)
(20)
采用訓練比率為變量對所提方法、文獻[3]方法和文獻[4]方法進行測試,測試結(jié)果如圖3所示。
圖3 F1測試結(jié)果
根據(jù)圖3可以看出,采用所提方法、文獻[3]方法和文獻[4]方法對稀疏數(shù)據(jù)進行過濾推薦時,隨著訓練比率的升高,所提方法、文獻[3]方法和文獻[4]方法的F1值均有降低,但所提方法的F1值始終高于文獻[3]方法和文獻[4]方法,F(xiàn)1值可用來均衡表示Recall和Precision的變化情況,F(xiàn)1值越大,過濾推薦越準確,即對應方法在實際中的應用更為有效。
隨著互聯(lián)網(wǎng)信息技術(shù)的飛速發(fā)展,多樣化的信息充斥在人們的周圍,信息逐漸由匱乏走向冗余,用戶在享受海量信息帶來的便利同時也受到信息過載的困擾。目前稀疏數(shù)據(jù)過濾推薦算法存在MAE值和RMSE值大、F1值小問題,因此提出基于長短期記憶的稀疏數(shù)據(jù)過濾推薦算法,通過云模型計算相似度將稀疏數(shù)據(jù)進行補全,對補全后數(shù)據(jù)構(gòu)造長短期記憶網(wǎng)絡,生成稀疏數(shù)據(jù)過濾推薦算法模型,從而完成對稀疏數(shù)據(jù)的過濾推薦。實驗表明所提方法MAE值和RMSE值更小、F1值更大,為未來對長短期記憶有效應用并進行稀疏數(shù)據(jù)的準確過濾推薦奠定基礎(chǔ)。