繆 琦,楊昕悅
(遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)
如今,知識庫已經(jīng)成為各種研究和應用越來越重要的和常用的數(shù)據(jù)源,如語義搜索、實體鏈接、問答系統(tǒng)和自然語言處理等。為了使龐大數(shù)據(jù)庫更易于操作,研究者提出了一種新的研究方向——知識庫嵌入。 關鍵思想是嵌入 KB(Knowledge Base)組件,包括將實體和關系轉化為連續(xù)的向量空間,從而簡化操作,同時保留 KB 原有的結構。 實體和關系嵌入能進一步應用于各種任務中,如KB 補全、關系提取、實體分類和實體解析。 雖然龐大的知識庫中有數(shù)以億計的事實,但是在信息爆炸的時代遠遠不夠。 大部分的研究工作聚焦知識庫對缺失邊的擴充,很少有人考慮到其中過時的、不正確的信息[1-3]。許多擴充知識庫研究將事實投射到k 維向量空間,通過聚類來找到關系的相關性,很難實現(xiàn)高效有效處理。
知識庫錯誤的檢測仍然是一個艱巨的挑戰(zhàn):(1)知識庫的知識具有離散性,因此通過傳統(tǒng)嵌入方法[4-6]難以在知識庫中進行廣泛推理和檢測;(2)知識庫中的關系幾乎沒有上下文可以捕獲其語義的相關性,所以大部分著作都是對實體和實體進行研究,忽略了關系和關系之間的相關性;(3)對于糾錯大部分是建立在實體-實體或者建立在字符成本上的。
為了解決上述挑戰(zhàn),提出嵌入一個新穎簡單的關系敏感方法(NSIL),該函數(shù)由 RSEA[7]方法的思想啟發(fā)產(chǎn)生,但是性能更高。 該函數(shù)計算了主體與客體之間的相關性,能在大規(guī)模的知識庫中準確地對三元組進行識別和錯誤檢查,并且對糾正三元組的錯誤具有較高精準性。
圖1 中,對于關系“家人近期病史”,可以對應的不同主體是離散的,主體可以是“市民 A”、“市民B”等,客體也是離散的,可以是“SARS-COV 病毒”、“COVID-19 病毒”等,彼此之間沒有必然的關系。但是對于關系對而言,它們會產(chǎn)生局部相交,如同對于三元組(“市民 A”,“患病”,“COVID-19 病毒(Corona Virus Disease 2019)”)和(“市民 A”,“家人近期病史”,“COVID-19 病毒”)之間,它們不僅有相同的主體集合(“市民 A”)和客體集合(“COVID-19 病毒”),而且有與“家人近期病史”和“患病”的主體和客體都有內(nèi)在直接關系的共同實體“市民C”,即“市民 A”的“客體”,“COVID-19 病毒”的“主體”。于是認為關系“家人近期病史”和“患病”相關。 從關系的主客體集合和與主客體關聯(lián)的實體集出發(fā),使得發(fā)現(xiàn)關系之間的相關性具有可能。就像上文中說的那樣,如果在一定程度上認定“家人近期病史”≈“患病”,那么對于三元組(“市民 B”,“家人近期病史”,“SARS-COV 病毒(SARS-associated coronavirus)”),可以得出市民 B 最可能患病的事實是SARS-COV 病毒。 如果認定“市民 B 有家人近期病史是 SARS-COV 病毒”, 如果給了需要判定的三元組是(“市民 B”,“患病”,“COVID-19 病 毒 ”),那 么 會 判斷它是錯的。 如果它的客體需要糾正,它最有可能被糾正為“SARS-COV 病毒”。
本文提出了一種新的關系敏感函數(shù)NSIL,該方法從關系的角度出發(fā),能有效識別關系庫中關系的相關性,該關系在多對多、一對一、一對多、多對一的實體中具有不錯的識別效率。
近來,提出了許多知識庫嵌入技術來將離散知識圖編碼為連續(xù)向量空間。 首先介紹一些常用的符號 。知識庫中的事實三元組(h,r,t),即 (主 體 ,關系,客體)。 其對應關系的矢量表示表示為(h,r,t),分數(shù)函數(shù)f(h,t)對于屬于知識庫的正三元組將自動獲得較高的分數(shù),而對于負三元組[8]將自動生成較低的分數(shù)。
圖1
表1 為在相同的 k 維嵌入空間Rk×k中,得分函數(shù)、參數(shù)數(shù)量和時間復雜度的模型比較。
表1 模型比較
(1)TransE[9]:TransE 是基于實體和關系的分布式向量表示,由 Bordes 等人于 2013 年提出,受 word2vec啟發(fā),利用了詞向量的平移不變現(xiàn)象。例如:C(king)_C(queen)≈C(man)_C(woman)。 其中,C(w)就是 word2vec學習到的詞向量表示。 TransE 定義了一個距離函數(shù)d(h+r,t),它用來衡量 h+r 和 t 之間的距離。
(2)TransH[10]:為了解決TransE 在面對自反關系,以及多對一、一對多、多對多關系的不足,2014 年WANG Z 等[10]提出了 TransH 模型,其核心思想是對每一個關系定義一個超平面Wr和一個關系向量dr。 h⊥、t⊥h 是 h、t 在 Wr上的投影,這里要求正確的三元組需要滿足 hr+dr=tr。 這樣能夠使得同一個實體在不同關系中的意義不同,同時不同實體在同一關系中的意義也可以相同。
(3)TransR[11]:TransR 是 在 TranE的基礎上的改進,在數(shù)學上的描述看起來會更加直觀:對于每一類關系,不光有一個向量r 來描述它自身,還有一個映射矩陣Mr來描述這個關系所處的關系空間,即對于一個三元組(h,r,t),需要滿足 d(h,r,t)=TransR 等方法無法很好地解決非一對一關系,而且受限于知識圖譜的數(shù)據(jù)稀疏問題。
(4) 其他方法。 2019 年 9 月 由KIM S 提出一種基于概率的知識庫的新型檢測方法, 也是通過研究關系與關系之間的相關性來檢錯,其主要算法是通過計算兩個關系的共同前后節(jié)點關系和各個節(jié)點的前后關系來得到相關性的。 本文受該方法啟發(fā),但是準確率更高。
本節(jié)主要介紹知識庫的基本模型,給出問題定義和工作流程。
知識庫的常用表現(xiàn)形式是 RDF , 以(subject ,predicate,object)的三元組形式表示實體之間的許多復雜聯(lián)系。
正如前文介紹的那樣,知識庫中有很多過時的不正確的事實,但是大量的研究都在不斷發(fā)現(xiàn)知識庫中缺失的邊來填充缺失的成分而忽略了對錯誤事實的檢測。 因此,旨在利用關系(謂詞)之間的關聯(lián)性來對不斷擴充的知識庫進行準確的錯誤檢測。
定義 1關系關聯(lián):在給定知識庫 KB 中將各關系(謂詞)通過關系函數(shù)關聯(lián)到同一個組別。
定義 2檢測錯誤:在給定的知識庫 KB 中將找到最不可能的事實三元組 F,F(xiàn) 可能是放錯的邊或者客體或者主體。
定義3缺失三元組: 在給定的知識庫中對缺失的三元組(客體或者主體缺失)進行預測缺失的實體。
定義4可信三元組: 忽略落單的①謂詞②主體,客體。
如圖2 所示,工作流程主要有三個部分:給定KB,然后通過相關函數(shù)來測定各個三元組中關系的關聯(lián)程度,得到關系間相關性分值并進行劃分,最后給定一個知識庫,找到其中最不可能的事實三元組,即通過NSIL 判定的錯誤事實,對于判定的錯誤事實,進行預測三元組客體與主體。
圖2 NSIL 方法工作流程
在直覺上,如果兩個關系在知識庫中擁有更多關聯(lián)的共同節(jié)點(即與主體的關聯(lián)節(jié)點,與主體和客體關聯(lián)的節(jié)點),那么兩個關系相關性也越高。 在圖1 的例子中,對于關系“市民 C”和“患病”,它們都有共同的關聯(lián)性實例“市民 C”,即它們的主體都能夠通過另一個相同的實例“市民C”和它們的客體相連接,并且都擁有兩個相同的實例“市民 A”和“COVID-19 病毒”。 如果兩個關系之間共性越多,就越相信這兩個關系相關。
首先介紹符號:H(ri)表示 ri主體作為客體時其前置主體的集合,R(ri)表示對于事實三元組(hi,ri,ti)的事實三元組(hj,rj,tj)的集合,其中存在關系 rx、ry構成事實三元組(hi,rx,hj)、(tj,rx,ti),將該三元稱為伴生三元組。
兩個關系的關聯(lián)前置主體集合:
兩個關系共同的關聯(lián)的伴生三元組:
直接關聯(lián)集合是兩個聯(lián)系相同的直接關聯(lián)的主體-客體集合:
定義 SIL 分數(shù)函數(shù):
歸一化[12]:
對于圖1:如果加上三元組(“野味市場”,“逗留過”,“市民 A”),那么對于“家人近期病史”和“患病”就有共同的前置節(jié)點 S(“家人近期病史”,“患病”)={“野味市場”},共同伴生三元組為 I(“家人近期病史”,“患病”)={“市民 C”},直接關系集合為 L(“家人近期病史”,“患病”)={(“市民 A”,“COVID-19病毒”)},所以:而對于關系“同事”和“患病”,可見“家人近期病史”比“有同事”對于“患病”的相關性更高,對“患病”的影響力更大。 如果一個人家人近期病史為MERS病毒(Middle East Respiratory Syndrome Coronavirus),那么從他的家人近期病史出發(fā)推測出他很有可能患上了 MERS。
(1)數(shù)據(jù)集:在實驗中,采用了一個基準數(shù)據(jù)集,即從 Freebase[13]生成的 “FB15K”。 Freebase 是最大的知識庫之一,對應用戶構建的現(xiàn)實真實情況如表2所示。
表2 基準數(shù)據(jù)集的詳細信息
(2)評估:對于兩個數(shù)據(jù)集進行廣泛的錯誤檢測和預測糾錯。 錯誤檢測將用最新的算法與 NSIR 判斷三元組(h,r,t)對錯,比較其性能。 預測糾錯則會用缺失的三元組,即主體或者客體殘缺的三元組來進行預測缺失部分。
(1)指標:通過相關得分排名列表,匯總總體測試采用兩個評估指標:①Hits@10:排名前十位的實體中判斷正確實體的比例,如圖3 所示;②平均等級:正確實體的平均正確率。
圖3 Hits@10 各排名對應訓練集中準確率
(2)準確率認定:
①公式
表示實體排名前 N 個的平均準確率,R 是給定的與前N 個實體相關的三元組的總個數(shù), 破壞給定三元組的主體或客體,然后對各個三元組的真假性進行判斷,δ 是對三元組真假性判斷正確的個數(shù)。
②對于錯誤檢測的準確率,遵循Hits@10 原則,即N=10。
③對于預測糾錯的準確率,N 單獨地作為橫坐標,N=1~10。
5.3.1 錯誤檢測
對于每一個和其他三元組有糾集聯(lián)系的關系,都會有一個和其他關系的相關得分,得分低的會被劃分為獨立關系,得分高的為高相關性關系。 對于FB15K 的錯誤檢測的評估在圖4 中示出。 在FB15K上錯誤檢測性能最好的是NSIL, 準確率高達88.5%。 在實驗中發(fā)現(xiàn)隨著實體相關性排名的降低,預測精度出現(xiàn)不穩(wěn)定與下降,另外對于NSIL 得分有著高分段密集的缺點(見表3),這些問題會將在未來的研究內(nèi)進行克服與探討。
圖4 在數(shù)據(jù)集FB15K 上的實驗結果
表4 NSIL 得分 Hits@10
5.3.2 預測糾錯
在知識庫中,也會出現(xiàn)缺失主體或者客體的情況。于是對識別出來的殘缺相關實體進行主客體的預測,將預測值和真實值比較,從而判斷預測糾錯的性能。 從實體前兩名的平均情況、前三名的平均情況, 到前十名的平均準確率情況如圖4 所示。Hits@10 的準確率達到了 87.5%。 從實驗看出,雖然預測糾錯有很高的性能,但是其在非一對一關系問題上有著其局限性。
在本文中, 提出了一種關系敏感函數(shù) NSIL,用于知識庫的錯誤檢測,并且對知識庫殘缺三元組進行糾錯修復。 實驗表明,該模型不僅可以有效地對知識庫中的殘缺三元組進行預測糾錯,而且在大型知識庫Freebase 數(shù)據(jù)集上的錯誤檢測均優(yōu)于現(xiàn)模型。