劉鐘濤,劉蘭淇
(河南財經(jīng)政法大學(xué) 現(xiàn)代教育技術(shù)中心,河南 鄭州 450046)
許多研究人員對協(xié)同過濾方法進(jìn)行了有價值的研究[1-3],有效地緩解了稀疏評分矩陣的問題,但是受限于評分信息的數(shù)量,依然難以準(zhǔn)確預(yù)測出缺失的評分信息。
隨著電子商務(wù)的廣泛應(yīng)用,每條交易信息包含了用戶評論內(nèi)容、曬圖、用戶檔案、商品介紹、商家檔案等一系列數(shù)據(jù),傳統(tǒng)基于評分的協(xié)同過濾方法已經(jīng)難以準(zhǔn)確地評估出用戶相似性和項目相似性。除了協(xié)同過濾推薦方法,基于內(nèi)容的推薦方法成為了推薦系統(tǒng)領(lǐng)域的研究熱點。
為了充分利用用戶評論的信息,設(shè)計了方面級的觀點挖掘算法[4,5],分析用戶對產(chǎn)品每個方面的情感極性。當(dāng)前的觀點挖掘算法大多為觀點的每個方面分配相等的權(quán)重[6],但在推薦系統(tǒng)問題中,用戶對不同方面的重視程度有所差異,某些用戶可能偏愛外觀好的產(chǎn)品、某些用戶可能偏愛物流快的產(chǎn)品,因此分配相等權(quán)重很難提取出用戶的細(xì)粒度興趣。為了更加契合現(xiàn)實的產(chǎn)品推薦場景,提出了新的方面級加權(quán)觀點挖掘方法,利用深度學(xué)習(xí)技術(shù)提取產(chǎn)品的每個方面及其情感極性,再估計出用戶對不同方面的權(quán)重,最終結(jié)合觀點的分析結(jié)果為用戶提供推薦的項目列表。
現(xiàn)有的觀點挖掘算法直接從文字評論提取觀點[7],未能很好地和推薦系統(tǒng)相結(jié)合,本文設(shè)計了基于深度學(xué)習(xí)的觀點提取技術(shù),使用張量分解法計算每個方面的加權(quán)調(diào)和評分值,最終預(yù)測出用戶的評分。假設(shè)推薦系統(tǒng)的項目集為P={p1,p2,…,pn},用戶集為V={v1,v2,…,vn}。設(shè)R表示用戶-項目評分矩陣,矩陣元素rij表示用戶vi對項目pj的評分。另外創(chuàng)建一個標(biāo)識矩陣M=[mij]I×J,每個變量mij表示評分rij是否具有評論內(nèi)容。
圖1 推薦系統(tǒng)的完整框架
方面級觀點挖掘包含4個要素:方面、觀點持有者、觀點語義和情感,可描述為持有者對某一方面給出具有情感的語義。CNN在觀點挖掘問題上表現(xiàn)出較好的性能,本文設(shè)計了雙通道CNN結(jié)構(gòu)提取產(chǎn)品的方面級觀點。
圖2是CNN的總體結(jié)構(gòu)。CNN包括兩個輸入通道:詞嵌入(Word Embedding)通道和詞性(Part of Speech)標(biāo)注嵌入通道。詞嵌入通道的目標(biāo)是學(xué)習(xí)評論內(nèi)容的語義和上下文信息,該通道采用成熟的word2vec[8]模型實現(xiàn),該模型采用CBOW框架在大規(guī)模Google新聞?wù)Z料庫上訓(xùn)練而來。CNN的詞嵌入通道將每個詞映射到低維向量,生成矩陣X∈Rn×k。詞性標(biāo)注嵌入通道也采用了成熟的Stanford POS Tagger編碼[9],以一個45維向量表示詞性,詞性表示為:wz∈Rn×45。
圖2 CNN的總體結(jié)構(gòu)
(1)卷積層
卷積層從產(chǎn)品評論中提取最顯著的特征。該層通過兩個大小不同的filter生成局部特征,詞嵌入通道和標(biāo)注通道的filter大小不同。設(shè)wx∈Rh×k為詞嵌入通道的filter,h為filter的高度,X為詞嵌入通道的矩陣。卷積層提取特征的數(shù)學(xué)式可表示為
Ci=f(w·xi+h+b)
(1)
式中:f為非線性函數(shù),b為偏置項。通過滑動窗口尋找X中的所有可能詞,獲得一個特征圖
(2)
式中:cx∈Rn-h+1。
標(biāo)注嵌入通道的filter設(shè)為wz∈Rh×l,其對應(yīng)的特征圖表示為
(3)
式中:cz∈Rn-h+1。
(2)池化層
通過最大池化層提取出卷積結(jié)果的最大元素,池化層的數(shù)學(xué)模型可表示為
(4)
(5)
式中:n和m分別為語義特征和標(biāo)注特征的數(shù)量。
(3)輸出層
最終運用softmax函數(shù)生成輸出標(biāo)簽。輸出層的數(shù)學(xué)式可表示為
O=w·(c°r)+b
(6)
式中:r=Rn+m服從伯努利分布。
在許多產(chǎn)品評論中用戶涉及了多個方面,但有些方面可以歸納為一組,例如:“快遞速度快!”和“發(fā)貨神速!”這兩個評價屬于同一個類型。因此需要對CNN提取的方面信息進(jìn)行歸納處理,但用戶評論中存在大量不規(guī)范的語言表述方式,難以通過現(xiàn)有的聚類算法和距離度量方法直接進(jìn)行分組。為此本文設(shè)計了基于自編碼器的方面級評論歸納方法。
評論歸納的目標(biāo)是將詞語(方面)映射到實向量空間,使兩個詞之間的距離轉(zhuǎn)化成實向量空間中的距離,然后使用K-means方法對方面進(jìn)行聚類(方面數(shù)量K值由實驗確定)。映射函數(shù)F()需服從兩個約束條件:①在實向量空間中,一個特定詞和它的不規(guī)范詞之間的距離應(yīng)當(dāng)小于該詞和其它不規(guī)范詞之間的距離。②在實向量空間中,意義相似的詞之間距離應(yīng)當(dāng)小于意義不相似詞的距離。本文使用降噪自編密碼器實現(xiàn)第①個約束。采用上下文編碼器實現(xiàn)第②個約束,編碼器假設(shè)上下文相同的詞意相似。
(1)降噪自編碼器設(shè)計
自編碼器的結(jié)構(gòu)包括輸入層、隱藏層和輸出層3個部分。假設(shè)x為一個訓(xùn)練樣本,自編碼器的目標(biāo)是學(xué)習(xí)一個函數(shù)id(x)≈x。如果對自編碼器設(shè)置約束條件,那么函數(shù)id()能夠?qū)W習(xí)數(shù)據(jù)的特征和結(jié)構(gòu)。為輸入數(shù)據(jù)增加噪聲也是一種約束,自編碼器識別出最相關(guān)的特征,該類型的自編碼器稱為降噪自編碼器。
h(v(mj))=o(Wv(mj)+b)
(7)
其中,W為權(quán)重矩陣,o為激活函數(shù),b為偏置項。W的每個元素wpq表示v(mj)第p個元素和自編碼器第q個隱層單元間連接的權(quán)重。
(8)
(9)
其中,函數(shù)d()表示在實向量空間的距離度量函數(shù)。
圖3 降噪自編碼器的網(wǎng)絡(luò)結(jié)構(gòu)
(2)上下文編碼方法
將自編碼器與上下文環(huán)境連接起來,上下文定義為一個詞語序列a1,a2,…,aT,其中at∈A。上下文編碼器的目標(biāo)是學(xué)習(xí)一個概率函數(shù)g(),g()能反映每個詞在給定上下文的概率,g()定義為詞at出現(xiàn)在序列at-1,…,at-s-1之后的可能性,表示為g(at,at-1,…,at-s-1)=P(at|at=1,…,at=s=1)。將g()分成兩個子函數(shù):①將詞語ai∈A映射成向量的函數(shù):u(ai),表示詞ai在詞集中相關(guān)聯(lián)的詞向量。②詞向量空間的概率函數(shù):f(),f()根據(jù)上下文的詞向量序列(u(at),u(at-1),…,u(at-s-1)),計算出下一個詞at的條件概率分布:g(at,at-1,…,at-s-1)=f(u(at),u(at-1),…,u(at-s-1))。
函數(shù)g()是u()和f()的復(fù)合函數(shù),通過上下文編碼器學(xué)習(xí)函數(shù)g(),編碼器的網(wǎng)絡(luò)結(jié)果如圖4所示。圖中矩陣U為詞向量矩陣,f()的參數(shù)設(shè)為ω。通過最大化以下的對數(shù)似然來訓(xùn)練神經(jīng)網(wǎng)絡(luò)
(10)
f()采用softmax輸出層,定義為
(11)
其中,y為神經(jīng)網(wǎng)絡(luò)隱層的輸出,y的計算式為
(12)
圖4 上下文編碼器的網(wǎng)絡(luò)結(jié)構(gòu)
(3)詞空間的距離
如果h和v為雙射函數(shù),那么降噪自編碼器h(v(ai))也滿足從詞空間C到h(v(C)?n的雙射關(guān)系。由此可得詞ai和aj自編碼器表示之間的距離函數(shù)Da在空間詞空間C中也具備距離度量能力,Da距離定義為
Da(ai,aj)=d(h(v(ai)),h(v(aj)))
(13)
圖5是降噪自編碼器和上下文編碼器混合的深度網(wǎng)絡(luò)結(jié)構(gòu),初始化函數(shù)v是詞的獨熱編碼,考慮自編碼器和上下文編碼相結(jié)合獲得映射函數(shù)F,因此包含上下文關(guān)系的距離度量方法為
Dc(ai,aj)=d(F(ai),F(aj))
(14)
其中,Dc可視為對Da的擴(kuò)展,Dc含有詞的上下文關(guān)系。
圖5 混合編碼器的網(wǎng)絡(luò)結(jié)構(gòu)
自編碼器的目標(biāo)是最小化正確詞和非標(biāo)準(zhǔn)詞向量表示之間的距離,上下文編碼器則同時學(xué)習(xí)了矩陣U中標(biāo)準(zhǔn)詞和不規(guī)范詞的向量表示。
上文獲得了歸納后的方面集和觀點集,然后估計方面級的評分矩陣R1,R2,…,RK,K為方面數(shù)量。首先采用語義Wordnet方法[10]計算每個方面的情感極性評分,假設(shè)ak是評論Dij的一個方面,那么該方面評分的計算式為
(15)
式中:Wk表示Dij中與方面ak相關(guān)的詞集,OP(w)表示詞的極性評分。
(16)
式中:R為一維張量元素的數(shù)量,運算符“°”表示向量外積運算,xr、yr和zr分別為矩陣X、Y和Z的列向量,I×R、J×R和K×R分別為X、Y和Z的大小。式(16)的元素級計算式為
(17)
(18)
通過對以下目標(biāo)函數(shù)進(jìn)行最小化處理,計算出矩陣X、Y和Z的最優(yōu)值
(19)
約束條件為
gijk≡-wijk≤0
(20)
(21)
式中:i=1,…,I,j=1,…,J,k=1,2,…,K,gijk和hij為約束條件。使用梯度下降法[11]估計式(17)的最佳矩陣X、Y和Z。
(22)
(23)
式中:D為張量的維數(shù)。
本文利用方面級觀點挖掘技術(shù)以提高推薦系統(tǒng)的性能,因此對系統(tǒng)的方面級觀點挖掘技術(shù)和總推薦系統(tǒng)分別進(jìn)行了驗證實驗。
采用觀點挖掘問題常用的Amazon數(shù)據(jù)集[13]作為benchmark數(shù)據(jù)集,從該數(shù)據(jù)集選擇3種產(chǎn)品的文字評論,分別為DVD,Canon和Cell phane。數(shù)據(jù)集的每個句子被標(biāo)注了方面和觀點極性。表1是數(shù)據(jù)集的介紹。
表1 實驗數(shù)據(jù)集的統(tǒng)計信息
(1)對比方法和參數(shù)設(shè)置
本次實驗采用了4組對比模型:①基于字典學(xué)習(xí)的觀點挖掘算法(DLC)[14],②基于循環(huán)深度學(xué)習(xí)的觀點挖掘(DLM)[15],③基于CNN和SVM的觀點挖掘算法(CNN-SVM)[16],④基于種群優(yōu)化聚類的觀點挖掘算法(SwarmC)[17]。本文觀點挖掘算法包含聚類技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)技術(shù),通過CNN-SVM[16]可評估本文改進(jìn)CNN模型的性能。
本文的CNN模型嵌入層和卷積層均采用大小為(3,4,5)的filter。每個filter包含100個特征圖,dropout率為0.5。將ReLU作為激活函數(shù),隱層單元數(shù)量為128。采用隨機(jī)梯度下降法訓(xùn)練CNN模型,基于5折交叉驗證方法確定網(wǎng)絡(luò)的參數(shù)。鑒于F1-score指標(biāo)綜合了精度指標(biāo)和召回率指標(biāo),采用F1-score作為總評價指標(biāo)。
(2)方面提取實驗的結(jié)果
圖6是5個觀點挖掘算法的F1-score結(jié)果,實驗結(jié)果的置信度為95%。圖中顯示,DLC和SwarmC兩個算法的性能低于其它3個算法,由此可看出當(dāng)前的深度學(xué)習(xí)技術(shù)在觀點挖掘問題上具有較好的效果。另外比較DLM和CNN-SVM兩個算法,CNN-SVM的結(jié)果略好于DLM,CNN-SVM通過經(jīng)典CNN提取評論的觀點和詞性,再通過SVM對觀點進(jìn)行歸納。DLM所采用的循環(huán)神經(jīng)網(wǎng)絡(luò)包含忘記機(jī)制導(dǎo)致提取的特征集稀疏性較高,因此未能達(dá)到CNN-SVM的性能。本文系統(tǒng)的性能則略高于CNN-SVM,由此總結(jié)出:本文的CNN雙通道結(jié)構(gòu)有效地增強(qiáng)了方面級觀點檢測的性能,基于混合編碼器的觀點歸納方法也有效地提高了觀點挖掘的性能。
圖6 觀點挖掘?qū)嶒灥慕Y(jié)果
基于內(nèi)容的推薦系統(tǒng)通常需要具備評分預(yù)測能力和良好的推薦結(jié)果,在此對本文系統(tǒng)的評分預(yù)測能力和推薦性能進(jìn)行了實驗評估。使用McAuley[18]收集的Amazon數(shù)據(jù)集,該數(shù)據(jù)集包含大量產(chǎn)品的評論內(nèi)容和評分信息,原數(shù)據(jù)集十分龐大,選擇其中兩個產(chǎn)品類別進(jìn)行實驗:樂器類產(chǎn)品和影音類產(chǎn)品。篩選出評論數(shù)量在5條以上的用戶以及被評論數(shù)量在5條以上的產(chǎn)品,將其它不滿足條件的數(shù)據(jù)刪除。將數(shù)據(jù)集隨機(jī)選擇80%作為訓(xùn)練集、10%作為測試集、10%作為驗證集,驗證集用于微調(diào)神經(jīng)網(wǎng)絡(luò)的超參數(shù)。表2是最終實驗數(shù)據(jù)集的統(tǒng)計信息。
表2 實驗數(shù)據(jù)集的統(tǒng)計信息
(1)性能評價指標(biāo)和對比模型
采用RMSE和MAE兩個指標(biāo)評估評分預(yù)測的性能,RMSE指標(biāo)定義為
(24)
MAE指標(biāo)定義為
(25)
式中:T為測試集的實例數(shù)量。
采用pre@10和平均精度均值(MAP)指標(biāo)評估推薦結(jié)果的性能。pre@10統(tǒng)計了推薦系統(tǒng)返回的10個項目中包含了多少個相關(guān)項,定義為
(26)
MAP指標(biāo)則重點評價了推薦項目列表的排列質(zhì)量,相關(guān)度高的項目應(yīng)當(dāng)被優(yōu)先推薦。設(shè)查詢qi∈Q的相關(guān)項為{i1,…,im},Rjk為推薦系統(tǒng)返回的前ik個項,MAP的計算方法為
(27)
本次實驗采用了4組對比模型,基于模糊系統(tǒng)的評分預(yù)測和推薦系統(tǒng)(SAwareRP)[19],基于圖模型和特征向量的評分預(yù)測和推薦系統(tǒng)(GraphRP)[20],結(jié)合循環(huán)神經(jīng)網(wǎng)絡(luò)和反向傳播神經(jīng)網(wǎng)絡(luò)的評分預(yù)測和推薦系統(tǒng)(RNN&BPNN)[21],基于觀點挖掘的協(xié)同過濾推薦系統(tǒng)(CFOM)[22]。SAwareRP和GraphRP是和本文系統(tǒng)不同類型的評分預(yù)測技術(shù),通過這兩個模型觀察不同系統(tǒng)類型的性能差異。RNN&BPNN是一個采用多層深度深度學(xué)習(xí)技術(shù)的評分預(yù)測技術(shù),通過該模型觀察本文所采用的卷積神經(jīng)網(wǎng)絡(luò)是否有效。CFOM也是基于觀點挖掘的評分預(yù)測技術(shù),該技術(shù)僅對評論觀點的極性進(jìn)行了粗粒度的分析,通過該模型觀察本文方面級的評論挖掘技術(shù)是否有效。
(2)參數(shù)K實驗
本系統(tǒng)將CNN挖掘的觀點分為K個分組,選擇不同的K值進(jìn)行了實驗,觀察K值對系統(tǒng)性能的影響。圖7是值為{5,10,15,20,25,30}時,推薦系統(tǒng)在驗證集上的平均RMSE結(jié)果和平均MAE結(jié)果。圖7中結(jié)果顯示,兩個數(shù)據(jù)集在K=15-20之間的預(yù)測性能最佳,K值過高會破壞方面和潛在因子矩陣之間的一對一映射關(guān)系,從而導(dǎo)致預(yù)測性能下降。在下文的實驗中將K參數(shù)設(shè)為15。
圖7 在驗證集上的試錯實驗
圖8是不同系統(tǒng)在測試集上的平均預(yù)測實驗結(jié)果。綜合圖中的全部結(jié)果,RNN&BPNN并未利用產(chǎn)品的評論信息,而是分析了用戶的個人檔案和評分信息,其評分預(yù)測的性能略低于其它4個系統(tǒng)。此外,基于觀點挖掘的評分算法CFOM和本文系統(tǒng)優(yōu)于其它3個算法,由此可確定挖掘產(chǎn)品的評論信息具有明顯的效果。CFOM對評論內(nèi)容給出總體的極性判斷,如消極、中性和積極等,而在實際情況下,某些用戶可能偏愛外觀好的產(chǎn)品、某些用戶可能偏愛物流快的產(chǎn)品,因此通過總體極性判斷很難提取出用戶的細(xì)粒度興趣。本文系統(tǒng)則深入分析了評論的方面級觀點,并通過三階張量分解技術(shù)估計用戶對每個方面的權(quán)重值,通過細(xì)粒度的觀點分析提高了評分預(yù)測的準(zhǔn)確性。
圖8 在測試集上的實驗
本文系統(tǒng)的優(yōu)勢在于加強(qiáng)了對評論不同方面的觀點挖掘,提高了評分預(yù)測的魯棒性和總體質(zhì)量,該實驗也表明高質(zhì)量的觀點挖掘技術(shù)能夠促進(jìn)推薦系統(tǒng)的推薦性能。
基于預(yù)測的評分為每個測試用戶產(chǎn)生一個Top-10的推薦項目列表,列表的項目按用戶的偏好降序排列。圖9是每個推薦系統(tǒng)的推薦列表pre@10指標(biāo)和MAP指標(biāo)。
圖9 每個推薦系統(tǒng)的推薦列表質(zhì)量
圖9中CFOM的評分預(yù)測性能較好,但是該系統(tǒng)經(jīng)過協(xié)同過濾的矩陣分解之后推薦的精度有所衰減,但CFOM的項目排列質(zhì)量較為理想。SAwareRP的評分預(yù)測性能略低于其它模型,但該系統(tǒng)通過在矩陣分解過程中設(shè)立了約束,有效地提高了推薦系統(tǒng)的推薦質(zhì)量。SAwareRP系統(tǒng)對樂器類產(chǎn)品的MAP指標(biāo)較好,與本文系統(tǒng)較為接近。本文系統(tǒng)的pre@10指標(biāo)和MAP指標(biāo)明顯高于其它4個推薦系統(tǒng),由此可看出本文系統(tǒng)加強(qiáng)了對評論不同方面的觀點挖掘,提高了評分預(yù)測的魯棒性和總體質(zhì)量,該實驗也表明高質(zhì)量的觀點挖掘技術(shù)能夠促進(jìn)推薦系統(tǒng)的推薦性能。
為了更加契合現(xiàn)實的產(chǎn)品推薦場景,提出了一種方面級加權(quán)觀點挖掘方法,并將該方法應(yīng)用于推薦系統(tǒng)。系統(tǒng)通過卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)評論內(nèi)容在方面級的情感和觀點,然后基于降噪自編碼器對方面級的觀點集合進(jìn)行歸納和分組,以三階張量分解技術(shù)為基礎(chǔ),推斷出用戶對項目的綜合評分。實驗結(jié)果表明,該系統(tǒng)有效地提高了推薦系統(tǒng)的推薦性能,優(yōu)化了推薦項目的順序。本文系統(tǒng)的優(yōu)勢在于加強(qiáng)了對評論不同方面的觀點挖掘,提高了評分預(yù)測的魯棒性和總體質(zhì)量,實驗結(jié)果也表明高質(zhì)量的觀點挖掘技術(shù)能夠促進(jìn)推薦系統(tǒng)的推薦性能。未來將研究雙通道CNN模型在中文環(huán)境和中文語料庫的實現(xiàn)方法,并且收集中文的產(chǎn)品評論實驗數(shù)據(jù)集,進(jìn)一步完善本文的研究工作。