今天不寫代碼,聊聊熱門的知識圖譜

原創:微信公眾號 碼農參上,歡迎分享,轉載請保留出處。

哈嘍大家好啊,我是Hydra。

前一段時間,boss交給我個任務,讓我調研一下知識圖譜技術。雖說有點NLP的底子,不過研究起這個來還是滿頭的包,終於還是在搜集了不少資料後劃拉出來50多頁的PPT,那麼今天就淺淺的給大家分享一下知識圖譜的相關知識。

概述

誕生

知識圖譜的概念誕生於2012年,由谷歌公司首先提出。大家都知道,谷歌是做搜索引擎的,所以他們最早提出了Google Knowledge Graph後,首先利用知識圖譜技術改善了搜索引擎核心。

注意上面的說法,雖然知識圖譜誕生於2012年,但其實在更早的時間它還有另外一個名字,那就是語義。那麼語義又是什麼呢?引用《統計自然語言處理基礎》中的兩句話來解答這個問題:

語義可以分成兩部分,研究單個詞的語義(即詞義)以及單個詞的含義是怎麼聯合起來組成句子(或者更大的單位)的含義。

語義研究的是詞語的含義、結構和說話的方式。

那麼,知識圖譜究竟是個什麼東西呢?

你可以將它理解為是在自然界建立實體關係的知識數據庫,它的提出是為了準確地闡述人、事、物之間的關係。

目前在學術界還沒有給知識圖譜一個統一的定義,但是在谷歌發佈的文檔中有明確的描述:「知識圖譜是一種用圖模型來描述知識和建模世界萬物之間關聯關係的技術方法」

演進

谷歌的Singhal博士用三個詞點出了知識圖譜加入之後搜索發生的變化:

「Things,not string.」

這寥寥的幾個單詞,點出了知識圖譜的核心。以前的搜索,都是將要搜索的內容看作字符串,結果是和字符串進行匹配,將匹配程度高的排在前面,後面按照匹配度依次顯示。而利用知識圖譜之後,將搜索的內容不再看作字符串,而是看作客觀世界的事物,也就是一個個的個體。

舉個例子,當我們在搜索比爾蓋茨的時候,搜索引擎不是搜索「比爾蓋茨」這個字符串,而是搜索比爾蓋茨這個人,圍繞比爾蓋茨這個人,展示與他相關的人和事。

在上面的圖中,左側百科會把比爾蓋茨的主要情況列舉出來,右側顯示比爾蓋茨的微軟產品和與他類似的人,主要是一些IT行業的創始人。這樣,一個搜索結果頁面就把和比爾蓋茨的基本情況和他的主要關係都列出來了,搜索的人很容易找到自己感興趣的結果。

三要素

在知識圖譜中,通過三元組 <實體 × 關係 × 屬性> 集合的形式來描述事物之間的關係:

  • 實體:又叫作本體,指客觀存在並可相互區別的事物,可以是具體的人、事、物,也可以是抽象的概念或聯繫,實體是知識圖譜中最基本的元素
  • 關係:在知識圖譜中,邊表示知識圖譜中的關係,用來表示不同實體間的某種聯繫
  • 屬性:知識圖譜中的實體和關係都可以有各自的屬性

這裡所說的實體和普通意義上的實體略有不同,借用NLP中本體的概念來理解它會比較好:

本體定義了組成主題領域的詞彙表的基本術語及其關係,以及結合這些術語和關係來定義詞彙表外延的規則

例如我們要描述大學這一領域時,對它來說教工學生課程就是相對比較重要的概念,並且教工和學生之間也存在一定的關聯關係,此外對象之間還存在一定的約束關係,例如一個系的教職員工數量不能少於10人。

在了解了上面的三元組後,我們可以基於它構建下面這樣的一個關係:

可以看到,女王和王儲通過母子關係關聯在一起,並且每個人擁有自己的屬性。

當知識圖譜中的節點逐漸增多後,它的表現形式就會類似於化學分子式的結構,一個知識圖譜往往存在多種類型的實體與關係。

知識圖譜將非線性世界中的知識信息進行加工,做到這樣的結構化、可視化,從而輔助人類進行推理、預判、歸類。

到這裡,可以簡單概括一下知識圖譜的基本特徵:

  • 知識結構網絡化
  • 網絡結構複雜
  • 網絡由三元組構成
  • 數據主要由知識庫承載

場景

搜索

前面提到過,以前的搜索引擎是從海量的關鍵詞中找出與查詢匹配度最高的內容,按照查詢結果把排序分值最高的一些結果返回給用戶。在整個過程中,搜索引擎可能並不需要知道用戶輸入的是什麼,因為系統不具備推理能力,在精準搜索方面也略顯不足。而基於知識圖譜的搜索引擎,除了能夠直接回答用戶的問題外,還具有一定的語義推理能力,大大提高了搜索的精確度。

推薦

在傳統的推薦系統中,存在兩個典型問題:

  • 數據稀疏問題:在實際應用場景中,用戶和物品的交互信息往往是非常稀疏的,預測會產生過擬合風險
  • 冷啟動問題:對於新加入的用戶或者物品,由於系統沒有其歷史交互信息,因此無法進行準確地建模和推薦

例如,在一個電影類網站中可能包含了上萬部電影,然而一個用戶打過分的電影可能平均只有幾十部。使用如此少量的已觀測數據來預測大量的未知信息,會極大地增加算法的過擬合風險。

因此在推薦算法中會額外引入一些輔助信息作為輸入,這些輔助信息可以豐富對用戶和物品的描述,從而有效地彌補交互信息的稀疏或缺失。在各種輔助信息中,知識圖譜作為一種新興類型的輔助信息,這幾年的相關研究比較多。

下面就是一個基於知識圖譜的推薦例子:

在將知識圖譜引入推薦系統後,具有以下優勢:

  • 精確性:知識圖譜為物品引入了更多的語義關係,可以深層次地發現用戶興趣
  • 多樣性:知識圖譜提供了實體之間不同的關係連接種類,有利於推薦結果的發散,避免推薦結果局限於單一類型
  • 可解釋性:知識圖譜可以連接用戶的歷史記錄和推薦結果,從而提高用戶對推薦結果的滿意度和接受度,增強用戶對推薦系統的信

此外,知識圖譜技術還在問答與對話系統、語言理解、決策分析等多個領域被廣泛應用,它被掛載在這些系統之後,充當背景知識庫的角色。總的來說,在這些場景下的應用,可以概括整個AI的發展趨勢,就是從感知認知的一個過程。

架構

知識圖譜的構建目前已有一套比較完善的架構體系,可以先來看一下下面這張圖,然後我們再慢慢解釋:

總的來說,整體過程可以分為下面5步:

  • 1.數據獲取:主要獲取半結構化數據,為後續的實體與實體屬性構建做準備。結構化數據則為數值屬性做準備
  • 2.知識獲取:從文本數據集中自動識別出命名實體,包括抽取人名、地名、機構名等;從語料中抽取實體之間的關係,形成關係網絡;從不同的信息源中採集特定的屬性信息
  • 3.知識融合:完成指示代詞與先行詞的合併;完成同一實體的歧義消除;將已識別的實體對象,無歧義地指向知識庫中的目標實體
  • 4.知識加工:構建知識概念模塊,抽取本體;進行知識圖譜推理,並對知識圖譜的可信度進行量化評估,評估過關的知識圖譜流入知識圖譜庫中存儲,評估不過關的知識圖譜返回一開始的數據環節進行調整,而後重複相同環節直到評估過關
  • 5.知識存儲與計算:存儲是為了快速查詢與運用知識,需支持底層數據描述與上層計算,有的主體計算包含在存儲中

下面,我們拆解其中部分重要核心細節,來具體描述。

知識獲取

數據是知識圖譜的根基,直接關係到知識圖譜構建的效率和質量。所以我們先從數據源進行分析它們的優勢與劣勢:

  • 站內數據:優勢在於類別明確,結構化好,易於獲取;而劣勢在於類型有限,已有數據並不是廣義上的知識類型
  • 垂直網站數據:優勢在於類別明確;而劣勢在於獲取解析成本高,數據質量參差不齊
  • 百科類網站數據:優勢在於數據量大,內容豐富;而劣勢在於沒有分類信息,結構不完全固定
  • 人工創建的數據:優勢在於類別明確;而劣勢在於類別明確

實體抽取

實體抽取,是指從數據中識別和抽取實體的屬性與關係信息,這一過程還是針對不同結構的數據來看:

  • 結構化數據:包括站內/垂直網站信息、部分百科網站信息,可以利用策略模式,將抽取的具體規則用groovy腳本來實現
  • 半結構化數據:包括百科網站中的表格以及列表,可以利用基於監督學習的包裝器歸納方法進行抽取
  • 非結構化數據:包括百科網站中的文本以及站內文本,可以利用自然語言處理的手段處理

關係抽取

回顧一下我們前面提到過的知識圖譜三要素,分別是實體、關係和屬性。關係抽取我們同樣可以用一個三元組表示的RDF graph

這樣的一個(S,P,O)三元組,就可以將一份知識分解為主語、謂語、賓語。這樣的SPO結構,在配合知識圖譜進行存儲時可以被用來當做存儲單元。

在RDF中可以聲明一些規則,從一些關係推導出另一些關係,這些規則被稱為RDF Schema。規則可以用一些詞彙表示,如classsubClassOftypepropertysubPropertyOfdomainrange等。

下面這個例子中,節點到節點之間的關係就可以理解為前面提到的本體中的聯繫,而這一關聯過程就可以被稱為知識圖譜中的推導或關聯推理:

知識融合

知識融合這一過程中,主要包括指代消解、實體對齊、實體鏈接等過程,我們主要來看一下這個過程中比較重要的實體對齊(Object Alignment)。

完成實體抽取後,存在實體ID不同但代表真實世界中同一對象的情況。知識融合即是將這些實體合併成一個具有全局唯一標識的實體對象,添加到知識圖譜中。

  • 首先在索引中根據名字、別名等字段查詢出若干個可能是相同實體的候選列表,這個步驟的目的是減少接下來流程的計算量
  • 然後經過實體判別模型,根據模型得分識別出待合併對齊的原始實體
  • 最後經過屬性融合模型,將各原始實體的屬性字段進行融合,生成最終的實體。

這一過程可以用下面的圖來表示:

實際上,這個流程中的合併判斷模型大家都比較熟悉,它就是通過機器學習訓練生成的二分類器。

知識圖譜構建與補全

知識圖譜普遍存在不完備的問題,在這一步需要做的,就是基於圖譜里已有的關係,去推理出缺失的關係。

在下面的這張知識圖譜的實體網絡中,黃色的箭頭表示已經存在的關係,紅色的虛線則是缺失的關係。我們可以根據實體之間的關係,來補全缺失的e3到e4之間的關係。

至於這一補全的過程,有很多現成的算法可以使用,例如基於路徑查找的方法,基於強化學習的方法,基於推理規則的方法,基於元學習的方法等等。

知識存儲

知識圖譜的存儲依賴於圖數據庫及其引擎,不同廠商的實現可能大有不同,例如可以選用的圖數據庫有RDF4j、Virtuoso、Neo4j等。例如愛奇藝的圖數據庫引擎選擇了JanusGraph,藉助雲平台的Hbase和ES集群,搭建了自己的JanusGraph分佈式圖數據庫引擎。

JanusGraph通過藉助外部的存儲系統與外部索引系統的支持,支撐了上游的在線查詢服務。

補充

底層存儲數據三元組的邏輯層次可以被稱為數據層,通常通過本體庫來管理數據層,本體庫的概念相當於對象中「類」的概念。而建立在數據層之上的模式層,是知識圖譜的核心,它藉助本體庫來管理公理、規則和約束條件,規範實體、關係、屬性這些具體對象間的關係。

從不同的視角去審視知識圖譜,可以更方便我們對其進行了解:

  • 在Web視角下,知識圖譜如同簡單文本之間的超鏈接一樣,通過建立數據之間的語義鏈接,支持語義搜索
  • 在自然語言處理視角下,知識圖譜就是從文本中抽取語義和結構化的數據
  • 在知識表示視角下,知識圖譜是採用計算機符號表示和處理知識的方法
  • 在人工智能視角下,知識圖譜是利用知識庫來輔助理解人類語言的工具
  • 在數據庫視角下,知識圖譜是利用圖的方式去存儲知識的方法

下面,就是一張構建完備後,比較易於我們理解的知識圖譜舉例:

看到這裡,是不是感覺知識圖譜的構建過程比較複雜,讓我們難於上手?

其實近些年來,深度學習和相關自然語言處理技術的迅猛發展使得非結構化數據的自動知識抽取少人化、乃至無人化成為了可能,現在已經提出了一些前沿的知識圖譜自動構建技術。

在深度學習的基礎上,艾倫人工智能實驗室和微軟的研究人員結合自然語言處理領域較為成功的預訓練語言模型,提出了自動知識圖譜構建模型 COMET(COMmonsEnse Transformers)。

該模型可以根據已有常識庫中的自然語言內容自動生成豐富多樣的常識描述,在 Atomic 和 ConcepNet 兩個經典常識圖譜上都取得了接近人類表現的高精度,證明了此類方法在常識知識圖譜自動構建和補全方面替代傳統方法的可行性。

難點

數據治理困難

數據治理為知識圖譜輸送數據源,是知識圖譜構建的前置環節與基礎性工程。完備良好的數據治理不僅能確保知識圖譜在搭建過程中獲取真實可靠的數據原料,而且能從源頭上改善信息質量,提升知識的準確度,建立符合人類認知體系的數據資源池。

但是,數據治理在知識圖譜建設卡點中是一個老生常談的問題。知識圖譜應用始終要圍繞數據標籤、數據清洗、數據歸一、數據銷毀等數據治理環節展開,應用開發人員往往需要在前期的數據治理工作中投入大量時間和人力,以確保數據源的真實性、可靠性、可用性、正確性。

當前,數據標準不統一、數據噪聲大、領域數據集缺失、數據可信度異常等數據治理難題依然困擾着知識圖譜研發者,持續進行數據治理工程是業內參與者艱巨的使命與職責。

專家缺乏

目前知識圖譜行業整體處於開發資源待完善的局面,行業與技術專家資源稀缺屬於其中的一部分情況。

一方面,缺少具備深厚行業經驗的專家。由於行業知識圖譜與行業的關聯度高,開發人員需要迅速了解業務與客戶需求,在行業專家的指導下完成Schema構建,若涉及到文本抽取工作還需要行業專家進行數據標註,而各行各業中的行業專家往往僅有極少數。對此,供給方企業需要鎖定行業業務的強項領域、提前招募培養行業專家、進行內外協作,以完成行業專家儲備。

另一方面,缺少技術複合型專家。整個知識圖譜應用生產流程不僅涉及知識圖譜算法,生產流程的靠前環節還涉及到底層的圖數據存儲與數據治理、NLP文本抽取和語義轉換,同時各環節都滲透着機器學習這一底層人工智能技術。這意味着整個生產流程需要多個技術領域的工程師協同合作,而對整套技術均有了解的技術專家數量稀缺。

底層存儲

由於知識圖譜是二維鏈接的圖結構而非行或列的表結構,其需以圖數據的形式描述並存儲,該方式能直接反應知識圖譜的內部結構,有利於知識查詢,結合圖計算算法進行知識的深度挖掘與推理。

滿足這一存儲要求的數據庫為近幾年興起的圖數據庫。相比於傳統的關係型數據庫,圖數據庫的數據模型以節點和邊來體現,可大大縮短關聯關係的查詢執行時間,支持半結構化數據存儲,展示多維度的關聯關係。高效便捷的新技術往往意味着更高的研發門檻。

流程與算法

在知識圖譜的搭建過程中,仍然面臨著各類算法難點,主要難點可歸結為生產流程中的算法難點和算法性能上的難點。前者體現為知識獲取受數據集限制、知識融合干擾因素較多、知識計算的數據集與算力不足等問題。

而後者體現為算法泛化能力不足、魯棒性不足、缺乏統一測評指標等問題。算法上的難點有賴於供需雙方、學術界、政府持續攻堅,而非一方努力即可收穫成功。

最後的碎碎念

拖了好久沒有更文,不知道大家有沒有想念我~

其實我這裡已經存了不少文章的選題了,不過最近工作上實在比較繁忙,下班時間基本上也都在配小肥羊玩,所以沒有什麼時間更文。就像這篇文章,也是我正在出差的高鐵上,根據前幾天彙報的PPT整理而成。

怎麼樣,沿途的風景,是不是還可以?

那麼,這次的分享就到這裡,我是Hydra,我們下篇再見。

作者簡介,碼農參上,一個熱愛分享的公眾號,有趣、深入、直接,與你聊聊技術。歡迎添加好友,進一步交流。