李東奇 李明鑫 張瀟
摘要:知識庫問答是當(dāng)今自然語言處理的熱門研究方向,它允許用戶輸入自然語言問句,問答系統(tǒng)分析問句、查詢知識庫并智能返回給用戶答案,無須用戶進(jìn)一步查詢搜索。開放域問答更加拓寬了用戶查詢的知識領(lǐng)域范圍。如何準(zhǔn)確處理用戶輸入的自然語言問句并在知識庫中進(jìn)行推理是知識庫問答的難題之一。文章主要研究并討論了知識庫問答的命名實(shí)體識別和關(guān)系抽取,這些任務(wù)主要應(yīng)用了深度學(xué)習(xí)技術(shù)。
關(guān)鍵詞: 知識庫問答;命名實(shí)體識別;關(guān)系抽取;深度學(xué)習(xí);自然語言處理
中圖分類號:TP311? ? ? ?文獻(xiàn)標(biāo)識碼: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ā)展,產(chǎn)生的信息量日益指數(shù)型增長,人們需要從這繁雜的信息中獲取有用的信息,從早先的分類目錄網(wǎng)站到現(xiàn)在的基于文本和超文本鏈接的搜索引擎,人們在不斷地尋找更有效的信息檢索方式。自動問答系統(tǒng)被視為下一代搜索引擎的發(fā)展方向之一,它不同于傳統(tǒng)的多局限于對提問信息的關(guān)鍵詞進(jìn)行檢索并只能返回答案列表的搜索引擎;問答系統(tǒng)能對提問信息的語義進(jìn)行理解,并返回更精確并符合語義的答案信息。根據(jù)信息來源、問答范圍、會話管理等不同的分類標(biāo)準(zhǔn)可對自動問答系統(tǒng)進(jìn)行不同的分類。以信息來源為標(biāo)準(zhǔn),可將問答系統(tǒng)分為利用特征提取技術(shù)如模式識別、文本統(tǒng)計(jì)等提供語義推理的檢索式問答系統(tǒng);以問答社區(qū)用戶互動為形式,在提供答案前對其進(jìn)行專家推薦、相似度檢索、質(zhì)量評估等處理的社區(qū)問答系統(tǒng);以結(jié)構(gòu)化的知識庫為核心,對提問文本進(jìn)行語義解析與理解后基于對知識庫中的知識進(jìn)行抽取而獲得答案的知識庫問答系統(tǒng)。本文將聚焦于知識庫問答技術(shù)[1]。
2? 知識庫問答技術(shù)現(xiàn)狀
知識庫又名知識圖譜,其本質(zhì)是一種存儲結(jié)構(gòu)化數(shù)據(jù)的語義網(wǎng)絡(luò)。通常知識庫使用結(jié)構(gòu)化的
針對知識庫問答系統(tǒng)的構(gòu)建,現(xiàn)行的主流方法有邏輯表達(dá)式、信息抽取、向量建模等方式?;谶壿嫳磉_(dá)式的方法對自然語言通過語義解析的方式轉(zhuǎn)化為可供機(jī)器理解的形式化邏輯表達(dá)式,如lamda、查詢語句等,傳統(tǒng)的此類方法需要大量的人工標(biāo)記的數(shù)據(jù)進(jìn)行模型訓(xùn)練,近年來的研究更傾向于訓(xùn)練語義理解器或構(gòu)建查詢圖的方式來簡化語義理解過程?;谛畔⑻崛〉姆椒ㄖ铝τ趶奶釂栃畔⒅刑崛?shí)體以其為中心獲得拓展知識子圖并經(jīng)過分析得到答案的信息抽取方法,其主要步驟分為命名實(shí)體識別、關(guān)系抽取、候選答案篩選等;基于向量建模的方法則先獲得粗略的候選答案,并在向量空間中使用經(jīng)過大量數(shù)據(jù)訓(xùn)練的模型對候選答案進(jìn)行打分并返回答案。
近年來隨著LSTM、注意力機(jī)制等深度學(xué)習(xí)方法的出現(xiàn)與應(yīng)用,結(jié)合了神經(jīng)網(wǎng)絡(luò)方法的知識庫自動問答系統(tǒng)在性能上展現(xiàn)出了令人驚艷的效果提升。這種方法大多將神經(jīng)網(wǎng)絡(luò)模型用于不同方法的子步驟上,以貪心思想在每一步驟獲得最優(yōu)解后以期獲得綜合后的最優(yōu)解,然而此種方法也會在一定程度上丟失不同環(huán)節(jié)之間的聯(lián)系。
基于知識庫的問答系統(tǒng)早期多在垂直域的專用數(shù)據(jù)庫上進(jìn)行應(yīng)用,近年來隨著以YAGO、DBpedia為代表的開放域知識庫的拓展和深度學(xué)習(xí)等方法的發(fā)展與應(yīng)用,基于開放域知識庫的問答系統(tǒng)研究取得了較大的進(jìn)展,而垂直域數(shù)據(jù)庫由于受限于其自身的特性,無法適配現(xiàn)有的表現(xiàn)較好的問答模型,近五年來鮮有進(jìn)展[2]。
本文討論了一種基于信息抽取的知識庫問答構(gòu)建方法,在命名實(shí)體識別、關(guān)系抽取、候選答案篩選等環(huán)節(jié)結(jié)合應(yīng)用不同的神經(jīng)網(wǎng)絡(luò)模型以期獲得組合后的最優(yōu)解。
3? 相關(guān)算法
如圖1所示,本文所述的知識問答框架包括3個(gè)任務(wù):命名實(shí)體識別、關(guān)系抽取和答案選擇。 命名實(shí)體處理和關(guān)系抽取算法模型依次處理用戶輸入的問句,將識別出的實(shí)體(人名、地名等)與關(guān)系對應(yīng)到知識庫的相應(yīng)三元組中,經(jīng)過答案選擇得到答案,返回給用戶。
本文使用的是NLPCC(Natural Language Processing and Chinese Computing,CCF國際自然語言處理與中文計(jì)算會議)開放的開放域中文知識庫及相關(guān)數(shù)據(jù)集[3],知識庫中存儲著一條條三元組,三元組為結(jié)構(gòu)化的<主體,謂詞,客體>,如<李明, 出生日期,1963.1>。該知識庫中存在一些噪音,如主體、謂詞中的空白字符和多余字符。
3.1 命名實(shí)體識別
命名實(shí)體識別是知識庫問答乃至自然語言處理技術(shù)中的關(guān)鍵技術(shù),在句子或詞組中一般有一個(gè)或多個(gè)“命名實(shí)體”,此處“命名實(shí)體”主要指人名、地名、機(jī)構(gòu)名和時(shí)間日期等。命名實(shí)體識別技術(shù)就是將句子中的若干名詞識別出來,有時(shí)還要指明識別出的名詞的類別,如上述的人名、地名等名詞類別。命名實(shí)體識別有若干種方法,本文重點(diǎn)講解基于統(tǒng)計(jì)學(xué)習(xí)的Bi-LSTM-CRF(Bidirectional Long Short-Term Memory-Conditional Random Field, 雙向長短記憶網(wǎng)絡(luò)-條件隨機(jī)場)模型。
命名實(shí)體識別本質(zhì)上是一種序列標(biāo)注的任務(wù),即將輸入的語言序列轉(zhuǎn)化為標(biāo)注序列。本文對于命名實(shí)體識別采用BIO標(biāo)注,命名實(shí)體的起始字標(biāo)注為“B”,實(shí)體中的非起始字標(biāo)注為“I”,不在實(shí)體中的字標(biāo)注為“O”。
Bi-LSTM-CRF模型首先接收輸入一個(gè)句子中的各個(gè)單詞(在中文中表現(xiàn)為一系列漢字),然后向CRF層中輸入Bi-LSTM層中輸出的預(yù)測分?jǐn)?shù),最終選擇得分最高的作為最佳標(biāo)簽。該模型的大致結(jié)構(gòu)如圖2所示:
輸入層:每個(gè)漢字映射為一個(gè)m維向量,即詞向量,如果一個(gè)句子的最長長度為n個(gè)漢字,那么將向模型輸入n*m的矩陣。其中詞向量可使用簡單的獨(dú)熱向量(one hot vector),也可使用經(jīng)過預(yù)訓(xùn)練的詞向量模型,如word2vec模型[4],以增加訓(xùn)練出的模型的準(zhǔn)確性。
Bi-LSTM層:LSTM的核心主要是以下結(jié)構(gòu):遺忘門、輸入門、輸出門以及記憶Cell輸入門與遺忘門兩者的共同作用就是舍棄無用的信息,把有用的信息傳入到下一時(shí)刻。對于整個(gè)結(jié)構(gòu)的輸出,主要是記憶Cell的輸出和輸出門的和輸出門的輸出相乘所得到的。其結(jié)構(gòu)用公式表達(dá)如下[5]:
其中,[σ]是激活函數(shù),[W]是權(quán)重矩陣,[b]是偏置向量,[zt]是待增加的內(nèi)容,[ct]是[t]時(shí)刻的更新狀態(tài),[it],[ft],[ot]分別是輸入門、遺忘門及輸出門的輸出結(jié)果,[ht]則是整個(gè)LSTM單元[t]時(shí)刻的輸出。
單向的LSTM層無法同時(shí)處理上下文信息,于是便有了Bi-LSTM神經(jīng)網(wǎng)絡(luò)。 其思想是通過前向LSTM和后向LSTM兩層來收集句子的前向和后向信息,每一個(gè)時(shí)間步都對應(yīng)著上下文信息。 在命名實(shí)體識別任務(wù)中,Bi-LSTM網(wǎng)絡(luò)輸出字符到各標(biāo)簽的打分。
CRF層:Bi-LSTM可處理長距離的上下文信息,垂直預(yù)測字符到標(biāo)簽的打分,但無法平行處理相鄰標(biāo)簽的關(guān)系。 CRF(condition random field, 條件隨機(jī)場)則彌補(bǔ)了這項(xiàng)缺點(diǎn)。 讓[X=(x1,x2,…,xn)]和[Y=(y1,y2,…,yn)]分別為輸入序列和輸出序列,根據(jù)Markov性質(zhì)[6],模型的表達(dá)式如下。
經(jīng)過Bi-LSTM-CRF模型,可以得到各字符的標(biāo)簽最大分?jǐn)?shù)序列,由此可標(biāo)注出句子中的人名、地名等命名實(shí)體。 需要注意的是,一個(gè)命名實(shí)體可能包含多個(gè)命名實(shí)體,我們可以簡單取其中單詞長度最長的實(shí)體,也可通過實(shí)體消歧進(jìn)行進(jìn)一步的處理,這里不再詳細(xì)討論。
處理得到的候選實(shí)體[e]不一定能夠準(zhǔn)確映射到知識庫中存在的實(shí)體,因?yàn)橐环N命名實(shí)體可能有多個(gè)別名,得到的候選實(shí)體可能只是知識庫中三元組主體的別名。根據(jù)NLPCC隨知識庫提供的別名文件“nlpcc-iccpol-2016.kbqa.kb.mention2id”,里面提供了知識庫所有實(shí)體的別名,據(jù)此建立別名字典[7],可以實(shí)現(xiàn)實(shí)體映射,得到對應(yīng)于知識庫三元組的實(shí)體[e]。
3.2 關(guān)系抽取
在關(guān)系抽取算法中,我們應(yīng)用BERT(Bidirectional Encoder Representations from Transformers)模型。BERT模型是一個(gè)雙向多層的Transformer[8]編碼器,它的輸入是一個(gè)字級別的單詞序列,該序列可為完整的一個(gè)句子或者一對句子(詞組),如果是一對句子(詞組),則它們被一個(gè)特殊的符號[SEP]隔開。 輸入的模型除了字向量,還可以是段向量和位置向量。 輸入序列的第一個(gè)單詞總是一個(gè)表示分類的符號[CLS],最終對應(yīng)這個(gè)特殊符號的隱藏狀態(tài)可被用作分類任務(wù)[9]。BERT模型是通過詞掩蓋預(yù)測和句子級別的連續(xù)性預(yù)測兩項(xiàng)無監(jiān)督學(xué)習(xí)任務(wù),在專用TPU上進(jìn)行預(yù)訓(xùn)練。 經(jīng)過微調(diào)(fine-tuning)后,預(yù)訓(xùn)練的BERT模型可被大范圍用在各種自然語言處理的任務(wù)中。
BERT模型使用多個(gè)雙向Transformer編碼器,每個(gè)單元主要由自注意力機(jī)制(Self-Attention)和前饋神經(jīng)網(wǎng)絡(luò)(Feed Forward)組成。Transformer使用了自注意力機(jī)制代替了傳統(tǒng)的CNN和RNN神經(jīng)網(wǎng)絡(luò)。關(guān)于BERT模型更多的討論請參考[10]。
根據(jù)命名實(shí)體識別,我們得到了問句中的(唯一)實(shí)體[e],根據(jù)實(shí)體查詢知識庫,可以得到一系列候選關(guān)系[R=(r1,r2,…,rm)],我們可以將關(guān)系抽取當(dāng)作分類任務(wù),當(dāng)問句匹配對應(yīng)的候選關(guān)系時(shí),標(biāo)簽為“1”,反之則為“0”,所以將問句[Q]和候選關(guān)系[ri]拼接為[[Q;ri]],并輸入到BERT算法模型,輸出二分類的概率分布[pi]:
3.3 答案選擇
根據(jù)上述方法找出的問句中的實(shí)體[e]和關(guān)系[r],查詢知識庫中對應(yīng)的三元組[
4? 結(jié)語
本文首先陳述了知識庫問答的模型框架,然后依次討論了其中命名實(shí)體識別、關(guān)系抽取等任務(wù)的算法。這些算法應(yīng)用了越來越多的深度學(xué)習(xí)技術(shù),在知識庫問答領(lǐng)域中有重要的地位。開放域的知識庫問答技術(shù)具有重要的研究價(jià)值和生產(chǎn)實(shí)際價(jià)值,它使用戶能快速獲取多領(lǐng)域的淺層知識,提高獲取信息的便捷度。在中文知識庫問答中,中文知識庫的構(gòu)建也是目前重要的研究發(fā)展方向和難題,相信未來研究人員能夠有更多的進(jìn)步與創(chuàng)新。
參考文獻(xiàn):
[1] 郭天翼,彭敏,伊穆蘭,等.自然語言處理領(lǐng)域中的自動問答研究進(jìn)展[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版),2019,65(5):417-426.
[2] 胡楠.基于開放領(lǐng)域知識庫的自動問答研究[D].武漢:華中科技大學(xué),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模型的中文實(shí)體識別[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2020,29(7):48-55.
[6] 李航.統(tǒng)計(jì)學(xué)習(xí)方法[M].北京:清華大學(xué)出版社,2012.
[7] 周博通,孫承杰,林磊,等.基于LSTM的大規(guī)模知識庫自動問答[J].北京大學(xué)學(xué)報(bào)(自然科學(xué)版),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)編輯:唐一東】