魏澤林 張帥 王建超
摘? 要:知識圖譜是實現(xiàn)對話機(jī)器人的一類重要工具。如何通過一套完整流程來構(gòu)建基于知識圖譜的問答系統(tǒng)是比較復(fù)雜的。因此,本文從構(gòu)建基于知識圖譜的問答系統(tǒng)的全流程角度總結(jié)了多個主題:知識圖譜類型、知識圖譜構(gòu)建與存儲、應(yīng)用在知識圖譜對話中的語言模型、圖空間內(nèi)的語義匹配及生成。進(jìn)一步,本文在各主題的垂直領(lǐng)域歸納了常用方法及模型,并分析了各子模塊的目的和必要性。最后,本文通過總結(jié)出的必要模塊及流程,給出了一種基于知識圖譜的問答系統(tǒng)的基線模型快速構(gòu)建方法。該方法借助了各模塊的前沿算法且有效地保證了拓展性、準(zhǔn)確性和時效性。
關(guān)鍵詞:知識圖譜;問答系統(tǒng);對話機(jī)器人;語言模型;語義匹配
Abstract: Knowledge graph is an important tool for realizing chatbots. The lifecycle of constructing a question answering system based on knowledge graph is a complex task. This paper summarizes a number of topics from the perspective of building a knowledge graph-based question answering system. The topics include knowledge graph types, knowledge graph construction and storage, language models used in knowledge graph dialogue, semantic matching and generation in graph space. Furthermore, this paper summarizes commonly used methods and models in vertical areas of topics, and analyzes the purpose and necessity of sub-modules. A method for quickly constructing a baseline model of a knowledge graph based question answering system will be presented. The proposed method relies on the cutting-edge algorithms and effectively guarantees scalability, accuracy and timeliness.
Keywords: knowledge graph; question answering system; chatbot; language model; semantic matching
1? ?引言(Introduction)
知識問答系統(tǒng)在二十世紀(jì)五六十年代時就已經(jīng)出現(xiàn)。近年來對話系統(tǒng)不斷發(fā)展,對話功能不斷增多,對數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)也提出了更高的要求。在開放域問答對話中,由于涉及的數(shù)據(jù)量及不同領(lǐng)域間的特征差異較大,基于問答對匹配的檢索式問答系統(tǒng)并不是最好的解決方法。而知識圖譜的發(fā)展則正為這部分需求提供了解決方案。知識圖譜作為大規(guī)模信息的載體,是實現(xiàn)對話機(jī)器人中大規(guī)模推理及問答的一類重要方法。知識圖譜中的三元組數(shù)據(jù)能夠為問答系統(tǒng)提供大量的事實數(shù)據(jù)以及實體間的復(fù)雜關(guān)系,因此,基于知識圖譜的問答對話系統(tǒng)逐漸成為人們關(guān)注的重點(diǎn)。近年來,由于知識圖譜以及自然語言處理的快速發(fā)展,新型的知識圖譜、語言模型、圖嵌入、圖神經(jīng)網(wǎng)絡(luò)等大量技術(shù)被廣泛應(yīng)用于知識圖譜問答系統(tǒng)的構(gòu)建中,其中各類方法的目的、功能、效果不同。在整體過程中,如何構(gòu)建知識圖譜以及如何將知識圖譜中的海量信息準(zhǔn)確、高效地融入語言模型中是問答系統(tǒng)設(shè)計的要點(diǎn)。同時,知識圖譜圖結(jié)構(gòu)的數(shù)據(jù)形式使得基于知識圖譜的多跳問答、聯(lián)想式對話、多輪對話也成為研究的熱點(diǎn)。知識圖譜問答系統(tǒng)整體框架如圖1所示。
2? ?知識圖譜的類型(Knowledge graph type)
2.1? ?知識圖譜
知識圖譜是對事實的一種結(jié)構(gòu)化表示方法,由實體、關(guān)系和語義描述組成。知識圖譜的數(shù)據(jù)結(jié)構(gòu)以圖形式存在,由實體(節(jié)點(diǎn))和實體之間的關(guān)系(邊)組成。本質(zhì)上,它是一種表示實體間關(guān)系的語義網(wǎng)絡(luò),以諸如“實體-關(guān)系-實體”的三元組來表達(dá),可以作為事實解釋和推斷的知識庫。通常使用RDF(Resource Description Framework)模式來表達(dá)數(shù)據(jù)中的語義。
超圖的概念源于圖論,是圖結(jié)構(gòu)的一種補(bǔ)充和擴(kuò)展。傳統(tǒng)知識圖譜的一大缺點(diǎn)是其“二元一階謂詞邏輯”的本質(zhì)結(jié)構(gòu),較難處理超過兩個實體的復(fù)雜關(guān)系,例如:“瑪麗·居里和皮埃爾·居里共同獲得了1903年的諾貝爾物理學(xué)獎”中,“瑪麗·居里”和“皮埃爾·居里”作為兩個實體在知識圖譜里無法通過一個邊指向“諾貝爾物理學(xué)獎”實體,這種連接超過兩個實體的邊稱為超邊。為處理此類多元組復(fù)雜關(guān)系,傳統(tǒng)的知識圖譜需要人為設(shè)計大量的規(guī)則,使其滿足三元組的統(tǒng)一格式。由于此類復(fù)雜關(guān)系在客觀世界的語義系統(tǒng)中是普遍存在的,當(dāng)知識圖譜的數(shù)據(jù)規(guī)模較大時,難以保證人工規(guī)則的有效性和完備性。超圖的引入補(bǔ)充了這一空白,通過構(gòu)建超邊可以表示此類多對一或一對多的復(fù)雜關(guān)系。
2.2? ?事理圖譜
事理圖譜(Event Evolutionary Graph,EEG)中的事件用抽象、泛化、語義完備的謂詞短語來表示,其中含有事件觸發(fā)詞,以及其他必需的成分來保持該事件的語義完備性。事理圖譜也可以看作知識圖譜的一種形式,其邊的含義為事件間的關(guān)聯(lián)性。
2.3? ?認(rèn)知圖譜
認(rèn)知圖譜[1]在2019年被提出,可以將其理解為在構(gòu)建知識圖譜的過程中,保留較為原始的文本信息,能夠為后續(xù)的自然語言理解和推理提供實體間關(guān)系抽象化的認(rèn)知過程。由于知識圖譜的格式固定,即便使用超圖對知識圖譜進(jìn)行優(yōu)化,還是無法解釋客觀世界的多種關(guān)系,而保留更多文本信息的認(rèn)知圖譜能夠進(jìn)一步加大圖譜中存儲的信息量。然而,實體關(guān)系的抽象度與信息熵相互制約,認(rèn)知圖譜在構(gòu)建過程中對實體間關(guān)系的抽象程度較傳統(tǒng)知識圖譜低,所以在利用認(rèn)知圖譜構(gòu)建問答系統(tǒng)的過程中,需要語義模型承擔(dān)更大的理解與推理壓力。
2.4? ?開源知識圖譜
當(dāng)前的大規(guī)模開源知識圖譜通常是以百科知識數(shù)據(jù)為基礎(chǔ)進(jìn)行構(gòu)建的。在實際使用中,常見的英文開源知識圖譜包括Wikidata、Freebase、DBpedia及YAGO,它們包含大量的結(jié)構(gòu)化與半結(jié)構(gòu)化數(shù)據(jù),并且具有較高的領(lǐng)域覆蓋面。中文開源知識圖譜包括CN-DBpedia、思知知識圖譜等,其中CN-DBpedia是由復(fù)旦大學(xué)研發(fā)維護(hù)的大規(guī)模通用領(lǐng)域知識圖譜;思知是一個中文開放項目,其中的知識圖譜擁有超過1.4億條RDF數(shù)據(jù)。
3? 知識圖譜構(gòu)建與存儲(Knowledge graph construction and storage)
3.1? ?命名實體識別
命名實體識別(Named Entity Recognition,NER)是在文本中查找和分類命名實體的過程。命名實體的內(nèi)容較為廣泛,在一般領(lǐng)域中包括組織、人物名稱和位置名稱等,在各垂直領(lǐng)域如醫(yī)學(xué)領(lǐng)域中,包括基因、蛋白質(zhì)、藥物和疾病名稱等?;谝?guī)則的NER傳統(tǒng)方法包括:LaSIE-II、NetOwl、Facile、SAR、FASTUS和LTG。
機(jī)器學(xué)習(xí)方法一般分為非監(jiān)督學(xué)習(xí)方法與監(jiān)督學(xué)習(xí)方法,其中非監(jiān)督學(xué)習(xí)方法通常指基于文本相似度的聚類算法。
由于深度學(xué)習(xí)的快速發(fā)展,通過深度學(xué)習(xí)進(jìn)行NER的方法在一定程度上取代了傳統(tǒng)方法。其方法一般分為三個部分,如圖2所示。
(1)輸入的分布式表示,一般包括預(yù)訓(xùn)練的詞編碼、詞性標(biāo)簽等,可以分為針對詞組編碼、針對字符編碼以及混合編碼等方式,常用方法包括Word2vec、Glove。其中,Bi-LSTM-CNN[2]、BERT[3]模型是目前最常見、效果最好的方法。
(2)文本編碼,通常使用CNN、RNN、Transformer等。
(3)標(biāo)簽解碼,通常使用Softmax、CRF、RNN等。目前來看,在NER眾多方法中,BiLSTM+CRF[4]是使用深度學(xué)習(xí)的NER中最常見的架構(gòu)。
3.2? ?關(guān)系抽取
關(guān)系抽取(Relation Extraction,RE)的主要目的是從文本中識別實體并抽取實體之間的語義關(guān)系。
例如:愛因斯坦創(chuàng)立了相對論<愛因斯坦,創(chuàng)立,相對論>,從而將非結(jié)構(gòu)化文本抽取成可以理解的結(jié)構(gòu)化知識。早期實現(xiàn)這一過程的方法多為有監(jiān)督學(xué)習(xí),可以視為分類問題。為了降低標(biāo)注數(shù)據(jù)的成本,遠(yuǎn)程監(jiān)督(Distant Supervision)方法被提出,其主要基于以下假設(shè):如果在知識庫中兩個實體存在某種關(guān)系,則包含該兩個實體的非結(jié)構(gòu)化句子均能表示出這種關(guān)系。Riedel等人在原方法的基礎(chǔ)上增強(qiáng)了遠(yuǎn)程監(jiān)督的假設(shè)[5]。隨后斯坦福大學(xué)的團(tuán)隊通過引入多實例、多標(biāo)簽學(xué)習(xí)來緩解遠(yuǎn)程監(jiān)督的噪音問題[6]。
從2013年開始,神經(jīng)網(wǎng)絡(luò)模型開始應(yīng)用在關(guān)系抽取上。Zeng等人提出了基于卷積深度神經(jīng)網(wǎng)絡(luò)的關(guān)系分類模型[7]。之后的諸多研究都開始側(cè)重神經(jīng)網(wǎng)絡(luò)方法,BRCNN模型[8]使用了雙向遞歸卷積神經(jīng)網(wǎng)絡(luò)模型,是一個基于最短依賴路徑(SDP)的深度學(xué)習(xí)關(guān)系分類模型,模型分為兩個RCNN,一個前向(SDP為輸入),一個后向(反向的SDP為輸入)。Multi-Attention CNN[9]模型將Attention機(jī)制加入神經(jīng)網(wǎng)絡(luò)中,對反映實體關(guān)系更重要的詞語給予更大的權(quán)重,輔以改進(jìn)后的目標(biāo)函數(shù),從而提升關(guān)系提取的效果。BiLSTM+ATT模型[10]運(yùn)用雙向LSTM加Attention自動提取包含整個句子語義信息的關(guān)鍵詞匯或者字符。ResCNN-9[11]模型探索了更深的CNN模型對遠(yuǎn)程監(jiān)督模型的影響,并且設(shè)計了基于殘差網(wǎng)絡(luò)的深層CNN模型。實驗結(jié)果表明,較深的CNN模型比傳統(tǒng)方法中只使用一層卷積的簡單CNN模型具有較大的提升。文獻(xiàn)[12]的方法對少樣本的情況做出了一定的優(yōu)化。
常見的關(guān)系抽取方法如表1所示。
3.3? ?知識圖譜優(yōu)化
3.3.1? ?實體融合
實體融合還可以叫作實體消歧、實體對齊或?qū)嶓w鏈接,它的目的是將實體提到的內(nèi)容鏈接到知識圖中相應(yīng)的實體。比如,“北大是中國非常好的大學(xué)之一”,這句話中的實體“北大”應(yīng)該鏈接到圖結(jié)構(gòu)中的實體“北京大學(xué)”。圖嵌入方法是解決這一問題最普遍的方法。圖嵌入是指將圖數(shù)據(jù)映射為低維向量,從而將圖中的節(jié)點(diǎn)和邊轉(zhuǎn)化為可以計算的向量。通過對向量的相似度計算,可以計算出實體之間的相似度和邊之間的相似度,從而將相似度高的實體進(jìn)行融合。2013年提出的TransE模型是圖嵌入模型中較為適用于知識圖譜對話系統(tǒng)中的算法。之后陸續(xù)有研究者基于該方法提出了TransH、TransR和TransD等方法。近年來,應(yīng)用于跨語言的實體對齊圖嵌入算法,以及應(yīng)用于多個知識圖譜實體融合的算法[13]也被人們提出。
3.3.2? ?知識推理
知識推理是在已有的知識圖譜數(shù)據(jù)基礎(chǔ)上,進(jìn)一步挖掘拓展知識庫的過程。其常用方法一般分為基于邏輯的推理和基于圖算法的推理[14]。
3.4? ?知識圖譜的存儲
在知識圖譜的存儲方式上,圖結(jié)構(gòu)沒有了庫表字段的概念,而是以事實為單位進(jìn)行存儲,所以關(guān)系型數(shù)據(jù)庫在存儲知識圖譜上有著一定的弊端。通常知識圖譜用(實體1,關(guān)系,實體2)、(實體、屬性,屬性值)這樣的三元組來表達(dá)事實,可選擇圖數(shù)據(jù)庫作為存儲介質(zhì),例如開源Neo4j、Twitter的FlockDB、sones的GraphDB。其中Neo4j是由Java實現(xiàn)的開源NoSQL圖數(shù)據(jù)庫,是圖數(shù)據(jù)庫中較為流行的高性能數(shù)據(jù)庫。
4? ?基于自然語言的檢索方法(Semantic model based on retrieval method)
基于自然語言算法的目的是將與用戶對話時,用戶說出的句子進(jìn)行關(guān)鍵信息的提取,然后在知識圖譜數(shù)據(jù)庫中對問題進(jìn)行檢索。簡單來說,是使用自然語言處理的方法對知識圖譜中的信息進(jìn)行檢索。
4.1? ?文本語義匹配
文本語義匹配是通過文本之間的相似度進(jìn)行計算的,是傳統(tǒng)檢索式問答系統(tǒng)中最重要的匹配環(huán)節(jié),需要將問句與問題庫中的問題轉(zhuǎn)為向量來計算相似度。在知識圖譜問答系統(tǒng)中,同樣可以利用該方法檢索出我們需要的答案。
與傳統(tǒng)QA檢索相區(qū)別的是,在知識圖譜中檢索通常首先需要對問句進(jìn)行命名實體識別。該過程的一般方法與上文所提到的構(gòu)建知識圖譜中的方法是一致的,目的在于檢索出問句中所包含的主語,從而在知識圖譜中定位節(jié)點(diǎn)。其意義類似于大規(guī)模QA系統(tǒng)中的召回環(huán)節(jié),召回一般是指大規(guī)模QA中為了加速問題回答,在語義匹配前進(jìn)行粗檢索的過程。
在基于知識圖譜的問答系統(tǒng)中,在確定了知識圖譜節(jié)點(diǎn)后,將節(jié)點(diǎn)與相應(yīng)的邊組成問題組后,即可以將問題轉(zhuǎn)為QA系統(tǒng)中的檢索問題。使用語義匹配做問句與問題組的匹配,在開放領(lǐng)域知識圖譜中,這種基于語義匹配的問答檢索方式是較為適用的方法。文本語義匹配的常見方法如圖3所示。實現(xiàn)該過程的傳統(tǒng)方法包括詞編碼和加權(quán)方法兩個步驟,對于編碼方式來說,傳統(tǒng)One-hot編碼無法精準(zhǔn)地衡量文本中的語義相似度,很難解決同義詞等隱含在文中的信息特征。隨著Word2vec、Glove等模型的出現(xiàn),基于詞向量將單詞或短語轉(zhuǎn)化為特征向量后再進(jìn)行計算的方法逐漸受到重視,這類方法能夠捕捉詞語之間的相似度。詞編碼后再通過TF-IDF等方法可以得到句編碼。但這種基于詞編碼的方法通常忽略了詞語順序,還是存在一定的問題。于是直接對句子進(jìn)行句編碼的方式陸續(xù)被提出,如TextCNN、Doc2vec、Skip-Thought。其中基于LSTM的孿生網(wǎng)絡(luò)模型InferSent以及基于此加入Attention機(jī)制的Universal Sentence Encoder是效果非常好的句向量生成模型。近兩年來隨著自然語言處理中的熱點(diǎn)模型BERT被提出后,Reimers等人通過對模型使用孿生網(wǎng)絡(luò)提出了Sentence-BERT[15]模型,極大優(yōu)化了BERT模型處理語義匹配的速度。該方法成為近年來文本語義匹配任務(wù)中效果最為優(yōu)秀的模型之一。針對該模型的優(yōu)化方法也成為熱點(diǎn)的研究模塊。
這里我們注意到,由于預(yù)訓(xùn)練模型的流行,一些研究也在使用知識圖譜進(jìn)行預(yù)訓(xùn)練,而在知識圖譜對話中,直接使用數(shù)據(jù)庫的知識圖譜進(jìn)行預(yù)訓(xùn)練可以更好地適配基于知識圖譜的問答系統(tǒng)。K-BERT[16]模型較早地提出了將知識圖譜中的邊關(guān)系引入預(yù)訓(xùn)練模型,其主要通過修改Transformer中的Attention機(jī)制,通過特殊的mask方法將知識圖譜中的相關(guān)邊考慮到編碼過程中,進(jìn)而增強(qiáng)預(yù)訓(xùn)練模型的效果。
4.2? ?意圖識別
意圖識別一般指對語句中的意圖進(jìn)行分類,在知識圖譜問答系統(tǒng)中同樣是在命名實體識別后對邊進(jìn)行檢索的方法,它是通過文本分類來完成的。通常情況下,意圖識別方法在垂直領(lǐng)域知識圖譜構(gòu)建的對話系統(tǒng)中有較好的效果,原因在于垂直領(lǐng)域知識圖譜中邊的類型有限,通過文本分類可以將問題的意圖對應(yīng)到知識圖譜的邊,從而對問題進(jìn)行回答。例如在醫(yī)藥知識圖譜中,邊的類型為藥品的適用癥、藥品的用量等固定的幾種,這種情況下通過意圖識別模型可以了解到用戶希望問的是藥的用量還是藥品的適用癥。在具體問答系統(tǒng)構(gòu)建的過程中,在通過實體識別定位到問題的主體后,再使用意圖識別定位到邊,邊指向的節(jié)點(diǎn)就是問題的答案。在一些情況下意圖識別過程可以由文本語義匹配代替,也可以作為優(yōu)化方法優(yōu)化意圖識別結(jié)果。意圖識別現(xiàn)階段通常由神經(jīng)網(wǎng)絡(luò)模型完成,例如較為經(jīng)典的方法TextCNN使用CNN方法來進(jìn)行句子分類[17]。文獻(xiàn)[18]引入Attention機(jī)制對該方法進(jìn)行了改進(jìn)?,F(xiàn)階段效果較為優(yōu)秀的算法有FastText、BERT、ERNIE。
4.3? ?語義優(yōu)化方法
4.3.1? ?指代消解
指代消解在對話系統(tǒng)中是指當(dāng)用戶的問題中缺少實體或意圖時,通過對話的上下文,對問題缺失的部分進(jìn)行補(bǔ)充的過程,是構(gòu)建多輪對話中較為常見的方法。傳統(tǒng)方法通常使用分詞、詞性標(biāo)注、實體識別、意圖識別等對問句中缺失的實體、意圖或使用代詞替換的實體和意圖進(jìn)行識別,然后通過上下文信息中的內(nèi)容進(jìn)行指代消解,或通過多輪問答進(jìn)行補(bǔ)充。2017年Kenton等人提出的端到端的指代消解模型[19]很好地解決了指代消解這一問題,但該方法是針對長文本提出的方法,而在知識圖譜問答機(jī)制中,通常文本長度較短,所以需要通過存儲之前的對話進(jìn)行指代消解,或者對模糊部分再次詢問后應(yīng)用。
4.3.2? ?長難句壓縮
長難句壓縮可以理解為文本摘要或句子壓縮,目的是將句子中無意義的口水詞成分或語義倒裝等進(jìn)行信息提取,去除用戶句子中的噪聲。知識圖譜問答系統(tǒng)中,該模塊可以作為優(yōu)化輸入信息的方法被引入。主流方法有兩種,一種是抽取式,如TextRank;另一種用神經(jīng)網(wǎng)絡(luò)做生成式摘要,而后使用RNN、CNN單元處理,再引入Attention、Self-Attention等機(jī)制[20],使得生成摘要這一領(lǐng)域的效果提升得非常優(yōu)秀。
4.4? ?檢索優(yōu)化方法
當(dāng)知識圖譜中包含的實體以及邊的數(shù)量較大時,在實際檢索中優(yōu)化檢索速度是影響最終效果的重要環(huán)節(jié)。Elasticsearch、MatchPyramid、MatchZoo等框架都是能夠優(yōu)化文本匹配的方法,其中Elasticsearch是目前比較流行的全文檢索框架,它使用倒排索引算法,能夠極大地提高文本檢索效率。雖然Neo4j數(shù)據(jù)庫中自帶了全文檢索功能,但在實際使用中,Elasticsearch+Neo4j聯(lián)合的方式是更流行的方法,并可以在實際應(yīng)用中覆蓋大多數(shù)場景。在實際測試中,3,000 萬左右的實體數(shù)量能夠在200 ms內(nèi)實現(xiàn)全文檢索。
5? ?基于圖空間的檢索方法(Graph model based on retrieval method)
利用圖嵌入算法能夠?qū)⒄Z義圖譜、領(lǐng)域知識圖譜及常識知識圖譜中的實體和關(guān)系映射至不同的圖空間中,進(jìn)一步補(bǔ)充語義空間中難以表征的自然語言信息。在此基礎(chǔ)上,基于圖空間的檢索方法在一定程度上結(jié)合圖空間和語義空間的優(yōu)勢,通過圖模型分擔(dān)語義模型在自然語言處理上的壓力,充當(dāng)對話系統(tǒng)的知識庫,為模型提供海量的結(jié)構(gòu)化信息。除此之外,目前效果較好的BERT和GPT等預(yù)訓(xùn)練模型均為端到端設(shè)計,通過大量的模型結(jié)構(gòu)參數(shù)來隱式存儲客觀世界的結(jié)構(gòu)化知識信息,難以通過一種顯式方法將人類能夠理解的結(jié)構(gòu)化知識引入模型當(dāng)中,而知識圖譜為人類能夠理解的顯式結(jié)構(gòu)知識和黑盒模型的隱式訓(xùn)練過程提供了互通的橋梁。
5.1? ?圖嵌入方法
圖嵌入(Graph Embedding,也叫Network Embedding)是一種將圖數(shù)據(jù)(通常為高維稀疏稠密的矩陣)映射為低維稠密向量的過程,也就是將圖結(jié)構(gòu)轉(zhuǎn)化為可以計算的向量。對話系統(tǒng)中常用的Trans系列的圖嵌入方法總體是將三元組的頭實體-關(guān)系-尾實體(如:中國-首都-北京),轉(zhuǎn)換為向量(h-r-t),使得t=f(h,r)。
5.1.1? ?基于平移變換的圖嵌入方法
基于平移變換的圖嵌入方法如表2所示。
5.1.2? ?基于神經(jīng)網(wǎng)絡(luò)的圖嵌入方法
圖卷積神經(jīng)網(wǎng)絡(luò)是通過針對圖結(jié)構(gòu)特殊設(shè)計的卷積核來實現(xiàn)的,可以理解成通過Laplacian算子來實現(xiàn)圖中節(jié)點(diǎn)間的特征能量傳遞,進(jìn)而獲得節(jié)點(diǎn)的Embedding。
相比于傳統(tǒng)圖算法和基于隨機(jī)游走的圖嵌入方法,圖卷積神經(jīng)網(wǎng)絡(luò)能夠同時考慮圖結(jié)構(gòu)信息和節(jié)點(diǎn)特征信息。將節(jié)點(diǎn)特征信息設(shè)置為節(jié)點(diǎn)的語義信息時,圖卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)圖結(jié)構(gòu)信息與語義信息的有效結(jié)合。
基于神經(jīng)網(wǎng)絡(luò)的圖嵌入方法如表3所示。
5.2? ?語義空間與圖空間的映射
KEQA[29]是較早提出通過圖空間檢索來代替實體和關(guān)系檢索的框架,將實體與邊通過圖嵌入轉(zhuǎn)換為圖空間向量,再通過BiLSTM+Attention的網(wǎng)絡(luò)模型,將語義向量與頭實體和邊關(guān)系進(jìn)行映射,從而使語義檢索通過圖空間的計算來完成,達(dá)到了較好的效果,如圖4所示。
基于圖算法的檢索方法,目的是將整體模型全部或部分放在圖中計算,通過新型的知識感知對話生成模型(TransDG)進(jìn)行問句的句向量生成以及知識匹配。
5.3? ?自然語言生成
通常自然語言生成涵蓋了許多內(nèi)容,包括摘要生成、簡化、翻譯、更正等,在這一部分里我們的自然語言生成特指通過數(shù)據(jù)生成文本的過程。在基于知識圖譜的問答系統(tǒng)的實現(xiàn)中,自然語言生成作為流程的最后一環(huán),其本質(zhì)是將知識圖譜的子圖轉(zhuǎn)化為自然語言。
CCM[30]提出了一種基于圖注意力機(jī)制的常識域?qū)υ捝煞椒?,如圖5所示。在自然語言生成模塊,通過將語義空間的詞向量與基于圖注意力機(jī)制得到的知識表示向量進(jìn)行拼接,并作為Embedding輸入GRU構(gòu)造的解碼器中,以實現(xiàn)知識信息融入對話生成的目的。
6? 知識圖譜問答系統(tǒng)快速構(gòu)建實例(Implement of QA framework based on knowledge graph)
通過上面的介紹,我們提供了一套基于知識圖譜問答的實現(xiàn)方法,通過該流程能夠快速地構(gòu)建基于知識圖譜的問答系統(tǒng),通過整體框架的構(gòu)建我們完成了一個基于知識圖譜的問答系統(tǒng)。其流程如圖6所示:
(1)將思知知識圖譜存入Neo4j中,將實體字符串列表存入Elasticsearch搜索引擎。
(2)使用《人民日報》數(shù)據(jù)集訓(xùn)練BiLSTM+CRF命名實體識別模型。
(3)當(dāng)問句進(jìn)入系統(tǒng)后,識別出問句中的實體,并通過Elasticsearch搜索引擎確定若干實體。
(4)在Neo4j中查詢出實體以及對應(yīng)的所有邊,將實體與其相應(yīng)的邊拼接成問題列表。
(5)通過預(yù)訓(xùn)練的SentenceBERT模型將問句與問題列表進(jìn)行相似度排序。
(6)給出問題列表中相似度最高的所對應(yīng)的尾實體作為答案。
7? ?結(jié)論(Conclusion)
聊天機(jī)器人是近年來重要的人工智能落地領(lǐng)域,而基于知識圖譜的問答系統(tǒng)是實現(xiàn)聊天機(jī)器人的重要方法之一。但關(guān)于如何使用知識圖譜構(gòu)建問答系統(tǒng)的問題很少被總結(jié),本文的目的便是總結(jié)目前實現(xiàn)這個問題的常用方法,并給出實現(xiàn)知識圖譜問答系統(tǒng)的一套基線方法。通過測試表明,該方法能夠較快部署實現(xiàn),準(zhǔn)確率較高,時效性基本能滿足常見需求。
參考文獻(xiàn)(References)
[1] Ding M, Zhou C, Chen Q, et al. Cognitive Graph for Multi-Hop Reading Comprehension at Scale[C]. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, 2019:2694-2703.
[2] Chiu J P C, Nichols E. Named entity recognition with bidirectional LSTM-CNNs[J]. Transactions of the Association for Computational Linguistics, 2016(4):357-370.
[3] Devlin J, Chang M W, Lee K, et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[C]. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers) , 2019:4171-4186.
[4] Huang Z, Xu W, Yu K. Bidirectional LSTM-CRF models for sequence tagging[DB/OL]. [2015-08-09].https://arxiv.org/pdf/1508.01991.pdf.
[5] Riedel S, Yao L, McCallum A. Modeling relations and their mentions without labeled text[C]. Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer, Berlin, Heidelberg, 2010:148-163.
[6] Surdeanu M, Tibshirani J, Nallapati R, et al. Multi-instance multi-label learning for relation extraction[C]. Proceedings of the 2012 joint conference on empirical methods in natural language processing and computational natural language learning, 2012:455-465.
[7] Zeng D, Liu K, Chen Y, et al. Distant supervision for relation extraction via piecewise convolutional neural networks[C]. Proceedings of the 2015 conference on empirical methods in natural language processing, 2015:1753-1762.
[8] Cai R, Zhang X, Wang H. Bidirectional recurrent convolutional neural network for relation classification[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2016:756-765.
[9] Wang L, Cao Z, De Melo G, et al. Relation classification via multi-level attention cnns[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2016:1298-1307.
[10] Cai R, Zhang X, Wang H. Bidirectional recurrent convolutional neural network for relation classification[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2016: 756-765.
[11] Huang Y Y, Wang W Y. Deep Residual Learning for Weakly-Supervised Relation Extraction[C]. Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, 2017:1803-1807.
[12] Gao T, Han X, Liu Z, et al. Hybrid attention-based prototypical networks for noisy few-shot relation classification[C]. Proceedings of the AAAI Conference on Artificial Intelligence, 2019, 33:6407-6414.
[13] Trisedya B D, Qi J, Zhang R. Entity alignment between knowledge graphs using attribute embeddings[C]. Proceedings of the AAAI Conference on Artificial Intelligence, 2019, 33: 297-304.
[14] 徐增林,盛泳潘,賀麗榮,等.知識圖譜技術(shù)綜述[J].電子科技大學(xué)學(xué)報,2016,45(04):589-606.
[15] Reimers N, Gurevych I. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks[C]. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), 2019:3973-3983.
[16] Liu W, Zhou P, Zhao Z, et al. K-BERT: Enabling Language Representation with Knowledge Graph[DB/OL]. [2019-09-17]. https://arxiv.org/pdf/1909.07606.pdf.
[17] Kim Y. Convolutional Neural Networks for Sentence Classification[C]. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), 2014:1746-1751.
[18] Liu Y, Ji L, Huang R, et al. An attention-gated convolutional neural network for sentence classification[J]. Intelligent Data Analysis, 2019, 23(5):1091-1107.
[19] Lee K, He L, Lewis M, et al. End-to-end Neural Coreference Resolution[C]. Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing,2017: 188-197.
[20] See A, Liu P J, Manning C D. Get To The Point: Summarization with Pointer-Generator Networks[C]. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2017: 1073-1083.
[21] Bordes A, Usunier N, Garcia-Duran A, et al. Translating embeddings for modeling multi-relational data[J]. Advances in neural information processing systems, 2013(26):2787-2795.
[22] Wang Z, Zhang J, Feng J, et al. Knowledge graph embedding by translating on hyperplanes[C]. Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence, 2014: 1112-1119.
[23] Ji G, He S, Xu L, et al. Knowledge graph embedding via dynamic mapping matrix[C]. Proceedings of the 53rd annual meeting of the association for computational linguistics and the 7th international joint conference on natural language processing (volume 1: Long papers), 2015:687-696.
[24] Xiao H, Huang M, Hao Y, et al. TransA: An adaptive approach for knowledge graph embedding[DB/OL]. [2015-09-28]. https://arxiv.org/pdf/1509.05490.pdf.
[25] Xiao H, Huang M, Zhu X. TransG: A Generative Model for Knowledge Graph Embedding[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2016:2316-2325.
[26] Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[DB/OL]. [2017-02-22]. https://arxiv.org/pdf/1609.02907.pdf.
[27] Hamilton W, Ying Z, Leskovec J. Inductive representation learning on large graphs[C]. Advances in neural information processing systems, 2017:1024-1034.
[28] Veli?kovi? P, Cucurull G, Casanova A, et al. Graph attention networks [DB/OL]. [2018-02-04]. https://arxiv.org/pdf/1710.10903.pdf.
[29] Huang X, Zhang J, Li D, et al. Knowledge graph embedding based question answering[C]. Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining, 2019:105-113.
[30] Zhou H, Young T, Huang M, et al. Commonsense Knowledge Aware Conversation Generation with Graph Attention[C]. International Joint Conferences on Artificial Intelligence Organization, 2018:4623-4629.
作者簡介:
魏澤林(1990-),男,碩士,工程師.研究領(lǐng)域:知識圖譜,人工智能.
張? 帥(1994-),男,碩士,初級研究員.研究領(lǐng)域:知識圖譜,自然語言處理.本文通訊作者.
王建超(1989-),男,碩士,中級研究員.研究領(lǐng)域:人工智能,圖像處理.