以資料趨動智慧的治理

對於資料洪流的世代,資料會是智慧的重嬰來源之一,但資料到智慧並非一蹴可及,需要一個穩固的基礎來建立。今年年初的演講中整理了一些想法,基本上我認為至少會有四個概念化的基礎。

1.互動(Interaction)

是以開放資料為基礎,政府以開放資料和人民互動、協同合作,進而公私協力解決問題。

2.整合(Integration)

要能擴大合作範圍,或者使得以資料為主的協同合作順暢,資料整合的工作不容忽視,無論日本、美國、歐盟都有資料標準的語彙,來讓資料能跨領域、跨機關單位的整合,才可能創造更好的合作環境,也才有可能產生智慧。

3.智慧(Intelligence)

資料共通語彙是資料整合的一個步驟,要讓資枓整合的過程需要知識的介入規整,有助於利用資料產生智慧化服務。

4.影響(Influence)

以政府的智慧化服務而言,應該是對人民產生正面的影響,以使得人民更相信政府服務,促使公私合作更緊密。

 

Knowledge Graph (知識圖譜)的前世今生

講到Knowledge Graph 一詞,很多人大概會直覺地想到Google的Knowledge Graph,隨著AI再度興起,使得Knowledge Graph變得熱門,舉例而言(圖1),在Google 中查找,「歐巴馬老婆那裡畢業?」,Google能回答出,她畢業於普林斯頓大學和哈佛法學院,並且還把蜜雪兒的生平生事蹟結構化的列出來。Google能回答這些問題,Knowledge Graph扮演相當重要的角色,此外,Google對於問題中的具名實體及關係的區辨能力也是能夠準確回答的重要因素,這必須區辨出這個問題不是問歐巴馬,而是蜜雪兒,且「那裡畢業」是要問蜜雪兒在那個學校畢業。因此,Google能夠回答這個問題,不僅是Knowledge Graph內容豐富,而且要有很好的中文斷字斷詞,以及對於問題語意的解讀能力,這方面能力的提昇應該與2014年Google在KDD研討會中發表的Knowledge Vault有關。

圖1: Google 查尋的問答

Google Knowledge Graph 的應用,使得「知識」在網路世界中表達和使用達到另一個境界,但Knowledge Graph並不是偶然發生,有一部份是歸功於過去的發展,早在2000年左右建立knowledge graph的觀念就被提出來,加上Web 2.0的風潮,認為knowledge graph的建立可以透過群眾的力量共同編輯,因此在2007年Freebase由Metaweb所創立,很快的2010年就被Google買下來,到2016年整個服務停掉,Freebase也整併到Google 的Knowledge Graph,但龐大的資料並沒有消失,而是由Wikidata接續群眾共同編輯知識的工作。另一方面,在2007年,利用Wikipedia中infobox中的資料製作而成的DBpedia被發表,帶動了鏈結資料的發展,2008年YAGO 利用更強大的資訊擷取技術,把Wikipedia中非結構化資料,轉為knowledge graph。而NELL (Never-Ending Language Learning)計畫則是在2010年由CMU在AAAI上發表,是一透過網路爬蟲大量由網頁中擷取資料,並結構化且正規化資料的計畫。再者,Cyc是一個歷史悠久的人工智慧計畫,從1984年就開始進行,是一個龐大Knowledge base計畫,讓人不清楚最終是否完成? 但Cyc有一部份,開放出來為OpenCyc

事實上,在Google Knowledge Graph 尚未成熟時,2009年智慧問答系統 Wolfram Alpha 被發表出來,引起高度的重視,它能回答像,「英國女王伊莉莎白二世在1974年時是幾歲?」、「貸款利息隨時間的變化」,這種較為複雜的問題,邏輯推演能力其實很強,但侷限在於內容,Wolfram Alpha 不像 Google Knowledge Graph 具有這種龐大的內容來迎合一般民眾的問答。而另一個強大的問答系統IBM Watson,已經眾所皆知的人工智慧平台。

Semantic Network (語意網)

Semantic Network 可以說是Knowledge Graph的濫觴,早在1960年代,多數人把知識中概念概念串起來的網絡稱為semantic network,許多自然語言處理的研究致力於整理這些知識,以便促成更智慧、更精準的自然語言處理,最知名應該是普林斯頓大學的WordNet,是一個相當完整的英文為主的語料庫,後來也有其它語言加入,如中文。以WordNet為例,這個semantic network 著重的是詞彙的上下位關係和同義詞之建立,所謂上下位關係是以詞彙語意上較為抽象、描述範圍較大者為上位詞,而較明確、描述範圍較小者為下位詞。

和knowledge graph的比較,WordNet強調的是詞彙語意的正確表達,而knowledge graph是著重於真實世界實體的關係,例如,巴拉克·歐巴馬和蜜雪兒·歐巴馬的配偶關係,而不是去定義配偶為何,其上下位關係和同義詞為何。在Knowledge Graph中的配偶是一個用於「人」這個概念(concepts or classes)的關係(relations),巴拉克·歐巴馬和蜜雪兒·歐巴馬都是「人」的實例(instances),所以可以用配偶關係來表達。

圖2:WordNet

Ontologies (知識本體)

上述的概念、關係、和實例都是構成知識本體要素,但ontologies建立更重視正規化的知識表達,所謂的正規化就是如何以邏輯關係來定義知識、確立語意,Gruber(1995)提出用框架和第一階邏輯(First Order Logic)來建立知識本體,並定義 5 種基本要素:類別(Classes)、關係(Relations)、功能(Functions)、正規的原則(Formal axioms)和實例(Instances)。之後,Noy and McGuinness(2001)認為建立知識本體應該定義:

  1. 知識本體中的類別(Classes);
  2. 安排分類體系中的類別(Subclass–Superclass);
  3. 定義屬性(Slot)和描述這些屬性的允許值;
  4. 給實例(Instance)填入屬性的值。

隨著,語意網技術的發展,W3C已製定了知識本體的語言OWL(Web Ontology Language) ,其中使用描述性邏輯(Description Logic) 來定義語意,目前大多數知識本體的建立皆以 OWL 為主,只是在格式上採用較為簡單的Turtle或N3。而知識本體的建立工具則以Protégé 為最多人使用。

舉例來說,日本農業活動知識本體(Agricultural Activity Ontology, AAO)的建立,播種(seed propagation)是一個農業活動(Agricultural Activity),所以播種是農業活動的子類別,播種的概念比散播控制小、散播控制又比作物成長小、作物成長又比作物生產小,因此這些概念的活動即形成一個階層,且每一個概念都是由邏輯關係所定義而成。許多知識本體都像日本的農業活動知識本體之建立,強調於概念(concepts)或類別(classes)之間的邏輯關係,而較缺乏實例的部份,如DOCLE,這和Knowledge Graph有相當大不一樣的地方,Knowledge Graph的類別(classes)通常不複雜,階層較淺,但實例(Instances)的部份相當豐富。

圖3:日本農業活動知識本體(AAO)

Knowledge Base (知識庫)

Knowledge base 早在1970年代就被提出來,主要有二個特徵,一是有一個知識呈現方式來表達事實(facts),通常是知識本體,並有儲存庫(repository)來儲存這些事實,這裡的事實和資料不一樣的地方在於結構化和正規化,以知識本體的角度而言,就是一個被陳述的事實一定會有一個類別來說明並表明這個事實應有可有的關係。另一個特徵是推理機(inference engine),可以使用邏輯規則來推論以減少這些事實的不一致(inconsistence),當然早期許多以Knowledge base為基礎的專家系統會強調,推理機可以透過規則和邏輯關係的建立,回答問題,或預測更多事實。

Knowledge Base和Knowledge Graph應該是被混用最多的二個名詞,本質上,這二個東西確實是相似,有綱要(schema)部份,也就是圖4中TBox (Terminology Box),一般而言,是以OWL來實現,以及ABox (Assertion Box),就是事實(facts),一般由RDF來實現。為了進一步解釋,圖5中在雲朵中的都屬於TBox的部份,都是類別(classes),而方框中的是ABox,是根據TBox類別所定義的實例(instances),或者是事實(facts)。

圖4: Knowledge base的組成ABox 和 Tbox
圖5: ABox和TBox的實際範例

最大的差別在於Knowledge base在提出時,並沒有想到是一個網路規模(Web scale)的應用,內容(也就是事實)如此龐大,對於資料的綱要(schema)(TBox)要求較多,相對而,knowledge graph的TBox部份就比較沒這麼複雜。另一方面,knowledge base的建立常常只是單一領域,例如,Geonames 只有地名,和knowledge graph盡量收納所有知識的基調,是完全不一樣的。