天天看點

綜述 | 知識圖譜發展概述

“知識圖譜(Knowledge Graph)”的概念由 Google 公司在 2012 年提出[1],是指其用于提升搜尋引擎性能的知識庫。與近年來其他學者相同,本文中的“知識圖譜”泛指知識庫項目,而非特指 Google 的知識圖譜項目。

知識圖譜的出現是人工智能對知識需求所導緻的必然結果,但其發展又得益于很多其他的研究領域,涉及專家系統、語言學、語義網、資料庫,以及資訊抽取等衆多領域,是交叉融合的産物而非一脈相承。

綜述 | 知識圖譜發展概述

<b>知識圖譜的早期發展</b>

早在上個世紀 70 年代,<b>專家系統(Expert Systems)</b>作為人工智能的重要分支,是指利用知識和推理過程來解決那些借助人類專家知識才能得已解決的問題的計算機程式[2]。八十年代,專家系統的發展激增,日本的五代機項目就是在這期間開始的,專家系統是其核心部分。專家系統一般由兩部分組成:<b>知識庫與推理引擎</b>。人類專家提供知識,再将這種顯式的知識映射并存儲到知識庫中用來推理。

<b>Cyc</b> 是這一期間較為出色的項目[3],由 Douglas Lenat 在 1984 年設立,旨在收集生活中常識知識并将其編碼內建到一個全面的本體知識庫。Cyc 知識庫中的知識使用專門設計的 CycL 進行表示。同其他專家系統一樣,<b>Cyc</b> 不僅包括知識,而且提供了非常多的推理引擎,支援演繹推理和歸納推理。目前 Cyc 知識庫涉及 50 萬條概念的 500 萬條常識知識。OpenCyc 是其開放出來免費供大衆使用的部分知識,包括 24 萬條概念的約 240 萬條常識知識。

對詞彙的了解是解讀自然語言的關鍵,語言學家所創造的詞典為人類而非機器的閱讀提供了便利,雖然有電子詞典的存在,但機器仍無法很好的從中擷取詞彙含義。

1985 年,普林斯頓大學認識科學實驗室在心理學教授喬治·A·米勒的指導下開始建立和維護名為 WordNet 的英語字典[4],旨在為詞典資訊和現代計算提供更加有效的結合,為計算機程式提供可讀性較強的線上詞彙資料庫。

在 <b>WordNet</b> 中,名詞、動詞、形容詞以及副詞被按照認知上的同義詞分組,稱為 synsets,每一個 synset 表征一個确定的概念。synset 之間通過概念語義以及詞彙關系連結。在漢語中,類似的典型代表有<b>《同義詞詞林》</b>[15]及其<b>擴充版[16]、知網(HowNet)</b>[17]等,都是從語言學的角度,以概念為最基本的語義單元建構起來的可以被計算機處理的漢語詞典。

這些早期的知識圖譜都是利用相關領域專家進行人工建構,具有很高的準确率和利用價值,但是其建構過程耗時耗力而且存在覆寫性較低的問題。

<b>連結資料與基于百科知識的知識圖譜建構</b>

1989 年網際網路的出現,為知識的擷取提供了極大的友善,1998 年,網際網路之父蒂姆·伯納斯·李再次提出<b>語義網(Semantic Web)</b>,其初衷是讓機器也同人類一樣可以很好地擷取并使用知識[5,6,7]。

不同于人工智能中訓練機器使之擁有和人類一樣的認知能力,語義網直接向機器提供可直接用于程式處理的知識表示[5]。但語義網是一個較為宏觀的設想并且其設計模型是“自頂向下”的,導緻其很難落地,學者們逐漸将焦點轉向資料本身。

2006 年,伯納斯·李提對外連結接資料(Linked Data)的概念,鼓勵大家将資料公開并遵循一定的原則(2006 年提出 4 條原則,2009 年精簡為 3 條原則)将其釋出在網際網路中[8,9],連結資料的宗旨是希望資料不僅僅釋出于語義網中,而需要建立起資料之間的連結進而形成一張巨大的連結資料網。其中,最具代表性的當屬 2007 年開始運作的 <b>DBpedia</b> 項目[10],是目前已知的第一個大規模開放域連結資料。

<b>DBpdia</b> 項目最初是由柏林自由大學和萊比錫大學的學者發起的,其初衷是緩解語義網當時面臨的窘境,第一份公開資料集在 2007 年時釋出,通過自由授權的方式允許他人使用。Leipzig 等學者[10]認為在大規模網絡資訊的環境下傳統“自上而下”地在資料之前設計本體是不切實際的,資料及其中繼資料應當随着資訊的增加而不斷完善。

資料的增加和完善可以通過社群成員合作的方式進行,但這種方式涉及資料的一緻性、不确定性,以及隐式知識的統一表示等諸多問題。Leipzig 等人[10]認為探尋這些問題最首要并高效的方式就是提供一個内容豐富的多中繼資料語料,有了這樣的語料便可以極大推動諸如知識推理、資料的不确定管理技術,以及開發面向語義網的營運系統。

朝着連結資料的構想,DBpedia 知識庫利用語義網技術,如資源描述架構(RDF)[18],與衆多知識庫(如 WordNet、Cyc 等)建立連結關系,建構了一個規模巨大的連結資料網絡。

綜述 | 知識圖譜發展概述

2001 年,一個名為<b>維基百科</b>(Wikipedia)的全球性多語言百科全書協作計劃開啟[11],其宗旨是為全人類提供自由的百科全書,在短短幾年的時間裡利用全球使用者的協作完成數十萬詞條(至今擁有上百萬詞條)知識。維基百科的出現推動了很多基于維基百科的結構化知識的知識庫的建構,<b>DBpedia</b>[10]、<b>Yago</b>[12]等都屬于這一類知識庫。

Yago 是由德國馬普研究所于 2007 年開始的項目,針對當時的應用僅使用單一源背景知識的情況,建立了一個高品質、高覆寫的多源背景知識的知識庫。前面介紹的專家建構的 WordNet 擁有極高的準确率的本體知識,但知識覆寫度僅限于一些常見的概念或實體;相比之下,維基百科蘊含豐富的實體知識,但維基百科多提供的概念的層次結構類似标簽結構并不精确,直接用于本體建構并不适合。

<b>Yago</b> 的主要思路是将 WordNet 與維基百科二者的知識結合,即利用 WordNet 的本體知識補充維基百科中實體的上位詞知識,進而擷取大規模高品質、高覆寫的知識庫。截至目前,Yago 擁有超過 1 千萬實體的 1.2 億條事實知識,同時近些年也建構起了與其他知識庫的連結關系。

<b>DBpedia</b> 主要通過社群成員來定義和撰寫準确的抽取模版,從維基百科中抽取結構化資訊(如 infobox)建構大規模知識庫,另外本體(即知識庫的中繼資料、schema)的建構也是通過社群成員合作完成的。

由于維基百科是社群撰寫,其知識表達難免有不一緻的情況,DBpedia 利用 mapping 技術與抽取模版來實作知識描述的統一與一緻性。另外,為了實作知識的更新與擴增,DBpedia 開發 DBpediaLive 來保持與維基百科的同步。在 2016 年發行的版本中,DBpedia 擁有超過 6 百萬實體及其數十億事實知識,其中人工建構的本體庫包含 760 種類别資訊。同時,DBpedia 擁有大量的跨語言知識,共擁有除英語外的 66 億其他語言事實知識。

2007 年,Freebase[13]開始建構,類似維基百科,其内容主要來自其社群成員的貢獻,但與維基百科最大的不同之處在于 Freebase 中都是結構化的知識,在維基百科中人們編輯的是文章,而在 <b>Freebase</b> 中編輯的是知識。

在 Freebase 中,使用者是其主要核心,除了對實體的編輯,使用者也參與本體庫的建構、知識的校對,以及與其他知識庫的連結工作。除人工輸入知識,Freebase 也主動導入知識,如維基百科的結構化知識。Freebase 擁有大約 2 千萬實體,目前被 Google 公司收購,Freebase 的 API 服務已經關閉但仍提供資料的下載下傳。

2012 年,考慮到維基百科中大部分的知識都是非結構組織起來的,帶來諸多問題(如:無法對知識進行有效的搜尋與分析,進而知識無法得到很好的重用,甚至存在知識的不一緻性的現象),維基媒體基金會推出 Wikidata 項目[14],一個類似于 Freebase 的大規模社群成員合作知識哭,旨在用一種全新的方式管理知識以克服以上的存在于維基百科中的問題。

以上所介紹的知識圖譜都是基于英文語言的,即使是多語言知識圖譜也是以英文為主語言,其他語言知識是用過跨語言知識(如:語言間連結(ILLs)、三元組對齊(TWA))連結得到。

近些年,國内推出了大量以中文為主語言的知識圖譜,它們主要都是基于百度百科和維基百科的結構化資訊建構起來的。如上海交通大學的<b>zhishi.me</b>[19]、清華大學的XLore[20]、複旦大學的<b>CN-pedia</b>[21]。2017 年,由國内多所高校發起 <b>cnSchema.org </b>項目[23],旨在利用社群力量維護開放域知識圖譜的 Schema 标準。

<b>基于自由文本的開放域知識圖譜建構</b>

<b></b>

上述介紹的知識圖譜的建構方式包括人工編輯和自動抽取,但自動抽取方法主要是基于線上百科中結構化資訊而忽略了非結構化文本,而網際網路中大部分的資訊恰恰是以非結構化的自由文本形式呈現。與連結資料發展的同期,很多基于資訊抽取技術的知識擷取方法被提出,用以建構基于自由文本的開放域知識圖譜。

2007 年,華盛頓大學 Banko 等人[24]率先提出開放域資訊抽取(OIE),直接從大規模自由文本中直接抽取實體關系三元組,即頭實體、關系訓示詞,以及尾實體三部分,類似于語義網中 RDF 規範的 SPO 結構。

在 OIE 提出之前,也有很多面向自由文本的資訊抽取被提出,但這些方法主要的思路都是為每個目标關系訓練相應的抽取器。這類傳統的資訊抽取方法在面對網際網路文本中海量的關系類别時無法高效工作,即為每個目标關系訓練抽取器時不現實的,更為嚴重的是很多情況下面對海量的網絡文本我們無法事先明确關系的類型。

OIE 通過直接識别關系詞組(relation phrases)也稱關系訓示詞,即顯式表證明體關系的詞組,來抽取實體關系。基于 OIE 的指導思想,華盛頓大學陸續推出TextRunner[24]、Reverb[25]、OLLIE[26]等基于自由文本的開放域三元組抽取系統;以及卡耐基梅隆大學的 NELL 系統[27,29]、德國馬普研究中心的 PATTY 等[28]。

這些系統有的需要自動構造标注的訓練語料,進而從中提取關系模版或訓練分類器;有的則依據文法或句法特征直接從分析結果中抽取關系三元組。接下來,本文将簡要介紹下具有代表性的 Reverb 和 NELL 系統的實作思想。

Reverb 針對之前的 OIE 系統中存在的兩個問題:不連貫抽取與資訊缺失抽取,提出句法限制:對于多詞語關系詞組,必須以動詞開頭、以介詞結束,并且是由句子中毗鄰的單詞組成。該限制可以有效緩解以上兩個問題造成的抽取失敗。進一步,為了避免由句法限制帶來的冗長的并且過于明确的關系訓示詞,Reverb 引入了啟發式的詞法限制。

總的來說,Reverb 提出了兩個簡單卻高效的限制,在面向英文自由文本的開放域知識抽取中取得了不錯的效果,很具啟發意義。

never-ending learning 被定義為是一種不同于傳統的機器學習方式[29],通過不斷地閱讀擷取知識,并不斷提升學習知識的能力以及利用所學知識進行推理等邏輯思維。NELL 就是一種這樣的智能體,其任務是學習如何閱讀網頁以擷取知識。

NELL 的輸入有:

定義了類别和二進制關系的初始本體庫;

對于每個類别和關系的訓練種子資料;

網頁資料(從預先準備好的網頁集合中擷取、每天從 Google 搜尋 API 擷取);

偶爾的人工幹預。

NELL 每天 24 小時不停歇的進行如下操作:

從網頁中閱讀(抽取)知識事實用以填充知識庫,并移除之前存在于知識庫中不正确知識事實,每個知識具有一定的置信度以及參考來源;

學習如何比前一天更好地閱讀(抽取)知識事實。

NELL 從 2010 年 1 月開始進行上述閱讀過程,目前所産生的知識庫已經擁有超過 8 千萬的互相連結的事實,以及上百萬學習到的短語。

綜述 | 知識圖譜發展概述

<b>自動建構的開放域中文實體知識圖譜——《大詞林》</b>

上述所介紹的 OIE 系統大多專注于對開放域實體關系三元組的抽取,但忽略了對于知識圖譜不可或缺的同時也是至關重要的本體庫的建構,即知識圖譜中繼資料或稱為 Schema 的建構,是為三元組賦以語義的關鍵。

2014 年,由哈爾濱工業大學社會計算與資訊檢索研究中心發起的《大詞林》項目,面向包括自由文本的多資訊源對實體的類别資訊進行自動抽取并階層化,進而實作對實體上下位關系體系的自動建構,而上下位關系體系正是本體庫的核心組成之一。

《大詞林》的建構不需要領域專家的參與,而是基于多資訊源自動擷取實體類别并對可能的多個類别進行階層化,進而達到知識庫自動建構的效果。同時也正是由于《大詞林》具有自動建構能力,其資料規模可以随着網際網路中實體詞的更新而擴大,很好地解決了以往的人工建構知識庫對開放域實體的覆寫程度極為有限的問題。

另外,相比以往的類别體系知識庫,《大詞林》中類别體系的結構也更加靈活。如《同義詞詞林(擴充版)》中每個實體具有具備五層結構,其中第四層僅有代碼表示,其餘四層由代碼和詞語表示,而《大詞林》中類别體系結構的層數不固定,依據實體詞的不同而動态變化,如“哈工大”一詞有 7 層之多,而“中國”一詞有 4 層;另外,《大詞林》中的每一層都是用類别詞或實體詞表示。

綜述 | 知識圖譜發展概述

自 2014 年 11 月 27 日上線,《大詞林》不斷添加中文實體及其階層化類别資訊,自動建構開放域實體知識庫。目前,《大詞林》中包括約 900 萬實體、約 17 萬類别;平均每個命名實體有 1.77 個不同粒度的優質類别;上下位關系超過 1 千萬對,其中實體與上位詞之間的上下位關系與上位詞之間的上下位關系準确率均達到 90% 以上。

《大詞林》(http://www.bigcilin.com/)系統網站支援使用者查詢任意實體,并以有向圖的形式展現實體的階層化類别,同時支援以目錄方式供使用者浏覽部分公開的知識庫。

人工智能中關鍵的一步是知識的擷取與建構,《大詞林》作為基于上下位關系的中文知識庫,随着網際網路中實體詞的增加不斷擴充其資料規模,并即将加入實體間關系、實體屬性等網狀關系結構,這對于基于知識庫的智能系統無疑是一筆巨大的寶藏。

原文釋出時間為:2017-11-3

本文作者: 姜天文

繼續閱讀