本發(fā)明屬于知識圖譜技術(shù)領(lǐng)域,特別地涉及一種基于代價敏感學習的同時對知識庫、知識圖譜中的實體與關(guān)系同時嵌入到低維空間的聯(lián)合知識嵌入方法。
背景技術(shù):
在大數(shù)據(jù)時代,知識庫中的知識表達和推理是十分關(guān)鍵同時又很有挑戰(zhàn)性的工作。一般來說,知識庫的基本組成是有名稱、有確定含義的一元組單位,稱為實體;而其語義結(jié)構(gòu)則由實體之間的高階交互單位來表達,稱為關(guān)系。作為時下被經(jīng)常使用的有力工具,知識嵌入在低維空間上建立了統(tǒng)計模型以量化表達和評估這些單位和它們之間的關(guān)系。
為了學習有效的嵌入結(jié)果,語義相似的單元應該在嵌入空間內(nèi)彼此接近。未達成這一目的,最重要的參考因素是知識庫中的上下文信息,如圖1所示。在實體與關(guān)系兩個層面上,都存在重要的上下文信息:在實體層面,上下文指的是連接實體的各種關(guān)聯(lián)信息,這些信息決定了實體之間的相關(guān)結(jié)構(gòu),對于知識表達而言非常重要;在關(guān)系層面,上下文指的是各種關(guān)系之間的關(guān)聯(lián),相對于實體間的上下文而言,這種上下文更高級,主要是對知識推理更有幫助。知識嵌入應當學習一個模型,這個模型需要能同時考慮實體和關(guān)系層面的上下文信息,在使用向量表達知識庫的同時有這保留知識庫中主要的上下文信息的能力。
大部分相關(guān)工作主要關(guān)注實體層面的嵌入,而關(guān)系往往沒有被顯性地嵌入,導致了關(guān)系層面的高階信息很難被利用到。事實上,關(guān)系層面的嵌入同樣很重要,因為關(guān)系之間蘊含著豐富的語義信息,關(guān)系之間的相互關(guān)聯(lián)反映著知識庫中的內(nèi)在拓撲結(jié)構(gòu)。因此,尋找合適的嵌入空間,將知識庫中的各種關(guān)系嵌入到其中以度量它們之間的結(jié)構(gòu)信息是非常重要和有幫助的,這就是關(guān)系嵌入。
一般來說,實體嵌入和關(guān)系嵌入是知識嵌入的兩個重要組成部分。知識庫中的關(guān)聯(lián)事實,也就是各條知識,是同時由實體和關(guān)系決定的。只有妥善地同時嵌入實體和關(guān)系,才能完整有效地表達知識庫里的信息,因為知識庫中的實體與關(guān)系在語義上也是高度相關(guān)的。在嵌入過程中,實體被關(guān)系所約束,而關(guān)系被實體所支撐。因而,實體嵌入和關(guān)系嵌入是相互關(guān)聯(lián)、相互補充的。因此,知識嵌入應該是一個聯(lián)合優(yōu)化問題,通過鏈接實體嵌入和關(guān)系預測兩個任務提出相應的嵌入模型。
技術(shù)實現(xiàn)要素:
為解決上述問題,本發(fā)明引入了代價敏感學習框架來進行聯(lián)合知識嵌入。代價敏感的學習方法是機器學習領(lǐng)域中的一種常用方法,它主要考慮在訓練過程中,當不同類型的損失產(chǎn)生導致不同的懲罰力度時如何訓模型。在代價敏感學習框架中,各類損失項的權(quán)重不是人為確定的,而是在訓練過程中通過自適應的方法進行更新,在學習模型的同時學習到合適的損失項權(quán)重。代價敏感學習框架可以應用在多種常用的有監(jiān)督學習方法中,如決策樹、boosting、支持向量機等,在特定應用場景下有很好的效果。
為實現(xiàn)本發(fā)明的技術(shù)目的,本發(fā)明采用的技術(shù)方案為:
一種基于代價敏感學習的聯(lián)合知識嵌入方法,包括以下步驟:
S1,通過知識庫建立三元組組成的訓練集;
S2,建立基于實體、關(guān)系嵌入向量的三元組評分函數(shù),在只考慮實體層面上下文關(guān)系的條件下,建立基于最大邊緣的優(yōu)化目標;
S3,建立代價敏感聯(lián)合嵌入模型。
進一步的,步驟S1具體包括:
S11,抽取知識庫中所有的實體,建立實體集合E={e1,e2,…,en};
S12,抽取知識庫中所有的實體,建立關(guān)系集合R={r1,r2,…,rm};
S13,對每一條關(guān)聯(lián)事實,在實體集合E中尋找到關(guān)聯(lián)事實的頭實體與尾實體,在關(guān)系集合R中尋找到關(guān)聯(lián)事實中的關(guān)系,建立三元組(ei1,ri1,ei2);
S14,通過抽取知識庫中的所有關(guān)聯(lián)事實,建立訓練集
T={(e11,r11,e12),(e21,r21,e22),…,(et1,rt1,et2)}。
進一步的,步驟S2具體包括:
S21,規(guī)定實體嵌入空間和關(guān)系嵌入空間擁有相同的維度,建立基于實體、關(guān)系嵌入向量的三元組評分函數(shù)
其中,e1,r,e2分別是e1,r,e2的嵌入向量,diag(r)代表一個對角元素組成的向量恰為r的對角矩陣,公式中所有的向量都是列向量;
S22,建立基于邊緣的排序模型,其訓練目標為:
其中,C為用于調(diào)節(jié)關(guān)系嵌入向量的正則項權(quán)重的超參數(shù),γ為邊緣寬度,(e1,r′,e2)是一個不存在于知識庫中的三元組;上述目標函數(shù)第一項是訓練集中正樣本與負樣本所生成的損失函數(shù),第二項則是關(guān)系嵌入向量作為參數(shù)在模型中的正則化項。
進一步的,步驟S3具體包括:
S31,建立代價敏感權(quán)重矩陣W,所述代價敏感權(quán)重矩陣W用于衡量每對關(guān)系之間同時出現(xiàn)的可能性,其中,W是一個維度與e和r相同的方陣,W中每一個元素都代表了一種關(guān)系出現(xiàn)在已有另一種關(guān)系的兩個實體之間的合理性;
S32,將代價敏感學習框架應用于公式2中;當計算三元組(e1,r,e2)∈T和所形成的損失時,加入一個權(quán)重Wrr′,其中,Wrr′即是代價敏感權(quán)重矩陣中代表r和r′關(guān)系的元素;此時,訓練目標為:
subject to:S(e1,r,e2)-S(e1,r',e2)≥γ-ξtrr',
ξtrr'≥0,Wrr'≥0,∑Wrr'=δ,δ>0
優(yōu)選的,公式3求解過程中,采用小批量采樣的方法對優(yōu)化過程進行加速。
本發(fā)明還提供了上述的基于代價敏感學習的聯(lián)合知識嵌入方法在知識圖譜或知識庫的可視化上的應用,包括如下步驟:
步驟1,通過公式1得到所有實體與關(guān)系嵌入值,即所有的e和r;
步驟2,分別在實體空間和關(guān)系空間內(nèi)對e和r所表示的點進行t-SNE降維;
步驟3,將步驟2中的降維結(jié)果進行歸一化,在2維平面上可視化。
本發(fā)明還提供了上述的基于代價敏感學習的聯(lián)合知識嵌入方法在問答系統(tǒng)的構(gòu)建上的應用,包括如下步驟:
步驟1,通過公式1得到所有實體與關(guān)系嵌入值,即所有的e和r;
步驟2,將需要解答的問題轉(zhuǎn)換為已知(e1,r,e2)中的2個,預測第3個元素的形式;
步驟3,對與給定的問題,固定(e1,r,e2)中已知的2個,將知識庫中所有可能的元素都當作備選答案,構(gòu)成一組答案集合;
步驟4,對答案集合中的的所有三元組,通過公式1進行評分,并將得分進行排序.
步驟5,選取排序結(jié)果中最靠前的作為結(jié)果輸出。
進一步的,上述的基于代價敏感學習的聯(lián)合知識嵌入方法在問答系統(tǒng)的構(gòu)建上的應用中,
當問題被轉(zhuǎn)化為已知e1,r預測e2的問題時,答案集合為{(e1,r,e*)|e*∈E};
當問題被轉(zhuǎn)化為已知e1,e2預測r的問題,答案集合為{(e1,r*,e2)|r*∈R}。
本發(fā)明定義了實體-關(guān)系-實體打分函數(shù)以評估每條關(guān)聯(lián)事實并在代價敏感學習框架中優(yōu)化實體嵌入向量和關(guān)系嵌入向量。并且,為了更好地利用關(guān)系之間的上下文信息,本發(fā)明用最大邊界方法建立了關(guān)系權(quán)重相關(guān)的評價函數(shù)。該函數(shù)在反映實體間的拓撲信息的同時,通過代價敏感框架反映了關(guān)系間的拓撲信息,從而達到了對實體嵌入向量和關(guān)系嵌入向量的聯(lián)合優(yōu)化。因而,本發(fā)明利用了知識庫中各層次的上下文信息,從而可以學習到在語義上更有意義和代表性的嵌入結(jié)果。
本發(fā)明實施例所提出的聯(lián)合知識嵌入方法,相比于目前的知識嵌入方法,具有以下有益效果:
1)本發(fā)明提出的方法不僅對知識庫中的實體進行了嵌入,而且對知識庫中的關(guān)系也進行了嵌入。該方法將實體與關(guān)系嵌入不同的低維空間,使得兩種不同的元素分別在對應的嵌入空間中滿足各自的語義結(jié)構(gòu),更好地反映了知識庫、知識圖譜的內(nèi)在拓撲結(jié)構(gòu)。
2)本發(fā)明提出的方法有效地利用了知識庫中各個層次的上下文信息,不僅包括直觀的實體層面的上下文信息,也包括現(xiàn)有方法中通常忽略的關(guān)系層面的高階上下文信息,使得嵌入結(jié)果更加復合知識庫、知識圖譜的實際結(jié)構(gòu)。
3)本發(fā)明提出的方法將豐富了知識庫未能覆蓋的潛在正確的三元組。與現(xiàn)有的未考慮高階上下文信息的嵌入方法相比,代價敏感函數(shù)可以識別出可能與正確的關(guān)系同時出現(xiàn)的那些關(guān)系,從而降低了把一個可能正確的三元組錯判為完全不正確的風險。
5)本發(fā)明的嵌入結(jié)果應用于知識庫、知識圖譜的可視化表達時,所表達出的各元素分布相對于現(xiàn)存的嵌入方法能表達出更強的語義信息。
6)本發(fā)明的嵌入結(jié)果與評分函數(shù)應用于問答系統(tǒng)時,如果需要預測知識庫中未曾出現(xiàn)過的關(guān)系結(jié)構(gòu),準確率更高,且具有更強的魯棒性。
附圖說明
圖1為本發(fā)明基于代價敏感學習的聯(lián)合知識嵌入方法實施例的流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
相反,本發(fā)明涵蓋任何由權(quán)利要求定義的在本發(fā)明的精髓和范圍上做的替代、修改、等效方法以及方案。進一步,為了使公眾對本發(fā)明有更好的了解,在下文對本發(fā)明的細節(jié)描述中,詳盡描述了一些特定的細節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細節(jié)部分的描述也可以完全理解本發(fā)明。
參考圖1,所示為本發(fā)明實施例的基于代價敏感學習的聯(lián)合知識嵌入方法的流程圖,包括以下步驟:
步驟S1,通過知識庫建立三元組組成的訓練集,具體包括以下子步驟:
步驟S11,抽取知識庫中所有的實體,建立實體集合E={e1,e2,…,en}.
步驟S12,抽取知識庫中所有的實體,建立關(guān)系集合R={r1,r2,…,rm}.
步驟S13,對每一條關(guān)聯(lián)事實,在E中尋找到關(guān)聯(lián)事實的頭實體與尾實體,在R中尋找到關(guān)聯(lián)事實中的關(guān)系,建立三元組(ei1,ri1,ei2)。通過抽取知識庫中的所有關(guān)聯(lián)事實,建立訓練集T={(e11,r11,e12),(e21,r21,e22),…,(et1,rt1,et2)}.
步驟S2,建立基于實體、關(guān)系嵌入向量的三元組評分函數(shù),即在只考慮實體層面上下文關(guān)系的條件下,建立基本的優(yōu)化目標,具體包括以下子步驟:
步驟S21,假設(shè)已知各實體與各關(guān)系的嵌入向量情況下,建立評估各條三元組的可能性的評分函數(shù)。為此,我們定義了評估三元組(e1,r,e2)合理性的嵌入向量評分函數(shù)S(e1,r,e2),其中e1,r,e2分別是e1,r,e2的嵌入向量。為了連接實體嵌入空間和關(guān)系嵌入空間,我們規(guī)定這兩個空間擁有相同的維度,并且將評分函數(shù)定義為三元組中三個元素的嵌入向量的一個向量積:該向量積被定義為兩個實體嵌入向量的加權(quán)內(nèi)積,關(guān)系的嵌入向量作為權(quán)重。這樣,評分函數(shù)將被寫為以下形式:
其中r代表關(guān)系嵌入向量,而diag(r)代表一個對角元素組成的向量恰為r的對角矩陣。公式中所有的向量都是列向量。
步驟S22,建立基于最大邊緣的優(yōu)化目標。為了盡量滿足訓練集中已有的三元組,對于兩個給定的實體,正確的關(guān)系所組成的三元組的得分應該比所有不正確的關(guān)系都高。也就是:S(e1,r,e2)>S(e1,r′,e2),其中(e1,r′,e2)是一個不存在于知識庫中的三元組。為了提高嵌入效果,我們在優(yōu)化時引入了邊緣寬度γ,令優(yōu)化結(jié)果滿足S(e1,r,e2)-S(e1,r′,e2)≥γ以激勵正確和不正確三元組的可判別性。這樣,我們建立了一個基于邊緣的排序模型,其訓練目標為:
其中E和R分別是訓練集中包含的實體與關(guān)系的集合,C是用來調(diào)節(jié)關(guān)系嵌入向量的正則項權(quán)重的超參數(shù)。該目標函數(shù)第一項是訓練集中正樣本與負樣本所生成的損失函數(shù),第二項則是關(guān)系嵌入向量作為參數(shù)在模型中的正則化項。在優(yōu)化過程中,實體嵌入向量被歸一化為單位向量,所以優(yōu)化目標中沒有關(guān)于實體嵌入向量的正則項。
步驟S3,建立代價敏感聯(lián)合嵌入模型,具體包括以下子步驟:
步驟S31,建立代價敏感權(quán)重矩陣W來衡量每對關(guān)系之間同時出現(xiàn)的可能性,以利用關(guān)系之間的高階上下文信息。W是一個方陣,其維度與e和r相同。W中每一個元素都代表了一種關(guān)系出現(xiàn)在已有另一種關(guān)系的兩個實體之間的合理性。
步驟32,將代價敏感學習框架應用于公式2中。當計算三元組(e1,r,e2)∈T和所形成的損失時,我們?yōu)槠浼尤胍粋€權(quán)重Wrr′。其中,Wrr′即是代價敏感權(quán)重矩陣中代表r和r′關(guān)系的元素。如果r和r′經(jīng)常同時出現(xiàn),Wrr′的值應應該比較小。否則,Wrr′應該是一個比較大的值。通過加入代價敏感學習系統(tǒng),優(yōu)化目標被改寫成如下形式:
subject to:S(e1,r,e2)-S(e1,r',e2)≥γ-ξtrr',
ξtrr'≥0,Wrr'≥0,∑Wrr'=δ,δ>0
與公式2相比,該目標函數(shù)的第一項損失函數(shù)加入了代價敏感學習系統(tǒng),利用了知識庫中的高階信息,并且豐富了知識庫未能覆蓋的潛在正確的三元組。與未考慮高階上下文信息的目標優(yōu)化函數(shù)相比,代價敏感函數(shù)可以識別出可能與正確的關(guān)系同時出現(xiàn)的那些關(guān)系,從而降低了把一個可能正確的三元組錯判為完全不正確的風險。
最后,公式3的優(yōu)化求解采用了目前非常成熟的技術(shù)隨機梯度下降法(stochastic gradient descent method)。求解過程中,利用小批量采樣的方法,可以有效地對優(yōu)化過程進行加速。
上述的方法應用于知識圖譜、知識庫的可視化及問答系統(tǒng)的構(gòu)建時,其應用方式如下:
應用1,知識圖譜、知識庫的可視化,其步驟如下:
步驟1,通過1、所表達的方法得到所有實體與關(guān)系嵌入值,即所有的e和r;
步驟2,分別在實體空間和關(guān)系空間內(nèi)對e和r所表示的點進行t-SNE降維;
步驟3,將步驟2中的降維結(jié)果進行歸一化,在2維平面上可視化。
應用2,問答系統(tǒng)的構(gòu)建,其應用方式如下:
步驟1,通過1、所表達的方法得到所有實體與關(guān)系嵌入值,即所有的e和r;
步驟2,將需要解答的問題轉(zhuǎn)換為已知(e1,r,e2)中的2個,預測第3個元素的形式。舉例來說,問A的B是什么時,將A作為e1,將B作為r,問題被轉(zhuǎn)化為已知e1,r預測e2的問題;問A與B的關(guān)系是什么時,將A作為e1,B作為e2,問題被轉(zhuǎn)化為已知e1,e2預測r的問題;
步驟3,對與給定的問題,固定(e1,r,e2)中已知的2個,將知識庫中所有可能的元素都當作備選答案,構(gòu)成一組答案集合。如問題被轉(zhuǎn)化為已知e1,r預測e2的問題時,答案集合為{(e1,r,e*)|e*∈E};問題被轉(zhuǎn)化為已知e1,e2預測r的問題,答案集合為{(e1,r*,e2)|r*∈R};
步驟4,對答案集合中的的所有三元組,通過公式1進行評分,并將得分進行排序;
步驟5,選取排序結(jié)果中最靠前的作為結(jié)果輸出。
綜上所述,本發(fā)明實施例首先基于知識庫或者知識圖譜的內(nèi)容建立實體、關(guān)系集合,并基于關(guān)聯(lián)事實建立三元組集合。在得到這些基本數(shù)據(jù)之后,定義基于實體、關(guān)系嵌入向量的評分函數(shù),并基于此評分函數(shù)建立基于邊緣的優(yōu)化目標。最后,將代價敏感學習系統(tǒng)融合到到該優(yōu)化目標中,建立代價敏感的綜合損失函數(shù)作為優(yōu)化目標并優(yōu)化求解。
通過以上技術(shù)方案,本發(fā)明實施例在基于代價敏感學習框架的基礎(chǔ)上展開了同時嵌入知識庫中的實體與關(guān)系的聯(lián)合知識嵌入方法。本發(fā)明可以同時和有效地利用各個層次上下文信息,去完成知識庫中元素的嵌入工作,并且豐富了知識庫未能覆蓋的潛在正確的三元組,因而具有更高的魯棒性。在應用中,本方法對于知識庫、知識圖譜的可視化結(jié)果,相對于現(xiàn)有其他方法,更能反映出知識庫、知識圖譜中各元素的語義結(jié)構(gòu);在應用于問答系統(tǒng)時,在預測知識庫中未曾出現(xiàn)過的關(guān)系結(jié)構(gòu)時,準確率更高,且具有更強的魯棒性。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。