史夢飛,楊 燕,賀 樑,陳成才
1(華東師范大學 計算機科學與軟件工程學院,上海 200062)
2(上海智臻智能網絡科技股份有限公司,上海 201803)
社區(qū)問答系統(tǒng)(Community Question Answering,CQA)通過提供問題和答案的形式將需要獲取有效信息的用戶和熱心分享知識信息的用戶聯(lián)系起來,用戶既能提出新的問題,也能回答問題或者豐富已有的問答信息,這是一種高效便捷的信息獲取的方式.目前比較有名的CQA,像百度知道、360問答、Yahoo Answers等,都有著非常龐大的用戶基數(shù).CQA以其靈活獨特的用戶交互特性滿足了用戶獲取和分享知識信息的訴求,從而受到越來越多的關注.問句分類是其中的一個重要步驟,可以輔助系統(tǒng)理解用戶的詢問意圖.例如,對于問句“梅西效力于哪個俱樂部?”應該被分到“體育運動”這個類別.問句的類別信息可以極大的縮小答案搜索空間.除了在問答的過程中,問句分類在構建社區(qū)問答語料庫時也發(fā)揮著比較重要的作用.準確高效的對問句進行分類將極大提高社區(qū)問答語料庫的構建速度和質量.
在對問句分類之前,首先要確定問句有哪幾種類型,具體的類別將由問句分類體系決定.目前的問句分類體系還沒有完全統(tǒng)一的標準,在國際上比較權威的是UIUC問句分類體系[1],這是基于答案類型的層次分類體系.UIUC分類體系是針對英文分類的,哈工大在該分類體系基礎上根據(jù)漢語的固有特點定義了一套中文分類體系,主要包含 7 個大類(人物,地點,數(shù)字,時間,實體,描述,未知),每個大類下又細分了一些小類,總共60個小類[2].在一些具體的應用場景會有更有針對性的細致分類,比如說在社區(qū)問答系統(tǒng)“百度知道”中,問題就被分為“電腦網絡”,“體育運動”,“經濟金融”等多個類別.
問句分類屬于文本分類人任務中的一種,但與一般的文本分類有很大的不同,主要原因是問句都是由用戶隨機提出的自然語言問題,而不是傳統(tǒng)的規(guī)范性文本.該任務主要面臨兩大挑戰(zhàn).第一個挑戰(zhàn)是用戶提出的問句通常比較簡短,包含的詞匯量有限,存在信息量缺乏的問題[3,4].例如,對于問句“007 是什么?”應該被分到實體這個類別,但是如何判斷“007” 是代表的一個電影系列還是一串數(shù)字是一個難點.第二個挑戰(zhàn)是有些問句比較冗長,很難捕捉最關鍵有效的信息.例如對于問句“用西班牙內戰(zhàn)作為訓練的6500名德國空軍士兵的名字是什么?”,包含了一系列的實體名詞,給問句的正確分類造成干擾.所以,無論問句包含的信息是多是少,都存在各自分類的困難因素.因此,如何更好的利用已有信息或補充信息來理解問句,找出問句中最有效的信息是問句分類任務急需解決的重要問題.
針對以上的問題,本文提出了一種基于深度學習的分類方法,該方法融合雙向長短時記憶網絡(Bi-LSTM)和卷積神經網絡(CNN)并帶有注意力機制.
一方面,本文提出的方法引入了深度學習模型,并結合了Bi-LSTM和CNN兩種神經網絡結構,充分利用其各自的優(yōu)勢,通過學習分布式詞向量來表示每個詞的特征,在保留問句時序信息的同時捕捉最主要的信息特征.通過這樣的方式有效的緩解了傳統(tǒng)詞袋模型存在的數(shù)據(jù)稀疏性和語義敏感性問題.同時,緩解了傳統(tǒng)的基于CNN的分類方法只是對由連接詞向量組成的n-gram向量進行了簡單的線性計算,然而與連接一起的線性操作不能很好的對n-grams中的非連續(xù)性依賴和交互性進行建模的問題.例如,在一個問句中包含“not a total loss”這個短語,顯然,非連續(xù)性的依賴“not loss”在這句話中是非常關鍵的信息,但是通過簡單連接的線性操作很難精確的定位這些信息.在社區(qū)問答的問句分類任務中,由于問句的內容和類型都十分的多樣和廣泛,因此結合雙向長短時記憶網絡和卷積神經網絡更能精確捕捉問句特征,為準確分類提供重要信息.
另一方面,本文提出的方法考慮到在問句分類時結合問句已有的答案信息,較好的解決了簡短問句信息量少的難點.如表一所示,在沒有利用答案文本的情況下,僅利用問題文本學習到的詞向量作為特征表示,“007是什么?”很難判斷其屬于哪個類別.顯然這個問句實在太短,沒有包含特別明顯的可作為主題判斷的信息詞,最關鍵的詞“007”,機器更可能理解為單純的數(shù)字.然而加入了答案文本后,由于答案文本中出現(xiàn)“電影”這類詞,這樣問題特征所學得的詞向量中也就包含“電影”等信息.因此上述問題就可以被準確的識別為“實體類”問題.
具體來說,本文提出的基于深度學習的問句分類方法使用Bi-LSTM和CNN結合的方式來更好的加強問句特征的表示,很好的利用了Bi-LSTM能夠捕捉時序信息的特點及CNN捕捉局部特征的優(yōu)勢,并利用注意力機制,引入問句的答案內容來增強問句信息量.實驗表明,本文提出的問句分類方法有助于提升問句分類的準確度.
本文的其他部分組織如下:第1節(jié)介紹問題分類的一些相關研究工作;第2節(jié)描述本文提出的基于深度學習的問題分類方法;第3節(jié)介紹本文的數(shù)據(jù)集及實驗設置與結果;第4節(jié)簡述結論及未來工作展望.
目前,問題分類研究主要分為兩個大的方向.第一個大方向是基于特征統(tǒng)計的機器學習分類方法,也是目前用的相對較多的方法.第二種是基于深度學習的方法,主要用到各種神經網絡模型.
Hui等人[5]在進行問句分類時考慮到問題文本中詞序和詞間距的因素,提出了一種擴展類規(guī)則模型;Mishra等人[6]根據(jù)從問題文本中抽取的詞特征、語義特征和句法特征來訓練不同的分類器(樸素貝葉斯、最近鄰、支持向量機)進行問題的分類;Aikawa等人[7]根據(jù)用戶的主觀和客觀臆想,將問題分為主客觀兩類并利用平滑的樸素貝葉斯方法進行問題分類.Liu等人[8]在SVM的基礎上提出了一種依賴句法關系和詞性特征的核函數(shù)方法.楊思春等人[9]為了解決問句分類研究中特征提取開銷過大的問題,提出了一種包含基本特征和詞袋綁定特征的問句特征模型,以此來獲取更加有效的問句特征集.
目前,深度神經網絡在自然語言處理領域已經得到廣泛應用[10–12],在圖像處理、語音識別和文本分類等任務上都取得了不錯的效果.在文本分類領域中,Kim[13]提出的卷積神經網絡分類模型,該方法使用了由word2vec預先訓練好的一批詞向量,并適當調整了CNN的一些超參,在包含問句集在內的多個英文文本分類數(shù)據(jù)集上都取得了不錯的效果.Shi等人[14]提出了基于深度長短時記憶網絡的非線形不連續(xù)特征映射分類模型.
與上述研究內容有所區(qū)別的是,本文使用了Bi-LSTM和CNN結合的深度學習模型,并考慮到利用問句的答案信息來增強問句表示,以此提高問句分類的效果.
圖1為本文所提出的基于深度神經網絡的問句分類方法的架構圖.首先,所有的問句都將以詞向量來表示并輸入網絡;接下來將進入卷積層和記憶層,充分發(fā)揮CNN和Bi-LSTM各自的優(yōu)勢,保持問句信息并提取特征;隨后利用注意力機制來識別問句最主要的特征;最后經過分類器得出分類結果.
首先,對輸入層輸入的問句進行分詞,并通過Word2Vec得到問句中每個詞所對應的詞向量表示.這些詞向量表示保持了問句最原始的信息,對接下來的步驟影響重大.假設問句Q包含n個單詞Q={x1,x2,…,xn},xi代表問句中第i個詞.如果問句帶有答案信息,則加入答案詞向量.例如,對于問題Q“科比曾經效力哪只球隊?”,對應答案 A“洛杉磯湖人隊.”,則用 Q 和A一起表示該問題.如圖一所示,首先利用詞向量矩陣Ew來獲得詞向量.在這里d代表向量的維度,vw表示詞匯大小.通過如下公式所示操作,可以將一個詞xi轉變?yōu)樵~向量ei:
其中,vi是向量vw的大小.本文采用隨機初始化詞向量的方法,并在訓練的過程中不斷更新.經過這個步驟,問句將以詞向量embeddingsq={e1,e2,…,en}的形式進入下一層網絡.
圖1 基于深度神經網絡的問句分類方法架構圖
在經過詞向量層后,一個包含n個詞的問句可以表示成如下形式:
這里符號 ⊕是兩個相鄰詞之間的連接符.通常,向量hi:i+j表示一系列詞向量hi,hi+1,…,hi+j.每一次卷積操作都包含一個過濾器w∈Rmd,它可以通過一個包含m個詞的窗口來產生一個新的特征.例如,一個特征ci可以由窗口hi:i+m–1產生:
這里的b∈R是一個偏置項,f是一個類似雙曲正切的非線性函數(shù).問句最后可以被表示為:
長短時記憶網絡最初被用來解決梯度消失問題,隨后許多基于長短時記憶的變體網絡結構被提出.本文采用了由Graves[15]提出的一種變體結構,其能夠在相同的記憶模塊上增加窺視孔連接的權重.
特別地,基于長短時記憶的循環(huán)神經網絡有4個主要組成部分:一個帶有權重矩陣 Wxi,Whi,Wci,bi的輸入門it;一個帶有權重矩陣 Wxf,Whf,Wcf,bf的遺忘門ft;一個帶有權重矩陣 Wxo,Who,Wco,bo的輸出門ot;所有的這些門都將產生一定的影響,使用當前的輸入xi,狀態(tài)hi–1在前一步就已經生成,單元ci–1的當前的狀態(tài)決定是否使用這個輸入,遺忘之前存儲的記憶,最后輸出生成的狀態(tài).這些部分由以下這些公式來證明:
因此,當前單元狀態(tài)ct的生成是由通過計算之前單元狀態(tài)的權重和由這個單元所生成的當前信息決定.
對于很多句子級的處理任務,考慮上下文信息是十分有必要的.然而標準的LSTM網絡在對句子進行建模的時候只是考慮了時序信息而忽略了下文信息.Bi-LSTM網絡通過引入第二層網絡結構來擴展單向的LSTM網絡,而隱藏的連接在相反的時間順序流動.所以,Bi-LSTM可以利用前后文的信息,保證了在時間序列上過去和未來的信息都能考慮到.
本文提出的方法就使用了Bi-LSTM對問句進行建模.如圖一所示,這個網絡包含兩個子網絡分別對問句進行前后建模.輸出的第i個詞如下面的式子所示:
向前向后的輸出最后是一個融合的結果.
為了更好的捕捉問句中的有效信息,抓住語義重點,本文在分類方法中加入了注意力機制[16].H表示由上層Bi-LSTM網絡輸出向量所組成的矩陣,n表示句子的長度.問句的表示r就由這些向量的加權和構成,如下公式所示:
其中,H∈Rdn,d代表詞向量的維度,w是一個訓練的參數(shù)向量,wn是一個轉置.維度w,α,r與d,n,d分別對應.所以最后用于分類的問句表示如下:
在這一層網絡結構中,我們使用一個softmax分類器從一組離散的類別Y來預測問句Q的標簽y.分類器利用隱藏狀態(tài)c*作為輸入:
損失函數(shù)如下:
其中,t∈Rm是one-hot表示,y∈Rm代表估計每個類別的概率(m是目標類別的數(shù)目),表示一個L2正則化參數(shù).
本文在詞向量層、Bi-LSTM層和倒數(shù)第二層引入dropout.使用L2范式來約束權重向量,通過重新調節(jié)w,使得 ||w||=s,每當梯度下降的時候||w||>s,如公式(18)所示.
本實驗主要使用了3個數(shù)據(jù)集,包括:TREC、YahooAns、CQA dataset.其中 TREC 和 YahooAns是公共英文問句數(shù)據(jù)集,但前者不包含答案集,后者包含答案集.CQA dataset是從兩大中文社區(qū)問答社區(qū):百度知道和360問答中抓取的問句構成.關于3個數(shù)據(jù)集的一些簡要數(shù)據(jù)統(tǒng)計如表1所示,對于每個數(shù)據(jù)集的詳細介紹如下:
(1)TREC:TREC問句集包含一系列事實類問句,遵循廣泛應用的UIUC英文問句分類體系,問句分為6 個大類(ABBR,DESC,ENTY,HUM,LOC,NUM)[1],50個小類,每個大類會包含不同的小類.選擇這個數(shù)據(jù)集是因為該數(shù)據(jù)集比較經典,適用廣泛,能較好的證明方法的性能.
(2)YahooAns:YahooAns 數(shù)據(jù)集是從雅虎問答社區(qū)上搜集下來的一批問句集并帶有答案信息,并且通過人工審核校驗.該數(shù)據(jù)集主要包含如下4個類別:“information”、“advice”、“opinion”和“polling”.
(3)CQA dataset:CQA dataset是從百度知道和360問答中抓取的問句組成的數(shù)據(jù)集并帶有答案信息.所有選取的問句被分為3類,分別為:電腦網絡、體育運動、地區(qū).
3.2.1 參數(shù)設置
在所有的3個數(shù)據(jù)集上,算法模型所使用的參數(shù)都是一樣的.為了能夠與Kim[13]之前的工作進行對比,所以采用了其實驗中的一些基本參數(shù)設置.窗口值的大小為 3,droupout rate 設置為 0.5,l2constraint(s)設置為3.在訓練的時候,我們采用小批量隨機梯度下降法,以減小訓練損失.本文把mini-batch size的大小設置為50.
現(xiàn)在許多研究實驗習慣利用由無監(jiān)督的神經語言模型預先訓練好的詞向量,因為這可以彌補大型監(jiān)督訓練集的一些缺陷,從而提高實驗效果[15,16].本文在數(shù)據(jù)集TREC和YahooAns上使用的詞向量是由Word2Vec預先訓練好的包含1000億詞匯量的谷歌新聞語料,在CQA dataset上使用的是由百度新聞上爬取的10億詞匯量新聞語料訓練的詞向量.
3.2.2 評價指標
實驗的評價指標為準確率(Accuracy,Acc),均方根誤差(Root Mean Squared Error,RMSE),具體計算公式如下所示:
其中,AccNum表示分類正確的測試集問句數(shù)目,TNum表示所有測試集的問句數(shù)目,RMSE是用來消除預測類別pi和真實類別gi之間的差異.
表2列出了在3個數(shù)據(jù)集上的分類準確度值和均方根誤差值.考慮到我們的方法是基于經典的CNN分類模型的改進,所以本文的對比標準就是Kim提出的CNN文本分類模型,并將該模型實驗結果作為基準值.
從實驗結果可以看出,總體上在數(shù)據(jù)集CQA dataset和YahooAns上的實驗結果沒有在數(shù)據(jù)集TREC上好,主要因為前兩個數(shù)據(jù)集的問句復雜度明顯要高于后者,尤其是 CQA dataset.
模型LSTM+CNNs在TREC數(shù)據(jù)集上準確度提升的效果不明顯,但在YahooAns和CQA dataset上的準確度有較大提升,分別提升了 2.5% 和 3.1%,同時,在3個數(shù)據(jù)集上的均方根誤差都有明顯降低,在3個數(shù)據(jù)集上分別降低 0.7%,1.2%,1.4%.實驗結果驗證了本文提出模型的有效性,融合LSTM和CNN能更有效的表示問句.
模型Att+LSTM+CNNs取得了預期效果,在每個數(shù)據(jù)集上都是取得最優(yōu)結果,這也說明考慮問句的答案信息是非常有必要的,同時顯示出注意力機制的有效性,其確實能夠更好的捕捉所要表示的文本特征.特別在 CQA dataset上,取得了 16.1% 的準確度提高,同時均方根誤差下降了3.6%.無論是在英文數(shù)據(jù)集還是中文數(shù)據(jù)集,本文提出的方法都取得了明顯的效果提升,不僅驗證了該方法的有效性,也從側面體現(xiàn)出該方法的泛化能力.
在實驗過程中,除了使用了上文所提的三個問句數(shù)據(jù)集,同時測試了兩個情感分類的短文本數(shù)據(jù)集,對比單一的模型,本文提出的融合雙向長短時記憶網絡和卷積神經網絡并包含注意力機制的模型也取得了一些準確率的提升.因此,本文提出的模型具有一定的通用性,在作適當修改后應該能應用到其他文本分類任務中去.另外,在實驗運行的過程中發(fā)現(xiàn),本文提出的融合模型雖然取得了精度上的提高,但同時會帶來一些運算復雜度的提升,會稍微增加些運算時間,但不會造成特別嚴重的性能下降.
表2 在各個數(shù)據(jù)集上的實驗結果對比
本文提出了一種基于深度學習的分類方法,該方法融合雙向長短時記憶網絡(Bi-LSTM)和卷積神經網絡(CNN)并帶有注意力機制.其特色在于:一方面利用Bi-LSTM和CNN結合的方式來同時獲取問句的時序特征和本質特征,以此來最大化提取待分類問句中的有效信息.另一方面,在模型中加入注意力機制,充分利用問句的答案信息來增強問句表示.實驗結果表明本文提出的問句分類方法與傳統(tǒng)的機器學習方法和單一的神經網絡結構相比具有更高的準確率,在多個數(shù)據(jù)集上都取得了不錯的效果.
在接下來的工作中,將考慮對待分問句進行更好的預處理操作,減少噪聲數(shù)據(jù).同時,嘗試優(yōu)化不同的神經網絡模型并進行有效的融合,看能否更好的對問句進行向量化表示,獲取問句中最有效的信息.