知識圖譜的直觀介紹:以最簡單的方式了解知識圖譜的基礎知識

圖譜無處不在——社交網絡、推薦系統,甚至存在于我們大腦中概念的連接方式中。但知識圖譜究竟是什么?作為開發人員,我們該如何使用它?
在本文中,我們將采用可視化和代碼友好的方法來探索知識圖譜的工作原理,從最基礎的部分開始。
一、圖形術語
在開始構建圖之前,我們先來熟悉一些基本術語。這些概念將幫助你理解圖數據的結構以及不同實體(節點)之間的關系。
1.了解圖元素
圖的 DNA:節點、關系和屬性

2.圖顯示的內容
這張圖是使用標記屬性圖 (LPG)模型的可視化表示。讓我們來分解一下:
每個圓圈代表一個節點——在本例中是兩個人:
一個標:Person有 name 屬性"Alice"
另一個標:Person有 name 屬性"Bob"
它們之間的箭頭表示一種關系:
它被標記為FRIEND,顯示節點之間的連接類型
箭頭方向告訴我們 Alice 和 Bob 是朋友
3.關系方向

- 有向圖:關系有方向——例如“用戶 Jane關注用戶 Joe”。
- 無向圖:關系是雙向的 - 例如“用戶 Joe是用戶 Jane 的朋友”。
4.關系權重

- 無加權圖:關系僅存在或不存在——沒有額外的數據。
- 加權圖:關系帶有數字或分數 - 例如,“用戶 Jane喜歡用戶 Joe 的 10 個帖子”。
5.圖的形狀

- 簡單圖:任意兩個實體之間只有一種關系;沒有自鏈接。
- 多重圖:允許同一實體之間存在多種關系 - 例如,同一兩個用戶之間有認識、喜歡和訪問的關系。
- 完全圖:每個節點都與其他節點相連。現實生活中很少見,但對學習很有用。
6.實體(節點)的類型

- 單分圖:所有節點都是同一類型——就像人物圖一樣。
- 二分圖:兩種類型的節點——例如人和組織。關系僅發生在這兩種類型之間。
二、用文本表示圖形:Cypher 基礎知識
在深入研究圖模型之前,了解如何用純文本表示圖會很有幫助。一種流行的方法是使用Cypher,這是一種專為處理圖而設計的查詢語言。如果您從未聽說過 Cypher,可以將其視為 SQL 的圖版本——只不過您處理的不是表,而是節點和關系。
Cypher 使用簡單直觀的語法,通過文本描述圖形模式。它也是圖查詢語言 (GQL)標準的基礎,該標準旨在統一跨系統查詢圖形數據的方式。
1.節點

- 語法:(:Label {propertyKey: value})
- 例子:(:Person {name: "Alice"})
- 解釋:
()圍繞一個節點。
:Person是標簽(實體類型)。
屬性進入內部{},例如{name: "Alice"}。
2.關系

- 語法:-[:TYPE {propertyKey: value}]->
- 例子:-[:FRIEND {since: 2003}]->
- 解釋:
[]包含關系類型。
:FRIEND描述連接的類型。
{}擁有關系屬性。
箭頭指示方向。
3.完整模式示例
語法:(:Person {name: "Alice"})-[:FRIEND]->(:Person {name: "Bob"})
含義:Alice 和 Bob 是朋友
并排比較
文本到圖形:Cypher 實際描述的內容

三、標記屬性圖模型(LPG)
標記屬性圖 (LPG)模型是一種靈活且開發者友好的數據圖表示方法。它根據節點、關系、標簽和屬性來構建信息,并廣泛應用于 Neo4j 等圖形數據庫。
標記屬性圖由什么組成?
LPG 圖包括:
- 節點:代表數據中的實體,如人員、組織或推文。
- 標簽:每個節點可以有一個或多個標簽來描述其角色或類別,例如Person或Company。
- 屬性:節點和關系可以附加鍵值對,如name: "Alice"或since: "2021"。
- 關系:連接兩個節點并始終具有:
一個方向
A類型(例如,FRIENDS_WITH,WORKS_FOR)
可選屬性,例如since: 2020
四、第一個圖示例
讓我們對以下簡單信息進行建模:
Alice 和 Bob 是朋友。Alice 在 Acme Corp 公司工作。
當你看這個例子時,試著問問自己:什么是節點?什么是標簽?什么應該是一個屬性?什么樣的東西值得擁有自己的關系?
我們可以得出以下結論:
- 實體是誰? → Alice、Bob、 和Acme Corp→ 這些是節點
- 它們是什么樣的東西? →人和公司→標簽
- 什么將他們聯系在一起? →友誼和工作→人際關系
- 哪些細節是相關的? → 姓名、開始日期 →屬性
擴展模型:如果我們添加更多數據會怎樣?
現在假設我們還想包括電話號碼、社會保險號碼和地址。
在許多情況下,您可能會將電話號碼等內容直接存儲為節點的屬性Person。
但是,如果你的目標是找到擁有相同電話號碼或地址的人呢?那么最好將它們建模為通過關系連接的獨立節點。
建模技巧:如何確定什么是節點、屬性或標簽?
沒有唯一的“正確”方法來建模圖。這取決于:
- 你的目標
- 您的問題
- 您的領域
以下是一些可以幫助您做出決定的指導性問題:
- 我會經常用這個值來搜索/過濾嗎?如果是,你可能需要把它設為節點或屬性。
- 多個實體可以共享此值嗎?如果可以,請考慮使用共享節點。
- 它是固定的類別或類型嗎?如果是,使用標簽可能是個好辦法。
- 我需要關于連接的元數據嗎?如果需要,你可能需要使用與屬性相關的關系。
五、小結:從圖基礎到第一個模型
到目前為止,您已經邁出了進入知識圖譜世界的第一步——了解什么是圖譜、如何使用簡單的術語描述它們,以及如何使用標記屬性圖 (LPG)方法模擬現實世界的關系。
您學習了如何:
- 圖可以將人物、地點和概念表示為節點
- 關系是有方向性的,可以承載意義和數據,并將實體連接在一起。
你可以直觀地描述圖
最重要的是,您開始了解建模決策如何影響圖可以回答的問題類型。
?? 下一步
當你前進時:
思考一下你自己的領域或數據:實體是誰?它們之間有什么聯系?
嘗試在紙上繪制您自己的圖 — — 包括標簽、箭頭和屬性。
探索Neo4j、Memgraph或Kuzu等圖形工具并使用示例數據集。
開始使用 Cypher 查詢圖,看看結構如何滿足邏輯。
圖并非數據科學家的專屬工具,任何想要更直觀地連接信息點的人都能從中受益。無論您是從事社交網絡、推薦系統、客戶過程,還是內容標記,知識圖譜都能為您提供強大而靈活的連接思維方式。

































