1. 程式人生 > >知識圖譜(一)-基本概念

知識圖譜(一)-基本概念

開放資料以及一些相關專案:

開放的中文知識圖譜

基於elasticsearch的KBQA實現及示例

智慧問答機器人

什麼是知識圖譜?

知識圖譜(Knowledge Graph),在圖書情報界稱為知識域視覺化或知識領域對映地圖,是顯示知識發展程序與結構關係的一系列各種不同的圖形,用視覺化技術描述知識資源及其載體,挖掘、分析、構建、繪製和顯示知識及它們之間的相互聯絡。 知識圖譜是通過將應用數學、圖形學、資訊視覺化技術、資訊科學等學科的理論與方法與計量學引文分析、共現分析等方法結合,並利用視覺化的圖譜形象地展示學科的核心結構、發展歷史、前沿領域以及整體知識架構達到多學科融合目的的現代理論。

知識圖譜的發展

20世紀中葉,普萊斯等人提出使用引文網路來研究當代科學發展的脈絡的方法,首次提出了知識圖譜的概念。(注意:這裡的知識圖譜和本博文主要介紹的知識圖譜不太一樣,在此是指Mapping Knowledge Domain,而本博文主要介紹的知識圖譜是指Knowledge Graph)1977年,知識工程的概念在第五屆國際人工智慧大會上被提出,以專家系統為代表的知識庫系統開始被廣泛研究和應用,直到20世紀90年代,機構知識庫的概念被提出,自此關於知識表示、知識組織的研究工作開始深入開展起來。機構知識庫系統被廣泛應用於各科研機構和單位內部的資料整合以及對外宣傳工作。2012年11月Google公司率先提出知識圖譜(Knowledge Graph,KG)的概念,表示將在其搜尋結果中加入知識圖譜的功能。其初衷是為了提高搜尋引擎的能力,增強使用者的搜尋質量以及搜尋體驗。據2015年1月統計的資料,Google 構建的KG已經擁有5億個實體,約35億條實體關係資訊,已經被廣泛應用於提高搜尋引擎的搜尋質量。雖然知識圖譜(Knowledge Graph)的概念較新,但它並非是一個全新的研究領域,早在2006年,Berners Lee就提出了資料鏈接(linked data)的思想,呼籲推廣和完善相關的技術標準如URI(Uniform resource identifier),RDF(resource discription framework),OWL(Web ontology language),為迎接語義網路的到來做好準備。隨後掀起了一場語義網路研究的熱潮,知識圖譜技術正是建立在相關的研究成果之上的,是對現有語義網路技術的一次揚棄和昇華。

  • 起源(20世紀中葉):知識圖譜(Mapping Knowledge Domain)
  • 發展(20世紀90年代):知識庫(Knowledge Base)
  • 形成(2012年Google首次提出):知識圖譜(Knowledge Graph)

定義

知識圖譜是結構化的語義知識庫,用於以符號形式描述物理世界中的概念及其相互關係。其基本組成單位是“實體 關係 實體”三元組,以及實體及其相關屬性值對,實體間通過關係相互聯結,構成網狀的知識結構。

G\in  (E,R,S) 

其中

E=\left \{  \right.e_1,e_2,e_3,e_4,e_5...e_{|E|} \left.  \right \}

是知識庫中的實體集合,共包含| E |種不同實體;

 R= \{r_1 ,r_2 ,...,r_{|R|}\}

是知識庫中的關係集合,共包含| R |種不同關係;

S\subseteq E \times R \times E

代表知識庫中的三元組集合。三元組的基本形式主要包括實體1、關係、實體2和概念、屬性、屬性值等,實體是知識圖譜中的最基本元素,不同的實體間存在不同的關係。概念主要指集合、類別、物件型別、事物的種類,例如人物、地理等;屬性主要指物件可能具有的屬性、特徵、特性、特點以及引數,例如國籍、生日等;屬性值主要指物件指定屬性的值,例如中國、1988-09-08等。每個實體(概念的外延)可用一個全域性唯一確定的ID來標識,每個屬性-屬性值對(attribute-value pair,AVP)可用來刻畫實體的內在特性,而關係可用來連線兩個實體,刻畫它們之間的關聯。

總結一下知識圖譜包含三層含義:

  1. 知識圖譜本身是一個具有屬性的實體通過關係連結而成的網狀知識庫.從圖的角度來看,知識圖譜在本質上是一種概念網路,其中的節點表示物理世界的實體(或概念),而實體間的各種語義關係則構成網路中的邊.由此,知識圖譜是對物理世界的一種符號表達 .
  2. 知識圖譜的研究價值在於,它是構建在當前Web基礎之上的一層覆蓋網路(overlay network),藉助知識圖譜,能夠在Web網頁之上建立概念間的連結關係,從而以最小的代價將網際網路中積累的資訊組織起來,成為可以被利用的知識。
  3. 知識圖譜的應用價值在於,它能夠改變現有的資訊檢索方式,一方面通過推理實現概念檢索(相對於現有的字串模糊匹配方式而言);另一方面以圖形化方式向用戶展示經過分類整理的結構化知識,從而使人們從人工過濾網頁尋找答案的模式中解脫出來。

知識圖譜架構主要部分:

  • 知識抽取(包括實體抽取、關係抽取以及屬性抽取等)
  • 知識融合(包括實體消岐等)
  • 知識加工(包括本體構架、知識推理等)
  • 知識更新

知識圖譜架構細化

知識抽取或資訊抽取

  • 實體抽取
    • 基於規則和詞典的方法
    • 基於統計機器學習的方法
    • 面向開放域的抽取方法
  • 關係抽取
    • 基於規則和模板的方法
    • 基於統計機器學習的方法
    • 面向開放域的抽取方法
  • 屬性抽取
    • 基於規則與啟發式演算法
    • 基於機器學習的演算法

知識融合

  • 實體連線
  • 實體消岐 專門用於解決同名實體產生歧義問題的技術。實體消岐主要採用聚類的方法,聚類法消歧的關鍵問題是如何定義實體物件與指稱項之間的相似度,常用的方法有:
    1. 空間向量模型(詞袋模型<BOW.WIKI.CSDN>)
    2. 語義模型(與空間向量模型相似,不同的地方在於語義模型不僅包含詞袋向量,而且包含一部分語義特徵)
    3. 社會網路模型(該模型的基本假設是物以類聚人以群分,在社會化環境中,實體指稱項的意義在很大程度上是由與其相關聯的實體所決定的)
    4. 百科知識模型(百科類網站通常會為每個實體分配一個單獨頁面,其中包括指向其他實體頁面的連線,百科知識模型正是利用這種連結關係來計算實體指稱項之間的相似度)
    • 實體對齊 主要用於消除異構資料中實體衝突、指向不明等不一致性問題,可以從頂層建立一個大規模的統一知識庫,從而幫助機器理解多源異質的資料,形成高質量的知識庫。對齊演算法可以分為成對實體對齊和集體實體對齊,而集體實體對齊又可以分為區域性集體實體對齊和全域性集體實體對齊。成對實體對齊:《1》基於傳統概率模型的實體對齊方法。《2》基於機器學習的實體對齊方法。區域性實體對齊方法:區域性實體對齊方法為實體本身的屬性以及與它有關聯的實體的屬性分別設定不同的權重,並通過加權求和計算總體的相似度,還可以使用向量空間模型以及餘弦相似性來判別大規模知識庫中的實體的相似程度,演算法為每個實體建立了名稱向量與虛擬文件向量,名稱向量用於標識實體的屬性,虛擬文件向量則用於表示實體的屬性值以及其鄰居節點的屬性值的加權和值。全域性集體實體對齊方法:1》基於相似性傳播的集體實體對齊方法。《2》基於概率模型的集體實體對齊方法
    • 整體層面分類
      • 基於概率生成模型方法
      • 基於主題模型的方法
      • 基於圖的方法
      • 基於深度神經網路的方法
  • 知識合併
    • 合併外部知識庫:將外部知識庫融合到本地知識庫需要處理2個層面的問題。
      1. 資料層的融合,包括實體的指稱、屬性、關係以及所屬類別等,主要的問題是如何避免例項以及關係的衝突問題,造成不必要的冗餘。
      2. 通過模式層的融合,將新得到的本體融入已有的本體庫中。
    • 合併關係資料庫:在知識圖譜的構建過程中,一個重要的高質量知識來源是企業或者機構自己的關係資料庫。為了將這些結構化的歷史資料融入到知識圖譜中,可以採用資源描述框架(RDF)作為資料模型。業界和學術界將這一資料轉換過程形象的稱為RDB2RDF,其實質就是將關係資料庫的資料轉換成RDF的三元組資料。
  • 知識加工
    • 本體構建—本體的最大特點在於它是共享的,本體中反映的知識是一種明確定義的共識。本體是同一領域內不同主體之間進行交流的語義基礎,本體是樹狀結構,相鄰層次的節點(概念)之間具有嚴格的“IsA”關係,這種單純的關係有利於知識推理卻不利於表達概念的多樣性。本體的構建可以採用人工編輯的方式手動構建(藉助於本體編輯軟體),也可以採用計算機輔助,以資料驅動的方式自動構建,然後採用演算法評估和人工稽核相結合的方式加以修正和確認。除了資料驅動的方法,還可以採用跨語言知識連結的方法來構建本體庫。對當前本體生成方法的主要研究工作主要集中在實體聚類方法,主要挑戰在於經過資訊抽取得到的實體描述非常簡短,缺乏必要的上下文資訊,導致多數統計模型不可用。(可以利用主題進行層次聚類)。

知識推理

知識推理是指從知識庫中已有的實體關係資料出發,經過計算機推理,建立實體間的新關聯,從而拓展和豐富知識網路,知識推理是知識圖譜構建的重要手段和關鍵環節,通過知識推理,能夠從現有知識中發現新的知識。

  • 基於邏輯的推理
    • 一階謂詞邏輯推理
    • 描述邏輯推理
    • 規則邏輯推理
  • 基於圖的推理
    • 基於神經網路模型
    • 基於Path Ranking演算法
  • 跨知識庫的知識推理(當前趨勢)
  • 質量評估—對知識庫的質量評估任務通常是與實體對齊任務一起進行的,其意義在於,可以對知識的可信度進行量化,保留置信度較高的,捨棄置信度較低的,有效保證知識的質量。 已有的方法 大多是基於 symbolic 和 logical 的推理系統,比如 Universal Schema,它學習 relation type 的向量表示,包括結構化 KG 中的以及自然語言文字中的關係表示,其中的 matrix completion(矩陣完備化) 機制可以進行簡單的推理,但只能對單條 evidence進行操作,比如從 microsoft-located-in-seattle 推理出 microsoft-HQ-in-seattle。

更高階的推理 是從從句中得到包含三個或更多實體的 multi-hop 的知識庫圖路徑。比如可以從 Melinda–spouse–Bill–chairman–Microsoft–HQ-in–Seattle 得到 Melinda–lives-in–Seattle。

資料

知識更新

人類所擁有資訊和知識量都是時間的單調遞增的函式,因此知識圖譜的內容也需要與時俱進,其構建過程是一個不斷迭代更新的過程。從邏輯上看,只是哭的更新包括概念層更新和資料層更新。知識圖譜內容的更新有兩種方式:資料驅動下的全面更新和增量更新。

知識表示

雖然三元組的知識表示形式受到了人們的廣泛認可,但是其在計算效率、資料稀疏性等方面卻面臨著諸多問題。近年來,以深度學習為代表的學習技術取得了重要的進展,可以將實體的語義資訊表示為稠密低維的實值向量,進而在低維空間中高效計算實體、關係及其之間的複雜語義關聯,對知識庫的構建、推理、融合以及應用均具有重要的意義。分散式表示旨在用一個綜合的向量來表示實體物件的語義資訊,是一種模仿人腦工作的表示機制,通過知識表示而得到的分散式表示形式在知識圖譜的計算、補全、推理等方面起到重要的作用:語義相似度計算、連結預測(又被稱為知識圖譜補全)等代表模型如下:

  • 距離模型
    • 首先將實體用向量進行表示,然後通過關係矩陣將實體投影到與實體向量同一緯度的向量空間中,最後通過計算投影向量之間的距離來判斷實體間已經存在的關係的置信度。由於距離模型中的關係矩陣是兩個不同的矩陣,故實體間的協同性較差,這也是該模型本身的主要缺陷。
  • 單層神經網路模型
    • 針對距離模型的缺陷,提出了採用單層神經網路的非線性模型(single layer model,SLM)。單層神經網路模型的非線性操作雖然能夠進一步刻畫實體在關係下的語義相關性,但是在計算開銷上卻大大增加。
  • 雙線性模型
    • 雙線性模型又叫隱變數模型(latent factor model,LFM)。雙線性模型主要是通過基於實體間關係的雙線性變換來刻畫實體在關係下的語義相關性,模型不僅形式簡單、易於計算,而且能夠有效刻畫實體間的協同性。
  • 神經張量模型
    • 其基本思想是,在不同維度下,將實體聯絡起來,表示實體間複雜的語義聯絡。神經張量模型在構建實體的向量表示時,是將該實體中的所有單詞的向量取平均值,這樣一方面可以重複使用單詞向量構建實體,另一方面將有利於增強低維向量的稠密程度以及實體與關係的語義計算。
  • 矩陣分解模型: 例如RESACL模型
    • 通過矩陣分解的方式可以得到低維的向量表示,故不少研究者提出可以採用該方式進行知識表示學習,其中典型的代表是RESACL模型。
  • 翻譯模型: 例TransE模型
    • 受到平移變現象的啟發,提出了TransE模型,即將知識庫中實體之間的關係看成是從實體間的某種平移,並用向量表示。關係lr可以看作是從頭實體向量lh到尾實體向量lt的翻譯。該模型的引數較少,計算的複雜度顯著降低,同時,TransE模型在大規模稀疏資料庫上也同樣具有較好的效能與可擴充套件性。
  • 複雜關係模型
    • 知識庫中的實體關係型別可分為:1-to-1、1-to-N、N-to-1、N-to-N 4種類型。代表性模型有:TransH模型、TransR模型、TransD模型、TransG模型、KG2E模型。

模型 :

語義神經網路 基於距離的模型,Translational Distance Model.

最經典的 TransE 方法中, 只能通過對一個 triplet(三元組) 進行評分. 而無法對兩個節點直接進行計算距離. 當然, 語義相似的 entity embedding (估計) 是具有近似的向量的, 也許用cosine距離函式或者l2函式計算一下的話, 可能會發現語義上的相關性. 但是, 為什麼會這樣, 還沒有類似的研究. 因為, TransE, Dismult這樣的模型本身就不是為了計算 entity 之間的 similarity 而設計, 也就是說沒有為了計算 similarity 去顯式地設計模型.