周陳超, 陳群, 李戰(zhàn)懷, 趙波, 胥勇軍, 秦陽
(1.西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院, 陜西 西安 710072;2.西北工業(yè)大學(xué) 大數(shù)據(jù)存儲與管理工業(yè)和信息化部重點(diǎn)實(shí)驗(yàn)室, 陜西 西安 710072; 3.中國人民解放軍95806部隊(duì), 北京 100076)
最近幾年,隨著移動互聯(lián)網(wǎng)的日益普及,在線評論在用戶的消費(fèi)決策中起著日益重要的作用[1]。用戶去電影院之前,一般會先查看豆瓣網(wǎng)用戶關(guān)于當(dāng)下熱門電影的評論和分析,然后選擇想看的電影。去陌生的餐館吃飯前,一般會在大眾點(diǎn)評等評分網(wǎng)站查看其他人關(guān)于該餐館的評論和打分。這些評論不僅對用戶有用,同時也對商家大有裨益。好的評價會提升商家的吸引力,商家也可以在評論中發(fā)現(xiàn)問題,從而進(jìn)行改善提高[2]。
但是,網(wǎng)上的評論太多,譬如大眾點(diǎn)評關(guān)于“海底撈”某個門店的評論就有5 000多條,涉及到餐廳的食物、價格、環(huán)境以及服務(wù)等各個方面,有好評也有差評,用戶自己很難充分利用這些信息。因此需要有自動化的工具對這些評論進(jìn)行分類和總結(jié)[3],為用戶提供凝練的關(guān)鍵信息。其中,很重要的一個任務(wù)就是對這些評論進(jìn)行類別判定,分類后的評論能為精細(xì)化的情感分析提供細(xì)粒度的類別信息[4],有助于分析基于類別的情感 。
這些類別可以是預(yù)先設(shè)定好的,就像SemEval-2014[5]的restaurant 數(shù)據(jù)集,將restaurant的用戶評論分為{“service”,“food”,“price”,“ambience”,“anecdote/miscellaneous”}5類。在評論“The pizza is the best if you like thin crusted pizza.”中,類別為“food”。
SemEval評測產(chǎn)生了一些類別判定的方法。Kiritchenko等[6]為每一個類別構(gòu)造一個二元SVM分類器,SVM使用N-gram特征以及從yelp數(shù)據(jù)集中學(xué)到的詞聚類和基于點(diǎn)互信息構(gòu)建的詞典等。從yelp學(xué)習(xí)的詞典信息顯著提高類別判定的F1值,達(dá)到88.6%。為了提高算法的通用性,本文僅涉及訓(xùn)練集中的語料,不使用額外的語料或者知識庫?;诠奖容^的原則,Kiritchenko等[6]沒有使用外部語料和知識庫的F1值為82.2%。Brychcin等[7]基于詞袋(BOW)和Tf-Idf特征為每個類別構(gòu)建二元最大熵分類器。在僅使用訓(xùn)練語料情況下,他們算法的F1值是81%。Hercig等[8]在2016年的評測中使用類似方法取得aspect category detection(相機(jī)數(shù)據(jù)集)的第一名,F(xiàn)1值為36.34%。
Schouten等[10]提出無監(jiān)督和有監(jiān)督2種方法,無監(jiān)督方法F1值為67%,判定效果不佳。有監(jiān)督的方法基于共現(xiàn)分析,包括同在一個句子中的直接共現(xiàn)和通過第三方詞關(guān)聯(lián)起來的間接共現(xiàn),間接共現(xiàn)擴(kuò)展了算法的識別范圍。共現(xiàn)的內(nèi)涵則包括簡單的詞-詞共現(xiàn),以及基于依存句法的詞-詞之間依存共現(xiàn)。訓(xùn)練中通過標(biāo)簽學(xué)習(xí)詞與類別的關(guān)聯(lián)概率,并優(yōu)化對應(yīng)的閾值。詞之間的共現(xiàn)關(guān)系擴(kuò)展了詞和類別之間的關(guān)聯(lián)關(guān)系,通過計(jì)算句子中詞與類別的關(guān)聯(lián)概率是否達(dá)到閾值來判定是否屬于該類別。Schouten等[10]在有限制訓(xùn)練集上取得的F1值是83.8%。該方法使用外部工具Stanford CoreNLP來識別依存關(guān)系,當(dāng)句子的語法不規(guī)范時,Stanford CoreNLP可能無法正確識別依存關(guān)系,進(jìn)而導(dǎo)致類別判定的錯誤。
注意力機(jī)制(attention mechanism)能很好解決同一句子中不同目標(biāo)的情感極性判別問題。注意力機(jī)制最早用在圖像處理領(lǐng)域,目的是為了讓神經(jīng)網(wǎng)絡(luò)在處理數(shù)據(jù)時重點(diǎn)關(guān)注某些信息。Mnih等[11]在2014年提出將注意力機(jī)制用在圖像分類任務(wù)中驗(yàn)證了注意力機(jī)制在圖像處理領(lǐng)域的有效性,同時也使結(jié)合注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)成為研究熱點(diǎn)。Wang等[12]結(jié)合LSTM和注意力機(jī)制對評論進(jìn)行基于類別的情感分析,取得了不錯的成果。但是注意力機(jī)制在評論對象類別判定方面的研究還很少。
我們發(fā)現(xiàn),一個類別對應(yīng)多個實(shí)體。就像“food”,在數(shù)據(jù)集中有“pizza、chicken、noodles、meal、dishes”等無數(shù)對應(yīng)實(shí)體。此外,很多句子沒有明顯表示類別的詞語出現(xiàn)。譬如“It is very overpriced and not very tasty.”包含“price”和“food”2個類別?!皃rice”還好確認(rèn),“food”類別則是隱式表達(dá),需要理解“tasty”的語義才能識別出來。評論中這樣的隱式表達(dá)非常多。還有很重要的一點(diǎn),名詞和形容詞在表達(dá)句子的類別信息方面起著更關(guān)鍵的作用。評論“pizza here is delicious.”中,只要抓住名詞“pizza”就能判斷出是“food”類別,形容詞“delicious”能強(qiáng)化這種判斷。評論中的形容詞大多形容與類別相關(guān)的名詞,不同的類別有明顯的差異。譬如“prices are too high.”中“high”一般是形容“price”,而上個例子中的“delicious”一般是形容“food”。因此,形容詞在區(qū)分類別方面也起到更重要的作用。
評論“the dishes are remarkably tasty and such a cozy and intimate place!”涉及food和ambience 2個類別。進(jìn)行food類別判定時,只要抓住“dishs”和“tasty”這2個關(guān)鍵詞,就能準(zhǔn)確判斷出類別,而像“the”、“are”等詞起不到什么作用。假如把重點(diǎn)放在“cozy”和“place”等詞時,還會對類別判定起負(fù)作用,這是進(jìn)行“ambience”類別判定需要關(guān)注的重點(diǎn)。因?yàn)楹芏嗲闆r下一個句子可能涉及多個方面,所以進(jìn)行類別判定時需要抓住與類別相關(guān)的關(guān)鍵信息,才能準(zhǔn)確的判定類別。
基于上述發(fā)現(xiàn),首先,我們使用word2vec訓(xùn)練詞向量,將評論轉(zhuǎn)換成詞向量的形式。詞向量能夠表達(dá)詞之間的相關(guān)性,看起來并不相關(guān)的詞,可以通過詞向量關(guān)聯(lián)起來,從而為解決類別包含內(nèi)容的多樣性問題以及隱式表達(dá)問題提供了可能。BLSTM將句子的整體語義信息整合,注意力機(jī)制則將關(guān)注的重點(diǎn)聚焦到與類別相關(guān)的關(guān)鍵信息?;谠~性權(quán)重的注意力機(jī)制借助人的先驗(yàn)知識,為注意力的聚焦提供指導(dǎo)。本文為每個類別構(gòu)造一個二元分類器,包含類別信息的特征用于最終的分類,能有效地提高算法的準(zhǔn)確率。
類別判定有2個關(guān)鍵問題需要解決,一個是識別評論中與類別相關(guān)的關(guān)鍵詞;另一個則是學(xué)習(xí)詞和類別之間的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系方面的研究很多,但是如何識別評論中的關(guān)鍵詞目前研究不多。Kiritchenko等[6]和Brychcin等[7]的方法對于評論中的詞同等對待,不分主次,算法的針對性不夠強(qiáng)。Schouten等[10]使用依存關(guān)系來識別關(guān)鍵詞,但是依存關(guān)系依靠現(xiàn)有的句法分析工具,算法本身無法保證準(zhǔn)確率。本文使用注意力機(jī)制來提取評論中與類別相關(guān)的重要信息, WA-BLSTM的框架如圖1所示。
圖1 模型框架圖
本文使用Mikolov的CBOW方法[13]訓(xùn)練詞向量,E∈Rd×|V|,其中d是詞向量的維度,即把每個詞映射為d維向量,|V|表示詞向量的大小,即包含多少詞的詞向量。根據(jù)詞向量將評論中的句子sj轉(zhuǎn)化成詞向量列表{e1,…,et,…,eLj},其中ei∈Rd。
深層神經(jīng)網(wǎng)絡(luò)利用語義合成性原理通過不同深度模型將低層詞向量合成高層文本情感語義特征向量,從而得到文本的高層次情感語義表達(dá)[14]。深層神經(jīng)網(wǎng)絡(luò)同樣適用于類別判定,BLSTM能有效利用詞語的上下文信息,將詞向量轉(zhuǎn)化成高層次類別語義表達(dá)。
BLSTM同時考慮文本的上下文語境,將時序相反的2個LSTM網(wǎng)絡(luò)連接到同一個輸出, 前向LSTM可以獲取輸入序列的上文信息, 后向LSTM可以獲取輸入序列的下文信息。
前向LSTM在t步時的cell計(jì)算過程如下所示:
要準(zhǔn)確判斷評論對象的類別,關(guān)鍵是要提取與類別相關(guān)的信息。本文使用注意力機(jī)制,在計(jì)算過程中加入類別特征,據(jù)此提取與類別相關(guān)的信息用于分類,本文為每個類別構(gòu)造一個分類器。Wang等[12]在注意力計(jì)算的時候,對于LSTM的每步輸出是同等對待的。但事實(shí)上在判斷類別時,名詞和形容詞起著更為重要的作用。因此,在進(jìn)行注意力計(jì)算前,根據(jù)原始評論中的詞性為對應(yīng)的BLSTM輸出賦予不同的權(quán)重。本文在實(shí)驗(yàn)中,形容詞權(quán)重取1.5,名詞取1.2,其他詞取1。
H∈R2dh×N包含BLSTM的所有輸出向量[h1,h2,…,hN],N為句子S的長度,vc表示類別信息的詞向量。本文將詞性分為名詞、形容詞以及其他3類,分別賦予不同權(quán)重Q∈RN。類別詞向量的加入為注意力的聚焦提供錨點(diǎn),權(quán)重的分配則能為注意力的聚焦提供指導(dǎo),提升算法的精確度。
(8)
Yq=Q⊙Y
(9)
M=tanh(WmYq)
(10)
(11)
β=HαT
(12)
式中,eN∈RN是值全為1的N維向量,vc?eN=[vc;vc;…;vc],Y∈R(2dh+d)×N為BLSTM的每步輸出向量附加類別詞向量,為注意力的聚焦提供錨點(diǎn),Yq∈R(2dh+d)×N則是為Y基于詞性賦予權(quán)重,指導(dǎo)注意力更好地關(guān)注與類別相關(guān)的重要特征。M∈R(2dh+d)×N,Wm∈R(2dh+d)×(2dh+d),Wα∈R(2dh+d)為模型的參數(shù)。α∈RN是ht∈H的注意力分配,β∈R2dh是句子S關(guān)于類別vc的權(quán)重表達(dá)。
句子的最終表達(dá)如下所示
h*=tanh(Whβ)
(13)
式中,Wh∈R2dh×2dh為tanh的參數(shù),h*∈R2dh。注意力機(jī)制能夠捕捉句子中與類別相關(guān)的重要特征,因此,當(dāng)句子中加入不同的類別信息時,分別提取不同的權(quán)重特征用于類別判定,為每個類別構(gòu)造一個分類器。
h*是句子S關(guān)于類別vc的特征表達(dá),本文使用softmax將特征向量轉(zhuǎn)換為關(guān)于類別的條件概率分布。
y=softmax(WLh*+bL)
(14)
WL∈R2dh×2,bL∈R2為softmax的參數(shù)。
本文使用反向傳播算法來訓(xùn)練模型,通過最小化交叉熵和正則項(xiàng)來優(yōu)化模型,類別ci的損失函數(shù)如下
(15)
本文使用英文的SemEval-2014 restaurant 數(shù)據(jù)集和中文的SemEval-2016 相機(jī)數(shù)據(jù)集。實(shí)驗(yàn)中,詞向量采用Mikolov等[13]提出的word2vec方法,為公平對比,僅使用訓(xùn)練集訓(xùn)練詞向量。由于restaurant數(shù)據(jù)集小,詞向量為200維,BLSTM的輸出向量為150維;而相機(jī)數(shù)據(jù)集稍多,詞向量和BLSTM的輸出向量皆為300維。對于未登錄詞,采用U(-0.01,0.01)來隨機(jī)初始化詞向量。其他超參數(shù)如表1所示:
表1 實(shí)驗(yàn)超參數(shù)
restaurant 數(shù)據(jù)集包含訓(xùn)練集3 041句和測試集300句。如圖2所示,每個句子包含一個或多個類別。其中將近20%的句子包含2個及以上類別。這也是注意力機(jī)制的用武之地,能根據(jù)不同的類別提取對應(yīng)的關(guān)鍵信息,提升類別判定的準(zhǔn)確率。
圖2 每個句子包含的類別數(shù)目分布
圖3顯示數(shù)據(jù)集中各個類別在評論中所占的比例,其中最大的“food”以及“anecdote/misc”類別占60%以上。占比高的類別不僅數(shù)據(jù)量大,同時詞匯量也大,訓(xùn)練出來的詞向量表達(dá)的語義豐滿,類別判定的準(zhǔn)確率高。
圖3 不同類別在語料中所占的比例分布
相機(jī)數(shù)據(jù)集包含訓(xùn)練集5 778句和測試集2 256句。為BATTERY,CAMERA,DISPLAY以及CPU等15個類別,每個類別又細(xì)化為GENERAL,PRICES,DESIGN & FEATURES,QUALITY等9種屬性(有些類別可能只包含幾種屬性),需要判斷每句評論屬于哪個“類別#屬性”對。相機(jī)數(shù)據(jù)集中無“類別#屬性”的句子多,數(shù)據(jù)分布不均衡,具體分布如圖4所示。之所以選擇該數(shù)據(jù)集是因?yàn)轭悇e判定問題公開數(shù)據(jù)集較少,只有SemEval評測有所提供。相機(jī)數(shù)據(jù)集和restaurant數(shù)據(jù)集有所不同,需要判斷評論屬于類別的哪個屬性,最后階段的softmax后輸出的分類數(shù)為屬性數(shù)加1。
圖4 相機(jī)數(shù)據(jù)集類別分布情況
參考SemEval評價方法,本文使用F1值作為評判算法的標(biāo)準(zhǔn)。
(16)
其中正確率(P)和召回率(R)定義如下
(17)
S是算法對于測試集中所有句子給出的類別標(biāo)簽,G是測試集中所有句子的正確類別標(biāo)簽。
本文提出的方法與以下4種方法進(jìn)行比較。
PSM:文獻(xiàn)[10]提出的有監(jiān)督的方法,通過分析共現(xiàn)關(guān)系以判定類別。這是關(guān)于評論對象類別判定的最新研究。
SVM:文獻(xiàn)[6]提出的基于N-gram的SVM方法,為每個類別構(gòu)造一個SVM分類器。
Max-Entropy:文獻(xiàn)[7-8]提出的基于BOW和Tf-idf等特征的最大化信息熵方法。
CNN:文獻(xiàn)[9]提出的基于循環(huán)神經(jīng)網(wǎng)絡(luò)(CNN)的方法。
A-BLSTM:本文提出的方法,如圖1所示,在注意力計(jì)算時不加入詞性權(quán)重w,用以對比詞性權(quán)重在類別判定的作用。
WA-BLSTM:本文提出的方法,如圖1所示,在注意力計(jì)算時加入詞性權(quán)重w。
實(shí)驗(yàn)結(jié)果如表2所示。從表2中可以看出,本文提出的方法在2個領(lǐng)域的數(shù)據(jù)集上都取得不錯的分類效果。其中,不加詞性權(quán)重的A-BLSTM與之前的最好效果持平,而加入詞性權(quán)重后的WA-BLSTM分類效果有所提升。其中,restaurant數(shù)據(jù)集提升了3.21%,相機(jī)數(shù)據(jù)集提升了1.01%。實(shí)驗(yàn)結(jié)果表明,基于詞性權(quán)重的注意力BLSTM在類別判定中優(yōu)于其他方法,詞性權(quán)重能提升類別判定的效果。
表2 不同方法(限制語料)的F1值
相機(jī)和restaurant數(shù)據(jù)集的分類結(jié)果差異巨大,主要因?yàn)橄鄼C(jī)數(shù)據(jù)集的“類別#屬性”對多,但是包含“類別#屬性”的句子少。如圖4所示,其中78%的句子不包含任何類別和屬性,而Restaurant數(shù)據(jù)集每個句子至少包含一個類別。
表3是restaurant數(shù)據(jù)集WA-BLSTM與PSM的分類對比,PSM是目前已知的關(guān)于類別判定的最新研究。通過表3的對比可以看出不管哪個類別本文的方法都比PSM的效果好。
表3 restaurant數(shù)據(jù)集WA-BLSTM與PSM的分類F1值
從表3可以看出“food”、“service”和“price”這3個類別的判定效果不錯,但是“ambience”和“anecdote/misc”的效果不佳?!癮necdote/misc”是除去4個類別剩下的所有其他類別,包含的內(nèi)容比較雜,提取與類別相關(guān)的特征時,沒有代表性強(qiáng)并且明確與類別相關(guān)的信息可以加入,因此效果不佳。
類別“ambience”的效果最差,一個方面是因?yàn)樵~向量訓(xùn)練語料太少。如圖3所示,訓(xùn)練集中,類別“ambience”所占的比例比類別“price”高,但是單詞“ambience”才出現(xiàn)20多次,而單詞“price”卻出現(xiàn)150多次。對比下來單詞“ambience”訓(xùn)練語料太小,訓(xùn)練出來的詞向量不能充分的表達(dá)“ambience”類別的特征,因此就不能很好地提取與類別相關(guān)的特征用于類別判定,效果不佳。
上述2個類別的效果差,是由于注意力計(jì)算時加入的類別詞信息不夠全面、準(zhǔn)確所致,更深入的原因是訓(xùn)練的詞向量受語料限制,表達(dá)的信息不充足。因此,加入語義信息豐富的詞向量可以提高模型的判定效果。
本文從測試集中選取包含2個類別的評論作為例子,可視化注意力分配結(jié)果,如圖5所示。其中注意力權(quán)重α由公式(11)計(jì)算所得,黑色深度代表權(quán)重大小,顏色越黑注意力分配得越多。
圖5 注意力可視化
圖5中的評論是“The dishes are remarkably tasty and such a cozy and intimate place!”,涉及“food”和“ambience”2個類別。其中,圖5a)是“food”類別的注意力可視化,和food相關(guān)的“dishes”和“tasty”被識別出來,名詞“dishes”最重要,形容詞“tasty”次之。關(guān)于類別“ambience”則識別出了對應(yīng)關(guān)鍵詞:名詞“place”和形容詞“cozy”、“intimate”。
在評論對象的類別判定研究中,本文首先提出基于注意力機(jī)制的BLSTM模型來判定評論對象類別。此外,之前的研究主要是結(jié)合詞向量的注意力機(jī)制,本文在此基礎(chǔ)上提出了基于詞性權(quán)重的注意力機(jī)制,詞性權(quán)重能充分利用人的先驗(yàn)知識,對比實(shí)驗(yàn)驗(yàn)證了詞性權(quán)重的有效性,能提高評論類別判定的正確率。實(shí)驗(yàn)結(jié)果表明,本文提出的方法類別判定效果優(yōu)于其他方法。
本文的方法不需要外部語料,這是個優(yōu)點(diǎn),通用性強(qiáng);也有不足,僅使用訓(xùn)練集訓(xùn)練的詞向量語義表達(dá)能力有限。Kiritchenko等[6]的方法在使用外部語料后,效果有很大的提升。本文接下來將研究如何借助外部語料以及更多的先驗(yàn)知識,提升類別判定的效果。