摘要:基于案例的推理常常會遇到一詞多義、多詞同義問題,這會在計算案例相似性時導致錯誤的匹配,進而導致結論錯誤。文章提出了基于本體的相似性計算方法,借此來檢索相似的案例,解決案例檢索中的一詞多義、多詞同義的問題。實驗證明,在基于本體的相似性計算的查全率和查準率上,該方法優于傳統的相似性計算。
關鍵詞:案例推理;案例檢索;本體;相似性計算
0 引言
基于案例推理(case-Based Reasoning,簡稱CBR)是近年來人工智能領域的一項重要的問題求解和學習的推理技術。案例推理能利用過去經驗中的特定知識即具體案例來解決新的問題,即通過檢索歷史案例,獲得與當前相似特征參數相匹配的案例,根據具體情況對匹配案例解決方案進行修正,然后應用于當前情況。
為了在歷史案例中檢索相似性案例,在案例檢索中通常采用相似度計算。但是一詞多義、多詞同義問題常常導致相似案例的錯誤匹配。因此,本文提出了一個基于本體的相似性計算的案例推理的新方法,有效解決了案例檢索中的一詞多義、多詞同義問題。
1 案例推理
1.1 案例推理概述
案例推理是以案例的形式來存儲經驗和知識,利用先前相似的案例的解決方案來解決當前問題的方法。
CBR的工作原理,就是模仿人們的認知心理過程。在CBR中,以案例為基礎進行推理,把人們以往的經驗存儲成一個個的案例,當面臨新的問題時,對案例庫進行搜索,找到合適的案例作為參考.這其實是實現經驗的重用;如果對找到的案例有不滿之處,就可以進行修改以適應當前情況,修改后的案例將被再次存入案例庫,以便下次使用時作為參考,這其實是實現經驗的自學習。
CBR的生命周期,常常由“4R”組成,包括案例檢索(Retrieve)、案例重用(Reuse)、案例修正(Revise)、案例保存(Retain)4個工作過程,如圖1所示。CBR把經驗和知識存儲在案例中,通過案例的推理簡化人工的知識獲取過程,并且以案例的形式提供知識的共享和重用。

1.2 案例檢索
案例檢索,從以前的案例中查找最有用案例并忽略那些不相關案例,從總體上可分為三個步驟,如圖2所示。首先,對新案例充分描述,詳細填充特征項。其次,從歷史案例中搜索那些對決策支持有潛在作用的案例。通常這種搜索在一定的粗限制條件下進行,故常稱過濾。最后,對這些經過篩選的案例進行匹配,并按相似度順序排列。匹配過程即評價當前案例同上述經過篩選的歷史案例相似度的比較過程。

1.3 現有的CBR中的相似性計算研究
對于給定的目標案例,如何從案例庫中檢索和選擇最為相似的案例決定了案例推理系統的學習與推理性能。案例間的相似性計算是檢索的關鍵。在案例間相似度的評估中,通常是建立一個相似性計算函數對當前案例與舊案例進行比較。下面簡要介紹其中的一些算法。
最鄰近算法 最鄰近算法是CBR系統中最為廣泛使用的技術,只用于簡單的基于屬性的案例表述方式。最簡單的最鄰近算法是采用加權平均的方法,將所有屬性的相似度加權加總后就可以得到2個案例的相似度。
多維空間檢索技術 雖然結構化的案例表示能夠通過結構表示出屬性之間的相關性和背景知識,但是很多情況下案例只是簡單地表示為屬性值對的組合。一個案例能夠映射成多維空間的矢量,距離就成為相似度的一種衡量,相似度問題也就轉化為在多維空間中尋找最鄰近點。
基于歸納技術的相似算法歸納算法根據案例的歷史自動構建出決策樹。算法識別案例的模式,據此將案例庫分割成簇,每個簇存放相似的案例。本質上說歸納法是將相似案例進行歸類的一種分類方法。
基于模糊邏輯的相似算法CBR匹配過程可以運用模糊邏輯技術。CBR和模糊邏輯都能夠確定相似度,但是他們處理的對象不同:CBR通常是處理屬性、集合或結構,而模糊邏輯處理的是人們表示近似概念時的不確定性和模糊性。
這些相似性算法在不同的領域都有各自的應用。但是在歷史案例中檢索相似性案例時,常常會遇到同義詞問題。同樣的概念術語在不同的案例中會有不同的意義,相同的概念也可能會使用不同的術語來描述,這些同義詞問題可能會在計算案例相似性時導致錯誤的匹配。因此,本文提出了基于本體的相似性計算的案例推理的新方法,解決案例檢索中的同義詞問題。
2 使用本體和相似度計算來檢索案例
2.1 本體概述
本體(Ontology)最早是一個哲學的分支,隨著人工智能的發展,被賦予了新的定義。現在本體的含義是:共享概念模型的明確的形式化規范說明。它主要包括4個方面:概念化(conceptualization):客觀世界的現象的抽象模型;明確(explic-it):概念及它們之間聯系都被精確定義;形式化(formal):精確的數學描述;共享(share):本體中反映的知識是其使用者共同認可的。
本體為案例描述提供了一種規范的語義描述。本體的概念或者描述可以分為三個部分:受約束的詞匯(有限的術語表),術語表(術語和術語含義表),辭典(同義詞之間的聯系)。本體的構建可以基于分類的知識或者基于通用的知識。分類的知識被用于擁有許多共同屬性的知識分類。通用的知識主要由每個類別的特征組成。它允許用戶構造明確的概念,構建有層次的結構,定義概念之間的聯系。因此,本體可以更好地描述案例的語義信息,可以解決同義詞問題。
2.2 基于本體的相似度計算
當新案例產生的的時候,查詢語句將會被傳遞到查詢分析器。查詢分析器將查詢語句分解為動詞和名詞,再與相似性歷史案例進行匹配。由于同義詞的問題,被分解的查詢語句可能不會與相似案例進行匹配。因此,我們事先要先定義好一個和案例庫相關的本體庫。術語被傳遞到本體庫中去獲得本體樹中所有他的孩子術語,然后創建相似性計算的查詢矢量Pq(V,N)。這里,V是動詞矢量,N是名詞矢量。
帶有任何術語的V、N矢量的歷史案例作為一個案例集,案例庫中的某個歷史案例i通過Pq(V,N)來描述。由于問題查詢矢量和歷史案例矢量在長度上是相似的,所以為了計算在案例集和問題查詢Pq中的問題的相似性,文中采用相似性系數。

查詢矢量pq和歷史案例Pi之間的相似性系數計算如下:公式
SC(Pq,Pi)中加權系數Wij在歷史案例Pi中表示如下:公式其中fij是歷史案例Pi中術語tj出現的次數;fj是歷史案例庫中所有不同案例的總數;pfij是歷史案例庫包含術語tj的歷史案例數。
sc(Pq,Ri)中加權系數Wqj在查詢矢量Pq中表示如下:公式
其中fqj是查詢矢量Pq中術語tj出現的次數;fj是本體庫中所有不同術語的總數;pfqj是本體庫中與術語tj相似的術語數。
如果計算出的相似度性數值比較高,那么就意味著查詢問題和歷史案例之間的相似性值也比較高。
3 實驗結果及分析
在文中,采用recall(查全率)和precision(查準率)來表現實驗結果。recall和precision分別如下表示:

其中,P是歷史案例集,p是目標案例,x是案例庫中與p真實相似的P的子集,Y是由案例檢索R中所檢索出的與p相似的P的子集。
在案例檢索中,相似性系數的閾值取值直接影響到案例檢索的結果,因此相似性系數的閾值對于recall和precision的計算結果非常重要。如果閾值取得太高,那么檢索到的相似的案例數就會相對較少,雖然可能會使precision的取值較高,但是會造成recall的取值偏低。同樣地,如果閾值取得太低,那么檢索到的相似的案例數就會相對比較多,這樣可能會使recall的取值比較高,但是會造成precision的取值偏低。因此,如何使recall和precision的取值都相對較高,也即檢索到的相似案例和案例庫中真實存在的相似案例之間既齊全又準確,這直接取決于相似性系數的閾值取值。
在本文中,根據從網上搜集的《市場營銷學》案例精選中提到的60個案例為基礎建立案例庫,并且針對這個案例庫用Protege建立了相應的本體庫。算法用Java語言實現,開發平臺為Eclipse。
以產生的某個新案例為實驗,針對不同的相似性系數閾值,對應的recall和precision如圖3所示。從圖3中可以看出,相似性系數的閾值取0.6到0.8之間的數值對應的recall和precision值都比較高。針對每個不同的案例推理系統,相似性系數的閾值的取值很可能是不同的。
現在取相似性,數閾值為0.75,再分別計算下面每個算法的recall和precision的值,計算結果如表1所示:

實驗結果表明,基于本體的相似性計算的recall和precision比傳統的相似度計算要更加好。尤其是使用本文方法的recall結果顯示出該方法對于檢索案例庫中的相似案例的查全率有很大的提高。
4 結束語
針對基于案例的推理中遇到的一詞多義、多詞同義導致的問題,本文提出了基于本體的相似性計算方法來檢索案例庫中相似的案例。實驗結果表明,該方法是確實可行并且有效的,使用基于本體的相似性計算可以幫助解決相似性計算中一詞多義、多詞同義導致的問題,提高了案例檢索中查到相似案例的比例。但是文中許多方面仍可以改進。本體構建的正確性對于實驗結果有著很重要的影響,因此本體的改進也是極其重要的部分。案例檢索中相似性系數的閾值取值對于檢索到的相似案例數影響也很大,因此也需要再深入研究。