陳柯錦,許光鑾,郭 智,梁 霄
(1.中國科學院大學電子電氣與通信工程學院,北京 100049; 2.中國科學院電子學研究所,北京 100190; 3.中國科學院空間信息處理與應用系統(tǒng)技術(shù)重點實驗室,北京 100190)
隨著互聯(lián)網(wǎng)技術(shù)與人工智能的發(fā)展,自然語言處理相關(guān)領(lǐng)域得到研究者們越來越多的重視。傳統(tǒng)的搜索引擎技術(shù)采用關(guān)鍵字匹配和淺層語義分析已經(jīng)無法解決大數(shù)據(jù)時代的諸多問題,用戶亟需一種快速準確的信息獲取方式。智能問答技術(shù)可對數(shù)據(jù)進行更有效的組織和管理,借助人工智能相關(guān)技術(shù)對問題和答案進行深度語義分析,向用戶提供更為精確的答案,已經(jīng)被預見為下一代搜索引擎的核心技術(shù)。問答系統(tǒng)主要分為基于Web檢索的問答系統(tǒng)、基于社區(qū)的問答系統(tǒng)以及基于知識圖譜的問答系統(tǒng)。這3種問答系統(tǒng)都包含問題分類、問題分析和答案選擇等模塊,其中問題分類是問答系統(tǒng)的第一步,其通過對用戶期望的答案類型對問題進行分類,對后續(xù)獲取更為準確的答案至關(guān)重要。
本文主要解決基于社區(qū)的問答系統(tǒng)中的問題分類問題,其分類的目的是對社區(qū)問題進行主題分類,有助于提高答案選擇模塊的排序準確率。傳統(tǒng)的問題分類方法,主要對問題進行表示學習,通過分類模型對問題分類,但是社區(qū)問答中大多數(shù)問題表現(xiàn)為短文本,其存在信息缺失的問題,傳統(tǒng)方法只借助于問題的語義特征很難判別問題類別。如表1所示,對于問題“蘋果現(xiàn)在多少錢”,由于“蘋果”的多重語義,傳統(tǒng)的方法對于此類問題很難準確判斷主題類別。除此之外,傳統(tǒng)分類方法通?;谠~袋模型或淺層語義分析,很難學習到更深層次的語義特征;此外,模型泛化能力也較差。
表1 問題分類示例
問題答案傳統(tǒng)方法本文方法蘋果現(xiàn)在多少錢現(xiàn)在普通配置的蘋果電腦大約13000元左右無法判別電腦
針對上述問題,本文通過學習問題和答案的聯(lián)合表示特征對問題進行分類,對于表1中的問題,如果引入答案“現(xiàn)在普通配置的蘋果電腦大約13000元左右”的信息,不難判斷該問題屬于電腦類別。除此之外,為了更好地捕捉問題和答案的語義信息,本文采用深度學習模型,提出一種卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合的混合網(wǎng)絡(luò)模型,并對模型引入注意力機制,大幅度提高問題分類的準確率。
問題分類受到了學術(shù)界和工業(yè)界的廣泛關(guān)注,相關(guān)研究工作主要分為2類:1)基于傳統(tǒng)的機器學習方法,其訓練速度較快,占用的計算資源較少;2)基于深度學習模型,采用深度學習模型生成問題的分布式表示,從而對問題分類。
對于第1類工作,傳統(tǒng)的方法主要為貝葉斯、最近鄰、決策樹和支持向量機[1]等方法。其中,Aikawa等人[2]利用問題的多元特征,采用平滑樸素貝葉斯算法對問題分類;Li等人[3]采用SNoW(The Sparse Network of Winnows)的方法對問題進行分類,取得了較好的效果,但該模型依賴于半監(jiān)督學習特征。在此之后,Zhang等人[4]采用基于樹核的SVM,將問題生成語法結(jié)構(gòu)樹的形式,采用樹核函數(shù)計算2個問題的距離,實驗結(jié)果表明,基于樹核的SVM方法優(yōu)于貝葉斯等其他4類機器學習分類方法。
由于傳統(tǒng)的機器學習方法很難學習到問題和答案深層次語義和語法特征,再者,該模型泛化能力較差,很難推廣到其他任務(wù)上。因此,研究者們嘗試將神經(jīng)網(wǎng)絡(luò)方法應用到問題分類任務(wù)上,并取得了不錯的效果。Kim等人[5]首次將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)[6]應用到文本分類,其采用一維CNN提取文本特征,通過全連接層輸出文本類別;在此之后,Ma等人[7]采用多層CNN學習不同尺度特征,并提出自編碼層學習卷積特征,最后通過Softmax層對問題分類。隨著長短期記憶單元(Long Short-Term Memory, LSTM)[8]和注意力機制[9]在自然語言處理諸多任務(wù)上廣泛應用,相關(guān)工作也相繼而出。Ding等人[10]采用多層雙向長短期記憶單元(Bidirectional LSTM, BiLSTM)[11],挖掘問題語義特征,并在TREC等多個數(shù)據(jù)集取得了較好的效果;Yang等人[12]采用層級注意力網(wǎng)絡(luò),其網(wǎng)絡(luò)分為詞級和句子級2層網(wǎng)絡(luò),每層網(wǎng)絡(luò)由雙向循環(huán)網(wǎng)絡(luò)組成,詞級網(wǎng)絡(luò)與句子級網(wǎng)絡(luò)之間引入注意力機制,最后輸出全局特征對問題分類。
第2類方法的主流模型為卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),本文利用2種網(wǎng)絡(luò)各自的優(yōu)勢,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)的混合模型。除此之外,本文學習問題和答案的聯(lián)合特征,引入注意力機制,增強問題特征的表示能力,從而提高分類準確率。
圖1 模型總體框架圖
圖1為本文模型框架,模型底層采用BiLSTM學習問題和答案的淺層語義特征,并將BiLSTM輸出的答案特征學習注意力權(quán)重,使得注意力權(quán)重自動增強或減弱問題特征,從而提升問題特征的表達能力,降低冗余特征的干擾能力。對于BiLSTM提取的特征,本文采用4層卷積網(wǎng)絡(luò)進一步挖掘語義特征,將問題和答案方向輸出的卷積特征聚合得到聯(lián)合特征,最后通過全連接層和Softmax層對問題分類。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)[13]具備一定記憶能力,其當前時刻的輸出由前面時刻的輸出決定,能夠有效解決序列化問題,但存在梯度消失和梯度爆炸問題。因此為了解決該問題,Hochreiter等人[14]提出長短記憶門單元。
本文采用Graves等人[15]提出的LSTM的改進模型,對于t時刻輸入序列xt={x1,x2,…,xn},其隱狀態(tài)向量ht在t時刻的更新公式如下:
it=σ(Wixt+Uist-1+bi)
(1)
ft=σ(Wfxt+Ufst-1+bf)
(2)
ot=σ(Woxt+Uost-1+bo)
(3)
(4)
ht=ot·tanh (Ct)
(5)
LSTM當前時刻的輸出只跟前面時刻的輸出有關(guān),無法利用后面時刻提供的語義信息,存在信息丟失的問題。本文實驗采用BiLSTM,利用問題和答案上下文信息,即對輸入從正反2個方向使用LSTM學習,最后將其聚合,其聚合方法如公式(6)所示。
(6)
最近幾年,注意力機制[9]被廣泛應用到計算機視覺、語音信號處理和自然語言處理諸多任務(wù)上。注意力模型借鑒人類視覺的選擇注意力機制,當人類觀察全局圖像時,對感興趣區(qū)域投入更多的注意力,獲取該區(qū)域更多的細節(jié)信息,抑制其他冗余信息。本文采用注意力機制,利用答案方向的BiLSTM輸出特征學習注意力權(quán)重,并將其對問題方向的BiLSTM輸出特征選擇,從而達到抑制冗余特征的效果。該模型更新公式如下:
ma,q(t)=tanh (Wamhq(t)+Wqmha(T))
(7)
Sa,q(t)∝exp(wmsTma,q(t))
(8)
(9)
其中hq(t)為問題方向BiLSTM的t時刻輸出,ha(T)為答案方向BiLSTM最終時刻輸出特征,Wam、Wqm和wms為注意力模型超參。
本文利用卷積網(wǎng)絡(luò)擅長捕捉局部特征信息的能力,將其作為本文模型第2層特征提取層,對問題和答案BiLSTM輸出的特征分別采用4層一維CNN提取特征,其卷積核的長度等于BiLSTM隱含層輸出維度,其特征提取示意圖如圖2所示。
圖2 不同窗口大小下卷積神經(jīng)網(wǎng)絡(luò)特征提取示意圖
圖2中左側(cè)是問題或答案BiLSTM層輸出的特征矩陣Xn×k,當使用卷積核Wh×k對矩陣Xn×k進行卷積操作可以得到n-h+1個特征,其具體公式如公式(10)所示。
ci=f(Wh×k·Xi:i+k-1+b)
(10)
其中Wh×k表示卷積網(wǎng)絡(luò)卷積核,h表示窗口大小,k為BiLSTM隱層輸出維度。Xi:i+k-1為矩陣Xn×k第i到i+k-1維向量構(gòu)成的矩陣。b為網(wǎng)絡(luò)偏置向量,f為激活函數(shù),本次實驗中采用tanh,ci為最終提取到的特征。對整個特征矩陣作卷積操作后,得到特征向量f={c1,c2,…,cn-h+1}。類似地,通過設(shè)定不同的卷積核大小和濾波器組數(shù),可以得到不同尺度下的特征向量。本文分別對問題和答案BiLSTM層輸出的特征矩陣采用4層一維卷積網(wǎng)絡(luò)分別學習,然后將學習到的特征通過拼接方式聚合成聯(lián)合特征,最后通過全連接層和Softmax層得到分類類別。
本次實驗數(shù)據(jù)集采用張棟等人[16]爬取的360問答數(shù)據(jù)集,并對其進行整理和清洗,最終得到10000條問答對。數(shù)據(jù)集主要分為5個主題類別,每個類別包含2000條問題和其對應的正確答案,本文實驗按照7∶2∶1的比例將7000條數(shù)據(jù)作為訓練集,2000條數(shù)據(jù)作為驗證集,1000條數(shù)據(jù)作為實驗測試集,其中訓練集、驗證集和測試集是從5個主題類別等比例抽取,防止出現(xiàn)樣本不均衡問題。實驗模型為5分類模型,通過模型的Softmax層輸出判別問題類別,實驗通過分類準確率評價分類效果。
本次實驗的實驗環(huán)境為Tesla K40、 Intel Core i7-6700k 4.0 GHZ、內(nèi)存32 GB的服務(wù)器。本文通過爬取維基百科語料,采用word2vec[17]訓練得到問題和答案的詞向量,其中詞嵌入維度為100維。本次實驗網(wǎng)絡(luò)學習采用隨機梯度下降法(Stochastic Gradient Descent, SGD),其初始學習率設(shè)置為0.1,網(wǎng)絡(luò)訓練的批大小設(shè)置為100,網(wǎng)絡(luò)迭代次數(shù)設(shè)置為100,采取早停止(Early-stop)[18]策略。
由于本文樣本問題和答案的長度大多處于10~40之間,采用較短的截取長度會造成信息丟失,而采用較長的截取長度會造成較長的訓練時間,經(jīng)過實驗驗證,本文問題和答案的截取長度設(shè)置為30,可以取得較好的實驗效果。除此之外,根據(jù)詞嵌入維度100, BiLSTM隱含層輸出維度為141維效果較好,其中dropout[19]設(shè)置為0.5。本文卷積層為4個單層CNN,其卷積核長度分別為1、2、3和5,通過設(shè)置不同長度的卷積核可以捕捉不同尺度的特征。濾波器組數(shù)設(shè)置為500,經(jīng)實驗驗證,增加濾波器組數(shù)并不能提高分類效果,容易造成模型欠擬合。全連接層神經(jīng)元個數(shù)設(shè)置為200, Softmax層輸出維度為分類總類別數(shù),本次實驗設(shè)置為5。
為了驗證本文方法在問題分類任務(wù)上的有效性,本次對比實驗設(shè)置如下:最大熵模型、最大熵模型+標簽傳播算法、CNN模型、LSTM模型、BiLSTM模型、CNN+BiLSTM模型和CNN+BiLSTM+attention模型。其中,最大熵模型通過詞袋模型對問題和答案表征,采用最大熵模型作為分類器。最大熵模型+標簽傳播算法則為半監(jiān)督學習算法,通過標簽傳播算法標注部分數(shù)據(jù)來提高模型泛化能力。本文實驗結(jié)果如表2所示,實驗結(jié)果表明,本文設(shè)計的神經(jīng)網(wǎng)絡(luò)方法大多數(shù)優(yōu)于監(jiān)督和半監(jiān)督的最大熵模型,分析其原因主要有2點:1)傳統(tǒng)的詞袋模型忽略了文本的語法和詞序特征,其表征能力有限,難以捕捉復雜的上下文語義,而深度學習的詞嵌入是基于大規(guī)模語料訓練的結(jié)果,有助于對問題和答案的語義理解;2)深度學習模型通過自動學習文本特征,使得模型具有更好的泛化能力。相比于單一網(wǎng)絡(luò),本文提出的混合神經(jīng)網(wǎng)絡(luò)模型利用CNN和BiSLTM這2種方法各自的優(yōu)勢可以提取更深的語義和語法特征,其分類準確率相比于單一網(wǎng)絡(luò)提升了1.6%~5.6%,取得了81.7%的準確率。除此之外,引入注意力機制可以降低冗余特征對實驗結(jié)果的干擾,增強問題和答案特征的表達能力,相比于不采取注意力機制的混合模型提升了0.5%。
表2 不同問題分類方法性能比較
模型準確率訓練時間/(s/epoch)最大熵0.672—最大熵+LP0.771—CNN0.76121LSTM0.78538BiLSTM0.80147CNN+BiLSTM0.81255CNN+BiLSTM+attention0.81758
基于問題和答案的聯(lián)合表示特征,本文提出了一種卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合的問題分類模型。該模型一方面通過增加答案的語義特征,提升了模型的魯棒性;另一方面,本文采用混合神經(jīng)網(wǎng)絡(luò)模型,利用卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)各自的優(yōu)勢,充分挖掘問題和答案的深層語義和語法特征,除此之外,該模型在BiLSTM輸出層引入注意力機制,自動選擇輸出特征,有效抑制冗余特征,提高了模型的泛化能力。本文在360問答數(shù)據(jù)集上進行了對比實驗,實驗結(jié)果表明,本文模型分類性能明顯優(yōu)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型。