趙冬梅,李 雅,陶建華,顧明亮
(1. 江蘇師范大學(xué) 物理與電子工程學(xué)院,江蘇 徐州 221116;2. 中國(guó)科學(xué)院 自動(dòng)化研究所 模式識(shí)別國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100101)
情感分析旨在從文本中挖掘出用戶對(duì)某一熱點(diǎn)問(wèn)題或者產(chǎn)品性能的觀點(diǎn)信息。在實(shí)際應(yīng)用中不僅可以幫助電商企業(yè)評(píng)估產(chǎn)品的市場(chǎng)價(jià)值,也可以幫助政府部門(mén)做好輿情監(jiān)控等任務(wù)。因此,文本情感分析越來(lái)越受到關(guān)注,并成為自然語(yǔ)言處理領(lǐng)域的重要課題之一[1]。
在傳統(tǒng)的情感分析中,研究者們往往只關(guān)注評(píng)論內(nèi)容的重要性。根據(jù)絕大多數(shù)推薦網(wǎng)站上產(chǎn)品評(píng)論信息中提供的評(píng)價(jià)用戶信息及其喜好信息,可以發(fā)現(xiàn)同一用戶評(píng)論數(shù)據(jù)的情感極性比來(lái)自不同用戶的情感極性更傾向于一致。因此,將用戶及被評(píng)價(jià)的產(chǎn)品信息融入情感分類的任務(wù)中至關(guān)重要。
目前已有研究者考慮在模型中加入用戶及產(chǎn)品信息。例如,將用戶、產(chǎn)品以及評(píng)論數(shù)據(jù)特征基于詞袋模型輸入不同的分類器中進(jìn)行探究[2]。也有使用概率模型獲取用戶的興趣分布和文本內(nèi)容分布[3]。而隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別、自然語(yǔ)言處理領(lǐng)域的成功應(yīng)用,基于深度學(xué)習(xí)的模型越來(lái)越成為情感分析的主流方法。通過(guò)神經(jīng)網(wǎng)絡(luò)可以提取出文本中更豐富的語(yǔ)義信息以及包含的用戶、產(chǎn)品信息。但目前大多數(shù)模型都是將用戶和產(chǎn)品信息加入文本中一起輸入模型訓(xùn)練,這樣不僅使評(píng)論內(nèi)容失去原本的語(yǔ)義,且導(dǎo)致用戶個(gè)性等信息也沒(méi)能被提取出來(lái)。
由于成長(zhǎng)環(huán)境、教育背景等差異,不同用戶的性格習(xí)慣存在一定區(qū)別。評(píng)價(jià)產(chǎn)品時(shí),用戶會(huì)對(duì)喜歡的物品打高分,對(duì)不喜歡的物品打低分,但也存在用戶對(duì)喜歡或不喜歡的物品都選擇低分或者高分,這就凸顯了用戶的個(gè)性信息。本文提出LSTM-CFA模型,通過(guò)使用推薦系統(tǒng)中協(xié)同過(guò)濾算法從用戶和產(chǎn)品信息中提取出用戶興趣分布信息,并將此信息作為模型的注意力機(jī)制。在使用層次LSTM模型的過(guò)程中,指導(dǎo)詞語(yǔ)級(jí)別和句子級(jí)別的特征表示,以提高文檔級(jí)別的情感分類任務(wù)。
本文的創(chuàng)新點(diǎn)主要有以下兩個(gè)方面:
(1) 使用協(xié)同過(guò)濾算法,充分挖掘用戶的個(gè)性以及產(chǎn)品信息,將其作為模型的注意力機(jī)制。
(2) 使用奇異值分解(SVD)對(duì)稀疏矩陣進(jìn)行優(yōu)化分解,得到用戶個(gè)性矩陣和產(chǎn)品信息矩陣。
情感分析任務(wù)作為自然語(yǔ)言處理領(lǐng)域的重要課題之一,旨在從文本中挖掘出主題或者用戶觀點(diǎn)等情感信息。劃分出的情感類別可以是積極和消極,也可以像影評(píng)數(shù)據(jù)集中那樣使用0—10表示級(jí)別。
近幾年,由于神經(jīng)網(wǎng)絡(luò)模型有較好的文本表示能力,開(kāi)始被引用到自然語(yǔ)言處理領(lǐng)域解決實(shí)際問(wèn)題。Hinton最早提出將非結(jié)構(gòu)化的文本映射到低維實(shí)值空間中[4],演變成現(xiàn)在的詞向量。詞向量可以從文本中提取有效的語(yǔ)義信息并計(jì)算出詞語(yǔ)之間的相似性。Mikolov提出Word2Vec工具將獲取詞向量方法變得更加方便有效[5],隨后又提出了基于文檔的Paragraph工具,給文檔表示提供了很大的幫助。
在情感分類任務(wù)中,Socher等人使用一系列的遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)文本表示方法,包括遞歸自編碼模型(recursive autoencoders, RAE)[6]、矩陣向量遞歸神經(jīng)網(wǎng)絡(luò)(matrix-vector recursive neural network, MVRNN)[7]、遞歸神經(jīng)張量網(wǎng)絡(luò)(recursive neural tensor network, RNTN)[8],在斯坦福語(yǔ)料(Stanford sentiment treebank, SST)上獲得5.4%提高。Kim參考圖像領(lǐng)域的卷積神經(jīng)網(wǎng)絡(luò)模型(convolutional neural network, CNN)修改并加入滑動(dòng)窗口提取不同的文本特征,用來(lái)解決文本分類以及情感分類問(wèn)題,取得很好的效果[9]。Kalchbrenner等人提出動(dòng)態(tài)的CNN模型,使用動(dòng)態(tài)的池化層處理不同句長(zhǎng)的句子[10]。另外,循環(huán)神經(jīng)網(wǎng)絡(luò)(recursive neural network, RNN)在時(shí)序數(shù)據(jù)上的不俗表現(xiàn)使其在自然語(yǔ)言處理領(lǐng)域廣受歡迎。Tai等人建立了樹(shù)結(jié)構(gòu)的LSTM模型用來(lái)處理情感分類任務(wù)[11]。Tang等人構(gòu)建層次的LSTM模型來(lái)表示不同級(jí)別的特征信息,在文檔分類任務(wù)中效果較好[12]。注意力模型可以模擬人類注意力運(yùn)行機(jī)制在圖像領(lǐng)域取得不俗的表現(xiàn),在自然語(yǔ)言處理領(lǐng)域中可以通過(guò)注意力機(jī)制從詞語(yǔ)或句子中提取出更重要的信息作為特征[13]。
對(duì)比已有的基于用戶和產(chǎn)品的情感分析模型[14],本文提出了基于協(xié)同過(guò)濾注意力機(jī)制的情感分析模型(long short time memory cooperative filter attention, LSTM-CFA)。使用推薦系統(tǒng)中的協(xié)同過(guò)濾算法(cooperative filter, CF)以獲得用戶興趣分布矩陣,再將此矩陣作為L(zhǎng)STM模型的注意力機(jī)制(attention),模型結(jié)構(gòu)如圖1所示。實(shí)驗(yàn)主要流程為: 首先將訓(xùn)練好的詞向量作為第一層LSTM模型輸入,將得到的隱藏層結(jié)合注意力機(jī)制表示成句子向量,再把句子向量通過(guò)第二層LSTM模型得到句子隱藏層,然后再次結(jié)合注意力機(jī)制得到文檔表示特征,通過(guò)全連層后利用softmax層完成情感分析工作。
循環(huán)神經(jīng)網(wǎng)絡(luò)可以通過(guò)鏈?zhǔn)缴窠?jīng)網(wǎng)絡(luò)結(jié)構(gòu)傳播歷史信息。在處理時(shí)序數(shù)據(jù)時(shí),它每次能看到當(dāng)前的輸入xt以及上一時(shí)刻輸出的隱藏狀態(tài)ht-1。 然而在訓(xùn)練RNN時(shí),發(fā)現(xiàn)反向傳播算法會(huì)導(dǎo)致在長(zhǎng)距離傳輸過(guò)程中梯度彌散,當(dāng)前信息無(wú)法傳遞到時(shí)間t以外的節(jié)點(diǎn)處,降低對(duì)歷史信息的感知力[15]。為了解決這個(gè)問(wèn)題,Hochreiter等提出長(zhǎng)短時(shí)記憶模型(LSTM)[16],并在自然語(yǔ)言處理領(lǐng)域有著很好的應(yīng)用效果。
因此,本文使用層次LSTM分別表示句子級(jí)別特征和文檔級(jí)別特征。首先使用Word2Vec預(yù)訓(xùn)練得到詞向量表示形式,將句中詞語(yǔ)嵌入低維語(yǔ)義空間。每一步中,使用詞向量xt作為輸入,此時(shí)的隱藏狀態(tài)ht和當(dāng)前記憶門(mén)ct可以由之前的門(mén)狀態(tài)ct-1和隱藏狀態(tài)ht-1更新得到。具體過(guò)程如式(1)~式(6)所示。
同理,句子級(jí)別特征通過(guò)第二層LSTM模型后便可以得到文檔的特征表示。
圖1 基于協(xié)同過(guò)濾的情感分析模型框架
協(xié)同過(guò)濾算法已被成功運(yùn)用于許多推薦系統(tǒng)中[17]。主要分為,基于用戶相似性的協(xié)同過(guò)濾算法和基于物品相似性的協(xié)同過(guò)濾算法。本文使用基于物品相似度的方法,通過(guò)用戶對(duì)已用的物品評(píng)分來(lái)計(jì)算用戶對(duì)與該物品相似的物品評(píng)分,以預(yù)測(cè)用戶偏好分布并推薦物品。
2.2.1 用戶興趣分布矩陣計(jì)算
本文希望通過(guò)協(xié)同過(guò)濾算法獲得用戶興趣分布矩陣作為情感分析模型的注意力機(jī)制,文中矩陣計(jì)算步驟如下。
1) 構(gòu)建物品之間的共現(xiàn)矩陣
共現(xiàn)矩陣是表示某一用戶喜歡或評(píng)分的物品列表集合。如用戶A評(píng)分過(guò)的物品有a、b、c、d,那么對(duì)于物品a而言,b、c、d均與a共同存在過(guò),即在對(duì)應(yīng)的矩陣中標(biāo)1。同理,可以得到物品數(shù)量大小的方陣,其中數(shù)值表示兩物品是否在同一用戶下存在過(guò)。對(duì)于得到的方陣數(shù)值只有0或者1表示,為了計(jì)算方便,這里使用余弦相似度對(duì)共現(xiàn)矩陣做歸一化處理,如式(7)所示。
2) 建立用戶對(duì)物品的評(píng)分矩陣
將用戶對(duì)物品的評(píng)分構(gòu)建成矩陣。矩陣行表示用戶,列表示物品,數(shù)值是某一用戶對(duì)某物品的打分情況。若沒(méi)有打分則記為0,打分則記為相應(yīng)分?jǐn)?shù),矩陣形式如表1所示,其中ui列表示用戶(i=1…4),pj行表示產(chǎn)品(j=1…5)。
表1 評(píng)分矩陣形式
3) 計(jì)算得到用戶興趣分布矩陣
根據(jù)物品相似度以及打分情況通過(guò)式(8)便可以計(jì)算出用戶對(duì)沒(méi)有打分的物品的喜好程度。
其中,rui表示用戶對(duì)物品i的打分。
4) 用戶興趣分布矩陣分解優(yōu)化
根據(jù)以上三個(gè)步驟便可以計(jì)算出用戶興趣分布矩陣,該矩陣維度大小為用戶數(shù)量乘以產(chǎn)品數(shù)量。當(dāng)數(shù)據(jù)較多的情況下高維矩陣不僅會(huì)影響計(jì)算速度,也會(huì)存在稀疏可能。本文使用奇異值分解(SVD)分解法對(duì)高維矩陣進(jìn)行分解處理[18],得到用戶興趣分布矩陣和產(chǎn)品屬性分布矩陣,如式(9)所示。
其中,A表示待分解矩陣,在這里指用戶興趣分布矩陣,U與VT是分解后得到的矩陣。在本文中表示用戶個(gè)性矩陣和產(chǎn)品屬性矩陣。
2.2.2 注意力機(jī)制模型
注意力機(jī)制(attention)是松散的基于人腦注意力的一種機(jī)制,在文本中通過(guò)自動(dòng)加權(quán)的方法能夠有效的捕捉到文本中重要的信息。本文中使用用戶興趣分布矩陣作為注意力模型從隱藏狀態(tài)中提取對(duì)句子貢獻(xiàn)較大的詞語(yǔ),用這些詞表征句子的特征。具體計(jì)算如式(10)~式(12)所示。
其中,Wh,Wu,Wp是權(quán)重矩陣,b表示偏置值,u,p表示用戶物品分布矩陣,可以通過(guò)奇異值分解用戶興趣分布矩陣得到。uij是打分函數(shù),計(jì)算詞語(yǔ)的重要程度。通過(guò)softmax函數(shù)計(jì)算uw向量的權(quán)重值αij。 最后將αij與對(duì)應(yīng)的隱狀態(tài)加權(quán)求和得到句子特征。
同理,句子在不同用戶不同物品間表達(dá)的意義也會(huì)有所不同,對(duì)于上述得到的句子特征后采用同樣的權(quán)重計(jì)算,即可以得到文檔表示特征d,如式(13)所示。
其中,βi表示句子中句子特征中第i個(gè)隱狀態(tài)hi的權(quán)重值,計(jì)算方式參考式(11)。
本文使用LSTM-CFA模型對(duì)文檔進(jìn)行情感分析。使用預(yù)訓(xùn)練得到的詞向量作為模型的輸入數(shù)據(jù),使用協(xié)同過(guò)濾得到用戶興趣分布矩陣作為模型的注意力機(jī)制。在層次LSTM模型中與隱藏層狀態(tài)結(jié)合,提取重要信息組成文檔特征。
使用交叉熵?fù)p失函數(shù)作為優(yōu)化目標(biāo)函數(shù),使用反向傳播算法計(jì)算并迭代更新模型參數(shù),如式(14)所示。
實(shí)驗(yàn)在三個(gè)帶有用戶和產(chǎn)品信息的情感數(shù)據(jù)集上對(duì)提出方法的有效性進(jìn)行驗(yàn)證。其中,實(shí)驗(yàn)數(shù)據(jù)集的預(yù)處理部分主要將數(shù)據(jù)集按8∶1∶1比例分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。
已有研究表明領(lǐng)域內(nèi)語(yǔ)料可以讓詞向量擁有更多領(lǐng)域內(nèi)的語(yǔ)義[19],因此本文使用Word2Vec工具在實(shí)驗(yàn)數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練詞向量。實(shí)驗(yàn)環(huán)境具體配置數(shù)據(jù)如表2所示。
表2 實(shí)驗(yàn)環(huán)境配置
數(shù)據(jù)集來(lái)自: IMDB,Yelp2013,Yelp2014[20]。其中IMDB數(shù)據(jù)集是用戶對(duì)電影的評(píng)價(jià)內(nèi)容,類別是類似豆瓣網(wǎng)站的星級(jí)評(píng)分制度,由最差1分至最好10分;后兩者是用戶對(duì)商家產(chǎn)品的評(píng)價(jià)信息。類似星級(jí)評(píng)價(jià)共有五個(gè)等級(jí),從最差1分至最好5分制。數(shù)據(jù)集具體信息如表3所示。
表3 數(shù)據(jù)集統(tǒng)計(jì)信息
本文使用精準(zhǔn)率(accuracy)衡量分類的整體效果,用平方根誤差(RMSE)衡量預(yù)測(cè)值和真值之間的離散程度。計(jì)算如式(15)~式(16)所示。
其中,T表示預(yù)測(cè)正確類別的數(shù)量,N表示文檔總數(shù)。gy表示預(yù)測(cè)值,py表示真實(shí)值。
實(shí)驗(yàn)中的對(duì)比模型如下:
(1) Majority: 把訓(xùn)練集中用戶使用主要的情感類別作為測(cè)試集數(shù)據(jù)的情感類別。
(2) Trigram: 使用unigrams、bigrams以及trigrams作為特征,輸入到分類器SVM中。
(3) TextFeature: 人工設(shè)計(jì)文本特征后使用SVM分類。
(4) AvgWordvec+SVM: 使用Word2Vec學(xué)習(xí)詞向量平均化后作為分類器SVM輸入數(shù)據(jù)[21]。
(5) SSWE(sentiment specific word embeddings) +SVM: 使用Word2Vec學(xué)習(xí)特定的情感詞向量后經(jīng)過(guò)池化層的最大化平均化后輸入SVM中。
(6) Paragraph Vector: 使用PVDM解決文檔分類問(wèn)題[20]。
(7) RNTN+Recurrent: 使用RNTN表示句子特征然后輸入到RNN中分類[8]。
(8) LSTM: 使用實(shí)驗(yàn)中LSTM模型,沒(méi)有加入注意力機(jī)制。
(9) UPF(user product feature): 從訓(xùn)練數(shù)據(jù)集中提取用戶信息特征和產(chǎn)品特征,然后聯(lián)合模型(2)~(3)進(jìn)行分類[14]。
(10) UPNN(user product neural network): 使用用戶和產(chǎn)品信息輸入CNN模型中分類[22]。
(11) UPDMN(user product deep memory network): 使用深度記憶網(wǎng)絡(luò)融合用戶和產(chǎn)品信息[23]。
(12) LSTM+CBA(cognition based attention): 基于注意力的認(rèn)知模型結(jié)合LSTM模型分類[24]。
(13) LSTM-CFA(Cooperative Filter Attention): 本文提出基于協(xié)同過(guò)濾注意力機(jī)制的方法。
表4中實(shí)驗(yàn)結(jié)果由兩部分組成,其中第一部分表示模型在只考慮評(píng)論內(nèi)容的情況下進(jìn)行的驗(yàn)證,第二部分表示加入用戶信息和產(chǎn)品信息后的實(shí)驗(yàn)結(jié)果。從表4中可以看出:
表4 實(shí)驗(yàn)結(jié)果與對(duì)比
(1) 第一部分模型中既有傳統(tǒng)的機(jī)器學(xué)習(xí)方法也有神經(jīng)網(wǎng)絡(luò)模型。在Yelp2013和Yelp2014數(shù)據(jù)集上神經(jīng)網(wǎng)絡(luò)效果提升明顯,可以發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)機(jī)器學(xué)習(xí)相比可以提取出更多的文本語(yǔ)義信息。第二部分模型中加入用戶信息和產(chǎn)品信息后,神經(jīng)網(wǎng)絡(luò)模型表現(xiàn)更加出色,在三個(gè)數(shù)據(jù)集上均有很大的提升,可見(jiàn)神經(jīng)網(wǎng)絡(luò)模型在處理時(shí)序數(shù)據(jù)時(shí)可以表征出更加豐富的文本信息。
(2) 表4中第二部分中LSTM+CBA表示使用認(rèn)知模型作為注意力機(jī)制,在Yelp2014數(shù)據(jù)集上提升3.2%精準(zhǔn)率,可以發(fā)現(xiàn)加入模擬人類認(rèn)知模型對(duì)實(shí)驗(yàn)影響較大。本文提出在層次LSTM模型中加入?yún)f(xié)同過(guò)濾方法(LSTM-CFA),從用戶和產(chǎn)品信息中提取出更深層次的用戶個(gè)性和產(chǎn)品屬性等信息。在實(shí)驗(yàn)效果中可以發(fā)現(xiàn)本文方法在三個(gè)數(shù)據(jù)集上精準(zhǔn)率最高提升3.1%,驗(yàn)證了本文提出方法的有效性。
(3) 表4中LSTM模型表示沒(méi)有使用注意力機(jī)制的模型。與加入注意力機(jī)制模型LSTM-CFA模型相比較,在三個(gè)數(shù)據(jù)集上分類性能均有明顯提升。其中,在IMDB數(shù)據(jù)集上有8.6%提升??梢园l(fā)現(xiàn)加入用戶個(gè)性信息和產(chǎn)品屬性信息后,模型能夠更加準(zhǔn)確地提取出文本中的信息,以表征文檔特征。這既驗(yàn)證了本文加入注意力機(jī)制模型后的有效性,也表明在評(píng)論數(shù)據(jù)集中用戶和產(chǎn)品信息的重要性。
本文針對(duì)在協(xié)同過(guò)濾(CF)算法中得到的用戶興趣分布矩陣中的稀疏問(wèn)題,進(jìn)行了優(yōu)化處理。表5是使用不同方法優(yōu)化用戶興趣分布矩陣的結(jié)果的對(duì)比。其中CF-DC(direct cut)表示直接對(duì)用戶興趣分布矩陣進(jìn)行截取,得到用戶信息矩陣和產(chǎn)品信息矩陣;CF-SVD表示直接使用SVD公式中Σ矩陣保留奇異值較大部分后再分別與U和V矩陣相乘,得到不同維度的用戶信息和產(chǎn)品信息;考慮到稀疏矩陣問(wèn)題,CF-SVDS表示使用基于ARPACK庫(kù)進(jìn)行奇異值分解,該算法主要針對(duì)大規(guī)模稀疏矩陣或者結(jié)構(gòu)化矩陣進(jìn)行特征值求解;CF-N(normalization)表示在方法CF-SVDS基礎(chǔ)上對(duì)用戶打分?jǐn)?shù)據(jù)進(jìn)行歸一化處理。由表中數(shù)據(jù)可以看出,在Yelp2013和Yelp2014數(shù)據(jù)集上方法CF-SVDS提升較明顯,在IMDB數(shù)據(jù)集上分?jǐn)?shù)數(shù)據(jù)的歸一化處理效果較為明顯。由此驗(yàn)證了本文中對(duì)用戶興趣分布矩陣進(jìn)行優(yōu)化方法的有效性。
表5 不同優(yōu)化方法對(duì)比
本文提出了基于協(xié)同過(guò)濾Attention機(jī)制的情感分析模型。通過(guò)協(xié)同過(guò)濾中基于物品相似性方法構(gòu)建用戶興趣分布矩陣作為模型注意力機(jī)制,并將經(jīng)過(guò)SVD分解優(yōu)化后的矩陣加入層次LSTM模型中。在詞語(yǔ)級(jí)別和句子級(jí)別中分別提取語(yǔ)義信息,以便更好地完成文檔級(jí)別情感分析任務(wù)。根據(jù)在三個(gè)數(shù)據(jù)集上實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn)在神經(jīng)網(wǎng)絡(luò)模型中加入?yún)f(xié)同過(guò)濾算法后可以表征更加豐富的文本信息,并且驗(yàn)證了SVD分解優(yōu)化的重要性。之后的工作我們將著力于進(jìn)一步提升模型的泛化能力。例如,在小樣本、樣本類別不均衡的特殊情況下,擴(kuò)展其適用范圍。