【知識(shí)圖譜】產(chǎn)品視角下的知識(shí)圖譜構(gòu)建流程與技術(shù)理解
編輯導(dǎo)語:隨著人工智能的發(fā)展,知識(shí)圖譜也變得越來越重要。知識(shí)圖譜是一種特殊類型的圖,強(qiáng)調(diào)上下文的理解。本文在產(chǎn)品視角下,帶大家一起看看知識(shí)圖譜的構(gòu)建流程與技術(shù)理解。感興趣朋友快來看看吧。
一、引言
伴隨著人工智能的逐漸落地,知識(shí)圖譜也越來越進(jìn)入大眾的視野。
或許你并沒有留意,但不論是谷歌搜索人物得到的關(guān)聯(lián)圖譜,購物網(wǎng)站越來越精確的商品推薦,還是常見的siri,小愛同學(xué)等語音助手,或者是金融放貸時(shí)的風(fēng)險(xiǎn)控制,智慧醫(yī)療的治療方案推薦;所有這些智能應(yīng)用,背后都少不了知識(shí)圖譜的支撐。
如果打個(gè)比方的話,知識(shí)圖譜就是人工智能的記憶系統(tǒng),讓機(jī)器感知世界,認(rèn)識(shí)世界,并且通過規(guī)模龐大的知識(shí)圖譜的融合、推理、深度學(xué)習(xí)等,將這些記憶鏈接、應(yīng)用、產(chǎn)生智慧。
可以說,知識(shí)圖譜已經(jīng)成了人工智能時(shí)代的基礎(chǔ)設(shè)施。
以下是我在查閱資料時(shí)看到的一句話,覺得很貼切,在此應(yīng)用:
知識(shí)對(duì)于人工智能的價(jià)值就在于,讓機(jī)器具備認(rèn)知能力和理解能力。
構(gòu)建知識(shí)圖譜這個(gè)過程的本質(zhì),就是讓機(jī)器形成認(rèn)知能力,理解這個(gè)世界。
本文主要想以產(chǎn)品的視角,展示知識(shí)圖譜的What,Why和How,即知識(shí)圖譜是什么(定義和構(gòu)成,組成元素和組織規(guī)則),知識(shí)圖譜的價(jià)值(有什么應(yīng)用場(chǎng)景,應(yīng)用的效果如何) 以及如何構(gòu)建一個(gè)知識(shí)圖譜(技術(shù)流程和各個(gè)流程的關(guān)鍵技術(shù))。
二、知識(shí)圖譜是什么
目前學(xué)術(shù)界對(duì)于知識(shí)圖譜還沒有較為統(tǒng)一的定義,趙軍老師的《知識(shí)圖譜》中做出了如下定義:
知識(shí)圖譜是一種比較通用的語義知識(shí)的形式化描述框架,用節(jié)點(diǎn)表示語義符號(hào),用邊表示符號(hào)之間的語義關(guān)系。
或者再通俗一點(diǎn),知識(shí)圖譜是一種用圖模型來描述知識(shí)和建模世界萬物之間的關(guān)聯(lián)關(guān)系的技術(shù)方法,我個(gè)人對(duì)知識(shí)圖譜的理解如下:
知識(shí)圖譜基本的組成元素,是圖節(jié)點(diǎn)和邊。從生活中的經(jīng)驗(yàn)來看,圖節(jié)點(diǎn)可以是實(shí)例和某個(gè)實(shí)體,比如建材、水泥等等。
而節(jié)點(diǎn)與節(jié)點(diǎn)之間的邊,則表示了兩種節(jié)點(diǎn)之間的關(guān)系,比如建材水泥之間畫出一條邊,標(biāo)注水泥是建材的子類。
當(dāng)然,這樣說是不嚴(yán)謹(jǐn)?shù)摹?/p>
為了讓計(jì)算機(jī)能夠理解和使用,需要一套計(jì)算機(jī)科學(xué)的規(guī)范定義,節(jié)點(diǎn)對(duì)應(yīng)的是本體(Ontology)和實(shí)例,節(jié)點(diǎn)和節(jié)點(diǎn)間相互的關(guān)系可以用圖結(jié)構(gòu)或者相對(duì)簡化的三元組來表示。
通過這樣的數(shù)據(jù)結(jié)構(gòu),可以完備的表示信息。
有了信息還需要使用,比如查詢、推理等。
要使計(jì)算機(jī)理解數(shù)據(jù),就要按照一定的規(guī)則存儲(chǔ)和組織語言,通過各種關(guān)鍵字標(biāo)明每一處信息的含義是什么。
在知識(shí)圖譜中,有RDF(Resource Description Frame 資源描述框架)和Owl語言(Ontology Web Language 網(wǎng)絡(luò)本體語言)來對(duì)本體進(jìn)行描述,讓計(jì)算機(jī)理解圖譜中的信息。
會(huì)有專門的結(jié)構(gòu)化查詢語言對(duì)圖譜進(jìn)行查詢,比如針對(duì)RDF的查詢語言SPARQL或者針對(duì)圖結(jié)構(gòu)的查詢語言Cypher(開源圖數(shù)據(jù)庫Neo4j中實(shí)現(xiàn)的圖查詢語言)。
具體怎樣定義與描述,會(huì)在知識(shí)圖譜構(gòu)建部分有限的展開。
知識(shí)圖譜是一種圖結(jié)構(gòu),因此可以擺脫傳統(tǒng)關(guān)系型數(shù)據(jù)庫的嚴(yán)格限制,在字段和實(shí)例的增加、修改等方面都更加隨意和自由,可以加入新的實(shí)例,新的節(jié)點(diǎn),新的關(guān)系。
還可以把不同的實(shí)體建立聯(lián)系,把多個(gè)圖譜的同一實(shí)體建立聯(lián)系(實(shí)體對(duì)齊),這和人類認(rèn)知世界的方式是類似的。
這也是知識(shí)圖譜的優(yōu)勢(shì),容易建模,有很大的靈活性;結(jié)構(gòu)化的數(shù)據(jù)和圖結(jié)構(gòu)的組織,使得機(jī)器可讀的同時(shí)人類也易于理解,這和人腦的神經(jīng)元及記憶系統(tǒng)很像,也更容易產(chǎn)生人工智能。
三、知識(shí)圖譜可以做什么
這個(gè)問題的答案是非常寬泛的,如果從一個(gè)知識(shí)庫或者數(shù)據(jù)庫的角度來看,知識(shí)圖譜可以是任何系統(tǒng)的基礎(chǔ)工程,涉及到存儲(chǔ)、記憶、分析和智能的東西,都可以應(yīng)用知識(shí)圖譜。
直接思考的話,知識(shí)圖譜首先是一個(gè)規(guī)模龐大的數(shù)據(jù)庫(或者說知識(shí)庫),百萬級(jí)、億級(jí)的數(shù)據(jù)相互關(guān)聯(lián),可以從更多維度對(duì)事物進(jìn)行更精確的分析。
舉個(gè)例子,金融知識(shí)圖譜可以通過關(guān)聯(lián)來查找異常、找出團(tuán)伙、推薦目標(biāo)客戶等,以往這些關(guān)聯(lián)業(yè)務(wù)需要結(jié)構(gòu)化數(shù)據(jù)庫進(jìn)行查找,而大部分行業(yè)存在著許多非結(jié)構(gòu)化數(shù)據(jù),比如表格,文本、圖片等,知識(shí)圖譜可以從這些非結(jié)構(gòu)化數(shù)據(jù),半結(jié)構(gòu)化數(shù)據(jù)中提取信息,完成分析,相當(dāng)于大大擴(kuò)展了應(yīng)用的維度和廣度。
這一類對(duì)數(shù)據(jù)的直接應(yīng)用,就是圖結(jié)構(gòu)消費(fèi)場(chǎng)景,包括圖數(shù)據(jù)搜索,路徑分析,關(guān)聯(lián)分析,圖譜可視化等等,其核心就是對(duì)龐大的圖譜數(shù)據(jù)快速查找、關(guān)聯(lián)、分析和展現(xiàn)。
除了對(duì)數(shù)據(jù)的直接查找和分析,還可以從自然語言的角度應(yīng)用知識(shí)圖譜。知識(shí)圖譜天然的適合人類自然語言的處理,可以用人的思維提出問題,利用圖譜龐大的數(shù)據(jù)規(guī)模,通過算法、推理規(guī)則、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等產(chǎn)人工智能,實(shí)現(xiàn)一些問答和分析。
舉個(gè)例子,知識(shí)圖譜中存在<砂石,組成,水泥>和<水泥,組成,混凝土>兩個(gè)三元組,通過知識(shí)推理,可以得到<砂石,組成,混凝土>,即通過一定的知識(shí)推理得到未知的事實(shí)與關(guān)系。
這一類數(shù)據(jù)應(yīng)用,就是語義消費(fèi)場(chǎng)景,包括自然語言檢索、智能分析、知識(shí)推理等等,其核心是把圖譜中的知識(shí)通過規(guī)則或深度學(xué)習(xí),形成一定的人工智能。
以上是從技術(shù)應(yīng)用的角度分析知識(shí)圖譜的應(yīng)用,但所有的知識(shí)圖譜最終都是要形成產(chǎn)品,提供服務(wù)的。
從我們接觸到的各種產(chǎn)品來說,可以分為通用知識(shí)圖譜,垂直領(lǐng)域知識(shí)圖譜,還有針對(duì)企業(yè)提供服務(wù)的,專門構(gòu)建知識(shí)圖譜的組件和標(biāo)準(zhǔn)化、流程化、自動(dòng)化工具。
通用的知識(shí)圖譜,就是我們常見的搜索引擎,問答系統(tǒng),或者各種百科。
自2012年谷歌發(fā)布知識(shí)圖譜項(xiàng)目,并宣布以此為基礎(chǔ)構(gòu)建下一代智能化搜索引擎后,知識(shí)圖譜的應(yīng)用逐漸深入。
現(xiàn)在使用谷歌,百度等進(jìn)行搜索,不再僅僅是關(guān)鍵字匹配,而是關(guān)鍵詞增強(qiáng)檢索,即以檢索詞在圖譜中的的同義詞、上下位詞等詞集合共同搜索,用來拓展或約束搜索。
同時(shí)還可以關(guān)聯(lián)更多的本體及實(shí)例,直接找到答案或者展示與檢索詞有關(guān)的所有關(guān)系。
例如搜索某一個(gè)電影,可以看到以圖譜形式展現(xiàn)的電影的所有主要演員,導(dǎo)演,上映日期等信息。
關(guān)于關(guān)系搜索和結(jié)構(gòu)化展示,更加直觀的例子是天眼查,可以通過搜索一家公司,找到其所有關(guān)聯(lián)的子公司與法人等,同樣是以圖譜的方式展現(xiàn)的。
問答系統(tǒng)中,用戶直接輸入問題或通過語音識(shí)別,將問題轉(zhuǎn)化為文本,再由自然語言處理找到關(guān)鍵信息以及應(yīng)當(dāng)采取的操作,將用戶問題轉(zhuǎn)變?yōu)橹R(shí)圖譜可識(shí)別的查詢語句,然后在知識(shí)圖譜中檢索得到候選實(shí)體集合,通過對(duì)不同候選實(shí)體進(jìn)行打分及排序,得到問題的答案。
知識(shí)圖譜對(duì)于事實(shí)類、是非類、定義類等問答效果較好。
百科產(chǎn)品中,知識(shí)圖譜也越來越重要。
百科本身就具有龐大且多維度的信息,如果把百科的數(shù)據(jù)轉(zhuǎn)化為圖譜,就可以在保證圖譜數(shù)據(jù)質(zhì)量的情況下,極大的拓展圖譜規(guī)模,其中一個(gè)代表就是維基百科的子項(xiàng)目Wikidata。
Wikidata的目標(biāo)是構(gòu)建一個(gè)免費(fèi)開放、多語言、任何人或機(jī)器都可以編輯修改的大規(guī)模鏈接知識(shí)庫。Wikidata支持以三元組為基礎(chǔ)的知識(shí)條目的自由編輯。
一個(gè)三元組代表一個(gè)關(guān)于該條目的陳述(Statement)。
例如,可以給“土木工程”的條目增加“<土木工程,涉及,工程施工>”的三元組陳述。自2012年啟動(dòng)到現(xiàn)在,Wikidata已經(jīng)有多于5000萬條目了。
垂直領(lǐng)域的知識(shí)圖譜是相對(duì)通用知識(shí)圖譜而言的,面向特定領(lǐng)域的知識(shí)圖譜,如電商、金融、醫(yī)療等。垂直領(lǐng)域的知識(shí)圖譜不一定是從互聯(lián)網(wǎng)等開放數(shù)據(jù)抓取,而更可能是企業(yè)內(nèi)部的專業(yè)數(shù)據(jù)。
同時(shí)知識(shí)表示也不止是三元組等事實(shí)性知識(shí),通常由更為復(fù)雜的本體知識(shí)和規(guī)則型知識(shí)。
知識(shí)抽取的質(zhì)量也要求更高,往往需要人工校驗(yàn),保障質(zhì)量。
更重要的是,垂直領(lǐng)域的知識(shí)圖譜應(yīng)用形式更全面,除了搜索問答,通常還有決策分析,業(yè)務(wù)管理等,這些業(yè)務(wù)對(duì)推理的要求更高,并要求更強(qiáng)的可解釋性。
以金融知識(shí)圖譜為例,Kensho采用知識(shí)圖譜輔助投資顧問和投資研究,圖譜的主要知識(shí)來源是于機(jī)構(gòu)已有的結(jié)構(gòu)化數(shù)據(jù)和公開的公報(bào),研報(bào)和新聞的聯(lián)合抽取等。
金融概念復(fù)雜性較高,并較多的依賴規(guī)則型知識(shí)進(jìn)行投資因素的關(guān)聯(lián)分析。此外,金融知識(shí)圖譜還具有高度的時(shí)效性,需要對(duì)金融知識(shí)進(jìn)行時(shí)間維度的建模。
最后一部分是知識(shí)圖譜的組件和標(biāo)準(zhǔn)化,這些都是面向B端企業(yè),為了企業(yè)更高效高質(zhì)量的構(gòu)建知識(shí)圖譜所做的工作。
知識(shí)圖譜組件是指圍繞知識(shí)圖譜的構(gòu)建一些相關(guān)組件產(chǎn)品,比如本體編輯器、關(guān)系抽取器、垂直搜索等等,具體工具如斯坦福大學(xué)開源的本體編輯工具Protégé,斯坦福大學(xué) InfoLab 實(shí)驗(yàn)室開源的知識(shí)抽取的系統(tǒng)Deepdive。
同時(shí),知識(shí)圖譜構(gòu)建的標(biāo)準(zhǔn)化,流程化工作也在進(jìn)行,如中國電子技術(shù)標(biāo)準(zhǔn)化研究院2019年發(fā)布的《知識(shí)圖譜標(biāo)準(zhǔn)化白皮書》。
綜上,知識(shí)圖譜具有廣泛的應(yīng)用,既是一個(gè)規(guī)模龐大,查詢靈活的知識(shí)庫,也可以通過數(shù)據(jù)挖掘,深度學(xué)習(xí)等產(chǎn)生一定程度的人工智能,在可以預(yù)見的未來,知識(shí)圖譜作為一種重要的人工智能基礎(chǔ)設(shè)施,將會(huì)持續(xù)發(fā)展,帶來更多變化。
四、怎么樣構(gòu)建一個(gè)知識(shí)圖譜
知識(shí)圖譜有廣泛的應(yīng)用和巨大的應(yīng)用價(jià)值,越來越多的企業(yè)也在著手進(jìn)行知識(shí)圖譜的構(gòu)建。
按流程來說,知識(shí)圖譜具有知識(shí)表示與建模、知識(shí)抽取、知識(shí)融合、知識(shí)圖譜推理、知識(shí)統(tǒng)計(jì)與圖挖掘、知識(shí)檢索與知識(shí)分析等主要的幾步。
以下為知識(shí)圖譜技術(shù)路線圖。
五、知識(shí)表示與建模
要想實(shí)現(xiàn)人工智能,首先要做的就是讓人和機(jī)器建立起對(duì)這個(gè)世界的統(tǒng)一認(rèn)識(shí),即如何把現(xiàn)實(shí)世界變成機(jī)器能理解,可解釋的知識(shí)庫,而答案也正藏在知識(shí)圖譜這個(gè)名稱中:將知識(shí)圖譜化。
這一步也就是對(duì)知識(shí)的表示與建模。
數(shù)據(jù)本身是有價(jià)值的,但其價(jià)值是需要組織和挖掘而產(chǎn)生的,雜亂無章的數(shù)據(jù)是不能被識(shí)別的,也無法產(chǎn)生價(jià)值。
數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。對(duì)應(yīng)到知識(shí)圖譜中,主要是圖結(jié)構(gòu)和三元組。
圖結(jié)構(gòu)是很好理解的,圖譜本身就是以圖的結(jié)構(gòu)來存儲(chǔ)和展現(xiàn)的。
我們對(duì)現(xiàn)實(shí)世界的理解也是如此,先認(rèn)識(shí)到某一個(gè)具體的事物或?qū)嵗?,即建立?jié)點(diǎn),再通過建立節(jié)點(diǎn)間的關(guān)系完成對(duì)事物的認(rèn)識(shí)。
這里需要引入一些概念,首先是本體(Ontology)和實(shí)例,本體原本是一個(gè)哲學(xué)概念,知識(shí)圖譜中本體實(shí)際上就是對(duì)特定領(lǐng)域之中某套概念及其相互之間關(guān)系的形式化表達(dá),實(shí)例就是本體的具體例子,這就像JAVA中的類和對(duì)象,類是本體,new一個(gè)對(duì)象是實(shí)例。
不同對(duì)象之間可能存在關(guān)系,而這就是一條邊。
實(shí)體是本體、實(shí)例及關(guān)系的整合,比如“手機(jī)”是本體框中的一個(gè)概念,概念中也規(guī)定了相關(guān)屬性比如“處理器”,蘋果手機(jī)是一個(gè)具體的手機(jī),叫做實(shí)例,所以蘋果手機(jī)也有處理器,蘋果手機(jī)以及體現(xiàn)蘋果手機(jī)的本體概念“手機(jī)”以及相關(guān)屬性,叫做一個(gè)實(shí)體。
大量實(shí)體的集合形成了知識(shí)庫,例如DBpedia。這些實(shí)體通過語義相互連接,就形成了語義網(wǎng)絡(luò),而這也即是知識(shí)圖譜的前身。
大部分情況下,人們將實(shí)體和概念統(tǒng)稱為實(shí)體,將關(guān)系和屬性統(tǒng)稱為關(guān)系,對(duì)知識(shí)圖譜進(jìn)行了簡化,這樣知識(shí)圖譜就變成了描述實(shí)體以及實(shí)體之間的關(guān)系的圖結(jié)構(gòu)。
如果按照簡化過的知識(shí)圖譜定義,圖譜中的兩個(gè)節(jié)點(diǎn)和一條邊就構(gòu)成了一個(gè)實(shí)體,比如“水泥是建材的一個(gè)子類”,就可以表示為“水泥”和“建材”兩個(gè)節(jié)點(diǎn),以及一條由水泥指向建材的,屬性為子類的有向邊。
在圖結(jié)構(gòu)中,這樣的邊是可以快速添加的,而節(jié)點(diǎn)也都是可以快速添加的,這比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫具有更高的靈活性,也更容易建模,修改的時(shí)候也不會(huì)造成太大的工作量。
圖結(jié)構(gòu)有專門的圖數(shù)據(jù)庫,目前知識(shí)圖譜中應(yīng)用的比較成熟的圖數(shù)據(jù)庫有Neo4J。Neo4J是一個(gè)近年來發(fā)展起來的圖形化數(shù)據(jù)庫,相對(duì)于關(guān)系型數(shù)據(jù)庫來說,圖數(shù)據(jù)庫善于處理大量復(fù)雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),圖數(shù)據(jù)庫中通過節(jié)點(diǎn)可直接查詢,而關(guān)系型數(shù)據(jù)庫中,需要通過多張表連接查詢,產(chǎn)生性能上的問題。
Neo4J尤其對(duì)圖算法進(jìn)行了改進(jìn),查詢和修改的速度較快,性能也可接受。
Neo4j還提供了大規(guī)模可擴(kuò)展性,在一臺(tái)機(jī)器上可以處理數(shù)十億節(jié)點(diǎn)/關(guān)系/屬性的圖,可以擴(kuò)展到多臺(tái)機(jī)器并行運(yùn)行。Neo4j中實(shí)現(xiàn)的圖查詢語言是Cypher Quary Language,簡稱CQL。
除了圖結(jié)構(gòu),現(xiàn)在大部分知識(shí)圖譜中采用的結(jié)構(gòu)是三元組,是一種更容易存儲(chǔ)、識(shí)別和利用的的數(shù)據(jù)結(jié)構(gòu)。
簡單來說,三元組就是知識(shí)圖譜中的兩個(gè)節(jié)點(diǎn)和一條邊組成的關(guān)系對(duì),或者說是一個(gè)實(shí)體。
要讓計(jì)算機(jī)理解三元組,就必須對(duì)其進(jìn)行規(guī)范化定義,這就引出了RDF(Resource Description Frame 資源描述框架)和Owl語言(Ontology Web Language 網(wǎng)絡(luò)本體語言)等定義標(biāo)準(zhǔn)。
圖:三元組
RDF(Resource Description Frame 資源描述框架)是一個(gè)使用XML語法來表示的資料模型(Data model),是由W3C制定并推廣的一套用于描述實(shí)體和關(guān)系的標(biāo)準(zhǔn)。
RDF使用統(tǒng)一資源標(biāo)識(shí)(URI,Uniform Resource Indentifiers)來命名來標(biāo)識(shí)資源,任何一個(gè)事物或概念,只要按照RDF表示法描述都可以成為一個(gè)資源。
有了資源之后,RDF使用屬性和屬性值來描述資源,屬性和屬性值定義了資源的形態(tài)。
特定的資源以一個(gè)被命名的屬性與相應(yīng)的屬性值來描述,稱為一個(gè)RDF陳述,其中資源是主詞(Subject),屬性是述詞(Predicate),屬性值則是受詞(Object),需要注意的是,陳述的受詞除了可能是一個(gè)字符串,也可能是其它的資料形態(tài)或是一個(gè)資源。
一個(gè)RDF實(shí)例<S,P,O>(也即<主語,謂語,賓語>)就是一個(gè)三元組,比如<水泥,組成,混凝土>,RDF是抽象的數(shù)據(jù)模型,支持不同的序列化格式,例如RDF/XML、Turtle和N-Triple,其中<水泥,組成,混凝土>的RDF/XML具體的表示如下:
每一個(gè)RDF實(shí)例都可以看成一個(gè)知識(shí)單元,也是圖譜的最小組成部分。
RDF使用的是開放世界假設(shè),即三元組<水泥,組成,混凝土>對(duì)于計(jì)算機(jī)而言意味著混凝土至少有水泥這一種組成材料,而不是只有水泥這一種組成材料。
RDF有一些基本詞匯如rdf:
type用于指定資源類型,但如果想描述某個(gè)領(lǐng)域里類別和屬性的層級(jí)結(jié)構(gòu)、包含關(guān)系等是不夠的。
比如限定<梁思成,畢業(yè)于,清華大學(xué)>,RDF可以表示梁思成和清華大學(xué)這兩個(gè)實(shí)體有哪些屬性,以及梁思成畢業(yè)于清華大學(xué),但我們想定義梁思成是人,清華大學(xué)是地點(diǎn),人有哪些屬性,地點(diǎn)有哪些屬性,人和地點(diǎn)之間存在什么關(guān)系,RDF就無法表示了。
為了解決這一問題,W3C推出RDF schema(RDFs),在RDF詞匯基礎(chǔ)上拓展了一套數(shù)據(jù)建模詞匯來描述數(shù)據(jù)的模式層,對(duì)RDF中的數(shù)據(jù)進(jìn)行約束與規(guī)范。
Schema英文翻譯為綱要、圖示、構(gòu)架,Mysql中的Database又稱Schema,其實(shí)就是定義了一類數(shù)據(jù)有哪些屬性,RDFS可以方便的拓展類的屬性。
RDF Schema 不提供實(shí)際的應(yīng)用程序?qū)S玫念惡蛯傩?,而是提供了描述?yīng)用程序?qū)S玫念惡蛯傩缘目蚣埽琑DFS本質(zhì)上就是RDF詞匯的一個(gè)擴(kuò)展,比如RDFs中有兩個(gè)非常重要的詞匯domain和range。
Domain表示屬性的域,即屬于哪個(gè)類別,range表示屬性的取值類型,也就是,domain限定了屬性的定義域,range限定了屬性的值域。
舉個(gè)例子,在三元組<職業(yè),是,土木工程師>中,可以用domain限定“職業(yè)”的類別是“人”,用range限定“職業(yè)”的取值范圍是字符串String。具體表示如下:
這里還有一個(gè)要點(diǎn),即RDFS不是根據(jù)對(duì)象可能具有的屬性來定義類,而是根據(jù)屬性可能歸納的類型和取值范圍來定義。
具體來說,我們可以給職業(yè)“Career”歸屬到人“Person”的類別下,而不是像經(jīng)典的面向?qū)ο缶幊讨胁捎玫南榷x類person,再定義Career。
RDFS的這個(gè)要點(diǎn)使得我們可以在不需要重新修改這些類的原始描述的情況下,完成屬性的添加,人們可以很容易的向已經(jīng)定義的類中增加額外的屬性,這也是以屬性為中心構(gòu)建類型系統(tǒng)的優(yōu)勢(shì)。
雖然RDFs對(duì)RDF的詞匯進(jìn)行了拓展,但其表達(dá)能力還是比較弱。
比如RDFs無法說明兩個(gè)類或者多個(gè)類是否等價(jià),或者兩個(gè)類是否不相交(比如人的子類男人和女人不相交),或者屬性特性的描述,比如傳遞性,逆屬性(大于的逆關(guān)系是小于)。
為了進(jìn)一步提高建模和推理能力,網(wǎng)絡(luò)本體語言 OWL(Web Ontology Language)又被提出,其實(shí)也可以看做RDFS的進(jìn)一步拓展。
OWL不但具有快速,靈活的數(shù)據(jù)建模能力,還可以通過一套定義的詞匯幫助計(jì)算機(jī)進(jìn)行推理。以下是owl中的一些重要詞匯:
通過以上圖表中的詞匯,owl可以進(jìn)行部分推理與展示,比如A的祖先是B,B的祖先是C,自然可以得到A的祖先是C。通過不同詞匯的應(yīng)用,相比于RDFs,owl的表示能力和推理能力有了很大的進(jìn)步。
RDFS/OWL序列化方式和RDF沒什么不同,其實(shí)在表現(xiàn)形式上,它們就是RDF。
有了RDF數(shù)據(jù)庫,還需要了解其查詢語言。SPARQL提供了查詢RDF數(shù)據(jù)的標(biāo)準(zhǔn)語法,查詢規(guī)則以及結(jié)果返回形式。其實(shí)SPARQL和SQL很像,只是關(guān)鍵字的定義不同,以下是一個(gè)例子:
PREFIX部分進(jìn)行命名空間的聲明,使下面查詢的書寫更為簡潔。
RDF中以“?”或者“$”指示變量,在where子句中列出關(guān)聯(lián)的三元組模板(三元組中允許存在變量,所以稱為模板),而select子句指示要查詢的變量。
對(duì)應(yīng)到上述這個(gè)例子,查詢的是學(xué)生姓名,年齡以及選修的課程,OPTIONAL關(guān)鍵字是可選算子,指的是在這個(gè)算子覆蓋范圍的查詢語句是可選的,有年齡則返回年齡。
filter是過濾算子,指的是這個(gè)算子覆蓋范圍的查詢語句可以用來過濾查詢結(jié)果,整句的意思是如果有年齡,則年齡必須大于25歲。
查詢語句可以寫的很復(fù)雜,可以層層嵌套,求并集等各種運(yùn)算來實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。
最后說一下RDF的存儲(chǔ),三元組形式簡單,可以簡化為一張三列的表,進(jìn)而存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(如Mysql)中,也可以存儲(chǔ)在專門的RDF數(shù)據(jù)庫中,如RDF4J。
RDF4J是Eclipse基金會(huì)旗下的開源孵化項(xiàng)目,功能包括RDF數(shù)據(jù)的解析、存儲(chǔ)、推理和查詢等。
RDF4J本身提供內(nèi)存和磁盤兩種RDF存儲(chǔ)機(jī)制,支持全部的SPARQL查詢和更新語言,可以使用與訪問本地RDF庫相同的API訪問遠(yuǎn)程RDF庫,支持所有主流RDF數(shù)據(jù)格式,包括RDF/XML、Turtle、N-Triples等。其實(shí)現(xiàn)的查詢語言為SPARQL。
六、知識(shí)抽取
要構(gòu)建規(guī)模龐大的知識(shí)圖譜,已有的文獻(xiàn)或資源數(shù)量上肯定是不夠的,需要把各種來源的數(shù)據(jù)中的知識(shí)提取出來,并且存儲(chǔ)在知識(shí)圖譜中。
知識(shí)抽取是指自動(dòng)化地從文本中發(fā)現(xiàn)和抽取相關(guān)信息,并將多個(gè)文本碎片中的信息進(jìn)行合并,將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù),包括某一特定領(lǐng)域的模式、實(shí)體關(guān)系或RDF三元組。
具體來說,數(shù)據(jù)的來源有結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)等,分別對(duì)于了不同的抽取方法。
而具體抽取的內(nèi)容也包括實(shí)體抽?。麑?shí)體識(shí)別)、事件抽取、關(guān)系抽取、共指消解(搞清句子中代詞的指代對(duì)象)。
知識(shí)抽取的數(shù)據(jù)來源中,非結(jié)構(gòu)化數(shù)據(jù)占比最高。
非結(jié)構(gòu)化數(shù)據(jù)其實(shí)就是自由文本,比如新聞、論文、政策等,而面向非結(jié)構(gòu)化數(shù)據(jù)的抽取涉及到機(jī)器學(xué)習(xí)和NLP等。
半結(jié)構(gòu)化數(shù)據(jù)占比也很大,其數(shù)據(jù)形式不符合關(guān)系型數(shù)據(jù)庫或其他形式的數(shù)據(jù)表形式結(jié)構(gòu),但又包含標(biāo)簽或其他標(biāo)記來分離語義元素并保持記錄和數(shù)據(jù)字段的層次結(jié)構(gòu),比如表格、列表等。
目前的知識(shí)抽取中,百科類數(shù)據(jù)、網(wǎng)頁數(shù)據(jù)是重要的半結(jié)構(gòu)化數(shù)據(jù)來源。
結(jié)構(gòu)化數(shù)據(jù)往往是企業(yè)的業(yè)務(wù)系統(tǒng)中的數(shù)據(jù),常常用于垂直領(lǐng)域知識(shí)圖譜的抽取,比如從MySql中抽取成為RDF,因?yàn)殛P(guān)系型數(shù)據(jù)和RDF都是一種結(jié)構(gòu)化數(shù)據(jù),所以通??梢酝ㄟ^一定的規(guī)則從一種數(shù)據(jù)映射到另一種數(shù)據(jù),目前已經(jīng)有一些成熟的工具和規(guī)則。
圖:知識(shí)來源及抽取方法
面向非結(jié)構(gòu)化數(shù)據(jù)的知識(shí)抽取,主要包括實(shí)體抽取、關(guān)系抽取和時(shí)間抽取。
實(shí)體抽取是從文本中抽取實(shí)體信息元素,包括人名、組織機(jī)構(gòu)名、地理位置、時(shí)間、日期、字符值和數(shù)值等,就是在抽取知識(shí)圖譜中的各個(gè)點(diǎn),是知識(shí)圖譜最基本的單元,也是很多自然語言處理問題的基礎(chǔ)。
針對(duì)實(shí)體抽取,目前已經(jīng)有了很多很多方法,大致分為基于規(guī)則的方法、基于統(tǒng)計(jì)模型的方法和基于深度模型的方法。
關(guān)系抽取是從文本中抽取出兩個(gè)或多個(gè)實(shí)體之間的語義關(guān)系,與實(shí)體識(shí)別關(guān)系密切,主要有以下幾類方法:
事件抽取是指從自然語言文本中抽取出用戶感興趣的事件信息,并以結(jié)構(gòu)化的形式呈現(xiàn)出來,例如事件發(fā)生的時(shí)間、地點(diǎn)、發(fā)生原因、參與者等,如下圖:
圖:事件抽取
半結(jié)構(gòu)化數(shù)據(jù)抽取主要是從網(wǎng)頁中提取,一般通過包裝器實(shí)現(xiàn),包裝器是能夠?qū)?shù)據(jù)從HTML網(wǎng)頁中抽取出來,并將它們還原為結(jié)構(gòu)化數(shù)據(jù)的軟件程序。
結(jié)構(gòu)化的數(shù)據(jù)抽取一般是按照規(guī)則映射,W3C的RDB2RDF工作組于2012年發(fā)布了兩個(gè)推薦的RDB2RDF映射語言:DM(Direct Mapping,直接映射)和R2RML。
直接映射規(guī)范定義了一個(gè)從關(guān)系數(shù)據(jù)庫到RDF圖數(shù)據(jù)的簡單轉(zhuǎn)換,將關(guān)系數(shù)據(jù)庫表結(jié)構(gòu)和數(shù)據(jù)直接轉(zhuǎn)換為RDF圖,關(guān)系數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)直接反映在RDF圖中,基本規(guī)則包括:
- 數(shù)據(jù)庫中的表映射為RDF類;
- 數(shù)據(jù)庫中表的列映射為RDF屬性;
- 數(shù)據(jù)庫表中每一行映射為一個(gè)資源或?qū)嶓w,創(chuàng)建IRI;
- 數(shù)據(jù)庫表中每個(gè)單元格的值映射為一個(gè)文字值(LiteralValue);
- 如果單元格的值對(duì)應(yīng)一個(gè)外鍵,則將其替換為外鍵值指向的資源或?qū)嶓w的IRI。
R2RML映射是通過邏輯表(Logic Tables)從數(shù)據(jù)庫中檢索數(shù)據(jù)。
數(shù)據(jù)庫的直接映射中,生成的RDF圖的結(jié)構(gòu)直接反映了數(shù)據(jù)庫的結(jié)構(gòu),目標(biāo)RDF詞匯直接反映數(shù)據(jù)庫模式元素的名稱,結(jié)構(gòu)和目標(biāo)詞匯都不能改變。
而通過使用R2RML,用戶可以在關(guān)系數(shù)據(jù)上靈活定制視圖。
已經(jīng)有一些標(biāo)準(zhǔn)和工具支持將數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)化為RDF數(shù)據(jù)、OWL本體等,如D2RQ、Mastro、Ultrawrap、Morph-RDB等。
七、知識(shí)融合
構(gòu)建一個(gè)大規(guī)模,高質(zhì)量的知識(shí)圖譜是需要很大工作量的,實(shí)際使用中,如果能夠把已有的知識(shí)圖譜和其他成熟的知識(shí)圖譜聯(lián)合使用,或者多個(gè)系統(tǒng)信息交互使用,將大大提升知識(shí)圖譜的規(guī)模和效能。
目前,解決本體異構(gòu)、消除應(yīng)用系統(tǒng)間的互操作障礙是很多知識(shí)圖譜應(yīng)用面臨的關(guān)鍵問題之一。
知識(shí)融合是指使來自不同知識(shí)源的知識(shí)在同一框架規(guī)范下進(jìn)行異構(gòu)數(shù)據(jù)整合、消歧、加工、推理驗(yàn)證、更新等步驟,將同一個(gè)概念或?qū)嶓w的描述信息關(guān)聯(lián)起來。
簡而言之,將多個(gè)知識(shí)圖譜用一套規(guī)范聯(lián)合使用起來,就叫知識(shí)圖譜融合(也叫知識(shí)融合),雖然益處顯而易見,但融合也存在很多問題,其中最主要的問題是異構(gòu)問題。
其實(shí)異構(gòu)就是不同圖譜對(duì)于同一個(gè)事物的認(rèn)識(shí)和表示存在沖突,沒法把不同圖譜中的本體和實(shí)例一一對(duì)應(yīng)起來,從而造成使用出現(xiàn)錯(cuò)誤。
造成異構(gòu)的原因有很多,典型的如:
- 人類的知識(shí)體系非常復(fù)雜;
- 一些知識(shí)還受到個(gè)人主觀看法的影響;
- 前沿知識(shí)會(huì)不停的發(fā)展變化;
- 同一領(lǐng)域有不同組織構(gòu)建自己的知識(shí)庫,交叉領(lǐng)域中的交叉知識(shí)往往是獨(dú)立構(gòu)建的等等。
由此導(dǎo)致的異構(gòu)問題又包含本體異構(gòu)和實(shí)例異構(gòu),具體表現(xiàn)為:
- 同一領(lǐng)域內(nèi)往往存在著大量本體,且它們描述的內(nèi)容在語義上往往有重疊或關(guān)聯(lián);
- 本體在表示語言和模型上具有差異;
- 同名的實(shí)例可能指代不同實(shí)體;
- 不同名的實(shí)例可能指代同一實(shí)體。
知識(shí)融合的目的就是解決知識(shí)圖譜異構(gòu)問題,建立起不同圖譜內(nèi)異構(gòu)本體和異構(gòu)實(shí)例之間的關(guān)系,要成功建立這樣的關(guān)聯(lián),還需要先了解不能匹配的原因。
知識(shí)圖譜中的異構(gòu)形式主要可以劃分為兩個(gè)層次:
語言層不匹配和模型層不匹配。
具體如下:
語言層不匹配:
指的是用來描述知識(shí)的元語言是不匹配的,其中既包括描述知識(shí)語言的語法和所使用的語言原語上的不匹配,還包括定義類、關(guān)系和公理等知識(shí)成分機(jī)制上的匹配。
模型層不匹配:
指的是由于本體建模方式不同所造成的不匹配,包括不同建模者對(duì)事物的概念化抽象不匹配、對(duì)相同概念或關(guān)系的劃分方式不匹配,以及對(duì)本體成分解釋的不匹配。
目前,解決本體異構(gòu)有兩種思路:
1. 本體集成
本體集成,顧名思義,就是將多個(gè)本體合并為一個(gè)大本體,最直接的做法是將多個(gè)本體進(jìn)行集成,變成一個(gè)統(tǒng)一的本體,提供統(tǒng)一的語義規(guī)范和共享詞匯,這樣就可以統(tǒng)一交互。
但這樣操作容易使集成后的本體太大,不好修改與維護(hù)。
目前應(yīng)用較多的是基于全局本體 – 局部本體的集成,通過抽取異構(gòu)本體之間的共同知識(shí),建立一個(gè)全局本體,這個(gè)全局本體代表了不同系統(tǒng)之間的共識(shí),而每個(gè)系統(tǒng)可以保留自己的本體,稱為局部本體。
局部本體既可以在全局本體的基礎(chǔ)上擴(kuò)充,也可以直接建立自己的本體。
全局本體與局部本體建立映射,局部本體側(cè)重于特定的知識(shí),全局本體保證不同系統(tǒng)異構(gòu)間的部分能相互交互。
2. 本體映射
尋找本體間的映射規(guī)則,將不同本體間建立聯(lián)系,如上邊提到的局部本體和全局本體的映射。
第一步要明確本體映射分類,這是建立異構(gòu)本體間映射的基礎(chǔ)。
分類可以按照映射的對(duì)象、映射的功能、映射的復(fù)雜程度來進(jìn)行。
- 映射的對(duì)象:明確映射應(yīng)該建立在異構(gòu)本體的哪些成分之間。
- 映射的功能:明確應(yīng)該建立具有何種功能的本體映射。
- 映射的復(fù)雜程度:明確說明什么形式的映射是簡單的,什么形式的映射是復(fù)雜的。
在確定本體映射的分類后,最重要也是最困難的任務(wù)在于如何發(fā)現(xiàn)異構(gòu)本體間的映射。
手工建立關(guān)系非常耗時(shí),目前的研究熱點(diǎn)是采用合理的方法和工具進(jìn)行自動(dòng)或半自動(dòng)的構(gòu)建。
不同的本體映射的方法使用的技術(shù)不同,但過程基本是相似的。
- 導(dǎo)入待映射的本體:不一定統(tǒng)一本體語言,但映射成分需方便獲取。
- 發(fā)現(xiàn)映射:利用一定的算法,如計(jì)算概念間的相似度等,尋找異構(gòu)本體間的聯(lián)系,然后根據(jù)這些聯(lián)系建立異構(gòu)本體間的映射規(guī)則。
- 表示映射:將這些映射合理地表示起來,根據(jù)映射的類型,借助工具將發(fā)現(xiàn)的映射合理表示和組織。
在進(jìn)行實(shí)例層之間的相互融合時(shí),計(jì)算數(shù)據(jù)量巨大,如何在降低計(jì)算的時(shí)間復(fù)雜度、空間復(fù)雜度的前提下提升匹配質(zhì)量,是一個(gè)兩難的問題,目前主要方法與簡介如下:
八、知識(shí)圖譜推理、知識(shí)統(tǒng)計(jì)與圖挖掘
通過知識(shí)表示,我們確定了知識(shí)以什么樣的方式組織、表示和儲(chǔ)存,使人類和計(jì)算機(jī)有了認(rèn)識(shí)和使用知識(shí)圖譜的基礎(chǔ);知識(shí)抽取則是從各種已有的數(shù)據(jù)庫,專業(yè)知識(shí)和互聯(lián)網(wǎng)上文本、表格等。
提取出我們關(guān)心的數(shù)據(jù),并通過各種方法爬取,清洗,將原本結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的各種非圖譜數(shù)據(jù)變?yōu)閳D譜中可用的、結(jié)構(gòu)化的圖譜數(shù)據(jù),相當(dāng)于建成了基本的知識(shí)圖譜。
建立了知識(shí)圖譜后,為了實(shí)現(xiàn)不同系統(tǒng)間的的知識(shí)圖譜的交互,讓不同圖譜對(duì)應(yīng)到統(tǒng)一的本體和實(shí)例,需要進(jìn)行知識(shí)圖譜融合,知識(shí)融合極大的拓展了知識(shí)圖譜的規(guī)模和應(yīng)用場(chǎng)景。
通過以上三步,基本上就構(gòu)建了有一定規(guī)模和實(shí)用性,可以實(shí)現(xiàn)不同系統(tǒng)間交互的知識(shí)圖譜,即實(shí)現(xiàn)了數(shù)據(jù)的從無到有,從有到有用的過程。
下一步就是使用知識(shí)圖譜,通過各種計(jì)算與分析從大數(shù)據(jù)中獲取價(jià)值,進(jìn)而進(jìn)一步支持語義搜索,智能問答,輔助分析等應(yīng)用場(chǎng)景。
從知識(shí)圖譜構(gòu)建到應(yīng)用的中間一步,就是知識(shí)圖譜推理、知識(shí)統(tǒng)計(jì)與圖挖掘。
先說知識(shí)統(tǒng)計(jì)與圖挖掘,其實(shí)就是傳統(tǒng)意義上的數(shù)據(jù)統(tǒng)計(jì)與挖掘,只不過數(shù)據(jù)是知識(shí)圖譜,而圖相對(duì)樹、鏈表等又是比較復(fù)雜的,尤其是知識(shí)圖譜規(guī)模較大,有時(shí)尋找特定數(shù)據(jù)或關(guān)聯(lián)數(shù)據(jù)要耗費(fèi)大量的時(shí)間和算力。
查詢又是知識(shí)圖譜中最常見的計(jì)算,比如要查詢某一個(gè)實(shí)例及其關(guān)聯(lián)信息,RDF三元組中可以將其轉(zhuǎn)變?yōu)閷?duì)于關(guān)系型數(shù)據(jù)庫的查詢。
而對(duì)RDF圖模型或者圖數(shù)據(jù)庫如Neo4J來說,這就是查詢符合條件的一部分節(jié)點(diǎn)和關(guān)系,即子圖查詢,比如搜索“水泥是由什么組成的”,就是搜索“水泥”以及所有與其存在“組成”關(guān)系(或者與其他組成同義詞,如“原材料”,“用于建造”等)的節(jié)點(diǎn)所構(gòu)成的圖,使用的算法如深度優(yōu)先搜索或廣度優(yōu)先搜索等圖算法。
同時(shí)還可以對(duì)圖的特征進(jìn)行統(tǒng)計(jì),比如有向圖中指向某個(gè)節(jié)點(diǎn)的邊有多少(入度),該節(jié)點(diǎn)指向其他節(jié)點(diǎn)的邊有多少(出度),節(jié)點(diǎn)在圖中重要地位的中心度等等。
比如統(tǒng)計(jì)圖譜中某一家公司與其他公司的到期未償還債務(wù)關(guān)系多少(屬于“到期未償還”關(guān)系的邊和節(jié)點(diǎn)的多少),按此來選擇一批信用不良的公司,或者某些出入度離群的點(diǎn),是否存在刷單情況等等,將圖譜用于異常檢測(cè)。
還有一種很常見的情況,就是對(duì)圖譜中多個(gè)節(jié)點(diǎn)關(guān)系進(jìn)行關(guān)聯(lián)分析,比如偵破金融里的團(tuán)隊(duì)詐騙,往往一個(gè)詐騙團(tuán)隊(duì)有非常復(fù)雜的關(guān)系網(wǎng),可以通過圖譜查找多個(gè)賬戶之間的轉(zhuǎn)賬關(guān)系,或者與可以賬戶關(guān)系密切的賬戶。
其中常用的方法有路徑查詢、距離計(jì)算,輸出結(jié)果為節(jié)點(diǎn)及節(jié)點(diǎn)間邊 的距離和邊的集合(路徑)。
或者對(duì)某一個(gè)節(jié)點(diǎn)或事件做時(shí)序分析,觀察事件發(fā)展中都涉及那些團(tuán)體和事件,常見的方法如時(shí)序分析。
知識(shí)統(tǒng)計(jì)與圖挖掘是對(duì)圖譜中已有知識(shí)的查詢、統(tǒng)計(jì)和展示,通過明細(xì)數(shù)據(jù)的展示,或者聚合成更高維度的數(shù)據(jù)來發(fā)掘價(jià)值,通常是得到新的結(jié)論,但不會(huì)拓展知識(shí)圖譜中已有的數(shù)據(jù),從知識(shí)圖譜的角度來說是沒有產(chǎn)生新的知識(shí)。
而知識(shí)推理則是根據(jù)已有的知識(shí),按照某種規(guī)則或者策略,產(chǎn)生新的知識(shí)(新的三元組)。
舉個(gè)前面提到的例子,知識(shí)圖譜中存在<砂石,組成,水泥>和<水泥,組成,混凝土>兩個(gè)三元組,通過知識(shí)推理,可以得到<砂石,組成,混凝土>,即通過一定的知識(shí)推理得到未知的事實(shí)與關(guān)系。
知識(shí)推理有很多應(yīng)用,如知識(shí)問答就可以通過知識(shí)推理來實(shí)現(xiàn),或者可以補(bǔ)全一部分知識(shí)圖譜,檢測(cè)與推理內(nèi)容不一致的節(jié)點(diǎn)。這些一方面可以改正知識(shí)圖譜的質(zhì)量,修復(fù)一些明顯的錯(cuò)誤,另一方面在知識(shí)問答中可以推出一些新的結(jié)論和回答。
面向知識(shí)圖譜的推理主要圍繞關(guān)系的推理展開,即基于圖譜中已有的事實(shí)或關(guān)系推斷出未知的事實(shí)或關(guān)系,一般著重考察實(shí)體、關(guān)系和圖譜結(jié)構(gòu)三個(gè)方面的特征信息。
知識(shí)圖譜的推理的主要技術(shù)手段主要可以分為兩大類:
基于演繹的知識(shí)圖譜推理和基于歸納的知識(shí)圖譜推理。
演繹推理是一種自上而下的推理,在指在給定的一個(gè)或多個(gè)前提的情況下,推斷出一個(gè)必然成立的結(jié)論的過程,我們熟悉的三段論就是典型的演繹推理。
演繹推理的過程需要明確定義的先驗(yàn)信息,比如在某某前提下,所以基于演繹的知識(shí)圖譜推理大多圍繞本體展開,比如某事物具備某一屬性,則必然不存在于與該屬性互斥的事物范圍內(nèi)。
演繹推理中的一個(gè)大類是基于描述邏輯的推理,描述邏輯(Description Logic)是基于對(duì)象的、一種形式化知識(shí)表示的邏輯。描述邏輯是OWL語言實(shí)現(xiàn)邏輯推理的基礎(chǔ),OWL語言重要的詞語如互為逆關(guān)系,子類等就是實(shí)現(xiàn)邏輯推理的基礎(chǔ)。
描述邏輯是一階謂詞邏輯的一個(gè)可判定子集,所謂可判定,就是保證了推理算法總是能夠終止的,可以得出結(jié)論的。要理解描述邏輯就需要先理解一階謂詞邏輯。
人類的一條知識(shí)一般可以由具有完整意義的一句話或幾句話表示出來,而這些話可以用一些謂詞公式(用謂詞聯(lián)接符號(hào)將一些謂詞聯(lián)接起來所形成的公式)表示出來,比如張三是一個(gè)學(xué)生,可以表示為isStudent(張三),這里isStudent(x)是一個(gè)謂詞,表示x是一個(gè)學(xué)生。
這樣很貼近自然語言,也可以被計(jì)算機(jī)存儲(chǔ)與識(shí)別,所以是一種很常用的知識(shí)表示方法。
一個(gè)描述邏輯系統(tǒng)由四個(gè)基本部分組成:
- 最基本的元素:概念、關(guān)系、個(gè)體
- TBox術(shù)語集:概念術(shù)語的公理集合
- Abox斷言集:個(gè)體的斷言集合
- TBox 和 ABox上的推理機(jī)制
概念即解釋為一個(gè)領(lǐng)域的子集;關(guān)系解釋為該領(lǐng)域上的二元關(guān)系,如<x,y>|朋友(x,y);個(gè)體解釋為一個(gè)領(lǐng)域內(nèi)的實(shí)例。
TBox為術(shù)語集,它是泛化的知識(shí),是描述概念和關(guān)系的知識(shí),被稱之為公理。
ABox是斷言集,指具體個(gè)體的信息,ABox 語言包含概念斷言和關(guān)系斷言,概念斷言即表示一個(gè)對(duì)象是否屬于某個(gè)概念,關(guān)系斷言表示兩個(gè)對(duì)象是否滿足特定的關(guān)系。
描述邏輯的各種算子,對(duì)應(yīng)到owl語言中就是各種詞匯,如算子?對(duì)應(yīng)subClassof;描述邏輯依據(jù)提供的構(gòu)造算子,在簡單的概念和關(guān)系上構(gòu)造出復(fù)雜的概念和關(guān)系。
基于本體推理的方法常見的有基于 Tableaux 運(yùn)算的方法、基于邏輯編程改寫的方法、基于一階查詢重寫的方法、基于產(chǎn)生式規(guī)則的方法等。
歸納推理是一種自下而上的推理,是指基于已有的部分觀察得出一般結(jié)論的過程,典型的歸納推理有歸納泛化(指基于對(duì)個(gè)體的觀察而得出可能適用于整體的結(jié)論)、統(tǒng)計(jì)推理(將整體的統(tǒng)計(jì)結(jié)論應(yīng)用于個(gè)體)。
基于歸納的知識(shí)圖譜推理主要是通過對(duì)知識(shí)圖譜已有信息的分析和挖掘進(jìn)行推理的,最常用的信息為已有的三元組。
按照推理要素的不同,基于歸納的知識(shí)圖譜推理可以分為以下幾類:基于圖結(jié)構(gòu)的推理、基于規(guī)則學(xué)習(xí)的推理和基于表示學(xué)習(xí)的推理。
九、知識(shí)檢索與知識(shí)分析
經(jīng)歷了知識(shí)建模與表示、知識(shí)抽取、知識(shí)圖譜融合、知識(shí)圖譜計(jì)算與推理之后,知識(shí)圖譜已經(jīng)是相對(duì)完善的數(shù)據(jù)庫了,可以在其基礎(chǔ)上創(chuàng)造應(yīng)用,服務(wù)具體的場(chǎng)景。
在知識(shí)圖譜的應(yīng)用階段已經(jīng)簡要說明了通用領(lǐng)域知識(shí)圖譜和專用領(lǐng)域知識(shí)圖譜的應(yīng)用,這里只聚焦其中三項(xiàng)技術(shù):搜素、問答系統(tǒng)、推薦系統(tǒng)。
1. 搜索
知識(shí)圖譜依托龐大的數(shù)據(jù)和關(guān)系對(duì),可以對(duì)搜索進(jìn)行增強(qiáng),不但針對(duì)搜索詞展示出最接近的信息,還把相關(guān)的選項(xiàng)也展示出來,提高了查準(zhǔn)率和查全率,另外可以通過圖譜化的展現(xiàn)和互動(dòng)讓用戶更加方便的了解信息。
具體來說,是通過語義搜索、關(guān)系搜索和結(jié)構(gòu)化展現(xiàn)實(shí)現(xiàn)的。
萬維網(wǎng)之父Tim Berners-Lee是這樣定義語義搜索的:
“語義搜索的本質(zhì)是通過數(shù)學(xué)來拜托當(dāng)今搜索中使用的猜測(cè)和近似,并為詞語的含義以及它們?nèi)绾侮P(guān)聯(lián)到我們?cè)谒阉饕孑斎肟蛑兴业臇|西引進(jìn)一種清晰的理解方式”。
具體來說,首先將用戶輸入的問句進(jìn)行解析,找出問句中的實(shí)體和關(guān)系,理解用戶問句的含義,然后在知識(shí)圖譜中匹配查詢語句,找出答案,最后通過一定的形式將結(jié)果呈現(xiàn)到用戶面前。
知識(shí)圖譜本身是一個(gè)具有屬性的實(shí)體通過關(guān)系鏈接而成的網(wǎng)狀知識(shí)庫,同時(shí)知識(shí)圖譜本身可以和網(wǎng)頁上的內(nèi)容建立概念間的聯(lián)系,將網(wǎng)絡(luò)上的信息、數(shù)據(jù)、資源關(guān)聯(lián)為語義知識(shí),也就是實(shí)現(xiàn)了 WEB 從網(wǎng)頁鏈接向概念鏈接的轉(zhuǎn)變。
同時(shí),相對(duì)于原來的按字符串模糊匹配的模式而言,語義搜索對(duì)用戶的問句進(jìn)行分析,找到實(shí)體和關(guān)系,通過NLP和知識(shí)推理理解用戶的問句,并在知識(shí)圖譜中盡可能多的找到相關(guān)信息,對(duì)回答進(jìn)行相關(guān)度排序,實(shí)現(xiàn)了用戶的按主題檢索而不是傳統(tǒng)的按字符串檢索。
一個(gè)語義搜索系統(tǒng)的基本框架包括查詢構(gòu)建、查詢處理、結(jié)果展示、查詢優(yōu)化、語義模型、資源及文檔等。
具體的應(yīng)用中,如搜索“混凝土”,不僅搜索混凝土,還會(huì)找到其在知識(shí)圖譜中的上位詞,下位詞,同義詞等詞集合,比如砼(同義詞)、輕質(zhì)混凝土(下位詞)等等。
返回的檢索結(jié)果中也會(huì)包含這些信息,從而提高了查全率,如果用戶檢索的本意是查找混凝土中的一個(gè)子類,那么實(shí)際上還提高了查準(zhǔn)率。
再比如搜索“同方集團(tuán)股價(jià)”,會(huì)以大寫的形式展示實(shí)時(shí)股價(jià),而不是返回一個(gè)網(wǎng)頁,這就是從文本中檢索答案。另外還可以以圖譜化的形式展現(xiàn),將在可視化部分有限展開。
關(guān)系搜索和結(jié)構(gòu)化展示其實(shí)屬于知識(shí)推理、知識(shí)統(tǒng)計(jì)與圖計(jì)算部分,在用NLP技術(shù)理解了用戶的實(shí)體和關(guān)系要求后,就可以找到兩個(gè)或多個(gè)對(duì)應(yīng)的實(shí)體,直接在圖譜中查詢其互相關(guān)系,或者通過知識(shí)推理得出其相互關(guān)系。
或者是明確了某一實(shí)體,找到與其有對(duì)應(yīng)關(guān)系的其他實(shí)體,比如找到與“混凝土”有“組成”關(guān)系的實(shí)體,并將其以圖譜或表格的形式展示出來,即為結(jié)構(gòu)化表示。
2. 問答系統(tǒng)
知識(shí)問答是用自然語言的方式與機(jī)器進(jìn)行交互并得到答案,是知識(shí)圖譜的重要應(yīng)用。
問答是一種典型的智能行為,圖靈測(cè)試就是看機(jī)器能否做到人一樣的問答效果。
問答系統(tǒng)不但要求系統(tǒng)本身能夠理解提問者的語義,還要求根據(jù)知識(shí)圖譜進(jìn)行知識(shí)搜索或知識(shí)推理以形成答案。
可以說問答系統(tǒng)是信息檢索系統(tǒng)的一種高級(jí)形式,因?yàn)閱柎鹣到y(tǒng)中同樣有查詢式理解和知識(shí)檢索這兩個(gè)重要過程,且與智能搜索中相應(yīng)過程中的相關(guān)細(xì)節(jié)是一致的。
多數(shù)問答系統(tǒng)更傾向于將給定的問題分解為多個(gè)小的問題,然后逐一去知識(shí)庫中抽取匹配的答案,并自動(dòng)檢測(cè)其在時(shí)間與空間上的吻合度等,最后將答案進(jìn)行合并,以直觀的方式展現(xiàn)給用戶。
一個(gè)問答系統(tǒng)應(yīng)具備的四大要素:
(1)問題
是問答系統(tǒng)的輸入,通常以問句的形式出現(xiàn)(問答題),也會(huì)采用選擇題、多選題、列舉答案題和填空題等形式。
(2)答案
是問答系統(tǒng)的輸出,除了文本表示的答案(問答題或填空題),有時(shí)也需要輸出一組答案(列舉問答題)、候選答案的選擇(選擇題)、甚至是多媒體信息。
(3)智能體
是問答系統(tǒng)的執(zhí)行者,需要理解問題的語義,掌握并使用知識(shí)庫解答問題,并最終生成人可讀的答案;
(4)知識(shí)庫
存儲(chǔ)了問答系統(tǒng)的知識(shí),其形態(tài)可以是文本、數(shù)據(jù)庫或知識(shí)圖譜。
也有工作將知識(shí)庫編碼到計(jì)算模型中,例如邏輯規(guī)則、機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí)模型。
智能體利用知識(shí)庫實(shí)現(xiàn)推理。根據(jù)知識(shí)庫表示形式的不同,當(dāng)前知識(shí)問答可以分為傳統(tǒng)問答方法(符號(hào)表示)以及基于深度學(xué)習(xí)的問答方法(分布式表示)兩種類型。
傳統(tǒng)問答方法使用的主要技術(shù)包括關(guān)鍵詞檢索、文本蘊(yùn)涵推理以及邏輯表達(dá)式等,深度學(xué)習(xí)方法使用的技術(shù)主要是LSTM、注意力模型與記憶網(wǎng)絡(luò)(Memory Network)。
KBQA(knowledge base question answering,基于知識(shí)庫的問答系統(tǒng))采用了相對(duì)統(tǒng)一的基于RDF表示的知識(shí)圖譜作為存儲(chǔ)基礎(chǔ),并且把語義理解的結(jié)果映射到知識(shí)圖譜的本體后生成SPARQL查詢解答問題。
通過本體可以將用戶問題映射到基于概念拓?fù)鋱D表示的查詢表達(dá)式,也就對(duì)應(yīng)了知識(shí)圖譜中某種子圖。KBQA的核心問題Question2Query是找到從用戶問題到知識(shí)圖譜子圖的最合理映射。
除了KBQA外,問答系統(tǒng)還有 CommunityQA/FAQ-QA(基于問答對(duì)匹配的問答系統(tǒng))、 Hybrid QA Framework(混合問答系統(tǒng)框架)、基于深度學(xué)習(xí)的傳統(tǒng)問答模塊優(yōu)化、基于深度學(xué)習(xí)的端到端問答模型,感興趣的可自行查閱。
圖:問答系統(tǒng)
如果考慮在實(shí)際產(chǎn)品中涉及一個(gè)對(duì)話系統(tǒng),通常需要考慮六大部分:
- [ 語音識(shí)別ASR ] 將原始的語音信號(hào)轉(zhuǎn)換為文本信息;
- [ 自然語言理解NLU ] 將識(shí)別出來的文本信息轉(zhuǎn)換為機(jī)器可以理解的語義查詢;
- [ 對(duì)話管理DM ] 根據(jù)NLU模塊輸出的語義表示執(zhí)行對(duì)話狀態(tài)的跟蹤,并根據(jù)一定的策略選擇相應(yīng)的候選動(dòng)作。包括對(duì)話狀態(tài)跟蹤DST和候選動(dòng)作選擇Pollcy兩部分;
- [ 自然語言生成NLG ] 負(fù)責(zé)生成需要回復(fù)給用戶的自然語言文本;
- [ 語音合成TTS ] 將自然語言文本轉(zhuǎn)換成語音輸出給用戶;
- [ 知識(shí)Knowledge ] 對(duì)話任務(wù)的完成離不開知識(shí),不論是任務(wù)型中的意圖及參數(shù),問題型中的知識(shí)庫,還是閑聊中的語料都屬于知識(shí)(但是知識(shí)并不一定只有這三類)。對(duì)話系統(tǒng)結(jié)合知識(shí)后,能夠形成完善的對(duì)話交互框架。
基于知識(shí)圖譜的問答,是通過語義分析和答案排序完成的,即先將問題轉(zhuǎn)化為知識(shí)圖譜查詢表達(dá)式,再通過檢索和推理得到問題的候選答案集合,然后通過對(duì)不同候選答案實(shí)體進(jìn)行打分,依據(jù)分?jǐn)?shù)排序,選出最優(yōu)答案。
3. 推薦系統(tǒng)
推薦系統(tǒng)是我們每天都能接觸到的系統(tǒng),如淘寶的千人千面,網(wǎng)易云音樂的個(gè)性化歌單,目前的個(gè)性化推薦算法中應(yīng)用最廣的是協(xié)同過濾算法。
協(xié)同過濾分為協(xié)同和過濾兩個(gè)步驟,協(xié)同就是利用群體的行為來做推薦決策,而過濾就是從可行的推薦方案中將用戶最喜歡的方案找出來。
通過群體的協(xié)同和每個(gè)用戶是否喜歡推薦的反饋不斷迭代,最終的推薦會(huì)越來越準(zhǔn)確。
當(dāng)前協(xié)同過濾算法主要包括基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾,其核心是怎么計(jì)算標(biāo)的物之間的相似度以及用戶之間的相似度。
將與當(dāng)前用戶最相似的用戶喜歡的標(biāo)的物推薦給該用戶,這就是基于用戶的協(xié)同過濾的核心思想;將用戶操作過的標(biāo)的物最相似的標(biāo)的物推薦給用戶,這就是基于標(biāo)的物的協(xié)同過濾的核心思想。
推薦的過程可以簡單理解為三個(gè)步驟:召回、過濾、排序。
- 首先系統(tǒng)根據(jù)獲取到的信息,召回適合推薦內(nèi)容,獲取的信息可以是用戶的搜索記錄、購買記錄、評(píng)論等。
- 召回的內(nèi)容中有的是這個(gè)用戶不關(guān)注的,需要根據(jù)過濾的條件,將不需要的內(nèi)容進(jìn)行過濾。
- 經(jīng)過過濾產(chǎn)生的推薦集還需要根據(jù)內(nèi)容的相關(guān)度進(jìn)行排序,最后系統(tǒng)根據(jù)相關(guān)度的排序,將內(nèi)容分配到對(duì)應(yīng)的模塊,這樣用戶就能看到自己感興趣的內(nèi)容了。
基于協(xié)同過濾的推薦系統(tǒng),主要有以下問題:
(1) 數(shù)據(jù)稀疏/長尾/噪音問題
用于協(xié)同過濾計(jì)算的用戶行為矩陣(用戶和其對(duì)應(yīng)有交互(如購買,點(diǎn)贊,收藏等)的物品矩陣),必然是一個(gè)稀疏矩陣,用較小范圍的數(shù)據(jù)推測(cè)較大范圍的數(shù)據(jù),會(huì)存在預(yù)測(cè)不準(zhǔn)確的問題。
(2) 冷啟動(dòng)問題
對(duì)于新加入的用戶或者物品,系統(tǒng)沒有其歷史交互信息,很難對(duì)其進(jìn)行準(zhǔn)確建模和推薦,相對(duì)應(yīng)的推薦準(zhǔn)確率和多樣性也會(huì)大打折扣。
(3)可解釋性
協(xié)同過濾算法側(cè)重輸入和輸出,與神經(jīng)網(wǎng)絡(luò)模型一樣類似于一個(gè)黑盒,計(jì)算模型提煉出的有效特征是什么很難說明,即決策的依據(jù)模糊,缺乏可解釋性。
知識(shí)圖譜可以針對(duì)這些問題進(jìn)行改善,知識(shí)圖譜可以用來表示實(shí)體之間的關(guān)系,如推薦系統(tǒng)中物品與物品、用戶與物品、用戶與用戶之間的關(guān)系。
這些關(guān)系信息可以表示用戶偏好與物品相似度等信息,將這些信息引入推薦系統(tǒng)中可以顯著緩解推薦系統(tǒng)面臨的冷啟動(dòng)與數(shù)據(jù)稀疏問題。
以阿里巴巴電商知識(shí)圖譜為例,該知識(shí)圖譜以商品為核心,以人、貨、場(chǎng)為主要框架,共涉及9大類一級(jí)本體和27大類二級(jí)本體。一級(jí)本體分別為人、貨、場(chǎng)、百科知識(shí)、行業(yè)競(jìng)爭對(duì)手、品質(zhì)、類目、資質(zhì)和輿情。
人、貨、場(chǎng)構(gòu)成了商品信息流通的閉環(huán),其他本體主要給予商品更豐富的信息描述。
阿里巴巴電商知識(shí)圖譜的數(shù)據(jù)來源包含國內(nèi)-國外數(shù)據(jù)、商業(yè)-國家數(shù)據(jù)、線上-線下等多源數(shù)據(jù)。目前有百億級(jí)的節(jié)點(diǎn)和百億級(jí)的關(guān)系邊;主要靠機(jī)器維護(hù),人工輔助。
有了這樣規(guī)模龐大的知識(shí)圖譜,可以對(duì)個(gè)性化推薦進(jìn)行改進(jìn)。
知識(shí)圖譜可以增加更多的特征,提供了實(shí)體與實(shí)體之間更深層次、更長范圍的關(guān)聯(lián),比如根據(jù)用戶喜歡的物品進(jìn)行推薦,有了知識(shí)圖譜后,可以拓展該產(chǎn)品的更多屬性,并且找到更多與其在屬性上有關(guān)聯(lián)的商品進(jìn)行推薦。
同時(shí),知識(shí)圖譜還提供了與推薦實(shí)體的各種關(guān)聯(lián)實(shí)體集合,可以通過語義來推薦相近的物品,比如買了羊肉卷推薦其關(guān)聯(lián)商品火鍋底料,或者買了手機(jī)推薦其圖譜中的下位實(shí)體,如手機(jī)貼膜,耳機(jī)等。
最后,知識(shí)圖譜是實(shí)體和關(guān)系的集合,且具有知識(shí)推理功能,因此推薦物品的可解釋性也更好。
十、后記
知識(shí)圖譜是一門比較復(fù)雜且發(fā)展中的科學(xué),目前還有很多不完善和不成熟的地方,每一個(gè)步驟也有太多的方法和外延,涉及到語義,邏輯,自然語言處理,機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和圖算法,整體是艱深并不是容易掌握的。
之前看了幾本書,也聽了幾門課,看了不少技術(shù)帖,但腦子里還是迷迷糊糊,沒有一個(gè)整體的框架。
寫這篇文章的過程,也是一個(gè)不斷查漏補(bǔ)缺,邏輯自洽的過程,寫這篇文章就像完成了一篇綜述,現(xiàn)在我對(duì)于整體的流程以及一些基礎(chǔ)的概念有了更多的理解,輸出倒逼輸入,確實(shí)有道理。
然而對(duì)于產(chǎn)品經(jīng)理來說,了解技術(shù)的底層和概況是為了更好的設(shè)計(jì)產(chǎn)品,我們更應(yīng)該關(guān)注的是設(shè)計(jì)產(chǎn)品的目的是什么,面向的用戶是哪些,能夠提供怎樣的價(jià)值和解決什么問題,產(chǎn)品的交互與易用性如何等等問題。
了解技術(shù)只是為了知道產(chǎn)品設(shè)計(jì)的邊界在哪里,以及實(shí)現(xiàn)某些功能的路徑和成本,一切還是為了產(chǎn)品。
雖然還未成熟,但知識(shí)圖譜已經(jīng)展示出巨大的價(jià)值,各種各樣的應(yīng)用也在不斷落地。
相信在不遠(yuǎn)的將來,以知識(shí)圖譜為基礎(chǔ)的人工智能會(huì)更大范圍、更深程度的改變世界。
作者:鐘志偉,中國知網(wǎng)產(chǎn)品經(jīng)理
本文由 @鐘同學(xué) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自 Pexels,基于CC0協(xié)議。
真了不起,很少看到這么深入又完整詳實(shí)的對(duì)知識(shí)圖譜介紹的文章
竟然發(fā)現(xiàn)了同事~
認(rèn)識(shí)一下嘍
一直在用“水泥”和“混凝土”舉例子,暴露了土木行業(yè),哈哈哈。
土木狗相見了哈哈哈
本文關(guān)于知識(shí)圖譜的介紹及構(gòu)建很全面,希望作者持續(xù)產(chǎn)出。
先收藏了,慢慢閱讀。
感謝支持
“要想實(shí)現(xiàn)人工智能,首先要做的就是讓人和機(jī)器建立起對(duì)這個(gè)世界的統(tǒng)一認(rèn)識(shí)”,然后世界上很多事在人與人之間都不能形成統(tǒng)一認(rèn)識(shí),你認(rèn)為要這樣,他認(rèn)為要那樣,機(jī)器要怎樣呢?結(jié)果就是機(jī)器只會(huì)表現(xiàn)出制造機(jī)器那部分人的意志。
這里我的理解是一些公認(rèn)的知識(shí),比如物理定律等等。確實(shí)沒有辦法統(tǒng)一人們的認(rèn)識(shí),共識(shí)十分寶貴的。而且很多新的科技或者制度,文化,都會(huì)受到創(chuàng)造者主觀意識(shí)的一定影響的??倳?huì)有一部分先行者開創(chuàng)某些東西,然后是越來越多的人參與共建。但就像是比特幣系統(tǒng)中超過50%算力的群體才可以決定共識(shí)一樣,只要你相信這個(gè)世界中大部分人是好的,就無需對(duì)新技術(shù)過分擔(dān)憂。