「人工智慧 +1」自學 Day6:知識圖譜 (Knowledge Graphs)**
(**我喜歡知識圖譜...)
▹「知識圖譜」的概念→「資料庫模型」
A.「以圖形結構儲存數據的資料庫模型」
「知識圖譜」使用了「圖形(Graph)」的方式進行資料儲存。因此是一種特殊的數據資料庫,目的是讓電腦可以使用儲存的資料。就像是一般那些普通的結構化的資料可被電腦使用。
而「知識圖譜」之所以能以 「圖形」方式儲存,是因為其儲存結構是「三元組 (Triples)」:這是由「實體-關係-實體」所組成的基本單元,透過這個基本單元,能將數據儲存為「圖形」的最基本單位。
B.「圖形」的真正含義
在電腦科學與數學領域,「圖形」是一種特殊的資料結構,它由兩個基本元素組成:
「節點 (Nodes)」:代表一個個的獨立事物。
「邊 (Edges)」: 代表節點與節點之間的「連結」或「關係」。
→數據就是透過節點與邊所形成的「節點與邊的抽象連結結構」被儲存為「圖形」,可被電腦應用。
C.「知識圖譜」的 「圖形」:「三元組」
要理解「三元組」是如何以「圖形」方式呈現,將三元組的「實體-關係-實體」對應於「節點/邊」:
第一個「實體」:圖形中的「節點1」
第二個「實體」:圖形中的「節點2」
「關係」: 連接兩個節點的邊
→依此三元組就成了一個「節點與邊的抽象連結結構」的圖形
▹「知識圖譜」的起源→「語義網 (Semantic Web)」
A.「三元組 (Triples)」的電腦應用始於「語義網 (Semantic Web)」
語義網的概念由萬維網發明人 Tim Berners-Lee 在 2001 年的《科學美國人》雜誌上發表論文而現世。
語義網定義了一套原則和標準,包含URI(實體唯一的「電腦名字」) 和三元組(最基本單元),用以規範整個網路的資料,變得可被電腦判讀&應用。
提姆·柏納-李的目標是透過語義網,建立在網路世界通行無阻的資料庫,意即,所有電腦都可以對其中的數據資料直接掌握、理解和推理的網路資料庫,而不再只是像傳統的資料庫只能儲存和查詢資料。其核心概念是開放且去中心化的。
B.「語義網」廣泛應用→「知識圖譜」
由於技術不成熟(演算法/實用技術發展)、資料量不足,語義網的概念一直等到 2010 年代才開始逐漸發展,隨著Linked Data運動興起(大數據普及),及科技巨頭們技術越發成熟,這個概念才真正開始有機會實現落地商業應用,像是Google、Microsoft 開始利用語義網原則建構其知識圖譜。
在語義網的理論中,三元組就是用來作為讓電腦理解世界知識的一種通用且形式化的資料模型。而「知識圖譜」,就是將這個模型大規模應用於現實世界的一個體現。
「知識圖譜」就是使用了語義網所定義之規則,來儲存和組織資料數據的一個大型、集中的數據資料庫,是語義網理論的落地實踐應用。
▹「知識圖譜」的構建程序
「知識圖譜」的產出,是一個將「非結構化」數據轉為「圖形(i.e.特定形式的結構化)」的過程,基本有以下三個主要步驟:
Step.1:資訊抽取 (Information Extraction)
實體識別 (Entity Recognition)&關係抽取 (Relationship Extraction):從各種非結構化資料中,自動/半自動地識別出何為「實體」、何為「關係」。
Step.2:知識融合 (Knowledge Fusion)
實體對齊 (Entity Alignment)&關係對齊 (Relationship Alignment):先將來自不同資料來源的實體,對應到同一個真實世界的實體(ex賈伯斯=Steve Jobs),以及,將意義相同的關係進行整合,統一為同一個標準關係(ex創辦人=共同創辦=是創辦人=founderOf)。藉此,將從不同來源抽取到的資訊進行整合與對齊,以消除冗餘和不一致性,達到「通用」。
Step.3:知識推理 (Knowledge Reasoning)**
(**註:這是「知識圖譜」最接近「智慧」的一個步驟。)
透過已經過處理、儲存好的數據資料,加上邏輯規則,自動地推理出新的、隱藏的知識。舉例說明,假設一知識圖譜具有以下資訊:
資訊一:台北位於北半球
資訊二:北半球現在是夏天
資訊三:人們以穿短袖上衣來減輕夏季的炎熱感
→系統就可以自動推理出:「現在在台北的人穿短袖。」
▹「知識圖譜」的實際應用
「知識圖譜」最獨到之處,是提供了一種以「關係」為中心的數據組織方式,也因此能與其他以「數字」、「表格」或「文字模式」為基礎的技術形成互補。所以在大多數情況下,「知識圖譜」的應用更多是一種「打輔助」的角色,與其他技術並用,而非位居C位主流的解決方案。
知識圖譜的主要用途主要有以下四個:
1.輔助「搜尋引擎 (Semantic Search)」
⌔主流(要)技術:搜尋引擎的主流技術是基於關鍵字和索引的演算法(i.e. 倒排索引和排序演算法)。
⌔「打輔助」:透過「知識圖譜」將搜尋結果的資訊數據結構化、視覺化(ex使用Google搜尋的結果頁右側的知識卡片),幫助理解語義複雜的長尾問題。
→在這裡,結構化不是只是文字配對、資訊整理,更包含搜尋字的相關延伸資訊。這就是「知識推理 (Knowledge Reasoning)」的強大功用:實體辨識+關係=理解「意義」=進行符於邏輯的「推理」=更完整全面的資訊搜羅。
2.強化「推薦系統」
⌔主流(要)技術:推薦系統的核心是「發現消費者與消費品**之間的潛在關係」,最常見的技術是協同過濾 (Collaborative Filtering) 和矩陣分解 (Matrix Factorization)。這些技術能分析用戶行為、進行分類,從而推薦(ex喜歡相同電影的人也喜歡..)。
(**註:此處「消費」,比起經濟行為(購買),更適合以consume/消耗來理解。即:消耗者與(被)消耗品。)
⌔「打輔助」:知識圖譜在這裡的效用是提供另一種維度的資訊(ex消費品之間關聯性,相同原料/製造來源..等),讓推薦更為精準,有利於建置出更高效的推薦系統模組。
→這也正是知識圖譜的「跨領域整合資料數據能力」可以大力發揮之應用。
3.助力 Explainable AI(XAI) 的「可解釋性 (Explainability)」
⌔主流(要)技術:比如LIME 和 SHAP,專門用於解釋黑盒子模型(ex深度學習)做出決策的決定因素。
⌔「打輔助」:「知識圖譜」所進行的邏輯推理過程,相較於深度學習隱藏層,清楚透明,可協助解釋難以理解的演算法。
4.為「智慧助理」把關
⌔主流(要)技術:智慧助理的核心是大型語言模型 (Large Language Models, LLMs),具備強大的問答能力以對應用戶,但無法排除不準確資訊/幻覺產生的可能性。
⌔「打輔助」:在智慧助理(如Siri)已具備對話能力的基礎上,「知識圖譜」可再提供準確、經過驗證的事實性知識,進行事實性校驗,以減少產生錯誤回應/幻覺的發生。
→依目前趨勢來看,與大型語言模型 (LLMs) 的合作應用,將是「知識圖譜」未來最主力的發展。
▹「知識圖譜」 vs.「大型語言模型 (LLMs)」
時下多數的 AI 應用,都是在「大型語言模型 (LLMs)」的基礎上,搭載「知識圖譜」。這也就意味著,兩者的結合可發揮更卓越的功效。這首先涉及了它們各自的優劣勢。
⌔大型語言模型的優劣勢
- Strength/能力: 從視窗中的上下文,理解脈絡、語調、語氣,從大量數據中找出模式&機率,從而生成流暢、自然的語句。但這不是出於理解「事實」。
- Weakness/缺點: LLM 沒有記憶,也不理解因果關係、不理解「事實」,所以容易產生幻覺(i.e.認真胡說)。缺乏資訊儲備,LLM 也很難回答需要精確事實、邏輯推理或最新資訊的問題。
⌔知識圖譜的優劣勢
- Strength/能力:能準確地儲存和檢索事實性知識,每一組連接(節點-邊-節點)都有明確的意義,並且知識圖譜「知道」那個意義。
- Weakness/缺點:無法處理模糊、不確定,也就是無法以邏輯推理進行的問題。
→當結合了 LLM 與「知識圖譜」:
LLM 能夠理解使用者提出需求的意圖和語氣,能將自然語言的問題轉換成一個精確的查詢請求,而「知識圖譜」能根據請求從資料庫中進行精確的檢索和推理,找到所有符合條件需求的資訊,提供給 LLM。於是,一個既擁有流暢對話能力,又能確保回答準確性和可靠性的AI 系統就此誕生。
▹「知識圖譜」的限制與未來趨勢
A.有待克服的限制
(1)「知識圖譜」的構建依然需要大量的人力、時間和運算資源。持續更新資料庫的維護成本也很高昂。
(2)「知識圖譜」擅長處理事實性、非模糊的知識,但對於無精確定義、語義模糊性高的抽象或主觀概念,則無力可施。
B.可見的未來趨勢
(1)如同上節所述,與 LLM 的深度整合將是接下來仍持續發展的重點,成為人工智慧發展的關鍵。
(2)「知識圖譜」能提供另一種維度的資訊,對單一領域的垂直應用有很大幫助,像是醫療領域/發現藥物關聯、金融犯罪領域/偵測金融詐騙...etc.,將更廣泛地在各專業領域進行垂直應用。
-
▹結語
這裡就用我自己的話作結吧。
「知識圖譜」開始於三元祖。
最根本的,三元組是一種資料表示模型 (data representation model),是資料的最小基本單位,當三元祖資量數量累積變多,就形成資料庫(模型),而當大量資料來源是來自於網頁,則變成網路資料庫模型(所以,離網也同樣可以應用)。
也正是因為網路,促使Tim Berners-Lee在語義網概念中,提出以三元組作為資料數據的基本通用單位:網路來源紛雜,需要一個統一的知識單位,才能相互往來,這是電腦的溝通。
而,可以溝通的結果就是:「知識圖譜」的出現。(儘管是等到2010年後,技術、演算法、算力、大數據,條件一應俱足後,才真正開啟。)
知識圖譜擁有跟深度學習不一樣的能力,並且可以幫助深度學習省很多力氣。
我其實覺得知識圖譜做的事,深度學習也可以做到,只不過是還需要再拼裝好幾種不同的演算法去做。但如果是知識圖譜,就可以直接把結果給到。
我想,一旦理解三元組為何現世、理解語義網的企圖,便能理解知識圖譜為什麼重要,尤其是對 LLM 的重要性。
LLM 在語意的學習上,是直接從自然語言去找尋規則與模式去做歸納,然後遵循找出來的規則與模式。這是基於機率的模式歸納,本質是「猜測」。
知識圖譜不同,知識圖譜是先將自然語言以電腦可判讀的結構(三元組)儲存,然後遵循該結構設計的規則(i.e.邏輯推理)。這是建構一個基於邏輯的「關係」網,本質是一個嚴格且可驗證的「事實體系」。
所以,知識圖譜的答案,有正確來源(資料庫)+正確規則,會比LLM更準確,真的很適合用來幫助會胡說的 LLM。
總之,我很尊敬Tim Berners-Lee想以語義網實現的願景,也喜歡知識圖譜依循的邏輯性,花了不少時間整理與了解,相當看好它未來的發展。