知識圖譜的個人總結


人工智能的三個發展階段

1. 計算智能

即特定領域中規則明確的數據快速處理智能,機器已經超越人類

2. 感知智能

讓計算機具備視覺,聽覺等智能,比如語音識別,人臉識別,已經取得進步

3. 認知智能

與人類語言,知識邏輯相關的智能,讓機器掌握人類的語言和知識體系,理解邏輯

 

什么是知識圖譜

 

本質上,是一種揭示實體之間關系的語義網絡

 

信息是指外部的客觀事實。舉例:這里有一瓶水,它現在是7°。

知識是對外部客觀規律的歸納和總結。舉例:水在零度的時候會結冰。

也可以理解成知識是在信息的基礎上建立實體間的聯系

知識圖譜是由一條條知識組成,每條知識表示為一個SPO三元組(Subject-Predicate-Object)

Google知識圖譜的宣傳語“things not strings”給出了知識圖譜的精髓,即,不要無意義的字符串,而是獲取字符串背后隱含的對象或事物。

知識圖譜是由一些相互連接的實體和他們的屬性構成的。換句話說,知識圖譜是由一條條知識組成,每條知識表示為一個SPO三元組(Subject-Predicate-Object)。在知識圖譜中,我們用RDF形式化地表示這種三元關系。RDF(Resource Description Framework),即資源描述框架,是W3C制定的,用於描述實體/資源的標准數據模型。RDF圖中一共有三種類型,International Resource Identifiers(IRIs)blank nodes literals。下面是SPO每個部分的類型約束:

00001. Subject可以是IRIblank node

00002. PredicateIRI

00003. Object三種類型都可以。

IRI我們可以看做是URI或者URL的泛化和推廣,它在整個網絡或者圖中唯一定義了一個實體/資源,和我們的身份證號類似。

literal是字面量,我們可以把它看做是帶有數據類型的純文本,比如我們在第一個部分中提到的羅納爾多原名可以表示為"Ronaldo Luís Nazário de Lima"^^xsd:string

blank node簡單來說就是沒有IRIliteral的資源,或者說匿名資源。

那么“羅納爾多的中文名是羅納爾多·路易斯·納扎里奧·達·利馬”這樣一個三元組用RDF形式來表示就是:

 

 

 

"www.kg.com/person/1"是一個IRI,用來唯一的表示“羅納爾多”這個實體。"kg:chineseName"也是一個IRI,用來表示“中文名”這樣一個屬性。"kg:"RDF文件中所定義的prefix,如下所示。

@prefix kg: <http://www.kg.com/ontology/>

即,kg:chineseName其實就是"http:// www.kg.com/ontology/chineseName"的縮寫。

語義網絡,語義網,鏈接數據和知識圖譜

1. 語義網絡

 

 

 

是知識表示的一種形式,知識表示具體可看下面

語義網絡的優點:

1. 容易理解和展示。

2. 相關概念容易聚類。

 

語義網絡的缺點:

1. 節點和邊的值沒有標准,完全是由用戶自己定義。

2. 多源數據融合比較困難,因為沒有標准。

3. 無法區分概念節點和對象節點。

4. 無法對節點和邊的標簽(label,我理解是schema層,后面會介紹)進行定義。

對於語義網絡的缺點1和2,RDF提出在節點和邊的取值上增加了約束,制定了統一的標准。為多源的數據融合提供了便利。(關於RDF,具體看下面)

比如:

rdf:type 哺乳動物 
rdf:type 哺乳動物

那么對於缺點3,先解釋一下,比如有兩個語義網絡,A中熊是哺乳動物的實例,B中熊是哺乳動物的子類(熊還可以分為很多類的熊)這樣不僅會造成理解困難,還會在融合時造成數據沖突。解決方案是RDFS/OWL,來形式化的聲明一個類

哺乳動物 rdf:type rdfs:Class

或者

哺乳動物 rdf:type owl:Class

通過RDFS也可以聲明一個子類:

rdf:type rdfs:Class
rdfs:subClassOf 哺乳動物

或者聲明一個實例

rdf:type 哺乳動物

我們也可以把rdf:type用a代替,即:

a 哺乳動物

2. 語義網和鏈接數據

都是和萬維網有關的,語義網和鏈接數據傾向於描述萬維網中資源、數據之間的關系。只不過是描述的角度不同,都是一系列的技術標准。比如,我們瀏覽一個網頁,我們能夠輕松理解網頁上面的內容,而計算機只知道這是一個網頁。網頁里面有圖片,有鏈接,但是計算機並不知道圖片是關於什么的,也不清楚鏈接指向的頁面和當前頁面有何關系。語義網正是為了使得網絡上的數據變得機器可讀而提出的一個通用框架。Semantic”就是用更豐富的方式來表達數據背后的含義,讓機器能夠理解數據。“Web”則是希望這些數據相互鏈接,組成一個龐大的信息網絡,正如互聯網中相互鏈接的網頁,只不過基本單位變為粒度更小的數據,

 

 

 

鏈接數據起初是用於定義如何利用語義網技術在網上發布數據,其強調在不同的數據集間創建鏈接。當它指語義網技術時,它更強調Web”,弱化了“Semantic”的部分。對應到語義網技術棧,它傾向於使用RDFSPARQLRDF查詢語言)技術,對於Schema層的技術,RDFS或者OWL,則很少使用。鏈接數據應該是最接近知識圖譜的一個概念,從某種角度說,知識圖譜是對鏈接數據這個概念的進一步包裝。(其實不太懂這個,有點抽象了)

鏈接數據和知識圖譜最大的區別在於:

1. 鏈接數據每一個圓圈代表一個獨立存在和維護的知識圖譜;鏈接數據更強調不同RDF數據集(知識圖譜)的相互鏈接。

2. 知識圖譜不一定要鏈接到外部的知識圖譜(和企業內部數據通常也不會公開一個道理),更強調有一個本體層來定義實體的類型和實體之間的關系。另外,知識圖譜數據質量要求比較高且容易訪問,能夠提供面向終端用戶的信息服務(查詢、問答等等)。

RDFRDFSOWL

你要把天下所有的信息以同一種方式描述了有什么好辦法?
rdf就是以資源+屬性的方式給了一種答案。屬性嘛,包括屬性名+
rdf的一個原則是,用uri給資源和屬性取名
從而保證語義的唯一性

 

RDF(Resource Description Framework),即資源描述框架

它提供了一個統一的標准,用於描述實體/資源。簡單來說,就是表示事物的一種方法和手段。

形式上是三元組

 

 

 

它受到元數據標准、框架系統、面向對象語言等多方面的影響,被用來描述各種網絡資源,其出現為人們Web上發布結構化數據提供一個標准的數據描述框架。

 

從內容上看三元組的結構為資源-屬性-屬性值,資源實體由URI表示,屬性值可以是另一個資源實體的URI,也可以是某種數據類型的值,也稱為literals(字面量)。

主語和賓語也可以由第三種結點類型空節點(blank nodes)表示。blank node簡單來說就是沒有IRIliteral的資源,或者說匿名資源。

 

RDF的序列化

 

就是我們怎么存儲和傳輸RDF數據。目前,RDF序列化的方式主要有:RDF/XMLN-TriplesTurtleRDFaJSON-LD等幾種。

RDF/XML,顧名思義,就是用XML的格式來表示RDF數據。之所以提出這個方法,是因為XML的技術比較成熟,有許多現成的工具來存儲和解析XML。然而,對於RDF來說,XML的格式太冗長,也不便於閱讀,通常我們不會使用這種方式來處理RDF數據。

N-Triples,即用多個三元組來表示RDF數據集,是最直觀的表示方法。在文件中,每一行表示一個三元組,方便機器解析和處理。開放領域知識圖譜DBpedia通常是用這種格式來發布數據的。

Turtle, 應該是使用得最多的一種RDF序列化方式了。它比RDF/XML緊湊,且可讀性比N-Triples好。

Rdfa, 即“The Resource Description Framework in Attributes”,是HTML5的一個擴展,在不改變任何顯示效果的情況下,讓網站構建者能夠在頁面中標記實體,像人物、地點、時間、評論等等。也就是說,將RDF數據嵌入到網頁中,搜索引擎能夠更好的解析非結構化頁面,獲取一些有用的結構化信息。

JSON-LD,即“JSON for Linking Data”,用鍵值對的方式來存儲RDF數據。感興趣的讀者可以參考此網站

 

Example1 N-Triples:

 

<http://www.kg.com/person/1> <http://www.kg.com/ontology/chineseName> "羅納爾多·路易斯·納薩里奧·德·利馬"^^string.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/career> "足球運動員"^^string.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/fullName> "Ronaldo Luís Nazário de Lima"^^string.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/birthDate> "1976-09-18"^^date.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/height> "180"^^int.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/weight> "98"^^int.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/nationality> "巴西"^^string.

<http://www.kg.com/person/1> <http://www.kg.com/ontology/hasBirthPlace> <http://www.kg.com/place/10086>.

<http://www.kg.com/place/10086> <http://www.kg.com/ontology/address> "里約熱內盧"^^string.

<http://www.kg.com/place/10086> <http://www.kg.com/ontology/coordinate> "-22.908333, -43.196389"^^string.

 

Example2 Turtle:

 

@prefix person: <http://www.kg.com/person/> .

@prefix place: <http://www.kg.com/place/> .

@prefix : <http://www.kg.com/ontology/> .

 

person:1 :chineseName "羅納爾多·路易斯·納薩里奧·德·利馬"^^string;

         :career "足球運動員"^^string;

         :fullName "Ronaldo Luís Nazário de Lima"^^string;

         :birthDate "1976-09-18"^^date;

         :height "180"^^int;

         :weight "98"^^int;

         :nationality "巴西"^^string;

         :hasBirthPlace place:10086.

place:10086 :address "里約熱內盧"^^string;

            :coordinate "-22.908333, -43.196389"^^string.

RDF是對具體事物的描述,缺乏抽象能力,無法對同一個類別的事物進行定義和描述。就以羅納爾多這個知識圖為例,RDF能夠表達羅納爾多和里約熱內盧這兩個實體具有哪些屬性,以及它們之間的關系。但如果我們想定義羅納爾多是人,里約熱內盧是地點,並且人具有哪些屬性,地點具有哪些屬性,人和地點之間存在哪些關系,這個時候RDF就表示無能為力了。

RDFSOWL這兩種技術或者說模式語言/本體語言(schema/ontology language)解決了RDF表達能力有限的困境。

用過Mysql的讀者應該知道,其database也被稱作schema。這個schema和我們這里提到的schema language十分類似。我們可以認為數據庫中的每一張表都是一個類(Class),表中的每一行都是該類的一個實例或者對象(學過java等面向對象的編程語言的讀者很容易理解)。表中的每一列就是這個類所包含的屬性。如果我們是在數據庫中來表示人和地點這兩個類別,那么為他們分別建一張表就行了;再用另外一張表來表示人和地點之間的關系。RDFS/OWL本質上是一些預定義詞匯(vocabulary)構成的集合,用於對RDF進行類似的類定義及其屬性的定義。

 

### 這里我們用詞匯rdfs:Class定義了“人”和“地點”這兩個類。

:Person rdf:type rdfs:Class.

:Place rdf:type rdfs:Class.

### rdfs當中不區分數據屬性和對象屬性,詞匯rdf:Property定義了屬性,即RDF的“邊”。

:chineseName rdf:type rdf:Property;

        rdfs:domain :Person;

        rdfs:range xsd:string .

 

:career rdf:type rdf:Property;

        rdfs:domain :Person;

        rdfs:range xsd:string .

        

:fullName rdf:type rdf:Property;

        rdfs:domain :Person;

        rdfs:range xsd:string .

        

RDFS幾個比較重要,常用的詞匯:

1. rdfs:Class. 用於定義類。

2. rdfs:domain. 用於表示該屬性屬於哪個類別。

3. rdfs:range. 用於描述該屬性的取值類型。

4. rdfs:subClassOf. 用於描述該類的父類。比如,我們可以定義一個運動員類,聲明該類是人的子類。

5. rdfs:subProperty. 用於描述該屬性的父屬性。比如,我們可以定義一個名稱屬性,聲明中文名稱和全名是名稱的子類。

其實rdf:Propertyrdf:type也是RDFS的詞匯,因為RDFS本質上就是RDF詞匯的一個擴展。

RDFS本質上是RDF詞匯的一個擴展。后來人們發現RDFS的表達能力還是相當有限,因此提出了OWL。我們也可以把OWL當做是RDFS的一個擴展,其添加了額外的預定義詞匯。

OWL有兩個主要的功能:

1. 提供快速、靈活的數據建模能力。

2. 高效的自動推理。

### 這里我們用詞匯owl:Class定義了“人”和“地點”這兩個類。

:Person rdf:type owl:Class.

:Place rdf:type owl:Class.

 

### owl區分數據屬性和對象屬性(對象屬性表示實體和實體之間的關系)。詞匯owl:DatatypeProperty定義了數據屬性,owl:ObjectProperty定義了對象屬性。

:chineseName rdf:type owl:DatatypeProperty;

        rdfs:domain :Person;

        rdfs:range xsd:string .

        

:birthDate rdf:type owl:DatatypeProperty;

        rdfs:domain :Person;

        rdfs:range xsd:date .

 

        

:hasBirthPlace rdf:type owl:ObjectProperty;

        rdfs:domain :Person;

        rdfs:range :Place .

描述屬性特征的詞匯

1. owl:TransitiveProperty. 表示該屬性具有傳遞性質。例如,我們定義“位於”是具有傳遞性的屬性,若A位於BB位於C,那么A肯定位於C

2. owl:SymmetricProperty. 表示該屬性具有對稱性。例如,我們定義“認識”是具有對稱性的屬性,若A認識B,那么B肯定認識A

3. owl:FunctionalProperty. 表示該屬性取值的唯一性。 例如,我們定義“母親”是具有唯一性的屬性,若A的母親是B,在其他地方我們得知A的母親是C,那么BC指的是同一個人。

4. owl:inverseOf. 定義某個屬性的相反關系。例如,定義“父母”的相反關系是“子女”,若AB的父母,那么B肯定是A的子女。

本體映射詞匯(Ontology Mapping

1. owl:equivalentClass. 表示某個類和另一個類是相同的。

2. owl:equivalentProperty. 表示某個屬性和另一個屬性是相同的。

3. owl:sameAs. 表示兩個實體是同一個實體。

本體映射主要用在融合多個獨立的OntologySchema)。舉個例子,張三自己構建了一個本體結構,其中定義了Person這樣一個類來表示人;李四則在自己構建的本體中定義Human這個類來表示人。當我們融合這兩個本體的時候,就可以用到OWL的本體映射詞匯。回想我們在第二篇文章中提到的Linked Open Data,如果沒有OWL,我們將無法融合這些知識圖譜。

<http://www.zhangsan.com/ontology/Person> rdf:type owl:Class .

<http://www.lisi.com/ontology/Human> rdf:type owl:Class .

<http://www.zhangsan.com/ontology/Person> owl:equivalentClass <http://www.lisi.com/ontology

 

知識圖譜的構建

1. 自頂向下

指的是先定義好本體和數據模式,再將實體加入到數據庫需要利用一些現有的結構化的知識庫作為基礎知識庫。

2. 自底向上

從一些開放的鏈接數據中提取出實體,選擇其中置信度較高的加入到知識庫,再構建實體與實體之間的聯系。

知識圖譜的體系架構

1. 邏輯結構

(1) 數據層

數據層主要是由一系列的事實組成,而知識將以事實為單位進行存儲。如果用(實體1,關系,實體2)、(實體、屬性,屬性值)這樣的三元組來表達事實,可選擇圖數據庫作為存儲介質,例如開源的 Neo4jTwitter FlockDBJanusGraph 等。

(2) 模式層

在數據層之上,主要是通過本體庫來規范數據層的一系列事實表達。本體是結構化知識庫的概念模板,

2. 體系架構

 

 

 

什么是機器學習,深度學習

機器學習

機器學習就是用算法解析數據,不斷學習,對世界中發生的事做出判斷和預測的一項技術。研究人員不會親手編寫軟件、確定特殊指令集、然后讓程序完成特殊任務;相反,研究人員會用大量數據和算法“訓練”機器,讓機器學會如何執行任務。這里有三個重要的信息:1、“機器學習”是“模擬、延伸和擴展人的智能”的一條路徑,所以是人工智能的一個子集;2、“機器學習”是要基於大量數據的,也就是說它的“智能”是用大量數據喂出來的;3、正是因為要處理海量數據,所以大數據技術尤為重要;“機器學習”只是大數據技術上的一個應用。常用的10大機器學習算法有:決策樹、隨機森林、邏輯回歸、SVM、朴素貝葉斯、K最近鄰算法、K均值算法、Adaboost算法、神經網絡、馬爾科夫。

從學習方法上來分,機器學習算法可以分為監督學習(如分類問題)、無監督學習(如聚類問題)、半監督學習、集成學習、深度學習和強化學習。


深度學習

深度學習是用於建立、模擬人腦進行分析學習的神經網絡,並模仿人腦的機制來解釋數據的一種機器學習技術。它的基本特點,是試圖模仿大腦的神經元之間傳遞,處理信息的模式。最顯著的應用是計算機視覺和自然語言處理(NLP)領域。顯然,“深度學習”是與機器學習中的“神經網絡”是強相關,“神經網絡”也是其主要的算法和手段;或者我們可以將“深度學習”稱之為“改良版的神經網絡”算法。深度學習又分為卷積神經網絡(Convolutional neural networks,簡稱CNN)和深度置信網(Deep Belief Nets,簡稱DBN)。其主要的思想就是模擬人的神經元,每個神經元接受到信息,處理完后傳遞給與之相鄰的所有神經元即可。

神經網絡的計算量非常大,而GPU的出現讓深度學習快速發展。

 

機器學習是一種實現人工智能的方法,深度學習是一種實現機器學習的技術。

 

深度學習和知識圖譜

深度學習在一個領域/任務是否成功主要由能否提供的信息量來決定,而信息量則有數據條目和每條數據特征個數兩個維度來共同決定。

圖,是描述對象與對象之間最有效的形式。如果深度學習想要進行進一步的突破,學習理解圖,或者尋求一種和圖進行結合的手段是取得突破的最重要的方式,尤其是在像反欺詐,反洗錢,社交網絡分析等場景

知識圖譜則是圖的升級,它利用了圖的結構,將事物背后更高層的背景知識串聯在了一起,使得圖不光光可以進行直接聯系的描述,同時也描述了隱藏在背景知識下的隱藏的聯系。

簡單來說,加入用購物場景來打比方,圖可以通過A用戶購買了商品1和商品2去創建一種直接的關系。而知識圖譜所創建的是商品1和商品2直接的隱藏的背景知識關系,例如商品1和商品2的顏色是一樣的,商品1屬於奢侈品而商品2同樣屬於奶制品中的較為昂貴的產品

知識圖譜為深度學習提供了最重要的兩樣東西,一種是聯系的描述,一種則是背景知識的描述

深度學習為知識圖譜帶來了什么

1、知識獲取

知識圖譜的構建依賴於大量的知識,而大部分的信息都是非機構化的,利用深度學習技術是解決知識獲取的重要手段。

2、表示學習與圖譜推理

盡管現在大規模知識圖譜層出不窮,但依然面臨嚴重的知識不全的問題,補全知識圖譜的一種方式是從已有的知識中推理出新的知識,補全缺失的連接,知識圖譜表示學習可被用來解決這一問題。

知識圖譜表示學習將知識圖譜中的元素映射到向量空間,為它們學習向量空間的表示,並借由向量空間表示之間的計算來擬合三元組的真值,從而達到補全知識圖譜的目的。

 

知識圖譜和傳統知識庫,數據庫關系

知識圖譜是在傳統知識庫的基礎發展而來,優勢是包含語義關系,可以進行一系列的推理。但是缺乏直接的有效處理工具,大規模的圖譜數據往往需要借助數據庫的技術。

知識表示

將關於世界的信息表示為符合機器處理的模式,用於模擬人對世界的認識和推理。已解決人工智能中的復雜任務。

許多的智能系統對於問題的求解都是基於對解答的一種搜索。

不過,對於搜索之前,要想辦法吧這個問題用某種方法表示出來可能涉及狀態空間、問題歸約、語義網絡、框架或謂詞公式,或者把問題表示為一條要證明的定理,或者采用結構化方法等。

對於傳統人工智能問題,任何比較復雜的求解技術都離不開兩方面的內容一一表示與搜索。對於同一問題可以有多種不同的表示方法,這些表示具有不同的表示空間。問題表示的優劣,對求解結果及求解效率影響甚大。

 

1. 語義網絡

有節點:表示各種食物,概念,情況,屬性等,每個節點有若干屬性

邊:表示一種語義聯系

 

 

 

2. 產生式系統

是行為規則的集合

一條規則包括前提(if)和動作(then

 

 

 

3. 框架系統

心理學的研究結果表明,在人類日常的思維和理解活動中,當分析和解釋遇到新情況時,要使用過去經驗積累的知識。這些知識規模巨大而且以很好的組織形式保留在人們的記憶中。例如,當走進一家從未來過的飯店時,根據以往的經驗,可以預見在這家飯店將會看到菜單、桌子、服務員等。當走進教室時,可以預見在教室里可以看到椅子、黑板等。

人們試圖用以往的經驗來分析解釋當前所遇到的情況,但無法把過去的經驗一一都存在腦子里,而只能以一個通用的數據結構的形式存儲以往的經驗。這樣的數據結構稱為框架( frame)。框架提供了一個結構,一種組織。在這個結構或組織中,新的資料可以用經驗中得到的概念來分析和解釋。因此,框架也是一種結構化表示法。

 

 

 

感覺就是一張表。。

4. 概念圖

有數學邏輯支撐的知識表示

以謂詞形式來表示動作的主體、客體,是一種敘述性知識表示方法。利用邏輯公式,人們能描述對象、性質、狀況和關系。它主要用於自動定理的證明。邏輯表示法主要分為命題邏輯和謂詞邏輯。

邏輯表示研究的是假設與結論之間的蘊涵關系,即用邏輯方法推理的規律。它可以看成自然語言的一種簡化形式,由於它精確、無二義性,容易為計算機理解和操作,同時又與自然語言相似。

命題邏輯是數理邏輯的一種,數理邏輯是用形式化語言(邏輯符號語言)進行精確(沒有歧義)的描述,用數學的方式進行研究。我們最熟悉的是數學中的設未知數表示。例:用命題邏輯表示下列知識:

如果a 是偶數,那么a2 是偶數。

解:定義命題如下:P:a 是偶數;Q: a2 是偶數,則:原知識表示為:P→Q

謂詞邏輯相當於數學中的函數表示。例:用謂詞邏輯表示知識:自然數都是大於等於零的整數

解:定義謂詞如下:N(x):x 是自然數;I(x):x 是整數;GZ(x):x 是大於等於零的數。所以原知識表示為:(∀x)(N(x)(GZ(x)∧I(x))∀(x)是全稱量詞。

 

對於描述邏輯ALC的推理Tableau算法原理:利用邏輯中的轉化規則不斷的將原始問題展開樹結構,直至能判斷命題的成立為止。是一個深度優先算法,總是先擴展左分枝,在完成態存在一個無沖突分治,表示推理結論一致

 

 

 

 

知識建模

本體的概念:

在計算機科學和信息科學中,本體是知識的一種形式表示,它是一個領域內的一組概念以及這些概念之間的關系。
它用於推理該域內的實體,也可以用於描述該域。

本體是組織信息的結構框架,用於人工智能
語義Web、系統工程、軟件工程、生物醫學信息學、圖書館學、企業書簽和作為世界或世界的一部分知識表示形式的信息架構。

 

中文的蘋果,英文的“apple”蘋果的圖片都可以讓人知道是在表示蘋果這樣東西。那么在哲學層面,蘋果這樣東西就是亞里士多德口中的實體,巴門尼德口中的存在,和本體論中所說的本體。而蘋果“apple”蘋果的圖片就統統是描述這個本體的符號。


本體這個概念在哲學層面上是形而上的,是只可意會不可言傳的,因為所有的描述都成為了本體的外在符號,我們世界上的所有圖像、語言、我們看到的、聽到的、感受到的,都成為符號到本體的某種映射。

既然我們都已經理解了哲學層面上所有的符號到本體存在映射,那么語義層面就很好理解了,我們的主要目的就是要建立這樣一種映射,舉個簡單的例子,我們就是希望把
{“THU”,"Tsinghua", "Tsinghua University""清華","清華大學"}
這個符號集都映射到清華大學這個本體上來。再深一層,我們建立了本體的集合,就可以去發掘本體之間深層的關系,有可能是屬性-本體的關系,有可能是子類-本體的關系,也有可能是本體-本體的對立或者是近似關系。描述語義層面的本體關系的語言就是RDFOWL等。



再深一層的話,在建立好本體之間的關系之后能干什么呢?我們就可以進行語義層面上的推理了啊,推理的結果可以映射回語言層面形成新的組合。舉個例子:

1.我們把各民族表示蘋果的語言都映射到蘋果這個本體上,這是第一步本體映射;

2.蘋果這個本體可以跟名詞主體建立隸屬關系,這是第二步建立本體之間的邏輯關系;

3.“名詞主體可以跟在動詞主體之后,形成動賓結構,我們在這個動賓結構之上,經過反映射,就可以實現各語種之間的翻譯,這是邏輯推理和實際應用。

 

其實不僅限於語義Web,很多機器學習、自然語言處理和人工智能的方法都在做本體映射和推理,只是表現的形式不同罷了,所以也建議IT狗們能讀一讀本體論認識論的書籍,說不定能有更深的認識。

https://www.zhihu.com/question/19558514

 

 

 

本體手動構建工程

1. 確定本體的領域和范圍

2. 考慮重用現有本體

3. 列出本體中的重要術語

4. 定義類和類的繼承

5. 定義類的屬性和關系

6. 定義屬性的限制

7. 創建實例

本體自紅構建

1. 基於規則的本體學習

2. 基於機器學習的本體學習

將本體學習轉化為機器學習中的分類和序列標注問題

選取特征和學習模型,進行訓練,學習得到本體

 

 

 

知識抽取

對於開放的鏈接數據(通常需要爬蟲等技術獲取),通過自動化技術抽取出可用的知識單元,主要是下面三個方面

 

知識抽取基本都是建立在信息抽取的基礎之上的,都普遍利用自然語言處理技術,基於規則的包裝器,機器學習等。

對不同知識的知識抽取

1. 對於結構化數據的知識抽取

這個簡單,一般都是直接從數據庫里面直接轉化抽取就可以

抽取的原理是

-類

-屬性

-資源/實例

單元-屬性值

外鍵-指代(Reference)

雖然轉換規則簡單,但是語義信息不足

2. 對於半結構化數據的知識抽取

比如說wiki百科知識,可以先通過爬蟲啥的轉化成結構化數據再進一步知識抽取。

3. 對於無結構化數據的知識抽取

即通過NLP技術進行實體抽取,關系抽取和屬性抽取,事件抽取。

1. 實體抽取,抽取出知識圖譜中最基本的元素實體,在技術上我們更多稱為 NER(named entity recognition,命名實體識別),指的是從原始語料中自動識別出命名實體。

2. 關系抽取,解決實體間語義鏈接

3. 屬性抽取,主要是對實體的屬性進行完整勾畫。

4. 事件抽取,事件就是具有時間,地點,參與者等基本元素,可由某個動作觸發或者狀態改變而發生圖結構知識片段。把事件從數據中抽取出來並結構化或者語義化展示。

 

實體識別

就是對於非結構化數據(txt這樣的)識別出人名,地名,組織名

基於規則和詞典的實體識別

 

 

 

基於機器學習的實體識別

 

目前上述的方法是一個也看不懂QAQ

基於半監督學習的實體識別

基於遷移學習的實體識別

基於預訓練的實體識別

......

 

關系抽取

 

看不懂啊

事件抽取

 

 

知識融合

由於是多數據源的,不同數據源存在知識重復,知識間的關聯不明確,使來自不同知識源的知識在同一框架規范下進行異構數據整合、消歧、加工、推理驗證、更新等步驟,達到數據、信息、方法、經驗以及人的思想的融合,形成高質量的知識庫。

知識融合的解決思路

1. 本體匹配

本體匹配流程

(1) 預處理:解析,數據清洗,構造基礎數據

(2) 匹配計算,構造匹配線索,相似度計算

匹配的方法

(1) 基礎匹配器

(2) 文本匹配器

(3) 結構匹配器

(4) 知識表示學習方法

原理:利用機器學習中的學習技術,將知識圖譜中的實體和關系都映射成地位向量空間,直接用數學表達式來計算各個實體之間的相似度。

 

(3) 后處理,匹配結果抽取,匹配調諧

匹配結果抽取:不同匹配的結果通常表示為一個相似矩陣,如何從中得到最終的匹配結果通常使用穩定婚姻算法,其他啟發式算法。

 

2. 實例匹配

看不懂了。。。

 

知識表示學習

基本概念

表示學習:將研究對象的語義信息表示為稠密低緯的實值向量

研究對象:文字,圖片,語音等

將知識庫的實體和關系表示為稠密低緯的實值向量

以深度學習為代表的表示學習技術取得了重要的進展,可以將實體的語義信息表示為稠密低維實值向量,進而在低維空間中高效計算實體、關系及其之間的復雜語義關聯,對知識庫的構建、推理、融合以及應用均具有重要的意義。

簡單說就是讓把知識變成機器可以理解的東西

 

知識表示中的問題

基於圖結構的知識表示雖然簡潔直觀,但是需要專門的算法(復雜度高,可擴展性差)

數據稀疏問題

長尾分布,長尾上的實體和關系的語義難以捕獲。

獨熱表示(one-hot representation)

假設所有研究對象都是獨立的,將研究對象表示為向量,只有某一維非零,其余維度上的值均為0。顯然不符合實際情況,導致丟失大量信息。

例子:蘋果(0,1,0,0,0,0,0,香蕉(0,0,0,1,0,0,0)

知識表示的意義

低維向量提高計算效率

稠密向量緩解數據稀疏

多源的異質信息表示形式統一,便於遷移和融合

知識表示學習代表模型

基於距離的模型

基於翻譯的模型

語義匹配模型

融合多源信息的模型

 

知識推理

大部分的知識圖譜都是半自動的方式構建,知識推理就是利用現有的顯性知識來預測知識圖譜的隱性知識

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM