知识图谱(二)——知识表示
知識應用難點在于知識推理,知識推理的難點在于知識表示。
文章目錄
- 一、經典知識表示理論
- 1、邏輯
- (1)命題邏輯
- a、命題邏輯真值表
- b、一階謂詞邏輯 vs 高階謂詞邏輯
- (2)語義網絡(Semantic Network)
- a、關系的類型
- b、根據論元個數把關系分為:一元關系、二元關系和多元關系
- (3)框架
- a、框架的組成
- b、示例
- (4)腳本
- a、腳本的組成
- 二、語義網中的知識表示方法
- 1、語義網表示方法
- 2、語義網知識描述體系
- (1)XML
- (2)RDF
- (3)OWL
- a、頭部
- b、主體(核心)
- c、功能性標簽
- d、語義網 vs 語義網絡
- 三、知識圖譜中的知識表示方法
- 1、表示框架
- (1)本體
- (2)組合值類型(CVT)
- 四、知識圖譜的數值化表示方法
- 1、符號的數值化表示
- 2、文本的數值化表示
- 3、知識圖譜的數值化表示
一、經典知識表示理論
1、邏輯
根據復雜性從弱到強:命題邏輯(propositional logic)、一階謂詞邏輯、高階邏輯。
(1)命題邏輯
定義了具有真假值的原子命題,并可通過與(?\bigwedge?)、或(?\bigvee?)、非(﹁)、蘊含(?\Rightarrow?)、當且僅當(?\Leftrightarrow?)等,將多個原子命題組合成復合命題,而推理過程則根據邏輯連接詞的真值表進行推導。
a、命題邏輯真值表
| true | true | false | true | true | true | true |
| false | true | true | false | true | true | false |
| true | false | false | false | true | false | false |
| false | false | true | false | false | true | true |
只要推論是真,命題就一定為真;推論為假的時候,看假設是否與推論的真值一致,一致的話,命題為真,不一致的話,命題為假。
b、一階謂詞邏輯 vs 高階謂詞邏輯
謂詞邏輯分為一階謂詞邏輯和高階謂詞邏輯,主要區別:是否可以量化謂詞或集合。
一階謂詞邏輯(一階邏輯):
- 在命題邏輯基礎上引入了全稱量詞(?\forall? ,表示集合全部)和存在量詞(?\exists?,表示在論域中存在至少一個對象),使得一階邏輯可以量化實體和概念
高階邏輯:
- 量化謂詞或集合
- 二階量化集合
- 三階量化集合的集合
(2)語義網絡(Semantic Network)
該模型認為人類的記憶是由概念間的聯系(語義關系)實現的,其最基本的語義單元為語義基元,用三元組形式表示:<節點1,關系,節點2>。
a、關系的類型
- 實例關系(ISA):體現“具體與抽象”的概念,含義為“是一個”,表示一個事物是另一個事物的一個實例。
- 分類關系(泛化關系)(AKO,a kind of):體現“子類與超類”的概念,含義為“是一種”,表示一個事物是另一個事物的一種類型。
- 成員關系(A-Member-of):體現“個體與集體”的關系,含義為“是一員”,表示一個事物是另一個事物的一個成員。
- 屬性關系:指事物和其屬性之間的關系。常用的屬性關系:Have、Can
- 聚合(聚類、包含)關系:有組織或結構特征的“部分與整體”之間的關系。
- 時間關系:不同事件在其發生時間方面的先后次序關系。常用的時間關系:在前、在后
- 位置關系:不同事物在位置方面的關系。常用的位置關系:在、在上、在下、在內、在外
- 相近關系:不同事物在形狀、內容等方面相似或相近
b、根據論元個數把關系分為:一元關系、二元關系和多元關系
- 一元關系:用一元謂詞 P(x)P(x)P(x) 表示,PPP 表示實體/概念的性質、屬性等,xxx 表示實體。eg:有翅膀(鳥)
- 二元關系:用二元謂詞 P(x,y)P(x,y)P(x,y) 表示,x,yx,yx,y 表示實體,PPP 表示實體之間的關系。eg:首都(中國,北京)
- 多元關系:語義網將多元關系轉化為多個二元關系,然后利用合取把這個多元關系表示出來。
(3)框架
框架是一種描述所討論對象(事物、事件、概念等)屬性和行為的數據結構。
a、框架的組成
- 框架名:每個框架都有一個框架名,唯一標識一個框架。
- 槽(Slot):包括 槽名、槽值
- 一個框架由若干個槽構成,每個槽都有槽名;
- 一個槽用于說明框架某一方面的屬性;
- 屬性的值即為槽值。
- 側面(Facet):包括 側面名、側面值
- 一個槽有可能劃分為若干個側面,具有相應的側面名;
- 一個槽可能含有若干細分屬性,一個側面用來說明其中的一個屬性;
- 屬性的值即為側面值。
- 約束條件:用來約束、限制槽值、側面值的填寫。一般不單獨列出,而包含在值的填寫約束中。
b、示例
框架1:<災難>槽1:<時間>槽2:<地點>槽3:<傷亡>側面3.1:<死亡人數>側面3.2:<失蹤人數>槽4:<損失>側面4.1:<直接經濟損失>側面4.2:<間接經濟損失>槽5:<救援>側面5.1:<救援部門>側面5.2:<救援時間>側面5.3:<捐贈情況>(4)腳本
腳本通過一系列的原子動作來表示事物的基本行為,按照時間順序描述事物的發生,描述動態的過程。腳本表示的知識有確定的時間或因果順序,必須是前一個動作完成后才會觸發下一個動作的開始。
特點:表示方法能力有限,因其能夠描述有一定時序關系的槽信息,在AI和NLP中得以應用,eg:智能對話系統,如酒店預訂、機票預訂等。
a、腳本的組成
- 進入條件:事件發生的前提條件。
- 角色:事件中可能出現的人物。
- 道具:事件中可能出現
- 舞臺:腳本中事件發生的空間。
- 場景:時間發生的序列,是腳本的主體部分。缺陷:需要對所有可能發生動作序列進行枚舉。
- 結局:給出在腳本所描述的事件發生之后通常所產生的結果,對應著進入后續腳本的先決條件。
二、語義網中的知識表示方法
1、語義網表示方法
在拓撲結構上可看作一個圖或網絡。
<!-- xml格式文檔 --> <影星><中文名>甄子丹</中文名><外文名>Donnie Yen</外文名><國籍>中國</國籍><民族>漢</民族><身高>175cm</身高><出生><出生地>廣州市</出生地><出生日期>1963年7月27日</出生日期></出生><畢業院校>西安趙長軍武術學院 </畢業院校> </影星>與框架相比:不需要對具有多個側面的屬性定義另一個框架,而是直接定義屬性和屬性關系建立它們之間的聯系(eg:定義屬性“出生”和屬性“出生地”并建立一個“部分-整體”的關系鏈接“出生”和“出生地”)。
2、語義網知識描述體系
常用:XML(可擴展標記語言,eXtensible Markup Language)、RDF(資源描述框架,Resource Description Framework)和OWL(網絡本體語言,Web Ontology Language)
(1)XML
提出:為了解決動態信息的顯示問題,以及HTML在數據表示和描述方面混亂的問題而提出的技術標準。但其通用性受到限制(不同時期或屬于不同組織的語義知識需要相互兼容)。
一個標準的XML文檔需包含一個 序言和若干具體內容,也可包含一個尾注。
- 序言:對XML的聲明以及外部文檔的引用。
- 內容:通過元素來記錄,元素的標簽必須是字母、下劃線、冒號,標簽含有的內容可以是文本、數值、時間甚至為空。元素可以嵌套,深度不受限制。
- 第一行:定義所使用的XML版本和字符編碼。
- 第二行:<!DOCTYPE>標簽是標準通用標記語言的文檔類型聲明,表示引用外部文件來定義本地文檔中出現的名字,url.dtd標記了要引用文檔的路徑。
(2)RDF
RDF假設任何復雜的語義都可以通過若干個三元組的組合來表達,并定義這種三元組的形式為“對象 — 屬性 — 值”或“主語 — 謂語 — 賓語”,其中需要公開或者通用的資源,都會綁定一個可識別的通用資源標識符(universal resource identifier, URI)
示例:
<http://dbpedia.org/resource/Max_Planck> <http://xmlns.com/foaf/0.1/name> "Max Planck"@en <馬克斯·普朗克,國籍,德國>當需要表示的參數超過兩個,常通過RDF定義的一組二元謂詞來表示,但增加了復雜性,也加大了后續處理的難度。示例如下:
馬克斯·普朗克1919年獲得諾貝爾獎。 轉換為 ==》 <獲獎信息87,人物,馬克斯·普朗克> <獲獎信息87,時間,1919年> <獲獎信息87,名稱,諾貝爾獎>查詢語言:SPARQL
RDF Schema(RDFs)是一種用于描述RDF的輕量級語言,主要關注類別和屬性的層次結構以及繼承關系等,可限制子類和屬性層次及其屬性的定義域、值域,便于不同知識內容的交互和融合。
(3)OWL
OWL建立在RDF和RDFs上,主要包括頭部和主體兩部分。
a、頭部
使用命名空間中預定義的標簽來形成本體的頭部,其中預定義命名空間包括 xmlns:owl、xmlns:rdf、xmlns:rdfs、xmlns:xsd等等。示例:物理學家 本體可用如下頭部表示
<owl:Ontology rdf:about=""><rdfs:comment>一個本體的例子</rdfs:comment><rdfs:label>物理學家本體</rdfs:label> </owl:Ontology><owl:Ontology rdf:about=""> 表示本模塊描述當前本體
b、主體(核心)
用于描述本體的類別、實例、屬性之間相互關聯的部分。示例如下,包括但不限于此。
- 類別關系描述本體的類別所屬,只需記錄父親(subClassOf)
- owl:ObjectProperty表示對象類型屬性,rdfs:domain和rdfs:range表示該屬性的定義域和值域。
- owl:subProperty表示記錄屬性間的從屬關系。
c、功能性標簽
- 傳遞性:owl:TransitiveProperty
- 對稱性:owl:SymmetricProperty
- 函數性:owl:FunctionalProperty
- 可逆性:owl:inverseOf
- 約束性:owl:Restriction
- 映射:owl:equivalentClass 和 owl:equivalentProperty
示例:只有獲得過諾貝爾獎的物理學家才被稱為諾貝爾物理學家
<owl:Class rdf:about="諾貝爾物理學家"><rdfs:subClassOf rdf:resource="物理學家"/><owl:Restriction><owl:onProperty rdf:resource="獲獎名稱"/><owl:allValuesFrom rdf:resource="諾貝爾獎"/></owl:Restriction> </owl:Class>d、語義網 vs 語義網絡
在語義網絡中,對節點和邊的描述沒有標準,用戶按需自行定義,會導致:
- 不同用戶定義方式不同,不便于知識的分享;
- 無法區分知識描述和知識實例。
語義網基于W3C制定的標準,利用統一的形式對知識進行描述和關聯,利于知識的共享和利用。
語義網通過語義具化(Semantic Grounding),讓每個概念(實體、類別、關系、事件等)都有一個唯一的標識符。
三、知識圖譜中的知識表示方法
1、表示框架
(1)本體
- 一個知識本體主要涵蓋以下內容:事物、概念、屬性、關系、函數、約束、規則、公理。
- 目前大部分知識譜圖主要是對前四部分內容(事物、概念、屬性、關系)進行建模,只有很少的知識圖譜建模了簡單的規則結構,也反映不同層次知識在表示上的復雜程度是不同的。
- 知識用統一的三元組形式表示,不論是對人類操作的便捷性還是對計算機計算的高效性,都有很大優勢。
- 知識圖譜的知識表示不僅體現在RDF為基礎的三元組之上,還體現在實體、類別、屬性、關系等多顆粒度、多層次語義單元的關聯之上。
(2)組合值類型(CVT)
待補充
四、知識圖譜的數值化表示方法
1、符號的數值化表示
語義計算
特征工程
2、文本的數值化表示
1957年,Firth對分布假說進行進一步闡述和明確:詞的語義由上下文決定。
詞空間模型(Word Space Model)==》詞的分布表示(Distributional Representation)
3、知識圖譜的數值化表示
基于張量分解
基于能量函數
總結
以上是生活随笔為你收集整理的知识图谱(二)——知识表示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python 自然语言处理 第二版】读
- 下一篇: 知识图谱(三)——知识体系构建和知识融合