【知识图谱】 | 《知识图谱——方法、实践与应用》阅读笔记
《知識圖譜——方法、實踐與應用》的閱讀筆記
知識圖譜——方法、實踐與應用
- 第1章 知識圖譜概述
- 1.1 什么是知識圖譜
- 1.2 知識圖譜的發展歷史
- 1.3 知識圖譜的價值
- 1.4 國內外典型的知識圖譜項目
- 1.4.1 早期的知識庫項目
- 1.4.2 互聯網時代的知識圖譜
- 1.4.3 中文開放的知識圖譜
- 1.4.4 垂直領域知識圖譜
- 1.5 知識圖譜的技術流程
- 1.6 知識圖譜的相關技術
- 1.6.1 知識圖譜與數據庫系統
- 1.6.2 知識圖譜與智能問答
- 1.6.3 知識圖譜與機器推理
- 1.6.4 知識圖譜與推薦系統
- 1.6.5 區塊鏈與去中心化的知識圖譜
- 第2章 知識圖譜表示與建模
- 2.1 什么是知識表示
- 2.2人工智能早期的知識表示方法——怎么表現知識
- 2.2.1一階謂詞邏輯
- 2.2.2霍恩子句和霍恩邏輯
- 2.2.3語義網絡
- 2.2.4框架
- 2.2.5描述邏輯
- 2.3互聯網時代的語義網知識表示框架
- 2.3.1RDF和RDFS
- 1.RDF簡介
- 2.開放世界假設
- 3.RDFS簡介
- 2.3.2OWL和OWL2 Fragments
- 1.OWL的語言特征
- 2.OWL的重要詞匯
- 3.OWL版本
- 2.3.3知識圖譜查詢語言的表示
- 1.SPARQL知識圖譜查詢基本構成——和MySQL的查詢好像
- 2.常見的SPARQL查詢算子
- 2.3.4語義Markup表示語言
- 2.4常見開放域知識圖譜的知識表示方法
- 2.4.1Freebase
- 2.4.2Wikidata
- 2.4.3ConceptNet5
- 2.5知識圖譜的向量表示方法
- 2.5.1知識圖譜表示的挑戰
- 2.5.2詞的向量表示方法
- 1.獨熱編碼
- 2.詞袋模型
- 3.詞向量(詞嵌入)
- 2.5.3知識圖譜嵌入的概念
- 2.5.4知識圖譜嵌入的優點
- 2.5.5知識圖譜嵌入的主要方法
- 2.5.6知識圖譜嵌入的應用
- 第3章 知識存儲
- 3.1知識圖譜數據庫基本知識
- 3.1.1知識圖譜數據模型
- 1.RDF圖
- 2.屬性圖
- 3.1.2知識圖譜查詢語言
- 3.2常見知識圖譜存儲方法
- 3.2.1基于關系數據庫的存儲方案
- 3.2.2面向RDF的三元組數據庫(略,有需要再學)
- 3.2.3原生圖數據庫
- 3.2.4知識圖譜數據庫比較
- 3.3知識存儲關鍵技術
- 3.3.1知識圖譜數據庫的存儲:以Neo4j為例
- 3.3.2知識圖譜數據庫的索引
- 1.屬性數據索引
- 2.圖結構索引
- 第4章 知識抽取與知識挖掘
- 4.1知識抽取任務
- 4.2面向非結構化數據的知識抽取
- 4.2.1實體抽取
- 4.2.2關系抽取
- 4.2.3事件抽取
- 1.事件抽取的流水線方法
- 2.事件的聯合抽取方法
- 4.3面向結構化數據的知識抽取
- 4.3.1直接映射
- 4.3.2R2RML
- 4.3.3相關工具
- 4.4面向半結構化數據的知識抽取
- 4.4.1面向百科類數據的知識抽取
- 4.4.2面向Web網頁的知識抽取
- 4.5知識挖掘
- 4.5.1知識內容挖掘:實體鏈接
- 1.實體指稱識別
- 2.候選實體生成
- 3.候選實體消歧
- 4.5.2知識結構挖掘:規則挖掘**==看不太懂==**
- 1.歸納邏輯程序設計ILP
- 2.路徑排序算法PRA
- 第5章 知識圖譜融合
- 5.1什么是知識圖譜融合
- 5.2知識圖譜中的異構問題
- 5.2.1語言層不匹配
- 5.2.2模型層不匹配
- 5.3本體概念層的融合方法與技術
- 5.3.1本體映射與本體集成
- 1.基于單本體的集成
- 2.基于全局本體-局部本體的集成
- 3.本體映射分類
- 5.3.3本體映射方法和工具
- 5.4實例層的融合與匹配
- 第6章 知識圖譜推理
- 6.1推理概述
- 6.1.1什么是推理
- 6.1.2面向知識圖譜的推理
- 6.2基于演繹的知識圖譜推理
- 6.2.1本體推理
- 1.本體與描述邏輯概述
- 2.基于Tableaux的本體推理方法
- 3.常用本體推理工具簡介
- 6.2.2基于邏輯編程的推理方法
- 1.邏輯編程與Datalog簡介
- 2.Datalog語言
- 3.Datalog推理舉例
- 4.Datalog與知識圖譜
- 5.基于Datalog的推理工具介紹
- 6.2.3基于查詢重寫的方法
- 6.2.4基于產生式規則的方法
- 6.3基于歸納的知識圖譜推理
- 6.3.1基于圖結構的推理
- 1.方法概述
- 2.常見算法簡介
- 6.3.2基于規則學習的推理
- 1.方法概述
- 6.3.3基于表示學習的推理
- 6.4知識圖譜推理新進展
- 6.4.1時序預測推理
- 6.4.2基于強化學習的知識圖譜推理
- 6.4.3基于元學習的少樣本知識圖譜推理
- 6.4.4圖神經網絡與知識圖譜推理
- 第7章 語義搜索
- 7.1語義搜索簡介
- 7.2結構化的查詢語言
- 7.3語義數據搜索
- 7.3.1三元組存儲
- 7.3.2==索引構建==
- 7.3.3查詢處理和排序
- 7.4語義搜索的交互范式
- 7.4.1基于關鍵詞的知識圖譜語義搜索方法
- 1.基于關鍵詞直接在知識圖譜上搜索答案
- 2.基于關鍵詞生成結構化的查詢
- 7.4.2基于分面的知識圖譜語義搜索
- 7.4.3基于表示學習的知識圖譜語義搜索
- 1.基于表示學習的結構化語義查詢
- 2.基于表示學習的自然語言語義查詢7
- 第8章 知識問答
- 8.1知識問答概述
- 8.2知識問答的分類體系
- 8.2.1問題類型與答案類型
- 1.事實性客觀問題
- 2.主觀深層次問題
- 8.2.2知識庫類型
- 8.2.3智能體類型
- 8.3知識問答系統
- 8.3.1NLIDB:早期問答系統
- 8.3.2IRQA:基于信息檢索的問答系統
- 8.3.3KBQA:基于知識庫的問答系統
- 8.3.4CommunityQA/FAQ-QA:基于問答對匹配的問答系統
- 8.3.5Hybrid QA Framework 混合問答系統框架
- 1.DeepQA:IRQA主導的混合框架
- 2.QALD-Hybrid-QA:KBQA主導的混合框架
- 3.Frankenstein:問答系統的流水線架構
- 8.4知識問答的評價方法
- 8.4.1問答系統的評價指標
- 1.功能評價指標
- 2.性能評價指標
- 8.5KBQA前沿技術
- 8.5.1KBQA面臨的挑戰
- 1.多樣的概念映射機制
- 2.不完美的知識庫
- 3.泛化語義理解的預期
- 8.5.2基于模板的方法
- 8.5.3基于語義解析的方法
- 8.5.4基于深度學習的傳統問答模塊優化
- 3.泛化語義理解的預期
- 8.5.2基于模板的方法
- 8.5.3基于語義解析的方法
- 8.5.4基于深度學習的傳統問答模塊優化
第1章 知識圖譜概述
1.1 什么是知識圖譜
知識圖譜是一種用圖模型來描述知識和建模世界萬物之間的關聯關系的技術方法。
1.2 知識圖譜的發展歷史
- 1960 Semantic Networks 語義網絡作為知識表示的一種方法被提出,主要用于自然語言理解領域
- 1980 Ontology 哲學概念“本體”被引入人工智能領域用來刻畫知識
- 1989 Web Tim Berners-Lee在歐洲高能物理研究中心發明了萬維網
- 1998 The Semantic Web Tim Berners-Lee提出了語義互聯網的概念
- 1989 Linked Data Tim Berners-Lee定義了在互聯網上鏈接數據的四條原則
- 2012 Knowledge Graph 谷歌發布了其基于知識圖譜的搜索引擎產品
符號派:模擬人的心智,研究怎樣用計算機符號表示人腦中的知識并模擬心智的推理過程
連接派:側重于模擬人腦的生理結構,即人工神經網絡
1.3 知識圖譜的價值
1.4 國內外典型的知識圖譜項目
1.4.1 早期的知識庫項目
- Cyc:主要由術語和斷言組成,主要特點是基于形式化的知識表示方法刻畫知識。形式化的優勢是可以支持復雜的推理,但過于形式化也導致知識庫的擴展性和應用的靈活性不夠
- WordNet:定義了名詞、動詞、形容詞和副詞之間的語義關系
- ConceptNet: 采用了非形式化、更加接近自然語言的描述
1.4.2 互聯網時代的知識圖譜
以互聯網資源為基礎的新一代知識庫,構建方法分為三類:互聯網眾包、專家協作、互聯網挖掘
- Freebase:基于RDF三元組模型,底層采用圖數據庫進行存儲。不對頂層本體做非常嚴格的控制,用戶可以創建、編輯類和關系的定義。
- DBpedia:采用RDF語義數據模型和較為嚴格的本體
- Schema.org:本質是采用互聯網眾包的方式生成和收集高質量的知識圖譜數據
- Wikidata
- BabelNet:目標是解決WordNet在非英語語種中數據缺乏的問題。首先建立WordNet中的詞于Wikipedia的頁面標簽的映射,然后利用Wikipedia中的多語言鏈接,再輔以機器翻譯技術,給WordNet增加多種語言的詞匯
- NELL(Never-Ending Language Learner):給定一個初始的本體(少量類和關系的定義)和少量樣本,讓機器能夠通過自學習的方式不斷從Web中學習和抽取新的知識
- Yago:將WordNet的詞匯定義與Wikipedia的分類體系進行了融合集成,使得Yago具有更加豐富的實體分類體系;還考慮了時間和空間知識,為很多知識條目增加了時間和空間維度的屬性描述
- Microsoft ConceptGraph:以概念定義和概念之間的IsA關系為主,可以用于短文本理解和語義消歧
- LOD(Linked Open Data):遵循Tim提出的進行數據鏈接的四個規則
- 使用URI標識萬物
- 使用HTTP URI,以便用戶可以查看事物的描述
- 使用RDF和SPARQL標準
- 為事物添加與其他事物的URI鏈接,建立數據關聯
1.4.3 中文開放的知識圖譜
- OpenKG:聚集大量開放的中文知識圖譜數據、工具及文獻
1.4.4 垂直領域知識圖譜
| 知識來源及規模化 | 以互聯網開放數據或社區眾包為主要來源,逐步擴大規模 | 以領域或企業內部的數據為主要來源,通常要求快速擴大規模 |
| 對知識表示的要求 | 主要以三元組事實型知識為主 | 知識結構更加復雜,通常包含較為復雜的本體工程和規則型知識 |
| 對知識質量的要求 | 較多地采用面向開放域的Web抽取,對知識抽取質量有一定容忍度 | 知識抽取的質量要求更高,較多地依靠從企業內部的結構化、非結構化數據進行聯合抽取,并依靠人工進行審核校驗,保障質量 |
| 對知識融合的要求 | 融合主要起到提升質量的作用 | 融合多源的領域數據是擴大構建規模的有效手段 |
| 知識的應用形式 | 主要以搜索和問答為主要應用形式,對推理要求較低 | 應用形式更加全面,除搜索問答外,通常還包括決策分析、業務管理等,并對推理的要求更高,有較強的可解釋性要求 |
| 舉例 | DBpedia、Yago、百度、谷歌等 | 電商、醫療、金融、農業、安全等 |
領域知識圖譜規模巨大、知識結構復雜、來源多樣、知識更加異構、具有高度的動態性和時效性、更深層次的推理需求
1.5 知識圖譜的技術流程
知識來源
知識表示與Schema工程
按知識類型的不同,知識圖譜包括詞、實體、關系、事件、術語體系、規則等
RDF把三元組作為基本的數據模型,其基本的邏輯結構包含主語、謂詞、賓語三個部分。
知識抽取
按任務可以分為概念抽取、實體識別、關系抽取、事件抽取和規則抽取等
知識融合
當多個知識圖譜進行融合,或者將外部關系數據庫合并到本體知識庫時,需要處理兩個層面的問題:
知識圖譜補全與推理
知識檢索與知識分析
1.6 知識圖譜的相關技術
1.6.1 知識圖譜與數據庫系統
基于三元組庫和圖數據庫能夠提供的知識圖譜數據存儲方案可分為三類:
1.6.2 知識圖譜與智能問答
研究方法主要分三類:
單知識點事實型問題已經接近人類水平
多知識點事實型問答還需要聚焦
1.6.3 知識圖譜與機器推理
典型的推理包括:演繹推理、歸納推理、溯因推理、類比推理等
推理的作用:對知識圖譜進行補全和知識圖譜質量校驗
推理的方法:基于規則的推理、基于分布式表示學習的推理、基于神經網絡的推理以及混合推理
1.6.4 知識圖譜與推薦系統
1.6.5 區塊鏈與去中心化的知識圖譜
第2章 知識圖譜表示與建模
知識圖譜表示指的是用什么語言對知識圖譜進行建模,從而可以方便知識計算。
2.1 什么是知識表示
無論是語義網絡,還是框架語言和產生式規則,都缺少嚴格的語義理論模型和形式化的語義定義。
基于離散符號的知識表示與基于連續向量的知識表示對比
| 基于離散符號的知識表示 | 以符號邏輯為基礎 | 優:易于刻畫顯式、離散的知識,具有內生的可解釋性 缺:人類知識包含大量不易于符號化的隱性知識,完全基于符號邏輯的知識表示通常由于知識的不完備而失去魯棒性 |
| 基于連續向量的知識表示 | 通過嵌入將知識圖譜中的實體和關系投射到一個低維的連續向量空間,為每一個實體和關系學習出一個低維度的向量表示 | 優:通過數值運算來發現新事實和新關系,發現更多隱式知識和潛在假設 知識圖譜嵌入也通常作為一種類型的先驗知識輔助輸入很多深度神經網絡模型,用來約束和監督神經網絡的訓練過程。 |
2.2人工智能早期的知識表示方法——怎么表現知識
2.2.1一階謂詞邏輯
- 優點:
- 結構性 能把事物的屬性以及事物間的各種語義聯想顯式地表示出來
- 嚴密性 有形式化的語法和語義,以及相關的推理規則
- 可實現性 可以轉換為計算機內部形式,以便于算法實現
- 缺點:
- 有限的可用性 一階邏輯的邏輯歸結只是半可判定性的
- 無法表示不確定性知識
2.2.2霍恩子句和霍恩邏輯
- 優點:
- 結構性 能把事物的屬性以及事物間的各種語義聯想顯式地表示出來
- 嚴密性 有形式化的語法和語義,以及相關的推理規則
- 易實現性 可判定,可以轉換為計算機內部形式,以便用算法實現
- 缺點:
- 有限的表達能力 不能定義類表達式,不能夠任意使用量化
- 無法表示不確定性知識
2.2.3語義網絡
語義網絡的單元是三元組(節點1,聯想弧,節點2),所有節點均通過聯想弧彼此相連,語義網絡可以通過圖上的操作進行知識推理。
- 優點:
- 聯想性 最初是作為人類聯想記憶模型提出來的
- 易用性 直觀地把事物的屬性以及語義聯系表示出來,便于理解,自然語言與語義網絡的轉換比較容易實現
- 結構性 語義網路是一種結構化的知識表示方法,能把事物的屬性以及事物間的各種語義聯想顯式地表示出來
- 缺點:
- 無形式化語法 表示形式不一致提高了處理的復雜性
- 無形式化語義 給定的語義網絡表達的含義完全依賴處理程序如何對它進行解釋
2.2.4框架
理論基本思想:認為人們對現實世界中各種事物的認識都以一種類似于框架的結構存儲在記憶中。當面臨一個新事物時,就從記憶中找出一個合適的框架,并根據實際情況對其細節加以修改、補充,從而形成對當前事物的認識。
類:知識表示的基本單位
槽:描述對象的一個屬性(可以有屬性值)
側面:表示槽屬性的一個方面(可以有屬性值)
- 優點:
- 結構性 能把事物的屬性以及事物間的各種語義聯想顯式地表示出來
- 框架對于知識的描述比較全面,支持默認值以及觸發器
- 缺點:
- 框架構建成本非常高,對知識庫的質量要求非常高
- 默認值會增大推理的復雜度
- 無法表示不確定知識
2.2.5描述邏輯
描述邏輯可被看做是利用一階邏輯對語義網絡和框架進行形式化后的產物。
描述邏輯一般支持一元謂詞(類)和二元謂詞(關系)
被選為互聯網本體語言OWL的理論基礎
- 優點:
- 結構性 能把事物的屬性以及事物間的各種語義聯想顯式地表示出來
- 嚴密性 有形式化的語法和語義,以及相關的推理規則
- 多樣性 具有大量可判定的擴展,以滿足不同應用場景的需求
- 易實現性 可判定,可以轉換為計算機內部形式,以便用算法實現
- 缺點:
- 有限的表達能力 不支持顯式使用變量,不能夠任意使用量化
- 無法表示不確定性知識
2.3互聯網時代的語義網知識表示框架
早期Web的標準語言HTML和XML無法適應語義網對知識表示的要求,所以W3C提出了新的標準語言RDF、RDFS和OWL。
2.3.1RDF和RDFS
1.RDF簡介
三元組(subject,predicate,object)是圖的單元,主語賓語是圖的節點,謂語是邊。
三元組的主謂賓都有一個全局標識URI,可以被簡化成前綴URI(例如ex:jeff)。RDF允許沒有全局標識的空白節點,其前綴為“_”。
2.開放世界假設
RDF采用開放世界假設,知識有可能是不完備的,采用開放世界假設意味著RDF圖譜可以被分布式儲存。
3.RDFS簡介
RDF用到了類以及屬性描述個體之間的關系,這些類和屬性由模式(schema)定義。RDF Schema(簡稱RDFS)提供了對類和屬性的簡單描述,從而給RDF數據提供詞匯建模的語言,更豐富的定義則需要用到OWL本體描述語言。
RDFS提供了最基本的對類和屬性的描述元語:
- rdf:type 用于指定個體的類
- rdfs:subClassOf 用于指定類的父類
- rdfs:subPropertyOf 用于指定屬性的父屬性
- rdfs:domain 用于指定屬性的定義域
- rdfs:range 用于指定屬性的值域
在更復雜場景下,RDF(s)語義表達能力顯得太弱,并缺少常用的特征:
- 對于局部值域的屬性定義:無法說明屬性應用于某些具體的類時具有特殊的值域限制
- 類、屬性、個體的等價性:無法聲明兩個類或多個類、屬性和個體是等價還是不等價
- 不相交類的定義:只能聲明子類關系,不能聲明兩個類不相交
- 基數約束:無法對某屬性值可能或必備的取值范圍進行約束
- 關于屬性特征的描述:即無法聲明屬性的某些特征
基于上述問題,提出了OWL
2.3.2OWL和OWL2 Fragments
1.OWL的語言特征
OWL三個子語言的特征和限制舉例
| OWL Lite | 用于提供給那些只需要一個分類層次和簡單的屬性約束的用戶 | 支持基數,但允許基數為0或1 |
| OWL DL | 在OWL Lite基礎上包括了OWL所有約束,語言上的邏輯蘊涵是可判定的 | 當一個類可以是多個類的一個子類時,它被約束不能是另外一個類的實例 |
| OWL Full | 允許在預定義的(RDF、OWL)詞匯表上增加詞匯,從而任何推理軟件均不能支持OWL Full的所有feature。其語言上的邏輯蘊涵通常是不可判定的 | 一個類可以被同事表達為許多個體的一個集合以及這個集合中的一個個體,具有二階邏輯特點 |
選擇語言的原則:
- 選擇Lite還是DL取決于用戶需要整個語言在多大程度上給出約束的可表達性
- 選擇DL還是Full取決于用戶在多大程度上需要RDF的元模型機制
- 使用Full而不是DL時,推理的支持可能不能工作,因為目前沒有完全支持Full的系統實現
2.OWL的重要詞匯
3.OWL版本
最新版本為OWL2,三大子語言為OWL2 RL、OWL2 QL和OWL2 EL
| OWL2 QL | 與本體查詢設計的最簡單的子語言 |
| OWL2 EL | 專為概念術語描述、本體的分類推理設計 |
| OWL2 RL | 在RDFS的基礎上引入屬性的特殊特性(函數性、互反性和對稱性),允許聲明等價性,允許屬性的局部約束,其推理是前向鏈推理 |
2.3.3知識圖譜查詢語言的表示
1.SPARQL知識圖譜查詢基本構成——和MySQL的查詢好像
- 變量,RDF中的資源,以"?“或”$"構成
- 三元組模板,在WHERE子句中列出關聯的三元組模板
- SELECT子句中知識要查詢的目標變量
2.常見的SPARQL查詢算子
2.3.4語義Markup表示語言
主要包括JSON-LD、RDFa和HTML5 MicroData
2.4常見開放域知識圖譜的知識表示方法
2.4.1Freebase
框架主要包含以下幾個要素:對象-Object 事實-Facts 類型-Types 屬性-Properties
2.4.2Wikidata
框架主要包含以下幾個要素:頁面-Pages 實體-Entities 條目-Items 屬性-Properties 陳述-Statements 修飾-Qualifiers 引用-Reference
2.4.3ConceptNet5
框架主要包含以下幾個要素:概念-Concepts 詞-Words 短語-Phrases 斷言-Assertions 關系-Relations 邊-Edges
2.5知識圖譜的向量表示方法
2.5.1知識圖譜表示的挑戰
知識以基于離散符號的方法進行表達,但是這些符號并不能在計算機中表達相應語義方面的信息,也不能進行語義計算。同時因為圖結構的特殊性,應用算法的使用與圖算法有關,相關算法由較高的復雜度,面對大規模知識庫很難擴展。因此改進傳統表示的方法,提出了詞的向量表示方法。
2.5.2詞的向量表示方法
1.獨熱編碼
表示方法簡單,但是并沒有編碼語義層面的信息,稀疏性較強,當整個詞典非常大時,編碼出的向量的維度也會很大。
2.詞袋模型
將文本想象成一個裝詞的袋子,不考慮上下文關系,不關心詞在袋子中存放的順序,僅記錄沒歌詞在該文本中出現的次數。
3.詞向量(詞嵌入)
基于上下文的稠密向量表示法
產生詞向量的手段:
經典開源工具word2vec中包含的CBoW和Skip-gram模型
| CBow | 用上下文預測中心詞,從而訓練出的詞向量包含了一定的上下文信息 | 中心詞的上下文詞的獨熱表示與詞向量矩陣相乘,提取相應的詞向量,并經過Softmax層得到輸出,輸出的是每一維表達的就是詞表中每個詞作為該上下文的中心詞的概率 |
| Skip-gram | 用中心詞預測上下文 | 通過中心詞的獨熱表示從詞向量矩陣找那個的得到中心詞的詞向量得到投影層,經過Softmax得到輸出,輸出的每一維中代表某個詞作為輸入中心詞的上下文出現的概率 |
訓練好的詞向量在連續空間中呈現一定的關系
2.5.3知識圖譜嵌入的概念
知識圖譜中包括實體和關系的內容映射到連續向量空間方法的研究領域稱為知識圖譜嵌入、知識圖譜的向量表示、知識圖譜的表示學習、知識表示學習。知識圖譜嵌入方法的訓練需要基于監督學習。在訓練的過程中,可以學習一定的語義層信息,詞向量具有的空間平移性也簡單地說明了這點。
2.5.4知識圖譜嵌入的優點
- 提高應用時的計算效率
- 增加下游應用設計的多樣性
- 輸入信息不再是孤立的不包含語義信息的符號,而是經過一次訓練,并且包含一定信息的向量
2.5.5知識圖譜嵌入的主要方法
| 轉移距離模型 | 將衡量向量化后的知識圖譜中的三元組的合理性問題,轉化成衡量頭實體和尾實體的距離問題 head+relation≈tail | 如何設計得分函數,得分函數常常被設計成利用關系把頭實體轉移到尾實體的合理性的函數。 |
| 語義匹配模型 | 將整個知識圖譜編碼成一個三維張量,由這個張量分解出一個核心張量和一個因子矩陣,核心張量中每個二維矩陣切片代表一種關系,因子矩陣中每一行代表一個實體 | 更注重挖掘向量化后的實體和關系的潛在語義 |
| 考慮附加信息的模型 | 利用附加的信息進行知識圖譜嵌入提升 | 實體類型 關系路徑 文本描述 邏輯規則 |
2.5.6知識圖譜嵌入的應用
| 鏈接預測 | 通過一個已知實體和關系預測另一個實體,或者通過兩個實體預測關系。 | 將知識圖譜中的每個實體都放在尾實體的位置上,并且放入相應的知識圖譜嵌入模型的得分函數當中,計算不同實體作為該三元組的尾實體的得分,得分最高的實體會被作為鏈接預測的結果 |
| 三元組分類 | 給定一個完整的三元組,判斷三元組的真假 | 三元組各個部分的向量表達帶入相應的知識圖譜嵌入的得分函數,得分越高,合理性和真實性越高 |
| 實體對齊 | 驗證兩個實體是否指代或者引用的是同一個事物或對象 | 使用知識圖譜嵌入的得分函數對三元組(x,EqualTo,y)打分,但這種方法的前提是需要在知識圖譜中存在EqualTo關系 或設計一些實體之間的相似度函數來判斷兩個實體的相似程度,再進行對齊 |
| 問答系統 | 對某一個具體的通過自然語言表達的問題,使用知識圖譜中的三元組對其進行回答 | 設計一種得分函數,使問題的向量表示和其正確答案的向量得分較高 |
| 推薦系統 | 對用戶推薦其沒有接觸過的、但有可能會感興趣或者購買的服務或產品 | 協同過濾算法 |
第3章 知識存儲
以文件形式保存的知識圖譜顯然無法滿足用戶的查詢、檢索、推理、分析及各種應用需求;
傳統數據庫的關系模型與知識圖譜的圖模型之間存在顯著差異,關系數據庫無法有效管理大規模知識圖譜數據。
語義萬維網領域發展出專門存儲RDF數據的三元組庫
數據庫領域發展出用于管理屬性圖的圖數據庫
3.1知識圖譜數據庫基本知識
3.1.1知識圖譜數據模型
在圖論中,圖是二元組 G =(V,E),其中V是節點集合,E是邊集合。知識圖譜數據模型基于圖論中圖的定義,用節點集合表示實體,用邊集合表示實體間的聯系。
1.RDF圖
RDF是W3C制定的在語義萬維網上表示和交換及其可理解信息的標準數據模型。
RDF三元組集合即為圖中有向邊的集合。
RDF圖對于節點和邊是哪個的屬性沒有內置的支持。節點屬性可用三元組表示,這類三元組的賓語稱為字面量,即圖中的矩形。
2.屬性圖
屬性圖是目前被圖數據庫業界采納最廣的一種圖數據模型,由節點集合邊集組成,且滿足:
3.1.2知識圖譜查詢語言
| SPARQL | RDF圖 | 從語法上借鑒了SQL,同樣屬于聲明式查詢語言。包括三元組模式、子圖模式、屬性路徑等多種查詢機制。 |
| Cypher | 屬性圖 | 是一種聲明式語言,便于用戶學習掌握,同事給予數據庫查詢優化的空間,缺點是不能滿足高級用戶導航式查詢的要求,數據庫規劃的查詢執行計劃有可能并不是最優方案。(Neo4j的語言) |
| Gremlin | 屬性圖 | 是Apache TinkerPop圖計算框架提供的屬性圖查詢語言。其定位是圖遍歷語言,執行機制類似一個人置身于圖中沿著有向邊,從一個節點到另一個節點進行導航式的游走。這類語言的優點是可以時刻知道自己在圖中所處的位置,以及如何到達該位置的,缺點是用戶需要認識路。 |
3.2常見知識圖譜存儲方法
3.2.1基于關系數據庫的存儲方案
按照時間發展順序簡要介紹各種基于關系表的知識圖譜存儲結構,包括三元組表、水平表、屬性表、垂直劃分、六重索引和DB2RDF。
| 三元組表 | 表的模式 三元組表(主語,謂語,賓語) | 三元組表是將知識圖譜存儲到關系數據庫的最簡單、最直接的辦法 | 其最大的問題在于將知識圖譜查詢翻譯為SQL查詢后的三元組表自連接,當三元組表規模較大時,多個自連接操作會使SQL查詢性能低下。 |
| 水平表 | 每行記錄存儲一個知識圖譜中一個主語所有的謂語和賓語(相當于知識圖譜的鄰接表)水平表的列數是知識圖譜中不同謂語的數量,行數是知識圖譜中不同主語的數量 | 水平表的查詢大為簡化,僅需單表查詢即可完成該任務,不用進行表連接操作 | 所需列的樹木等于知識圖譜中不同謂語數量,在真實圖譜數據集中,不同謂語數量可能為幾千個到上萬個,很可能超出關系數據庫允許的表中列數目的上限;對于一行來說,僅在極少數列上具有值,表中存在大量空值;在知識圖譜中,同一主語和謂語可能具有多個不同賓語,而水平表的一行一列上只能存儲一個值;知識圖譜的更新往往引起謂語的增加、修改和刪除,即水平表中列的增加、修改或刪除,這是對于表結構的改變,成本很高。 |
| 屬性表 | 將同類主語分到一個表中,不同類主語分到不同表中 | 克服三元組表的自連接問題,解決了水平表中列數目過多的問題 | 對于規模稍大的真實知識圖譜數據,主語的類別可能由幾千個到幾萬個,按照屬性標方案,需要建立幾千個到上萬個表,往往超出關系數據庫的限制;對于知識圖譜稍復雜的查詢,多個表進行連接影響查詢效率;即使在同一類型中,不同主語具有的謂語集合不同會造成空值問題;水平表方案中一對多聯系或多值屬性存儲問題依然存在。 |
| 垂直劃分 | 為每種謂語建立一張表,表中存放知識圖譜中由該謂語連接的主語和賓語值 | 謂語表僅存儲出現在知識圖譜中的三元組,解決了空值問題;一個主語的一對多聯系或多值屬性存儲在謂語表的多行中,解決了多值問題;每個謂語表都按照主語獵德值進行排序,能夠使用歸并排序連接快速執行不同謂語表的連接查詢操作。 | 需要創建的表的數目與知識圖譜中不同謂語數目相等,在關系數據庫中維護如此規模的表需要很大的開銷;復雜的知識圖譜查詢操作,需要執行的表連接操作數很多,對于未指定謂語的三元組查詢,將發生需要連接全部謂語表進行查詢的極端情況 |
| 六重索引 | 將三元組全部6種排列對應地建立為6張表,spo(主謂賓)、pos(謂賓主)、osp(賓謂主)、sop、pso、ops | 每種三元組模式查詢都可以直接使用相應的索引表進行快速的前綴范圍查找;通過不同索引表之間的連接操作直接加速知識圖譜上的連接查詢,避免單表自連接。 | 需要花費6倍的存儲空間開銷、索引維護代價和數據更新時的一致性維護代價;當知識圖譜查詢變得復雜時,會產生大量的連接索引表查詢操作,索引表自連接依然不可避免 |
| DB2RDF | 由dph表、rph表、ds表和rs表組成 | 好,特別好(可以多看幾遍) |
==DB2RDF==特別好,可以多看幾遍
3.2.2面向RDF的三元組數據庫(略,有需要再學)
3.2.3原生圖數據庫
3.2.4知識圖譜數據庫比較
| 3store | 基于關系 | 開源 | 三元組表 | C | 早期系統,三元組存儲代表 |
| DLDB | 基于關系 | 研究原型 | 水平表 | Java | 早期系統,水平表存儲代表 |
| Jena | 基于關系 | 開源 | 屬性表 | Java | 主流語義web框架與數據庫 |
| SW-Store | 基于關系 | 研究原型 | 垂直劃分 | C | 科研原型系統,垂直劃分代表 |
| IBM DB2 | 基于關系 | 商業 | DB2RDF | Java | 支持RDF的主流商業數據庫 |
| Oracle 12c | 基于關系 | 商業 | 關系存儲 | Java | 支持RDF的主流商業數據庫 |
| RDF4J | RDF三元組庫 | 開源 | SAIL API | Java | 主流語義web框架與數據庫 |
| RDF-3X | RDF三元組庫 | 開源 | 六重索引 | C++ | 科研原型系統,六重索引代表 |
| gStore | RDF三元組庫 | 開源 | VS樹 | C++ | 科研原型系統,原生圖存儲 |
| Virtuoso | RDF三元組庫 | 商業 | 多模型混合 | C/C++ | 語義web項目常用RDF數據庫 |
| AllegroGraph | RDF三元組庫 | 商業 | 三元組索引 | Common Lisp | 擅長語義推理功能 |
| GraphDB | RDF三元組庫 | 商業 | 三元組索引 | Java | 支持SAIL層推理功能 |
| Blazegraph | RDF三元組庫 | 商業 | 三元組索引 | Java | 基于RDF三元組庫的圖數據庫 |
| StarDog | RDF三元組庫 | 商業 | 三元組索引 | Java | 支持OWL2推理機制 |
| Neo4j | 圖數據庫 | 開源/商業 | 原生圖存儲 | Java | 最流行的圖數據庫 |
| JanusGraph | 圖數據庫 | 開源 | 分布式存儲 | Java | 分布式圖數據庫 |
| OrientDB | 圖數據庫 | 商業 | 原生圖存儲 | Java | 支持多模型數據管理 |
| Cayley | 圖數據庫 | 開源 | 外部存儲 | Go | 輕量級開源圖數據庫 |
3.3知識存儲關鍵技術
3.3.1知識圖譜數據庫的存儲:以Neo4j為例
一般認為具有“無索引鄰接”特性的圖數據庫稱為原生圖數據庫
只有將圖數據的邊表示的關系當作數據庫的“一等公民”(即數據庫中最基本、最核心的概念),才能實現真正的“無索引鄰接”特性。
3.3.2知識圖譜數據庫的索引
1.屬性數據索引
Neo4j數據庫在前述存儲方案的基礎上支持用戶對屬性數據建立索引,目的是加速針對某屬性的查詢處理性能。
2.圖結構索引
為圖數據中的點邊結構信息建立索引的方法
為避免建立子圖的圖索引太復雜,可以從用戶的查詢日志中挖掘頻繁使用的子圖模式,并以此作為關鍵字建立索引。
第4章 知識抽取與知識挖掘
知識抽取式構建大規模知識圖譜的重要環節,而知識挖掘則是在已有知識圖譜的基礎上發現其隱藏的知識。
4.1知識抽取任務
知識抽取是指自動化地從文本中發現和抽取相關信息,并將多個文本碎片中的信息進行合并,將問結構化數據轉換成結構化數據,包括某一特定領域的模式、實體關系或RDF三元組,其目的在于從不同來源、不同結構的數據中進行知識提取并存入知識圖譜中。
4.2面向非結構化數據的知識抽取
4.2.1實體抽取
實體抽取式解決很多自然語言處理問題的基礎,也是知識抽取中最基本的任務。
| 基于規則的方法 | 采用人工編寫規則的方式進行實體抽取,由領域專家手動構建大量的實體抽取規則 | 在小數據集上可以達到很高的準確率和召回率 | 數據集很大時,規則集的構建周期變長,可移植性較差 |
| 基于統計模型的方法 | 利用完全標注或部分標注的語料進行模型訓練,將命名實體識別作為序列標注問題處理。與普通分類問題相比,序列標注問題中當前標簽的預測不僅與當前輸入特征相關,還與之前的預測標簽相關,即預測標簽序列是有強相互依賴關系的。基于統計模型構建命名實體的識別方法主要涉及訓練語料標注、特征定義和模型訓練。 | ||
| 基于深度學習的方法 | 目前用于命名實體識別的神經網絡主要有卷積神經網絡、循環神經網絡以及引入注意力機制的神經網絡。不同的神經網絡結構在命名實體識別過程中扮演編碼器的角色,它們基于初始輸入以及詞的上下文信息,得到每個詞的新向量表示,最后再通過CRF明輸出對每個詞的標注結果。 |
4.2.2關系抽取
關系抽取是從文本中抽取出兩個或者多個實體之間的語義關系。
| 基于模板的關系抽取方法 | 基于語言學知識,結合語料的特點,由領域專家手工編寫模板,從文本中匹配具有特定關系的實體 | 模板構建簡單 | 數據規模較大,手工構建模板需要耗費領域專家大量的時間 可移植性較差 手工構建的模板數量有限,模板覆蓋的范圍不夠,召回率普遍不高 |
| 基于監督學習的關系抽取方法 | 將關系抽取轉化為分類問題,在大量標注數據的基礎上,訓練有監督學習模型進行關系抽取,步驟為:預定義關系的類型;人工標注數據;設計關系識別所需的特征;選擇分類模型;基于標注數據訓練模型;對訓練的模型進行評估 | ||
| 基于弱監督學習的關系抽取方法 | 訓練語料不足時,若監督學習方法可以只利用少量的標注數據進行模型學習,主要包括遠程監督方法和Bootsrapping | 遠程監督可以利用豐富的知識圖譜信息獲取訓練數據,有效減少人工標注的工作量 Bootstrapping方法有點事關系抽取系統成本低,適合大規模關系抽取任務 | 遠程監督的基本假設導致大量噪聲被引入到訓練數據中,從而引發語義漂移的現象 Bootstrapping方法對初始種子較為敏感,存在語義漂移問題,結果準確率較低 |
基于監督學習的關系抽取方法,根據計算特征的復雜性,將常用特征分為輕量級、中量級和重量級。輕量級特征主要是基于實體和詞的特征,例如句子中實體前后的詞、實體類型以及實體之間的距離。中量級特征主要基于句子中語塊序列的特征。重量級特征一般包括實體間的依存關系路徑、實體間依存樹結構的距離以及其他特定的結構信息。
已有基于深度學習的關系抽取方法包括流水線方法和聯合抽取方法兩大類,各有優劣
流水線方法將識別實體和關系抽取作為兩個分離的過程進行處理,兩者不會相互影響;關系抽取在實體抽取結果的基礎上進行,因此關系抽取的結果也依賴于實體抽取的結果。聯合抽取方法將實體抽取和關系抽取相結合,在同一的模型中共同優化;聯合抽取方法可以避免流水線方法存在的錯誤積累問題。
遠程監督方法的基本假設是如果兩實體在知識圖譜中存在某種關系,則包含兩個實體的句子均表達了這種關系,其一般步驟為:
- 從知識圖譜中抽取存在目標關系的實體對
- 從非結構化文本中抽取含有實體對的句子作為訓練樣例
- 訓練監督學習模型進行關系抽取
Bootstrapping方法利用少量的實例作為初始種子集合,然后在種子集合上學習獲得關系抽取的模板,再利用模板抽取更多的實例,加入種子集合中,通過不斷迭代,抽取關系
4.2.3事件抽取
事件抽取是指從自然語言文本中抽取出用戶感興趣的事件信息,并以結構化的形式呈現出來。
1.事件抽取的流水線方法
包括事件識別、元素抽取、屬性分類和可報告性判別這四個子任務。
每個子任務階段都可能存在誤差,誤差不斷積累會使事件抽取性能急劇衰減。
2.事件的聯合抽取方法
聯合事件抽取方法可以采用聯合推斷或聯合建模的方法
4.3面向結構化數據的知識抽取
4.3.1直接映射
直接映射將關系數據庫表結構和數據直接轉換為RDF圖,關系數據庫的數據結構直接反應在RDF圖中
4.3.2R2RML
從關系數據庫到RDF數據集的自定義映射語言,可以針對特定的數據庫模式和目標詞匯量身定制
R2RML映射是通過邏輯表從數據庫中檢索數據的,一個邏輯表可以是數據庫中的一個表、視圖或有效的SQL語句查詢
4.3.3相關工具
| D2RQ | 無 | D2RQ映射、R2RML | Apache 2 | 2004 |
| Mastro | OWL 2QL | R2RML | Academic | 2006 |
| Ultrawrap | RDFs-plus | R2RML | 商業 | 2012 |
| Morph-RDB | 無 | R2RML | Apache 2 | 2013 |
| Ontoop | OWL 2QL/SWRL | D2RQ映射、R2RML | Apache 2 | 2010 |
4.4面向半結構化數據的知識抽取
4.4.1面向百科類數據的知識抽取
DEpedia知識抽取的總體框架:
- 頁面集合,包含本地及遠程的維基百科文章數據
- 目標數據,存儲或序列化提取的RDF三元組
- 將特定類型的維基標記轉換為三元組的提取器
- 支持提取器的解析器,確定數據類型,在不同單元之間轉換值并將標記分解成列表
- 提取作業,負責將頁面集合、提取器和目標數據分組到一個工作流程中
- 知識提取管理器,負責管理將維基百科文章傳遞給提取器并將其輸出傳遞到目標數據的過程
4.4.2面向Web網頁的知識抽取
從網頁中獲取結構化信息一般通過包裝器實現。包裝器是能夠將數據從HTML網頁中抽取出來,并將它們還原為結構化數據的軟件程序。
包裝器生成方法有三大類:手工方法、包裝器歸納方法和自動抽取方法
- 手工方法是通過人工分析構建包裝器信息抽取的規則
- 包裝器歸納方法基于有監督學習方法從已標注的訓練樣例集合中學習信息抽取的規則,然后對相同模板的其他網頁進行數據抽取的方法。典型流程:網頁清洗、網頁標注、包裝器空間生成、包裝器評估
- 自動抽取方法:相似的網頁通過聚類分成若干組,通過挖掘同一組中相似網頁的重復模式,生成適用于該網頁的包裝器
| 手工方法 | 對任何網頁都是通用的,簡單快捷 能抽取到用戶感興趣的內容 | 需要對網頁數據進行標注,耗費大量的人力 維護成本高 無法處理大量站點 |
| 包裝器歸納方法 | 需要人工標注訓練數據 能抽取到用戶感興趣的數據 可以運用到中小規模網站的信息抽取 | 可維護性較差 需要投入大量人力進行數據標注 |
| 自動抽取方法 | 無監督的方法,無需人工進行數據的標注 可以運用到大規模網站的信息抽取 | 需要相似的網頁作為數據如 抽取的內容可能達不到預期,會抽取出一些無關信息 |
4.5知識挖掘
從已有的實體及實體關系出發挖掘新的知識
4.5.1知識內容挖掘:實體鏈接
實體鏈接是指將文本中的實體指稱鏈向其在給定知識庫中目標實體的過程。通過實體鏈接,文本中的實體指稱與其在知識庫中對應的實體建立了鏈接。
實體鏈接的基本流程包括:實體指稱識別、候選實體生成和候選實體消歧
1.實體指稱識別
通過命名實體識別技術或者詞典匹配技術識別出文本中的實體指稱。
2.候選實體生成
確定文本中的實體指稱可能指向的實體集合。
3.候選實體消歧
在確定文本中的實體指稱和候選實體后,實體鏈接系統需要為每一個實體指稱確定其指向的實體
4.5.2知識結構挖掘:規則挖掘**看不太懂**
1.歸納邏輯程序設計ILP
以**一階邏輯**歸納為理論基礎,并以一階邏輯為表達語言的符號規則學習算法
2.路徑排序算法PRA
將關系路徑作為特征的知識圖譜鏈接預測算法,因為其獲取的關系路徑實際上對應一種霍恩子句,PRA計算的路徑特征可以轉換為邏輯規則,便于人們發現和理解知識圖譜中隱藏的知識。
PRA基本思想是通過發現連接兩個實體的一組關系路徑預測實體間可能存在的某種特定關系
工作流程:特征選擇、特征計算和關系分類
第5章 知識圖譜融合
5.1什么是知識圖譜融合
知識圖譜包含描述抽象層知識的本體層和描述具體事實的實例層。本體層用于描述特定領域中的抽象概念、屬性、公理,實例層用于描述具體的實體對象、實體間的關系,包含大量的事實和數據。
本體描述的內容在語義上往往重疊或關聯,但使用的本體在表示語言和表示模型上具有差異,這造成了本體異構。
另一方面,知識圖譜中的大量實例也存在異構問題,同名實例可能指代不同的實體,不同命實例可能指代同一個實體,大量的共指問題會給知識圖譜的應用造成負面影響。
知識融合是解決知識圖譜異構的有效途徑。知識融合建立異構本體或異構實例之間的聯系,從而使異構的知識圖譜能互相溝通,實現它們之間的互操作。知識融合的核心問題在于映射的生成。
5.2知識圖譜中的異構問題
知識圖譜異構的情況可以被分為兩個層次:
5.2.1語言層不匹配
5.2.2模型層不匹配
5.3本體概念層的融合方法與技術
5.3.1本體映射與本體集成
本體集成直接將多個本體合并為一個大本體,本體映射則尋找本體間的映射規則,這兩種方法最終都是為了消除本體異構,達到異構本體間的互操作。
本體映射和集成存在差別也存在聯系
本體集成過程中,映射可以看作集成的子過程
通過本體映射在異構本體間建立聯系規則后,本體就能根據映射規則進行交互
1.基于單本體的集成
直接將多個異構文本集成為一個統一的本體,該本體提供統一的語義規范和共享詞匯。
在本體集成的過程中產生了新的本體,也有人將本體集成看作一種生成新本體的過程
本體集成包括:
- 決定本體集成的方式
- 識別本體模塊
- 識別每個模塊中應該被表示的知識
- 識別候選本體
- 執行集成過程
缺點:
- 使用這些異構本體的系統往往有不同的功能和側重點
- 單個本體的方法容易收到其中某個系統變化的影響
- 缺乏靈活性
2.基于全局本體-局部本體的集成
首先抽取異構本體之間的共同知識,根據它建立一個全局本體,全局本體描述了不同系統之間一致認可的知識。同時,各個系統可以擁有自己的本體,稱為局部本體。局部本體既可以在全局本體的基礎上根據自己的需要進行擴充,也可以直接建立自己特有的本體。需要建立局部本體和全局本體之間的映射。
3.本體映射分類
映射的對象角度
通過這個角度的分類,明確映射應該建立在異構本體的哪些成分之間。
從映射的對象上來看,可將本體映射分為概念之間的映射和關系之間的映射,其中概念之間的映射是最基本的映射。除非由特殊的要求,一般不考慮針對實例或==公理==之間的映射。
映射的功能角度
通過這個角度的分類,進一步明確應該建立具有何種功能的本體映射。
Wang Peng 等人以概念間的映射和關系間的映射為基礎,從功能上歸納出11種主要的本體映射,并稱這些映射為異構本體之間的橋
表示概念間映射的橋包括等價、同形異義、上義、下義、重疊、部分、對立、連接
表示關系間映射的橋包括等價、包含、逆
映射的復雜程度
通過這個角度的分類,明確什么形式的映射是簡單的,什么形式的映射是復雜的。
| 等價 | + | + | ||
| 同形異義 | + | |||
| 上義 | + | + | ||
| 下義 | + | + | ||
| 重疊 | + | + | ||
| 部分 | + | + | ||
| 對立 | + | + | ||
| 連接 | + | + | ||
| 等價 | + | + | ||
| 包含 | + | + | ||
| 逆 | + | + |
+表示映射存在,**+**表示是復雜映射
5.3.3本體映射方法和工具
本體映射生成的過程
發現本體映射的方法
5.4實例層的融合與匹配
本章在分析現有幾種大規模本體映射方法的基礎上,提出一種新的大規模本體映射方法,該方法具有較好的時間復雜度和空間復雜度,并能保證映射結果的質量。
第6章 知識圖譜推理
6.1推理概述
6.1.1什么是推理
推理分為邏輯推理和非邏輯推理
邏輯推理包含演繹推理和歸納推理,歸納推理包含溯因推理和類比推理
- 演繹推理是一種自上而下的邏輯推理,是指在給定的一個或多個前提的情況下,推斷出一個必然成立的結論的過程。典型的演繹推理有肯定前件假言推理、否定后件假言推理以及三段論
- 歸納推理是一種自下而上的推理,是基于已有部分觀察得出一般結論的過程。典型的歸納推理有歸納泛化、統計推理
- 溯因推理也是一種邏輯推理,是在給定一個或多個已有觀察事實,并根據已有知識推斷出已有觀察最簡單且最有可能的解釋的過程
- 類比推理可以看作只基于對一個事物的觀察而進行的對另一個事物的歸納推理,是通過尋找兩者之間可以類比的信息,將已知事物上的結論遷移到新的事物上的過程,類比推理的結論相較于前面介紹的三種推理得到的結論錯誤率更高
- 不確定性推理
- 單調推理
- 非單調推理
6.1.2面向知識圖譜的推理
面向知識圖譜的推理主要圍繞關系的推理展開,即基于圖譜中已有的事實或關系推斷出未知的事實或關系,一般著重考慮實體、關系和圖譜結構三個方面的特征信息。知識圖譜推理主要能夠輔助推理出新的事實,新的關系,新的公理以及新的規則等。
從知識圖譜的生命周期來看,不同的階段都涉及不同的推理任務,包括知識圖譜補全、不一致檢測、查詢擴展等。
6.2基于演繹的知識圖譜推理
6.2.1本體推理
演繹推理的過程需要明確定義的先驗信息,所以基于演繹的知識圖譜推理多圍繞本體展開
1.本體與描述邏輯概述
本體的一般定義為概念化的顯示規約,它給不同的領域提供共享的詞匯。
推理問題:
- 概念包含
- 概念互斥
- 概念可滿足
- 全局一致
- TBox一致
- 實例測試
- 實例檢索
2.基于Tableaux的本體推理方法
基于表運算(Tableaux)的本體推理方法是描述邏輯知識庫一致性檢測的最常用方法。基于表運算的推理方法通過一系列規則構建ABox,以檢測可滿足性,或者檢測某一實例是否存在某概念,基本思量類似于一階邏輯的歸結反駁。
看不懂
3.常用本體推理工具簡介
| TaCT++ | OWL DL | C++ | tableau-based |
| Racer | OWL DL | CommonLisp | tableau-based |
| Pellet | OWL DL | Java | tableau-based |
| HermiT | OWL 2 Profiles | Java | hypertableau |
6.2.2基于邏輯編程的推理方法
1.邏輯編程與Datalog簡介
邏輯編程是一族基于規則的知識表示語言。本體推理通常僅支持預定義的本體公理上的推理,而規則推理可以根據特定的場景定制規則,以實現用戶自定義的推理過程。
2.Datalog語言
Datalog語言是一種面向知識庫和數據庫設計的邏輯語言,便于撰寫規則,實現推理。
Datalog的基本符號有常量、變量和謂詞。原子形如P(t1,……,tn),p是一個謂詞,t1……tn為項,n被稱為p的元數。當體部原子都為真時,頭部原子也為真。
3.Datalog推理舉例
4.Datalog與知識圖譜
5.基于Datalog的推理工具介紹
6.2.3基于查詢重寫的方法
本節介紹查詢重寫的方法實現知識圖譜的查詢,考慮兩種情況,第一種情況是知識圖譜已經存在,第二種情況是數據并不以知識圖譜的形式存在,而是存在外部的數據庫中。
第一種情況直接在知識圖譜之上的查詢稱為本體介導的查詢回答OMQ
第二種情況稱為基于本體的數據訪問OBDA
???感覺寫的好爛啊
6.2.4基于產生式規則的方法
產生式是一種前向推理系統,可以按照一定機制執行規則并達到某些目標。一個產生式系統由事實集合、產生式集合和推理引擎三部分組成。
6.3基于歸納的知識圖譜推理
基于歸納的知識圖譜推理主要是通過對知識圖譜已有信息的分析和挖掘進行推理的,最常用的信息為已有的三元組
6.3.1基于圖結構的推理
1.方法概述
有向圖中豐富的圖結構反映了知識圖譜豐富的語義信息,在知識圖譜中典型的圖結構是兩個實體之間的路徑。在知識圖譜推理的研究中,常考慮的是實體一跳和兩跳范圍內的節點和關系
2.常見算法簡介
PRA(Path Ranking Algorithm)
基于知識圖譜路徑特征的PRA算法:針對的知識圖譜主要是==自底向上自動化構建==的含有較多噪聲的圖譜
6.3.2基于規則學習的推理
1.方法概述
路徑規則是霍恩規則的一個子集,霍恩規則是一般規則的一個子集,從規則的表達能力來看,一般規則的表達能力最強,包含各種不同的規則類型,霍恩規則次之,路徑規則表達能力最弱,只能表達特定類型的規則
對于學習到的規則一般有三種評估方法,分別是支持度、置信度和規則頭覆蓋度
6.3.3基于表示學習的推理
基于表示學習的推理通過將知識圖譜中包括實體和關系的元素映射到一個連續的向量空間中,為每個元素學習在向量空間中表示,向量空間中的表示可以是一個或多個向量或矩陣。表示學習讓算法在學習向量表示的過程中自動捕捉、推理所需的特征,通過訓練學習,將知識圖譜中離散符號表示的信息編碼在不同的向量空間表示中,使得知識圖譜的推理能夠通過預設的向量空間表示之間的計算自動實現,不需要顯式的推理步驟
6.4知識圖譜推理新進展
6.4.1時序預測推理
6.4.2基于強化學習的知識圖譜推理
6.4.3基于元學習的少樣本知識圖譜推理
6.4.4圖神經網絡與知識圖譜推理
第7章 語義搜索
7.1語義搜索簡介
面向文檔和面向數據兩種模式之間的技術差異大致可以分為三個部分,即對用戶需求的表示、對底層數據的表示和匹配技術。面向文檔的信息檢索主要通過輕量級的語法模型表示用戶的檢索需求和資源的內容,即目前占主導地位的關鍵詞模型——詞袋模型。基于數據庫和基于知識的檢索系統能夠通過使用表達能力更強的模型來表示用戶的需求,并且利用數據內在的結構和語義關聯,允許更為復雜的查詢,進而提供更加精確和具體的答案。
7.2結構化的查詢語言
SPARQL查詢的核心處理單元是類似RDF三元組形式的三元組模式,不同之處在于SPARQL的三元組模式中,主語、謂語或者賓語可以是變量。類似于RDF三元組可以組成RDF圖的道理,由多個SPARQL三元組模式組成的集合稱作基本圖模式,基本圖模式可以用來表示更為明確、復雜的查詢需求。SPARQL查詢還定義了多個基本圖模式之間的運算操作,以及基本圖模式與RDF圖匹配完成后的結果過濾操作。還有聯合查詢操作。
7.3語義數據搜索
當前鏈接數據比較成熟的語義搜索主要包括:面向本體的搜索引擎,面向實體的搜索引擎,面向細粒度數據Web的搜索引擎。這些搜索引擎的基本組成都包括三元組存儲、索引構建、查詢處理及排序
7.3.1三元組存儲
| IR | 單一的數據結構和查詢算法,針對文本數據進行排序檢索來優化 | 高度可壓縮、可訪問,且排序是整個存儲索引的組成部分 | 不能處理結構化查詢中簡單的選擇、聯結等操作 |
| DB | 多種索引和查詢算法,以適應各種結構化數據的復雜查詢需求 | 能夠完成復雜的選擇、聯結等操作,進而支持SPARQL結構化查詢,并且能應對高動態場景 | 空間開銷增大和訪問有一定的局限性,并且無法集成對檢索結果的排序 |
| 原生存儲 | 直接以RDF圖形式的存儲方式 | 高度可壓縮,可訪問類似IR的檢索排序,支持選擇、聯結等操作,可在亞秒級時間內在單臺機器上完成對TB級數據的查詢,以支持高動態場景 | 沒有事務、恢復等功能 |
7.3.2索引構建
目前主要方式是重用IR索引來索引RDF語義數據。利用IR索引來索引RDF數據的核心思想是將RDF轉換成具有field和terms的虛擬文檔
7.3.3查詢處理和排序
查詢處理的核心步驟是給定查詢輸入,將其構建成復雜的結構化查詢。查詢效率和查詢表達式的復雜程度之間總是有一個折中點。
對于查詢結果的排序,通常需要考慮以下原則:
- 質量傳播。一個元素的分數可以看成是其質量的度量,質量傳播即通過更新這個分數,反映該元素的相鄰元素質量
- 數量聚合。除質量外,還要考慮鄰居的數量,有更多的鄰居,元素排名會更高
針對多數據源的情況,前提是對分布在不同數據源的數據進行融合,進而查詢及處理。
如何針對多數據源進行高質量的映射、理解用戶的查詢意圖以及集成IR和DB排序以處理復雜查詢,是未來設計語義數據搜索的關鍵
7.4語義搜索的交互范式
知識圖譜的有效語義搜索需要一種簡單高效的搜索范式,即允許用戶以直觀地、透明的、易用的方式對數據進行查詢和瀏覽。常見的交互范式由:關鍵詞查詢、自然語言查詢、分面查詢、表單查詢、可視化查詢以及混合方式查詢等。
7.4.1基于關鍵詞的知識圖譜語義搜索方法
包括兩類:依據關鍵詞直接在知識圖譜上搜索答案;基于關鍵詞生成結構化的查詢,進而提交給查詢引擎得到結果
1.基于關鍵詞直接在知識圖譜上搜索答案
核心思想:采用知識圖譜子圖定位策略
常見索引方式:
2.基于關鍵詞生成結構化的查詢
包括三個步驟:
基于關鍵詞的語義搜索還需要考慮對查詢結果進行排序,讓用戶通過觀察排序結果進而更新關鍵詞
7.4.2基于分面的知識圖譜語義搜索
分面:用于表示圖書文獻的多維屬性,在此基礎上提出了第一種圖書分面分類方法——冒號分類法。在該分面分類法中,每一個大類圖書由五個基本的分面組成:主體、物質、動力、空間、時間
典型的定義將分面描述為屬性或一組分類體系,或將分面定義為某個主題的維度或側面。
高級的分面搜索系統還具備以下特征:
- 考慮特定領域的分面、分面值和計數,分面能根據它們的起點進行分組
- 支持全面的瀏覽,通過瀏覽可以到達每個分面的值
- 支持動態分面和值的聚類
7.4.3基于表示學習的知識圖譜語義搜索
通過知識圖譜表示學習計數,將其投射到低維連續的向量空間中,對于語義搜索領域有兩個好處
1.基于表示學習的結構化語義查詢
2.基于表示學習的自然語言語義查詢7
核心在于短語到知識圖譜上實體或邊的映射,進而生成結構化的查詢。難點在于關系歧義的消除和查詢圖的構建
表示學習面臨的三項挑戰:
第8章 知識問答
8.1知識問答概述
問答系統四大要素:
搜索與知識問答的明顯差異:
| 典型交互形式 | 單輪對話或多輪對話 | 單輪查詢 | 單輪查詢 |
| 典型應用場景 | 回答問題 | 簡單且可預期的文檔關鍵詞搜索,支持大規模非結構化相關信息匹配 | 數據完善且組織明確的數據庫精準查詢 |
| 問題表示 | 自然語言 | 關鍵詞 | 結構化查詢語言 |
| 知識組織 | 數據庫、知識圖譜、文本、知識庫、問答對和分布式表示模型 | 文本文檔 | 結構化且致密的數據表,有明確的組織 |
| 知識的可信度 | 通常經過領域專家審核,可信度高 | 搜索結果按重要性排序,通常不保障結果可信性 | 數據庫通常都是可信的數據源 |
| 知識的體量 | 大,能比較完整覆蓋特定領域,也可以有限覆蓋常見的通用領域 | 超大 | 有限,單一數據庫的數據量一般不大 |
| 智能體的要求 | 不但要理解字面含義,還可以利用領域常識、用戶畫像等上下文信息消解問題歧義;同時要求在理解用戶意圖之后,利用知識庫解答問題,形成用戶可讀的答案 | 基于詞袋向量模型的關鍵詞匹配,支持關鍵詞級別的關鍵詞擴展、語義相似度匹配 | 處理結構化查詢并返回結果 |
| 答案表示 | 自然語言 | 文本文檔或文檔中截取的一段文字 | 結構化數據 |
8.2知識問答的分類體系
8.2.1問題類型與答案類型
問題分類體系在很大程度上按照目標答案的差異而區分,所以這里將問題類型和答案類型合并,統一考慮為問題類型
在知識問答系統中,一個合理的分類體系能夠體現出問題的類型分布,從而幫助開發者有針對性地設計問題解決方案,并形成良好的問答系統
從問答的功能出發,面向知識圖譜的構建整理兩種問題類型,事實客觀問題和主觀層次問題:
1.事實性客觀問題
特點:
問題細分:
2.主觀深層次問題
這一類問題本身語法結構并不復雜,但是這些問題需要一定的專業知識和主觀的推理計算才能解答,而且這一類問題有時甚至不止一個答案,需要結合用戶偏好和智能體的配置找到不同的最優解
問題細分:
問題類型并非問題理解中的唯一語義要素。問題焦點指的是問句中出現的與答案實體或屬性相關的元素。問題主體是反映問題是關于那些主題的。
8.2.2知識庫類型
按照知識庫的內容邊界將知識問答分成兩類
知識庫的信息組織格式
8.2.3智能體類型
智能體利用知識庫實現推理。根據知識庫表示形式的不同,目前的知識問答可以分為傳統問答方法以及基于深度學習的問答方法兩種類型。基于分布式表示的知識庫芬達利用深度神經網絡模型,將問題與知識庫中的信息轉化為向量表示,通過相似度匹配的方式完成問題與答案的匹配
8.3知識問答系統
8.3.1NLIDB:早期問答系統
NLIDB系統大多采用模塊包括:
語義理解的幾種套路:
8.3.2IRQA:基于信息檢索的問答系統
核心思想:根據用戶輸入的問題,結合自然語言處理以及信息檢索技術,在給定文檔集合或者互聯網網頁中篩選出相關的文檔,從結果文檔內容抽取關鍵文本作為候選答案,最后對候選答案進行排序返回最優答案
大致分為三個階段:
8.3.3KBQA:基于知識庫的問答系統
基于知識圖譜,采用相對統一的基于RDF表示的知識圖譜,并且把語義理解的結果映射到知識圖譜的本體后生成SPARQL查詢解答問題。通過本體可以將用戶問題映射到基于概念拓撲圖表示的查詢表達式,對應知識圖譜中的某種子圖。
KBQA的核心問題Queation2Query是找到從用戶問題到知識圖譜子圖的最合理映射,Question2Query的關鍵步驟:
8.3.4CommunityQA/FAQ-QA:基于問答對匹配的問答系統
基于常見問答對和社區問答,都依賴于FAQ庫來發現以前問過的類似問題,并將找到的問答對的答案返回給用戶
基于FAQ-QA的核心是計算問題之間的語義相關性,面臨兩個挑戰:泛化和歧義
8.3.5Hybrid QA Framework 混合問答系統框架
1.DeepQA:IRQA主導的混合框架
2.QALD-Hybrid-QA:KBQA主導的混合框架
3.Frankenstein:問答系統的流水線架構
8.4知識問答的評價方法
8.4.1問答系統的評價指標
1.功能評價指標
正確性、精確度、完整性、可解釋性、用戶友好性、額外的評價維度
2.性能評價指標
問答系統的響應時間、問答系統的故障率
8.5KBQA前沿技術
現有的自然語言理解技術在處理自然語言的歧義性和復雜性方面顯得比較薄弱,此類系統需要大量的領域知識來理解自然語言問題,而這些一般都需要人工輸入。
8.5.1KBQA面臨的挑戰
1.多樣的概念映射機制
映射到原子三元組、映射到限制條件、映射到屬性鏈條、復雜概念映射到復合屬性、映射到排序條件、映射到有歧義的概念
2.不完美的知識庫
3.泛化語義理解的預期
8.5.2基于模板的方法
基于模板或模式的問答系統定義了一組帶變量的模板,直接匹配問題文本形成查詢表達式。這樣簡化了問題分析的步驟,并且通過預制的查詢模板替代了本體映射
這樣做的優勢是:簡單可控,適用于處理只有一個查詢條件的簡單問題,繞過了語法解析的脆弱性
缺點:成熟的應用需要生成大量的模板;模板由人工生成,不易復用,即一個問題可以用多個不同模板回答,且需要通過全局排序調優,容易發生沖突;即使生成模板遵循知識庫的Schema,但由于知識庫自身不完整性以及語義組合的多樣性,這些模板未必能保證在知識庫中找到答案
總的來說,基于模板的方法優點是模板查詢響應速度、準確率較高,可以回答相對復雜的復合問題,而缺點是模板結構通常無法與真實用戶問題相匹配。
8.5.3基于語義解析的方法
基于語義解析的方法是指通過對自然語言查詢的語法分析,將查詢轉換成邏輯表達式,然后利用知識庫的語義信息將邏輯表達式轉換成知識庫查詢,最終通過查詢知識庫得到查詢結果
邏輯表達式是語義解析方法與基于模板的方法的主要差異。邏輯表達式是面向知識庫的結構化查詢,用于查找知識庫中的實體及實體關系等知識。邏輯表達式生成過程中存在四個問題,目前已有人提出解決方法:
8.5.4基于深度學習的傳統問答模塊優化
基于深度學習的知識問答主要有兩個方向,分別是利用深度學習對傳統問答方法進行模塊級改進和基于深度學習的端到端問答模型(將問題和知識庫中的信息均轉化為向量表示,通過向量間的相似度計算的方式完成用戶問題與知識庫答案的匹配
識組織機制各不相同,同樣的知識在不同的知識庫中未必會采用相同的結構
3. 用戶使用的語言以及知識庫采用的工作語言也會影響語義理解
4. 知識庫本身并不是完整的,用戶的預期卻是希望能找到答案,如何判定找不到答案從而避免答非所問也是很重要的
3.泛化語義理解的預期
8.5.2基于模板的方法
基于模板或模式的問答系統定義了一組帶變量的模板,直接匹配問題文本形成查詢表達式。這樣簡化了問題分析的步驟,并且通過預制的查詢模板替代了本體映射
這樣做的優勢是:簡單可控,適用于處理只有一個查詢條件的簡單問題,繞過了語法解析的脆弱性
缺點:成熟的應用需要生成大量的模板;模板由人工生成,不易復用,即一個問題可以用多個不同模板回答,且需要通過全局排序調優,容易發生沖突;即使生成模板遵循知識庫的Schema,但由于知識庫自身不完整性以及語義組合的多樣性,這些模板未必能保證在知識庫中找到答案
總的來說,基于模板的方法優點是模板查詢響應速度、準確率較高,可以回答相對復雜的復合問題,而缺點是模板結構通常無法與真實用戶問題相匹配。
8.5.3基于語義解析的方法
基于語義解析的方法是指通過對自然語言查詢的語法分析,將查詢轉換成邏輯表達式,然后利用知識庫的語義信息將邏輯表達式轉換成知識庫查詢,最終通過查詢知識庫得到查詢結果
邏輯表達式是語義解析方法與基于模板的方法的主要差異。邏輯表達式是面向知識庫的結構化查詢,用于查找知識庫中的實體及實體關系等知識。邏輯表達式生成過程中存在四個問題,目前已有人提出解決方法:
8.5.4基于深度學習的傳統問答模塊優化
基于深度學習的知識問答主要有兩個方向,分別是利用深度學習對傳統問答方法進行模塊級改進和基于深度學習的端到端問答模型(將問題和知識庫中的信息均轉化為向量表示,通過向量間的相似度計算的方式完成用戶問題與知識庫答案的匹配
總結
以上是生活随笔為你收集整理的【知识图谱】 | 《知识图谱——方法、实践与应用》阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MDT 2013 从入门到精通之Task
- 下一篇: VR沉浸式安全事故模拟,未来安全教育的最