李東奇 李明鑫 張瀟
摘要:知識庫問答是當今自然語言處理的熱門研究方向,它允許用戶輸入自然語言問句,問答系統(tǒng)分析問句、查詢知識庫并智能返回給用戶答案,無須用戶進一步查詢搜索。開放域問答更加拓寬了用戶查詢的知識領域范圍。如何準確處理用戶輸入的自然語言問句并在知識庫中進行推理是知識庫問答的難題之一。文章主要研究并討論了知識庫問答的命名實體識別和關系抽取,這些任務主要應用了深度學習技術。
關鍵詞: 知識庫問答;命名實體識別;關系抽取;深度學習;自然語言處理
中圖分類號:TP311? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)36-0179-03
Abstract: Knowledge base question-answer is a popular research direction in natural language processing. It allows users to input natural language questions. Question answering system can analyze questions, query knowledge base and return answers to users intelligently without further query and search. Open domain question-answer widens the scope of user query knowledge. How to deal with the natural language questions input by users accurately and reasoning in the knowledge base is one of the difficult problems in the knowledge base question answering. The paper mainly studies and discusses named entity recognition and relation extraction of knowledge base question-answer. These tasks mainly apply deep learning technology.
Key words:knowledge base question answer; named entity recognition; relation extraction; deep learning; natural language processing
1? 研究背景
隨著信息社會的不斷發(fā)展,產生的信息量日益指數型增長,人們需要從這繁雜的信息中獲取有用的信息,從早先的分類目錄網站到現在的基于文本和超文本鏈接的搜索引擎,人們在不斷地尋找更有效的信息檢索方式。自動問答系統(tǒng)被視為下一代搜索引擎的發(fā)展方向之一,它不同于傳統(tǒng)的多局限于對提問信息的關鍵詞進行檢索并只能返回答案列表的搜索引擎;問答系統(tǒng)能對提問信息的語義進行理解,并返回更精確并符合語義的答案信息。根據信息來源、問答范圍、會話管理等不同的分類標準可對自動問答系統(tǒng)進行不同的分類。以信息來源為標準,可將問答系統(tǒng)分為利用特征提取技術如模式識別、文本統(tǒng)計等提供語義推理的檢索式問答系統(tǒng);以問答社區(qū)用戶互動為形式,在提供答案前對其進行專家推薦、相似度檢索、質量評估等處理的社區(qū)問答系統(tǒng);以結構化的知識庫為核心,對提問文本進行語義解析與理解后基于對知識庫中的知識進行抽取而獲得答案的知識庫問答系統(tǒng)。本文將聚焦于知識庫問答技術[1]。
2? 知識庫問答技術現狀
知識庫又名知識圖譜,其本質是一種存儲結構化數據的語義網絡。通常知識庫使用結構化的
針對知識庫問答系統(tǒng)的構建,現行的主流方法有邏輯表達式、信息抽取、向量建模等方式?;谶壿嫳磉_式的方法對自然語言通過語義解析的方式轉化為可供機器理解的形式化邏輯表達式,如lamda、查詢語句等,傳統(tǒng)的此類方法需要大量的人工標記的數據進行模型訓練,近年來的研究更傾向于訓練語義理解器或構建查詢圖的方式來簡化語義理解過程?;谛畔⑻崛〉姆椒ㄖ铝τ趶奶釂栃畔⒅刑崛嶓w以其為中心獲得拓展知識子圖并經過分析得到答案的信息抽取方法,其主要步驟分為命名實體識別、關系抽取、候選答案篩選等;基于向量建模的方法則先獲得粗略的候選答案,并在向量空間中使用經過大量數據訓練的模型對候選答案進行打分并返回答案。
近年來隨著LSTM、注意力機制等深度學習方法的出現與應用,結合了神經網絡方法的知識庫自動問答系統(tǒng)在性能上展現出了令人驚艷的效果提升。這種方法大多將神經網絡模型用于不同方法的子步驟上,以貪心思想在每一步驟獲得最優(yōu)解后以期獲得綜合后的最優(yōu)解,然而此種方法也會在一定程度上丟失不同環(huán)節(jié)之間的聯(lián)系。
基于知識庫的問答系統(tǒng)早期多在垂直域的專用數據庫上進行應用,近年來隨著以YAGO、DBpedia為代表的開放域知識庫的拓展和深度學習等方法的發(fā)展與應用,基于開放域知識庫的問答系統(tǒng)研究取得了較大的進展,而垂直域數據庫由于受限于其自身的特性,無法適配現有的表現較好的問答模型,近五年來鮮有進展[2]。
本文討論了一種基于信息抽取的知識庫問答構建方法,在命名實體識別、關系抽取、候選答案篩選等環(huán)節(jié)結合應用不同的神經網絡模型以期獲得組合后的最優(yōu)解。
3? 相關算法
如圖1所示,本文所述的知識問答框架包括3個任務:命名實體識別、關系抽取和答案選擇。 命名實體處理和關系抽取算法模型依次處理用戶輸入的問句,將識別出的實體(人名、地名等)與關系對應到知識庫的相應三元組中,經過答案選擇得到答案,返回給用戶。
本文使用的是NLPCC(Natural Language Processing and Chinese Computing,CCF國際自然語言處理與中文計算會議)開放的開放域中文知識庫及相關數據集[3],知識庫中存儲著一條條三元組,三元組為結構化的<主體,謂詞,客體>,如<李明, 出生日期,1963.1>。該知識庫中存在一些噪音,如主體、謂詞中的空白字符和多余字符。
3.1 命名實體識別
命名實體識別是知識庫問答乃至自然語言處理技術中的關鍵技術,在句子或詞組中一般有一個或多個“命名實體”,此處“命名實體”主要指人名、地名、機構名和時間日期等。命名實體識別技術就是將句子中的若干名詞識別出來,有時還要指明識別出的名詞的類別,如上述的人名、地名等名詞類別。命名實體識別有若干種方法,本文重點講解基于統(tǒng)計學習的Bi-LSTM-CRF(Bidirectional Long Short-Term Memory-Conditional Random Field, 雙向長短記憶網絡-條件隨機場)模型。
命名實體識別本質上是一種序列標注的任務,即將輸入的語言序列轉化為標注序列。本文對于命名實體識別采用BIO標注,命名實體的起始字標注為“B”,實體中的非起始字標注為“I”,不在實體中的字標注為“O”。
Bi-LSTM-CRF模型首先接收輸入一個句子中的各個單詞(在中文中表現為一系列漢字),然后向CRF層中輸入Bi-LSTM層中輸出的預測分數,最終選擇得分最高的作為最佳標簽。該模型的大致結構如圖2所示:
輸入層:每個漢字映射為一個m維向量,即詞向量,如果一個句子的最長長度為n個漢字,那么將向模型輸入n*m的矩陣。其中詞向量可使用簡單的獨熱向量(one hot vector),也可使用經過預訓練的詞向量模型,如word2vec模型[4],以增加訓練出的模型的準確性。
Bi-LSTM層:LSTM的核心主要是以下結構:遺忘門、輸入門、輸出門以及記憶Cell輸入門與遺忘門兩者的共同作用就是舍棄無用的信息,把有用的信息傳入到下一時刻。對于整個結構的輸出,主要是記憶Cell的輸出和輸出門的和輸出門的輸出相乘所得到的。其結構用公式表達如下[5]:
其中,[σ]是激活函數,[W]是權重矩陣,[b]是偏置向量,[zt]是待增加的內容,[ct]是[t]時刻的更新狀態(tài),[it],[ft],[ot]分別是輸入門、遺忘門及輸出門的輸出結果,[ht]則是整個LSTM單元[t]時刻的輸出。
單向的LSTM層無法同時處理上下文信息,于是便有了Bi-LSTM神經網絡。 其思想是通過前向LSTM和后向LSTM兩層來收集句子的前向和后向信息,每一個時間步都對應著上下文信息。 在命名實體識別任務中,Bi-LSTM網絡輸出字符到各標簽的打分。
CRF層:Bi-LSTM可處理長距離的上下文信息,垂直預測字符到標簽的打分,但無法平行處理相鄰標簽的關系。 CRF(condition random field, 條件隨機場)則彌補了這項缺點。 讓[X=(x1,x2,…,xn)]和[Y=(y1,y2,…,yn)]分別為輸入序列和輸出序列,根據Markov性質[6],模型的表達式如下。
經過Bi-LSTM-CRF模型,可以得到各字符的標簽最大分數序列,由此可標注出句子中的人名、地名等命名實體。 需要注意的是,一個命名實體可能包含多個命名實體,我們可以簡單取其中單詞長度最長的實體,也可通過實體消歧進行進一步的處理,這里不再詳細討論。
處理得到的候選實體[e]不一定能夠準確映射到知識庫中存在的實體,因為一種命名實體可能有多個別名,得到的候選實體可能只是知識庫中三元組主體的別名。根據NLPCC隨知識庫提供的別名文件“nlpcc-iccpol-2016.kbqa.kb.mention2id”,里面提供了知識庫所有實體的別名,據此建立別名字典[7],可以實現實體映射,得到對應于知識庫三元組的實體[e]。
3.2 關系抽取
在關系抽取算法中,我們應用BERT(Bidirectional Encoder Representations from Transformers)模型。BERT模型是一個雙向多層的Transformer[8]編碼器,它的輸入是一個字級別的單詞序列,該序列可為完整的一個句子或者一對句子(詞組),如果是一對句子(詞組),則它們被一個特殊的符號[SEP]隔開。 輸入的模型除了字向量,還可以是段向量和位置向量。 輸入序列的第一個單詞總是一個表示分類的符號[CLS],最終對應這個特殊符號的隱藏狀態(tài)可被用作分類任務[9]。BERT模型是通過詞掩蓋預測和句子級別的連續(xù)性預測兩項無監(jiān)督學習任務,在專用TPU上進行預訓練。 經過微調(fine-tuning)后,預訓練的BERT模型可被大范圍用在各種自然語言處理的任務中。
BERT模型使用多個雙向Transformer編碼器,每個單元主要由自注意力機制(Self-Attention)和前饋神經網絡(Feed Forward)組成。Transformer使用了自注意力機制代替了傳統(tǒng)的CNN和RNN神經網絡。關于BERT模型更多的討論請參考[10]。
根據命名實體識別,我們得到了問句中的(唯一)實體[e],根據實體查詢知識庫,可以得到一系列候選關系[R=(r1,r2,…,rm)],我們可以將關系抽取當作分類任務,當問句匹配對應的候選關系時,標簽為“1”,反之則為“0”,所以將問句[Q]和候選關系[ri]拼接為[[Q;ri]],并輸入到BERT算法模型,輸出二分類的概率分布[pi]:
3.3 答案選擇
根據上述方法找出的問句中的實體[e]和關系[r],查詢知識庫中對應的三元組[
4? 結語
本文首先陳述了知識庫問答的模型框架,然后依次討論了其中命名實體識別、關系抽取等任務的算法。這些算法應用了越來越多的深度學習技術,在知識庫問答領域中有重要的地位。開放域的知識庫問答技術具有重要的研究價值和生產實際價值,它使用戶能快速獲取多領域的淺層知識,提高獲取信息的便捷度。在中文知識庫問答中,中文知識庫的構建也是目前重要的研究發(fā)展方向和難題,相信未來研究人員能夠有更多的進步與創(chuàng)新。
參考文獻:
[1] 郭天翼,彭敏,伊穆蘭,等.自然語言處理領域中的自動問答研究進展[J].武漢大學學報(理學版),2019,65(5):417-426.
[2] 胡楠.基于開放領域知識庫的自動問答研究[D].武漢:華中科技大學,2019.
[3] Nan Duan. Overview of the NLPCC-ICCPOL 2016 shared task: Open domain Chinese question answering[M]// Natural Language Understanding and Intelligent Applications. Springer International Publishing, 2016.
[4] Goldberg Y, Levy O. word2vec Explained: deriving Mikolov et al.'s negative-sampling word-embedding method[J]. arXiv preprint arXiv:1402.3722, 2014.
[5] 謝騰,楊俊安,劉輝.基于BERT-BiLSTM-CRF模型的中文實體識別[J].計算機系統(tǒng)應用,2020,29(7):48-55.
[6] 李航.統(tǒng)計學習方法[M].北京:清華大學出版社,2012.
[7] 周博通,孫承杰,林磊,等.基于LSTM的大規(guī)模知識庫自動問答[J].北京大學學報(自然科學版),2018,54(2):286-292.
[8] Vaswani A , Shazeer N , Parmar N , et al. Attention Is All You Need[J]. arXiv, 2017.
[9] Liu A , Huang Z , Lu H , et al. BB-KBQA: BERT-Based Knowledge Base Question Answering[C]// 2019.
[10] Devlin J , Chang M W , Lee K , et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.
【通聯(lián)編輯:唐一東】