周 航,劉學軍+,張伯君
(1.南京工業大學 計算機科學與技術學院,江蘇 南京 211816;2.南京鍋爐壓力容器檢驗研究院 產品監檢中心,江蘇 南京 210028)
大規模的數據具有異構性、多元性、結構性不強等特點,人們在獲取有效信息和知識的過程中面臨著巨大的挑戰。知識圖譜的提出為解決這些問題提供了新的思路。知識圖譜旨在描述客觀世界中存在的各種實體以及實體之間的相互關系,本質上是一種大型的語義網絡,以實體作為節點,實體之間的關系作為邊。它通常以資源描述框架(resource description framework,RDF)的形式進行存儲。知識圖譜以三元組(Triplet)為基本單元進行存儲,三元組的表現形式為:(實體、關系、實體)。現已被廣泛應用于專家系統[2]、web搜索[3,4]和問答[5-7]等領域。通常,將關系描述成許多關系數據,將其表示為一個由兩個實體和它們之間的關系組成的三元事實。例如Freebase[8]、Wikidata[9]和WordNet[10]等。
近年來,研究者提出了若干知識圖譜表示模型,其中包括結構表示模型[11]、單層神經網絡模型[12]、隱變量模型[13,14]、翻譯模型等。本文主要考慮基于翻譯模型的知識圖譜表示方法。
雖然這些傳統的基于翻譯的模型在很多情況下被證明是有效的,但是它們認為一個關系只對應一個翻譯向量,因此不能解決存在多個語義關系的問題。例如has_part關系,(sichuan, HasPart, chengdu)表示的是地域關系,而(house, HasPart, door)則表示一種成分關系。此外,不同的關系具有不同的確定程度。例如三元組(YaoMing, place_of_birth, shanghai)和三元組(YaoMing, spouse, YeLi),顯然,spouse關系比place_of_birth關系更能表示姚明的身份。
因此,本文提出一種基于云模型的知識圖譜表示方法,目標是在關系向量存在多語義性的前提下,獲取最能表達該關系向量語義的向量值,同時引入不確定性的思想,在新的評分函數中結合確定程度,使模型預測更加準確。
知識表示學習通過將實體或關系投影到低維向量空間,實現實體和關系的語義信息的表示。本節將針對國內外對于知識表示中的翻譯模型以進行分析。
為了訓練知識庫中的三元組(head,relation,tail),傳統建模的方法參數特別多,極大程度上增加了模型的復雜性導致難以解釋,并且計算代價花費較大,很容易出現過擬合或欠擬合問題。
Borders等[15]提出了TransE(基于翻譯的嵌入式模型)模型。該模型認為,在向量空間中,關系向量r是頭實體向量h到尾實體向量t的翻譯操作,通過得分函數衡量實體與關系之間的關聯性,并通過損失函數獲取最優目標值。由于TransE模型處理復雜關系時效果并不顯著,此后大多數翻譯模型都是在TransE模型的基礎上進行改進。
Miao Fan等[16]提出了TransM模型,認為不同的關系其抽取的比例應該不同,因此對不同類型的關系賦予不同的權值,以此提升了TransE模型在一對多和多對一關系的性能。
ZhenWang等[17]提出了TransH模型,該模型認為不同的關系下每個實體所使用的表示形式應該不同,它為每個關系r構建了特定的超平面,在超平面上進行翻譯操作,提高了模型對復雜關系的處理能力。
以上翻譯模型均是從幾何平移的角度出發的,認為在向量空間中,頭實體向量h, 關系向量r, 尾實體向量t構成了一種幾何合成的關系,僅僅對一個關系賦予一種翻譯向量,它并不能細分多關系語義,文獻[18]提出TransG(基于產生式的嵌入模型)知識表示方式,他們提出關系向量具有多語言性。為了刻畫關系的多語義性,一個關系應該有多種向量表示,不同的實體對在幾何變換中應該采用不同的關系向量。因此,提出了一種基于貝葉斯非參的無限混合嵌入模型:認為關系向量由若干成分向量合成,模型會根據實體對自動選擇一個關系向量,而多少個這樣的關系向量還可以由模型自動選擇。He等[19]在TransG的基礎上提出KG2E,并引入了實體與關系之間不確定性的概念。
基于云模型的知識圖譜表示方法的任務是通過云模型的獲取最能夠表達該關系語義的坐標值以及確定程度。
首先,給定一個關系r, 將關系r劃分為M個語義,對每個語義構建高斯模型,用高斯混合模型表示關系r。 其次,通過貝葉斯分類得到每個語義的權重值,將最能夠表達該關系的稱之為主語義m*, 主語義的語言值的確定程度則表示該關系的確定程度。同時,通過二維正態云發生器對主語義m*生成對應的云滴 (xm*,ym*,zm*), 其中, (xm*,ym*) 表示主語義的語言值的坐標,zm*表示這個語言值的確定程度。最后將主語義的語言值坐標和語言值的確定程度帶入到新的評分函數中,采用差距的排序誤差(margin-based ranking error)函數對評分函數進行優化。模型的基本表示框架如圖1所示。

圖1 基于云模型的知識表示框架
在TransE模型中,分別用h,r,t表示頭實體、關系、尾實體在低維向量空間中的表示,最終的評分函數應該具有以下形式

(1)
因此,可以將這一過程看作頭和尾的差向量 (t-h) 是以r為均值,σ為協方差的高斯分布
t-h|r~N(r,σ2)
(2)
(3)
其中,K表示歸一化常數。
一個關系可能存在多條語義,因此,一個翻譯向量無法對多個語義進行建模。采用高斯混合模型的思想,先將每條語義表示成其高斯分布,再將最終的關系表示為多個高斯分布的混合形式,得到如下的表示形式
(4)
(5)
其中,M表示一個關系包含的語義數量,Wr,m表示第m個語義的權重,ur,m表示第m個語義的關系的翻譯向量。
通過貝葉斯統計對測試數據進行統計,得到每個語義的權重值,其中,最能夠表達該關系的稱之為主語義m*, 定義如下
(6)
(7)
其中,arg max函數表示取最大值。
借鑒李德毅等提出的云模型[20]的思想,對于給定的三元組 (h,r,t) 的向量表示,得到主語義m*的數字特征期望(Ex,m*,Ey,m*)、 熵(Enx,m*,Eny,m*) 和超熵 (Hex,m*,Hey,m*), 通過以下算法生成云滴:
(1)產生一個以 (Enx,m*,Eny,m*) 為期望值, (Hex,m*,Hey,m*) 為均方差的二維正態隨機熵 (E′nx,m*,E′ny,m*);
(2)產生一個以 (Ex,m*,Ey,m*) 為期望值, (E′nx,m*,E′ny,m*) 為均方差的二維正態隨機數 (xm*,ym*);
(3)計算
(8)
(4)(xm*,ym*,zm*) 表示一個云滴,其中(xm*,ym*) 表示主語義m*的語言值的坐標,zm*表示 (xm*,ym*) 屬于這個語言值的確定程度的量度;
因此,得到最能夠表達主語義m*的坐標值
ur,m*=(xm*,ym*)
(9)
評分函數表示如下
(10)
模型訓練中,訓練模型的目標函數采用基于差距的排序誤差(margin-based ranking error)函數進行優化
(11)
其中,正三元組的集合用S表示,負三元組集合用S′表示,邊界超參數用γ表示, [x]+表示取整。
對于那些可能性非常低的三元組,應該將其忽略防止其對最終的實驗結果產生影響。因此,訓練算法應該滿足以下約束條件
(12)
其中, (h,r,t)∈S, (h′,r′,t′)∈S′,β控制更新狀態。
算法流程的偽代碼如算法1所示。
算法1: 基于云模型的知識圖譜表示算法
輸入: 訓練三元組T={(h,r,t)}, 實體集合E, 關系集合R, 邊界γ, 嵌入維數k, 狀態更新參數β
輸出: 實體和關系的向量
(1)初始化 對于任意關系r∈R,e∈E


(5)生成主語義m*的云滴 (xm*,ym*,zm*)
(6)loop
(8)Sbatch←sample(S,b)/*抽取大小為b的小批次樣本*/
(9)Tbatch←?//初始化一組訓練三元組
(10)for(h,r,t)∈Sbatchdo

(12)Tbatch←Tbatch∪{((h,r,t),(h′,r,t′))}
(13)endfor
(14)根據式(8)、式(10)、式(11)、式(12)更新高斯嵌入

(16)endloop
實驗分別在WordNet和Freebase的4個公共基準數據集上進行。這些數據集的統計數據見表1。對鏈路預測和三元組分類兩項任務進行了實驗研究。

表1 數據集統計信息
鏈路預測是指存在一個三元組 (h,r,t), 若該三元組丟失尾實體,則預測其頭實體,即給定 (h,r) 預測t;若該三元組丟失頭實體,則預測其尾實體,即給定 (r,t) 預測h。實驗過程如下:對于任一測試三元組 (h,r,t), 用數據集中存在的任意實體e分別替換該三元組的頭實體和尾實體,通過TransC模型的評分函數計算三元組 (e,r,t) 或 (h,r,e) 的得分。將這些“損壞”的三元組按照得分進行降序排序,得到原始三元組的排名。
使用之前研究中相同的評估協議中的兩個指標:MeanRank和Hits@10,其中MeanRank表示正確三元組的平均排名,Hits@10表示正確三元組排序不大于10的比例。我們發現,實驗時應該濾去存在于train,valid和test這3個數據集中已經存在的三元組,再考慮當前測試三元組的排名。過濾前稱之為“Raw”設置,過濾后稱之為“Filter”設置。兩種設置中,較低的Mean Rank和較高的HIT@10都意味著更好的性能。
由于數據集相同,直接將模型與報告中的幾個基線進行比較。在多次實驗下獲得了如下的最佳配置:在WN18上,學習速率α=0.001, 嵌入維數k=50, 邊界參數γ=2, 狀態更新參數β=0.2, 語義數量M=10; 在FB15K上,學習速率α=0.005, 嵌入維數k=500, 邊界參數γ=1, 狀態更新參數β=0.25, 語義數量M=10。
“Filter”設置的數據質量更高,因此實驗結果取“Filter”設置的結果。鏈接預測的平均預測結果如圖2所示,關于FB15K各類關系的Hits@10值如圖3所示。實驗結果表明,TransC明顯優于其它基線,這一結果表明了TransC在多語義的情況下具有更大的優勢。與TransG相比,TransC在WN18上提升了4.2%,在FB15K上提升了4.6%。這主要是因為TransC借鑒了云模型的思想,得到最能夠表達這個語義的坐標值,這樣增加了實驗結果的準確性;同時,確定程度高的關系更能夠推理出正確的結果,因此,給每個關系的確定程度定值也能夠進一步提升模型的準確度,在實驗結果中也進一步驗證了這一做法的可行性。如圖2所示,在WN18中,TransE等原始方法在Mean Rank這一度量上表現的比其它方法都好,最主要的原因是WN18只包含少量的關系,導致不同類型的關系將被忽略掉,平均排名因此較高;還有可能是因為平均秩被一些極端的低秩三元組所影響。而在關系復雜多樣的FB15K中,TransC的各項指標是最好的,TransC在關系復雜多樣的圖譜中表現更加優異。

圖2 鏈接預測的平均預測結果

圖3 關于FB15K各類關系的Hits@10值
三元組分類的主要任務是將三元組進行“正確”和“錯誤”的二元分類。實驗中,使用了WordNet的子集WN11和Freebase中的子集FB13。
本實驗遵循了NTN模型所采用的評估標準。對于一個三元組 (h,r,t), 給定關系r的閾值設為σr,如果三元組的得分函數低于該閾值σr,則該三原組屬于“正確三元組”,反之為“錯誤三元組”。
由于本實驗所對比的方法使用的數據集均相同,因此實驗結果來自參考文獻。在多次實驗下獲得了如下的最佳配置:在WN11上,學習速率α=0.001, 嵌入維數k=50, 邊界參數γ=1, 狀態更新參數β=6.0, 語義數量M=10; 在FB15K上,學習速率α=0.002, 嵌入維數k=500, 邊界參數γ=1, 狀態更新參數β=0.2, 語義數量M=10。
不同模型的三元組分類精度如圖4所示,TransH和TransC若干關系的Hits@10值如圖5所示。在WN11和FB13中,TransC比其它方法更加出色。與傳統的TransE和TransH等方法相比存在顯著的提升,這一結果表明了將關系劃分為多種語義能夠取得較大的提升。與TransG相比,TransC在WN11上提高了1.4%,在FB13上提升了0.3%。NTN模型有非常多的參數,在關系較少的FB13上性能優于大多數的模型,然而在關系復雜多樣的FB15K中性能較差,因此對于現今大規模的知識圖譜,NTN模型顯然不具備優勢。本文提出的方法在FB15K上的表現優于其它模型。TransE、TransH和TransR模型的訓練時間分別約為5分鐘、30分鐘和3小時,本文提出的方法計算復雜度相對較低,TransC需要大約55分鐘的訓練時間。

圖4 不同模型的三元組分類精度

圖5 TransH和TransC若干關系的Hits@10值
本文針對傳統的知識表示方法存在的不足,提出一種面向多語義關系的知識圖譜表示模型TransC。首先,本文考慮的關系存在多語義性的情況,對于不同的語義建立相應的云模型,得到最能夠表達該語義的坐標值;然后引入不確定性的思想,對每個關系的確定程度進行定量,并帶入到最終的評分函數中。實驗結果表明,TransC在多項性能上都優于其它模型。
本文所做工作僅刻畫了靜態的知識信息,在現實世界中,知識往往帶有時間標簽的,且會隨著時間發生顯著變化。這樣就導致了信息的遺漏和損失,會對后續的知識提取和挖掘產生負面影響。因此,一個更完善的知識圖譜需要充分體現時間的作用。接下來的工作方向主要是在保證原三元組基本信息不變的情況下,引入第四維參量——時間,探究如何通過數學手段刻畫知識演進具有的典型特征,并設計算法來對新產生的知識進行預測。