申晉祥,鮑美英
(山西大同大學(xué) 計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院,大同 037009)
隨著大數(shù)據(jù)、云計(jì)算以及互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,各種網(wǎng)絡(luò)應(yīng)用使得網(wǎng)絡(luò)數(shù)據(jù)爆炸式增長,面對(duì)海量蘊(yùn)含豐富價(jià)值的數(shù)據(jù)如何能夠快速獲得自己所感興趣的信息變得越來越不容易.推薦系統(tǒng)能夠從大規(guī)模數(shù)據(jù)中分析提取出用戶興趣偏好的所需信息,為用戶提供個(gè)性化推薦,是目前廣泛認(rèn)可的有效解決“信息過載”問題的一種策略.
雖然推薦系統(tǒng)已被廣泛應(yīng)用,但仍存在很多問題,如數(shù)據(jù)稀疏、冷啟動(dòng)、推薦多樣性等問題.充分利用用戶評(píng)論文本,對(duì)評(píng)論文本進(jìn)行深度挖掘可以有效的提高推薦性能.針對(duì)目前推薦系統(tǒng)對(duì)評(píng)論文本內(nèi)容潛在特征和隱含信息提取能力不足導(dǎo)致的推薦精度下降問題,利用深度學(xué)習(xí)對(duì)評(píng)論文本挖掘和提取的優(yōu)勢,并融入注意力機(jī)制.提出一種基于注意力機(jī)制的深度學(xué)習(xí)推薦算法以提高推薦系統(tǒng)的推薦精度.
為解決傳統(tǒng)推薦算法存在的評(píng)分?jǐn)?shù)據(jù)稀疏問題,基于評(píng)論文本的推薦算法相繼出現(xiàn),利用從評(píng)論文本中提取的特征信息來提高項(xiàng)目的預(yù)測評(píng)分.
目前大多數(shù)基于評(píng)論文本的推薦算法[1,2]都是基于詞袋模型,不能對(duì)評(píng)論文本的上下文以及單詞順序特征進(jìn)行很好的提取.應(yīng)用深度學(xué)習(xí)技術(shù)的推薦算法[3–7]通過卷積神經(jīng)網(wǎng)絡(luò)結(jié)合評(píng)論文本詞序以及文本上下文信息,能夠很好的提取評(píng)論文本的潛在語義表示進(jìn)行推薦,有效的提高了推薦性能.在此基礎(chǔ)上進(jìn)一步引入注意力機(jī)制,可以加強(qiáng)重點(diǎn)部分信息的關(guān)注度并投入更多注意力資源,從而獲取更多需要重點(diǎn)關(guān)注內(nèi)容的特征信息.基于注意力機(jī)制的相關(guān)研究[8–12]通過對(duì)評(píng)論文本不同方式的建模,進(jìn)一步提高文本處理效率.
基于以上研究,提出一種基于注意力機(jī)制的深度學(xué)習(xí)推薦算法(Attention-based Deep Learning User and Item,ADLUI),主要貢獻(xiàn)如下:
(1)分別構(gòu)建用戶和項(xiàng)目的評(píng)論文本表示,利用雙向門控循環(huán)單元捕獲文本中的詞序信息,提取文本的上下文依賴關(guān)系以獲得文本特征表示,將其輸入到全連接層獲取最終評(píng)論文本特征表示以進(jìn)行預(yù)測評(píng)分.
(2)在分別構(gòu)建的用戶和項(xiàng)目評(píng)論文本的雙向門控循環(huán)單元中引入注意力機(jī)制,識(shí)別文本特征表示中不同特征的重要性,更準(zhǔn)確的獲取用戶興趣偏好和項(xiàng)目屬性特征.
(3)在Yelp和Amazon 兩個(gè)真實(shí)數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn),結(jié)果表明所提出的算法與其他先進(jìn)算法相比,具有更好的推薦性能.
評(píng)論文本中,一些單詞和句子所表達(dá)的語義特征對(duì)用戶的偏好和項(xiàng)目的特性側(cè)重會(huì)有所不同,因此所提模型對(duì)用戶和項(xiàng)目評(píng)論文本分別建模,采用雙向門控循環(huán)單元分別生成用戶和項(xiàng)目特征表示,引入注意力機(jī)制有選擇的對(duì)重要特征表示部分進(jìn)行提取,最后將兩個(gè)部分生成的評(píng)論文本特征表示再合并到同一個(gè)向量空間完成深度部分預(yù)測評(píng)分.ADLUI 推薦模型結(jié)構(gòu)如圖1所示,接下來對(duì)推薦模型進(jìn)行詳細(xì)介紹.
圖1 ADLUI 推薦模型結(jié)構(gòu)
3.1.1 門控循環(huán)單元
門控循環(huán)單元(Gated Recurrent Unit,GRU)能夠捕捉時(shí)間序列中時(shí)間步距較大的依賴關(guān)系,同時(shí)有效解決梯度消失問題.GRU 模型有兩個(gè)門:更新門(Zt)和重置門(rt).當(dāng)前新狀態(tài)之間的線性內(nèi)插值利用上一狀態(tài)ht?1與新序列信息計(jì)算,權(quán)重矩陣相乘,重置門結(jié)果rt與ht?1進(jìn)行哈達(dá)瑪積⊙,然后把兩部分信息相加通過tanh 激活函數(shù)將結(jié)果縮小至(?1,1).計(jì)算如式(1)所示.
網(wǎng)絡(luò)最后計(jì)算ht向量,ht將保留當(dāng)前單元信息并傳遞到下一個(gè)單元中.計(jì)算如式(2)所示.
3.1.2 注意力機(jī)制
注意力機(jī)制可以有效突出評(píng)論文本重點(diǎn),提取對(duì)句子重要的用戶或項(xiàng)目特定單詞.通過注意力機(jī)制根據(jù)隱藏狀態(tài)sk,…,sp提取上下文向量ck,并結(jié)合當(dāng)前隱藏狀態(tài)hk.先前狀態(tài)sj的注意力分?jǐn)?shù)ak可由式(3)計(jì)算得出.
上下文向量ck利用ak加權(quán)計(jì)算如式(4)所示.
3.2.1 詞嵌入矩陣
利用Word2Vec 中的Skip-gram 算法訓(xùn)練詞嵌入矩陣,假定評(píng)論文本由q個(gè)句子{s1,s2,…,sq}組成,其中第k個(gè)句子sk包含lk個(gè)單詞,{wk1,wk2,···,wklk},則單詞級(jí)嵌入矩陣wkj可表示為wkj={wk1,wk2,···,wklk}.
3.2.2 序列數(shù)據(jù)編碼方法
雙向門控循環(huán)單元(Bidirectional Gated Recurrent Unit,Bi-GRU)前向和后向處理序列數(shù)據(jù)全面考慮了評(píng)論文本的上下文信息來捕獲文本語義特征.前向隱藏狀態(tài)如式(5)所示,后向隱藏狀態(tài)如式(6)所示.
假定序列向量[w1;w2;…;wJ],則前向GRU 讀取序列從w1到wJ,后向GRU 讀取序列是從wJ到w1.
3.2.3 引入注意力機(jī)制
評(píng)論文本中每個(gè)單詞在其所在的句子中具有不同的重要性,引入注意力機(jī)制的目的就是有效提取句子中的重要單詞.假定某用戶(user)所發(fā)表的評(píng)論文本中第k個(gè)句子其中表示句子Hku中第j個(gè)單詞的隱藏狀態(tài),假定每個(gè)單向GRU 的隱藏單元為p,Hku∈R2p×q,分別將每個(gè)用戶(user)和每個(gè)項(xiàng)目(item)映射為連續(xù)的實(shí)數(shù)值向量u∈Rdu和I∈RdI,其中du表示用戶嵌入的維度,dI表示項(xiàng)目嵌入的維度.則句子的注意力可由式(7)表示.
式中,wuw∈R1×da,da為可任意設(shè)置的一個(gè)超參數(shù),∈Rda×2p和∈Rda×2p為權(quán)重矩陣,為1×q向量,各個(gè)維度均可表示相對(duì)應(yīng)位置詞的注意力多少.因此,通過用戶評(píng)論文本中詞級(jí)隱藏狀態(tài)的加權(quán)和組成獲得基于用戶評(píng)論文本的表示如式(8)所示.
類似基于用戶評(píng)論文本的過程同理可得基于項(xiàng)目評(píng)論文本的表示.
3.2.4 全連接層處理
將用戶和項(xiàng)目的評(píng)論文本的特征表示分別輸入全連接層(Fully Connected layer,FC)處理,基于注意力機(jī)制的用戶和項(xiàng)目語義向量分別用ru和rI表示,如式(9)和式(10)所示.
最后將潛在的表示(ru,rI)映射到同一個(gè)向量空間并通過內(nèi)積預(yù)測評(píng)分,如式(11)所示.
實(shí)驗(yàn)使用兩個(gè)不同域的公開數(shù)據(jù)集Yelp (https://www.kaggle.com/c/yelp-recsys-2013/data)和Amazon(http://jmcauley.ucsd.edu/data/amazon)對(duì)比不同算法的性能,原始數(shù)據(jù)集中有百萬級(jí)的商品評(píng)論信息且沒有進(jìn)行類別篩選和數(shù)據(jù)整理,先進(jìn)行數(shù)據(jù)預(yù)處理,將評(píng)論記錄少于5 條的用戶以及被評(píng)論記錄少于5 條的商品篩除,數(shù)據(jù)集中的評(píng)分值是1 至5 之間的整數(shù),然后對(duì)數(shù)據(jù)集類別進(jìn)行篩選.預(yù)處理后的Yelp和Amazon 數(shù)據(jù)集統(tǒng)計(jì)信息如表1和表2所示.
表1 Yelp 數(shù)據(jù)集統(tǒng)計(jì)信息
表2 Amazon 數(shù)據(jù)集統(tǒng)計(jì)信息
實(shí)驗(yàn)中將數(shù)據(jù)集80%作為訓(xùn)練集,10%作為驗(yàn)證集,10%作為測試集,進(jìn)行5 次交叉實(shí)驗(yàn)取平均結(jié)果作為最終結(jié)果.
實(shí)驗(yàn)采用均方根誤差(RMSE)和歸一化折損累計(jì)增益(Normalized Discounted Cumulative Gain,NDCG)作為評(píng)估各推薦算法性能的評(píng)價(jià)指標(biāo).均方根誤差如式(12)所示.
式中,N表示實(shí)驗(yàn)測試項(xiàng)目數(shù),Pj表示預(yù)測評(píng)分,Rj表示實(shí)際評(píng)分,RMSE值越小說明性能越好.
NDCG考慮結(jié)果集中項(xiàng)目的位置相關(guān)性,如式(13).
式中,relj表示處于位置j的推薦結(jié)果的相關(guān)性,Z表示歸一化因子.
ADLUI 推薦模型參數(shù)包含Epoch、詞嵌入維度dW和注意力維度dA,深入分析參數(shù)設(shè)置對(duì)模型的影響.在訓(xùn)練數(shù)據(jù)中Epoch 產(chǎn)生的結(jié)果如圖2所示.
圖2 訓(xùn)練數(shù)據(jù)中Epoch 產(chǎn)生的結(jié)果
從訓(xùn)練中可以看出,剛開始RMSE值相對(duì)較大,那是因?yàn)閰?shù)更新的數(shù)量小還不能確定最優(yōu)參數(shù)值,隨著訓(xùn)練繼續(xù),Epoch 的增大,RMSE值逐步減小.從兩個(gè)數(shù)據(jù)集的RMSE值變化情況可看出,Amazon 的RMSE值波動(dòng)變化比Yelp 大,原因是Amazon 數(shù)據(jù)集的數(shù)據(jù)量大且數(shù)據(jù)多樣性,導(dǎo)致訓(xùn)練誤差大,Epoch 值的變化使RMSE有明顯波動(dòng).當(dāng)Epoch 值取13 到17 時(shí)實(shí)驗(yàn)結(jié)果最優(yōu).為了避免Epoch 值過大而發(fā)生數(shù)據(jù)過擬合現(xiàn)象以導(dǎo)致推薦性能下降,在驗(yàn)證數(shù)據(jù)中再次分析Epoch的取值,驗(yàn)證數(shù)據(jù)中Epoch 產(chǎn)生的結(jié)果如圖3所示,Epoch 取值15 結(jié)果最優(yōu).
圖3 驗(yàn)證數(shù)據(jù)中Epoch 產(chǎn)生的結(jié)果
詞嵌入維度dW和注意力維度dA通過數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),觀察不同數(shù)據(jù)集中RMSE值的最優(yōu)結(jié)果.詞嵌入維度dW實(shí)驗(yàn)結(jié)果如圖4所示,dW取值200 結(jié)果最優(yōu).
圖4 詞嵌入維度dW 實(shí)驗(yàn)結(jié)果
注意力維度dA實(shí)驗(yàn)結(jié)果如圖5所示,dA取值100結(jié)果最優(yōu).
圖5 注意力維度dA 實(shí)驗(yàn)結(jié)果
所提ADLUI 推薦模型與現(xiàn)有模型TopicMF[1]、CDL[4]、ConvMF[5]、DeepCoNN[6]、ACoNN[8]進(jìn)行比較.在Yelp和Amazon 數(shù)據(jù)集中,各模型RMSE值的比較結(jié)果如表3所示,各模型NDCG的比較結(jié)果如表4所示.
表3 各模型RMSE 值的比較結(jié)果
表4 各模型NDCG 值的比較結(jié)果
通過實(shí)驗(yàn)結(jié)果驗(yàn)證了各模型的性能,TopicMF 基于主題模型考慮不到評(píng)論文本上下文及詞序特征,性能表現(xiàn)最差.CDL 模型是將深度學(xué)習(xí)中的堆棧自編碼器與矩陣分解模型結(jié)合的一個(gè)分層貝葉斯模型.結(jié)合評(píng)論文本建模采用自編碼學(xué)習(xí)項(xiàng)目的特征表示,性能優(yōu)于TopicMF.ConvMF是將CNN與概率矩陣分解相結(jié)合,利用CNN 提取評(píng)論文本潛在特征.相對(duì)于CDL更進(jìn)一步,基于CNN 考慮詞序和評(píng)論文本上下文信息進(jìn)行獲取潛在語義表示.DeepCoNN是采用兩個(gè)并行的CNN 分別提取用戶行為特征和評(píng)論文本中的項(xiàng)目屬性信息,模型的最后一層應(yīng)用分解機(jī)捕獲交互信息完成評(píng)分預(yù)測.性能優(yōu)于ConvMF.ACoNN是對(duì)DeepCoNN模型的改進(jìn),在DeepCoNN 模型中加入一層基于注意力機(jī)制的權(quán)值更新層實(shí)現(xiàn)對(duì)評(píng)論文本的進(jìn)一步優(yōu)化,加強(qiáng)網(wǎng)絡(luò)對(duì)重點(diǎn)內(nèi)容的關(guān)注有效提高推薦的準(zhǔn)確性.本文所提算法ADLUI 分別構(gòu)建用戶和項(xiàng)目的評(píng)論文本表示,利用Bi-GRU 捕獲文本中的詞序信息,提取文本的上下文依賴關(guān)系以獲得文本特征表示,引入注意力機(jī)制,識(shí)別文本特征表示中不同特征的重要性,將生成的用戶和項(xiàng)目評(píng)論數(shù)據(jù)的兩組隱含特征分別輸入全連接層處理獲取最終特征表示,然后再合并到同一個(gè)向量空間以進(jìn)行預(yù)測評(píng)分,有效結(jié)合用戶和項(xiàng)目信息,與其他的算法相比較具有更優(yōu)的推薦性能.在Yelp和Amazon 兩個(gè)數(shù)據(jù)集中,NDCG@10 結(jié)果較其他最好算法提高了1.95%和1.58%,實(shí)驗(yàn)結(jié)果表明,ADLUI 算法有效提高推薦性能.
提出一種基于注意力機(jī)制的深度學(xué)習(xí)推薦算法,充分利用評(píng)論文本信息,挖掘用戶潛在的興趣偏好和項(xiàng)目屬性特征,實(shí)驗(yàn)結(jié)果表明,所提算法能夠有效提高推薦的精度,為用戶提供更加準(zhǔn)確和優(yōu)質(zhì)的推薦項(xiàng)目.下一步將考慮用戶興趣偏好會(huì)隨時(shí)間而變化對(duì)推薦算法完善進(jìn)行研究.