摘要:在本文中,筆者主要想分享一下自底向上構建知識圖譜的全過程,拋磚引玉,歡迎大家交流。隨著自動知識抽取與加工技術的不斷成熟,當前的知識圖譜大多采用自底向上的方式構建,如的和微軟的知識庫。
阿里妹導讀:知識圖譜的構建技術主要有自頂向下和自底向上兩種。其中自頂向下構建是指借助百科類網站等結構化數據源,從高質量數據中提取本體和模式信息,加入到知識庫里。而自底向上構建,則是借助一定的技術手段,從公開采集的數據中提取出資源模式,選擇其中置信度較高的信息,加入到知識庫中。
在本文中,筆者主要想分享一下自底向上構建知識圖譜的全過程,拋磚引玉,歡迎大家交流。
“The world is not made of strings , but is made of things.”
——辛格博士,from Google.
知識圖譜,是結構化的語義知識庫,用于迅速描述物理世界中的概念及其相互關系,通過將數據粒度從document級別降到data級別,聚合大量知識,從而實現知識的快速響應和推理。
當下知識圖譜已在工業領域得到了廣泛應用,如搜索領域的Google搜索、百度搜索,社交領域的領英經濟圖譜,企業信息領域的天眼查企業圖譜等。
在知識圖譜技術發展初期,多數參與企業和科研機構主要采用自頂向下的方式構建基礎知識庫,如Freebase。隨著自動知識抽取與加工技術的不斷成熟,當前的知識圖譜大多采用自底向上的方式構建,如Google的Knowledge Vault和微軟的Satori知識庫。
1、定義俗話說:“看人先看臉。”在我們深入了解知識圖譜之前,讓我們先來看一下它長什么樣子!
如圖所示,你可以看到,如果兩個節點之間存在關系,他們就會被一條無向邊連接在一起,那么這個節點,我們就稱為實體(Entity),它們之間的這條邊,我們就稱為關系(Relationship)。
知識圖譜的基本單位,便是“實體(Entity)-關系(Relationship)-實體(Entity)”構成的三元組,這也是知識圖譜的核心。
2、數據類型和存儲方式知識圖譜的原始數據類型一般來說有三類(也是互聯網上的三類原始數據):
結構化數據(Structed Data),如關系數據庫
非結構化數據,如圖片、音頻、視頻
半結構化數據 如XML、JSON、百科
如何存儲上面這三類數據類型呢?一般有兩種選擇,一個是通過RDF(資源描述框架)這樣的規范存儲格式來進行存儲,比較常用的有Jena等。
還有一種方法,就是使用圖數據庫來進行存儲,常用的有Neo4j等。
那你可能會問我了,你不就是一大堆的三元組嗎,用關系數據庫來存儲不也一樣嘛。
是的,用關系數據庫來存儲,尤其是存儲簡單的知識圖譜,從技術上來說是完全沒問題的。
但需要注意的是,一旦知識圖譜變復雜,圖數據庫在關聯查詢的效率上會比傳統的關系數據存儲方式有顯著的提高。當我們涉及到2,3度的關聯查詢,基于知識圖譜的查詢效率會高出幾千倍甚至幾百萬倍。
除此之外,基于圖的存儲在設計上會非常靈活,一般只需要局部的改動即可。
因此如果你的數據量較大,還是建議直接用圖數據庫來進行存儲的。
3、知識圖譜的架構知識圖譜的架構主要可以被分為:
邏輯架構
技術架構
3.1 邏輯架構
在邏輯上,我們通常將知識圖譜劃分為兩個層次:數據層和模式層。
模式層:在數據層之上,是知識圖譜的核心,存儲經過提煉的知識,通常通過本體庫來管理這一層這一層(本體庫可以理解為面向對象里的“類”這樣一個概念,本體庫就儲存著知識圖譜的類)。
數據層:存儲真實的數據。
如果還是有點模糊,可以看看這個例子:
模式層:實體-關系-實體,實體-屬性-性值
數據層:比爾蓋茨-妻子-梅琳達·蓋茨,比爾蓋茨-總裁-微軟
3.2 技術架構
知識圖譜的整體架構如圖所示,其中虛線框內的部分為知識圖譜的構建過程,同時也是知識圖譜更新的過程。
別緊張,讓我們順著這張圖來理一下思路。首先我們有一大堆的數據,這些數據可能是結構化的、非結構化的以及半結構化的,然后我們基于這些數據來構建知識圖譜,這一步主要是通過一系列自動化或半自動化的技術手段,來從原始數據中提取出知識要素,即一堆實體關系,并將其存入我們的知識庫的模式層和數據層。
構建知識圖譜是一個迭代更新的過程,根據知識獲取的邏輯,每一輪迭代包含三個階段:
信息抽取:從各種類型的數據源中提取出實體、屬性以及實體間的相互關系,在此基礎上形成本體化的知識表達;
知識融合:在獲得新知識之后,需要對其進行整合,以消除矛盾和歧義,比如某些實體可能有多種表達,某個特定稱謂也許對應于多個不同的實體等;
知識加工:對于經過融合的新知識,需要經過質量評估之后(部分需要人工參與甄別),才能將合格的部分加入到知識庫中,以確保知識庫的質量。
4、構建技術前面我們已經說過了,知識圖譜有自頂向下和自底向上兩種構建方式,這里提到的構建技術主要是自底向上的構建技術。
如前所述,構建知識圖譜是一個迭代更新的過程,根據知識獲取的邏輯,每一輪迭代包含三個階段:
信息抽取:從各種類型的數據源中提取出實體、屬性以及實體間的相互關系,在此基礎上形成本體化的知識表達;
知識融合:在獲得新知識之后,需要對其進行整合,以消除矛盾和歧義,比如某些實體可能有多種表達,某個特定稱謂也許對應于多個不同的實體等;
知識加工:對于經過融合的新知識,需要經過質量評估之后(部分需要人工參與甄別),才能將合格的部分加入到知識庫中,以確保知識庫的質量,見下圖
下面我們依次來對每一個步驟進行介紹。(長文預警)
4.1 信息抽取
信息抽取(infromation extraction)是知識圖譜構建的第1步,其中的關鍵問題是:如何從異構數據源中自動抽取信息得到候選指示單元?
信息抽取是一種自動化地從半結構化和無結構數據中抽取實體、關系以及實體屬性等結構化信息的技術。
涉及的關鍵技術包括:實體抽取、關系抽取和屬性抽取。
4.1.1 實體抽取
實體抽取,也稱為命名實體識別(named entity recognition,NER),是指從文本數據集中自動識別出命名實體。
比如在下圖中,通過實體抽取我們可以從其中抽取出三個實體——“Steve Balmer”, "Bill Gates",和"Microsoft"。
實體抽取的研究歷史主要是從面向單一領域進行實體抽取,逐步跨步到面向開放域(open domain)的實體抽取。
4.1.2 關系抽取
文本語料經過實體抽取之后,得到的是一系列離散的命名實體,為了得到語義信息,還需要從相關語料中提取出實體之間的關聯關系,通過關系將實體聯系起來,才能夠形成網狀的知識結構。這就是關系抽取需要做的事,如下圖所示。
研究歷史:
人工構造語法和語義規則(模式匹配)
統計機器學習方法
基于特征向量或核函數的有監督學習方法
研究重點轉向半監督和無監督
開始研究面向開放域的信息抽取方法
將面向開放域的信息抽取方法和面向封閉領域的傳統方法結合
4.1.3 屬性抽取
屬性抽取的目標是從不同信息源中采集特定實體的屬性信息,如針對某個公眾人物,可以從網絡公開信息中得到其昵稱、生日、國籍、教育背景等信息。
研究歷史:
將實體的屬性視作實體與屬性值之間的一種名詞性關系,將屬性抽取任務轉化為關系抽取任務。
基于規則和啟發式算法,抽取結構化數據
基于百科類網站的半結構化數據,通過自動抽取生成訓練語料,用于訓練實體屬性標注模型,然后將其應用于對非結構化數據的實體屬性抽取。
采用數據挖掘的方法直接從文本中挖掘實體屬性和屬性值之間的關系模式,據此實現對屬性名和屬性值在文本中的定位。
4.2 知識融合
通過信息抽取,我們就從原始的非結構化和半結構化數據中獲取到了實體、關系以及實體的屬性信息。
如果我們將接下來的過程比喻成拼圖的話,那么這些信息就是拼圖碎片,散亂無章,甚至還有從其他拼圖里跑來的碎片、本身就是用來干擾我們拼圖的錯誤碎片。
也就是說:
拼圖碎片(信息)之間的關系是扁平化的,缺乏層次性和邏輯性;
拼圖(知識)中還存在大量冗雜和錯誤的拼圖碎片(信息)
那么如何解決這一問題,就是在知識融合這一步里我們需要做的了。
知識融合包括2部分內容:
實體鏈接
知識合并
4.2.1 實體鏈接
實體鏈接(entity linking)是指對于從文本中抽取得到的實體對象,將其鏈接到知識庫中對應的正確實體對象的操作。
其基本思想是首先根據給定的實體指稱項,從知識庫中選出一組候選實體對象,然后通過相似度計算將指稱項鏈接到正確的實體對象。
研究歷史:
僅關注如何將從文本中抽取到的實體鏈接到知識庫中,忽視了位于同一文檔的實體間存在的語義聯系。
開始關注利用實體的共現關系,同時將多個實體鏈接到知識庫中。即集成實體鏈接(collective entity linking)
實體鏈接的流程:
從文本中通過實體抽取得到實體指稱項;
進行實體消歧和共指消解,判斷知識庫中的同名實體與之是否代表不同的含義以及知識庫中是否存在其他命名實體與之表示相同的含義;
在確認知識庫中對應的正確實體對象之后,將該實體指稱項鏈接到知識庫中對應實體。
實體消歧是專門用于解決同名實體產生歧義問題的技術,通過實體消歧,就可以根據當前的語境,準確建立實體鏈接,實體消歧主要采用聚類法。其實也可以看做基于上下文的分類問題,類似于詞性消歧和詞義消歧。
共指消解技術主要用于解決多個指稱對應同一實體對象的問題。在一次會話中,多個指稱可能指向的是同一實體對象。利用共指消解技術,可以將這些指稱項關聯(合并)到正確的實體對象,由于該問題在信息檢索和自然語言處理等領域具有特殊的重要性,吸引了大量的研究努力。共指消解還有一些其他的名字,比如對象對齊、實體匹配和實體同義。
4.2.2 知識合并
在前面的實體鏈接中,我們已經將實體鏈接到知識庫中對應的正確實體對象那里去了,但需要注意的是,實體鏈接鏈接的是我們從半結構化數據和非結構化數據那里通過信息抽取提取出來的數據。
那么除了半結構化數據和非結構化數據以外,我們還有個更方便的數據來源——結構化數據,如外部知識庫和關系數據庫。
對于這部分結構化數據的處理,就是我們知識合并的內容啦。一般來說知識合并主要分為兩種:
合并外部知識庫,主要處理數據層和模式層的沖突
合并關系數據庫,有RDB2RDF等方法
4.3 知識加工
經過剛才那一系列步驟,我們終于走到了知識加工這一步了!
感覺大家可能已經有點暈眩,那么讓我們再來看一下知識圖譜的這張架構圖。
在前面,我們已經通過信息抽取,從原始語料中提取出了實體、關系與屬性等知識要素,并且經過知識融合,消除實體指稱項與實體對象之間的歧義,得到一系列基本的事實表達。
然而事實本身并不等于知識。要想最終獲得結構化,網絡化的知識體系,還需要經歷知識加工的過程。
知識加工主要包括3方面內容:本體構建、知識推理和質量評估。
4.3.1 本體構建
本體(ontology)是指工人的概念集合、概念框架,如“人”、“事”、“物”等。
本體可以采用人工編輯的方式手動構建(借助本體編輯軟件),也可以以數據驅動的自動化方式構建本體。因為人工方式工作量巨大,且很難找到符合要求的專家,因此當前主流的全局本體庫產品,都是從一些面向特定領域的現有本體庫出發,采用自動構建技術逐步擴展得到的。
自動化本體構建過程包含三個階段:
實體并列關系相似度計算
實體上下位關系抽取
本體的生成
比如對下面這個例子,當知識圖譜剛得到“阿里巴巴”、“騰訊”、“手機”這三個實體的時候,可能會認為它們三個之間并沒有什么差別,但當它去計算三個實體之間的相似度后,就會發現,阿里巴巴和騰訊之間可能更相似,和手機差別更大一些。
這就是第一步的作用,但這樣下來,知識圖譜實際上還是沒有一個上下層的概念,它還是不知道,阿里巴巴和手機,根本就不隸屬于一個類型,無法比較。因此我們在實體上下位關系抽取這一步,就需要去完成這樣的工作,從而生成第三步的本體。
當三步結束后,這個知識圖譜可能就會明白,“阿里巴巴和騰訊,其實都是公司這樣一個實體下的細分實體。它們和手機并不是一類。”
4.3.2 知識推理
在我們完成了本體構建這一步之后,一個知識圖譜的雛形便已經搭建好了。但可能在這個時候,知識圖譜之間大多數關系都是殘缺的,缺失值非常嚴重,那么這個時候,我們就可以使用知識推理技術,去完成進一步的知識發現。
比如在下面這個例子里:
我們可以發現:如果A是B的配偶,B是C的主席,C坐落于D,那么我們就可以認為,A生活在D這個城市。
根據這一條規則,我們可以去挖掘一下在圖里,是不是還有其他的path滿足這個條件,那么我們就可以將AD兩個關聯起來。除此之外,我們還可以去思考,串聯里有一環是B是C的主席,那么B是C的CEO、B是C的COO,是不是也可以作為這個推理策略的一環呢?
當然知識推理的對象也并不局限于實體間的關系,也可以是實體的屬性值,本體的概念層次關系等。
比如:
推理屬性值:已知某實體的生日屬性,可以通過推理得到該實體的年齡屬性;
推理概念:已知(老虎,科,貓科)和(貓科,目,食肉目)可以推出(老虎,目,食肉目)
這一塊的算法主要可以分為3大類,基于邏輯的推理、基于圖的推理和基于深度學習的推理。
4.3.3 質量評估
質量評估也是知識庫構建技術的重要組成部分,這一部分存在的意義在于:可以對知識的可信度進行量化,通過舍棄置信度較低的知識來保障知識庫的質量。
好啦,在質量評估之后,你是不是想說,媽耶知識圖譜終于構建完畢了。終于可以松一口氣了。
好吧,實不相瞞,知識圖譜這個寶寶目前雖然我們構建成功了。
但是!你家寶寶不吃飯的啊!你家寶寶不學習的啊!
所以,讓我們冷靜一下,乖乖進入知識更新這一步……
4.4 知識更新
從邏輯上看,知識庫的更新包括概念層的更新和數據層的更新。
概念層的更新是指新增數據后獲得了新的概念,需要自動將新的概念添加到知識庫的概念層中。
數據層的更新主要是新增或更新實體、關系、屬性值,對數據層進行更新需要考慮數據源的可靠性、數據的一致性(是否存在矛盾或冗雜等問題)等可靠數據源,并選擇在各數據源中出現頻率高的事實和屬性加入知識庫。
知識圖譜的內容更新有兩種方式:
全面更新:指以更新后的全部數據為輸入,從零開始構建知識圖譜。這種方法比較簡單,但資源消耗大,而且需要耗費大量人力資源進行系統維護;
增量更新:以當前新增數據為輸入,向現有知識圖譜中添加新增知識。這種方式資源消耗小,但目前仍需要大量人工干預(定義規則等),因此實施起來十分困難。
5、知識圖譜的應用
好了!終于終于!知識圖譜的構建方式我們就此結束了!
為了讓大家不立刻棄療,讓我們來看看知識圖譜能做到什么,以及目前已經做到了什么~
智能搜索——也是知識圖譜最成熟的一個場景,自動給出搜索結果和相關人物
構建人物關系圖,查看更多維度的數據
反欺詐:這主要有兩部分原因,一個是反欺詐的數據來源多樣,結構化和非結構化,二是不少欺詐案件會涉及到復雜的關系網絡
不一致性驗證(類似交叉驗證)——關系推理
異常分析(運算量大,一般離線)
靜態分析:給定一個圖形結構和某個時間點,從中去發現一些異常點(比如有異常的子圖)。
動態分析:分析其結構隨時間變化的趨勢。(假設短時間內知識圖譜結構的變化不會太大,如果它的變化很大,就說明可能存在異常,需要進一步的關注。會涉及到時序分析技術和圖相似性計算技術。)
失聯客戶管理 挖掘出更多的新聯系人,提高催收的成功率。
……
事實上,知識圖譜的應用遠不止于此。在我看來,這個世界就是一張巨大的知識圖譜,是無數個實體關系對,這兩年工業界對圖數據庫、知識圖譜的巨大需求也同樣反映出了這一點。
就像這篇文章開頭說的那句一樣,
“The world is not made of strings , but is made of things.”
——辛格博士,from Google.
本文作者:薇拉
閱讀原文
本文來自云棲社區合作伙伴“阿里技術”,如需轉載請聯系原作者。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11891.html
摘要:圖數據庫逐步成為目前主要的知識圖譜存儲方式。知識圖譜的補全是通過現有知識圖譜來預測實體之間的關系,是對關系抽取的重要補充。相關資料大規模知識圖譜的構建推理及應用肖仰華大規模知識圖譜構建與應用 知識圖譜怎么去做,這當然不是幾句話說得清楚的。首先肯定要先基于自身的業務進行思考,這里整理一些知識圖譜構建的主要路徑。 構建的邏輯思路 1、梳理業務,構建本體:是否需要用知識圖譜?成本怎么樣,能...
摘要:本質上知識圖譜旨在描述真實世界中存在的各種實體或概念及其關系其構成一張巨大的語義網絡圖,節點表示實體或概念,邊則由屬性或關系構成。圖知識圖譜示例知識圖譜的架構知識圖譜的架構包括自身的邏輯結構以及構建知識圖譜所采用的技術體系架構。 引言隨著互聯網的發展,網絡數據內容呈現爆炸式增長的態勢。由于互聯網內容的大規模、異質多元、組織結構松散的特點,給人們有效獲取信息和知識提出了挑戰。知識圖譜(Know...
摘要:已被所有主流瀏覽器支持在過去幾周蘋果的瀏覽器與微軟的瀏覽器分別發布新版本,支持了,再加上早已支持的和,已得到所有主流瀏覽器支持。 showImg(https://segmentfault.com/img/remote/1460000012086220?w=1240&h=823); 前端每周清單第 40 期: JS 的 Core 與 Cost,Node 內存溢出調試,Software 2...
摘要:四知識圖譜應用利用知識圖譜技術可以直接給出用戶想要的搜索結果,而不再是各類鏈接。智慧城市公安機關在偵查案件時,經常看到辦案民警用圖譜梳理案件及人物關系。在電視劇人民的名義中,警方利用知識圖譜分析,可以很快看清山水集團背后的利益鏈條。 導讀:悟已往之不諫,知來者之可追。 ?小編整理了各種關于人...
閱讀 1790·2021-11-24 10:21
閱讀 1202·2021-09-22 15:25
閱讀 3165·2019-08-30 15:55
閱讀 704·2019-08-30 15:54
閱讀 3456·2019-08-30 14:20
閱讀 1653·2019-08-30 14:06
閱讀 635·2019-08-30 13:11
閱讀 3135·2019-08-29 16:43