羅雨蒙, 林煜明
(桂林電子科技大學 廣西可信軟件重點實驗室,廣西 桂林 541004)
人根據(jù)句子中的觀點核心信息能得出其想要表達的主要思想、情感。隨著在線評論數(shù)據(jù)爆炸式地增長,靠人工方法去閱讀并提取其中的觀點核心信息,以判斷商品是否值得購買是十分困難的。近幾年,越來越多的研究者對于如何自動地從評論語句中獲取觀點核心信息展開了廣泛地研究。
從句子中提取出觀點核心信息是基于方面的情感分析(aspect-based sentiment analysis,簡稱ABSA)[1]的一項基礎任務。該任務旨在從評論句中成對抽取出方面項和觀點項(pair-wise aspect and opinion terms extraction,簡稱PAOTE),方面項描述評論人對什么目標/方面表達了觀點,觀點項指評論人用什么的詞表達觀點。例如,在評論句子“這款手機外觀好看,續(xù)航久,我很喜歡?!敝?“外觀”和“續(xù)航”為方面項(或稱觀點目標),“好看”和“久”分別為方面項相對應的觀點項,〈外觀,好看〉和〈續(xù)航,久〉為方面-觀點項對。
目前相關(guān)技術(shù)是把從評論句子中提取出的方面-觀點項對當作抽取任務來做,其中包含大量詞性、語法、規(guī)則等復雜的標簽,或者是枚舉出所有不同跨度的詞,會產(chǎn)生大量的負樣本。本文將方面-觀點項對的抽取任務轉(zhuǎn)換為方面-觀點項對的生成任務,提出一種基于Seq2Seq(sequence-to-sequence)模型[2]的端到端生成框架來成對生成方面-觀點項對,無需復雜的標注或者大量的負樣本。采用大型預訓練模型BART[3]的編碼器和解碼器作為Seq2Seq模型的編碼器和解碼器,在解碼時結(jié)合指針機制生成方面-觀點項對序列。
相對于粗粒度(如文檔級、句子等)的情感分析,細粒度的情感分析能夠提供更準確和深入的用戶觀點信息。方面項和觀點項的成對抽取是細粒度的情感分析任務的一項子任務。
早期的方面項和觀點項的聯(lián)合抽取主要采用基于規(guī)則的方法[4-6],這類方法的抽取效果主要依賴于人工預定義的規(guī)則或句法模板。隨著深度學習技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡常被用于聯(lián)合抽取方面詞和觀點詞,如基于遞歸神經(jīng)網(wǎng)絡的方法[7]、多任務學習[8]、注意力網(wǎng)絡[9]和圖學習[10]等。一些研究者將規(guī)則和神經(jīng)網(wǎng)絡模型結(jié)合,實現(xiàn)方面詞和觀點詞的聯(lián)合抽取。Dai等[11]在標注樣本的依賴解析結(jié)果上自動挖掘抽取規(guī)則,將這些規(guī)則作為弱監(jiān)督標注樣本,并結(jié)合少量人工標注樣本訓練BiLSTM-CRF模型抽取方面詞和觀點詞。Wu等[12]將一階邏輯規(guī)則整合到深度神經(jīng)網(wǎng)絡中,使模型能根據(jù)這些規(guī)則糾正錯誤的預測結(jié)果。
上述方法雖然能實現(xiàn)方面項和觀點項的抽取,但卻忽略了方面項與觀點項之間的對應關(guān)系。為了解決該問題,Chen等[13]提出一個雙通道遞歸網(wǎng)絡分別抽取方面詞和觀點詞,并通過一個同步單元維持通道的同步性實現(xiàn)觀點詞對抽取。Pereg等[14]通過語法敏感的自注意力機制將外部的語法信息整合到BERT[15]中,并利用外部知識和BERT 內(nèi)在知識的融合實現(xiàn)跨領域方面詞和觀點詞對抽取。Li等[16]設計一種多跳雙記憶交互機制來捕獲方面詞和觀點詞的潛在關(guān)系。上述工作將抽取看作序列標注問題,這種方法通常由于標簽組合爆炸導致搜索空間過大,并且難以處理一個句子中方面詞和觀點詞間一對多和多對多的情況。為此,Zhang等[17]提出了一個基于跨度的多任務框架來同時提取方面項及其對應的觀點項。他們受到之前研究[18-19]的激勵,提出的框架首先使用基本編碼器學習單詞級表示,然后列舉輸入句子中所有可能的跨度。通過共享生成的跨度表示,可以在跨度邊界和類標簽的監(jiān)督下提取方面項和觀點項。同時,成對關(guān)系可以通過計算跨度-跨度對應來識別。因其未能捕獲重疊的方面-觀點對結(jié)構(gòu)之間的底層共享交互,Wu等[20]提出了一種基于span圖的聯(lián)合PAOTE模型,并在此基礎上提出了一種邊緣增強的句法圖卷積網(wǎng)絡(ESGCN),該網(wǎng)絡可以同時對語法依賴邊和相應的標簽進行編碼,以增強方面和觀點術(shù)語的提取和配對。Wu等[21]還通過結(jié)合豐富的句法知識來增強方面-觀點成對抽取。
本研究將方面-觀點項對的抽取任務轉(zhuǎn)換為方面-觀點項對的生成任務,提出一種基于Seq2Seq模型的端到端生成框架來直接成對生成方面-觀點項對,無需大量的標注樣本進行訓練,也不會產(chǎn)生大量的負樣本,提升了模型的訓練效率。
首先對生成式的方面-觀點項的成對抽取任務進行定義,然后介紹所提方法,采用BART模型和指針機制相結(jié)合的方式來生成方面-觀點詞對的序列表示。
給定一個長度為N的輸入句子X={x1,x2,…,xN},本文的任務是提取所有的方面-觀點項對Y={as1,ae1,os1,oe1,p,…,asi,aei,osi,oei,p},其中:as,ae分別表示方面項開始的索引和方面項結(jié)束的索引;os,oe分別表示觀點項開始的索引和觀點項結(jié)束的索引;p表示方面-觀點詞對之間的間隔標記。一個評論句子中可能包含多對方面-觀點項對。
由于本文以生成式的方式表述PAOTE任務,可以將目標函數(shù)看成
其中:X為輸入句子;Y為目標句;m為目標句的長度;當t為0時,y0表示“句子開始”的控制標記。
將方面-觀點項對的抽取任務轉(zhuǎn)換為文本生成任務,在基于Seq2Seq模型上結(jié)合指針機制來生成成對的方面-觀點項對,并采用大型預訓練模型BART的編碼器和解碼器作為Seq2Seq模型的編碼器和解碼器,模型結(jié)構(gòu)如圖1所示。該模型主要由三大部分組成:seq2seq的編碼器、解碼器以及指針機制。其中編碼器模塊接收文本輸入,將文本的所有信息處理成向量傳遞給解碼器模塊;解碼器模塊結(jié)合全文的信息和上一時間步的輸出,再通過指針機制得到下一時間步的輸入文本的位置索引的概率分布,選取得分最高的索引作為下一時間步的輸出。
圖1 模型結(jié)構(gòu)
2.2.1 編碼器
編碼器在預訓練階段能很好地結(jié)合上下文的信息。BART模型是一個結(jié)合雙向編碼和自回歸的大型預訓練模型,其主要采用了2種策略。首先使用任意噪聲來破壞原文本,然后讓模型學習重構(gòu)原文本,使用掩碼替換文本段,從而破壞文本。再用雙向編碼器編碼被破壞的文本,然后再使用自回歸解碼器計算原始文本的似然值。因此該模型更加適合于生成任務。將句子開頭標記〈s〉和句子結(jié)束標記〈/s〉分別添加在X的開頭和結(jié)尾。
在編碼器部分,首先將句子X輸入進編碼器編碼成向量
其中:E∈RN×D;N為句子長度;D為隱藏層維度。
因為指針機制是完全依賴輸入序列,將其中得分最高的位置索引作為輸出,所以本文直接將方面-觀點詞對之間的間隔標記PAOTE添加在句子后面,以便指針機制做選擇。隨后得到位置信息向量E1,將向量E與E1進行拼接成E2;將E2進行多頭自注意力計算,最后得到每個詞與句子所有信息的向量E3。
其中,⊕表示向量的拼接。編碼器將所得到的詞向量E3傳給解碼器。
2.2.2 解碼器
解碼器中含有掩碼矩陣,遮擋了下文,更適用于生成任務,其每層都與編碼器最后隱藏層做一次交叉注意力操作,使其能在每個時間步都能獲得不同時刻的側(cè)重信息。為了得到每個時間步輸入文本的位置索引概率分布Pt=P(yt|X,Y<t),在解碼器部分,首先將向量E3和當前所生成的文本信息處理成向量,再通過解碼器解碼得到最后的隱藏狀態(tài)
其中,[;]表示向量在第一維進行連接。
指針機制主要實現(xiàn)輸出序列完全源自于輸入序列。注意力計算出下一時間步輸入序列每個元素的概率,輸入序列產(chǎn)生的最大權(quán)重的位置索引作為編碼器的輸出。隱藏狀態(tài)ht和包含所有信息的向量E3通過指針機制,得到輸入序列中每個元素的概率分布
隨后選取概率最高的位置索引作為下一時間步輸出。
在訓練階段,采用教師強制法,該方法多用于機器翻譯、文本摘要等深度語言模型的訓練階段。該方法不使用上一時間步的輸出來作為下一時間步的輸出,而是直接使用目標序列中對應的上一項作為下一時間步的輸入。如輸入句為:“〈s〉Great performance and quality.〈/s〉PAOTE”,目標句為:“〈s〉performance great PAOTE quality great PAOTE”,
將“〈s〉”輸入模型,讓模型生成下一個單詞,假設它生成了“the”,但是本文期望它生成“performance”,教師強制法就是在計算了誤差之后,丟棄“the”這個輸出,直接將“performance”作為下一時間步的輸入,以此類推。此方法可以有效解決緩慢收斂和不穩(wěn)定的問題。
使用負對數(shù)似然損失法,損失函數(shù)
其中,t、P分別表示真實值和預測值。在最后的推理過程中,本文使用自回歸的方式生成目標序列。
在4個公開的ABSA 數(shù)據(jù)集上評估該模型,其包含餐館和筆記本2種不同類型的數(shù)據(jù)。該數(shù)據(jù)集是由Fan等[22]標注,14lap和14res來源于Semeval 2014 Task 4,15res來源于Semeval 2015 Task 12,16res來源于Semeval 2016 Task 5。如表1所示,其中列舉了不同數(shù)據(jù)集中的評論句數(shù)量和方面-觀點詞對的數(shù)量。
表1 數(shù)據(jù)集
采用BART-Large模型,在所有實驗中,BARTLarge的編碼器和解碼器各有12層,與BERT-Large和RoBERTa-Large模型的transformer層數(shù)相同。模型未使用任何其他嵌入,且在優(yōu)化過程中對BART模型進行了微調(diào)。在所有的數(shù)據(jù)集上采用召回率R、精確率P和F1值3個指標來對模型進行評估。使用傾斜三角學習率預熱。實驗均在NVIDIA Tesla V100顯卡(顯存容量16 GiB,顯存帶寬900 Gbit/s,CUDA核心5120)上進行,使用的超參數(shù)詳情如表2所示。
表2 超參數(shù)
1)GTS-BERT(Wu等[23]):一種基于網(wǎng)格標注的方法提取方面-觀點詞對模型。
2)Span Mlt[17]:一種基于跨度的多任務學習模型,對方面-觀點詞對進行成對的抽取。
3)Dual-MRC[24]:一種采用機器閱讀理解(machine reading comprehension,簡稱MRC)方式,由2個MRC組成的聯(lián)合訓練框架,用于解決方面和觀點術(shù)語的提取和配對問題。
4)ESGCN[21]:一種結(jié)合豐富的句法知識來增強方面-觀點成對抽取的模型。
本模型與其他基線模型在4個數(shù)據(jù)集上的實驗結(jié)果比較如表3所示。
表3 實驗結(jié)果
從實驗結(jié)果來看,本模型在14lap、15res、16res這3個數(shù)據(jù)集上的表現(xiàn)均優(yōu)于其他基線模型,尤其是在15res數(shù)據(jù)集上的性能比最佳的基線模型提升了3.74%,在14res數(shù)據(jù)集上的表現(xiàn)也比大部分基線模型優(yōu)異。
在不進行任何標注、不產(chǎn)生大量負樣本的情況下,采用簡單的Seq2Seq模型,端到端地解決了方面-觀點詞對提取的問題,性能也得到了顯著的提升。與ESGCN模型相比,結(jié)果在3個數(shù)據(jù)集上均表現(xiàn)優(yōu)異,證明BART模型已經(jīng)習得一定的句法知識,還能提供更多的有效信息。
針對在14res數(shù)據(jù)集上效果不佳的問題,可簡單地使用評論句中包含方面-觀點詞對的數(shù)量來斷定句子的復雜程度。根據(jù)分析,14res數(shù)據(jù)集中含有3對及以上對方面-觀點詞對的評論句數(shù)量占比較大,訓練集中占23.88%,而其他數(shù)據(jù)集中只有14%左右。14res數(shù)據(jù)集中存在多種復雜情況,如一對多、多對一、觀點項出現(xiàn)在方面項之前以及一些人腦也難以判斷的情況。本模型在這些復雜的評論句中無法很好地處理方面詞和觀點詞、方面詞和方面詞與觀點詞和觀點詞之間的相互依賴關(guān)系,導致在復雜的評論句中無法正確地提取所有的方面-觀點詞對。
研究不同的學習率和束寬是否對模型性能有影響。首先研究不同學習率對模型的影響,在16res數(shù)據(jù)集上對于每個大小不同束寬,采用不同的學習率進行實驗,結(jié)果如圖2所示,顯示不同的學習率對模型的性能影響較大。在束寬大小不同的情況下,學習率為2×10-5時,性能是最佳的。
圖2 學習率
由于本文的框架是基于生成的,隨后研究在預測階段,束寬是否會影響模型性能。束搜索是一種常用的搜索算法,束寬為k表示選取當前概率最大的k個詞作為候選輸出序列。結(jié)果如圖3所示,顯示束搜索對模型性能的影響較小。
圖3 束搜索
將方面-觀點項對的抽取任務轉(zhuǎn)換為文本生成任務,采用一個帶有指針機制的Seq2Seq模型來成對生成方面-觀點項對,無需復雜的標注或生成大量的負樣本,使解決方面-觀點項對抽取問題的方式更接近人類的邏輯和習慣。根據(jù)Seq2Seq模型的特點,采用大型預訓練模型BART 的編碼器和解碼器作為Seq2Seq模型的編碼器和解碼器,在解碼時采用指針機制生成方面-觀點詞對序列。實驗結(jié)果表明,本模型在14lap、15res、16res這3個數(shù)據(jù)集上均優(yōu)于其他的模型。針對在超長且情況復雜的評論句中含有多對方面-觀點項對的提取效果不佳的問題,將會是下一步研究的重點。