2.1 什么是知識表示
2.1.1 知識表示的五個用途
第1章曾經提到過一個問題:什么是知識?柏拉圖說知識是“Justified True Belief”。實際上,人類的自然語言,以及創作的繪畫和音樂、數學語言、物理模型、化學公式等都是人類知識的表示形式和傳承方式。具有獲取、表示和處理知識的能力是人類心智區別于其他物種心智的最本質的特征之一。所以,傳統的人工智能領域有一個經典的研究方向叫知識工程和專家系統。這種經常被稱為是GOFAI(Good Old Fashioned AI)的基本思想是建立一個系統,能夠從專家大腦里獲取知識,即知識工程,再通過一個推理引擎為非專家用戶提供服務。
那么到底什么是知識表示(Knowledge Representation,KR)呢?回到20世紀的人工智能研究。1993年,當時的MIT AI Lab有一篇發表在AI Magazine上的文章,題目叫What is Knowledge Representation。雖然這篇文章探討的主題和當下的深度學習相去甚遠,但對于這篇文章里面所探討的AI難題,當下的人工智能仍然遠遠沒有解決。
簡單而言,KR就是用易于計算機處理的方式來描述人腦知識的方法。KR不是數據格式、不等同于數據結構、也不是編程語言。對于人工智能而言,數據與知識的區別在于KR支持推理。本書摘錄了這篇文章中關于KR的五個用途的表述,如圖2-1所示。首先“客觀事物的機器標識”。每個客觀事物應該有一個統一的機器標示,即事物的命名體系,這就好比我們來到這個世界,首先記住的是萬事萬物的名字。其次,“一組本體約定和概念模型”。我們記住了大家的名字,然后會進一步做概念的抽象,這幾個人是本科生、那幾個人是博士生、他們都是浙大學生,這門課是必修課,上課老師的研究方向是知識圖譜等。我們通過對認知的事物進行抽象建立起有關萬事萬物的抽象概念模型,這就是本體。再進一步,“支持推理的表示基礎”。我們建立了關于萬物的概念表示體系,就能進一步開始推理。比如如果知道知識圖譜課程的主題分類是人工智能,就可以近似地推斷上這門課的老師的研究方向之一是人工智能。第四點,“用于高效計算的數據結構”。是說這種表示方法還要易于被機器處理,比如自然語言文本也可以表示前面所有的知識內容,但卻并不易于被機器處理,所以自然語言不是適合于機器的知識表示方法。最后“人可理解的機器語言”,這一條是說知識表示同時也是要易于人理解的,這和AI的可解釋性要求有關,這也是當前神經網絡方法表示知識的最大問題,關于這一點,后面還會專門提及。

圖2-1 知識表示的五個用途
2.1.2 符號表示與向量表示
傳統人工智能領域的知識表示方法主要以符號表示方法為主,例如影響今天知識圖譜發展的語義網絡、描述邏輯等,影響對話系統的框架系統等。這些方法都嘗試用計算機符號表示人腦中的知識邏輯,雖然很多方法已經逐漸不被人提及,但實際上對今天的很多信息系統的建設都或多或少地產生過影響。將在下一節簡略回顧這些歷史上出現過的各種知識表示方法。
符號表示方法的主要缺點是不易于刻畫隱式的知識,同時因為推理依賴于知識描述的精確性,比如一個字符串表示稍有錯誤就無法完成推理,因而傳統的符號人工智能研究的很多推理機都沒有得到大規模的實用。隨著深度學習和表示學習的興起,用參數化的向量來表示實體以及實體之間的關系,并利用神經網絡來實現更加魯棒的推理成為一個重要的發展趨勢。基于向量的方法有一個比較大的好處是易于捕獲隱式的知識。例如,可以將張三和李四兩個實體都投影到向量空間,如果他們都有一個共同的屬性,比如“就讀于浙江大學”,盡管知識庫并沒有明確描述張三和李四是校友關系,但可以通過兩個實體在向量空間的位置再疊加“校友關系”的向量表示,近似地推斷出他們之間可能存在校友關系、同學關系,甚至同班關系。這種在向量空間處理隱含知識的能力非常重要,因為我們永遠無法顯示描述所有的知識。事實上,人腦也并不會記憶所有的知識,而是經常性地基于記得住的知識推斷新的知識。向量表示的另外一個好處是將推理過程轉化為向量、矩陣或張量之間的計算,這擺脫了傳統基于符號搜索的推理計算方式,效率更高。但知識向量化有一個比較大的缺點是丟失了符號表示的可解釋性,如圖2-2所示。關于這一點,會在后續章節多次提及。

圖2-2 從知識表示到知識表示學習
更進一步,知識的向量化為有機地融合多種模態的數據提供了便利。向量化的表示已經在人工智能的其他領域非常常見。例如,在自然語言處理中,可以為句子中的每個詞學習一個向量表示(Word Embedding)或分布式向量表示(Distributed Vector Representation)。在圖像視頻中可以為每個視覺對象學習一個向量表示。例如,一個視覺感知的“樹”,怎樣和大腦中有關“樹”的概念對應起來;關于“樹”的大段自然語言描述又怎樣和知識圖譜中的“樹”的概念定義關聯起來。
深度學習專家Hinton曾經在2015年AAAI Symposium的一個有關知識表示與推理的論壇上做了一個題為“Aetherial Symbol”的報告。他這樣總結:智能的精華是怎樣實現推理,推理的關鍵是形式化邏輯。同時他批評了深度學習至上的觀點,指出學習需要清楚地知道要學習的是什么,那些認為任何東西都可以學習出來的想法是愚蠢的。他也反駁了傳統符號主義的觀點,認為大腦中并沒有符號和圖像的存儲,而是一些向量之間的相互發生作用。因此將符號表示和神經網絡方法相互結合是知識表示的重要發展方向,特別是對于知識圖譜,這兩者的有機融合也是知識圖譜的構建和應用非常重要的基本技術路線,這一點也將貫穿于本書的始終。