本發(fā)明屬于自然語言處理及表示學(xué)習(xí)技術(shù)領(lǐng)域,更具體涉及一種網(wǎng)絡(luò)表示學(xué)習(xí)方法。
背景技術(shù):
真實(shí)世界中的實(shí)體,通常會(huì)互相交互,形成大規(guī)模的復(fù)雜網(wǎng)絡(luò)。近些年來,從社會(huì)學(xué)領(lǐng)域到計(jì)算科學(xué)領(lǐng)域,針對(duì)網(wǎng)絡(luò)分析的研究取得了巨大的進(jìn)步。傳統(tǒng)的網(wǎng)絡(luò)分析的技術(shù),會(huì)把每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)看作一個(gè)唯一的符號(hào)。這種表示方法通常面臨著稀疏性問題,對(duì)于許多任務(wù),例如節(jié)點(diǎn)分類、個(gè)性化推薦、異常檢測(cè)以及關(guān)系預(yù)測(cè),都極大的影響了最終的效果。
為了克服稀疏性問題,受到近些年來表示學(xué)習(xí)的啟發(fā),學(xué)者們提出了針對(duì)網(wǎng)絡(luò)分析的網(wǎng)絡(luò)表示學(xué)習(xí)的方法。網(wǎng)絡(luò)表示學(xué)習(xí)目的是將復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)信息,編碼到一個(gè)低維的語義空間中。通過網(wǎng)絡(luò)節(jié)點(diǎn)的這種連續(xù)實(shí)值的表示,來判斷節(jié)點(diǎn)之間的距離遠(yuǎn)近,有無關(guān)系等等。同時(shí),這種實(shí)值的表示,還可以作為特征向量,用作分類以及聚類等網(wǎng)絡(luò)分析任務(wù)上。
但是,對(duì)于真實(shí)世界中的網(wǎng)絡(luò),節(jié)點(diǎn)往往擁有其他的附加文本信息。例如,在twitter和weibo中,用戶一般會(huì)擁有自己生成的微博、個(gè)人簡(jiǎn)介等文本信息。這些節(jié)點(diǎn)的文本信息,對(duì)于節(jié)點(diǎn)的表示同樣起著關(guān)鍵性的作用。但是,目前已有的工作,并沒有將文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)信息同時(shí)考慮到表示向量的學(xué)習(xí)當(dāng)中。
綜上所述,對(duì)于網(wǎng)絡(luò)中的節(jié)點(diǎn),同時(shí)考慮網(wǎng)絡(luò)結(jié)構(gòu)信息以及文本信息來學(xué)習(xí),對(duì)于學(xué)習(xí)一個(gè)更好的節(jié)點(diǎn)表示是十分必要的。這種基于文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)信息的表示,可以充分利用已有信息,提高網(wǎng)絡(luò)節(jié)點(diǎn)表示的質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是如何結(jié)合網(wǎng)絡(luò)中節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)信息及文本信息,學(xué)習(xí)節(jié)點(diǎn)的高質(zhì)量的表示,以克服現(xiàn)有網(wǎng)絡(luò)表示方法未能充分利用節(jié)點(diǎn)的文本信息的問題。
為了解決上述技術(shù)問題,本發(fā)明提供一種網(wǎng)絡(luò)表示學(xué)習(xí)方法,所述方法包括以下步驟:
S1、建立基于網(wǎng)絡(luò)結(jié)構(gòu)的多個(gè)第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,其中每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)均對(duì)應(yīng)一個(gè)所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量;
S2、以網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息為基礎(chǔ),分別建立基于連續(xù)詞袋的第一文本編碼模型以及基于卷積神經(jīng)網(wǎng)絡(luò)的第二文本編碼模型,并利用所述第一文本編碼模型和所述第二文本編碼模型建立多個(gè)第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,其中每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)均對(duì)應(yīng)一個(gè)所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量;
S3、根據(jù)所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量構(gòu)造概率公式,并根據(jù)所述概率公式,利用梯度下降算法對(duì)所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量進(jìn)行優(yōu)化,確定利用所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量得到所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率與利用所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的網(wǎng)絡(luò)節(jié)點(diǎn)的概率的和。
優(yōu)選地,所述步驟S1包括以下步驟:
S11、構(gòu)建網(wǎng)絡(luò)信息數(shù)據(jù)集;所述數(shù)據(jù)集中包括各個(gè)節(jié)點(diǎn)的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息用于表示網(wǎng)絡(luò)結(jié)構(gòu);
S12、根據(jù)所述數(shù)據(jù)集,利用DeepWalk模型學(xué)習(xí)得到所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
優(yōu)選地,所述步驟S12包括以下步驟:
S121、在網(wǎng)絡(luò)中利用隨機(jī)游走構(gòu)建隨機(jī)游走序列;
S122、將所述隨機(jī)游走序列中的節(jié)點(diǎn)作為文本語料中的詞,將所述隨機(jī)游走序列作為文本語料中的句子,利用skip gram模型訓(xùn)練得到所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
優(yōu)選地,所述方法還包括以下步驟:
S4、將對(duì)應(yīng)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量連接形成目標(biāo)向量,利用所述目標(biāo)向量確定對(duì)應(yīng)網(wǎng)絡(luò)節(jié)點(diǎn)的類型,并將得到的網(wǎng)絡(luò)節(jié)點(diǎn)的類型與預(yù)先存儲(chǔ)的類型進(jìn)行比較,確定所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的準(zhǔn)確度,其中所述預(yù)先存儲(chǔ)的類型存儲(chǔ)于所述網(wǎng)絡(luò)信息數(shù)據(jù)集。
優(yōu)選地,所述步驟S2中建立基于連續(xù)詞袋的第一文本編碼模型以及基于卷積神經(jīng)網(wǎng)絡(luò)的第二文本編碼模型包括以下步驟:
S21、利用網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息,利用skip gram模型訓(xùn)練詞向量;
S22、以所述詞向量作為輸入,以所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量為輸出構(gòu)建所述第一文本編碼模型以及所述第二文本編碼模型。
優(yōu)選地,所述第一文本編碼模型為:
ENCbow(xv)=dTxv
式中,XV為所述詞向量的矩陣,d為各個(gè)所述詞向量上的常數(shù)分布,用于實(shí)現(xiàn)對(duì)所述矩陣XV中的所有詞向量取均值,ENCbow表示對(duì)所述矩陣XV中的所有詞向量取均值。
優(yōu)選地,所述第二文本編碼模型包括卷積層、池化層以及非線性轉(zhuǎn)換層;
其中,所述卷積層為:
式中,表示第p層卷積層輸出矩陣的第i個(gè)向量,表示第p層卷積層輸入矩陣,其中,所述p層卷積層輸入矩陣為第p-1層的輸出矩陣的第i個(gè)向量,并且第p層卷積層的第一個(gè)輸入矩陣為所述第一文本編碼模型輸出的矩陣;與分別是第p層卷積層的卷積核矩陣以及偏置向量;
所述池化層為:
式中,bp(i-1)為對(duì)應(yīng)的池化層的窗口大小,Zi(p,f)為第p層卷積層輸出矩陣的第i個(gè)向量的卷積核矩陣,Zbp(i-1)(p,f)為第p層卷積層輸出矩陣的卷積核矩陣,mean表示對(duì)第p層卷積層輸出矩陣的卷積核矩陣按照對(duì)應(yīng)的窗口大小的分塊后的區(qū)塊求均值;
所述非線性轉(zhuǎn)換層為:
式中,tanh表示非線性函數(shù),其將所述第p層卷積層輸出矩陣的第i個(gè)向量的卷積核矩陣表示的結(jié)果映射到[-1,1]區(qū)間;
其中通過控制池化層的窗口大小使所述非線性轉(zhuǎn)換層輸出的矩陣為一行或一列,根據(jù)所述非線性轉(zhuǎn)換層的輸出矩陣形成所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
優(yōu)選地,所述概率公式為:
式中,v表示當(dāng)前的網(wǎng)絡(luò)節(jié)點(diǎn),Cv表示與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的網(wǎng)絡(luò)節(jié)點(diǎn)的集合,∑logPr(CV丨v)表示利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的所有網(wǎng)絡(luò)節(jié)點(diǎn)的概率的和;tv表示當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息,∑logPr(tV丨v)表示利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率;
其中,利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的所有網(wǎng)絡(luò)節(jié)點(diǎn)的概率利用如下公式計(jì)算:
式中,vi表示所述集合Cv中的一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),vj表示當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn),vk表示所述集合Cv中的所有節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn),∑exp(vk·vi)表示遍歷所述集合Cv中的所有節(jié)點(diǎn)并求和;
利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率利用如下公式計(jì)算:
式中,vn表示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,vt表示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,rv表示將當(dāng)前節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量映射到當(dāng)前節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的空間的映射矩陣,ru表示將所述集合Cv中的一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量映射到當(dāng)前節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的空間的映射矩陣,∑exp(ru·vn)表示遍歷所述集合Cv中的所有節(jié)點(diǎn)并求和。
優(yōu)選地,所述方法利用負(fù)采樣算法得到利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率:
式中,σ為sigmoid函數(shù);
所述方法利用負(fù)采樣算法得到利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率:
Pr(vj丨vi)=σ(vj丨vi)П[1-σ(vk·vi)]。
本發(fā)明提供了一種網(wǎng)絡(luò)表示學(xué)習(xí)方法,本發(fā)明綜合考慮文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行學(xué)習(xí),并針對(duì)文本信息部分,設(shè)計(jì)了不同類型的基于連續(xù)詞袋以及基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型,本發(fā)明不僅利用了網(wǎng)絡(luò)中節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)信息,對(duì)當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)進(jìn)行預(yù)測(cè),也利用了節(jié)點(diǎn)的文本信息,對(duì)當(dāng)前節(jié)點(diǎn)文本信息的表示向量進(jìn)行了預(yù)測(cè),本發(fā)明的方法,能夠有效的將節(jié)點(diǎn)的文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)信息編碼到表示向量中,同時(shí)在節(jié)點(diǎn)分類的任務(wù)上顯著的提高了分類準(zhǔn)確率。同時(shí)本方法充分考慮了實(shí)際網(wǎng)絡(luò)中的有效信息,例如文本信息,在不同類型的信息網(wǎng)絡(luò)數(shù)據(jù)上都取得了優(yōu)異的效果,具有良好的實(shí)用性。另外,本發(fā)明的方法可以更改多種文本編碼方式,也適用于多種信息網(wǎng)絡(luò),具有良好的適用范圍及可擴(kuò)展性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1、圖4為本發(fā)明的網(wǎng)絡(luò)表示學(xué)習(xí)方法的流程圖;
圖2為本發(fā)明中基于連續(xù)詞袋的第一文本編碼模型結(jié)構(gòu)示意圖;
圖3為本發(fā)明中基于卷積神經(jīng)網(wǎng)絡(luò)的第二文本編碼模型結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不能用來限制本發(fā)明的范圍。
一種網(wǎng)絡(luò)表示學(xué)習(xí)方法,如圖1所示,所述方法包括以下步驟:
S1、建立基于網(wǎng)絡(luò)結(jié)構(gòu)的多個(gè)第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,其中每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)均對(duì)應(yīng)一個(gè)所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量;
S2、以網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息為基礎(chǔ),分別建立基于連續(xù)詞袋的第一文本編碼模型以及基于卷積神經(jīng)網(wǎng)絡(luò)的第二文本編碼模型,并利用所述第一文本編碼模型和所述第二文本編碼模型建立多個(gè)第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,其中每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)均對(duì)應(yīng)一個(gè)所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量;
S3、根據(jù)所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量構(gòu)造概率公式,并根據(jù)所述概率公式,利用梯度下降算法對(duì)所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量進(jìn)行優(yōu)化,確定利用所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量得到所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率與利用所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的網(wǎng)絡(luò)節(jié)點(diǎn)的概率的和。
上述方法綜合考慮文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行學(xué)習(xí),并針對(duì)文本信息部分,設(shè)計(jì)了不同類型的基于連續(xù)詞袋以及基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型,本發(fā)明不僅利用了網(wǎng)絡(luò)中節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)信息,對(duì)當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)進(jìn)行預(yù)測(cè),也利用了節(jié)點(diǎn)的文本信息,對(duì)當(dāng)前節(jié)點(diǎn)文本信息的表示向量進(jìn)行了預(yù)測(cè),本發(fā)明的方法,能夠有效的將節(jié)點(diǎn)的文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)信息編碼到表示向量中,同時(shí)在節(jié)點(diǎn)分類的任務(wù)上顯著的提高了分類準(zhǔn)確率。同時(shí)本方法充分考慮了實(shí)際網(wǎng)絡(luò)中的有效信息,例如文本信息,在不同類型的信息網(wǎng)絡(luò)數(shù)據(jù)上都取得了優(yōu)異的效果,具有良好的實(shí)用性。另外,本發(fā)明的方法可以更改多種文本編碼方式,也適用于多種信息網(wǎng)絡(luò),具有良好的適用范圍及可擴(kuò)展性。
進(jìn)一步地,所述步驟S1包括以下步驟:
S11、構(gòu)建網(wǎng)絡(luò)信息數(shù)據(jù)集;所述數(shù)據(jù)集中包括各個(gè)節(jié)點(diǎn)的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息用于表示網(wǎng)絡(luò)結(jié)構(gòu);
S12、根據(jù)所述數(shù)據(jù)集,利用DeepWalk模型學(xué)習(xí)得到所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
如圖4所示,所述步驟S12包括以下步驟:
S121、在網(wǎng)絡(luò)結(jié)構(gòu)中利用隨機(jī)游走構(gòu)建隨機(jī)游走序列;
S122、將所述隨機(jī)游走序列中的節(jié)點(diǎn)作為文本語料中的詞,將所述隨機(jī)游走序列作為文本語料中的句子,利用skip gram模型訓(xùn)練得到所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,即網(wǎng)絡(luò)表示向量。
步驟S122中,正常的文本句子是由一個(gè)一個(gè)詞構(gòu)成,本發(fā)明中是將網(wǎng)絡(luò)中節(jié)點(diǎn)看做詞,由節(jié)點(diǎn)構(gòu)成的序列看做句子,利用處理文本的方法來處理網(wǎng)絡(luò)信息。
進(jìn)一步地,所述方法還包括以下步驟:
S4、將對(duì)應(yīng)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量連接形成目標(biāo)向量,利用所述目標(biāo)向量確定對(duì)應(yīng)網(wǎng)絡(luò)節(jié)點(diǎn)的類型,例如第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量為[0,1],第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量為[1,2],連接后得到[0,1,1,2],根據(jù)向量[0,1,1,2]對(duì)對(duì)應(yīng)的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行分類。之后將得到的網(wǎng)絡(luò)節(jié)點(diǎn)的類型與預(yù)先存儲(chǔ)的類型進(jìn)行比較,確定所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的準(zhǔn)確度,其中所述預(yù)先存儲(chǔ)的類型存儲(chǔ)于所述網(wǎng)絡(luò)信息數(shù)據(jù)集。即,將對(duì)應(yīng)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量連接形成目標(biāo)向量,利用所述目標(biāo)向量對(duì)于訓(xùn)練集中的節(jié)點(diǎn)訓(xùn)練分類器,對(duì)于測(cè)試集中的節(jié)點(diǎn)進(jìn)行分類測(cè)試。
如圖4所示,進(jìn)一步地,所述步驟S2中建立基于連續(xù)詞袋的第一文本編碼模型以及基于卷積神經(jīng)網(wǎng)絡(luò)的第二文本編碼模型包括以下步驟:
S21、利用網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息,利用skip gram模型訓(xùn)練詞向量;其中,文本信息存儲(chǔ)于上述網(wǎng)絡(luò)信息數(shù)據(jù)集中;
S22、以所述詞向量作為輸入,以所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量(即文本表示向量)為輸出構(gòu)建所述第一文本編碼模型以及所述第二文本編碼模型。其中,此步驟是利用文本編碼器進(jìn)行編碼實(shí)現(xiàn)。
所述第一文本編碼模型為:
ENCbow(xv)=dTxv
式中,XV為所述詞向量的矩陣,d為各個(gè)所述詞向量上的常數(shù)分布,用于實(shí)現(xiàn)對(duì)所述矩陣XV中的所有詞向量取均值,ENCbow表示對(duì)所述矩陣XV中的所有詞向量取均值。如圖2所示,詞向量的矩陣XV在詞向量輸入層輸入,由輸出層輸出取均值后的矩陣。
如圖3所示,所述第二文本編碼模型包括卷積層、池化層以及非線性轉(zhuǎn)換層;第二文本編碼模型的詞向量輸入層用于輸入一文本編碼模型輸出的矩陣,輸出層用于輸出非線性轉(zhuǎn)換層輸出的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
其中,所述卷積層為:
式中,表示第p層卷積層輸出矩陣的第i個(gè)向量,表示第p層卷積層輸入矩陣,其中,所述p層卷積層輸入矩陣為第p-1層的輸出矩陣的第i個(gè)向量,并且第p層卷積層的第一個(gè)輸入矩陣為所述第一文本編碼模型輸出的矩陣;與分別是第p層卷積層的卷積核矩陣以及偏置向量;
所述池化層為:
式中,bp(i-1)為對(duì)應(yīng)的池化層的窗口大小,Zi(p,f)為第p層卷積層輸出矩陣的第i個(gè)向量的卷積核矩陣,Zbp(i-1)(p,f)為第p層卷積層輸出矩陣的卷積核矩陣,mean表示對(duì)第p層卷積層輸出矩陣的卷積核矩陣按照對(duì)應(yīng)的窗口大小的分塊后的區(qū)塊求均值;假設(shè)第p層卷積層的窗口大小為wp,卷積核大小為fp。
所述非線性轉(zhuǎn)換層為:
式中,tanh表示激活函數(shù)或非線性函數(shù),其將所述第p層卷積層輸出矩陣的第i個(gè)向量的卷積核矩陣表示的結(jié)果映射到[-1,1]區(qū)間;
其中通過控制池化層的窗口大小使所述非線性轉(zhuǎn)換層輸出的矩陣為一行或一列,根據(jù)所述非線性轉(zhuǎn)換層的輸出矩陣形成所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。通過控制池化層池化窗口的大小,對(duì)同一卷積核卷積后的所有結(jié)果進(jìn)行池化,可以使得池化輸出以及非線性轉(zhuǎn)化輸出的矩陣為一個(gè)表示向量。
根據(jù)上述記載可知,第一文本編碼模型對(duì)所有詞向量取均值,得到的矩陣作為第二文本編碼模型的輸入,所述第二文本編碼模型根據(jù)所述第一文本編碼模型的輸出形成所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,具體的,第二文本編碼模型包括卷積層、池化層以及非線性轉(zhuǎn)換層,所述卷積層將第一文本編碼模型的輸出作為輸入進(jìn)行卷積處理,同時(shí)卷積層可以多余一個(gè),卷積層處理后的數(shù)據(jù)傳輸給池化層,由池化層進(jìn)行池化處理后傳輸給非線性轉(zhuǎn)換層,由非線性轉(zhuǎn)換層對(duì)池化層的輸出處理形成所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
進(jìn)一步地,所述概率公式為:
式中,v表示當(dāng)前的網(wǎng)絡(luò)節(jié)點(diǎn),Cv表示與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的網(wǎng)絡(luò)節(jié)點(diǎn)的集合,∑logPr(CV丨v)表示利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的所有網(wǎng)絡(luò)節(jié)點(diǎn)的概率的和;tv表示當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息,∑logPr(tV丨v)表示利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率;
其中,利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的所有網(wǎng)絡(luò)節(jié)點(diǎn)的概率利用如下公式計(jì)算:
式中,vi表示所述集合Cv中的一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),vj表示當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn),vk表示所述集合Cv中的所有節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn);∑exp(vk·vi)表示遍歷所述集合Cv中的所有節(jié)點(diǎn)并求和,特別地是對(duì)特定指數(shù)結(jié)果進(jìn)行求和,然后通過soft max進(jìn)行了歸一化;
利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率利用如下公式計(jì)算:
式中,vn表示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,vt表示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量,rv表示將當(dāng)前節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量映射到當(dāng)前節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的空間的映射矩陣,ru表示將所述集合Cv中的一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量映射到當(dāng)前節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的空間的映射矩陣,∑exp(ru·vn)表示遍歷所述集合Cv中的所有節(jié)點(diǎn)并求和,特別地是對(duì)特定指數(shù)結(jié)果進(jìn)行求和,然后通過soft max進(jìn)行了歸一化。
進(jìn)一步地,所述方法利用負(fù)采樣算法得到利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率:
式中,σ為sigmoid函數(shù);
所述方法利用負(fù)采樣算法得到利用當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的表示向量預(yù)測(cè)得到當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率:
Pr(vj丨vi)=σ(vj丨vi)П[1-σ(vk·vi)]。
進(jìn)一步地,所述方法還包括如下步驟:
本發(fā)明的方法旨在將信息網(wǎng)絡(luò)中節(jié)點(diǎn)映射到低維連續(xù)的實(shí)數(shù)空間中,本發(fā)明綜合節(jié)點(diǎn)文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)信息,同時(shí)能夠克服傳統(tǒng)網(wǎng)絡(luò)表示方法的稀疏性問題。本發(fā)明能夠利用節(jié)點(diǎn)的不同類型信息,學(xué)習(xí)出一個(gè)統(tǒng)一的表示向量,在節(jié)點(diǎn)分類的任務(wù)上驗(yàn)證了其有效性及實(shí)用性。
下面通過一個(gè)是實(shí)施例對(duì)上述方法案進(jìn)行更加詳細(xì)的介紹。
一種結(jié)合文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)的信息網(wǎng)絡(luò)表示學(xué)習(xí)方法,包括如下步驟:
A、以基于隨機(jī)游走的DeepWalk網(wǎng)絡(luò)表示學(xué)習(xí)為基礎(chǔ),建立基于網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)節(jié)點(diǎn)表示,即第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量;
具體地,步驟A具體是通過執(zhí)行以下步驟實(shí)現(xiàn)的:
A1、構(gòu)建信息網(wǎng)絡(luò)數(shù)據(jù)集;
構(gòu)建信息網(wǎng)絡(luò)數(shù)據(jù)集包括抓取收集信息網(wǎng)絡(luò)中的節(jié)點(diǎn)信息,這些信息包括節(jié)點(diǎn)之間的關(guān)聯(lián)信息、文本信息以及類別信息。
A2、運(yùn)用DeepWalk模型學(xué)習(xí)節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)表示向量。
具體的,學(xué)習(xí)節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)表示向量步驟如下:第一,根據(jù)節(jié)點(diǎn)之間的關(guān)聯(lián)信息,在網(wǎng)絡(luò)中利用隨機(jī)游走,構(gòu)建隨機(jī)游走序列;第二,把游走序列中的節(jié)點(diǎn)當(dāng)作文本語料中的詞,把游走序列當(dāng)作文本語料中的句子,利用訓(xùn)練詞向量的skip gram模型訓(xùn)練得到的節(jié)點(diǎn)序列,可以得到與詞向量類似的基于網(wǎng)絡(luò)結(jié)構(gòu)的節(jié)點(diǎn)向量,即第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量。
其中,DeepWalk模型中的參數(shù)包括:隨機(jī)游走過程中,每個(gè)節(jié)點(diǎn)游走的序列個(gè)數(shù)以及序列長(zhǎng)度;skip gram模型中窗口大小、負(fù)例個(gè)數(shù)、學(xué)習(xí)率等;
B、以網(wǎng)絡(luò)節(jié)點(diǎn)的文本信息為基礎(chǔ),分別建立基于連續(xù)詞袋的文本編碼模型(即第一文本編碼模型)以及基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型(即第二文本編碼模型);
具體地,所述步驟B具體是通過執(zhí)行以下步驟實(shí)現(xiàn)的:
B1、利用信息網(wǎng)絡(luò)中所有節(jié)點(diǎn)的文本信息,訓(xùn)練詞向量;
利用節(jié)點(diǎn)文本信息訓(xùn)練初始詞向量,利用的是word2vec中的skip gram模型,參數(shù)包括窗口大小、學(xué)習(xí)率等等。
B2、以每個(gè)節(jié)點(diǎn)文本信息中的詞向量作為輸入,以該節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量作為輸出,構(gòu)建基于連續(xù)詞袋的文本編碼模型以及基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型。
其中,基于連續(xù)詞袋的文本編碼模型以文本中的詞向量作為輸入,直接對(duì)所有詞向量進(jìn)行平均,得到輸出的向量表示,計(jì)算公式如下:
ENCbow(xv)=dTxv
其中xv=[w1,…,wn]表示文本描述信息中所有詞向量構(gòu)成的矩陣,d表示在所有詞向量上的常數(shù)分布。
基于連續(xù)詞袋的文本編碼模型能夠以文本信息中每個(gè)詞的詞向量作為輸入,經(jīng)過加權(quán)平均后,得到一個(gè)與輸入詞向量維度相同的固定長(zhǎng)度的向量作為輸出,作為基于文本信息的節(jié)點(diǎn)的向量表示,來參與步驟C中由當(dāng)前節(jié)點(diǎn)表示向量分別生成基于文本以及基于網(wǎng)絡(luò)的表示向量的過程。
基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型主要包括三個(gè)部分,分別為卷積層,池化層以及非線性轉(zhuǎn)換層。其中卷積層以及池化層各有兩層。
假設(shè)第p層卷積層的窗口大小為wp,卷積核大小為fp,那么卷積層的輸出公式如下:
其中表示第p層卷積層輸出矩陣的第i個(gè)向量,表示第p層卷積層輸入矩陣(第p-1層的輸出矩陣)的第i個(gè)向量;與分別是第p層卷積層的卷積核矩陣以及偏置向量。
假設(shè)第p層池化層的區(qū)塊大小為bp,采用了平均池化的池化層,輸出公式如下:
經(jīng)過池化操作之后,區(qū)塊中的特征被抽取,卷積之后的表示規(guī)模降到了1/fp。
在非線性轉(zhuǎn)換層,采用tanh非線性函數(shù),將表示的結(jié)果映射到[-1,1]區(qū)間,如下所示:
綜上所述,形成所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的過程為:
ENCCNN(xv)=zP
基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型能夠以文本信息中每個(gè)詞的詞向量作為輸入,經(jīng)過卷積、池化、非線性轉(zhuǎn)換等操作后,輸出一個(gè)固定維數(shù)的向量,作為基于文本信息的節(jié)點(diǎn)的向量表示,來參與步驟C中由當(dāng)前節(jié)點(diǎn)表示向量分別生成基于文本以及基于網(wǎng)絡(luò)的表示向量的過程。
C、根據(jù)基于網(wǎng)絡(luò)的表示向量與基于文本的表示向量之間的關(guān)系,同時(shí)對(duì)這兩種表示進(jìn)行學(xué)習(xí);
具體地,所述步驟C具體是通過執(zhí)行以下步驟實(shí)現(xiàn)的:
C1、構(gòu)造基于當(dāng)前節(jié)點(diǎn)第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量以及所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率公式;
具體的,概率公式為:
其中,第一部分為利用當(dāng)前節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)該節(jié)點(diǎn)在網(wǎng)絡(luò)中的上下文節(jié)點(diǎn),即鄰節(jié)點(diǎn)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率,如下:
第二部分為根據(jù)當(dāng)前節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)該節(jié)點(diǎn)的文本信息,及文本編碼后的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率,如下:
其中,通過一個(gè)全連接網(wǎng)絡(luò)W,將基于文本的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量映射到當(dāng)前節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的空間中,即rv=W·vt。
C2、利用梯度下降算法,分別對(duì)基于文本的表示模型以及基于網(wǎng)絡(luò)的表示模型進(jìn)行優(yōu)化學(xué)習(xí)。
具體的,優(yōu)化學(xué)習(xí)過程分為基于文本的表示的優(yōu)化以及基于網(wǎng)絡(luò)的表示的優(yōu)化兩個(gè)部分。
其中,基于文本的優(yōu)化采用了負(fù)采樣算法,近似由當(dāng)前節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)基于文本的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率,如下所示:
采用反向傳播算法,來優(yōu)化編碼模型以及全連接網(wǎng)絡(luò)組成的神經(jīng)網(wǎng)絡(luò)中參數(shù)。
同樣,為了近似由當(dāng)前節(jié)點(diǎn)的第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量預(yù)測(cè)基于網(wǎng)絡(luò)的第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率,采用負(fù)采樣算法,如下所示:
Pr(vj丨vi)=σ(vj丨vi)П[1-σ(vk·vi)]
采用隨機(jī)梯度下降算法,對(duì)節(jié)點(diǎn)的表示向量進(jìn)行優(yōu)化,得到利用所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量得到所述第二網(wǎng)絡(luò)節(jié)點(diǎn)表示向量的概率與利用所述第一網(wǎng)絡(luò)節(jié)點(diǎn)表示向量得到與當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)相鄰的網(wǎng)絡(luò)節(jié)點(diǎn)的概率的和。
D、利用學(xué)習(xí)到的信息網(wǎng)絡(luò)節(jié)點(diǎn)的表示向量,進(jìn)行網(wǎng)絡(luò)節(jié)點(diǎn)的分類任務(wù),具體地,對(duì)于網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行分類可以處理不同情況下的分類任務(wù)。對(duì)于已經(jīng)學(xué)習(xí)出的綜合了文本信息與網(wǎng)絡(luò)結(jié)構(gòu)信息的表示向量的節(jié)點(diǎn),可以直接利用有文本信息與網(wǎng)絡(luò)結(jié)構(gòu)信息的表示向量形成的目標(biāo)向量進(jìn)行分類;對(duì)于新的網(wǎng)絡(luò)節(jié)點(diǎn),可以分別利用DeepWalk以及文本編碼模型得到兩種表示向量,將兩者的直接連接作為其表示向量,進(jìn)而進(jìn)行分類。
與現(xiàn)有技術(shù)相比,本發(fā)明提出了方法,針對(duì)文本編碼部分,設(shè)計(jì)了不同類型了基于連續(xù)詞袋以及基于卷積神經(jīng)網(wǎng)絡(luò)的文本編碼模型。本發(fā)明不僅利用了信息網(wǎng)絡(luò)中節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)信息,對(duì)當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)進(jìn)行預(yù)測(cè),也利用了節(jié)點(diǎn)的文本信息,對(duì)當(dāng)前節(jié)點(diǎn)文本信息的表示向量進(jìn)行預(yù)測(cè)。這種信息網(wǎng)絡(luò)的表示學(xué)習(xí)方法,能夠有效的將節(jié)點(diǎn)的文本信息以及網(wǎng)絡(luò)結(jié)構(gòu)信息編碼到表示向量中,同時(shí)在節(jié)點(diǎn)分類的任務(wù)上顯著的提高了分類準(zhǔn)確率。本方法充分考慮了實(shí)際網(wǎng)絡(luò)中的有效信息,在不同類型的信息網(wǎng)絡(luò)數(shù)據(jù)上都取得了優(yōu)異的效果,具有良好的實(shí)用性。同時(shí),該方法可以更改多種文本編碼方式,也適用于多種信息網(wǎng)絡(luò),具有良好的適用范圍及可擴(kuò)展性。
以上實(shí)施方式僅用于說明本發(fā)明,而非對(duì)本發(fā)明的限制。盡管參照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對(duì)本發(fā)明的技術(shù)方案進(jìn)行各種組合、修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。