標籤:

大規模知識圖譜的構建、推理及應用

隨著大數據的應用越來越廣泛,人工智慧也終於在幾番沉浮後再次煥發出了活力。除了理論基礎層面的發展以外,本輪發展最為矚目的是大數據基礎設施、存儲和計算能力增長所帶來的前所未有的數據紅利。

人工智慧的進展突出體現在以知識圖譜為代表的知識工程以及以深度學習為代表的機器學習等相關領域。

未來伴隨著深度學習對於大數據的紅利消耗殆盡,如果基礎理論方面沒有新的突破,深度學習模型效果的天花板將日益迫近。而另一方面,大量知識圖譜不斷湧現,這些蘊含人類大量先驗知識的寶庫卻尚未被深度學習有效利用。

融合知識圖譜與深度學習,已然成為進一步提升深度學習效果的重要思路之一。以知識圖譜為代表的符號主義,和以深度學習為代表的聯結主義,日益脫離原先各自獨立發展的軌道,走上協同並進的新道路。

一、大規模知識圖譜的構建

知識圖譜自上世紀60年代從語義網路發展起來以後,分別經歷了1980年代的專家系統、1990年代的貝葉斯網路、2000年代的OWL和語義WEB,以及2010年以後的谷歌的知識圖譜。谷歌目前的知識圖譜已經包含了數億個條目,並廣泛應用於搜索、推薦等領域。

知識圖譜的存儲和查詢語言也經歷了歷史的洗滌,從RDF到OWL以及SPARQL查詢,都逐漸因為使用上的不便及高昂的成本,而被工業界主流所遺棄。圖資料庫逐步成為目前主要的知識圖譜存儲方式。

目前應用比較廣泛的圖資料庫包括Neo4J、graphsql、sparkgraphx(包含圖計算引擎)、基於hbase的Titan、BlazeGraph等,各家的存儲語言和查詢語言也不盡相同。實際應用場景下,OrientDB和postgresql也有很多的應用,主要原因是其相對低廉的實現成本和性能優勢。

由於大規模知識圖譜的構建往往會有眾多的實體和關係需要從原始數據(可以是結構化也可以是非結構化)中被抽取出來,並以圖的方式進行結構化存儲,而我們依賴的原始數據往往存在於多源異構的環境中,所以進行海量知識抽取和融合,就成了首要的無法迴避的嚴峻問題。

對於結構化的數據轉換為圖結構是比較容易和相對輕鬆的工程,所以建議這一步應該首先被完成。

對於複雜的非結構化數據,現階段進行知識圖譜構建的主要方法有傳統NLP和基於深度學習模型兩類方法,而目前越來越多傾向於使用深度學習來抽取AVP(屬性-值對)。

有很多深度學習模型可以用來完成端到端的包括命名實體識別NER、關係抽取和關係補全等任務,從而構建和豐富知識圖譜。

命名實體識別(Named Entity Recognition, NER)是從一段非結構化文本中找出相關實體(triplet中的主詞和賓詞),並標註出其位置以及類型,它是NLP領域中一些複雜任務(如關係抽取、信息檢索等)的基礎。

NER一直是NLP領域的熱點,從早期基於字典和規則的方法,到傳統機器學習的方法,再到近年來基於深度學習的方法,NER方法的大致演化如下所示。

在機器學習中,NER被定義為序列標註問題。不同於分類問題,序列標註問題中的預測標籤不僅與輸入特徵有關,還與之前的預測標籤有關,也就是預測標籤之間存在相互依賴和影響。

條件隨機場(Conditional Random Field,CRF)是序列標註的主流模型。它的目標函數不僅考慮輸入的狀態特徵函數,還包含了標籤轉移特徵函數。在訓練的時候可以使用SGD學習參數。在預測時,可以使用Vertibi演算法求解使目標函數最大化的最優序列。

目前常見的基於深度學習的序列標註模型有BiLSTM-CNN-CRF。它主要由Embedding層(詞向量、字向量等)、BiLSTM、tanh隱藏層以及CRF層組成(對於中文可以不需要CNN)。我們的實驗表明BiLSTM-CRF可以獲得較好的效果。在特徵方面,由於秉承了深度學習的優點,所以無需特徵工作的鋪墊,使用詞向量及字向量就可以得到不錯的效果。

近幾個月來,我們也在嘗試使用Attention機制,以及僅需少量標註樣本的半監督來進行相應的工作。

在BiLSTM-CRF的基礎上,使用Attention機制將原來的字向量和詞向量的拼接改進為按權重求和,使用兩個隱藏層來學習Attention的權值,這樣使得模型可以動態地利用詞向量和字向量的信息。同時加入NE種類的特徵,並在字向量上使用Attention來學習關注更有效的字元。實驗效果優於BiLSTM-CRF的方法。

這裡之所以用了大量篇幅來說NER的深度學習模型,是因為關係抽取模型也是採用同樣的模型實現的,其本質也是一個序列標註問題。所以這裡不再贅述。

知識圖譜構建中的另外一個難點就是知識融合,即多源數據融合。融合包括了實體對齊、屬性對齊、衝突消解、規範化等。對於Open-domain這幾乎是一個舉步維艱的過程,但是對於我們特定旅遊領域,可以通過別名舉證、領域知識等方法進行對齊和消解,從技術角度來看,這裡會涉及較多的邏輯,所以偏傳統機器學習方法,甚至利用業務邏輯即可覆蓋大部分場景。

知識圖譜schema是知識的分類體系的表現,還可以用於邏輯推理,也是用於衝突檢測的方法之一,從而提高知識圖譜的質量。

總而言之,構建知識圖譜沒有統一的方法,因為其構建需要一整套知識工程的方法,需要用到NLP、ML、DL技術,用到圖資料庫技術,用到知識表示推理技術等。知識圖譜的構建就是一個系統工程,而且知識的更新也是不可避免的,所以一定要重視快速迭代和快速產出檢驗。

二、知識圖譜的推理

在知識圖譜構建過程中,還存在很多關係補全問題。雖然一個普通的知識圖譜可能存在數百萬的實體和數億的關係事實,但相距補全還差很遠。知識圖譜的補全是通過現有知識圖譜來預測實體之間的關係,是對關係抽取的重要補充。傳統方法TransE和TransH通過把關係作為從實體A到實體B的翻譯來建立實體和關係嵌入,但是這些模型僅僅簡單地假設實體和關係處於相同的語義空間。而事實上,一個實體是由多種屬性組成的綜合體,不同關係關注實體的不同屬性,所以僅僅在一個空間內對他們進行建模是不夠的。

因此我們嘗試用TransR來分別將實體和關係投影到不同的空間中,在實體空間和關係空間構建實體和關係嵌入。對於每個元組(h,r,t),首先將實體空間中的實體通過Mr向關係r投影得到hr和tr,然後是hr+r ≈tr。特定的關係投影能夠使得兩個實體在這個關係下真實地靠近彼此,使得不具有此關係的實體彼此遠離。

知識圖譜推理中還經常將知識圖譜表示為張量tensor形式,通過張量分解(tensor factorization)來實現對未知事實的判定。常用於鏈接預測(判斷兩個實體之間是否存在某種特定關係)、實體分類(判斷實體所屬語義類別)、實體解析(識別併合並指代同一實體的不同名稱)。

常見的模型有RESCAL模型和TRESCAL模型。

RESCAL模型的核心思想,是將整個知識圖譜編碼為一個三維張量,由這個張量分解出一個核心張量和一個因子矩陣,核心張量中每個二維矩陣切片代表一種關係,因子矩陣中每一行代表一個實體。由核心張量和因子矩陣還原的結果被看作對應三元組成立的概率,如果概率大於某個閾值,則對應三元組正確;否則不正確。

而TRESCAL則是解決在輸入張量高度稀疏時所帶來的過擬合問題。

路徑排序演算法也常用來判斷兩個實體之間可能存在的關係,比如PRA演算法。本文不展開描述。

三、大規模知識圖譜的應用

知識圖譜的應用場景非常廣泛,比如搜索、問答、推薦系統、反欺詐、不一致性驗證、異常分析、客戶管理等。由於以上場景在應用中出現越來越多的深度學習模型,因此本文主要討論知識圖譜在深度學習模型中的應用。

目前將知識圖譜用於深度學習主要有兩種方式,一種是將知識圖譜的語義信息輸入到深度學習模型中,將離散化的知識表示為連續化的向量,從而使得知識圖譜的先驗知識能夠稱為深度學習的輸入;另外一種是利用知識作為優化目標的約束,指導深度學習模型的學習過程,通常是將知識圖譜中的知識表示為優化目標的後驗正則項。

知識圖譜的表示學慣用於學習實體和關係的向量化表示,其關鍵是合理定義知識圖譜中關於事實(三元組h,r,t)的損失函數fr(h,t),其總和是三元組的兩個實體h和t的向量化表示。通常情況下,當事實h,r,t成立時,期望最小化fr(h,t)。

常見的有基於距離和翻譯的模型。

基於距離的模型,比如SE模型,其基本思想是當兩個實體屬於同一個三元組時,它們的向量表示在投影后的空間中也應該彼此靠近。所以損失函數定義為向量投影后的距離

其中矩陣Wr1和Wr2用於三元組中頭實體h和尾實體t的投影操作。

基於翻譯的模型可以參考前述的TransE, TransH和TransR模型。其通過向量空間的向量翻譯來描述實體與關係之間的相關性。

當前的知識圖譜表示學習方法都還存在各種問題,這個領域的發展也非常迅速,值得期待。

知識圖譜的表示轉換後,根據不同領域的應用,就可以和各種深度學習模型相結合,比如在自動問答領域,可以和encoder-decoder相結合,將問題和三元組進行匹配,即計算其向量相似度,從而為某個特定問題找到來自知識圖譜的最佳三元組匹配。也有案例在推薦系統中,通過網路嵌入(network embedding)獲取結構化知識的向量化表示,然後分別用SDAE(Stacked Denoising Auto-Encoder)和層疊卷積自編碼器(StackedConvolutional Auto-Encoder)來抽取文本知識特徵和圖片知識特徵,並將三類特徵融合進協同集成學習框架,利用三類知識特徵的整合來實現個性化推薦。

隨著深度學習的廣泛應用,如何有效利用大量先驗知識,來大大降低模型對大規模標註語料的依賴,也逐漸成為主要的研究方向之一。在深度學習模型中融合常識知識和領域知識,將是又一大機遇和挑戰。

【作者簡介】李健,攜程度假研發部研發總監,2013年底加入攜程,在數據挖掘分析、人工智慧方面有一定的實踐與積累。

沒看夠?更多攜程技術人一手乾貨,歡迎搜索關注「攜程技術中心」微信公號~

*本文首發於Gitchat,轉載請註明*


推薦閱讀:

從語義網到知識圖譜——語義技術工程化的回顧與反思
鮑捷:知識圖譜在金融領域的發展與應用

TAG:知识图谱 |