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