知识图谱技术
數聯未來,數據融合是未來重要的方向,那么對于大數據來說目前主要存在如下幾個挑戰:1、多源異構數據難以融合轉化并映射到同一平臺,數據模型的靈活創建、
以及數據模型間的關聯關系也難以實現;
2、數據模式動態變遷困難,當客戶新需求、業務新認知時,需要修改數據結構以及業務邏輯,帶來擴展性差,對客戶響應慢、維護成本高等問題;
3、非結構化的數據,計算機難以理解,用戶搜索難以返回精確的結果;
通過對知識圖譜的研究可以發現,知識圖譜確實可以解決以上問題,這里分享一下學習總結:
一、 知識圖譜技術體系
知識圖譜的構建主要涉及到知識建模、知識抽取、知識融合、知識存儲、知識計算以及知識應用,具體可以歸納如下:
二、 知識圖譜實施方法
?
三、 技術架構
知識圖譜架構如下圖,這其中主要包括如下幾個部分:
3.1 數據采集
主要涉及到爬蟲技術
?
3.2 建立本體
可以采用如下兩種方式
自頂向下:由專家創建
自底向上:
- 從現有的行業標準轉化;
- 從現有高質量數據源(如百科)轉化
?
3.3 本體編輯
有很多現有的工具:如Protégé、Semantic Turkey、Swoop、OBO-Edit等,存在的缺點是需要個人編輯,不能多人并行編輯
?
3.4 知識抽取
針對不同的目標數據類型,可以提供文件導入、ETL、Wrapper、Extractor三種方式:
- 結構化數據, 如RDB中的數據,直接ETL或文件上傳
- 半結構化數據, 如百科,配置Wrapper解析邏輯
- 文檔、文本類數據, 如一般的web數據,利用文本抽取引擎的自然語言處理技術(NLP)、機器學習,利用Extractor抽取成結構化的知識數據
?
3.5 知識融合
把結構化數據、半結構化數據、非結構化數據的知識表達形式都統一成RDF的形式,便于存儲和查詢。具體的知識融合主要包括如下兩種類型:
- 合并外部知識庫: 數據層的融合、模式層的融合
開放數據集成框架:LDIF
- 合并關系型數據庫:將關系型數據轉換成RDF的格式,現有工具Triplify、 d2rServer 、OpenLink、 Virtuoso 、SparqlMap等
?
3.6 知識存儲
知識存儲的主流存儲方式是圖數據庫,但具體實施時需要根據具體的業務需求來選擇存儲方式,下表總結了各種存儲方式的特點:
- 關系型數據庫存儲三元組表(S,P,O): 類似RDF存儲結構,以元組為單元進行存儲。語義較為明確
問題:大量自連接操作的開銷巨大
?
- 關系型數據庫存儲屬性表: 屬性相似的主語聚為一張表,類似關系型數據結構,每一條數據代表一個實體,每一列代表一個屬性
問題:
(1)、 RDF靈活性(高于一階的關系查詢很復雜)
(2)、 查詢時必須指定屬性,無法做不確定屬性的查詢
?
- 關系型數據庫存儲垂直分割: 以謂語劃分三元組表,根據屬性的不同建立數據表,數據結構較為清晰
問題:
(1)、大量數據表
(2)、刪除屬性代價大
?
- 關系型數據庫存儲RDF存儲: 專為存儲三元組形式的數據而設計的專用數據庫,通過六重索引(SPO、SOP、PSO、POS、OSP、OPS)的方式解決了三元組搜索的效率問題
優點:
(1)、三元組模式查詢(triple pattern)的高效執行
(2)、任意兩個三元組模式的高效歸并連接(merge-join)
?
缺點:
(1)、六重索引意味著6倍空間開銷
(2)、更新維護代價大
?
- 圖數據庫存儲: 圖數據庫的結構定義相比RDF數據庫更為通用,實現了圖結構中的節點,邊以及屬性來進行圖數據的存儲,典型的開源圖數據庫就是Neo4j。
優點:數據庫本身提供完善的圖查詢語言、支持各種圖挖掘算法,缺點:圖數據庫的分布式存儲實現代價高,數據更新速度慢,大節點的處理開銷很高。
?
- 時態數據存儲: 知識圖譜中的時態信息包含以下四個方面:
事實的生成時間
某事實的有效時間段
某一對象在特定歷史時刻的狀態
知識圖譜在過去特定時間的版本
?
- 存儲原則
關系型數據:使用圖形數據存儲
關聯型數據:作為記錄型數據存入合適的存儲中,通過實體鏈接與圖譜中實體關聯。
屬性型數據:作為實體的數值屬性存入知識圖譜
時態型數據:使用基礎存儲上的時態處理中間件進行存儲與查詢
?
3.7 知識表現
知識表現主要涉及語義網的知識,其中與知識圖譜相關緊密的是RDF、 OWL、SPARQL幾種,具體的特征和用處如下表:
3.8 知識推理
- jena是一個java 的API,用來支持語義網的有關應用,學習jena需要了解XML 、RDF、 Ontology、OWL等方面的知識。
- RDFox是一個高度可擴展的內存RDF三重存儲,支持共享內存并行數據推理。它是一個用C ++編寫的跨平臺軟件,帶有一個Java包裝器,可以與任何基于Java的解決方案輕松集成
?
3.9 知識檢索
索引系統的構建,并對查詢的結果進行排序
?
3.10 人機交互
集成現有的可視化工具,實現知識圖譜的可視化。常見的可視化工具如3D.js、Echarts等。
?
歡迎關注微信公號:數聯未來(zycnb1)
總結
- 上一篇: .Net·使用ILSpy反编译exe或d
- 下一篇: 李晨 | 无人机市场浅析