知識圖譜

知識圖譜(Knowledge Graph)是當前學(xué)術(shù)界和企業(yè)界的研究熱點。中文知識圖譜的構(gòu)建對中文信息處理和中文信息檢索具有重要的價值。中國中文信息學(xué)會聯(lián)合幾所著名高校和企業(yè)舉辦了一個會議http://www.cipsc.org.cn/kg1/

知識圖譜介紹

通過閱讀華南理工大學(xué)華芳槐的博士論文《基于多種數(shù)據(jù)源的中文知識圖譜構(gòu)建方法研究》,可以詳細的了解知識圖譜的發(fā)展及歷史。
一).為什么引入知識圖譜呢?
隨著信息的爆炸式增長,人們很難從海量信息中找到真實需要的信息。搜索引擎正是在這種情況下應(yīng)運而生,其原理是:
1.通過爬蟲從互聯(lián)網(wǎng)中采集信息,通過建立基于關(guān)鍵詞的倒排索引,為用戶提供信息檢索服務(wù);
2.用戶通過使用關(guān)鍵詞描述自己的查詢意圖,搜索引擎依據(jù)一定的排序算法,把符合查詢條件的信息依序(打分)呈現(xiàn)給用戶。
搜索引擎的出現(xiàn),在一定程度上解決了用戶從互聯(lián)網(wǎng)中獲取信息的難題,但由于它們是基于關(guān)鍵詞或字符串的,并沒有對查詢的目標(通常為網(wǎng)頁)和用戶的查詢輸入進行理解。
因此,它們在搜索準確度方面存在明顯的缺陷,即由于HTML形式的網(wǎng)頁缺乏語義,難以被計算機理解。
二).語義Web和本體的概念
為解決互聯(lián)網(wǎng)信息的語義問題,2008年Tim Berners-Lee等人提出了下一代互聯(lián)網(wǎng)——語義網(wǎng)(The Semantic Web)的概念。在語義Web中,所有的信息都具備一定的結(jié)構(gòu),這些結(jié)構(gòu)的語義通常使用本體(Ontology)來描述。
當信息結(jié)構(gòu)化并且具備語義后,計算機就能理解其含義了,此時用戶再進行檢索時,搜索引擎在理解互聯(lián)網(wǎng)中信息含義的基礎(chǔ)上,尋找用戶真實需要的信息。由于互聯(lián)網(wǎng)中信息的含義是由本體來描述的,故本體的構(gòu)建在很大程度上決定了語義Web的發(fā)展。
本體(Ontology)描述了特定領(lǐng)域(領(lǐng)域本體)或所有領(lǐng)域(通用本體)中的概念以及概念之間的關(guān)聯(lián)關(guān)系,并且這些概念和關(guān)系是明確的、被共同認可的。
三).知識圖譜發(fā)展歷程
隨著互聯(lián)網(wǎng)中用戶生成內(nèi)容(User Generated Content, UGC)和開放鏈接數(shù)據(jù)(Linked Open Data, LOD)等大量RDF(Resource Description Framework)數(shù)據(jù)被發(fā)布。互聯(lián)網(wǎng)又逐步從僅包含網(wǎng)頁與網(wǎng)頁之間超鏈接的文檔萬維網(wǎng)(Web of Document)轉(zhuǎn)變?yōu)榘罅棵枋龈鞣N實體和實體之間豐富關(guān)系的數(shù)據(jù)萬維網(wǎng)(Web of Data)。
在此背景下,知識圖譜(Knowledge Graph)正式被Google于2012年5月提出,其目標在于改善搜索結(jié)果,描述真實世界中存在的各種實體和概念,以及這些實體、概念之間的關(guān)聯(lián)關(guān)系。緊隨其后,國內(nèi)外的其它互聯(lián)網(wǎng)搜索引擎公司也紛紛構(gòu)建了自己的知識圖譜,如微軟的Probase、搜狗的知立方、百度的知心。知識圖譜在語義搜索、智能問答、數(shù)據(jù)挖掘、數(shù)字圖書館、推薦系統(tǒng)等領(lǐng)域有著廣泛的應(yīng)用。
谷歌S. Amit的論文《Introducing the Knowledge Graph: Things, Not Strings》
阿米特·辛格爾博士通過“The world is not made of strings, but is made of things” 這句話來介紹他們的知識圖譜的,此處的“thing”是和傳統(tǒng)的互聯(lián)網(wǎng)上的網(wǎng)頁相比較:知識圖譜的目標在于描述真實世界中存在的各種實體和概念,以及這些實體、概念之間的關(guān)聯(lián)關(guān)系。google 還開源了一個圖數(shù)據(jù)庫cayley https://cayley.io/#
知識圖譜和本體之間又存在什么區(qū)別呢?
知識圖譜并不是本體的替代品,相反,它是在本體的基礎(chǔ)上進行了豐富和擴充,這種擴充主要體現(xiàn)在實體(Entity)層面;本體中突出和強調(diào)的是概念以及概念之間的關(guān)聯(lián)關(guān)系,它描述了知識圖譜的數(shù)據(jù)模式(Schema),即為知識圖譜構(gòu)建數(shù)據(jù)模式相當于為其構(gòu)建本體;而知識圖譜則是在本體的基礎(chǔ)上,增加了更加豐富的關(guān)于實體的信息。
知識圖譜可以看成是一張巨大的圖,圖中的節(jié)點表示實體或概念,而圖中的邊則構(gòu)成關(guān)系。在知識圖譜中,每個實體和概念都使用一個全局唯一的確定ID來標識,這個ID對應(yīng)目標的標識符(identifier);這種做法與一個網(wǎng)頁有一個對應(yīng)的URL、數(shù)據(jù)庫中的主鍵相似。
同本體結(jié)構(gòu)一樣,知識圖譜中的概念與概念之間也存在各種關(guān)聯(lián)關(guān)系;同時,知識圖譜中的實體之間也存在這同樣的關(guān)系。實體可以擁有屬性,用于刻畫實體的內(nèi)在特性,每個屬性都是以“<屬性,屬性值>對(Attribute-Value Pair, AVP)”的方式來表示的。
四).知識圖譜舉例
總之,知識圖譜的出現(xiàn)進一步敲開了語義搜索的大門,搜索引擎提供的已經(jīng)不是通向答案的鏈接,還有答案本身。當使用Google搜索,當用戶搜索“劉德華的年齡”時,其結(jié)果包括:
1.列出了相關(guān)的網(wǎng)頁文檔檢索結(jié)果;
2.在網(wǎng)頁文檔的上方給出了搜索的直接精確答案“54歲”;
3.并且列出了相關(guān)的人物“梁朝偉”、“周潤發(fā)”以及他們各自的年齡;
4.同時在右側(cè)以知識卡片(Knowledge Card)的形式列出了“劉德華”的相關(guān)信息,包括:出生年月、出生地點、身高、相關(guān)的電影、專輯等。
知識卡片為用戶所輸入的查詢條件中所包含的實體或搜索返回的答案提供詳細的結(jié)構(gòu)化信息,是特定于查詢(Query Specific)的知識圖譜。
按照覆蓋面,知識圖譜可以分為:
1.通用知識圖譜
目前已經(jīng)發(fā)布的知識圖譜都是通用知識圖譜,它強調(diào)的是廣度,因而強調(diào)更多的是實體,很難生成完整的全局性的本體層的統(tǒng)一管理;另外,通用知識圖譜主要應(yīng)用于搜索等業(yè)務(wù),對準確度要求不是很高。
2.行業(yè)知識圖譜
行業(yè)知識圖譜對準確度要求更高,通常用于輔助各種復(fù)雜的分析應(yīng)用或決策支持;嚴格與豐富的數(shù)據(jù)模式,行業(yè)知識圖譜中的實體通常屬性多且具有行業(yè)意義;目標對象需要考慮各種級別的人員,不同人員對應(yīng)的操作和業(yè)務(wù)場景不同。
本體構(gòu)建:人工構(gòu)建方式、自動構(gòu)建方式和半自動構(gòu)建方式

知識圖譜的架構(gòu)

知識圖譜的邏輯結(jié)構(gòu)分為兩個層次:數(shù)據(jù)層和模式層。
在知識圖譜的數(shù)據(jù)層,知識以事實(fact)為單位存儲在圖數(shù)據(jù)庫。如果以『實體-關(guān)系-實體』或者『實體-屬性-值』三元組作為事實的基本表達方式,則存儲在圖數(shù)據(jù)庫中的所有數(shù)據(jù)將構(gòu)成龐大的實體關(guān)系網(wǎng)絡(luò),形成知識的圖譜。
模式層在數(shù)據(jù)層之上,是知識圖譜的核心,在模式層存儲的是經(jīng)過提煉的知識,通常采用本體庫來管理知識圖譜的模式層,借助本體庫對公理、規(guī)則和約束條件的支持能力來規(guī)范實體、關(guān)系以及實體的類型和屬性等對象之間的聯(lián)系。本體庫在知識圖譜中的地位相當于知識庫的模具,擁有本體庫的知識庫冗余知識較少。

1169201-b23c8f823b5bef26.png
Semantic Computation 語義計算(知識圖譜構(gòu)建技術(shù))

這些大概是傳統(tǒng)的自然語言處理(抽取非結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)據(jù))的問題,已經(jīng)有了很多的開源工具,如下:
基于warpper的抽取工具
beautiful soup: 幫助輕松讀取和解析網(wǎng)頁。非常適合初始解析和抓取。
lxml: 以Python語言處理XML和HTML的庫。
信息抽取工具(主要是python語言)
NLTK 老牌的自然語言處理工具(使用的技術(shù)現(xiàn)在差不多都已經(jīng)不太使用了)
Google Cloud Natural Language API
SpaCy (自然語言處理的新秀,2014年新出的的庫,有許多強大的功能,如詞向量,實體抽取,深度學(xué)習嵌入,多線程等)
KOKO (Python語言): 利用有限證據(jù)的實體提取工具。
下面是一些其他工具(Java和Scala語言)
Stanford Open IE 用于命名實體識別、關(guān)系抽取等。
Mallet, 從文本進行實體抽取。
具體步驟:

預(yù)處理

檢測和清除表面錯誤,包括不可讀代碼(Unreadable codes)、錯誤的截斷(Erroneous Truncation)、由于挖掘錯誤引起的錯誤屬性、雙字節(jié)-單字節(jié)替換(Double byte - single byte replacement)、英語字符處理(English character processing)等。

實體構(gòu)建——實體和屬性的抽取
實體抽取

命名實體挖掘 Mining Named Entities
傳統(tǒng)命名實體(NE)類別:人(Person)、位置(Location)、組織(Organization)
更多對web應(yīng)用程序有用的新類別:Movie、TV series、music、book、software、computer game
更精細的分類:組織 -> {學(xué)校,醫(yī)院,政府,公司...}
Computer game -> {net game,webpage game,...}
其中web中命名實體的特點包括:新的命名實體迅速崛起,包括軟件、游戲和小說;命名實體在網(wǎng)絡(luò)上的名字是非正式的(informal)
1.從查詢?nèi)罩?Query Logs)中學(xué)習命名實體(NEs)
查詢?nèi)罩局邪舜罅康拿麑嶓w,大約70%的搜索查詢包含了NEs。如下圖2007年P(guān)asca論文所示,命名實體能夠根據(jù)上下文特征(context features)識別。如上下文詞“電影、在線觀看、影評”等等,識別“中國合伙人”。
從查詢中學(xué)習種子的上下文特征,然后使用已經(jīng)學(xué)到的上下文特征來提取C類的新種子實體,使用擴展種子集去擴展上下文特征....
利用查詢?nèi)罩驹摲椒ǖ膬?yōu)點是:它能夠覆蓋最新出現(xiàn)的命名實體;它的缺點是:舊的或者不受歡迎的命名實體可能會錯過。
2.從普通文本中學(xué)習命名實體(Learning NEs from Plain Texts)
文字包裝器(Text Wrappers)被廣泛使用于從純文本中提取(Extracting)命名實體。例如包裝器“電影《[X]》”,“影片[X],導(dǎo)演”,其中[X]表示電影名字
3.使用URL文本混合模式(Url-text Hybrid Patterns)學(xué)習命名實體
是否有可能只從網(wǎng)頁標題(webpage titles)中提取命名實體呢?確實。99%的命名實體都能夠在一些網(wǎng)頁標題中發(fā)現(xiàn)。
Url文本混合模型應(yīng)該考慮URL約束,簡單的文本模式可信的URL鏈接是足夠的,復(fù)雜的文本模式需要低質(zhì)量的URL。 可以參考 《Bootstrapping Large-scale Named Entities using URL-Text Hybrid Patterns》
4.算法自動從非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)抽取實體,2012年Ling等人歸納出112種實體類別,并基于條件隨機場CRF進行實體邊界識別,最后采用自適應(yīng)感知機算法實現(xiàn)了對實體的自動分類,取得了不錯的效果。

抽取關(guān)系

從相關(guān)的語料中提取出實體之間的關(guān)聯(lián)關(guān)系,通過關(guān)聯(lián)關(guān)系將實體(概念)聯(lián)系起來。
早期的關(guān)系抽取研究方法主要是通過人工構(gòu)造語法和語義規(guī)則。隨后,出現(xiàn)了大量基于特征向量或者核函數(shù)的有監(jiān)督學(xué)習方法,關(guān)系抽取的準確性也不斷提高。但以上研究成果的共同特點是需要預(yù)先定義實體關(guān)系類型,如雇傭關(guān)系、整體部分關(guān)系以及位置關(guān)系等。
與之相對的,Banko等人提出了面向開放域的信息抽取方法框架(open information extraction,OpenIE),并發(fā)布了基于自監(jiān)督(self-supervised)學(xué)習方式的開放信息抽取原型系統(tǒng)(TextRunner),該系統(tǒng)采用少量人工標記數(shù)據(jù)作為訓(xùn)練集,據(jù)此得到一個實體關(guān)系分類模型,再依據(jù)該模型對開放數(shù)據(jù)進行分類,依據(jù)分類結(jié)果訓(xùn)練樸素貝葉斯模型來識別『實體-關(guān)系-實體』三元組,經(jīng)過大規(guī)模真實數(shù)據(jù)測試,取得了顯著優(yōu)于同時期其他方法的結(jié)果。
TextRunner系統(tǒng)中錯誤的部分主要是一些無意義或者不和邏輯的實體關(guān)系三元組,據(jù)此引入語法限制條件和字典約束,采用先識別關(guān)系指示詞,然后再對實體進行識別的策略,有效提高了關(guān)系識別準確率。

3。屬性抽取
屬性抽取的目標是從不同信息源中采集特定實體的屬性信息。例如針對某個公眾人物,可以從網(wǎng)絡(luò)公開信息中得到其昵稱、生日、國籍、教育背景等信息。屬性抽取技術(shù)能夠從多種數(shù)據(jù)來源中匯集這些信息,實現(xiàn)對實體屬性的完整勾畫。一般從百科類網(wǎng)站的半結(jié)構(gòu)化數(shù)據(jù),通過自動抽取生成訓(xùn)練語料,用于訓(xùn)練實體屬性標注模型,然后將其應(yīng)用于對非結(jié)構(gòu)化數(shù)據(jù)的實體屬性抽?。?br> 屬性值對挖掘 AVP Mining
AVP英文全稱是Attribute Values Pairs。那么,哪里會見到這種AVP數(shù)據(jù)呢?
在線百科:三大百科 Baidu Baike \ Wikipedia \ Hudong Baike
垂直網(wǎng)站(Vertical websites):IMDB,douban for videos
普通文檔網(wǎng)頁:從結(jié)構(gòu)化、半結(jié)構(gòu)化(semistructured)和非結(jié)構(gòu)化文本中爬取AVP,例如挖掘垂直網(wǎng)站AVP數(shù)據(jù)
可能會遇到兩個問題?
第一個是如何找到相關(guān)的垂直網(wǎng)站,如果是尋找流行的網(wǎng)站是容易的,如音樂、電影、小說;但是如果是尋找長尾域(long tail domains)的網(wǎng)站是困難的,如化妝品、雜志。第二個問題是面對眾多的數(shù)據(jù)怎樣生成提取模式。
同時,人工模式可以保證很高的準確性,但是工具能夠幫助我們更加便利的編輯模式。最后AVP知識需要日常中積累和更新,包括不同時間類別的更新、新網(wǎng)站的加入、無序或網(wǎng)站崩潰需要自動檢測或手工處理。
對屬性進行一些轉(zhuǎn)換
1.Value Type Recognition 值類型識別
屬性對應(yīng)的值類型。其中值類型包括:Number(數(shù)字)、Data/Time(日期/時間)、Entity(實體),Enumeration(枚舉)、Text(default,默認文本)。
2.Value Normalization 值正?;?br> Splitting(分詞)
Conversion(轉(zhuǎn)換),E.g., 2.26m -> 226cm
3.Attribute Normalization 屬性正?;?br> Domain-specific problem(特定領(lǐng)域問題)
某些屬性被視為同義詞只在特定的領(lǐng)域甚至是兩個特定的知識源中。
例如“大小(size)”和“屏幕(screen)”在一些手機網(wǎng)站上表示同義詞,但不是所有的開放域解釋都相同,可以使用分類模型(Classification model)來識別候選同義屬性。其中特征包括屬性淺層相似特征、相似屬性值特征、相似值類型(Value-type)特征和實體值特征。最后評選者從所有候選中選擇正確的相似屬性對。

Knowledge Fusion 知識融合

1.融合從不同數(shù)據(jù)來源的知識,關(guān)鍵問題——實體消歧(Entity disambiguation)。
其解決方法是計算兩個相同名稱實體之間的相似性。一些基本屬性可以用來確定實體的身份,如“works of a writer”。其他一些屬性只能用來作相似性的特征,如“nationality of a person”(國籍)。隨著統(tǒng)計機器學(xué)習方法被引入該領(lǐng)域,McCarthy等人將C4.5決策樹算法也被應(yīng)用于解決實體消歧問題。
2.Entity Classification 實體分類
為什么需要分類呢?因為一些實體會丟失類別信息;同時不失所有從源數(shù)據(jù)中挖掘的實體都有類別(category)。解決方法是:通過監(jiān)督模型訓(xùn)練已知類別的實體和它們的屬性-值對;使用結(jié)構(gòu)化數(shù)據(jù)(AVPs)和非結(jié)構(gòu)化數(shù)據(jù)(上下文文本)來精確地分類特征。
下面是一些在知識應(yīng)用層的語義計算模塊/方法。主要是具體的應(yīng)用:
實體消歧用于推理(Entity disambiguation for reasoning)
相關(guān)實體消歧(Related entity disambiguation)
搜索需求識別(Search requirement recognition)
需要識別用戶搜索的“李娜”是網(wǎng)球運動員、歌手、舞蹈家還是其他。
其核心問題就是AVP相似計算,包括為不同的屬性定義不同的權(quán)重、有用屬性和無用屬性等。

異構(gòu)數(shù)據(jù)整合(實體對齊、屬性值決策、關(guān)系建立)

1.實體對齊
例如對“張藝謀”這個實體進行對齊,數(shù)據(jù)源來自互動百科、百度百科、tvmao網(wǎng)站、搜狐娛樂。
比如張藝謀的國籍需要對齊“中華人民共和國”、“中國(內(nèi)地)”、“中國”三個屬性值;“國家”、“國籍”、“國籍”需要屬性對齊;再如出生日期對齊“1951年11月14日”、“1951-11-14”、“1951-11-14”實現(xiàn)屬性值對齊。
還可以接入外部知識庫,
國際上流行的知識庫或數(shù)據(jù)源如下所示:
Wolframalpha: 一個計算知識引擎,而不是搜索引擎。其真正的創(chuàng)新之處,在于能夠馬上理解問題,并給出答案,在被問到"珠穆朗瑪峰有多高"之類的問題時,WolframAlpha不僅能告訴你海拔高度,還能告訴你這座世界第一高峰的地理位置、附近有什么城鎮(zhèn),以及一系列圖表。
Freebase: 6800萬實體,10億的關(guān)系。Google號稱擴展到5億實體和25億的關(guān)系。所有內(nèi)容都由用戶添加,采用創(chuàng)意共用許可證,可以自由引用。
DBpedia: wikipedia基金會的一個子項目,處于萌芽階段。DBpedia是一個在線關(guān)聯(lián)數(shù)據(jù)知識庫項目。它從維基百科的詞條中抽取結(jié)構(gòu)化數(shù)據(jù),以提供更準確和直接的維基百科搜索,并在其他數(shù)據(jù)集和維基百科之間創(chuàng)建連接,并進一步將這些數(shù)據(jù)以關(guān)聯(lián)數(shù)據(jù)的形式發(fā)布到互聯(lián)網(wǎng)上,提供給需要這些關(guān)聯(lián)數(shù)據(jù)的在線網(wǎng)絡(luò)應(yīng)用、社交網(wǎng)站或者其他在線關(guān)聯(lián)數(shù)據(jù)知識庫。
還有一個中文知識庫openkg http://openkg.cn

知識推理

知識推理是指從知識庫中已有的實體關(guān)系數(shù)據(jù)出發(fā),進行計算機推理,建立實體間的新關(guān)聯(lián),從而拓展和豐富知識網(wǎng)絡(luò)。知識推理是知識圖譜構(gòu)建的重要手段和關(guān)鍵環(huán)節(jié),通過知識推理,能夠從現(xiàn)有知識中發(fā)現(xiàn)新的知識。
知識推理的對象也并不局限于實體間的關(guān)系,也可以是實體的屬性值,本體的概念層次關(guān)系等。
知識的推理方法可以分為2大類:基于邏輯的推理和基于圖的推理。
基于邏輯的推理主要包括一階邏輯謂詞、描述邏輯以及基于規(guī)則的推理。
一階謂詞邏輯建立在命題的基礎(chǔ)上,在一階謂詞邏輯中,命題被分解為個體(individuals)和謂詞(predication)2部分。個體是指可獨立存在的客體,可以是一個具體的事物,也可以是一個抽象的概念。謂詞是用來刻畫個體性質(zhì)及事物關(guān)系的詞。比如(A,friend,B)就是表達個體A和B關(guān)系的謂詞。
對于復(fù)雜的實體關(guān)系,可以采用描述邏輯進行推理。描述邏輯(description logic)是一種基于對象的知識表示的形式化工具,是一階謂詞邏輯的子集,它是本體語言推理的重要設(shè)計基礎(chǔ)。
基于規(guī)則的推理可以利用專門的規(guī)則語言,如SWRL(semantic Web rule language)。
基于圖的推理方法主要基于神經(jīng)網(wǎng)絡(luò)模型或Path Ranking算法。Path Ranking算法的基本思想是將知識圖譜視為圖(以實體為節(jié)點,以關(guān)系或?qū)傩詾檫叄?,從源?jié)點開始,在圖上執(zhí)行隨機游走,如果能夠通過一個路徑到達目標節(jié)點,則推測源和目的節(jié)點可能存在關(guān)系。

reference:
https://stanfordnlp.github.io/CoreNLP/openie.html
http://www.52nlp.cn/tag/python-spacy
https://github.com/explosion/spaCy
https://github.com/biggorilla-gh/koko
https://leetcode.com/problemset/all/
https://github.com/HazyResearch/deepdive
https://www.biggorilla.org/zh-hans/data-extraction
http://www.itdecent.cn/p/4f09043e22ea
https://cayley.io/#
http://openkg.cn
https://m.wikidata.org/wiki/Wikidata:Main_Page
http://m.blog.csdn.net/column/details?alias=eastmount-kgdmnlp&page=2
https://googleblog.blogspot.hk/2012/05/introducing-knowledge-graph-things-not.html?m=1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容