江明奇,沈忱林,李壽山
(蘇州大學 計算機科學與技術(shù)學院,江蘇 蘇州 215006)
隨著互聯(lián)網(wǎng)行業(yè)的興起,亞馬遜、京東和淘寶等眾多電子商務平臺提供了客戶問答平臺。用戶在這些平臺上可以對感興趣商品的屬性進行提問,購買過相應商品的用戶可以給出回答。由于該方式的評價信息難以大規(guī)模造假,從而使得問答評論的方式比傳統(tǒng)評論方式更為可靠。近些年來,針對屬性級情感分析任務的研究越來越多,該任務旨在做出更細粒度方面的意見挖掘[1]。屬性分類任務則是屬性級情感分析任務的基礎(chǔ)與前提,旨在獲得文中所提到的相關(guān)屬性[2],本文面向問答文本開展屬性分類任務研究。據(jù)我們所知,此前還未有相關(guān)論文進行面向問答文本的屬性分類方法研究。表1給出了一些問答樣例及其相關(guān)的屬性類別。從表1可以看出,問答文本中的屬性分類需要答案包涵問題提到的相關(guān)屬性才可計入。如果答案沒有回答到問題的相關(guān)屬性,則該問答文本不帶有屬性信息。
表1 淘寶“問大家”中樣例及其所屬的屬性類別
針對問答文本的屬性分類,一種直接的方法是把問答文本和其他文本同質(zhì)對待,利用已有的機器學習方法來進行屬性分類。目前, 屬 性分類研究中性能表現(xiàn)較好的方法是基于深度模型學習的分類模型。這些模型使用詞向量作為詞的表示,并使用詞向量的序列來代表句子或者段落[3]。然而,本文的研究對象是問答文本,問答文本同普通文本存在較大差異。例如,通過分析語料,我們發(fā)現(xiàn)屬性的描述一般出現(xiàn)在問題文本上,而答案文本較少體現(xiàn)屬性類別。因此,本文提出了一種基于多維文本表示的屬性分類方法,具體使用長短時記憶(long short-term memory, LSTM)神經(jīng)網(wǎng)絡[4],并結(jié)合答案和問題文本進行屬性分類。具體而言,我們先把問題切分為多個子句,并和答案文本一起作為多文本輸入;再針對每一個文本學習一個LSTM模型表示;然后通過Merge層來融合多個LSTM模型生成多維文本表示;最后,使用卷積層來對這個表示進行特征提取,并獲得最終分類結(jié)果。實驗結(jié)果證實,本文提出的屬性分類方法能有效提高面向問答文本的屬性分類性能。
本文結(jié)構(gòu)安排如下: 第一節(jié)介紹了屬性分類、聚類等任務的相關(guān)工作進展;第二節(jié)具體介紹本文提出的基于多維文本的屬性分類方法;第三節(jié)展示實驗設置、實驗結(jié)果和相關(guān)分析;第四節(jié)為本文內(nèi)容的總結(jié)及接下來的工作展望。
近些年來,許多研究者把屬性抽取任務建模為聚類、抽取問題,并在產(chǎn)品服務評論領(lǐng)域和新聞領(lǐng)域取得了一定的效果。
楊源等[5]用屬性歸類方式來進行屬性抽取。具體而言,楊源等使用了改進的EM算法,并利用了兩條自然語言知識進行屬性抽取: (1)含有相同字的兩個屬性有可能是同類屬性;(2)同義詞的兩個屬性有可能是同類屬性。李桃迎等[6]使用聚類方法進行屬性抽取。具體而言,該方法首先對各分類屬性按照取值進行劃分,得到最初的各聚類成員;然后,通過不斷調(diào)整尋找最優(yōu)的融合結(jié)果。Xiong等[7]提出一種基于注意力機制的神經(jīng)網(wǎng)絡模型,考慮了屬性短語與上下文之間的語義關(guān)系來進行屬性短語的聚類。
2014年,自然語言處理領(lǐng)域著名的語義評估會議Semantic Evaluation(SemEval)[注]http://alt.qcri.org/semeval2014/task4/提供評論語料并設立了一項屬性級情感分析評測任務,該任務針對評論文本進行屬性級情感分類、屬性分類等[8]。該評測任務提供了餐廳和筆記本電腦這兩個領(lǐng)域的語料,共包含531個評論文本、3 054個句子的數(shù)據(jù)集。Toh等[9]把屬性分類任務作為多標簽分類任務,并對每個屬性做一個二分類任務。針對每一個二元分類任務,作者使用了含有一層隱藏層的神經(jīng)網(wǎng)絡模型,并結(jié)合了多元詞特征。Khalil等[10]分別使用預訓練詞模型的CNN分類模型和詞袋模型的SVM分類模型,并把這兩個分類模型融合,獲得了較好的分類效果。Kalchbrenner等[11]提出了一種CNN改進模型,具體在模型中引入廣范圍CNN層和動態(tài)最大池化層。實驗結(jié)果表明,使用該方法獲得了較好的分類結(jié)果。
已有的屬性分類研究基本為面向評論文本、新聞文本等較普遍的文本,面向問答文本的屬性分類方法研究還很缺乏。據(jù)我們所知,本文是首次面向問答文本進行屬性分類方法研究。
本文在淘寶的“問大家”中收集了2 296條關(guān)于數(shù)碼領(lǐng)域的問答語料。為了保證較高的標注一致性,在進行語料分析及預標注后,我們定義了一系列的關(guān)于數(shù)碼領(lǐng)域的屬性并設計了相應的標注規(guī)范。規(guī)范如下:
(1) 經(jīng)過語料的預標注和統(tǒng)計,數(shù)碼領(lǐng)域相關(guān)屬性類別: 質(zhì)量、系統(tǒng)、存儲、系統(tǒng)性能、電池等。
(2) 問題中提到上述所提出的類別相關(guān)的問題,并且答案明確回答了類別相關(guān)的問題時計入。
根據(jù)以上標注規(guī)范標注者分為兩人一組對這些數(shù)碼領(lǐng)域的問答語料進行了標注,并進行了一致性校對。
數(shù)碼領(lǐng)域語料的屬性分類分布情況,如表2所示。從表2中可以看出,問答文本的各屬性類別樣本數(shù)目差距較大,問答語料中IO和系統(tǒng)性能相關(guān)的語料占了較大比重,而計算、功能類別的樣本數(shù)量較少[12]。
表2 問答文本中各屬性分布情況
與新聞文本、評論文本等文本類型不同,問答文本是由問題文本和答案文本兩部分組成, 故有一定的特殊性。在做屬性分類任務時,屬性的判斷主要依據(jù)問題,但答案也可以進行一定的輔助。問題文本一般有多個子句,其中一到多句描述了屬性相關(guān)的內(nèi)容,沒有描述屬性相關(guān)內(nèi)容的子句就會有一定的噪音干擾。因此,切分問題來獲得更準確的信息是一個很自然的想法。文本表示是該學習方法中的關(guān)鍵部分。我們使用多維文本表示來進行面向問答文本的屬性分類方法的實驗。
如圖1所示,圖中每組圓形為詞語級維度的表示,包含一系列詞向量的表示稱為句子級維度的表示,所有子問題句子與答案句子一起形成了問答對的表示,稱為問答級維度的表示。
圖1 問答對的三維表示
問答級文本包含多個問題文本和一個答案文本。即用工具把問題文本拆分成若干個子問題,并根據(jù)語料固定問題的子問題個數(shù)為N。
具體而言,使T=(x1,x2,…) 為詞的序列,其中每一個xi表示一個詞向量。之后,使TQ1到TQN,TA來分別表示第一個子問題到第N個子問題和答案文本。整個QA對可以被表示為 (TQ1,…TQN,TA),這是一個三維的矩陣。
LSTM神經(jīng)網(wǎng)絡避免了傳統(tǒng)網(wǎng)絡在反向傳播過程中所產(chǎn)生的梯度消失問題,并且解決了遞歸神經(jīng)網(wǎng)絡中的長期依賴問題。Alex Graves[13]于2013年對LSTM模型進行了改良,之后LSTM模型被自然語言處理領(lǐng)域研究者廣泛應用到各項研究當中。
LSTM的t時刻的神經(jīng)單元由式(1)~式(6)計算所示。
其中,σ是非線性激活函數(shù),b是偏置。
為了有效利用子問題與答案文本,本文提出了基于Multi-LSTM+CNN模型的屬性分類方法。即使用LSTM生成每個詞序的隱藏特征,并融合它們生成文本的多維表示,并用CNN來提取這個多維表示中的信息。
圖2給出了Multi-LSTM+CNN模型的框架,每個子問題文本和答案文本分別經(jīng)過一個LSTM層生成該文本的隱層表示hQ1-hQN以及hA。
圖2 Multi-LSTM+CNN模型
Merge層使用拼接的方法把這些隱層表示結(jié)合起來。在拼接的位置上,本文采用了時間步的位置。卷積層接收Merge層的輸出來提取特征,并用最大池化層進行進一步的子采樣。全連接層用來把池化層的輸出進行加權(quán)求和,并用激勵函數(shù)包裝,激勵函數(shù)如式(8)所示。
其中,φ是非線性的激勵函數(shù),本文選擇“Relu”作為全連接層的激勵函數(shù),h*表示全連接層的輸出。
Dropout層在訓練時會隨機忽略網(wǎng)絡中的某些節(jié)點,這樣做可以減少網(wǎng)絡中各個節(jié)點之間的依賴性,有效防止過擬合,用該層來接收全連接層的輸出,如式(9)所示。
其中,D為Dropout操作,p表示可調(diào)超參(在網(wǎng)絡中保留隱藏單元的概率),hd為Dropout層輸出。
最后,使用softmax輸出層來對樣本進行分類,獲得的預測概率值如式(10)所示。
其中,P為預測標簽的概率集,選出最大值即為預測標簽,Wd為需要學習的權(quán)重,bd為偏置。
在模型訓練的過程中,我們選擇最小化交叉熵誤差作為損失函數(shù),如式(11)所示。
其中,N為訓練樣本的數(shù)目,m是預測類別的數(shù)量,y是每個類別的預測概率值,該值由輸出層的P獲得,ti是第i個訓練樣本的標簽值。 ‖·‖F(xiàn)為Frobeniu范數(shù),n是向量通道的數(shù)目,W,U,V為不同權(quán)重的值,λ是用來懲罰項所對應的權(quán)重。
本文選用淘寶[注]https://www.taobao.com/“問大家”中關(guān)于數(shù)碼領(lǐng)域的問答語料進行實驗。該語料分為7個類別,其中各類別的樣本個數(shù)可從2.1節(jié)的表2中得到。本節(jié)中,對于所有實驗,我們將每個類別的70%的樣本劃分到訓練集,10%的樣本劃分到驗證集,20%的樣本劃分到測試集,測試樣本具體分布如表3所示。
表3 各屬性類別測試樣本數(shù)和剩余樣本數(shù)
實驗中,先使用CoreNLP[注]https://stanfordnlp.github.io/CoreNLP/工具對問題文本和答案文本進行句子切分;再使用Jieba[注]https://pypi.python.org/pypi/jieba/工具來進行文本中文分詞。使用深度學習框架Keras[注]http://keras.io/進行LSTM網(wǎng)絡和CNN網(wǎng)絡的搭建。在使用基于LSTM網(wǎng)絡與CNN網(wǎng)絡的分類器時,詞語特征用詞向量來表示。具體而言,利用python的gensim[注]https://radimrehurek.com/gensim/庫對淘寶的問答文本進行詞向量模型的生成,并使用該詞向量進行所有神經(jīng)網(wǎng)絡模型的實驗??紤]到實驗性能等因素,詞向量維度設為200。實驗模型各參數(shù)如表4所示。
表4 模型中的參數(shù)設置
實驗中,我們采用正確率(Accuracy)和Macro-F1值作為衡量分類器性能的標準。單類別F1值具體的計算方法,如式(12)所示。
其中,precision 表示精確率, recall 表示召回率。Macro-F1值為各類別F1值的平均值。
我們針對問答文本進行了一些屬性分類方法的實驗。方法具體如下:
1) LSTM(Q): 對問題文本使用LSTM分類器進行分類。
2) LSTM(A): 對答案文本使用LSTM分類器進行分類。
3) LSTM(Q+A): 對問題答案拼接的文本使用LSTM分類器進行分類。
4) CNN(Q+A): 對問題文本和答案文本拼接,并使用CNN神經(jīng)網(wǎng)絡方式進行屬性分類。
5) Multi-LSTM+CNN(Sub-A): 使用本文提出的模型,但針對答案文本進行切分,問題文本不切分進行實驗。
6) Multi-LSTM+CNN(Sub-Q): 使用本文提出的模型,針對問題文本進行切分,答案文本不切分進行實驗。
7) Multi-LSTM+CNN(Sub-Q and Sub-A): 使用本文提出的模型,但針對問題文本與答案文本均進行切分。
圖3展示了各屬性分類方法在數(shù)碼領(lǐng)域問答語料上正確率的比較。可以看出,同樣使用了LSTM模型的答案文本在分類正確率上明顯低于問題文本。這證明了問題文本的詞語特征在屬性分類上的重要性,而答案文本的詞語特征并不能很好的幫助屬性分類。在正確率上,LSTM(Q+A)則對于LSTM(Q)方法沒有明顯的提升,可以推測直接拼接方式并不能有效利用答案文本的信息。本文同時實現(xiàn)Multi-LSTM+CNN(Sub-A)方法。結(jié)果表明,切分答案并沒有顯著效果,而Multi-LSTM+CNN(Sub-Q)方法較LSTM(Q+A)效果提升顯著,證明了面向問答文本時切分問題的理論可以使屬性分類效果更好。而Multi-LSTM+CNN(Sub-Q and sub-A)方法效果僅得到了92.7%的正確率,并不如只切分問題。這是因為答案文本中屬性相關(guān)信息較少,在切分答案文本并融合所有文本時會加入許多噪音。
圖3 屬性分類方法分類正確率比較
圖4為各屬性分類方法在測試集上的Macro-F1值結(jié)果。從圖中可以發(fā)現(xiàn),基準方法中效果最好的是CNN神經(jīng)網(wǎng)絡(Q+A)方法,該方法達到了89.7%的Macro-F1值。與在正確率上一樣,LSTM神經(jīng)網(wǎng)絡(Q+A)比LSTM神經(jīng)網(wǎng)絡(Q)在Macro-F1值上也沒有較好的提升。該圖結(jié)果同時表明了本文提出的基于多維文本表示的方法在F1值上相較于其他方法也有明顯的優(yōu)勢,Macro-F1值比其他方法中最高的Multi-LSTM+CNN(Sub-Q and sub-A)高1.5個百分點。結(jié)果表明我們的基于多維文本表示的方法抓住了問題文本和答案文本之間的關(guān)系,并考慮了屬性任務在問題文本中一般在某些子句中這個特性,該方法可以有效利用答案文本來對問題文本進行輔助的屬性分類。
圖4 屬性分類方法分類Macro-F1值比較
問答文本是一種新穎的文本方式。本文對這種類型文本的處理進行了探索,提出了進行多維文本來表示整個問答對的方法,以得到更好的屬性分類效果。該方法首先把問題切分為子句級的問題,之后每個子問題和答案均訓練一個LSTM模型形成。通過Merge層融合這些模型,最后使用CNN網(wǎng)絡進行特征提取并獲得最終結(jié)果。實驗證明,該方法能有效利用問答文本的邏輯關(guān)系,其分類效果優(yōu)于傳統(tǒng)的分類方法。
在未來我們將驗證我們的方法在其他領(lǐng)域的有效性,以證明我們方法對于問答文本的普適性。此外,我們將繼續(xù)探索問答文本的特性,來獲得更好的問答對表示,以更有效地利用文本信息來獲得更好的分類性能。