倪美玉,曹為剛
(浙江科貿職業(yè)技術學院,金華 321019)
隨著信息技術和互聯(lián)網技術的飛速發(fā)展,數(shù)據規(guī)模急劇增加,信息過載嚴重,推薦系統(tǒng)是解決問題重要技術手段[1,2].當前,在各大電商平臺中推薦系統(tǒng)中推薦算法的好壞對電子商務發(fā)展有著十分深遠的影響.個性化推薦是根據用戶的需求,從海量信息中挖掘出用戶感興趣的商品或服務,并按照評分預測結果進行個性化展示.推薦算法是個性化推薦的核心,直接決定了推薦系統(tǒng)的推薦性能,成為當前研究的熱點問題[3,4].
協(xié)同過濾是目前個性化推薦系統(tǒng)普遍采用的技術,其基本思想是利用過去具有相同興趣的用戶會在未來選擇相似的商品.典型的協(xié)同過濾類算法是基于矩陣分解的協(xié)同過濾推薦模型,該模型首先分別表征用戶和商品特征,然后借助用戶和商品特征向量的點積預測評分矩陣,具有較好的推薦性能,但評分數(shù)據稀疏性問題一直制約傳統(tǒng)協(xié)同過濾的瓶頸[5].深度學習技術近年來被用于解決個性化商品推薦問題,基于深度學習的混合推薦模型被相繼提出,例如DeepCoNN[6]、DLALSTM[7]、NARRE[8]等.這些模型均是首先利用深度學習技術將用戶對商品的評論數(shù)據變換到隱空間,得出評分矩陣后再利用傳統(tǒng)推薦模型完成個性化推薦,但靜態(tài)詞向量編碼影響了評分矩陣估計性能,降低了推薦系統(tǒng)的準確性.
本文提出了一種基于深度神經網絡和動態(tài)協(xié)同濾波的混合個性化商品推薦模型.文章后續(xù)章節(jié)安排如下:第1 節(jié)總體介紹了文中混合個性化推薦模型架構,第2 節(jié)給出了基于深度學習的用戶與商品隱含特征提取方法,第3 節(jié)構建了基于動態(tài)協(xié)同過濾的商品推薦模型,第4 節(jié)通過實驗驗證了推薦模型的參數(shù)設置和推薦性能,最后是總結.
目前協(xié)同過濾的商品推薦算法的關鍵是對商品評分的預測,主要存在以下3 個方面問題.首先,評分矩陣稀疏性問題.評論數(shù)據稀疏性是影響個性化商品推薦系統(tǒng)最終評分預測準確性的關鍵因素,這是由于平臺中的商品數(shù)量遠遠大于單個用戶的評論數(shù)量,導致評論數(shù)據呈現(xiàn)出十分明顯的稀疏性,進而影響用戶與商品、用戶與用戶之間的關系量不足,降低商品評分預測結果的準確性.其次,冷啟動問題.引發(fā)推薦系統(tǒng)冷啟動主要有兩個原因,即新用戶和新商品.在商品推薦平臺中,每天都有新用戶注冊,同樣也有新商品上架.系統(tǒng)無法新商品或新用戶的興趣程度.最后,信息過期問題.隨著時間的推移,用戶的興趣偏好或者商品的受歡迎程度均會出現(xiàn)變化,而傳統(tǒng)推薦算法沒有考慮這種變化帶來的影響.
針對上述問題,本文提出了基于卷積神經網絡和動態(tài)協(xié)同過濾的個性化商品推薦模型,模型架構如圖1所示.
首先將用戶評論和商品評論文本信息用BERT 模型和雙向GRU 進行處理,利用并行卷積神經網絡分別提取用戶和商品的隱含特征向量;然后,引入用戶對商品的評分行為,采用TimeSVD++算法實現(xiàn)最終的商品評分預測.該模型通過卷積神經網絡在捕獲用戶和商品的隱含特征向量,以降低用戶對商品評分矩陣預測過程中存在的數(shù)據稀疏性和冷啟動問題;在協(xié)同過濾過程中融入時間序列,降低商品推薦過程中信息過程帶來的影響.
詞袋模型是典型的詞分法評論文本處理模型,但該模型對文本中的詞語順序不敏感,經常將意思完全相反的文本用相同的詞向量表示[9].并且評論文本的噪聲大、網絡用語多也嚴重影響了詞分法的文本處理性能.為此,文中采用雙向GRU的文本處理模型[10],如圖2所示.由于用戶評論和商品評論是具有相似結構的兩個平行模型,因此只介紹商品評論文本的處理過程.

圖2 商品評論處理過程
令I表示某商品的評論集:

其中,Rij(j=1,2,···,d)表示單條評論,d表示模型設置的最大評論個數(shù).將商品評論數(shù)據輸入到BERT 映射模型[5],將單條評論數(shù)據轉換為向量形式:

在BERT 映射過程中,如果商品評論個數(shù)大于d,則只映射該商品的前d條評論;如果商品評論個數(shù)小于d,則通過填充零向量使映射后向量長度等于d.
考慮到評論之間的內在聯(lián)系,采用雙向GRU 對BERT 映射后的向量記性編碼.編碼過程包括前向和后續(xù)兩部分,其中前向按照正序處理(Oi1→Oid),后向按照逆序處理(Oid→Oi1),分別獲得編碼后的序列hfi和hbi.接下來,通過拼接獲取評論向量特征:

經過雙向GRU 編碼后的特征向量可以表示為:

已知每一條商品評論的內容均具有各自特征,即均隱含了對商品的不同偏好的貢獻,因此采用自注意力機制對特征向量進行信息匯總,匯總后得出的注意力向量可以表示為:

其中,ω1和ω2均 表示維度符合要求的權值參數(shù),softmax()表示基于注意力機制的歸一化處理.注意力向量中包含了評論對商品偏好的貢獻,將同一商品的隱藏特征向量進行加權求和后,并后接一個全連接層,即可得出評論集u對商品的最終隱含特征向量

其中,W′和b′分別表示全連接層的權值參數(shù)和偏置參數(shù).同理,可以按照相同方式獲得評論集對用戶的最終隱含特征向量Utext.
按照上一節(jié)文本處理方式分別獲得用戶和商品的偏好表達式后,本節(jié)首先基于卷積神經網絡提取用戶和商品的深層次特征,并利用共享層將其映射到相同的特征空間后進行評分矩陣預測.
將最終隱含特征向量輸入到卷積神經網絡以提取其深層次特征,假設卷積神經網絡的卷積層的神經元個數(shù)為m,第j個神經元的卷積核為Kj∈Rc×d,其中d為隱含特征向量的維度.對于隱含特征向量Itext(以商品為例),各個卷積核的輸出為:

其中,G(·)和bj分別表示卷積核的激活函數(shù)和偏置項,文中激活函數(shù)采用線性整流函數(shù)ReLU,具體為:

ReLU 能有效避免訓練過程中出現(xiàn)梯度消失和梯度爆炸現(xiàn)象,并且能夠顯著提升隨機梯度下降算法的收斂速度,降低模型訓練時間[11].
接下來,對卷積運算后的特征向量進行池化操作,采用最大池化法提取特征向量中的最大值作為特定卷積內核的特征.經過最大池化操作后,卷積層的輸出結果被轉化為長度固定的向量,池化操作可以表示為:

根據上述卷積操作與池化操作過程可知,卷積層將輸出的特征向量經過最大池化操作后,文本信息中特征最強的信息被篩選出來,而特征較弱的信息在池化操作過中被濾除.為了保證文本信息的完整性,文中采用多個并行卷積神經網絡來獲得文本信息的各種特征,這是因為多個并行的卷積層能夠提取出不同的局部信息,并行卷積層的輸出特征集合可以表示為:

其中,M表示并行卷積層中卷積核的個數(shù).
池化層的輸出被導入全連接層,令W表示全連接層的權值矩陣,則全連接層的輸出可以表示為:

其中,f(·)和b分別為全連接層的激活函數(shù)和偏置項.上述是以商品為例獲得的深層特征XI,同樣將用戶評論文本輸入,能夠得到用戶評論的深層特征XU.
雖然深層特征XI和XU均源自于評論數(shù)據,但是對用戶和商品兩個不同映射空間的特征表示,并不具有可比性,必須在評分預測之前將其變換到相同的特征空間中.為此,文中采用共享層對用戶評論數(shù)據的隱含特征和商品評論數(shù)據的隱含特征進行耦合操作,即將XI和XU耦合為單個特征向量Z=(XI,XU).
動態(tài)協(xié)同過濾算法是在SVD++算法的基礎上,增加了時間序列項,因此被稱為TimeSVD++算法[12].TimeSVD++算法是由簡單的因子分解模型演化而來的,假設已經獲得用戶對商品的評分預測矩陣r∈RN×M,其中N和M分別表示用戶個數(shù)和商品個數(shù),矩陣中rui代表用戶u對商品i的評分預測值.
通過卷積神經網絡處理評論文本信息,得出的用戶和商品的深層特征向量分別為XI和XU,利用共享層耦合后并采用因子分解機得出用戶對商品的評分矩陣預測值.TimeSVD++算法首先需要降低和rui之間的誤差,獲取最優(yōu)的評分預測,具體過程可以表示為:

在評分預測過程中加入偏置項,即構成SVD 模型:

式中,u為訓練過程中用戶對商品評分預測值的均值,bu和bi分別表示用戶偏置項和商品偏置項,表示一個用戶或一個商品的評分預測值的均值.
SVD++算法在SVD 模型的基礎上,通過隱式反饋信息加入了用戶興趣信息.也就是說,任意一個用戶只要對某個商品進行過評論,不管評論內容的評分預測值高低,均表示用戶對該商品感興趣,感興趣的程度用隱因子來表示此時,用戶對商品的評分預測模型修正為:

式中,N(u)表示用戶u評價過的所有商品的集合.
TimeSVD++算法的基本思路是隨著時間的推移,用戶對商品的喜好程度也是變化的,即式(15)中XU、bu和bi不再是固定量,而是一個關于時間的函數(shù),但商品特征向量XI不隨時間變化.由此可見,TimeSVD++算法中融入了時間序列項,因此在預測用戶對商品的評分過程中需要沿著時間軸劃分出多個時間段,在各個時間段內對商品評分進行預測.劃分后的時間段用Bin(t)表示,XU、bu和bi值在同一個時間段內相同,不同時間段內不同.考慮時間序列項的TimeSVD++算法評分預測過程如下:

其中,bi(t)和bu(t)分別表示商品和用戶在t時刻的偏置,均由靜態(tài)部分和動態(tài)部分組成,即:

式中,bi,Bin(t)表示商品在時間段Bin(t)內的偏置,tu表示用戶給出所有評分的均值.
TimeSVD++算法在獲取評分預測值后,通過式(19)最小化預測值與真實值之間的誤差:

為了驗證本文提出的深度神經網絡和動態(tài)協(xié)同濾波(DEEP-TimeSVD++)的個性化商品推薦模型有效性,使用亞馬遜公共數(shù)據集中的子數(shù)據集Toys_and_Games和Instant_Video,兩個數(shù)據集中約有78.3%的商品評論數(shù)量少于20 條,67.1%的商品評論數(shù)量少于10 條,滿足用戶對商品評論稀疏性要求.
后續(xù)實驗中采用均方誤差(MSE)作為評價模型對商品評分預測準確性的指標,該指標定義如下:

式中,N表示實驗過程中樣本個數(shù).模型的MSE越小,說明模型的商品評分預測性能越好.
文中實驗環(huán)境的具體參數(shù)如表1所示.

表1 實驗環(huán)境參數(shù)
針對評論文本的評分預測問題,文中提出采用BERT映射結合雙向GRU(BERT-GRU)提出評論文本特征,本節(jié)將其與不同文本處理模型進行對比測試,包括預訓練詞向量結合CNN 模型(Word-CNN)、預訓練詞向量結合CNN 模型(Word-GRU)、BERT 映射結合CNN 模型(BERT-CNN).4 種文本處理模型的性能對比結果如表2所示.
根據4 種模型的文本處理性能結果可知,加入BERT 映射的文本處理模型相比傳統(tǒng)預訓練詞向量模型的文本處理性能得到了進一步提高,這是因為傳統(tǒng)詞向量模型在多義詞影響下不能準確給出同一詞語在不同環(huán)境下的真實含義,而采用BERT 映射能夠有效解決該問題,提升對評論文本的語義理解能力.對比BERT-CNN和BERT-GRU 可知,雙向GRU 模型比傳統(tǒng)CNN 模型的文本處理性能更佳,這是因為某個商品的評論集處理本質上是一個序列處理問題,而雙向GRU 中的RNN 遞歸結構比CNN 結構更適合于表征序列特征,能夠有效提取評論文本之間的聯(lián)系,提高文本處理性能.

表2 文本處理性能對比結果
本節(jié)對模型涉及到的隱因子、時間段劃分和學習率進行測試,分析不同參數(shù)取值對實驗結果的影響.其中隱因子的測試范圍為[ 5,10,15,20],時間段劃分的測試范圍為[ 10,15,20,25].
圖3為不同隱因子下本文提出的DEEP-TimeSVD++算法MSE指標的變化情況.結果表明,當隱因子取值為15 時,DEEP-TimeSVD++算法對Toys_and_Games和Instant_Video的MSE分別為0.85和0.93,均達到最小.對比圖3可知,當隱因子取值為5、10和20 時,DEEP-TimeSVD++算法的MSE變化并不是很大,說明DEEP-TimeSVD++算法對隱因子設置敏感性低,綜合考慮推薦性能,后續(xù)實驗中將隱因子a設置為15.

圖3 隱因子對算法性能影響
圖4為不同時間段劃分的DEEP-TimeSVD++算法MSE指標的變化情況.結果表明,Toys_and_Games和Instant_Video 數(shù)據集在Bin(t)為20 時MSE最小,為此文中Bin(t)選取為20.

圖4 時間段劃分對算法性能的影響
本節(jié)仍然采用亞馬遜公共數(shù)據集中的Toys_and_Games和Instant_Video 子集對評分預測推薦的準確性進行評價.首先采用文中提出的BERT-GRU 評分預測模型處理評論文本,然后根據評分矩陣預測結果進行個性化商品推薦,分別采用因子分解機 (FM)、SVD和SVD++模型進行對比測試.此外,對比方法還包括文獻[13]提出的融合了邊緣降噪自編碼器和FM 模型(mSDA-FM)的商品推薦算法.推薦評價指標除了采用MSE以外,還采用平均絕對誤差 (MAE),定義如下:

分別采用本文提出的DEEP-TimeSVD++算法與各對比算法處理Toys_and_Games和Instant_Video,結果如圖5和圖6所示.

圖5 MSE 結果對比
實驗結果表明,本文提出的DEEP-TimeSVD++算法在MSE和MAE兩個性能指標上均優(yōu)于對比方法.由圖5可知,在MSE指標上,DEEP-TimeSVD++算法對Toys_and_Games和Instant_Video 相比性能較好的mSDA-MF 分別提高了1.4%和3.8%.由圖6可知,DEEP-TimeSVD++算法對Toys_and_Games和Instant_Video 相比性能較好的SVD++算法在MAE指標上分別提高了2.5%和2.2%.上述實驗結果證實了DEEPTimeSVD++算法在商品推薦中具有更高的準確性.

圖6 MAE 結果對比
提出了一種基于深度神經網絡和動態(tài)協(xié)同濾波的個性化商品推薦模型,該模型利用BERT 模型和雙向GRU 替代傳統(tǒng)詞向量文本處理方式,能夠有效降低數(shù)據稀疏性影響,實現(xiàn)深層隱含特征提取;采用耦合CNN 網絡預測評分矩陣,并基于融合時間序列項動態(tài)協(xié)同濾波實現(xiàn)商品評分預測.實驗結果驗證了該模型降低了數(shù)據稀疏性和冷啟動問題的影響,考慮了用戶興趣隨時間推移出現(xiàn)的變化,在推薦準確率上具有明顯優(yōu)勢.