摘 要: 屬性坐標系是由n個不相關的屬性組成的一個n-1維坐標系。第n+1個屬性,可以由這n個屬性做合取運算得到;這樣在這個n-1維坐標系中,就形成一個唯一點來表示這第n+1個屬性。2007年Freebase數據庫的建立,使得該屬性坐標系理論得以驗證,并為屬性坐標系的建立提供可能,而且將在語義相關度計算中發揮重要作用。
關鍵詞: 屬性坐標系;Freebase;語義相關度計算
哲學上講,事物的質是事物的內在規定性,是區別于其他事物的規定性;質通過屬性表現。在此引入集合論的概括公理可知:任給一個屬性,存在一個由所有具有該屬性的元素構成的集合。若引入特征公理可知:任何兩不同事物,至少存在一屬性,使得它是一事物區別于另一事物的特征。可證明:一個事物(或系統)可由它所具有的特征予以確定(或定義)。此處,特征包括事物的關系和結構。可見,“給定一(組)特征可確定其對應(或定義)的事物”是人類識別事物的基本原則[1-2]。
2 語義數據庫Freebase
Graphd與關系數據庫以表的形式存儲數據完全不同,Graphd以節點以及節點之間的關系所形成的圖結構來組織數據,以數組的方式對節點和其關系的元數據進行建模,以表格形式存儲,表格中的每條數據對應一個節點關系數組,數組由源節點、屬性、目標節點、源節點值組成。使用MQL語言作為查詢語言,并通過HTTP標準的“請求/應答”機制發送請求[4-5]。
2.1 Freebase知識表示和組織機制
Freebase的結構分為3層:Domain->Type->Topic。以Arnold Schwarzenegger為例,解釋Freebase中的知識結構。如圖2所示。其中,橢圓框表示Topic,方形框表示Type[6]。
以Arnold Schwarzenegger為原點進行討論,首先是一個Topic,對應于現實中的一個對象。它有4個Type(可理解為定義):Person、Body Builder、Actor、Politician。
Type:Person下有一個屬性:country of birth,其值為Topic:Austria。這樣,就把Arnold Schwarzenegger(對象)與Austria(對象)建立了聯系。以此類推。
同樣反過來看Topic:Terminator有一個Type:File,其下有一個屬性cast,其值為:Schwarzenegger。這樣反向也建立了聯系[6]。
2.2 MQL查詢語言
由于Freebase后臺使用自己設計的Graphd,所以也摒棄了傳統的select等SQL語言。設計GQL(graph query language)作為請求處理語言;為了用戶使用方便,在此基礎上,設計MQL(Metaweb Query Language)作為數據查詢語言。其完全符合HTTP協議標準的“request/response”機制,可在瀏覽器地址欄,直接輸入MQL查詢語句。例:
https://api.freebase.com/api/service/mqlread?query={"query":{"type":"/music/artist","name":"The Police","album":[]}}
該例可在地址欄中直接輸入并在頁面中返回結果[7]。
3 屬性坐標系框架下的Freebase研究
通過對Freebase的數據組織機制、知識表示的再研究,發現其暗含了屬性坐標系的建庫理念。從側面證明了“屬性論”及“屬性坐標系”等理論在知識處理領域的獨到性、前瞻性和實用性。
3.1 Freebase中對對象的定義
還是以Arnold Schwarzenegger為例,對人腦思維來說,首先該對象是一個人,對應在Freebase存在一個Type:person;以此類推其他(比如Type:actor)。
如一個謎語:有一個人,是健美先生,是演員,演過《終結者》,這個人是誰?如果人們腦中有這個定義,馬上就能得到謎底,也就是該對象Arnold Schwarzenegger。
綜上所述事實,恰好印證了屬性論中闡述:一個事物(或系統)可由它所具有的特征予以確定(或定義);人腦感覺則僅對其敏感的事物屬性作出反應。用屬性坐標系表示,如圖3所示。
不難看出P(A)=P1∧P2∧P3。這正是人們人腦中的反應。
3.2 對象屬性坐標的建立及相關度計算
Freebase在對象的定義、上下位關系的定義過程中有獨到的見解,提供了一個有效地途徑。比如Arnold Schwarzenegger對象和Austria、Terminator、Republican等對象之間的關系,不難看出,這些對象之間有明顯的包含和被包含關系。
但是,同級對象之間的關系比較,比如Arnold Schwarzenegger和Sylvester Stallone之間關系的定義,Freebase就稍顯不足。可不妨換一種思路,通過建立對象的屬性坐標,對象坐標做笛卡爾積,從而得到兩個同級對象之間關系。
首先建立Arnold Schwarzenegger的對象坐標,根據上文的圖示坐標可得(該對象有很多屬性,但該部分屬性已可以定義該對象):
Arnold Schwarzenegger=[
{person[{nationality:Austria,USA}…]},
{actor[{film:Terminator},…]},
{bodybuilder[]},…
]……V1
這里采用二級坐標表示:person表示對象特征定義;nationality表示特征屬性;Austria表示特征屬性值。因為nationality等一些列特征屬性合取可得到person這個定義。
再來建立Sylvester Stallone的對象坐標,根據前文的構造語句,可以得到Stallone的Type及屬性。
Sylvester Stallone=[
{person[{nationality:USA},…]},
{actor[{film:The First Blood},…]…},
]……V2
然后將兩個向量相乘,首先:
person*person=1
表示這兩個對象有特征定義person,可以進一步比較特征屬性nationality:
Austria*USA=0
USA*USA=1
綜上可認為:nationality*nationality=0.5
表示,這兩個對象的特征屬性nationality有部分相關,都有USA這個特征屬性值。
其次,person*actor=0,表示這兩個對象的特征定義不存在相關關系。
再次,actor*actor=1,表示這兩個對象有相關的特征定義actor,進一步比較特征屬性film,由前文提供計算方法可得film*film=0,表示沒有特征屬性值的相關關系。
綜上計算方法及結果,可得如下結論:Arnold Schwarzenegger和Sylvester Stallone兩個對象存在相關關系。即:這兩個對象是person,國籍都是USA,都是actor,但是沒有合演過電影。這個結論與現實相符。
前文所述的對象相關度計算方法,僅是表面上粗淺的計算,也僅是對語義相關度問題提供一種方法參考,但計算結果讓人滿意,實際意義值得期待。而且完全可以對該方法進一步加以研究,比如:每一個對象按特征定義的貢獻度,為特征定義賦予相關權值;細化計算粒度,可以用小數表示相關度;為結果定義實際意義,例如兩個向量的乘積等于1有什么意義,等于0.5時有什么意義。
人工智能發展至今,最根本的問題是知識的表示問題。各種知識庫如WordNet、Freebase數據庫、各種本體數據庫,都力求將大千世界中的對象有機組織起來。但是,不管是本體數據庫還是Freebase數據庫,都是利用了對象之間天然的上下位關系進行層次關系定義,而且經驗證,這種方法是可行的,但僅是在縱向關系研究中。但是屬性坐標系理論以其獨到性,提出了一種對象橫向關系(相關性)的表示方法,對本體數據庫或是Freebase數據庫中的對象橫向關系研究提供了寶貴的理論基礎。
參考文獻
[1] 馮嘉禮.思維智能與屬性論方法[J].廣西師范大學學報(自然科學版),1997,15(3):1-6.
[2] 馮嘉禮.思維智能與屬性論方法(續)[J].廣西師范大學學報(自然科學版),1997,15(4):1-6.
[3] 馮嘉禮,馮嘉仁,詹增修.以屬性為基礎的知識庫建庫原則[J].計算機研究與發展,1987,24(11):56-61.
[4] 李俊.語義數據庫Freebase研究[J],現代圖書情報技術,2011(10):18-23.
[5] A Brief Tour of Graphd[EB/OL]. http://wiki.freebase.com/wiki/Graphd.
[6] 阮一峰.Freebase再研究[EB/OL]. http://www.ruanyifeng.com/blog/2008/04/freebase_reloaded.html.
[7] Query Editor[EB/OL]. http://www.freebase.com/view/queryeditor/.