本發(fā)明屬于人工神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于深度置信網(wǎng)絡(luò)的鏈路預(yù)測(cè)方法。
背景技術(shù):
基于游走的網(wǎng)絡(luò)表示學(xué)習(xí)算法,例如deepwalk,是利用了word2vec的理論方法,將網(wǎng)絡(luò)中的結(jié)點(diǎn)與自然語言處理中的詞單元進(jìn)行了類比,將網(wǎng)絡(luò)中的一條一條的連接路徑類比作自然語言處理中的一條語句;利用概率語言模型中求解每一個(gè)詞語之間共現(xiàn)關(guān)系(即所有的條件概率參數(shù))的方法來探討網(wǎng)絡(luò)結(jié)點(diǎn)之間的連接結(jié)構(gòu);利用生成詞向量的方法生成了網(wǎng)絡(luò)中結(jié)點(diǎn)的向量表示方法。通過這種類比算法得到的網(wǎng)絡(luò)結(jié)點(diǎn)的向量,反映了對(duì)應(yīng)網(wǎng)絡(luò)結(jié)點(diǎn)與周圍鄰居結(jié)點(diǎn)聯(lián)系的結(jié)構(gòu)特征,同時(shí)實(shí)現(xiàn)了網(wǎng)絡(luò)結(jié)點(diǎn)的低維向量表示,這就為針對(duì)網(wǎng)絡(luò)數(shù)據(jù)的一些數(shù)據(jù)挖掘問題,比如網(wǎng)絡(luò)結(jié)點(diǎn)分類,鏈路預(yù)測(cè),社區(qū)發(fā)現(xiàn)等等,提供了一個(gè)新的使用機(jī)器學(xué)習(xí)算法進(jìn)行處理或是優(yōu)化的思路。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,是基于傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)計(jì)算模型,利用新的訓(xùn)練方式改進(jìn)傳統(tǒng)淺層神經(jīng)網(wǎng)絡(luò)的一類智能算法的總稱。傳統(tǒng)的淺層的神經(jīng)網(wǎng)絡(luò)模型通常面臨著數(shù)據(jù)特征人工或者自行提取、容易求得局部極小值、多層(超過三層)的神經(jīng)網(wǎng)絡(luò)模型很難進(jìn)行優(yōu)化三個(gè)難題。hinton于2006年提出深度置信網(wǎng)絡(luò),深度置信網(wǎng)絡(luò)計(jì)算模型采用全新的網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方式,很好的解決了上述的三個(gè)問題。現(xiàn)在,dbn已被廣泛作為一種典型的改造傳統(tǒng)的淺層神經(jīng)網(wǎng)絡(luò)計(jì)算模型網(wǎng)絡(luò)層數(shù)和訓(xùn)練方式的一種深度學(xué)習(xí)算法。
鏈路預(yù)測(cè)是通過給定網(wǎng)絡(luò)的結(jié)點(diǎn)屬性信息和網(wǎng)絡(luò)的連接結(jié)構(gòu)信息對(duì)網(wǎng)絡(luò)中尚未存在邊的結(jié)點(diǎn)對(duì)之間出現(xiàn)邊的可能性的預(yù)測(cè)。鏈路預(yù)測(cè)任務(wù)既包括對(duì)網(wǎng)絡(luò)中已經(jīng)存在但尚未被發(fā)現(xiàn)的邊的預(yù)測(cè),也包括對(duì)網(wǎng)絡(luò)中尚未存在但未來有可能出現(xiàn)的邊的預(yù)測(cè)。其中,前者屬于對(duì)網(wǎng)絡(luò)的數(shù)據(jù)挖掘過程,而后者涉及對(duì)網(wǎng)絡(luò)的演化的研究。
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)所代表的物理含義的不同,鏈路預(yù)測(cè)具有不同的研究價(jià)值,同時(shí)也吸引了不同領(lǐng)域的學(xué)者的深入研究。在最常見的社交網(wǎng)絡(luò)中,鏈路預(yù)測(cè)的原理已被廣泛地應(yīng)用到好友推薦、興趣推薦等功能的實(shí)現(xiàn)中。另外,鏈路預(yù)測(cè)的理論和方法還可以被用于在已知部分結(jié)點(diǎn)標(biāo)簽的網(wǎng)絡(luò)中對(duì)未知的結(jié)點(diǎn)的標(biāo)簽的類型進(jìn)行預(yù)測(cè)。在生物領(lǐng)域,對(duì)蛋白質(zhì)相互作用網(wǎng)絡(luò)中蛋白質(zhì)之間的相互作用關(guān)系,人類依舊知之甚少。如果可以設(shè)計(jì)一種對(duì)該網(wǎng)絡(luò)行之有效的鏈路預(yù)測(cè)算法,利用該算法的預(yù)測(cè)結(jié)果來指導(dǎo)對(duì)蛋白質(zhì)相互作用關(guān)系的研究,設(shè)計(jì)具體生物實(shí)驗(yàn)來驗(yàn)證,那么將節(jié)省大量的實(shí)驗(yàn)開銷,同時(shí)大大推動(dòng)人類認(rèn)識(shí)蛋白質(zhì)相關(guān)作用原理的步伐。
為了評(píng)價(jià)鏈路預(yù)測(cè)算法的有效性,通常的做法是將e分為測(cè)試集和訓(xùn)練集兩部分。鏈路預(yù)測(cè)算法處理的無向網(wǎng)絡(luò)中只包含了訓(xùn)練集中的邊信息。在鏈路預(yù)測(cè)算法處理之前要將測(cè)試集中的邊從網(wǎng)絡(luò)中移除,然后,利用鏈路預(yù)測(cè)算法對(duì)測(cè)試集中的邊與采樣得到的不存在邊的結(jié)點(diǎn)對(duì)進(jìn)行打分。最后,使用鏈路預(yù)測(cè)結(jié)果的不同評(píng)判指標(biāo),對(duì)打分結(jié)果,即預(yù)測(cè)結(jié)果進(jìn)行評(píng)估,檢測(cè)該鏈路預(yù)測(cè)算法的預(yù)測(cè)準(zhǔn)確性。但上述傳統(tǒng)方法存在鏈路預(yù)測(cè)算法預(yù)測(cè)正確率偏低,以及對(duì)網(wǎng)絡(luò)的各種結(jié)構(gòu)特征的普適性偏低的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明是針對(duì)傳統(tǒng)的鏈路預(yù)測(cè)算法預(yù)測(cè)正確率偏低,以及對(duì)網(wǎng)絡(luò)的各種結(jié)構(gòu)特征的普適性偏低的問題。
為達(dá)到上述目的,本發(fā)明提出一種基于深度置信網(wǎng)絡(luò)的鏈路預(yù)測(cè)方法,具體包含以下步驟:
步驟1:訓(xùn)練數(shù)據(jù)采集模塊完成從給定網(wǎng)絡(luò)結(jié)構(gòu)中隨機(jī)采樣得到訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集,其中每一個(gè)邊集中包含等比例的正樣本和負(fù)樣本;
步驟2:網(wǎng)絡(luò)結(jié)點(diǎn)特征表示模塊在經(jīng)過訓(xùn)練數(shù)據(jù)采集模塊處理過的網(wǎng)絡(luò)中,使用deepwalk算法生成每一個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)的特征表示;
步驟3:邊特征表示生成模塊完成對(duì)訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集中的每一條邊計(jì)算邊的特征表示,為了符合深度置信網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)的要求,還需要對(duì)生成的邊的特征向量進(jìn)行歸一化處理;
步驟4:深度置信網(wǎng)絡(luò)訓(xùn)練模塊完成深度置信網(wǎng)絡(luò)結(jié)構(gòu)的建立,并加載訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集進(jìn)行訓(xùn)練。
進(jìn)一步,步驟1中,每個(gè)邊集的大小可以靈活配置,可以通過train_percent參數(shù)配置在所用現(xiàn)存的邊中訓(xùn)練邊集的正樣本所占的比例;通過valid_percent參數(shù)配置驗(yàn)證邊集和測(cè)試邊集之間的比例關(guān)系。
又進(jìn)一步,上述驗(yàn)證邊集和測(cè)試邊集中的正樣本需要從原始網(wǎng)絡(luò)結(jié)構(gòu)中去除,在去除過程中為了保證網(wǎng)絡(luò)的連通性,需要首先建立一個(gè)網(wǎng)絡(luò)的生成樹,負(fù)樣本的采集需要在正樣本采集之前,以防止采集到正樣本采集中去除的邊。
進(jìn)一步,步驟3中對(duì)于得到的每一個(gè)結(jié)點(diǎn)的特征表示,使用拼接得到一條邊的特征表示。
步驟4中深度置信網(wǎng)絡(luò)模型包含輸入層、隱層和輸出層,輸入層維度是邊特征向量的維度,隱層可以包括若干層,可以根據(jù)分類效果靈活設(shè)置,輸出層包括兩維。
上述訓(xùn)練過程包含以下步驟:
(1)首先使用訓(xùn)練邊集對(duì)深度置信網(wǎng)絡(luò)中的受限玻爾茲曼機(jī)模型進(jìn)行預(yù)訓(xùn)練,在預(yù)訓(xùn)練結(jié)束之后,使用訓(xùn)練邊集對(duì)邏輯回歸模型進(jìn)行訓(xùn)練,邏輯回歸模型的目標(biāo)函數(shù)使用對(duì)數(shù)似然函數(shù)的負(fù)數(shù);
(2)邏輯回歸模型的每一輪訓(xùn)練中,在使用訓(xùn)練邊集進(jìn)行訓(xùn)練之后,使用驗(yàn)證邊集對(duì)整個(gè)深度置信網(wǎng)絡(luò)模型的參數(shù)進(jìn)行微調(diào),計(jì)算預(yù)測(cè)錯(cuò)誤率;
(3)記錄錯(cuò)誤率最低時(shí)模型參數(shù),并使用測(cè)試邊集進(jìn)行測(cè)試,輸出的測(cè)試結(jié)果包括對(duì)測(cè)試邊集中每一條邊的打分值和對(duì)應(yīng)的真實(shí)值;
(4)對(duì)測(cè)試結(jié)果的輸出使用auc,precision和rankingscore對(duì)測(cè)試邊集中的每一條邊的預(yù)測(cè)結(jié)果進(jìn)行評(píng)估。
本發(fā)明的有益效果在于:
1、通過設(shè)置合適的深度置信網(wǎng)絡(luò)訓(xùn)練參數(shù),本發(fā)明設(shè)計(jì)的鏈路預(yù)測(cè)算法可以取得比傳統(tǒng)的鏈路預(yù)測(cè)算法更高的預(yù)測(cè)正確率。
2、傳統(tǒng)的鏈路預(yù)測(cè)算法的預(yù)測(cè)效果通常依賴于具體的網(wǎng)絡(luò)的結(jié)構(gòu)特征,如網(wǎng)絡(luò)的集聚系數(shù)等,本發(fā)明設(shè)計(jì)的鏈路預(yù)測(cè)算法通過深度學(xué)習(xí)邊周圍的網(wǎng)絡(luò)結(jié)構(gòu)特征,對(duì)各種結(jié)構(gòu)特征的網(wǎng)絡(luò)具有普適性。
附圖說明
圖1為訓(xùn)練數(shù)據(jù)集采集過程圖。
圖2為正樣本采集過程圖。
圖3為負(fù)樣本采集過程圖。
圖4為深度置信網(wǎng)絡(luò)模型的結(jié)構(gòu)示意圖。
具體實(shí)施方式
現(xiàn)結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說明。本發(fā)明針對(duì)無向網(wǎng)絡(luò)提出一種使用深度置信網(wǎng)絡(luò)分類模型進(jìn)行鏈路預(yù)測(cè)的算法,具體實(shí)施方法包括:
訓(xùn)練數(shù)據(jù)集采集模塊,根據(jù)深度置信網(wǎng)絡(luò)訓(xùn)練過程的特點(diǎn),該模塊需要采集得到訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集。
網(wǎng)絡(luò)結(jié)點(diǎn)特征表示模塊,對(duì)采集數(shù)據(jù)集處理過后的網(wǎng)絡(luò)數(shù)據(jù),使用deepwalk算法得到每一個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)的特征向量表示;
生成邊特征表示模塊,每一條邊可以使用結(jié)點(diǎn)對(duì)來表示,我們使用將兩個(gè)結(jié)點(diǎn)對(duì)各自的特征向量直接拼接的方式(joint)生成對(duì)應(yīng)的邊的特征向量表示;
構(gòu)建深度置信網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)生成的邊特征向量表示的維度來確定輸入層神經(jīng)元的個(gè)數(shù),隱層若干層,包括一個(gè)以上的受限玻爾茲曼機(jī)模型結(jié)構(gòu),輸出層為兩層,分別代表輸入的邊樣本在網(wǎng)絡(luò)中存在或是不存在兩個(gè)類別,使用一個(gè)邏輯回歸模型對(duì)受限玻爾茲曼機(jī)模型訓(xùn)練得到的邊特征進(jìn)行分類。
步驟1:訓(xùn)練數(shù)據(jù)采集模塊完成從給定網(wǎng)絡(luò)結(jié)構(gòu)中隨機(jī)采樣得到訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集,其中每一個(gè)邊集中包含等比例的正樣本(表示對(duì)應(yīng)邊在網(wǎng)絡(luò)中已存在的樣本)和負(fù)樣本(表示對(duì)應(yīng)邊在網(wǎng)絡(luò)中不存在的樣本),詳見圖1。
每個(gè)邊集的大小可以靈活配置,可以通過train_percent參數(shù)配置在所用現(xiàn)存的邊中,訓(xùn)練邊集的正樣本所占的比例;通過valid_percent參數(shù)配置驗(yàn)證邊集和測(cè)試邊集之間的比例關(guān)系。驗(yàn)證邊集和測(cè)試邊集中的正樣本需要從原始網(wǎng)絡(luò)結(jié)構(gòu)中去除,在去除過程中為了保證網(wǎng)絡(luò)的連通性,需要首先建立一個(gè)網(wǎng)絡(luò)的生成樹,具體實(shí)現(xiàn)過程參考圖2。負(fù)樣本的采集需要在正樣本采集之前,以防止采集到正樣本采集中去除的邊,具體實(shí)現(xiàn)過程如圖3所示。
步驟2:網(wǎng)絡(luò)結(jié)點(diǎn)特征表示模塊在經(jīng)過訓(xùn)練數(shù)據(jù)采集模塊處理過的網(wǎng)絡(luò)中,使用deepwalk算法生成每一個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)的特征表示。
步驟3:邊特征表示生成模塊完成對(duì)訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集中的每一條邊計(jì)算邊的特征表示,為了符合深度置信網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)的要求,還需要對(duì)生成的邊的特征向量進(jìn)行歸一化處理。
對(duì)于得到的每一個(gè)結(jié)點(diǎn)的特征表示,使用拼接得到一條邊的特征表示,例如對(duì)于兩個(gè)結(jié)點(diǎn)v1和v2,假設(shè)其對(duì)應(yīng)的特征表示如下:
v1=(n1,n2,…,nd),v2=(m1,m2,…,md),
那么對(duì)于一條邊(v1,v2)的特征向量表示則為:
(v1,v2)=(n1,n2,…,nd,m1,m2,…,md)。
步驟4:深度置信網(wǎng)絡(luò)訓(xùn)練模塊完成深度置信網(wǎng)絡(luò)結(jié)構(gòu)的建立,并加載訓(xùn)練邊集、驗(yàn)證邊集和測(cè)試邊集進(jìn)行訓(xùn)練。深度置信網(wǎng)絡(luò)模型的結(jié)構(gòu)如圖4所示,輸入層維度是邊特征向量的維度,隱層可以包括若干層,可以根據(jù)分類效果靈活設(shè)置。輸出層包括兩維。
首先,使用訓(xùn)練邊集對(duì)深度置信網(wǎng)絡(luò)中的受限玻爾茲曼機(jī)模型進(jìn)行預(yù)訓(xùn)練。在預(yù)訓(xùn)練結(jié)束之后,使用訓(xùn)練邊集對(duì)邏輯回歸模型進(jìn)行訓(xùn)練,邏輯回歸模型的目標(biāo)函數(shù)使用對(duì)數(shù)似然函數(shù)的負(fù)數(shù),形如
為了便于使用傳統(tǒng)的鏈路預(yù)測(cè)評(píng)價(jià)方式對(duì)鏈路預(yù)測(cè)效果進(jìn)行評(píng)判,我們使用下面的公式計(jì)算每一條樣本邊的打分值:
其中,y0,y1分別表示輸出層的第一維和第二維輸出。
邏輯回歸模型的每一輪訓(xùn)練中,在使用訓(xùn)練邊集進(jìn)行訓(xùn)練之后,我們使用驗(yàn)證邊集對(duì)整個(gè)深度置信網(wǎng)絡(luò)模型的參數(shù)進(jìn)行微調(diào),并將使用公式1.2計(jì)算得到的打分值與樣本邊真實(shí)的類別(0代表邊不存在,1代表邊存在)做差,對(duì)差值取絕對(duì)值后求平均作為預(yù)測(cè)錯(cuò)誤率。
error=mean(|score-ytrue|)(0.3)
我們記錄錯(cuò)誤率最低時(shí)模型參數(shù),并使用測(cè)試邊集進(jìn)行測(cè)試,輸出的測(cè)試結(jié)果包括對(duì)測(cè)試邊集中每一條邊的打分值和對(duì)應(yīng)的真實(shí)值。最后,我們對(duì)測(cè)試結(jié)果的輸出使用auc,precision和rankingscore對(duì)測(cè)試邊集中的每一條邊的預(yù)測(cè)結(jié)果進(jìn)行評(píng)估。
綜上所述,本發(fā)明針對(duì)網(wǎng)絡(luò)鏈路預(yù)測(cè)問題設(shè)計(jì)了一種使用深度置信網(wǎng)絡(luò)分類計(jì)算模型的實(shí)現(xiàn)方法,該方法不依賴網(wǎng)絡(luò)結(jié)構(gòu)的特征,較傳統(tǒng)的網(wǎng)絡(luò)鏈路預(yù)測(cè)算法具有較好的通用性和預(yù)測(cè)準(zhǔn)確率。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施案例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,對(duì)于本領(lǐng)域的技術(shù)人員來說,其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行改進(jìn),或者對(duì)其中部分技術(shù)進(jìn)行同等替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。