毛麾
(四川大學(xué)計算機學(xué)院,成都 610065)
隨著互聯(lián)網(wǎng)信息時代的到來,人們可以通過互聯(lián)網(wǎng)獲取海量的信息和知識,人們獲取信息和知識的方式也越來越豐富。但是,從互聯(lián)網(wǎng)中海量的數(shù)據(jù)中快速準(zhǔn)確地獲得用戶所需的知識仍然是一個困難的問題。在這樣的背景下,基于自然語言的問答系統(tǒng)開始發(fā)展起來。
問答系統(tǒng)(Question Answering System,QA)是信息檢索系統(tǒng)的一種高級型式,它能用準(zhǔn)確、簡潔的自然語言回答用戶用自然語言提出的問題。問答系統(tǒng)是目前人工智能和自然語言處理領(lǐng)域中一個倍受關(guān)注并具有廣泛發(fā)展前景的研究方向。為了解決信息檢索中的各種問題,本文提出了一種基于知識庫的問答系統(tǒng)的構(gòu)建方法,主要使用了命名實體識別、實體鏈接等技術(shù)來通過知識庫獲取問題的答案。
早期的研究主要基于規(guī)模較小的專用知識庫進(jìn)行,使用的方法以語義解析為主。但這種方法往往需要大量人工標(biāo)注的數(shù)據(jù)來訓(xùn)練模型,代價較大。目前主流的研究方法主要分為基于語義分析的方法和基于信息檢索的方法兩大類。語義解析(Semantic Parsing)[1-2]的方法側(cè)重于將自然語言形式的問句轉(zhuǎn)換為邏輯表達(dá)式,如lambda表達(dá)式和依存組合語義樹,然后從知識庫中尋找答案。信息抽?。↖nformation Extraction)[3-4]的方法主要通過在知識庫中查詢該實體,可以得到以該實體節(jié)點為中心的知識庫子圖,子圖中的每一個節(jié)點或邊都可以作為候選答案,通過觀察問題依據(jù)某些規(guī)則或模板進(jìn)行信息抽取,得到問題特征向量,建立分類器通過輸入問題特征向量對候選答案進(jìn)行篩選,從而得出最終答案。隨著深度學(xué)習(xí)在自然語言處理領(lǐng)域的發(fā)展,基于分布式詞表示(Distributed Embedding)的方法[5-8]開始成為主流,該方法首先利用命名實體識別技術(shù)找出問題中的實體詞,然后利用實體鏈接(Entity Linking)技術(shù)找到實體詞在知識庫中對應(yīng)的實體,通過在知識庫中檢索實體的屬性,可以得到問題的候選答案,最后通過計算問題和答案的相似性來為候選答案排序來得到最符合問題的答案。
從問題本身的語言形式的角度來說,研究界最普遍關(guān)注的依然還是單關(guān)系(Single Relation)的事實型問題(Factoid Questions)。雖然單關(guān)系的事實型問題目前被研究的最為廣泛,但由于問答系統(tǒng)本身具有的開放性,使得這仍然是一個十分具有挑戰(zhàn)性的難題。
命名實體識別(Named Entity Recognition,NER)是自然語言處理的一項基本任務(wù)(Natural Language Process,NLP),主要目的是找出文本中的一些實體并識別出它們的類型,例如文本中的人名、地名和機構(gòu)名。
傳統(tǒng)基于統(tǒng)計學(xué)習(xí)的NER方法[9]嚴(yán)重依賴特征工程和專家知識,如條件隨機場(Conditional Random Field,CRF)。基于深度學(xué)習(xí)的NER[10-11]、特征工程和專家知識不再是必不可少的,NER的識別率也得到了顯著提高。Cicero Nogueira dos Santos[12]等人提出了利用來CharWNN來進(jìn)一步提高NER的準(zhǔn)確率,該方法在傳統(tǒng)的詞嵌入(Word Embedding)的基礎(chǔ)上利用字嵌入(Character-level Embedding)來增強詞向量的表達(dá)能力。Jason P.C.Chiu和Eric Nichols[13]使用了雙向LSTM(Bidirectional LSTM,BiLSTM),較單向 LSTM 在 NER中取得了更好的效果。Guillaume Lample[14]使用了LSTM-CRF的結(jié)構(gòu),通過利用CRF作為網(wǎng)絡(luò)的最后一層,很好地改善了網(wǎng)絡(luò)輸出的結(jié)果??偟膩碚f,命名實體識別現(xiàn)階段的方法還是以在BiLSTM-CRF模型的基礎(chǔ)上改進(jìn)為主。
本節(jié)主要介紹基于知識庫的問答系統(tǒng)的整體框架和流程。如圖1所示,對于一個問題Q(例如:紅樓夢作者是誰?),系統(tǒng)首先通過命名實體識別技術(shù)可以檢測出問題中的實體詞“紅樓夢”,然后以“紅樓夢”作為關(guān)鍵詞在知識庫中查找,可以得到“紅樓夢”對應(yīng)的實體(紅樓夢〈書〉、紅樓夢〈電視劇〉等)。通過實體鏈接找到確定問題Q中實體詞“紅樓夢”表示的實體是“紅樓夢〈書〉”。確定問題Q中“紅樓夢”對應(yīng)的實體之后,利用知識庫查找出實體相關(guān)的信息(如圖中作者、主要任務(wù)、別名)生成候選答案。最后通過計算問題Q與候選答案的語義相似性來對答案排序,選擇相似度最高的答案作為問題Q的最終答案。
(1)實體識別
本文實體識別主要使用了字特征和詞特征來改進(jìn)BiLSTM-CRF模型,結(jié)構(gòu)如圖2所示,模型輸入的是拼接后的詞向量和字向量,通過雙向LSTM處理過后輸入到CRF層,CRF層計算最后的標(biāo)注序列。
圖1 問答系統(tǒng)流程圖
(2)實體鏈接
實體鏈接的關(guān)鍵是將知識庫中的實體表示為一個可計算的向量,本文提出了Entity Embedding算法來解決這個問題。Entity Embedding算法的流程如圖3。
①利用主題模型對知識庫中實體的上下文信息進(jìn)行處理,得到對應(yīng)的主題詞。
②通過在查找表中進(jìn)行查找,將主題詞替換為對應(yīng)的嵌入式表達(dá),即詞向量。
③將所有的詞向量線性求和,得到Entity Embedding。
Entity Embedding算法最大的作用就是將知識庫中的一個實體表示為一個向量,為計算相似度和其他后續(xù)處理帶來了巨大的便利。在計算出實體的Entity Embedding后,可以用文本表示方法將問題也表示為一個同維度的向量,這樣就可以用計算相似度的方法來將實體詞連接到正確的實體。
圖3 Entity Embedding算法流程圖
為了測試系統(tǒng)在公開數(shù)據(jù)集的表現(xiàn),本文在NLPCC ICCPOL 2016 KBQA數(shù)據(jù)集上進(jìn)行了實驗。NLPCC數(shù)據(jù)集提供了一個包含14609個問題對的訓(xùn)練集和包含9870個問題對的測試集。為了證明本問答系統(tǒng)的有效性,我們將結(jié)果與文獻(xiàn)[15]進(jìn)行了對比,具體結(jié)果如表所示。
表1 NLPCC數(shù)據(jù)集實驗結(jié)果
從表1可以看出,基于知識庫構(gòu)建的問答系統(tǒng)在NLPCC數(shù)據(jù)集上也取得了優(yōu)異的效果,這充分說明了本文所提出的方法的可行性和有效性。
為了驗證命名實體識別的有效性,我們從人民日報語料中隨機選擇了80%的數(shù)據(jù)來訓(xùn)練模型,將另外20%的數(shù)據(jù)用來測試。實驗的評估指標(biāo)選擇的是準(zhǔn)確率(P)、召回率(R)和 F1值,我們主要對人名(PER)、地名(GEO)、機構(gòu)名(ORG)這三類實體進(jìn)行了評測,結(jié)果見表2。為了進(jìn)一步說明本文提出的命名實體識別模型的有效性,我們用相同的數(shù)據(jù)訓(xùn)練了一個BiLSTMCRF模型作為對比,BiLSTM-CRF模型的訓(xùn)練采用了與本文模型完全相同的方法。
表2 命名實體識別實驗結(jié)果
從表2數(shù)據(jù)可以看出,本文方法相比于BiLSTMCRF模型在準(zhǔn)確率、召回率和F1值這三個指標(biāo)上都取得了提升。
本文提出了一種基于知識庫的問答系統(tǒng)的構(gòu)建方法,并且通過實驗證明了其可行性和有效性。不同于一般的搜索系統(tǒng),問答系統(tǒng)希望從語義層面來分析用戶的需求,為了理解用戶的真實意圖需要使用自然語言的方法來對問題進(jìn)行處理。本文主要使用了命名實體識別來提取問題中的實體詞,然后將實體詞鏈接到知識庫中的實體,通過將問題和實體表示為向量,利用計算向量的距離表示語義相似度。本文的不足之處在于主要考慮的是單關(guān)系的事實型問題,沒有考慮更復(fù)雜的問題,在后續(xù)研究當(dāng)中將做進(jìn)一步探索。