賈 川,方 睿,浦 東,康 剛
(成都信息工程大學 計算機學院,四川 成都 610225)
隨著互聯網上由用戶生成的評論文本數據不斷增多,此類數據的研究價值和商業價值也越來越明顯,而情感分析或觀點挖掘是針對此類文本數據的主要利用方式[1]。早期對于文本評論的情感分析是對整個評論文本進行情感分類,假設評論文本中已經包含且只包含感興趣的評價對象,分類的關鍵在于從評論文本中手工構造或自動生成情感特征,而不考慮情感特征對應的評價對象信息[1-2]。常見的研究,如文檔級情感分析和句子級情感分析[3-4]。一般的評論中往往包含多個評價對象,或未包含感興趣的評價對象,且多個評價對象可能對應不同的情感傾向,因此將整個評論文本看作整體進行情感分類略顯粗糙,限制了情感分析的作用。細粒度的情感分析任務,也叫作基于屬性的情感分析任務,是針對評論文本中不同的評價屬性,識別出各個屬性對應的情感傾向。通常,一個評論文本中會出現針對多個對象表達的不同情感傾向,比如,對于評論“這家店的菜很好吃,但是老板態度有點差”,細粒度的情感分析需要識別出針對“菜”和“老板態度”兩個不同方面的情感傾向,得出<菜,積極>和<老板態度,消極>的評價結果。因此,相比句子級或文檔級情感分析任務,基于屬性的細粒度情感分析可以從評論文本中獲得更精準的用戶評價信息,從而更有利于商家了解用戶需求和改進產品及服務質量。
目前已有研究中,存在將屬性看作屬性詞和屬性類別的兩種不同處理方式[5]。基于屬性詞的細粒度情感分析將任務看作序列標注,屬性詞為出現在評論文本中的具體詞,標注出屬性詞之后,再抽取針對每個屬性詞的情感特征。基于屬性類別的細粒度情感分析將屬性類別看作預定義的類別集合,屬性類別詞不一定出現在評論文本之中,對于每一個預定義的屬性類別需要從文本中抽取對應的情感特征進行情感分類。
針對屬性相關的細粒度情感分析,關鍵在于抽取與屬性相關的情感特征。早期研究中使用的方法主要依賴于繁瑣復雜的特征工程[6-7],通過人工定義規則來提取特征,或者將淺層詞向量特征與情感詞典等人工定義特征結合形成針對屬性的情感特征[8],然后,利用機器學習方法進行情感分類,分類效果取決于人工特征以及領域專家的知識。近些年,隨著神經網絡理論和應用的不斷發展,以及注意力機制[9]和外部擴展記憶[10]等網絡計算機制的提出,針對屬性的細粒度情感分析問題也涌現出不少使用神經網絡的方法[11-13]。得益于循環神經網絡的序列處理特性,研究[13-14]利用長短期記憶網絡(Long short-term Memory Network, LSTM)或雙向長短期記憶網絡(bi-LSTM)抽取和識別文本中的情感特征。由于基于屬性的情感分析需要提取對應于該屬性的情感特征,Tang等[11]嘗試在提取情感特征時將屬性詞與上下文詞區別對待,提出TD-LSTM和TC-LSTM兩種方式。其研究表明,在模型的序列處理每一個階段都考慮屬性特征的TC-LSTM可以取得當時最高的準確率。隨后,Wang等[13]同樣將屬性表示與文本詞序列表示拼接作為LSTM的輸入,并在序列輸出中結合屬性特征表示來計算注意力權重,提出ATAE-LSTM模型。該模型還首次嘗試用預定義的屬性詞嵌入矩陣對屬性詞進行嵌入表示,該方法在SemEval 2014 Task4(1)https://www.aclweb.org/portal/content/semeval-2014-task-4-aspect-based-sentiment-analysis任務上取得了較好的效果。
常見的LSTM網絡或門控循環網絡(Gated Recurrent Unit Network, GRU)網絡的內部隱狀態通常為一個向量,使模型內部能夠保存的信息有限。因此,Weston等[10]提出使用可讀寫的記憶網絡來擴展模型學到的知識,用于問答任務中的知識推理。同時,受多個計算層能夠識別高層抽象特征[15]的思想啟發,Sukhbaatar等[16]對記憶網絡進行多層擴展,發現具有多層計算的記憶網絡在問答和語言建模等多個任務上均取得很好的效果。隨后,相關研究[17-18]將外部記憶的思想應用于針對屬性詞的細粒度情感分析,通過多層注意力從外部記憶中抽取針對屬性的情感特征。但是以上方法在多個注意力層計算中,對記憶模塊中的每一部分通過注意力層獨立計算權重,舍棄了循環網絡的序列處理步驟,而近期的研究表明,對文本輸入的序列處理有利于提高整體性能[19-20]。因此,Liu等[21]提出一種帶延遲更新單元的循環實體網絡,應用于屬性情感分析,其方法主要受Henaff等[20]提出的循環實體網絡的啟發,在LSTM中嵌入屬性依賴的實體信息,通過擴大的內部記憶鏈,在序列處理輸入文本的每一步都動態更新所有的內部記憶鏈。目前,Liu等[21]的方法在Sentihood[22]數據集上取得了最好的效果。本文提出的方法也受Liu[21]和Henaff[20]研究的啟發,利用擴大內部記憶鏈的LSTM網絡對評論文本進行序列處理,在給定屬性類別的情況下進行屬性情感特征抽取,但是不同于Liu[21]的方法,本文在循環實體網絡單元中嵌入預定義的屬性類別信息,使得在保持模型擴展性的同時更有利于提取屬性類別相關的情感特征。實驗表明,本文提出的方法在Sentihood數據集上取得了更高的準確率。
上述研究中,基于屬性詞的細粒度情感分析[8,11-12, 23],要求用于訓練和預測的評論文本數據中的屬性詞已經進行了標注識別,或者將屬性詞識別作為一個子任務[24],然后再對識別出的屬性詞抽取情感特征進行分類。基于屬性類別的細粒度情感分析[5,13,21]省略了對屬性詞進行識別的需要,只需針對預定義的屬性類別抽取與屬性類別相關的情感特征。比如,針對上文提到的評論“這家店的菜很好吃,但是老板態度有點差”,基于屬性類別的細粒度情感分析可以得到<味道,積極>和<服務, 消極>的評價結果。本文認為在諸如電商平臺、大眾服務等領域,識別針對屬性類別的情感傾向可以方便商家從整體上了解產品和服務質量,更具有實用價值。因此本文將基于屬性類別的細粒度情感分析作為研究任務。
基于屬性類別的細粒度情感分析,需要模型準確地識別并抽取與屬性類別相關的情感特征。本文以Henaff等[20]提出的循環實體網絡為基礎,以預訓練詞向量為輸入,在循環實體網絡中嵌入預定義的屬性類別,并通過雙向循環實體網絡和注意力機制抽取屬性情感特征,最后進行softmax分類。模型的總體結構如圖1所示。

圖1 模型總體結構
在對輸入評論文本轉換為詞嵌入序列后,使用雙向循環實體網絡抽取情感特征,循環實體網絡結構如圖2所示。

圖2 循環實體網絡



對于給定的屬性類別,通過一個注意力層,計算給定屬性類別a和所屬實體e的情感特征u。 然后,類似于Henaff[20]在輸出模塊將u轉換并進行softmax情感分類。如式(7~10)所示。

本文實驗所采用的數據集為Sentihood[22],該數據集是針對不同地區的不同屬性類別的情感評價,其中,每一個樣本都標注了評價屬性類別、所屬地區和情感極性。屬性類別包括價格、交通、安全、生活等12個方面,所屬地區包含2個,情感類別包含積極或消極,數據集共包含5 215條樣本,其中,3 862條樣本是針對一個地區的不同方面評價。為方便對比,本文和之前的研究[20]一樣,采用數據集中最常見的4個屬性類別(general, price, transit-location, safety)進行方法驗證,在評論文本中未提及的屬性類別的情感類別判斷為空,按照7∶1∶2的比例劃分訓練集、驗證集和測試集,并將每條樣本拆分成對單個屬性類別和所屬實體的情感類別標注。最終數據量分布如表1所示。

表1 數據樣本分布
模型輸入采用預訓練的Glove詞向量[25](300-D,42B個詞)來初始化文本嵌入矩陣。對于包含多個詞的屬性類別,用多個詞的詞向量平均來表示屬性類別。單個隱藏層記憶鏈的維度設為300,參數矩陣H、U、V、W維度大小為300×300,延遲更新信息權重v∈300,情感分類層權重R∈300×3,批量大小為64,學習率為0.05,未使用學習率衰減,正則化參數為0.002,最終,屬性相關情感特征進行dropout,保留比例0.8,模型迭代訓練500次。對于未表達情感極性的屬性類別預測其情感標簽為未提及,為了避免未提及情感類別的樣本數過多而導致的數據分布不平衡問題,在訓練過程中按照未提及的類別數量對其他類進行降采樣。
對比實驗階段,本文與其他在Senthood數據集上進行屬性級別細粒度情感分析的方法做了橫向對比,主要包含: (1)Saeidi等[22]在Sentihood數據集上提出的基線模型LR、LSTM-Final以及LSTM-Loc,LR為包含n元特征和詞性特征的邏輯回歸分類器,LSTM-Final為雙向LSTM的最終隱狀態拼接,LSTM-Loc為考慮地區實體在文本中所處位置的雙向LSTM的最終隱狀態拼接,隱狀態為一維;(2)Ma等[26]提出的引入常識信息的模型Sentic-LSTM;隱狀態為一維;(3)Tang等[12]提出的基于記憶網絡的模型TDLSTM,使用文本嵌入作為外部記憶矩陣;(4)Liu等[21]提出的嵌入實體信息的循環實體網絡EntNet,隱狀態為擴大的記憶鏈,但未明顯針對多個屬性類別。驗證指標采用情感分類的準確率和AUC值。對比實驗結果如表2所示,其中“—”表示未報告的實驗指標,“*”表示平均5輪實驗結果。

表2 驗證集上不同模型的指標對比
對比實驗表明,通過擴大記憶鏈的方式,本文的方法和Liu[21]的方法都取得了比較高的指標。而Tang等[12]將文本嵌入矩陣作為外部記憶的方法也是希望模型能夠記住更多信息,用于識別不同屬性對應的情感特征,但是,在給定評論文本后,不同屬性類別的情感特征應該是固定的,各屬性類別之間的情感特征不應有太多交集。通過擴大記憶鏈的方式,相當于給每一個預定義的屬性類別分配一條記憶通道,從而在模型訓練過程中可以針對不同的屬性類別更新相對應的內部記憶,相對常見的循環神經網絡而言,擴大了內部記憶的容量,而Tang等[12]的方法在更新記憶的過程中針對不同屬性類別的更新并不明顯。由此,本文提出的方法和Liu等[21]提出的方法證明,使用擴大記憶鏈的方式可以取得更好的效果。
相對Liu在EntNet中只考慮了屬性所屬的實體,本文將預定義的屬性類別嵌入到模型中,使網絡在循環處理文本序列時能夠更好地識別針對不同屬性類別的情感特征,提高了網絡的特征表示能力,從而取得了更高的準確率和AUC值。
為進一步驗證嵌入屬性類別信息對抽取屬性相關情感特征的影響是否穩定,本文在實驗數據集上根據屬性類別對應的樣本個數,由多到少選擇了多個屬性類別,分別將不同數量的屬性類別嵌入模型中進行了縱向對比實驗。實驗結果如表3所示。

表3 嵌入不同數量屬性類別的模型指標
從表3可看出,隨著屬性類別嵌入的增多,對更多的屬性類別進行細粒度情感分析的準確率指標和AUC指標并沒有明顯降低,這說明通過嵌入屬性類別來增強模型對屬性相關情感特征的抽取是確實有效的。而且,當針對不同任務存在不同數量的預定義屬性類別個數時,該方法可以有很好的擴展能力。

圖3 分別嵌入實體和屬性后模型的收斂速度
另一方面,與Liu的方法相比,在循環實體網絡中嵌入預定義的屬性類別信息使得模型在訓練中收斂速度上更快。如圖3所示,橫坐標表示訓練次數,縱坐標表示平均損失。其原因在于,嵌入屬性類別信息后,網絡可以直接考慮到與屬性類別相關的情感特征,因此在特征表示和損失計算時,模型對屬性情感特征更敏感,從而有利于加快訓練更新。
本文提出了一種嵌入屬性類別的循環實體網絡來進行針對屬性類別的細粒度情感分析, 使得序列處理文本數據時, 可以更好地針對不同屬性類別抽取特定的情感特征,該方法在Sentihood數據集上取得了當前最高的準確率。后期會在此基礎上探索如何將外部知識庫與循環實體網絡結合,以進一步提高模型的知識推理和特征表示能力。