韓東方,吐爾地·托合提,艾斯卡爾·艾木都拉
新疆大學 信息科學與工程學院,烏魯木齊 830046
用自然語言與用戶進行互動的計算機系統(tǒng)稱之為問答系統(tǒng)。問答系統(tǒng)(QA)由問句分析、信息檢索、答案抽取三部分組成[1],問句分類作為QA的初始環(huán)節(jié),其能否正確地對問句進行分類會直接影響到后續(xù)的答案抽取環(huán)節(jié)。另外,問句分類能夠對系統(tǒng)提供較為重要的數據信息,這些信息對于幫助用戶找到想要的答案至關重要。問句分類對問答系統(tǒng)的重要作用主要表現在兩個方面:
(1)根據期望的答案類型來為問句分配相應的標簽,這是問句分類的基礎,從而縮小候選答案的范圍。例如,問句“第一個登上月球的人是誰?”,用戶真正想要知道的答案是“阿姆斯特朗”,而不是去檢索過多包含“第一”或是“世界”相關內容的資料。在進行問句分類操作后,能夠得知這是一個詢問人名的問句,答案應與問句的類型相一致,故在答案抽取階段會把人名以外的候選語句篩除掉,只需要把焦點放在一些和人名有關的答案即可,而無需將過多注意力放在和人名無關的候選答案語句上面。
(2)對于不相同的問句類型,問答系統(tǒng)在后續(xù)的操作中也會相應地制定不同的策略,例如,問句“河南的簡稱是什么?”,問句的答案是和簡寫類有關,答案抽取的側重點也應該放在選取針對簡寫類的策略上。
問句分類能夠較為明顯地提高問答系統(tǒng)的整體性能,Moldovan等[2]的實驗結果表明答案出錯是由問句分類不夠精準引起的。綜上所述,問句分類對于問答系統(tǒng)而言,有著指導性的重要作用,問句分類的準確性會對問答系統(tǒng)造成較為直接的影響。此外,目前對于問句分類進行研究的主要方法通常會借鑒和引用文本分類的某些思想[3],二者的區(qū)別之處在于,例如“什么”“是”等常用詞在文本分類中常常容易被忽略,但是這些可能作為停用詞的字詞往往在問句分類中是非常重要的,這也是問句分類的特點之一;二者的共同之處在于都是通過對文本中所含信息進行分析,再結合問句分類的自身特點,從而將問句歸納到所屬類別。問答系統(tǒng)的體系結構如圖1所示。
圖1 問答系統(tǒng)的體系結構
機器學習在相關領域的成功應用極大地促進了問句分類的發(fā)展,基于機器學習的問句分類方法變得更加豐富。在該方法下,研究者會將焦點放在分類模型選擇上,以及問句特征的提取上面。隨著自然語言處理、機器學習,以及信息檢索等相關領域在國際會議和期刊上關于問句分類的相關研究文獻的增多[4],研究人員和機構以及專家學者們提出了許多在傳統(tǒng)機器學習方法基礎上的深度學習方法和模型,許多新的深度學習方法也會在問句分類任務上測試和驗證,這很好地說明了問句分類研究對于QA研究人員的重要性,也體現了傳統(tǒng)機器學習方法和當下流行的深度學習方法在問句分類任務中的重要應用。
此外,近幾年隨著QA 相關競賽的興起和發(fā)展,使得QA 研究領域受到了廣泛關注并成為新的熱點研究領域。與此同時,有眾多新的深度學習的預訓練模型提出并不斷刷新問答競賽紀錄(如斯坦福問答競賽等,其主要用到的數據集為SQuAD1.1和SQuAD 2.0),例如,Peters 等[5]在 2018 年提出的 ELMO(Embeddings from Language Models)詞向量模型,靜態(tài)詞向量部分替換成了ELMO,并且以雙向長短期記憶網絡(Long Short Term Memory,LSTM)作為基本的模型組件,將通用的語義作為特征,通過預訓練得到后并被遷移到下游NLP(自然語言處理)任務中,再使用現有的SOTA(State-Of-The-Art,當前最佳)模型,使模型性能得到了極大提升,在SQuAD 數據集上的精度達到了 85.8%;Devlin 等[6]在2018年提出了BERT預訓練模型,其核心是Transformer模塊[7]。Transformer屬于seq2seq模型的一種,主要是由encoder 和decoder 兩部分構成。此外,還引入了selfattention(自注意力機制),一條問句能夠同時關注多個聚焦點,而不必受到序列串行處理的約束,其打破了傳統(tǒng)深度學習模型不能夠并行計算這一限制條件,同時計算文本序列中兩個位置之間的關聯(lián)所需的操作次數不隨文本中距離的增加而增加,BERT 模型還具有更強的可解釋性,在多個NLP任務中創(chuàng)下當年的最佳成績[8],同時在SQuAD 問答集上也刷新了當年的各項徑錄;Yang等[9]在2019 年提出了XLnet 預訓練模型,他們將原有的自回歸語言模型(AutoRegressive LM,AR[10])換成了自編碼語言模型(AutoEncoder LM,AE[11]),解決了之前遮蔽語言模型(Masked Language Model,MLM)[12]所帶來的負面影響和局限性,并且還加入了雙流注意力機制和Transformer-XL(在Transformer模型中引入了循環(huán)機制和相對位置編碼[13]),XLnet 在多個NLP 任務上都優(yōu)于BERT的表現,并在SQuA2.0上取得了SOTA結果。
問句分類的第一步是要了解問句存在哪些類別,而問句的類別也由所采用的問句分類體系所決定,問句分類的先決條件可以說就是問句分類體系。當前的問句分類體系尚未制定一個統(tǒng)一的標準,大多數研究者采用的是以答案類型為導向的分類體系,該種分類體系具有較易構建、分類粒度較為細致、類別覆蓋范圍廣泛等特點。
如表1[14]所示,國外主要采用UIUC的英文問句分類體系標準。在該分類體系中,問句分為6大類以及50個小類,問句類別由答案所屬類型而決定。
表1 UIUC問句分類體系
國內目前仍沒有建立一個統(tǒng)一的中文問句分類體系,哈工大的文勖等[15]在國外已有的問句分類標準體系的基礎上,以及鑒于漢語較為復雜等特性,制定了一套中文的問句分類體系標準。該問句分類體系共有7 個大的類別,分別是:描述類(DESC)、人物類(HUM)、地點類(LOC)、數字類(NUM)、時間類(TIME)、實體類(OBJ)、未知(UNK),以及60個小類。每個大類都包含了若干個小的類別,如表2所示。
表2 中文問句分類體系
在深度學習的研究中數據集是其中尤為重要且不可輕視的環(huán)節(jié),QA領域中常用到的數據集如下:
(1)TREC。TREC 英文問句集[16]遵循UIUC 問句分類體系,屬于事實類問句。該數據集有TREC-6 和TREC-50 兩個版本,分別由6 個大類(ABBR、DESC、ENTY、HU-M、LOC、NUM)和50個小類所組成,訓練和測試數據集分別包含了5 452條和500條問句。
(2)SQuAD。SQuAD 問答數據集[17]源于維基百科中用戶提出的各種問題,每個問題的答案都來自相應的一段閱讀段落,答案和段落中的一句話或者一段文本相對應,SQuAD 有 SQuAD 1.1 和 SQuAD 2.0 兩個版本,SQuAD 1.1 包含536 篇文章中的107 785 個問答對,SQuAD 2.0 在前者的基礎上添加了50 000 條由人類眾包者提供的較難回答的問題。
(3)YahooAns。YahooAns 問答數據集[18]來自于雅虎問答社區(qū)上用戶所提出的問題,并包含答案信息,共有10 個類別,每個類別的訓練和測試樣本分別為140 000條和5 000條。
(4)MS MARCO。MS MARCO微軟問答數據集[19]的1 010 916個問題由抽取Bing搜索引擎中用戶的查詢信息所組成,并包含182 669 條人工智能和人為重寫的生成式答案,一條問題通常有若干條生成式的答案,因此適用于開發(fā)生成式問答系統(tǒng)。該數據集無論是質量還是數量都是當前同類問答數據集中最全面的。
在進行問句分類任務前,先要對數據進行預處理,分別要做“分詞”“去除停用詞”等工作,然后把句子輸出為對應的特征向量,進而通過特征提取方法將問句特征抽取出來。常見的問句提取方法有三種,分別是:詞法特征抽取、句法特征抽取、語義特征抽取。
1.3.1 詞法特征抽取
詞法特征抽取往往只考慮一條問句中出現的單個詞,也就是問句中的上下文詞匯,不考慮詞法、句法、語義等其他因素。
詞袋特征(又稱為“一元模型”)是較為常用的詞法特征,它將問句看作是每個詞相互獨立的集合[20]。例如,Zhang 等[21]利用詞袋模型并結合支持向量機(SVM)對英文問句進行分類,但是由于分類特征較為單一等原因,在TREC10英文問句集上的分類效果一般。一元模型是N元模型(n-gram)的特例,問句中任意連續(xù)的N個單詞被提取為一個特征稱為n-gram特征。
另外一種是基于詞的形態(tài)特征的詞法特征,也就是詞形特征。Huang 等[22]將詞形特征概括為5 大類:全數字、大寫、小寫、混合和其他。大多數機器學習方法都使用詞法特征進行分類,詞法特征易于提取,但分類的性能通常較差。
由于相較于句法和語義兩種特征,詞法特征更易于提取的特性,詞性特征是大部分機器學習方法中會用來進行分類的特征,但是詞性特征通常在作為單一特征進行分類的精度并不高,它在與其他不同的類型結合時分類精度會有所提高。
1.3.2 句法特征抽取
句法特征相較于詞法和語義兩種特征,具有更為豐富且常用疑問代詞、中心語塊、語法樹[23]、問句結構依賴提取特征等特性,句法特征最常用到的兩種特征分別是:詞性(Part of Speech,POS)和中心詞(Headwords,H)。
詞性標注依托于句法結構,它是一種從句法結構中抽取的問句句法特征,問句中任一單詞都有其詞性。句法特征中常見的問句分類特征還有中心詞特征,即問句中含有最為關鍵的信息的詞語,問句的目標信息往往也在其中。
中心詞的識別準確率會直接影響到分類精度,如Li 等[24]采用淺句法分析和啟發(fā)式規(guī)則提取中心詞;此外,Silva 等[14]對該規(guī)則進行了調整,使其更適用于提取問句的中心詞。但是中心詞提取的方法在某些問句中無法湊效,未能有效提取中心詞,鑒于此,Silva 等對已有規(guī)則進行了補充,稱作非平凡規(guī)則(non-trivial rules),這些補充規(guī)則在通用語法規(guī)則前使用,很好地彌補了前面提到的缺陷,中心詞提取準確率達到了96.9%。
通過抽取問句的語法結構得到單詞的依賴特征,這種句法特征能夠較為明顯地提高問句分類的精度,但是抽取句法特征往往需要較大的計算代價。
1.3.3 語義特征抽取
在問句分類過程中,有些時候只用詞法或是句法特征進行分類效果欠佳,語法特征可以更好地增強問句分類的性能。問句的語義特征通常是通過問句中的詞義抽取的,Metzler等[25]采用問句的單詞詞義作為語義特征進行問句分類。多數語義特征抽取方法通過第三方數據源來提取語義特征,如Sarkani 等[26]使用維基百科(Wikipedia)抽取問句所屬類別的語義特征。此外,在語義特征抽取中,WordNet 也是較為常用的工具,基于WordNet詞典的語義特征主要有三種,分別是:上位詞、關聯(lián)詞、命名實體。上位詞因為能夠對某類特定單詞抽象概括,故能夠變成有效的問句分類特征。
為確保所選的上位詞對分類有效,Huang 等[27]和Blunsom等[28]選擇問句中的中心詞用作候選單詞來進行擴充上位詞。Li等[16]采用單詞的上位語義作為問句分類特征,對單詞進行詞義的抽??;Skowron等[29]將問句中出現的每個名詞作為用于上位詞擴充的候選單詞;Loni等[30]對只使用中心詞和使用所有單詞的兩種上位詞特征向量的分類精度進行了對比,實驗結果表明,后者由于在特征中引入了過多的噪聲導致分類效果較差。
總的來說,上位詞提取是一項繁雜的工作,在WordNet當中的多數單詞都擁有多個層級結構和上位詞,怎樣確保在WordNet 中抽取的單詞詞義和問句中所抽取的單詞詞義是一致的,這些都是利用上位詞進行語義特征提取所面臨的問題。
在過去數十年中,運用機器學習的方法是問句分類研究的主流方法,問句特征提取的好壞是其分類性能的決定性因素[31]。樸素貝葉斯分類算法是由貝葉斯決策理論發(fā)展演化而來,它是一種概率分類模型,通常假設特征之間互相獨立,在此基礎上使用貝葉斯定理,同時假設所要分類的特征項也相互獨立。就問句分類而言,問句中的各個單詞都是互相獨立的。支持向量機(SVM)是二分類模型,通常采用組合若干個這種二分類模型的方法來處理多分類問題。Metzler 等[25]采用徑向基核函數和多種特征融合的方法對英文問句進行分類,觀察SVM分類模型中不同的核函數對于分類精度的影響[32],還有線性核函數以及不同特征提取情況下的問句分類效率等。和SVM模型相比較,K近鄰模型通過構建kd樹(K-dimensional tree)來實現其優(yōu)化算法,但優(yōu)化以后的效率仍然不是很理想,而且隨著數據集的增大其時間復雜度也會變得很大。最大熵(Maximum Entropy model,MaxEnt)是一種基于對數線性的分類模型,與SVM的相比,最大熵模型(ME)可以計算樣本屬于每個類別的概率,而SVM 只能通過分類超平面將樣本分到某一類別。此外,相關研究報告表明,基于最大熵模型的問句分類也可以得到很高的準確率[28]。
上述分類算法在問句分類領域的應用主要是根據問句分類的數據集、人工提取問題的特征,亦或是組合某些特征來對問題進行表示,因此具有較強的主觀性,而且具有較為多樣性的語言表述,這也就意味著具有較為高昂的手工制定準確的特征提取方法代價。
深度學習技術無疑是機器學習所屬分支的一個研究新熱點,它在當下成為推動機器學習快速發(fā)展的強大力量。其靈感主要來源于人類大腦的一種工作處理方式,通過各種神經網絡來處理特征表達的學習過程[33]。深度學習技術的發(fā)展大力推動問句分類的相關研究,對于未來問答系統(tǒng)的發(fā)展也起到了導向作用。
基于深度學習的問句分類方法有較強的自適應深度學習能力,同時容錯率相對較高,對于海量數據處理中的一些較大噪聲和復雜的變形也有較高的抵抗能力,此外,較快的數據處理能力也是其主要的優(yōu)勢之一,在問句分類研究中,通常采用深度學習中主動分析和學習隱含在整個問句分類中的詞語句法和語義結構特征。近年來,在多個研究領域深度學習技術都受到了廣泛的應用,同時取得諸多矚目的成就。在自然處理領域,也有越來越多的學者和研究人員利用深度學習的方法解決問題,Kim等[34]通過將問句變成詞向量并用卷積神經網絡(Convolutional Neural Network,CNN)對英文問句進行分類;Kalchbrenner 等[35]構建了一種動態(tài)卷積神經網絡(Dynamic Convolutional Neural Network,DCNN),在該網絡中使用了一種全局kmax池化操作來解決問句長度不一致的問題,并用DCNN網絡對問句語義信息進行模擬,取得了較好的問句分類效果;Le 等[36]針對循環(huán)神經網絡(Recurrent Neural Network,RNN)在問句分類時可能會出現句法成分修改不正確和句法樹轉換有誤等問題,將句法森林作為CNN 網絡的輸入,并且任意的分支都能夠增減,即森林卷積神經網絡(Forest Convolutional Network,FCN),對于問句分類任務有著較好的效果;Komninos等[37]研究了詞嵌入(Word Emb-edding)對于深層神經網絡的影響和作用,研究結果表明基于上下文的詞嵌入在問句分類任務中能夠取得更佳的分類效果。徐健等[38]采用長短期記憶神經網絡(Long Short-Term Memory,LSTM)就中文和英文兩種語料構造出了一種雙通道的LSTM問句分類模型,通過文本翻譯得到更為廣泛和深層次的特征,從而增進問句分類的精準度。
問句分類通常采用準確率、召回率、精確度、均方根誤差等評價指標來衡量在特定數據集上分類模型的分類效果。
(1)準確率(Accuracy,Acc),計算公式:
其中,AccNum表示正確分類的問句樣本數目,Numtotal表示全部的測試集問句數量。將分類器在分類中預測的類別和實際所屬類別一致的樣本數量和測試集總的問句數量的比值作為重要的衡量標準。
(2)召回率(Recall),計算公式:
其中,Recall(a)代表a類別的召回率,RecNum(a)表示測試集中樣本預測為a類且實際也為a類的樣本數量,Numtotal(a)表示測試集中a類數據集的真實數量。a類的召回率是a類別中被正確分類的數據集和a類數據集真實數量的比值,旨在檢測該類別的查全率。
(3)精確度(Precision),計算公式:
其中,Precision(a)代表a類別的精確度,PreNum(a)代表測試集中樣本預測為a類且實際也為a類的樣本數量,Numtotal(a′)表示測試集中分類預測為a類的數據集數量。a類的精確度是測試集中樣本預測類別與實際類別一致的樣本數目和所有預測為a類的樣本數目的比值。
(4)均方根差(Root Mean Squared Error,RMSE),計算公式:
其中,gi是預測類別,pi是真實類別,Numtotal表示全部的測試集問句數目,RMSE 旨在消除gi和pi兩者之間的差異。
基于機器學習的問句分類方法主要分為兩大類:基于經驗規(guī)則的分類方法、基于統(tǒng)計的機器學習分類方法[39]。前一種方法在早期較常見,它主要根據事先設定好的經驗規(guī)則和模板來判別問句的類別[40]。基于統(tǒng)計的機器學習方法近些年相對比較常用,其具有通用性強、易于移植和擴展等優(yōu)點。這種方法首先需要提取一些特征向量,問句的類別就由這些特征向量來表示,然后再對已經精確標注過的真實測試問句通過統(tǒng)計和分析學習,從而自動建立分類器,最后用分類器來標注問句所屬的類別?;诮y(tǒng)計的機器學習分類方法的核心是提取問句的特征向量,分類器的分類精度通常會受到特征向量質量的影響。
當前在問句分類中常用到的基于統(tǒng)計方法的機器學習模型有:貝葉斯模型(Bayes Model)、支持向量機模型(SVM)、K-近鄰模型(KNN)、最大熵模型(ME)等。
在問句分類領域,貝葉斯分類器較為常見,它是一種基于概率學的分類器。貝葉斯分類的基本原理可概述為:計算一個類別的先驗概率和問句中單詞的概率分布,再對一個類別的先驗條件參數概率和詞進行分析計算,從而可以得到一個問句的詞所屬的先驗類別條件概率,問句被劃分為某類別的概率為后驗概率最大的那一類。由于運行速度快、調參少、貝葉斯模型往往用于高緯度的數據集。此外,問句分類能夠從貝葉斯模型中獲取到快速粗糙的基本方案[41],在實際應用中效果較為不錯。
對于問句分類任務,Zhang 等[42]提出的貝葉斯改進模型較為常用,其利用詞袋和TFIDF加權的方法對原來的模型進行改進再對問句進行分類。句子和詞之間被假設成是互相獨立的,即句與詞之間詞袋關系模型,數學定義的表示方法為:
其中,qc表示問句類型的變量,Q1,Q2,…,Qn代表對問句做分詞、去除停用詞后的詞項數目。對上式做簡化,因為分母不變,故只需處理分子:
根據詞袋模型,可以把問句簡化為:
其中
counter(qc,Qi)表示特征Qi在qc這種問句類別中出現的次數;N表示問句類型的總數目,如在TREC問句集中取N=50(小類);counter(Qi)表示特征Qi在訓練集中出現的總次數;M表示特征Qi在M種問題類型中出現。由于counter(qc,Qi)有可能等于0,為了避免這種情況,在分子上加入一個常數0.5(調零因子),加入0.1 的理由同上。另外,針對語料庫分布不太均勻和漢語的特點,對一些詞用TF-IDF加權進行權值處理。
將貝葉斯模型應用于問句分類任務的代表性研究有:Zhang 在文獻[21]中以詞袋和多元詞塊作為主要特征并采用貝葉斯模型,在不同規(guī)模的英文訓練集上做分類,得到的大類分類精度為83.2%,小類分類精度為67.8%;Kocik在文獻[43]中提取了問句句首的兩個焦點單詞并結合問句長度作為特征,通過貝葉斯模型進行分類,大類的分類精度達到了88.6%,小類的分類精度為73.4%;Yadav等[44]分別使用一元、二元、三元單詞和多元詞性作為特征,采用貝葉斯模型對英文問句做分類,分類效果也較為不錯;Arun 等在文獻[45]中,通過給定問題中常見的術語一定的權重來計算出特征向量,用樸素貝葉斯對英文問句進行分類,準確率最高達到了92%。對于中文文句分類,Zhang 等在文獻[42]中通過改進貝葉斯模型進行問句分類,但是由于只注重單一的詞頻特征,從而使分類精度不能夠得到保障,在有些單一問句類別當中進行分類效果不佳,此外,他們還通過大量使用句法分析的方法,分析和提取問題的基本主干和主要疑問詞及其主要附屬詞的成分來用作貝葉斯模型分類的基本特征,大類準確率為86.62%,小類準確率為71.92%;袁曉潔等在文獻[46]中利用分析問題中的疑問詞、依存關系、主要的一些動詞、中心部分的名詞和概念上外延更廣的名詞作為分類特征,分類精度達到了83.7%;Tian等在文獻[47]中用自動學習分類的方法,構造了中心疑問句的詞類別和中心詞+疑問詞類別的兩種規(guī)則,并用改進貝葉斯模型對中文問句進行分類,分類精度達到了84%;許莉等在文獻[48]中利用主干依存句法分析法找出給定問句的各個主干,從語義信息等方面通過分析給出問句中的主干從而準確提取問句特征,最終的分類效果較為理想。
支持向量機(Support Vector Machine,SVM)是二分類模型,它的基本原理是:事先設置好非線性核函數,輸入向量映射到高維特征空間上,在該空間中構建一個最優(yōu)的分類超平面,從而正確地劃分開兩類樣本(訓練錯誤率為0),將兩類樣本(標記為Y∈{-1,1})的分類空隙變?yōu)樽畲?,從而將非線性問題變成一個高維空間中線性可分的問題[49]。鑒于SVM 模型二類分類的特性,通常采用多個二分類器相結合的方法來處理問句分類任務中的多分類問題,較為常見的方法有兩種:分別是一對一和一對多,一對多模式效果往往不如一對一組合的模式。SVM決策函數的求解分類器為:
其中ai(i=1,2,…,n)是二次優(yōu)化問題的全局最優(yōu)解,如下式所示:
其中
將非線性的問題變?yōu)橐粋€在高維空間中線性可分的問題,從而解決線性不可分的這種情況,最后對最優(yōu)的分類面進行求解,也就是將上面的公式(11)中的xTi xj用一個核函數映射代替從而進行線性變換,在這種映射前往往并不知曉具體的映射函數,而是通過映射一個核函數反過來確定映射函數,這稱之為映射核函數的技巧(kernel trick)。
用SVM 模型進行問句分類的代表性研究主要有:Zhang 等在文獻[21]中采用樹核函數進行特征抽取,將句法結構的分類特征加到里面,在UIUC英文問句集上的分類精度達到了80.2%;Li 等[50]提出了基于錯誤驅動語言規(guī)則分類方法(TBL)并采用了來自WordNet 的英語同義詞集、來自名詞的上位詞概念、來自Minipar的依存關系等語言基礎知識作為問句分類方法的特征,在所采用的英文公開問句集上達到了91.4%的分類精度。Silva等在文獻[14]中只采用單一的詞袋作為分類特征,對UIUC英文問句集做分類,大類準確率為88.8%,小類準確率為80.6%;Duan 等在文獻[51]中提出一種可以融合多種語義特征的問題詞匯分類的方法,用SVM 模型對中文問句進行了分類,在所用的公開問句集上大類和小類的分類精度分別達到了92.82%和84.45%;Gao 等在文獻[52]中通過基本的詞匯語法特征問題類別線索詞特征以及其綁定特征等,用SVM 模型對中文問句進行分類,大類準確率為94.08%,小類準確率為86.77%。
KNN(K-Nearest Neighbor,KNN)是一種基于實例的分類模型,其基本思想是:將訓練集中的每個樣本特征化為一個向量,對于測試樣本,先通過向量計算分析得出訓練向量的夾角余弦值,再用訓練集中的樣本與該測試樣本逐一做相似度計算,通過分析計算兩個樣本的相似度后就可以確定該測試集中至少有k個相似的樣本,相似樣本數量最多的類別最終決定測試樣本的類別[53]。對于加權KNN 問句分類算法,一個明顯改進是對k個最相似的樣本的貢獻加權,根據其與問句之間的距離,將較大的權值賦給較近的,最后選取權值最大的類別作為測試樣本的類別。數學形式可表示為:
其中,qc為測試類別問句,n為總的問句個數,y(di,cj)為每個測試問句類別中所有屬性的取值函數,最近鄰的K個問句為di,若cj包含di類,取值即為1,反之為0。
將KNN 模型應用于問句分類的代表性研究主要有:Lee等在文獻[21]中以詞袋和詞塊(包括問句中所有連續(xù)的單詞序列)為主要特征,在UIUC10 英文問句集上進行分類,大類準確率為75.6%,小類準確率為68.6%;Sundblad 在文獻[54]中將詞袋作為分類特征在TREC10英文問句集做分類,大類分類精度為67.2%,小類分類精度為60.0%;Jia等在文獻[55]中利用知網(HowNet)義原樹的方法計算中文問句間的語義相似度,再通過計算得到的語義相似值作問句間的距離矢量,結合KNN 模型進行分類,在TREC2004基礎上改編的英文問句集上達到89.8%的分類精度。
最大熵(Maximum Entropy,ME)模型是較為成熟的統(tǒng)計模型,已經成功地應用于文本分類、詞性標注、組塊識別等多個NLP領域的任務上。其基本思想是:承認已知事物并對未知事物不做任何假設,即訓練數據中的部分已知條件被模型所掌握時,它所估計的概率分布應該盡可能地接近均勻分布,即具有最大的熵[56]。
對于問句樣本集合T={(x1,y1),(x2,y2),…,(xn,yn)},其中xi(0 <i<n+1)表示一個問句的詞、語義等特征信息,yi(0 <i<n+1)表示問句所對應的類別。在給定問句樣本和與之相對應的約束條件后,存在一個唯一的概率模型P(y|x),它的熵取值是最大的,數學形式可表示為:
其中,fi通常認為是一個函數模型中的特征函數,被取出的值一般為0或1。λi通常為一個特征模型中的特征參數,它代表fi對于模型的影響程度,x如果已經給定,Z(x)則表示為泛化常數。式(14)、式(15)中參數值λi的求解通常采用Darroch和Ratcliff這兩種估計方法,二者皆為通用迭代算法(Generalized Iterative Scaling,GIS)[57]。
將最大熵模型應用于問句分類的代表性研究主要有:Kocik 在文獻[43]中將統(tǒng)計學分析方法中較為常用的最大熵模型引入到問句分類任務中,對英文問句中的長度、焦點、命名實體、詞塊等特征進行抽取,大類準確率為89.8%,小類準確率為85.4%;Nguyen在文獻[23]中將頻繁子樹挖掘(ESPM)的方法應用于問句分類任務中,對英文問句中構建的子樹進行分解,分解后的子樹信息被提取作為分類的主要特征,再用最大熵模型在TREC 英文問句集上就50 種小的類別做分類,達到了83.6%的分類精度;Thint 等在文獻[22]中分別提出以句子的上位詞和中心詞作為特征,在UIUC英文問句集上分類,大類準確率為93.6%,小類準確率為89.0%;孫景廣等在文獻[58]中提出了以問句中的詞匯、句法結構、意向詞以及HowNet 中的首義原等作為特征,使用最大熵模型對中文問句進行分類,大類準確率為92.18%,小類準確率為83.86%;李茹等在文獻[59]中進行特征模型構建,將一系列基于漢語框架的語義原作為主要分類特征,并用這些語義原來表示每個問句的基本語義結構信息,最后用最大熵模型做分類,大類分類精度達到了91.38%,小類分類精度達到了83.20%。
上面對機器學習問句分類模型的基本思想和相關的代表性研究工作做了介紹和分析,表3就模型、機制、時間、精度、優(yōu)點、缺點等5個方面進行對比和分析。
做為機器學習技術研究新的發(fā)展熱點,深度學習技術主要是利用模仿人類大腦的機制對解決問題的可能性和各種方法進行了分析和學習[60]。近年來,在多個科學研究領域,深度學習的方法都已經能夠被成功地應用[61]。研究人員通過深度學習的方法可以更有效地分析和處理不同類型的任務,深度學習方法也極大地提高了問句分類的準確性[62]。
深度學習的基本原理可概述為:通過神經網絡的架構對數據進行低維到高維的映射操作,抽取特征并得到數據相應的特征表示。對于問句分類任務來說,可以通過借鑒深度學習的核心思想主動分析和學習隱含在問句中的句法和其語義的特征,較深層次分析了問句的語義特征結構并結合優(yōu)化算法,對問句分類任務中進行特征提取,再對其錯誤進行糾正從而能夠使問句分類更為準確。
卷積神經網絡(Convolutional Neural Networks,CNN)是一種典型的具有深度數據結構的前饋神經網絡,它是一種較為成熟的能夠分布式訓練的深度學習模型,原始數據通過卷積運算等操作得到較為抽象和更加高層次的表達,簡言之其本質就是卷積計算。Kim[34]在2014 年的EMNLP 上發(fā)表的論文提出了TextCNN 的方法,在多個數據集上取得了很好的效果。TextCNN旨在將CNN在圖像領域中所表現的不俗成績復制到自然語言處理的下游任務中[63],其在問句分類任務領域也得到了廣泛使用。
CNN 由輸入層、卷積層、池化層、全連接層以及Softmax層等5層構成。首先,問句輸入到輸入層,對這些問句進行分詞等操作,并通過word2vec 得到每個詞相應的詞向量,再利用多個濾波器來分析和捕捉每一個句子的語義信息,這些信息是局部性的,接著使用最大池化,保留捕捉到的最重要的特征的最大值,最后在全連接層將所有提取的特征全部連接在一起,并通過Softmax函數輸出問句所屬類別的概率[64]。卷積神經網絡的層級結構如圖2所示。
圖2 卷積神經網絡結構
其中,在卷積層中,若干個卷積核與詞向量矩陣進行卷積運算,卷積核的寬度往往與詞向量維度一致,高度可調節(jié)。卷積操作和詞向量序列方向一致,卷積層的一般形式可表示為:
表3 機器學習分類模型對比
其中,?表示卷積操作,yj為第j個特征經過的卷積層,g(?)表示Sigmoid、Tanh、Relu等常用的激活函數,xi表示i個輸入的數據,這i個數據屬于輸入的問句集合Q,kij為卷積層中第i個輸入特征的卷積核權值,它和第j個輸出特征的卷積核權值相對應,bj為偏置項。
將CNN 應用于問句分類的相關研究工作主要有:Kim 在文獻[34]中提出了卷積神經網絡文本分類模型,在TREC英文問句集上對大類進行分類,準確率最高達到了93.6%;Ma等在文獻[65]中提出了一種新型的組稀疏卷積神經網絡,通過將組稀疏自動編碼引入傳統(tǒng)的CNN模型中來自然地學習問句從而進行分類,在TREC英文問句集上的大類分類精度達到了94.2%;籍祥在文獻[66]中采用分段池化操作并將問句的結構等信息引入,在不同的分段池化層上提取問句中的主要特征并結合dropout,防止模型過擬合并提高其泛化能力,在TREC 英文問句集上進行分類,大類分類精度達到了89.2%;Yang等在文獻[67]中提出了雙通道卷積方法,一個通道傳入字級別的詞向量,另外一個通道傳入詞級別的詞向量,并對卷積核進行不同尺寸的設置,最終得到問句中更為深層次的抽象特征,在所采用的中文問句集上的分類效果較為理想。
長短期記憶網絡(Long Short-Term Memory,LSTM)[68]是對循環(huán)神經網絡(Recurrent Neural Network,RNN)進行改進的更加高級的神經網絡。傳統(tǒng)RNN在使用后向傳播算法進行訓練的時候可能會分別面臨梯度爆炸和梯度消失等問題,從而在較長的神經元和問句當中只能直接學習到距離當前較近的信息,遠距離的當前較近信息難以在問句中捕獲得到,而LSTM很好地彌補了這一模型的缺陷[69]。其基本的思想和特點就是:通過在每個神經元上面的信息中添加一個門(gate)的這種方式可以用來有效控制每個神經元中信息的讀取和寫入。由于每個神經元上的門信息打開時刻和速度可以不同,因此LSTM 既能更有效地在問句中捕獲到較遠距離的信息和依賴,也能捕獲到較近距離的信息和依賴,這種有效的方式還可以更有效地在問句中過濾和去掉較長的問句中一些不重要的信息,去噪的同時還能夠大幅度地提高問句的分類精度。LSTM 模型中有三種門控分別是:輸入門、遺忘門、輸出門,其結構如圖3所示[70]。
LSTM 中信息的存儲和更新由這些類似全連接層的門控來實現。門控的一般形式可表示為:
圖3 長短期記憶網絡結構
其中,式(18)為Sigmoid函數,是較為常用的非線性激活函數,它可以把一個實值映射在0~1 的區(qū)間內,進而表示出有哪些問句信息通過:當門的輸出值為0,表示沒有問句信息通過,當輸出值為1則表示所有問句信息都可以通過。
將LSTM應用于問句分類的相關研究主要有:Zhou等在文獻[71]中,用LSTM模型在TREC數據集上對英文問句進行分類,大類分類準確精度達到了93.2%;Yang等在文獻[72]中提出了基于深度長短期記憶網絡(DLSTM)的問句分類模型,它是非線性不連續(xù)的特征映射,在TREC英文問題集上進行分類,大類的分類精度達到了93.6%;Li 等在文獻[60]中用LSTM 模型學習到的詞序語義特征在融合了NLPCC2015QA評測問句集、哈工大問句集、復旦大學問句集的中文數據集上進行分類,大類和小類分類精度分別達到91.05%和80.7%;徐健等在文獻[41]中對中文和英文兩種語料進行翻譯得到擴充后的數據集,并用問句和翻譯后的文本來當作雙語語料中的樣本數據,將中文和英文的語料樣本分別用問題文本和翻譯文本來表示,最后通過雙通道LSTM模型用上述特征做分類,中文問句分類精度為86.9%,英文問句分類精度為76.0%。
注意力機制(Attention Mechanism,簡稱Attention)是由TREISMAN 和GELADE 在1980 年所提出的一種用于模擬人腦的注意力機制的模型[73],其基本原理可概述為:將Attention 看做是一種可組合函數,并計算出注意力的概率分布,進而突出某個關鍵輸入對輸出的影響,也就是一個查詢(Query)對一個鍵值對集合(set of Key-Value pairs)的映射[74]。在問句分類中使用Attention 來關注問句本身,進而從問句中捕捉有效信息,抓住語義等重點信息,它通常僅關注自身,而不使用其他額外信息。Attention的基本形式可表示為:
其中,Q表示輸入問句的詞向量所組成的矩陣,Q∈Rdn,d代表詞向量的維度,n是句子的長度,w是一個訓練的參數向量,wn是一個轉置,維度w,α,r與d,n,d分別對應,q是用于分類的問句最終的表示形式。模型結構如圖4所示[75]。
圖4 注意力機制結構
將Attention 應用于問句分類的相關研究主要有:Shaw等在文獻[76]中提出了一種注意力機制通用框架,對Attention進行建模,在計算每個特征時都用到Attention并結合一個或多個位置mask,將輸入向量放在前向和后向Attention中,并將前向Attention和后向Attention得到的結果進行拼接,使用多維度的Self-Attention進行輸出,用該模型在TREC 英文問句集上進行分類,大類準確率達到了94.2%;Shi 等在文獻[77]中引入Attention機制來提取問句特征,充分利用問句的答案信息來增強問句表示,更加有效地抽取問句中的有效信息并把握語義重點。實驗結果表明,引入注意力機制的問句分類方法相較于文中未引入的模型,在YahooAns問句集和CQA問句集上分別提高了4個百分點和7個百分點。
上面對深度學習問句分類模型的基本思想和相關的代表性研究工作做了介紹和分析,表4 就模型機制、時間效率、優(yōu)點、缺點等4個方面進行對比和分析。
對于問句分類而言,面臨的最大挑戰(zhàn)就是能夠有效提取并選擇各種問句特征,這對于分類結果的質量具有極大的影響[78]。雖然目前問答系統(tǒng)領域已經有大量對于問句分類的研究,但是大多數的方法都未能很好地處理語義問題,淺層的信息不能充分表達出問句中蘊含的豐富信息,怎樣就已有和補充后的信息來理解問句,進而找出問句中最有效的信息是問句分類任務函待解決的問題。鑒于此,如何有效降低數據噪聲并拓展、科學地分配權值、加入語法語義規(guī)則以及如何高效地獲取所需特征都是難點和挑戰(zhàn)所在。
問句分類領域涉及到的領域較廣,如語料庫的建立、數理統(tǒng)計、自然語言處理、機器學習和深度學習等,故仍有較多亟待解決的問題[79],未來研究方向可能如下:
(1)問句集的完善。相較于豐富的英文問句集,中文問句集數量仍有待提高,中文自身的復雜性以及質量和規(guī)模都是制約分類精度不如英文問句分類精度高的原因,如Gao 等[80]從論壇或是社區(qū)問答中提取問答對,因此,可以通過從一些開放的社區(qū)問答搜索或是論壇中,如360問答、百度知道、搜狗問答、豆瓣、貓撲論壇等搜集數據,從而擴充語料。
(2)分類模型的結合。當前對于問句分類的研究中用到的模型大多還比較單一,未來通過結合不同的網絡模型并優(yōu)化,從而更好地提取問句特征并特高分類精度將是主要趨勢。
(3)跨領域的應用。正如CNN 一開始是在數字圖像處理領域取得了巨大的成功,后來研究人員將CNN引入到文本處理領域,從而讓TextCNN在問句分類的發(fā)展上起到突出的貢獻。未來類似CNN、GCN[81]等不同領域成功應用的深度學習模型方法的借鑒和遷移將會是一種趨勢。
(4)統(tǒng)一的分類體系。當下缺乏一種統(tǒng)一的分類體系標準,許多研究中都是根據各自的應用領域來自行定義類別,這極大地阻礙了訓練數據的共享。故未來需要制定一個折衷的問句分類體系,從而促進該領域的研究和發(fā)展。
(5)預訓練模型。近幾年,BERT 等預訓練模型在NLP各項任務上取得了矚目成績,成為了新的研究熱點之一[82]。但是,研究人員對于當下這些熱門的預訓練模型的相關理論和經驗性質仍然知之甚少。因此,今后對于預訓練模型在問答系統(tǒng)研究領域和問句分類任務中進一步的應用和基礎理論的研究和發(fā)展將成為未來的一大趨勢。
問句分類是問答系統(tǒng)的首要環(huán)節(jié),對于后續(xù)的答案抽取等工作起到至關重要的作用,問句分類準確性也直接影響到問答系統(tǒng)的性能。本文從問句分類研究背景和現狀、問句分類體系、數據集、問句特征抽取、問句的分類模型、模型的優(yōu)缺點以及相關問題的研究幾個主要方面進行闡述,綜述了近年來國內外對于問句分類研究的發(fā)展情況和進展,并分析了問句分類當前存在的難點以及今后的研究和發(fā)展方向,期望能對未來進一步的研究和發(fā)展奠定夯實基礎。
表4 機器學習分類模型對比