劉佳梅, 丁 楷
(中國(guó)航天科工集團(tuán)六院情報(bào)信息研究中心, 呼和浩特 010000)
問(wèn)句分類作為問(wèn)答系統(tǒng)中問(wèn)題分析和處理的首要環(huán)節(jié),是問(wèn)答系統(tǒng)尤為重要的一部分,其分類精度會(huì)直接影響到問(wèn)答系統(tǒng)的性能[1]。 近年來(lái),隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的快速發(fā)展,極大的豐富了問(wèn)句分類的相關(guān)研究。
問(wèn)句分類所要解決的主要問(wèn)題是將用戶所提的問(wèn)句劃分到預(yù)定義的類別,從而確定問(wèn)題的類型。問(wèn)句分類是將問(wèn)句與預(yù)定義的問(wèn)句類別進(jìn)行匹配的過(guò)程,如果問(wèn)句分類過(guò)程用G表示,預(yù)定義的問(wèn)句類型用{C1、C2、C3、Cn} 表示,則該過(guò)程就是將用戶所提問(wèn)句X與某個(gè)問(wèn)句類別Ci進(jìn)行對(duì)應(yīng),如公式(1)所示:
問(wèn)句分類的3 種方法為:基于規(guī)則、基于統(tǒng)計(jì)和基于神經(jīng)網(wǎng)絡(luò)的問(wèn)句分類方法。 基于規(guī)則的問(wèn)句分類方法,通過(guò)編寫分類規(guī)則,從而確定問(wèn)句類別[2]。這類方法往往能夠取得較高的準(zhǔn)確率,但編寫規(guī)則需要花費(fèi)大量的人力物力。 基于統(tǒng)計(jì)的問(wèn)句分類方法,是通過(guò)訓(xùn)練數(shù)據(jù)對(duì)模型進(jìn)行擬合,從而實(shí)現(xiàn)將問(wèn)句劃分到具體類別。 目前,關(guān)于統(tǒng)計(jì)的問(wèn)句分類方法有貝葉斯模型[3]、支持向量機(jī)[4]、最大熵模型[5]等。 基于神經(jīng)網(wǎng)絡(luò)的問(wèn)句分類方法則是通過(guò)搭建神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行訓(xùn)練。 如:Kalchbrenner 等人[6]采用DCNN 模型;Le 等人[7]采用卷積神經(jīng)網(wǎng)絡(luò);Zeng 等人[8]采用主題記憶網(wǎng)絡(luò);Ravi 等人[9]采用圖神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行問(wèn)句分類。 以上關(guān)于問(wèn)句分類的方法均采用單模型,模型的分類效果受訓(xùn)練數(shù)據(jù)及模型參數(shù)影響較大。
綜合上述分析,現(xiàn)提出基于Stacking 集成學(xué)習(xí)的中文問(wèn)句分類算法,通過(guò)集成多個(gè)分類器,實(shí)現(xiàn)中文問(wèn)句的分類。 該模型基于集成學(xué)習(xí)的思想,采用模型融合的方式訓(xùn)練分類器,以提高模型的泛化能力,并提升中文問(wèn)句分類的準(zhǔn)確性。
集成學(xué)習(xí)是指通過(guò)采用一定的策略,組合多個(gè)分類模型,形成一個(gè)性能更優(yōu)的集成分類模型。 通常稱被組合的多個(gè)分類模型為“基分類模型”,而最終生成的分類模型為“融合分類模型”。 目前,集成學(xué)習(xí)方法大致分為3 類[10]:Bagging、Boosting 和Stacking。 其中Stacking 相比于其它兩種方法更為靈活,使其具有更為廣泛的應(yīng)用。 在自然語(yǔ)言處理的分類任務(wù)中,使用單模型容易受到一些不可控因素影響,使得分類準(zhǔn)確率不高[11]。 因此,為了有效減少單個(gè)模型中隨機(jī)因素的影響、提高模型的預(yù)測(cè)精度和可信度,一些學(xué)者使用不同的集成學(xué)習(xí)模型來(lái)提高分類精度。
Stacking 集成學(xué)習(xí)的主要思想是:訓(xùn)練一個(gè)分類器來(lái)擬合所有預(yù)測(cè)器的預(yù)測(cè)結(jié)果,而不是使用一些簡(jiǎn)單的函數(shù)(比如硬投票)來(lái)聚合所有預(yù)測(cè)器的預(yù)測(cè)。 Stacking 使用交叉驗(yàn)證數(shù)據(jù)集來(lái)訓(xùn)練基分類模型,然后使用基分類模型在驗(yàn)證集上進(jìn)行預(yù)測(cè),將得到的預(yù)測(cè)結(jié)果作為新的訓(xùn)練數(shù)據(jù),最后在新的訓(xùn)練數(shù)據(jù)上訓(xùn)練融合模型。 該方法的作用能夠提高模型的泛化能力,所使用的基分類模型可以是相同或不同的任意模型。 1992 年Wolpert[12]最早提出Stacking 算法,多項(xiàng)研究表明,Stacking 能夠得到接近最優(yōu)的分類模型,但對(duì)于確定基分類模型的種類、數(shù)量、融合分類模型的選擇均依賴實(shí)踐。 謝文涌[13]在馬兜鈴酸及其類似物鑒別中,采用Stacking 集成學(xué)習(xí)分類模型比K 近鄰等單分類模型的平均鑒別正確率高出8.23%,并且在精確率、召回率和F1 值均表現(xiàn)最優(yōu);胡曉麗[14]以集成學(xué)習(xí)Stacking 融合模型,對(duì)電子商務(wù)平臺(tái)新用戶重復(fù)購(gòu)買行為進(jìn)行預(yù)測(cè),實(shí)驗(yàn)結(jié)果表明Stacking 融合模型比單一模型在準(zhǔn)確率和AUC值上都平均提升了0.4%~2%。 眾多研究均表明,使用Stacking 集成學(xué)習(xí)框架來(lái)融合多模型,往往會(huì)得到比單模型更好的效果。
本文選擇Stacking 集成學(xué)習(xí)框架來(lái)融合多模型進(jìn)行中文問(wèn)句分類,來(lái)彌補(bǔ)單分類器對(duì)問(wèn)句分類效果的影響。 對(duì)于Stacking 集成學(xué)習(xí)模型的選擇包括兩部分:基分類器和元分類器。
根據(jù)文獻(xiàn)[15]可知,決策樹在中文短文本分類上,能比同類算法取得更好的效果。 中文問(wèn)句屬于中文短文本范疇,因此基分類器采用以決策樹算法為基礎(chǔ)進(jìn)行優(yōu)化提升后的經(jīng)典機(jī)器學(xué)習(xí)算法。 其中包括LightGBM 算法、XGBoost 算法和Random Forest算法。 在基分類器的選擇上,LightGBM 是利用決策樹進(jìn)行迭代訓(xùn)練得到的強(qiáng)分類器,具有不易過(guò)擬合,分類效果好的特點(diǎn),被廣泛的應(yīng)用于多分類任務(wù)中;XGBoost 是利用boosting 方法將決策樹進(jìn)行集成,訓(xùn)練得到的強(qiáng)分類器;Random Forest 也是決策樹的集成算法,具有泛化能力強(qiáng)、不易過(guò)擬合的優(yōu)點(diǎn)。 元分類器采用回歸算法,選擇對(duì)于線性問(wèn)題有較好效果的Logistic Regression 算法。
綜上所述,將LightGBM、XGBoost 和Random Forest 作為Stacking 集成學(xué)習(xí)的基分類器,元分類器選擇使用最為廣泛的Logistic Regression。
(1)LightGBM 算法
LightGBM(Light Gradient Boosting Machine)是輕量級(jí)梯度提升機(jī),其原理是將損失函數(shù)的負(fù)梯度作為當(dāng)前決策樹的殘差近似值,擬合形成新的決策樹。 其優(yōu)點(diǎn)在于減少對(duì)于內(nèi)存的消耗,加快訓(xùn)練速度。 相比于決策樹,預(yù)測(cè)精度得到提升,使得該算法同時(shí)兼顧了訓(xùn)練速度和預(yù)測(cè)精度。
(2)XGBoost 算法
XGBoost(Xtreme Gradient Boosting)極限梯度提升算法,其實(shí)質(zhì)也是基于決策樹的算法。 算法的優(yōu)點(diǎn)是能夠?qū)斎霐?shù)據(jù)進(jìn)行并行處理,提高了處理速度,并且有多種機(jī)制去防止訓(xùn)練過(guò)程中的過(guò)擬合,其預(yù)測(cè)精度也得到大大提升。
(3)Random Forest 算法
Random Forest 算法是決策樹的集成,通過(guò)多棵決策樹對(duì)輸入數(shù)據(jù)的訓(xùn)練,從而進(jìn)行預(yù)測(cè)的一種算法。 Random Forest 算法通常采用Bagging 的方法進(jìn)行訓(xùn)練,該算法的優(yōu)點(diǎn)是在絕大多數(shù)的分類任務(wù)中,能夠取得較好的效果,在處理高維度數(shù)據(jù)時(shí),不容易產(chǎn)生過(guò)擬合現(xiàn)象,并且訓(xùn)練速度相對(duì)較快,能夠適應(yīng)大數(shù)據(jù)分析。
(4)Logistic Regression 算法
Logistic Regression 算法同線性回歸算法非常類似。 但線性回歸與Logistic Regression 解決的問(wèn)題類型存在差異。 線性回歸處理的是數(shù)值問(wèn)題,而Logistic Regression 處理的是分類問(wèn)題。 換個(gè)角度講,線性回歸輸出結(jié)果是連續(xù)的, 而 Logistic Regression 輸出結(jié)果是離散的。 例如,判斷某天的天氣是否會(huì)下雨,其結(jié)果只有是或否,所以Logistic Regression 是一種較為經(jīng)典的二分類算法。 為了滿足Logistic Regression 輸出的需要,對(duì)線性回歸的計(jì)算結(jié)果加上一個(gè)Sigmoid 函數(shù),就可以將數(shù)值結(jié)果轉(zhuǎn)化為輸出0~1 的概率,然后根據(jù)這個(gè)概率再做判斷。 由于Logistic Regression 擁有很強(qiáng)的泛化能力,在解決分類任務(wù)的基礎(chǔ)上,可以大大降低集成學(xué)習(xí)的過(guò)擬合風(fēng)險(xiǎn),因此將Logistic Regression 模型作為集成學(xué)習(xí)Stacking 預(yù)測(cè)模型的元分類器。
基于Stacking 的中文問(wèn)句分類模型如圖1 所示,將中文問(wèn)句的訓(xùn)練數(shù)據(jù)均等的劃分為3 份,形成訓(xùn)練集1,訓(xùn)練集2 及訓(xùn)練集3,將其對(duì)應(yīng)輸入到基分類器LightGBM 算法、XGBoost 算法和Random Forest 算法中,將每個(gè)基分類器預(yù)測(cè)的結(jié)果作為訓(xùn)練集,統(tǒng)一輸入到元分類器Logistic Regression 算法中進(jìn)行訓(xùn)練,并輸出中文問(wèn)句最終的分類結(jié)果。

圖1 基于Stacking 的中文問(wèn)句分類模型Fig. 1 Chinese question classification model based on Stacking
為驗(yàn)證采用集成學(xué)習(xí)Stacking 框架融合多模型對(duì)于中文問(wèn)句分類提升的效果,設(shè)置了中文問(wèn)句分類實(shí)驗(yàn)。 在實(shí)驗(yàn)數(shù)據(jù)相同的前提下,對(duì)比基于Stacking 融合模型與單模型在中文問(wèn)句分類上的效果。
3.1.1 實(shí)驗(yàn)數(shù)據(jù)
實(shí)驗(yàn)采用網(wǎng)絡(luò)公開的中文科技文獻(xiàn)問(wèn)句數(shù)據(jù)集,數(shù)據(jù)形式為“中文問(wèn)句+分類標(biāo)簽”,如圖2 所示。 其中,標(biāo)簽1 代表簡(jiǎn)單問(wèn)題,標(biāo)簽2 代表單跳問(wèn)題,標(biāo)簽3 代表單重限定問(wèn)題,標(biāo)簽4 代表多重限定問(wèn)題。 該數(shù)據(jù)集包含71 264 條數(shù)據(jù),各類別均包含17 816 條數(shù)據(jù)。 由于實(shí)驗(yàn)采用的都是機(jī)器學(xué)習(xí)模型,因此將數(shù)據(jù)集按8 ∶2 劃分,得到訓(xùn)練集56 992條數(shù)據(jù),測(cè)試集14 272 條數(shù)據(jù)。

圖2 基于句型的中文句數(shù)據(jù)集Fig. 2 Chinese question data set based on sentence pattern
3.1.2 實(shí)驗(yàn)設(shè)置
實(shí)驗(yàn)采用精確率(P),召回率(R)和F1 作為評(píng)價(jià)指標(biāo),對(duì)比單模型和基于Stacking 的集成學(xué)習(xí)模型在問(wèn)句分類實(shí)驗(yàn)上的效果。 在文本表示上,選擇TF-IDF 來(lái)提取特征,并使用交叉網(wǎng)絡(luò)驗(yàn)證調(diào)參,得到各分類模型的最佳參數(shù),見表1。

表1 模型最佳參數(shù)Tab. 1 Best parameters of the model
3.1.3 評(píng)價(jià)指標(biāo)
精確率(Precision,P) 用來(lái)評(píng)測(cè)模型的查準(zhǔn)率,正確預(yù)測(cè)為正例的樣本數(shù)占預(yù)測(cè)為正例的樣本數(shù)的比重。
召回率(Recall,R)用來(lái)評(píng)測(cè)模型的查全率,正確預(yù)測(cè)為正例的樣本數(shù)占正例樣本總數(shù)的比重。
F1 值(F1- measure,F(xiàn)1) 為綜合精確率和召回率的整體評(píng)價(jià)指標(biāo)。
將Stacking 融合模型與4 個(gè)基分類模型的實(shí)驗(yàn)效果進(jìn)行對(duì)比,其結(jié)果見表2。

表2 基于Stacking 的中文問(wèn)句分類實(shí)驗(yàn)結(jié)果Tab. 2 Experimental results of chinese question classification based on stacking%
由表2 數(shù)據(jù)可見,表現(xiàn)最差的為L(zhǎng)ogistic Regression 算法,其主要原因是中文問(wèn)句分類屬于非線性分類問(wèn)題,而Logistic Regression 屬于線性分類模型,因此兩者不匹配導(dǎo)致其效果不佳。 將其余3個(gè)單分類模型相互進(jìn)行對(duì)比發(fā)現(xiàn),Random Forest 的表現(xiàn)最差;XGBoost 的分類效果為單分類模型中最佳,其余3 個(gè)評(píng)價(jià)指標(biāo)值僅次于Stacking 融合模型,也是由于其本身為強(qiáng)分類模型。 基于Stacking 集成學(xué)習(xí)框架融合多模型取得了最優(yōu)的效果,在精確率、召回率、F1 值均優(yōu)于其它分類器。 其中,F(xiàn)1 值達(dá)到97.80%,也充分驗(yàn)證了本文所提基于Stacking 的中文問(wèn)句分類模型的有效性。
基于Stacking 集成學(xué)習(xí)的中文問(wèn)句分類方法,能夠有效提升中文問(wèn)句分類精度。 通過(guò)使用集成學(xué)習(xí) Stacking 框架, 融合 LightGBM、 XGBoost 和Random Forest 構(gòu)建多基分類器,并利用Logistic Regression 作為元分類器,以實(shí)現(xiàn)中文問(wèn)句分類。 該模型在精確率、召回率和整體F1 等指標(biāo)上均優(yōu)于其他模型,其中F1 值達(dá)到97.80%,能夠?qū)崿F(xiàn)較高的分類精度。 該模型的基分類器由3 個(gè)不同算法組成,在保持算法強(qiáng)學(xué)習(xí)能力的基礎(chǔ)上,同時(shí)具備一定的異質(zhì)性,使模型具備更好的泛化能力,支撐更多領(lǐng)域問(wèn)答系統(tǒng)實(shí)現(xiàn)更好的性能。