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