籍祥
摘要:問答系統(tǒng)是自然語言處理領域一個非常熱門的研究方向,問題分類是問答系統(tǒng)非常重要的環(huán)節(jié)。傳統(tǒng)問題分類需要人工制定特征提取策略并不斷優(yōu)化特征規(guī)則,該方法準確率不高且費時費力。傳統(tǒng)卷積神經(jīng)網(wǎng)絡模型先通過卷積核提取能表示問句特征的向量,再經(jīng)過maxpooling后得到一個特征值,并未考慮句子的結(jié)構(gòu)信息,在訓練時容易發(fā)生過擬合。針對上述問題,采用分段池化操作,引入句子結(jié)構(gòu)信息,在不同分段上提取句子的主要特征并加入Dropout算法,提高模型的泛化能力,防止模型過擬合。實驗結(jié)果表明,該方法能提高模型準確率,在TREC 6分類問題數(shù)據(jù)集上準確率高達89.2%,在銀行57分類數(shù)據(jù)集上準確率也達到了64.5%。
關(guān)鍵詞:問題分類;word2vec;卷積神經(jīng)網(wǎng)絡;分段池化;Dropout算法
DOIDOI:10.11907/rjdk.181069
中圖分類號:TP303
文獻標識碼:A文章編號文章編號:16727800(2018)009002503
英文標題Classification of Chinese Questions with Convolution Neural Network——副標題
英文作者JI Xiang
英文作者單位(Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650500, China)
英文摘要Abstract:Question answering system is a very hot research area in Natural Language Processing. Question classification is an important segment of the question answering system.But traditional question classification requires the strategy of extracting and the optimization of characteristic rules. This method cannot handle the task well due to their low accuracy and high costs.The traditional CNN does not consider the structure of sentences. The traditional convolution neural network first uses convolution kernel to extract the vector that can express the feature of the question, and then only one feature is obtained after maxpooling. It does not consider the structural information of sentences and suffers form overfitting.Aiming at the two problems, we extract the main features of the sentence from different sections by using the piecewise pooling operation and introduce sentence structure information.At the same time,the dropout algorithm is added to improve the generalization ability of the model and prevent the model overfitting.Experimental results on the two datasets show that both the PCNN and the Dropout can enhance the performance.The accuracy rate of the 6 classification data set of the TREC problem is 93.7%, and the accuracy rate is up to 64.5 on the 57 classification data set of the bank.
英文關(guān)鍵詞Key Words:question classification; word2vec; convolutional neural networks; piecewisepooling; CNN; Dropout algorithm
0引言
人們每天都要通過搜索引擎在互聯(lián)網(wǎng)上獲取各種信息,搜索引擎會通過查詢返回大量相關(guān)網(wǎng)頁。目前搜索引擎采用的是基于“文檔檢索”的方法,也就是提取用戶查詢信息的關(guān)鍵詞,通過關(guān)鍵詞匹配返回排序后的網(wǎng)頁,是從語言而非語意的層面檢索,反饋的信息太多,用戶必須逐個閱讀才能從中找到想要的信息。通常用戶需要一個精確的答案,如何快速搜索到準確信息是一個重要的研究課題,問答系統(tǒng)應運而生。
問答系統(tǒng)[1]由問題分析、信息檢索和答案抽取3部分組成。問題分析的核心是問題分類,是非常重要的一個環(huán)節(jié),其性能直接影響到后期答案抽取[2]的準確性,關(guān)乎到整個問答系統(tǒng)性能好壞。
(1)問句正確分類可以提前確定候選答案數(shù)量。例如問句是:“廣東的省會在哪里?”,經(jīng)過分類算法分析之后,可以確定問句主要是關(guān)于地名的命名實體,所以后續(xù)分析只關(guān)注地名的答案,過濾掉大量無關(guān)的候選語料。
(2)問句的正確分類可以提前鎖定后選答案類型。例如:“中國的首都在哪兒?”通過問句分類,問答系統(tǒng)只需要處理與地名相關(guān)的語料即可。再如:“什么是人工智能?”這就需要給用戶返回一段描述性文字。因此,好的分類算法對于問答系統(tǒng)性能起著十分重要的作用。
1研究背景
1.1傳統(tǒng)分類方法
近幾年問題分類方法主要是先對問句進行特征提取,再結(jié)合機器學習方法對問句進行分類。分類效果取決于特征提取精準度。張宇等[3]采用改進的貝葉斯模型方法,結(jié)合提取詞頻及詞性特征對問題進行分類。在詞頻詞性特征基礎上,文勖等[4]使用句法分析提取問題的主干和疑問詞及其附屬成分作為分類特征。Silva等[5]將特征組合,采用線性SVM對問題分類。李鑫等[6]引入句法特征和語義特征,結(jié)合SVM分類器對問題分類。Liu等[7]把詞性、詞袋與句法依存樹結(jié)合,通過計算核函數(shù)發(fā)現(xiàn)問句結(jié)構(gòu)。
1.2卷積神經(jīng)網(wǎng)絡應用
卷積神經(jīng)網(wǎng)絡是受生物學上感受野的機制而提出的一種前饋神經(jīng)網(wǎng)絡,利用局部連接和權(quán)值共享特性,使模型參數(shù)更少,并具有一定程度的平移、縮放和扭曲不變性。卷積神經(jīng)網(wǎng)絡不僅在圖像分類領域貢獻巨大,而且在自然語言處理方面取得了引人注目的成果。
通過卷積層和采樣層對句子進行特征提取,能保留單詞間的語意關(guān)聯(lián)信息和位置信息。Yoon kim[8]首次提出用卷積神經(jīng)網(wǎng)絡對文本分類,其使用了一個卷積層、一個池化層對句子進行特征提取,最后連接全連接層對句子分類。Kalchbrenner[9]在此基礎上提出了動態(tài)pooling方法。TH Nguyen[10]提出了擴充詞向量的維度加入新特征方法。Chen Y[11]等將word2vec橫向組合以發(fā)現(xiàn)句子級別特征。Yin W[12]等使用kmax pooling方法以保留更多的句子特征。
2基于卷積神經(jīng)網(wǎng)絡的分類模型
本文采用的分類模型PCNN如圖1所示。
2.1詞向量
問題的內(nèi)容字數(shù)較少,用語也不規(guī)范,用傳統(tǒng)的向量空間模型會出現(xiàn)特征維度過高和數(shù)據(jù)稀疏問題。未考慮詞語之間的相關(guān)性及詞語在文檔中的位置信息,這些因素影響了后面問題分類的準確性。現(xiàn)在常用的詞的表示形式是分布式,即用一個詞附近的其它詞來表示該詞。Tomas Miklolv等[13]提出了兩個新的模型框架用來計算單詞的連續(xù)向量,直接從語言模型出發(fā),將模型的最優(yōu)化過程轉(zhuǎn)化為求詞向量表示的過程,這種方法可以把高維稀疏的向量轉(zhuǎn)化成低維稠密的詞的分布式表示。word2vec的兩種模型分別是CBOW和Skipgram,CBOW的建模過程是用窗口內(nèi)的詞預測中心詞,Skipgram是用中心詞預測周圍的詞,本文采用Skipgram模型。訓練好詞向量后,一個問題的句子S就可以用(s1,s2,…,sn )表示了,其中n為句子的長度,si用(w1,w2,…,wk)詞向量表示,表示一個單詞,wi為詞向量中第i維度上的權(quán)重,k為詞向量的維數(shù)。這樣,每個問題都可以用詞向量矩陣表示。
2.2卷積層
卷積層是卷積神經(jīng)網(wǎng)絡的核心組成部分,核心點在于捕捉局部相關(guān)性,具體到文本分類任務,卷積核可以提取句子中類似于Ngram的關(guān)鍵信息。這里的卷積核與圖像中的卷積核有所不同,因為一個詞向量是一個整體,所以對整個詞向量作卷積操作才有意義。假設詞向量的長度為k,那么卷積核的寬度也為k。假設一個句子S有n個詞,S=(s1,s2,…,sn),卷積核用W∈Rhk表示,h為卷積核高度。每經(jīng)過一個長度為h、寬度為n的詞向量矩陣后就會得到一個特征值。特征值計算公式為:
ci=f(Si:i+h.W+b)(1)
其中b為偏置項,Si:i+h表示一個長度為h的單詞序列(si,si+1,…,si+h),f表示激活函數(shù),常用的激活函數(shù)有tan、relu、sigmod等。增加激活函數(shù)可以使模型引入非線性因素,進而更好地擬合數(shù)據(jù)。整個問句經(jīng)過卷積操作之后就可得到一個代表句子的特征向量:
C=(c1,c2,…,cn-h+1)(2)
卷積核長度不同,提取出的特征信息也不同。不同大小的卷積核可從不同的角度提取問句特征,所以這里設置3個不同長度的卷積核,分別為2、3、4。
2.3分段池化層
池化層通過對卷積層輸出的向量進行下采樣操作,降低特征維數(shù),既可加快計算速度,又可有效防止模型過擬合問題。傳統(tǒng)方法是對卷積層得到的整個特征向量C作maxpooling操作,選取最具有代表性的特征:
cmax=max(C)(3)
本文采用1max pooling操作,卷積層得到的特征向量經(jīng)過池化操作后只能得到一個特征值。但是一個句子往往由幾個關(guān)鍵詞語特征決定,傳統(tǒng)方法沒有考慮句子結(jié)構(gòu)信息,所以本文采用分段池化方法,引入句子的結(jié)構(gòu)信息??紤]到句子一般由主謂賓構(gòu)成,所以本文將卷積層得到的特征向量平均分為3段,在每一個分段上分別做maxpooling操作,然后將每段取出的最大值拼接成一個向量,并對向量作tan非線性運算。這種分段池化比傳統(tǒng)的在一個句子上取最大值的方法能提取更多問句特征,如圖2所示。
2.4Dropout算法
在訓練神經(jīng)網(wǎng)絡時,數(shù)據(jù)量較少時模型很容易過擬合(訓練集上精度很高,測試集上精度很低)。傳統(tǒng)辦法可以采用L2正則化,或者減小網(wǎng)絡規(guī)模。Hinton在2012年[14]提出了Dropout方法,他認為過擬合可以通過阻止某些特征的協(xié)同作用來緩解。每次訓練時,每個神經(jīng)元有50%幾率被移除,這樣可以減少神經(jīng)元之間的依賴。N Srivastava等 [15]對Dropout作了一個類比:Dropout類似于性別在生物進化中的角色,物種為了生存往往會傾向于適應這種環(huán)境,環(huán)境突變則會導致物種難以及時反應,性別的出現(xiàn)可以繁衍出更適應新環(huán)境的變種,有效阻止過擬合,即避免環(huán)境改變時物種可能面臨的滅絕。與此類似,經(jīng)過Dropout算法訓練的神經(jīng)網(wǎng)絡,最終的網(wǎng)絡參數(shù)是多個模型的參數(shù)組合。Dropout可以防止模型過擬合,提高模型準確率,使模型具有更好的泛化能力。
3實驗
3.1數(shù)據(jù)集
本實驗用到兩個數(shù)據(jù)集:一個是TREC問題數(shù)據(jù)集,共有6 000條數(shù)據(jù),分為5 500條訓練數(shù)據(jù),500條測試數(shù)據(jù),6大類。判斷一個問題是關(guān)于人物、地點還是信息等類別;另一個是來自銀行的人工標注數(shù)據(jù)集,總共有5 721條,分為訓練集5 200條,測試集521條,共分為57類,每一類為顧客要咨詢什么樣的業(yè)務。
3.2數(shù)據(jù)預處理
英文數(shù)據(jù)單詞由空格切分,因此無需分詞操作。對于中文數(shù)據(jù)集,需要進行分詞處理,這里采用jieba分詞軟件。卷積神經(jīng)網(wǎng)絡的輸入要求是定長數(shù)據(jù),但是問題的長度不一,因此要進行預處理。首先要計算出數(shù)據(jù)集中最長句子的長度L,對長度不足L的作zeropedding操作(向量長度不足的位置補0,這樣就統(tǒng)一了句子的長度。因為后面采用maxpooling操作,這樣補充對后面操作沒有影響)。
3.3實驗參數(shù)設置
本文模型的主要參數(shù)有詞向量的維度、卷積核的個數(shù)、池化操作時分段的個數(shù)、Dropout算法的比率、批量隨機梯度下降算法的學習率。因為問句的長度較短,所以詞向量的維度設置為50;為了充分提取問句特征,卷積核的數(shù)量設置為128。句子一般由主謂賓構(gòu)成,所以分為3段,學習參數(shù)設置為0.01。
為了充分驗證模型的有效性和Dropout算法對模型的影響,本文采用多種方法對兩個問題數(shù)據(jù)集分類:①詞袋模型加樸素貝葉斯方法;②TFIDF加SVM方法;③傳統(tǒng)的卷積神經(jīng)網(wǎng)絡方法;④本文提出的PCNN方法;⑤PCNN+Dropout方法,實驗結(jié)果如表1所示。
實驗結(jié)果表明,基于卷積神經(jīng)網(wǎng)絡的分類算法優(yōu)于傳統(tǒng)分類算法,本文采用的PCNN分類算法比傳統(tǒng)卷積神經(jīng)網(wǎng)絡分類算法準確率高,加入Dropout算法后模型準確率又有提升。原因歸結(jié)為以下3點:①基于Word2vec生成的詞向量比傳統(tǒng)的TFIDF有更好的詞語特征表示;②PCNN比傳統(tǒng)的CNN能更好地抽取句子特征;③Dropout算法可以提高模型的準確率,提高模型的泛化能力。
4結(jié)語
傳統(tǒng)的maxpooling對整個句子特征提取不足,為此提出分段pooling的方法,在每個分段上分別提取特征。針對傳統(tǒng)卷積神經(jīng)網(wǎng)絡容易過擬合,加入了Dropout算法,有效避免了過擬合問題,同時提高了模型的泛化能力。結(jié)合兩個數(shù)據(jù)集進行訓練和測試實驗,結(jié)果表明分段卷積神經(jīng)網(wǎng)絡比傳統(tǒng)的卷積神經(jīng)網(wǎng)絡預測準確率高,加入Dropout算法后提高了模型的泛化能力。與傳統(tǒng)方法相比,此模型自動提取問句特征,避免了人工設置特征問題。
參考文獻參考文獻:
[1]ALI MOHAMED NABIL ALLAM, MOHAMED HASSAN HAGGAG. The question answering systems:a survey international Journal of Research and Reviews information Sciences[EB/OL]. http://www.docin.com/p1471893791.html
[2]R MUDGAL ,R MADAAN ,AK SHARMA ,et al. A novel architecture for question based indexing scheme for efficient question answering[J]. Intenational Journal of Computer Engineering,2013,2(2) :2743.
[3]ZHANG YU ,LIU TING ,WEN XU. Modified bayesian model based question classification[J]. Journal of Chinese Information Processing,2005,19(2):100105.
[4]WEN XU,ZHANG YU,LIU TING ,et al. Syntactic structure parsing based Chinese question classification[J]. Journal of Chinese Information Processing,2006,20(2):3339.
[5]SILVA J,COHEUR L,MENDES A C,et al. From symbolic to subsymbolic information in question classification[J].Artificial Intelligence Review,2011,35(2):137154.
[6]李鑫,杜永萍.基于句法信息和語義信息的問題分類[C].第一屆全國信息檢索與內(nèi)容安全學術(shù)會議,復旦大學,2004:243251.