主題層次的情感分類
1 任務及數據集介紹
該項目作業的具體任務是來自于 BDCI2018-汽車行業用戶觀點主題及情感識別的題目。數據是網絡中公開的用戶對汽車相關內容的評價文本。此任務是對每條文本內容(即用戶評論)進行分析,確定該條評論中討論的主題以及每個主題的情感信息,以此獲知用戶對所討論主題的偏好。
其中主題一共分為 10 類:動力、價格、內飾、配置、安全性、外觀、操控、油耗、空間、舒適性。情感分為 3 類:中立、正向、負向,分別用數字 0、1、-1 表示。
訓練集數據一共有 10654 條評論,已由人工進行標注,為 CSV 格式的文件,以逗號分隔,首行為表頭,字段說明如表 1 所示。其中 content_id 與 content 一一對應,但同一條 content 中可能包含多個主題,此時會出現多條記錄來標注不同的主題及情感,因此在整個訓練集中 content_id 存在重復值。
測試數據也為 CSV 格式的文件,首行為表頭,字段有 content_id 和 content,與訓練集對應字段相同。
但由于 BDCI 官網上此比賽已結束,線上提交接口已關閉,我們無法在測試數據對模型進行評估。因此,此次項目作業完全是在訓練數據上進行的。我們將訓練數據按照 8:1:1 的比例劃分成訓練集(8523 條數據)、驗證集(1066 條數據)、測試集(1065 條數據)。
? ? 表1: 訓練集字段說明
字段名稱 | 類型 | 描述 | 說明 |
content_id | Int | 數據 ID | |
content | String | 文本內容 | |
subject | String | 主題 | 分析出的主題 |
sentiment_value | Int | 情感分析 | 分析出的該主題的情感 |
該任務采用 F1 值評估指標,按照“主題 + 情感詞”精確匹配的方式,用 Tp 表示判斷正確的數量,Fp 表示判斷錯誤或多判的數量,Fn 表示漏判的數量。則準確率
,召回率
,
。
2 相關工作
上述任務是一個主題級別(Aspect-level)的文本情感分類任務,它是情感分類的一個分支,其目標是識別出句子中某個特定主題的情感極性。相比文檔級別的情感分類任務,主題級別的情感分類是更細粒度的分類任務,它可以克服文檔級別情感分類的局限性。尤其是當一篇文本中同時涉及多個主題時,正負的情感極性通常是混雜在一起的,如果忽略主題信息,我們很難確定目標文本的情感極性。比如“great food but the service was dreadful”,在這條用戶對餐廳的評論中同時涉及到了“食物”和“服務”兩個主題,而且用戶在這兩個主題上的評價的情感極性是相反的,如果我們在文本層次進行情感分類,很難說這條文本是正向的,還是負向的,甚至是中性的。
在主題級別的情感分類任務上,目前已有的工作大致可以分為兩類。一類是基于手工提取的特征和機器學習算法的級聯方法,例如 Nasukawa 等人[1]的工作中,首先對句子進行依存句法分析,然后使用預定義的規則確定每個主題的情感極性。Jiang 等人[2]提出,基于句子的語法結構構造一些主題依賴的特征,將這些特征和其他文本內容特征一起作為 SVM 分類器的輸入,從而提高主題依賴的情感分類的準確度。另一類工作是采用端到端的神經網絡模型,使用神經網絡模型可以自動進行表征學習,不需要花費大量時間進行手工工程或者編寫規則。在這類模型中,大多數是基于 LSTM 的網絡架構,因為 LSTM 可以很好地處理像文本這樣的序列數據,而且可以捕捉到長期依賴。例如 Tang 等人[3]提出了 TD-LSTM 的方法,該方法的基本思路是通過兩個 LSTM 網絡分別來建模主題的左、右上下文,然后使用這兩個 LSTM 網絡的輸出的串接進行情感預測。除此之外,近年來的工作中也大量使用注意力機制,它和 LSTM 結合,在很多任務上可以提高網絡性能。例如 Wang 等人[4]提出了 AE-LSTM 模型和 ATAE-LSTM 模型。AE-LSTM 模型是先將文本通過 LSTM 網絡層,得到每個詞對應的隱單元輸出,然后結合主題向量表示計算一組注意力值來加權句子的不同部分,從而得到最終的向量表達,進行情感分類。相比 AE-LSTM 模型,ATAE-LSTM 模型更強調主題向量表達的影響,它把主題向量表達和每個詞的向量表達串接在一起進行建模,得到文本的表示。Ma 等人[5]提出了 IAN 模型,該模型使用兩個 LSTM 網絡分別對句子和主題進行建模,然后對句子的隱狀態進行池化操作,使用池化的結果和主題的隱狀態計算一組注意力值,對主題的隱狀態進行加權得到主題的最終向量表示,同時對主題的隱狀態進行池化操作,使用池化結果和句子的隱狀態計算另一組注意力值,對句子的隱狀態進行加權得到句子的最終向量表示,最后將兩個向量表示串接起來進行情感分類。
3 模型
針對 BDCI-2018 的汽車行業用戶觀點主題及情感識別任務,我們在調研的基礎上對一些模型進行改進,從而使其能夠適應該任務的特點和需求。最終實現的 3 個模型的具體思路如下。
3.1 基于 AOA 的改進模型 1
第一個模型架構如圖 1 所示,是對 AOA(Attention Over Attention)模型[6]的改進,一共分為四個部分:詞嵌入模塊、雙向 LSTM 模塊、注意力模塊和最終的分類預測模塊。
詞嵌入模塊:對于一個給定的句子,經過分詞之后可以將其表示為
。對于所有主題,我們可以將其表示成
(此任務有 10 個主題詞,則 m=10)。我們首先使用預訓練好的詞向量將每個詞
映射到一個低維的實值向量
。則句子和主題分別通過一個詞嵌入層之后我們可以得到兩個詞向量集合
和
。
雙向 LSTM 模塊:我們將得到的詞向量 s 和 t 分別通過一個雙向 LSTM 層來學習句子和主題的隱含語義表達,結果為雙向 LSTM 隱單元輸出的串接,此時可以得到句子和主題的表達
和
。
注意力模塊:對于上一步得到的
和
,我們首先計算一個相互作用矩陣
,矩陣中的每個元素
表示句子中的某個詞
和某個主題
之間的關系。然后我們對矩陣
的每列進行 softmax 操作,得到 aspect-to-sentence 的注意力值
,其中
。直觀來講,
每一列的意義是,對于某個主題而言,句子中的哪些詞比較重要。最終根據注意力值
和句子的隱含語義表達
來計算各主題感知的句子向量表達,即
。
分類模塊:我們將上一步得到的句子表達向量
展平,然后輸入到兩層的全連接網絡,得到 40 維的分類結果。對于 10 個主題中的每一個主題,對應有 4 維輸出結果,分別表示句子中不含該主題的概率、該句子在該主題的情感極性為中性的概率、該句子在該主題的情感極性為正向的概率、該句子在該主題的情感極性為負向的概率。對每個主題的四維輸出結果進行 softmax,以此判斷該句子是否不含該主題或者該句子在該主題上的情感極性。
圖1:AOA模型整體架構
3.2 基于 IAN 的改進模型 2
第二個模型架構如圖 2 所示,是對 IAN(Interactive Attention Networks)模型的改進,一共分為四個部分:詞嵌入模塊、雙向 LSTM 模塊、交互注意力模塊和最終的分類預測模塊。
詞嵌入模塊:與上一個模型相同,句子和主題分別通過一個詞嵌入層之后我們可以得到兩個詞向量集合
和
。
雙向 LSTM 模塊:將得到的詞向量 s 和 t 分別通過一個雙向 LSTM 層來學習句子和主題的隱含語義表達,結果為雙向 LSTM 隱單元輸出的串接,此時得到隱狀態
和
。
交互注意力模塊:對于上一步得到的
和
,我們首先進行平均池化,得到
和
。然后由
和句子的隱狀態
計算一組注意力分值,其中每個分值
,由注意力值對句子的各部分進行加權,得到句子的最終向量表達
。同時由
和主題的隱狀態
計算另一組注意力分值,其中每個分值
,由該組注意力值對各主題進行加權,得到主題的最終向量表達
。兩組注意力分值的計算公式中,
。
分類模塊:我們將上一步得到的主題和句子的最終向量表達
和
串接起來,然后輸入到兩層的全連接網絡,得到 40 維的分類結果。對于 10 個主題中的每一個,有 4 維輸出結果,分別表示句子中不含該主題的概率、該句子在該主題的情感極性為中性的概率、該句子在該主題的情感極性為正向的概率、該句子在該主題的情感極性為負向的概率。這一步與上一個模型相同,對每個主題的四維輸出結果進行 softmax,以此判斷該句子是否不含該主題或者該句子在該主題上的情感極性。
圖 2:IAN 模型整體架構
3.3 基于 AEN 的改進模型 3
第三個模型架構如圖 3 所示,是利用 AEN(Attention Encoder Networks)模型[7]對 AOA(Attention Over Attention)模型的更深層次改進,一共分為五個部分:詞嵌入模塊、雙向 LSTM 模塊、注意力模塊、多輸入池化模塊和最終的分類預測模塊。
詞嵌入模塊、雙向 LSTM 模塊、注意力模塊:這三個模塊與第一個模型 AOA 相同,總共得到三個輸出向量,句子的隱層狀態
和主題的隱層狀態
以及句子和主題交互得到的主題交互狀態
,這三個向量都是下一個模塊的輸入。
多輸入池化模塊:將上一步得到的三個輸出分別進行一維最大池化,得到三個池化結果向量,對應為
、
以及
,然后將三個池化向量串接,得到最終分類模塊的輸入向量 x
。
分類模塊:最終的分類模塊輸入為上一步三個池化向量的串接展平結果,分類機制與前兩個模型相同。對每個主題的四維輸出結果進行 softmax,以此判斷該句子是否不含該主題或者該句子在該主題上的情感極性。
圖3:AEN模型整體架構
4 實驗過程與結果
4.1 實驗過程
第一步:對任務數據進行分詞,得到數據集的詞典,及每個詞的 embedding,結果文件 embeddings.p 會輸出到指定目錄下。(因為本實驗使用騰訊公開的預訓練的漢語詞嵌入,數據量比較大,為了減少模型訓練時的計算資源需求,我們先處理得到本任務數據集的詞典,并提取出這些單詞的 embedding 另存到文件 embeddings.p)
python get_embed.py \
--train_data_path=path/to/train_data \
--embed_data_path=path/to/pretrain/word_embedding \
--out_embed_dit=dir/to/save/output_file
第二步:模型訓練及評估。如前所述,我們將訓練集以 8:1:1 的比例劃分成訓練集、驗證集和開發集進行實驗,此處我們的超參數具體設置如下所示。
python aspect_senti.py \--train_data_path=path/to/train_data \--embed_data_path=path/to/embeddings_.p \--out_dir=/dir/to/save/model \--max_sentence_length=256 \--lstm_hidden_size=100 \--dense_hidden_size=512 \--leakyRelu_alpha=0.01 \--drop_rate=0.5 \--reg_rate=0.001 \--optimizer=adam \--lr_factor=0.65 \--batch_size=32 \--epochs=30
為了方便運行,模型必須的參數都已經在代碼中設置了默認值,均是在驗證集上進行調參之后的最佳參數設置,而且項目目錄已經按照需要進行調整,只需輸入 python 加模型名稱即可運行不同的模型,比如 python aen.py。
4.2 實驗結果
三個模型訓練時使用的損失函數均是各主題的交叉熵損失之和。訓練過程中我們保存在驗證集上
值最大的模型,然后在測試集上進行評估,同時每個模型還測試了不同的固定文本長度。三個模型在測試集上的評估結果如下表:
據 BDCI 官網上該任務的排行榜,官方測試集上最好的模型表現為 F1=0.708。由于我們無法再官方測試集上進行模型評估,因此我們的結果和排行榜結果無法進行的嚴格比較,但從結果來看,我們的模型還是表現不錯的。
5 總結
通過此次項目實踐,我們了解了文本情感分析的相關模型,尤其是主題級別的情感極性分析,改進了端到端的神經網絡模型,如 AOA、IAN 和 AEN,使得模型能夠適應主題層次情感分類任務的特點和需求。我們遇到的問題要比普通的文本分類任務更加復雜,在該問題中,一篇文本中通常會同時涉及多個主題,正負的情感極性通常是混雜在一起的,如果忽略主題信息,我們很難確定目標文本的情感極性。因此,在在主題級別的情感分類任務上,我們在調研的基礎上對 AOA、IAN 和 AEN 模型進行了改進,從而使其能夠適應該任務的特點和需求。
在 BDCI 官方數據集上,我們將訓練集以 8:1:1 的比例劃分成訓練集、驗證集和開發集進行實驗,設置模型的固定文本長度分別為 60 和 256,三個模型的表現不錯,其中 AOA 模型和 AEN 模型的 F1 值均超過了官網測試集上最好的模型表現。由于我們無法對官方發布的測試集進行線上評估,因此無法和賽題排行榜進行精確對比,但就排行榜情況來看,最好成績也不高于 0.71,我們的方法所取得的結果是不錯的。
情感分析是自然語言處理中常見的場景,比如汽車行業用戶觀點主題及情感識別,對于指導產品更新迭代具有關鍵性作用。通過對用戶評價進行情感分析,可以挖掘產品在各個維度的優劣,從而明確如何改進產品。比如對用戶評價進行分析,可以得到汽車動力、價格、內飾、配置、安全性、外觀、操控、油耗、空間、舒適性等多個維度的用戶情感指數,從而從各個維度上改進現在汽車行業的制造和銷售狀況。
深度學習在 NLP 領域內應用相當廣泛,在情感分類領域,我們同樣可以采用深度學習方法。基于深度學習的情感分類,具有精度高,通用性強等優點。通過完成這次項目作業,我們對情感分類問題有了更深入的認識,對神經網絡模型有了進一步的掌握,獲益良多。
參考文獻:
1.Nasukawa, T., Yi, J.: Sentiment analysis: Capturing favorability using natural language processing. In: Proceedings of the 2nd international conference on Knowledge capture. pp. 70–77. ACM (2003)
2.Jiang, L., Yu, M., Zhou, M., Liu, X., Zhao, T.: Target-dependent Twitter sentiment classification. In: Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies-Volume 1. pp. 151–160. Association for Computational Linguistics (2011)
3.Tang, D., Qin, B., Feng, X., Liu, T.: Effective lstms for target-dependent sentiment classification. In: Proceedings of COLING 2016, the 26th International Conference on Computational Linguistics: Technical Papers. pp. 3298–3307 (2016)
4.Wang, Y., Huang, M., Zhu, X., Zhao, L.: Attention-based lstm for aspect-level sentiment classification. In: EMNLP. pp. 606–615 (2016)
5.Ma, D., Li, S., Zhang, X., Wang, H.: Interactive attention networks for aspect-level sentiment classification. In: Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI-17. pp. 4068–4074 (2017)
6.Huang B, Ou Y, Carley K M. Aspect level sentiment classification with attention-over-attention neural networks[C]//International Conference on Social Computing, Behavioral-Cultural Modeling and Prediction and Behavior Representation in Modeling and Simulation. Springer, Cham, 2018: 197-206.
7.Song Y, Wang J, Jiang T, et al. Attentional Encoder Network for Targeted Sentiment Classification[J]. arXiv preprint arXiv:1902.09314, 2019.