姜曉全
(遼東學(xué)院 信息工程學(xué)院,遼寧 丹東 118003)
知識表示學(xué)習(xí)是將知識圖譜中的實體和關(guān)系轉(zhuǎn)化為一種低維稠密的向量表示形式,這種向量的表示形式本身具有強大的語義,可以被直接應(yīng)用到其他任務(wù)中[1-4]。目前常見的知識表示學(xué)習(xí)模型主要基于“翻譯”模型,包括TransE[5]模型及在此基礎(chǔ)上演化而來的TransR[6]、TransH[7]和TransD[8]等模型。這一類模型的核心思想是將知識圖譜中的實體和關(guān)系抽象成一個三元組(E1,R,E2),通過關(guān)系R將E1翻譯成E2,即E2=E1+R,并通過訓(xùn)練樣本不斷調(diào)整E1、E2和R的表示向量,使上述等式盡可能成立。但這類模型每次只能針對某一特定的三元組進(jìn)行訓(xùn)練,而忽略了知識圖譜中其他實體和關(guān)系對三元組中實體和關(guān)系的影響,進(jìn)而導(dǎo)致模型訓(xùn)練得到的實體和關(guān)系的表示向量語義不夠充分,影響它在實際應(yīng)用中的效果。
為解決上述問題,知識表示學(xué)習(xí)模型借鑒網(wǎng)絡(luò)表示學(xué)習(xí)理論,通過設(shè)計隨機(jī)游走算法對網(wǎng)絡(luò)節(jié)點進(jìn)行采樣并形成序列樣本,再利用Word2Vec等神經(jīng)網(wǎng)絡(luò)模型對序列樣本進(jìn)行訓(xùn)練學(xué)習(xí),從而得到網(wǎng)絡(luò)節(jié)點的表示向量[9-11]。這種方法充分考慮了網(wǎng)絡(luò)結(jié)構(gòu)對表示學(xué)習(xí)過程的影響,可有效提升表示向量的語義效果。為此,本研究基于隨機(jī)游走和長短期記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)設(shè)計了一種知識表示學(xué)習(xí)模型。
1.1.1 知識圖譜網(wǎng)絡(luò)的重構(gòu)
本文所建模型首先需要對知識圖譜網(wǎng)絡(luò)進(jìn)行重構(gòu),目的是在不破壞原有網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上將關(guān)系由邊轉(zhuǎn)化為節(jié)點,使重構(gòu)后的知識圖譜網(wǎng)絡(luò)更加接近一般網(wǎng)絡(luò)的結(jié)構(gòu)。重構(gòu)過程如圖1所示。
1.1.2 面向重構(gòu)后的知識圖譜網(wǎng)絡(luò)的隨機(jī)游走策略
由于重構(gòu)后的知識圖譜網(wǎng)絡(luò)包含實體和關(guān)系2種節(jié)點,并具有不同的網(wǎng)絡(luò)結(jié)構(gòu)屬性,因此,本文設(shè)計2種隨機(jī)游走策略。
1)當(dāng)前節(jié)點為實體節(jié)點的隨機(jī)游走策略(圖2)
由圖2可知,當(dāng)前節(jié)點為實體節(jié)點S1,它的下一個節(jié)點可能為下述3種情況:
a)回到上一個關(guān)系節(jié)點,即實體節(jié)點S1回到關(guān)系節(jié)點R2;
b)選擇另一個關(guān)系節(jié)點,即實體節(jié)點S1到關(guān)系節(jié)點R1;
c)選擇另一個與之連接的實體節(jié)點,即實體節(jié)點S1到實體節(jié)點S2。
第1種情況在知識圖譜網(wǎng)絡(luò)的隨機(jī)游走中是不允許的,因為這種游走沒有任何實際意義,節(jié)點轉(zhuǎn)移參數(shù)代表隨機(jī)游走中從當(dāng)前節(jié)點跳轉(zhuǎn)到某一個節(jié)點的概率,所以節(jié)點轉(zhuǎn)移參數(shù)α設(shè)置為0;第2種情況為理想情況,可將α設(shè)置為1;第3種情況并不是一種理想的情況,隨機(jī)游走生成的節(jié)點序列最好是“實體-關(guān)系-實體”的形式,所以將α設(shè)置為1/q,其中q為超參數(shù),可自行設(shè)定。本文將q設(shè)置為一個較大的值,讓這種情況出現(xiàn)的概率減小。
第1種隨機(jī)游走策略aq(t,x)的數(shù)學(xué)表達(dá)式為
(2)
式中:t為當(dāng)前節(jié)點的上一個節(jié)點,x為當(dāng)前節(jié)點可以選擇的下一個節(jié)點,dtx為從上一個節(jié)點t到下一個節(jié)點x的最短距離,dtx的取值只可能是{0,1,2}。
2)當(dāng)前節(jié)點為關(guān)系節(jié)點的隨機(jī)游走策略(圖3)
由圖3可知,當(dāng)前節(jié)點為關(guān)系節(jié)點R。它的下一個節(jié)點可能為下述3種情況:
a)回到上一個實體節(jié)點,即關(guān)系節(jié)點R回到實體節(jié)點S1;
b)選擇一個與上一個實體節(jié)點存在關(guān)系的實體節(jié)點,即關(guān)系節(jié)點R到實體節(jié)點S2;
c)選擇一個與上一個實體節(jié)點不存在關(guān)系的實體節(jié)點,即關(guān)系節(jié)點R到實體節(jié)點S3。
第1種情況是不允許的,因為這種隨機(jī)游走沒有任何實際意義,所以α設(shè)置為0;第2種情況是理想情況,因而α設(shè)置為1;第3種情況并不是一種理想的情況,因為當(dāng)前關(guān)系節(jié)點的上一個和下一個實體節(jié)點不存在連接關(guān)系,這樣形成的“實體-關(guān)系-實體”序列沒有意義,所以將α設(shè)置為1/p,其中p為超參數(shù),可自行設(shè)定,本文將p設(shè)置為一個較大的值,讓這種情況出現(xiàn)的概率減小。
第2種隨機(jī)游走策略αq(t,x)的數(shù)學(xué)表達(dá)式為
(3)
1.1.3 基于MPI的節(jié)點采樣優(yōu)化算法的實現(xiàn)
本文針對知識圖譜網(wǎng)絡(luò)的特殊性,使用MPI并行計算框架,根據(jù)節(jié)點的度數(shù)動態(tài)設(shè)置節(jié)點采樣次數(shù),優(yōu)化隨機(jī)游走效果。該算法不僅可以增加知識圖譜網(wǎng)絡(luò)中影響力大的節(jié)點的采樣次數(shù),還具有高并行性。采樣優(yōu)化算法步驟如下:
1)使用MPI框架在機(jī)器上開啟多個進(jìn)程。
2)每個進(jìn)程先計算網(wǎng)絡(luò)中每個節(jié)點的度數(shù),并找到最大度數(shù)。
3)每個進(jìn)程針對不同度數(shù)的節(jié)點進(jìn)行下列2種不同的遍歷:
a)如果該節(jié)點度數(shù)大于設(shè)定的閾值,則按照最大遍歷次數(shù)進(jìn)行遍歷;
b)如果該節(jié)點度數(shù)小于設(shè)定的閾值,則按照比例計算需要遍歷的次數(shù)并進(jìn)行遍歷。
4)所有進(jìn)程完成采樣工作后匯總形成一組序列樣本。
優(yōu)化算法的數(shù)學(xué)表達(dá)式為
(4)
式中:Nx為x節(jié)點的采樣次數(shù),Nmax為設(shè)定的最大采樣次數(shù),Dx為x節(jié)點的度數(shù),Dmax為網(wǎng)絡(luò)中最大的節(jié)點度數(shù),T為度數(shù)的閾值。
本文使用單向LSTM和雙向LSTM對序列樣本進(jìn)行訓(xùn)練。相比于單向LSTM,雙向LSTM更適合知識表示學(xué)習(xí),因為知識圖譜中的實體和關(guān)系并不遵從某個單一方向,這與一般的序列學(xué)習(xí)任務(wù)不同,雙向LSTM可以更好地對實體和關(guān)系的序列樣本進(jìn)行建模,從而訓(xùn)練得到語義更充分的表示向量。單向LSTM和雙向LSTM訓(xùn)練過程如圖4和圖5所示。
由圖4可知,單向LSTM只包含一個神經(jīng)網(wǎng)絡(luò),訓(xùn)練是從序列樣本中的第一個節(jié)點開始,到最后一個節(jié)點結(jié)束。
由圖5可知,雙向LSTM包含2個神經(jīng)網(wǎng)絡(luò):一個網(wǎng)絡(luò)訓(xùn)練時一般從序列樣本第一個節(jié)點開始到最后一個節(jié)點結(jié)束;另一個網(wǎng)絡(luò)訓(xùn)練時從最后一個節(jié)點開始到第一個節(jié)點結(jié)束。
本文研究重點關(guān)注表示向量語義的充分性,因而可將知識圖譜中某個實體(或關(guān)系)的實體相似(或關(guān)系相似)的召回率R作為評價指標(biāo),R的計算公式為
(5)
式中:N為排序后選擇節(jié)點的總數(shù)量;Nsim為在N個節(jié)點中與當(dāng)前節(jié)點具備相似性的節(jié)點的數(shù)量,N的取值可根據(jù)實際需要進(jìn)行設(shè)定。
在計算召回率時,首先計算當(dāng)前實體節(jié)點與所有實體節(jié)點(或當(dāng)前關(guān)系節(jié)點和所有關(guān)系節(jié)點)表示向量的空間距離,然后按照距離數(shù)值大小進(jìn)行排序并計算前N個節(jié)點中與當(dāng)前節(jié)點具備相似性的節(jié)點所占的比例。例如,在排名前N個節(jié)點中有n個與當(dāng)前節(jié)點具備相似性的節(jié)點,則當(dāng)前節(jié)點的相似節(jié)點的召回率為n/N。
本文選擇FB15K(1)FB15K數(shù)據(jù)集地址:https:∥paperswithcode.com/dataset/fb15k。和WN18(2)WN18數(shù)據(jù)集地址:https:∥paperswithcode.com/dataset/wn18。2個知識圖譜作為實驗的數(shù)據(jù)集。其中,F(xiàn)B15K是Google公司發(fā)布的知識圖譜集,約包含上萬個實體和上千個關(guān)系;WN18是WordNet發(fā)布的知識圖譜集,約包含上千個實體和18個關(guān)系。
本文主要驗證本文所提模型相較于TransE基準(zhǔn)模型訓(xùn)練得到的表示向量是否具備更充分的語義并能有效提升訓(xùn)練的效率。
2.3.1 模型表示向量語義充分性測試
在FB15K和WN18 2個數(shù)據(jù)集上進(jìn)行表示向量語義充分性測試,超參數(shù)p和q分別設(shè)置為10和100,召回率測試中選取排序后節(jié)點數(shù)量N設(shè)置為10,召回率測試結(jié)果如圖6和圖7所示。
由圖6和圖7可知:無論是單向LSTM還是雙向LSTM均取得了比基準(zhǔn)模型TransE更好的效果;雙向LSTM訓(xùn)練得到的表示向量相比于單向LSTM訓(xùn)練得到的表示向量具有更加充分的語義,這與本文之前的結(jié)論一致;應(yīng)用本文所提算法,單向LSTM和雙向LSTM的訓(xùn)練效果均得到了一定提升。
2.3.2 模型訓(xùn)練效率測試
本文在FB15K和WN18 2個數(shù)據(jù)集上基于MPI計算框架對單進(jìn)程訓(xùn)練和多進(jìn)程(4個進(jìn)程)并行訓(xùn)練進(jìn)行測試實驗,記錄訓(xùn)練所需時間,實驗結(jié)果見表3。
由表1可知,基于MPI計算框架實現(xiàn)的并行訓(xùn)練方法相比于普通的單進(jìn)程訓(xùn)練可極大地提升模型的訓(xùn)練效率。
表1 單進(jìn)程訓(xùn)練和多進(jìn)程并行訓(xùn)練實驗結(jié)果 單位:s
本文提出了一種基于隨機(jī)游走和長短期記憶神經(jīng)網(wǎng)絡(luò)的知識表示學(xué)習(xí)模型,該模型相比于目前常見的知識表示學(xué)習(xí)模型更加關(guān)注實體和關(guān)系節(jié)點在網(wǎng)絡(luò)中所在位置。實驗結(jié)果表明,本文提出的模型不僅可以訓(xùn)練得到語義更充分的表示向量,并可有效提升模型訓(xùn)練的效率。