1. 前言
2. 知識圖譜定義
3. 數(shù)據(jù)類型和存儲方式
4. 知識圖譜的架構
4.1 邏輯架構
4.2 技術架構
5. 信息抽取
5.1 實體抽取(Entity Extraction)
5.2 關系抽取(Relation Extraction)
5.3 屬性抽取(Attribute Extraction)
6. 知識融合
6.1 實體鏈接
6.2 知識合并
7. 知識加工
7.1 本體構建
7.2 知識推理
7.3 質量評估
8. 知識更新
9. 總結
從一開始的Google搜索,到現(xiàn)在的聊天機器人、大數(shù)據(jù)風控、證券投資、智能醫(yī)療、自適應教育、推薦系統(tǒng),無一不跟知識圖譜相關。它在技術領域的熱度也在逐年上升。本文以通俗易懂的方式來講解知識圖譜相關的知識、尤其對從零開始搭建知識圖譜過程當中需要經歷的步驟以及每個階段需要考慮的問題都給予了比較詳細的解釋。
知識圖譜( Knowledge Graph)的概念由谷歌2012年正式提出,旨在實現(xiàn)更智能的搜索引擎,并且于2013年以后開始在學術界和業(yè)界普及。目前,隨著智能信息服務應用的不斷發(fā)展,知識圖譜已被廣泛應用于智能搜索、智能問答、個性化推薦、情報分析、反欺詐等領域。另外,通過知識圖譜能夠將Web上的信息、數(shù)據(jù)以及鏈接關系聚集為知識,使信息資源更易于計算、理解以及評價,并且形成一套Web語義知識庫。知識圖譜以其強大的語義處理能力與開放互聯(lián)能力,可為萬維網上的知識互聯(lián)奠定扎實的基礎,使Web 3.0提出的“知識之網”愿景成為了可能。
知識圖譜:是結構化的語義知識庫,用于迅速描述物理世界中的概念及其相互關系。
知識圖譜通過對錯綜復雜的文檔的數(shù)據(jù)進行有效的加工、處理、整合,轉化為簡單、清晰的“實體,關系,實體”的三元組,最后聚合大量知識,從而實現(xiàn)知識的快速響應和推理。
知識圖譜有自頂向下和自底向上兩種構建方式。所謂自頂向下構建是借助百科類網站等結構化數(shù)據(jù)源,從高質量數(shù)據(jù)中提取本體和模式信息,加入到知識庫中;所謂自底向上構建,則是借助一定的技術手段,從公開采集的數(shù)據(jù)中提取出資源模式,選擇其中置信度較高的新模式,經人工審核之后,加入到知識庫中。
看一張簡單的知識圖譜:
如圖所示,你可以看到,如果兩個節(jié)點之間存在關系,他們就會被一條無向邊連接在一起,那么這個節(jié)點,我們就稱為實體(Entity),它們之間的這條邊,我們就稱為關系(Relationship)。
知識圖譜的基本單位,便是“實體(Entity)-關系(Relationship)-實體(Entity)”構成的三元組,這也是知識圖譜的核心。
實體: 指的是具有可區(qū)別性且獨立存在的某種事物。實體是知識圖譜中的最基本元素,不同的實體間存在不同的關系。如圖中的“中國”、“北京”、“16410平方公里”等。
關系: 關系是連接不同的實體,指代實體之間的聯(lián)系。通過關系節(jié)點把知識圖譜中的節(jié)點連接起來,形成一張大圖。如圖中的“人口”、“首都”、“面積”等
知識圖譜的原始數(shù)據(jù)類型一般來說有三類(也是互聯(lián)網上的三類原始數(shù)據(jù)):
結構化數(shù)據(jù)(Structed Data):如關系數(shù)據(jù)庫
半結構化數(shù)據(jù)(Semi-Structed Data):如XML、JSON、百科
非結構化數(shù)據(jù)(UnStructed Data):如圖片、音頻、視頻、文本
如何存儲上面這三類數(shù)據(jù)類型呢?一般有兩種選擇,一個是通過RDF(資源描述框架)這樣的規(guī)范存儲格式來進行存儲,還有一種方法,就是使用圖數(shù)據(jù)庫來進行存儲,常用的有Neo4j等。
RDF結構:
Neo4j結構:
在知識圖譜方面,圖數(shù)據(jù)庫比關系數(shù)據(jù)庫靈活的多。
在數(shù)據(jù)少的時候,關系數(shù)據(jù)庫也沒有問題,效率也不低。但是隨著知識圖譜變的復雜,圖數(shù)據(jù)庫的優(yōu)勢會明顯增加。當涉及到2,3度的關聯(lián)查詢,基于圖數(shù)據(jù)庫的效率會比關系數(shù)據(jù)庫的效率高出幾千倍甚至幾百萬倍。
知識圖譜在架構上分,可以分為邏輯架構和技術架構。
知識圖譜在邏輯上可分為模式層與數(shù)據(jù)層兩個層次。
模式層構建在數(shù)據(jù)層之上,是知識圖譜的核心,通常采用本體庫來管理知識圖譜的模式層。本體是結構化知識庫的概念模板,通過本體庫而形成的知識庫不僅層次結構較強,并且冗余程度較小。
模式層:實體-關系-實體,實體-屬性-性值
數(shù)據(jù)層主要是由一系列的事實組成,而知識將以事實為單位進行存儲。如果用(實體1,關系,實體2)、(實體、屬性,屬性值)這樣的三元組來表達事實,可選擇圖數(shù)據(jù)庫作為存儲介質,例如開源的Neo4j、Twitter的FlockDB、sones的GraphDB等。
數(shù)據(jù)層:比爾蓋茨-妻子-梅琳達·蓋茨,比爾蓋茨-總裁-微軟
知識圖譜的整體架構如下圖所示,其中虛線框內的部分為知識圖譜的構建過程,同時也是知識圖譜更新的過程。
我們來一步一步的分析下這張圖。
虛線框的最左邊是三種輸入數(shù)據(jù)結構,結構化數(shù)據(jù)、半結構化數(shù)據(jù)、非結構化數(shù)據(jù)。這些數(shù)據(jù)可以來自任何地方,只要它對要構建的這個知識圖譜有幫助。
虛線框里面的是整個的知識圖譜的構建過程。其中主要包含了3個階段,信息抽取、知識融合、知識加工。
最右邊是生成的知識圖譜,而且這個技術架構是循環(huán)往復,迭代更新的過程。知識圖譜不是一次性生成,是慢慢積累的過程。
信息抽取:從各種類型的數(shù)據(jù)源中提取出實體、屬性以及實體間的相互關系,在此基礎上形成本體化的知識表達;
知識融合:在獲得新知識之后,需要對其進行整合,以消除矛盾和歧義,比如某些實體可能有多種表達,某個特定稱謂也許對應于多個不同的實體等;
知識加工:對于經過融合的新知識,需要經過質量評估之后(部分需要人工參與甄別),才能將合格的部分加入到知識庫中,以確保知識庫的質量。
其實我們的構建知識圖譜的過程,就是信息抽取、知識融合、知識加工三個過程,但是這三個過程都有各自的難點,下文通過從這三個模塊出發(fā),解析這三個模塊說要解決的問題,會遇到的難點。
信息抽?。╥nfromation extraction)是知識圖譜構建的第1步,其中的關鍵問題是:如何從異構數(shù)據(jù)源中自動抽取信息得到候選指示單元?
信息抽取是一種自動化地從半結構化和無結構數(shù)據(jù)中抽取實體、關系以及實體屬性等結構化信息的技術。
涉及的關鍵技術包括:實體抽取、關系抽取和屬性抽取。
實體抽取又稱為命名實體識別(named entity recognition,NER),是指從文本數(shù)據(jù)集中自動識別出命名實體。實體抽取的質量(準確率和召回率)對后續(xù)的知識獲取效率和質量影響極大,因此是信息抽取中最為基礎和關鍵的部分。
2012年Ling等人歸納出112種實體類別,并基于條件隨機場CRF進行實體邊界識別,最后采用自適應感知機算法實現(xiàn)了對實體的自動分類,取得了不錯的效果。
但是隨著互聯(lián)網中內容的動態(tài)變化,采用人工預定義實體分類體系的方式已經很難適應時代的需求,因此提出了面向開放域的實體識別和分類研究。
在面向開放域的實體識別和分類研究中,不需要(也不可能)為每個領域或者每個實體類別建立單獨的語料庫作為訓練集。因此,該領域面臨的主要挑戰(zhàn)是如何從給定的少量實體實例中自動發(fā)現(xiàn)具有區(qū)分力的模型。
一種思路是根據(jù)已知的實體實例進行特征建模,利用該模型處理海量數(shù)據(jù)集得到新的命名實體列表,然后針對新實體建模,迭代地生成實體標注語料庫。
另一種思路是利用搜索引擎的服務器日志,事先并不給出實體分類等信息,而是基于實體的語義特征從搜索日志中識別出命名實體,然后采用聚類算法對識別出的實體對象進行聚類。
文本語料經過實體抽取,得到的是一系列離散的命名實體,為了得到語義信息,還需要從相關的語料中提取出實體之間的關聯(lián)關系,通過關聯(lián)關系將實體(概念)聯(lián)系起來,才能夠形成網狀的知識結構,研究關系抽取技術的目的,就是解決如何從文本語料中抽取實體間的關系這一基本問題。
人工構造語法和語義規(guī)則(模式匹配)
統(tǒng)計機器學習方法
基于特征向量或核函數(shù)的有監(jiān)督學習方法
研究重點轉向半監(jiān)督和無監(jiān)督
開始研究面向開放域的信息抽取方法
將面向開放域的信息抽取方法和面向封閉領域的傳統(tǒng)方法結合
屬性抽取的目標是從不同信息源中采集特定實體的屬性信息。例如針對某個公眾人物,可以從網絡公開信息中得到其昵稱、生日、國籍、教育背景等信息。屬性抽取技術能夠從多種數(shù)據(jù)來源中匯集這些信息,實現(xiàn)對實體屬性的完整勾畫。
將實體的屬性視作實體與屬性值之間的一種名詞性關系,將屬性抽取任務轉化為關系抽取任務。
基于規(guī)則和啟發(fā)式算法,抽取結構化數(shù)據(jù)
基于百科類網站的半結構化數(shù)據(jù),通過自動抽取生成訓練語料,用于訓練實體屬性標注模型,然后將其應用于對非結構化數(shù)據(jù)的實體屬性抽取。
采用數(shù)據(jù)挖掘的方法直接從文本中挖掘實體屬性和屬性值之間的關系模式,據(jù)此實現(xiàn)對屬性名和屬性值在文本中的定位。
通過信息抽取,我們就從原始的非結構化和半結構化數(shù)據(jù)中獲取到了實體、關系以及實體的屬性信息。
如果我們將接下來的過程比喻成拼圖的話,那么這些信息就是拼圖碎片,散亂無章,甚至還有從其他拼圖里跑來的碎片、本身就是用來干擾我們拼圖的錯誤碎片。
拼圖碎片(信息)之間的關系是扁平化的,缺乏層次性和邏輯性;
拼圖(知識)中還存在大量冗雜和錯誤的拼圖碎片(信息)
那么如何解決這一問題,就是在知識融合這一步里我們需要做的了。
知識融合包括2部分內容:實體鏈接,知識合并
實體鏈接(entity linking):是指對于從文本中抽取得到的實體對象,將其鏈接到知識庫中對應的正確實體對象的操作。
其基本思想是首先根據(jù)給定的實體指稱項,從知識庫中選出一組候選實體對象,然后通過相似度計算將指稱項鏈接到正確的實體對象。
研究歷史:
僅關注如何將從文本中抽取到的實體鏈接到知識庫中,忽視了位于同一文檔的實體間存在的語義聯(lián)系。
開始關注利用實體的共現(xiàn)關系,同時將多個實體鏈接到知識庫中。即集成實體鏈接(collective entity linking)
實體鏈接的流程:
從文本中通過實體抽取得到實體指稱項。
進行實體消歧和共指消解,判斷知識庫中的同名實體與之是否代表不同的含義以及知識庫中是否存在其他命名實體與之表示相同的含義。
在確認知識庫中對應的正確實體對象之后,將該實體指稱項鏈接到知識庫中對應實體。
實體消歧:專門用于解決同名實體產生歧義問題的技術,通過實體消歧,就可以根據(jù)當前的語境,準確建立實體鏈接,實體消歧主要采用聚類法。其實也可以看做基于上下文的分類問題,類似于詞性消歧和詞義消歧。
共指消解:主要用于解決多個指稱對應同一實體對象的問題。在一次會話中,多個指稱可能指向的是同一實體對象。利用共指消解技術,可以將這些指稱項關聯(lián)(合并)到正確的實體對象,由于該問題在信息檢索和自然語言處理等領域具有特殊的重要性,吸引了大量的研究努力。共指消解還有一些其他的名字,比如對象對齊、實體匹配和實體同義。
在構建知識圖譜時,可以從第三方知識庫產品或已有結構化數(shù)據(jù)獲取知識輸入。
常見的知識合并需求有兩個,一個是合并外部知識庫,另一個是合并關系數(shù)據(jù)庫。
將外部知識庫融合到本地知識庫需要處理兩個層面的問題:
數(shù)據(jù)層的融合,包括實體的指稱、屬性、關系以及所屬類別等,主要的問題是如何避免實例以及關系的沖突問題,造成不必要的冗余
通過模式層的融合,將新得到的本體融入已有的本體庫中
然后是合并關系數(shù)據(jù)庫,在知識圖譜構建過程中,一個重要的高質量知識來源是企業(yè)或者機構自己的關系數(shù)據(jù)庫。為了將這些結構化的歷史數(shù)據(jù)融入到知識圖譜中,可以采用資源描述框架(RDF)作為數(shù)據(jù)模型。業(yè)界和學術界將這一數(shù)據(jù)轉換過程形象地稱為RDB2RDF,其實質就是將關系數(shù)據(jù)庫的數(shù)據(jù)換成RDF的三元組數(shù)據(jù)。
在前面,我們已經通過信息抽取,從原始語料中提取出了實體、關系與屬性等知識要素,并且經過知識融合,消除實體指稱項與實體對象之間的歧義,得到一系列基本的事實表達。
然而事實本身并不等于知識。要想最終獲得結構化,網絡化的知識體系,還需要經歷知識加工的過程。
知識加工主要包括3方面內容:本體構建、知識推理和質量評估。
本體(ontology)是指工人的概念集合、概念框架,如“人”、“事”、“物”等。
本體可以采用人工編輯的方式手動構建(借助本體編輯軟件),也可以以數(shù)據(jù)驅動的自動化方式構建本體。因為人工方式工作量巨大,且很難找到符合要求的專家,因此當前主流的全局本體庫產品,都是從一些面向特定領域的現(xiàn)有本體庫出發(fā),采用自動構建技術逐步擴展得到的。
自動化本體構建過程包含三個階段:
實體并列關系相似度計算
實體上下位關系抽取
本體的生成
比如對下面這個例子,當知識圖譜剛得到“阿里巴巴”、“騰訊”、“手機”這三個實體的時候,可能會認為它們三個之間并沒有什么差別,但當它去計算三個實體之間的相似度后,就會發(fā)現(xiàn),阿里巴巴和騰訊之間可能更相似,和手機差別更大一些。
這就是第一步的作用,但這樣下來,知識圖譜實際上還是沒有一個上下層的概念,它還是不知道,阿里巴巴和手機,根本就不隸屬于一個類型,無法比較。因此我們在實體上下位關系抽取這一步,就需要去完成這樣的工作,從而生成第三步的本體。
當三步結束后,這個知識圖譜可能就會明白,“阿里巴巴和騰訊,其實都是公司這樣一個實體下的細分實體。它們和手機并不是一類?!?/p>
在我們完成了本體構建這一步之后,一個知識圖譜的雛形便已經搭建好了。但可能在這個時候,知識圖譜之間大多數(shù)關系都是殘缺的,缺失值非常嚴重,那么這個時候,我們就可以使用知識推理技術,去完成進一步的知識發(fā)現(xiàn)。
我們可以發(fā)現(xiàn):如果A是B的配偶,B是C的主席,C坐落于D,那么我們就可以認為,A生活在D這個城市。
根據(jù)這一條規(guī)則,我們可以去挖掘一下在圖里,是不是還有其他的path滿足這個條件,那么我們就可以將AD兩個關聯(lián)起來。除此之外,我們還可以去思考,串聯(lián)里有一環(huán)是B是C的主席,那么B是C的CEO、B是C的COO,是不是也可以作為這個推理策略的一環(huán)呢?
當然知識推理的對象也并不局限于實體間的關系,也可以是實體的屬性值,本體的概念層次關系等。
推理屬性值:已知某實體的生日屬性,可以通過推理得到該實體的年齡屬性;
推理概念:已知(老虎,科,貓科)和(貓科,目,食肉目)可以推出(老虎,目,食肉目)
這一塊的算法主要可以分為3大類,基于邏輯的推理、基于圖的推理和基于深度學習的推理。
質量評估也是知識庫構建技術的重要組成部分,這一部分存在的意義在于:可以對知識的可信度進行量化,通過舍棄置信度較低的知識來保障知識庫的質量。
從邏輯上看,知識庫的更新包括概念層的更新和數(shù)據(jù)層的更新。
概念層的更新是指新增數(shù)據(jù)后獲得了新的概念,需要自動將新的概念添加到知識庫的概念層中。
數(shù)據(jù)層的更新主要是新增或更新實體、關系、屬性值,對數(shù)據(jù)層進行更新需要考慮數(shù)據(jù)源的可靠性、數(shù)據(jù)的一致性(是否存在矛盾或冗雜等問題)等可靠數(shù)據(jù)源,并選擇在各數(shù)據(jù)源中出現(xiàn)頻率高的事實和屬性加入知識庫。
知識圖譜的內容更新有兩種方式:
全面更新:指以更新后的全部數(shù)據(jù)為輸入,從零開始構建知識圖譜。這種方法比較簡單,但資源消耗大,而且需要耗費大量人力資源進行系統(tǒng)維護;
增量更新:以當前新增數(shù)據(jù)為輸入,向現(xiàn)有知識圖譜中添加新增知識。這種方式資源消耗小,但目前仍需要大量人工干預(定義規(guī)則等),因此實施起來十分困難。
通過知識圖譜,不僅可以將互聯(lián)網的信息表達成更接近人類認知世界的形式,而且提供了一種更好的組織、管理和利用海量信息的方式。目前的知識圖譜技術主要用于智能語義搜索、移動個人助理(Siri)以及深度問答系統(tǒng)(Watson),支撐這些應用的核心技術正是知識圖譜技術。
在智能語義搜索中,當用戶發(fā)起查詢時,搜索引擎會借助知識圖譜的幫助對用戶查詢的關鍵詞進行解析和推理,進而將其映射到知識圖譜中的一個或一組概念之上,然后根據(jù)知識圖譜的概念層次結構,向用戶返回圖形化的知識結構,這就是我們在谷歌和百度的搜索結果中看到的知識卡片。
在深度問答應用中,系統(tǒng)同樣會首先在知識圖譜的幫助下對用戶使用自然語言提出的問題進行語義分析和語法分析,進而將其轉化成結構化形式的查詢語句,然后在知識圖譜中查詢答案。比如,如果用戶提問:『如何判斷是否感染了埃博拉病毒?』,則該查詢有可能被等價變換為『埃博拉病毒的癥狀有哪些?』,然后再進行推理變換,最終形成等價的三元組查詢語句,如(埃博拉,癥狀,?)和(埃博拉,征兆,?)等。如果由于知識庫不完善而無法通過推理解答用戶的問題,深度問答系統(tǒng)還可以利用搜索引擎向用戶反饋搜索結果,同時根據(jù)搜索結果更新知識庫,從而為回答后續(xù)的提問提前做出準備。
來源:https://www.cnblogs.com/huangyc/p/10043749.html
聯(lián)系客服