2.2 人工智能歷史發展長河中的知識表示
在這一節中,簡略回顧在人工智能歷史發展長河中出現過的知識表示方法。需要特別說明的是,知識表示是一個非常傳統、涉及面廣、內容深入的領域。本書的重點是講知識圖譜,因此只對傳統知識表示方法做簡略說明,并主要列舉一些與知識圖譜有密切關系的方法。例如早期的Semantic Net即是研究怎樣用語義網絡模仿人腦的記憶。產生式規則主要用于刻畫規則邏輯型知識,在專家系統領域有廣泛應用。框架系統、描述邏輯等都重在研究怎樣描述本體,即關心人是怎么描述客觀萬物之間的關系,以及關于萬物的概念是怎樣形成的。
2.2.1 描述邏輯
描述邏輯(Description Logic)是和知識圖譜最接近的知識表示方法。描述邏輯是一階謂詞邏輯的可判定子集,主要用于描述本體概念和屬性,對于本體知識庫的構建提供了便捷的表達形式。它的核心表達要素很簡單,包括:概念(Concepts),例如學生、教授等;關系(Relations),例如朋友、愛人等;個體(Individuals),例如小明、小紅等。
一個由描述邏輯實現的知識庫通常包含兩個部分,即:TBox和ABox,TBox包含內涵知識,用于描述概念的一般性質。例如需要聲明Mother的概念是“有小孩的人”這個概念的子概念。ABox包含外延知識,描述論域中的特定個題,例如聲明張三是一名學生,張三和李四是同學關系等。這也是知識圖譜的基本表示單元。
2.2.2 霍恩規則邏輯
霍恩規則邏輯(Horn Logic)也是應用廣泛的知識表示方法,也是一階謂詞邏輯的子集,主要特點是表達形式簡單、復雜度低,且易于描述規則型知識。著名的Prolog語言就是基于霍恩邏輯設計實現的。
它的核心表達要素包含三個方面:
原子(Atom):由一個謂詞陳述構成,例如has_child(Helen, Jack);
規則(Rules):由頭部原子和體部原子組成,一條規則描述了多個體部原子與單個頭部原子之間的邏輯推導關系;
事實(Facts):是指沒有頭部且沒有變量的規則,例如:hasson_(Helen,Jack):-。
這類以謂詞邏輯為基礎的知識表示方法的主要優點是接近自然語言,容易被接受,且易于表示精確知識,因為有嚴格的形式定義和推理規則,易于精確實現。主要缺點是無法表示不確定性知識,難以表示啟發性知識及元知識,存在組合爆炸問題,即:經常出現事實、規則等的組合爆炸,導致效率低。
2.2.3 產生式系統
產生式系統(Production System)是一種意義更廣泛的規則系統,專家系統多數是基于產生式系統,例如Feigenbaum研制的化學分子結構專家系統DENDRA,Shortliffe研制的診斷感染性疾病的專家系統MYCIN等。
產生式系統的核心表達形式是:IF P THEN Q CF=[0, 1],其中P是產生式的前提,Q是一組結論或操作,CF(Certainty Factor)為確定性因子,也稱置信度。例如,可以定義一條產生式規則:IF(本微生物的染色斑是革蘭氏陰性、本微生物的形狀呈桿狀、病人是中間宿主)THEN該微生物是綠膿桿菌,置信度為CF=0.6。
產生式系統的優點包括自然性——它采用了人類常用的表達因果關系的知識表示形式,既直觀、自然,又便于進行推理;模塊性——產生式系統中的規則形式相同,易于模塊化管理;有效性——能表示確定性知識、不確定性知識、啟發性知識、過程性知識等;清晰性——產生式有固定的格式,既便于規則設計,又易于對規則庫中的知識進行一致性、完整性的檢測。但缺點是效率不高,由于產生式系統求解問題的過程是一個反復進行“匹配—沖突消解—執行”的過程。而規則庫一般都比較大,匹配又十分費時,因此其工作效率不高。另外一個缺點是不能表達結構性知識,它對具有結構關系的知識無能為力,它不能把具有結構關系的事物間的區別與聯系表示出來。
2.2.4 框架系統
框架系統的基本思想認為人們對現實世界中事物的認識都是以一種類似于框架的結構存儲在記憶中。當面臨一個新事物時,就從記憶中找出一個合適的框架,并根據實際情況對其細節加以修改、補充,從而形成對當前事物的認識。框架系統在很多NLP任務如Dialogue系統中都有廣泛的應用。框架系統的基本表達結構是框架,一個框架由若干個“槽”(Slot)結構組成,每個槽又可分為若干個“側面”,槽用于描述對象某一方面的屬性;側面用于描述相應屬性的一個方面;槽和側面所具有的屬性值分別稱為槽值和側面值。如圖2-3所示為一個框架系統的舉例。可以看到框架系統其實和面向對象的思想相近。

圖2-3 框架系統實例
框架系統的優點是對知識的描述比較全面和完整,知識庫的質量也比較高,另外框架允許數值計算,這一點是框架系統優于其他方法的一個主要特點。框架系統的缺點是維護成本比較高,質量要求也比較高,框架的表達形式其實并不靈活,很難與其他形式的數據集配合使用。
2.2.5 語義網絡
語義網絡(Semantic Net)已經在前面多次提及。1968年J.R.Quillian在其博士論文中最先提出語義網絡,把它作為人類聯想記憶的一個顯式心理學模型,并在他設計的可教式語言理解器TLC(Teachable Language Comprehenden)中用作知識表示方法。例如,WordNet就是一個非常典型的語義網絡。WordNet由普林斯頓大學認知科學實驗室從1985年開始開發,主要定義了名詞、動詞、形容詞和副詞之間的語義關系。例如名詞之間的上下位關系(如:“貓科動物”是“貓”的上位詞),動詞之間的蘊含關系(如:“打鼾”蘊含著“睡眠”)等。WordNet3.0已經包含超過15萬個詞和20萬種語義關系。
語義網絡的優點是它是一種結構化的知識表示方法,易于把事物的屬性以及事物間的各種語義聯想顯式地表示出來,同時直觀地把事物的屬性及其語義聯系表示出來,便于理解,因此自然語言與語義網絡的轉換比較容易實現,在自然語言理解系統中應用最為廣泛。缺點是語義網絡沒有公認的形式表示體系。一個給定的語義網絡所表達的含義完全依賴于處理程序如何對它進行解釋;同時通過推理網絡而實現的推理不能保證其正確性,例如支持全稱量詞和存在量詞的語義網絡在邏輯上是不充分的,不能保證不存在二義性;語義網絡表示知識的手段多種多樣,靈活性高,但由于表示形式不一致,使得處理復雜度高,對知識的檢索相對復雜。如圖2-4所示為語義網絡的實例,每個節點代表一個概念,每條邊代表詞之間的語義關系,例如描述(Fish lives_in Water)等關系。

圖2-4 語義網絡實例
知識表示與推理在人工智能的發展歷史上一直居于核心位置。傳統的知識表示方法主要以符號表示為主,與知識圖譜有關的典型方法有:描述邏輯、霍恩規則邏輯、產生式系統、框架系統和語義網絡等。這些方法各有優缺點,但都有一個共同的缺點是知識的獲取過程主要依靠專家和人工,越復雜的知識表示框架,知識獲取過程越困難。