李然 紀元 歐陽靜
(貴州電網(wǎng)信息中心 貴州省貴陽市 550000)
智能化問答系統(tǒng)是指通過自然語言處理、和知識提取等技術(shù)手段對人類語言的思維結(jié)構(gòu)進行理解和分析的一種信息檢索系統(tǒng)。大數(shù)據(jù)時代的出現(xiàn),大量的文本、語言、畫面等信息的表現(xiàn)形式和載體在互聯(lián)網(wǎng)上不斷產(chǎn)生,這些數(shù)據(jù)在方便人們獲取信息的同時,也帶來了數(shù)不勝數(shù)的無效信息,這些無效信息嚴重影響人們所需的關(guān)鍵信息。早期傳統(tǒng)的問答系統(tǒng)是基于信息檢索的方法,在給定的文本中尋找信息,即檢索有牽連的文本并從中選取出所需的問題答案。傳統(tǒng)的信息檢索方式是通過搜索引擎查詢和使用特定領(lǐng)域的信息管理系統(tǒng)來實現(xiàn)。但是,這種方式需要用戶準確輸入關(guān)鍵詞,缺乏對自然語言的語義作出解釋和分析,并且需要再耗時在相關(guān)網(wǎng)頁中查詢,使得用戶體驗不友好。隨著大規(guī)模知識庫的不斷發(fā)展,基于知識庫問答系統(tǒng)[1](Question Answering over Knowledge Base,KBQA)的相關(guān)研究應(yīng)運而生?;趩柎鹣到y(tǒng)內(nèi)部知識庫存儲方式,當前國內(nèi)外問答系統(tǒng)可大致分成基于知識圖譜的問答系統(tǒng)、基于表格的問答系統(tǒng)、基于文本語料的問答系統(tǒng)、基于社區(qū)的問答系統(tǒng)4類。
知識圖譜(KnowledgeGraph)的概念是谷歌在2012年5月所提出,其目的是為了使得搜索的質(zhì)量得到質(zhì)的飛躍,提高用戶體驗。2012年以前,搜索引擎搜索方法本質(zhì)上是由基于字符串的關(guān)鍵字匹配的方法實現(xiàn)。知識圖模型理解客觀事物之間的信息主要是通過記錄實體和實體之間的相得益彰的狀態(tài)。基于知識圖譜的搜索方法可更準確、更廣泛、更具連續(xù)性的找出用戶所需知識信息。作為一種新型的數(shù)據(jù)表示方式,知識圖譜的基本單位可以分兩大類;第一種是“實體-關(guān)系-實體”三元組,第二種是“實體-屬性-屬性值”三元組。它能很好的組織和管理互聯(lián)網(wǎng)信息,是一個高質(zhì)量的語料庫,已被廣泛應(yīng)用于個性化的信息服務(wù)和決策支持等領(lǐng)域。
基于知識圖譜問答系統(tǒng)實現(xiàn)方式內(nèi)部實現(xiàn)方法的不同,可以把知識圖譜問答系統(tǒng)實現(xiàn)方式分為以下3類;基于提取方法的知識圖譜問答系統(tǒng)、基于語義解析的知識圖譜問答系統(tǒng)、基于向量空間建模的知識圖譜問答系統(tǒng)[2]。
圖1所展示的是一個典型的基于知識圖譜的信息檢索系統(tǒng)的流程。其中有兩個關(guān)鍵問題是的實現(xiàn)知識圖譜的問答系統(tǒng)的重中之重:
圖1:基于知識圖譜智能問答的流程
(1)問題的解析,其難點在于在不同的語境中看似相似的問題,必須通過上下文語境,才能明確用戶的最終目的;
(2)知識的牽連,其難點在于把捕捉到的問題同知識圖譜中的信息相牽連。
綜合比較信息提取方法、基于語義解析方法和基于向量空間建模方法這三種知識圖譜問答實現(xiàn)方式的優(yōu)劣之處,考慮智能問答過程的解釋性和推理性、運算過程的時間空間復雜性、知識圖譜內(nèi)部知識動態(tài)變化時系統(tǒng)的支持情況,本文將考慮基于信息提取的方法,將FLAT模型應(yīng)用于知識圖譜智能問答系統(tǒng)的實體識別部分。該方法可以有效解決智能問答實體識別部分中文實體邊界的問題。在基于字符的同時,引入詞匯信息,更有針對性的豐富了文本信息的高階特征,從而來提升開放域知識圖譜智能問答系統(tǒng)性能。
智能問答系統(tǒng)的誕生可以追溯到十九世紀六十年代,由Weizenbaum等人提出并研發(fā)。他們開發(fā)的eliza[3]主要用于幫助精神疾病患者康復,迄今為止已有50多年的研究史。最初的想法用于封閉領(lǐng)域?qū)<規(guī)?,不但須要海量的人工標注、過問,更須要花費大量時間,還存在可移植性不佳,等局限性。2015年以后隨著深度學習的飛速發(fā)展,基于深度學習的語義解析、信息提取、空間向量建模方法成為構(gòu)建知識圖譜問答系統(tǒng)的主流方法。
基于這種語義解析的方法其實是一種比較偏linguistic的邏輯分析方法,其主體理念就是將自然語言用形式化的邏輯和表述形式來闡述,同時對邏輯和表述形式的最低層部分開始,逐級向上進行分析,得到相對應(yīng)的邏輯表述形式,再運用類似 lambda 表達式進行語句查詢,最終在知識庫中匹配,由此可以找出正確的答案。Q Cai等人[4]提出了一種基于標準監(jiān)督訓練算法、模式匹配和模式學習的大型數(shù)據(jù)庫語法解析器開發(fā)技術(shù)。利用這些方面的技術(shù),他們?yōu)镕reebase開發(fā)了一個語義解析器,比純監(jiān)督學習算法提高0.42%。Yih等人[5]提出了一種新的基于知識庫的問答語義分析框架。并且定義了一個類似于知識庫子圖的查詢圖,可以直接映射為邏輯形式。語義解析被簡化為查詢圖的生成,形成一個分階段的搜索問題。
基于信息提取這一方法,將信息中的實體與知識庫一一匹配,從而獲取一個知識庫子圖,子圖以該實體節(jié)點為中心,備選答案就是分布在邊緣的任意節(jié)點或邊,通過子圖觀測問題,再對其問題進行信息的分析抽取,獲取觀測問題的基本特征矢量,通過問題分類器,將問題特征向量輸入模型獲得評價指標,排除錯誤選項,從而直接獲得了最終的候選答案。Yao等人[6]先提取問句實體在知識圖譜中的相關(guān)子圖,后將子圖內(nèi)各實體結(jié)點和各關(guān)系邊作為備選答案,再依據(jù)設(shè)定的規(guī)則和模板得到問題與備選答案的表征向量,將其送入邏輯回歸模型中進行排序選取備選答案中的最佳答案。Sun等人[7]提出了基于BERT的解析算法框架來實現(xiàn)復雜問題中語法的特殊結(jié)構(gòu)。把這種結(jié)構(gòu)與粗粒度形式相結(jié)合,從而提高下游細粒度語義解析的準確性。Zhang等人[8]提出了一種基于神經(jīng)注意力的模型,根據(jù)當前答案各方面的不同側(cè)重點,動態(tài)地表示問題。Zeng等人[9]提出了一種具有多示例學習的分段卷積神經(jīng)網(wǎng)絡(luò)(PCNNs)模型,其將距離監(jiān)督關(guān)系提取作為一個多實例問題來處理并且采用了卷積結(jié)構(gòu)和分段最大匯集來自動學習相關(guān)的特征。
基于空間向量建模的方法,把問題和備選答案進行分布式表達,并把數(shù)據(jù)進行訓練,同時以分布式表達的方法,將向量表達分數(shù)升序排列,其分數(shù)最高即為正確答案。完成模型訓練后,按分數(shù)從高到低,便可篩選出最佳答案。為了更好理解三個不同角度(即答案路徑、答案上下文和答案類型)的問題,Dong等人[10]引入多列卷積神經(jīng)網(wǎng)絡(luò)(MCCNNs)來理解三個不同角度(即答案路徑、答案上下文和答案類型)的問題,并學習它們的分布表示。同時共同學習知識庫中實體和關(guān)系的低維嵌入。使用問答對訓練模型對候選答案進行排序,并利用問題釋義以多任務(wù)學習的方式訓練列網(wǎng)絡(luò)。
隨著技術(shù)現(xiàn)代化和深度學習機器智能學習的不斷進步和快速發(fā)展,命名神經(jīng)實體特征識別的主要技術(shù)研究領(lǐng)域重心已經(jīng)轉(zhuǎn)向深層神經(jīng)網(wǎng)絡(luò)(deepneuralnetwork,dnn),該識別技術(shù)幾乎完全沒有必要像之前傳統(tǒng)的方法需要特征信息工程和其他領(lǐng)域特征性知識[11]。Ma和Hovy[12]結(jié)合雙向LSTM、CNN和CRF,引入了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來優(yōu)化輸出序列標記,大幅度提高了詞性標注的準確率。Liu等[13]提出了LM-LSTM-CRF基本模型,并將基于字符任務(wù)感知的神經(jīng)網(wǎng)絡(luò)語言基本模型同一個基于多任務(wù)的語言框架相結(jié)合,以方便用于通過提取一個新的字符用多層次的向?qū)Ш土炕杹磉M行表示。這些端到端學習模型都指的是已經(jīng)具備了從新的數(shù)據(jù)中自動進行學習基本特性,能夠很好地自動識別新的實體。
在英文實體識別任務(wù)中,其關(guān)鍵點是區(qū)分實體的類型,因為英文單詞相較于中文有更明顯的邊界信息。而中文分詞存在誤差,因此也注定了中文NER可以采用不同于英文NER的基于字符的方式。從實際體驗效果而言,這種基于字符的NER系統(tǒng)快速實際體驗效果更好。但基于字符的NER也存在一些缺陷,由于其取消使用詞匯信息,而詞匯邊界能給實體邊界帶來的好處是不言而喻的。我們可以借此來提高中文NER的性能。Zhang等[14]第一次提出基于詞匯增強方法的中文NER,構(gòu)造模型LatticeLSTM,該模型通過詞匯的第一個字符和最后一個字符確定lattice的位置,并成功將詞匯信息融合到LSTM中。Gui等[15]引入一種基于詞典的全局語義圖神經(jīng)網(wǎng)絡(luò)(LGN)其將每一個字符作為節(jié)點,匹配到的詞匯信息構(gòu)成邊。這樣就能利用圖結(jié)構(gòu)從而實現(xiàn)局部信息的聚和,并且還可以加入全局節(jié)點實現(xiàn)全局信息融入。從而解決rnn的模型容易受到詞義歧義的影響。Liu等[16]提出WC-LSTM,采取WordsEncodingStrategy,對以字符為結(jié)束的詞匯信息開展固定編碼表示,便可有效實現(xiàn)batch同時行化。Ma等[17]提出了一種在embedding層簡單利用詞匯的方法,該方法避免了設(shè)計復雜的序列建模體系結(jié)構(gòu),對于任何神經(jīng)網(wǎng)絡(luò)模型,只需對字符表示層進行微調(diào),就可以引入詞典信息。Li等[18]提出了FLAT,它將網(wǎng)格結(jié)構(gòu)轉(zhuǎn)化為一個由跨組成的平面結(jié)構(gòu)。每個跨度對應(yīng)于一個字符或潛在詞及其在原始格子中的位置,同時利用Transformer引入位置向量來保持位置信息。作為這幾年NER的主要技術(shù)研究領(lǐng)域重心,在NER系統(tǒng)中引入詞匯信息一直備受關(guān)注。
該系統(tǒng)主要由兩部分組成:命名實體識別和屬性映射。第一部分命名實體識別的重點是找到所給題目的實體稱謂;第二部分,屬性映射步驟的重點是找到所給題目的實體的關(guān)聯(lián)屬性。本文將詳細介紹命名實體識別步驟的模型。
實體識別步驟的重點在于找到所給題目的實體稱謂。該內(nèi)容的大體框架體系如圖2所示。首先結(jié)合知識圖譜中的實體構(gòu)建字符語詞匯的格子結(jié)構(gòu),然后將格子轉(zhuǎn)化為扁平結(jié)構(gòu),接著根據(jù)格子跨度的相對位置編碼,最后將編碼信息結(jié)合模型識別出正確的實體。
圖2:基于詞匯增強的智能問答實體識別模塊
2.1.1 格子轉(zhuǎn)換為扁平結(jié)構(gòu)
用詞典從字符中獲得一個格后,我們可以把它壓平成一個平面格。平面格子可以定義為一組跨度,而span對應(yīng)于一個token、一個head和一個tail,如圖1所示。標記是一個字符或單詞。頭部和尾部表示原始序列中令牌的第一個和最后一個字符的位置索引,它們表示令牌在格中的位置。對于這個字符來說,它的頭和尾是一樣的。有一個簡單的算法來恢復平面格子的原始結(jié)構(gòu)。我們可以先取頭部和尾部相同的符號來構(gòu)造字符序列。然后,我們使用其他帶頭部和尾部的標記(單詞)來構(gòu)建跳過路徑。
2.1.2 跨度的相對位置編碼
平面網(wǎng)格結(jié)構(gòu)由不同長度的跨度組成。為了對跨度之間的相互作用進行編碼,我們提出了跨度的相對位置編碼。對于晶格中的兩個跨度Ya和Yb,它們之間有三種關(guān)系:相交、包含和分離,這是由它們的頭和尾決定的a。我們不是直接編碼這三種關(guān)系,而是使用密集向量來建模它們的關(guān)系。它是通過頭部和尾部信息的連續(xù)變換來計算的。因此,我們認為它不僅可以表示兩個符號之間的關(guān)系,還可以表示更詳細的信息,如字與詞之間的距離。設(shè)h[a]和t[a]表示跨度Ya的頭部和尾部位置??梢杂盟姆N相對距離來表示Ya和Yb之間的關(guān)系。它們可以計算為:
其中h[a]和t[a]表示跨度Ya的head和tail信息,表示Ya的head和Yb的tail之間的距離,其余以此類推??缍鹊淖罱K相對位置編碼是四個距離的簡單非線性轉(zhuǎn)換:
其中Wm是一個可學習的參數(shù),表示連接運算符,而 pd 是按照 Vaswani 等人[19]的方法計算的:
其中Wq、Wk,M、和是可學的參數(shù)。然后我們用式中的a代替a。(1).下面的計算與vanillaTransformer相同。它由自我注意和前饋網(wǎng)絡(luò)(FFN)層組成。每個子層后面都有殘余連接和層歸一化。FFN是具有非線性變換的位置多層感知器。變壓器按H個關(guān)注頭分別對序列執(zhí)行自注意,然后將H個關(guān)注頭的結(jié)果連接起來。每人的計算結(jié)果為:
其中E是令牌嵌入查找表或最后一個Transformer層的輸出。是可學習的參數(shù),在FLAT之后,我們只將字符表示放入輸出層,然后是條件隨機場CRF。
3.1.1 實驗數(shù)據(jù)簡介
NLPCC 2018 Task7 KBQA任務(wù)提供了一個包含24479個一一對應(yīng)的問答數(shù)據(jù)對和所需的知識圖譜。該數(shù)據(jù)所提供的知識圖譜包含實體個數(shù)達6502738個、587875個相關(guān)屬性以及構(gòu)成的43063769個三元組集合(實體、屬性、屬性值/實體),是目前中文開放領(lǐng)域規(guī)模較大的知識圖譜。其文件內(nèi)容具體形式如表1所示。
表1:知識圖譜內(nèi)容
3.1.2 數(shù)據(jù)預(yù)處理
考慮到NLPCC2018-KBQA數(shù)據(jù)集并非命名實體識別任務(wù)領(lǐng)域數(shù)據(jù)集,且NLPCC2018-KBQA任務(wù)提供了24479個問答數(shù)據(jù)對nlpcc-iccpol-2016.kbqa.training-data,問答數(shù)據(jù)對并未明確標注實體所在位置,為獲得可供命名實體識別模型使用的、有實體序列標注的數(shù)據(jù)集,本文擴展遠程監(jiān)督的思想,基于NLPCC2018-KBQA所給三元組數(shù)據(jù)構(gòu)成的知識圖譜,遠程監(jiān)督標注NLPCC2018-KBQA問答對數(shù)據(jù)中問句的實體序列。具體流程如圖3所示。
圖3:基于遠程監(jiān)督的問答對問句實體標注算法流程圖
遠程監(jiān)督的問答對問句實體標注算法思想在于,對于知識圖譜三元組集合KGTripleSet中當存在Triple(e,r,s),使得e,r包含于任一問答對QA-Pair(Question,Answer)的Question中且s包含于Answer,則認為找到問答對問句內(nèi)涵實體e。在此基礎(chǔ)上,通過算法寬泛了匹配要求,對于知識圖譜三元組集合KGTripleSet中當存在Triple(e,r,s),使得e包含于任一問答QA-Pair(Question,Answer)的Question中,且s包含于Answer時,也認為問答句問句實體匹配成功。
對于NLPCC2018-KBQA任務(wù)提供的24479個問答數(shù)據(jù)對,及43063796個知識圖譜三元組集合,在執(zhí)行遠程監(jiān)督標注算法時,24479項問答對數(shù)據(jù)組成了長度為21201的映射字典AnswerDict。最終,基于遠程監(jiān)督的問答對問句實體標注算法共成功標注了15640項問答對。
將數(shù)據(jù)集分前80%作為訓練集,10%作為驗證集,剩余10%作為測試集其中訓練集、驗證集和測試集的數(shù)目分別為11536、2884和9542。保存在驗證集上效果比較好的模型在測試集上評估。
實驗在Ubuntu18.04系統(tǒng)中進行,其中CPU為英特爾i5-7500處理器4核,GPU為NVIDIATITANXP-12GB,內(nèi)存為16GB。本次模型訓練依靠GPU進行,源代碼選用Pytorch深度學習框架。為了驗證本文模型的先進性,分別將經(jīng)典模型CRF、BiLSTM-CRF、IDCNN-CRF、CNN-BiLSTM-CRF、BiLSTM-Attention-CRF、FLAT、BERT-LSTM-CRF以及BERT-FLAT在該數(shù)據(jù)集上進行模型訓練,數(shù)據(jù)結(jié)論如表2所示。
表2:BERT+FLAT在NLPCC 2018 Task7 KBQA 任務(wù)數(shù)據(jù)集上與經(jīng)典模型的對比
對比經(jīng)典模型以及目前中文命名實體識別表現(xiàn)較好的模型,如表2所示,本文提出的模型取得了較好的成績。如表2所示,相較于CRF模型,BERT-FLAT模型的F值提升了20.07個百分點,顯著優(yōu)于傳統(tǒng)機器學習方法。對比經(jīng)典的基于循環(huán)神經(jīng)網(wǎng)絡(luò)的模型如BiLSTM-CRF、CNN-BiLSTM-CRF、BiLSTM-Attention-CRF以 及BERT-LSTM-CRF,BERT-FLAT模型的平均F1值分別提高了6.37、4.63、3.97、0.88個百分點;對比模型IDCNN-CRF和FLAT分別提高了6.62、1.82個百分點。相比于以上模型在該數(shù)據(jù)上的表現(xiàn),本文所使用的模型在數(shù)據(jù)上的的成績顯著提升。
本文針對在構(gòu)建基于知識圖譜的智能問答系統(tǒng)中實體識別模塊這一關(guān)鍵技術(shù)點提出了解決方法。傳統(tǒng)的實體識別算法主要單純基于字信息或詞信息。基于字的方法很少考慮詞,但詞又包含了大量的信息。大部分情況下詞匯邊界對于實體邊界有著不可替代的作用?;贜LPCC2018-KBQA的知識語料,提出并應(yīng)用了基于遠程監(jiān)督的問答對問句實體標注算法、使用基于詞匯增強的實體識別算法,其根據(jù)FLAT算法搭建智能問答系統(tǒng)中的實體識別模塊,在NLPCC2018-KBQA任務(wù)數(shù)據(jù)集上的數(shù)據(jù)結(jié)果已經(jīng)超過了目前已發(fā)表模型的最佳結(jié)果。