王學穎, 孔德宙, 于 楊
(沈陽師范大學 軟件學院, 沈陽 110034)
在行業環境中,消費者對待產品有一個正確的觀點非常重要[1],由于在許多領域中這些觀點的數量眾多,長度參差不齊,對其進行分析是一項耗時且費力的任務,因此如何能夠準確地把握這些觀點潛在的價值已變成現在非常熱門的課題。隨著計算能力的不斷提高和網站上大量免費數據的廣泛使用,深度學習技術對自然語言處理(natural language process, NLP)領域產生了巨大的影響,尤其是語言的建模技術起著至關重要的作用。BERT[2]是最近比較流行的語言模型,已在許多NLP任務[3]以及其他領域中得到廣泛使用,如利用BERT進行專利實體抽取研究[4]。其體系結構的主要組件稱為transformer,由attention heads組成,這些heads的目的是要特別注意與給定的任務相對應的輸入句子的各個部分,同時為了從上下文中學習語法和語義,BERT對大量的Wikipedia文檔和書籍進行了預訓練。
姚佳奇等[5]使用圖卷積網絡(graph convolutional networks, GCN)考慮了序列中的情感依賴性。研究表明,當序列中存在多個方面級時,其中一個方面級的情緒會影響另一個方面級的情緒,利用這個信息可以提高模型的性能。一些研究將AE任務轉換為句子對分類任務。楊玉亭等[6]使用序列的方面級術語來構造輔助句子,然后針對此特定任務利用2個序列對BERT進行微調。還可以使用特定領域的數據來豐富模型的單詞和句子級別表示。巫浩盛等[7]通過在其他餐廳和筆記本電腦數據上對BERT模型(稱為BERT-PT)進行后訓練來證明這一點。在實驗中,將BERT-PT用于模型的初始化,由于BERT模型的特殊體系結構,所以可以在其頂部附加額外的模塊。
基于上述學者的問題及經驗,本文提出了并行聚合和分層聚合2個模塊,以提高BERT模型的性能。首先,將BERT用于基于方面級的情感分析(ABSA)任務,使用BERT架構中相同的層模塊;其次,采用隱藏層進行預測;最后選擇條件隨機場(CRF)進行序列標記,從而獲得更好的結果。實驗發現,通過長時間的BERT模型訓練不會導致模型過擬合,但經過一定次數的訓練后會導致模型過擬合。
ABSA中的2個主要任務是方面級提取和方面級情感分類(aspect sentiment classification, ASC)。
在AE中,目標是提取評論中帶有情感的產品的特定方面級。例如在句子“筆記本電腦的電池質量很好”中,電池是提取的內容。此任務可以看作序列標記任務,從3個字母{B、I、O}的集合為單詞分配標簽。序列中的單詞可以是方面級術語(O)中方面級術語(B)的起始詞,也可以不是方面級術語(O)。
在ASC中,目標是提取消費者在評論中表達的情感。給定一個序列,將提取正、負和中性之一作為該序列的類。對于每個輸入序列,BERT模型使用2個額外的令牌:
[CLS],w1,w2,…,wn,[SEP]
句子的情感由體系結構最后一層中的[CLS]令牌表示。然后,類別概率由softmax函數計算。
深度模型可以隨著語句數量的增長而獲取對語言的更深入了解。蔡國永等[8]的研究表明,BERT的起始層到中間層可以提取語法信息,而語義信息在更高的層中獲取,因此在研究中可以利用BERT模型的最后幾層進行語義分析。
本文提出的2個模型在原理上相似,但是實現上略有不同。同樣,對于這2個任務,代價的計算方式也不同。對于ASC任務,利用交叉熵損失;對于AE任務,利用CRF。AE任務可以視為序列標記,由于CRF使用了一個建立概率模型的框架來分割和標記序列數據,所以序列中的先前標記非常重要。對于此類任務,相比隱馬爾可夫模型和隨機語法,CRF能夠放松在這些模型中做出的強獨立性假設。CRF也避免了最大熵馬爾可夫模型(MEMMs)和其他基于有向圖模型的判別馬爾可夫模型的基本局限性。
CRF[9]是一種圖形模型,已用于計算機視覺(例如用于像素級標記[10])和用于序列標記的NLP。由于可以將AE視為序列標記任務,因此本文選擇在模型的最后一部分中使用CRF層。AE使用CRF模塊的理由是這樣做有助于網絡考慮標簽的聯合分配,因為序列詞的標簽取決于出現在它們前面的詞。例如,如圖1所示,形容詞商品的出現可以為模型提供一個線索,即下一個單詞可能不是另一個形容詞。用于計算標簽的聯合概率的方程式如下:

圖1 使用CRF表示帶有單詞標簽的句子Fig.1 An example of representing a sentence with its word labels using CRFs
序列詞之間的關系通過使用等式(1)中的特征函數{fk}表示。這些關系可以強也可以弱,或者根本不存在,由在訓練階段計算出的權重{θk}控制。
Lee等[11]提出了一種基于2步結構的RoI提取層,用于目標檢測和實例分割,稱為GRoIE(通用RoI提取器)。首先對每一層進行預處理,然后將它們聚合在一起,最后應用注意機制作為后處理,以刪除無用的全局信息。此外,將GRoIE添加到最先進的2步結構中,用于對象檢測和實例分割。實驗表明,深層模型的隱藏層可以更多地用于提取區域特定信息。
受文獻[11]的啟發,本文使用BERT層模塊的并行聚合,稱為P-SUM,結構如圖2所示。由于所有較深層都包含大量有關該任務的信息,通過增加一個BERT層并使用每一層進行預測,把每一層中提取的信息組合在一起,以此來更大限度利用BERT模型的最后4層產生更豐富的語義表示。

圖2 并行聚合Fig.2 Parallel aggregation (P-SUM)
莫凌飛和胡書銘[12]利用深度卷積網絡的多尺度金字塔層次結構來構造具有邊際額外成本的特征金字塔來識別系統中檢測不同尺度目標的基本組成部分,提出了功能金字塔網絡,該網絡的架構包括一個自底向上的路徑、一個自頂向下的路徑和橫向連接,用于在所有尺度上提取高級語義特征,結構如圖3所示。

圖3 架構方式Fig.3 Architecture mode
受此啟發,本文提出分類聚合(H-SUM)模型,體系結構如圖4所示。在這里,在每個隱藏層上應用BERT層后,采用自頂向下的架構,在每個層次上獨立地進行預測,再將它們與上一層聚合,類似于P-SUM,使用每個輸出分支進行預測,然后對它們進行求和進而從BERT模型的隱藏層提取更多語義,以保證模型的準確率。

圖4 分類聚合Fig.4 Hierarchical aggregation (H-SUM)
模型在16 GB內存的GPU(GeForce RTX 2060)PC機器上進行實驗,在Sublime編輯器中編譯運行,使用Matplotlib圖庫繪制圖片,以16個批次的模型和BERT-PT模型作為基準。對于訓練,使用了Adam優化器,將學習率設置為e-4。從分布式訓練數據中,使用150個示例作為驗證。為了評估模型,將官方腳本用于AE任務,并將來自同一代碼庫的腳本用于ASC任務。結果在AE中以F1表示,在ASC中以MF1表示。實驗采用了SemEval 2014和2016中的筆記本電腦和餐廳數據集,數據集的統計數據見表1和表2,其中S表示句子數量,A表示方面級數量。

表1 SemEval 2014和2016的AE筆記本電腦(LPT 14)和餐廳(RST 16)數據集Table 1 Laptop (LPT 14) and restaurant (RST 16) datasets from SemEval 2014 and 2016, respectively, for AE

表2 SemEval 2014中針對ASC的筆記本電腦(LPT 14)和餐廳(RST 14)數據集Table 2 Laptop (LPT 14) and restaurant (RST 14) datasets from SemEval 2014 for ASC
為了更好地對BERT層進行分析,本文針對BERT層的性能以及BERT層的訓練時間2個方面的內容進行了實驗。
首先針對BERT模型的每一層性能表現進行實驗和分析。實驗表明,在更深的層中,BERT模型體現出了更好的性能,結果如圖5所示。在本文實驗環境中,最后4層的精確度更高,所以在P-SUM和H-SUM模型中將其引入。

圖5 RST 14驗證數據上用于ASC的BERT層的性能Fig.5 Performance of BERT layers for ASC on RST 14 validation data
然后針對訓練時間,嘗試進行更長時間的訓練以提高網絡的性能。當訓練樣本的數量少于模型中包含的參數數量時,一味地增加訓練時長可能會導致模型過度擬合。在實驗過程中,盡管訓練數據點的數量相對較少,但在進行更多訓練的情況下,模型并不會過擬合。其原因可能是使用了已經過預訓練的模型,該模型已經看到了大量數據(Wikipedia和Books Corpus)。因此,預期通過進行更多的訓練,該模型仍能夠推廣。
通過查看圖6的損失值,可以得出相同的結果。如果過度擬合,預計損失會上升,性能會下降。但是如圖5所示,隨著損失的增加,性能會提高。這表明在15~20個周期,隨著訓練次數的增加,網絡權重會不斷地變化,在之后保持穩定,表明沒有更多的學習。

(a) AE: 筆記本電腦; (b) AE: 餐廳; (c) ASC: 筆記本電腦; (d) ASC: 餐廳圖6 BERT-PT對AE和ASC任務的訓練和驗證損失Fig.6 Training and validation losses of BERT-PT for AE and ASC
實驗結果表明,隨著訓練時間的增加, BERT模型也得到了改善(表3)。為了與DC-CNN的模型進行比較,本文針對2個模型的特點選擇了相同的模型。與BERT-PT和BAT模型基于最低的驗證損失選擇最佳的模型不同,通過實驗觀察到驗證集的準確性提高之后,本文選擇了經過4個時期訓練的模型(圖5)。表3(BERT-PT*是使用本文模型修改的BERT-PT模型,表中分數均為9次測試的平均值。Acc表示精度,MF1表示Maco-F1)表明了原始的BERT-PT得分以及不同模型選擇的得分。與訓練30個時長的BERT-PT相比,在除AE(餐廳)以外的所有情況下,所提出的模型在F1和Macro-F1方面級產生了更好的結果。還可以看出,提出的模型在數據集和任務上均勝過BERT-PT模型。

表3 結果比較Table 3 Comparison of results
本文提出了并行聚合和分層聚合2個模塊應用于ABSA的2個主要任務,模塊利用BERT語言模型的隱藏層來產生輸入序列的更深層語義表示,這些層以并行方式進行聚合,并且進行了分類。對選定的每個隱藏層進行預測并計算損失,然后將這些損失求和以產生模型的最終損失。使用條件隨機字段解決了方面級提取問題,這有助于考慮序列標簽的聯合分布以實現更準確的預測。實驗表明,所提出的方法優于訓練后的普通BERT模型。