本發(fā)明一般涉及網(wǎng)絡(luò)中的隨機(jī)游走技術(shù)、維度規(guī)約方法及最優(yōu)化方法,特別是批量梯度下降方法。
背景技術(shù):
隨著技術(shù)的迅速發(fā)展,各種大型的網(wǎng)絡(luò)如雨后春筍般涌現(xiàn),信息技術(shù)行業(yè)往往面臨著對各種復(fù)雜網(wǎng)絡(luò)的理解挖掘。復(fù)雜網(wǎng)絡(luò)包括現(xiàn)有的社交網(wǎng)絡(luò)(微信好友之間的關(guān)系)、文獻(xiàn)引用網(wǎng)絡(luò)(citeseer、cora、pubmed)等,而理解挖掘包括但不限于節(jié)點(diǎn)分類、聚類,邊預(yù)測,網(wǎng)絡(luò)主題挖掘等。比如我們可以根據(jù)微信好友之間的關(guān)系構(gòu)建一張網(wǎng)絡(luò),通過理解挖掘,為用戶推薦與其相似的用戶,這里用到邊預(yù)測等技術(shù)。理解挖掘需要盡量多地利用網(wǎng)絡(luò)中提供的信息,包括網(wǎng)絡(luò)結(jié)構(gòu)信息和節(jié)點(diǎn)屬性信息等。融合多種信息有利于提高理解挖掘的精度。
然而目前的網(wǎng)絡(luò)挖掘,主要存在以下幾個難點(diǎn):1、高維度:大型網(wǎng)絡(luò)有上億個節(jié)點(diǎn),如果不進(jìn)行降維,直接利用one-hot的表示方法,將會容易導(dǎo)致維度災(zāi)難;2、信息源多:除了網(wǎng)絡(luò)結(jié)構(gòu)信息,還會存在節(jié)點(diǎn)相關(guān)的屬性信息,邊相關(guān)的屬性信息,簡單的對這些信息進(jìn)行拼接,效果并不是很理想,如何有效地融合多類型信息成為了急需解決的問題;3、高度稀疏:節(jié)點(diǎn)之間的邊并不是很多,因此網(wǎng)絡(luò)一般都是高度稀疏的,一般的理解挖掘方法難以處理這種高度稀疏的數(shù)據(jù)。
現(xiàn)有的方法中,還沒有一個有效的方法能夠高效地解決上述諸多問題。planetoid試圖將多種信息源進(jìn)行融合,然而使用了半監(jiān)督的方法進(jìn)行融合,導(dǎo)致學(xué)習(xí)出來的網(wǎng)絡(luò)表示受限于節(jié)點(diǎn)標(biāo)簽信息,無法用于無標(biāo)簽的網(wǎng)絡(luò)表示學(xué)習(xí)。此外,tadw方法則通過矩陣分解的方式嘗試將兩種信息源進(jìn)行融合,但是不夠直接,沒辦法給出比較圓滿的解釋。綜上,現(xiàn)有的網(wǎng)絡(luò)表示學(xué)習(xí)方法的主要局限性就是沒辦法直接高效地將兩種信息源進(jìn)行融合,學(xué)習(xí)網(wǎng)絡(luò)表示。因此,需要對現(xiàn)有技術(shù)進(jìn)行改進(jìn)。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種融合多類型信息的網(wǎng)絡(luò)表示方法,以解決現(xiàn)有技術(shù)中,沒辦法有效融合多種信息源學(xué)習(xí)網(wǎng)絡(luò)表示的缺點(diǎn)。
為實現(xiàn)上述技術(shù)目的,達(dá)到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實現(xiàn)。
提供一種融合多類型信息的網(wǎng)絡(luò)表示方法,包括:步驟1,讀取網(wǎng)絡(luò)結(jié)構(gòu)信息及節(jié)點(diǎn)屬性信息;步驟2,將所述節(jié)點(diǎn)屬性信息轉(zhuǎn)換為向量;步驟3,利用降維技術(shù)對所述向量進(jìn)行降維,生成屬性特征向量;步驟4,根據(jù)所述網(wǎng)絡(luò)結(jié)構(gòu)信息,生成對應(yīng)的矩陣g(v,e),其中v表示節(jié)點(diǎn)集合,e表示邊集合;步驟5,初始化所述節(jié)點(diǎn)屬性特征向量;步驟6,結(jié)合隨機(jī)游走和滑動窗口法構(gòu)建訓(xùn)練樣本;步驟7,調(diào)整節(jié)點(diǎn)向量值,以獲得最大化條件概率;步驟8,輸出調(diào)整后的節(jié)點(diǎn)向量作為網(wǎng)絡(luò)表示。
優(yōu)選地,所述步驟6,利用隨機(jī)游走和滑動窗口方法構(gòu)建訓(xùn)練樣本包括:步驟61,依次取網(wǎng)絡(luò)中的每個節(jié)點(diǎn),作為隨機(jī)游走路徑的當(dāng)前節(jié)點(diǎn);步驟62,從游走路徑當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中隨機(jī)抽取一個節(jié)點(diǎn),并把它添加到游走路徑的最后,并更新為當(dāng)前節(jié)點(diǎn);步驟63,重復(fù)上述過程,直至游走路徑的長度等于自定義數(shù)值r(r>0);步驟64,生成的所有路徑存放在集合s中,其中集合的大小等于節(jié)點(diǎn)的數(shù)量;步驟65,根據(jù)集合s,按照一定規(guī)則為步驟2中的所有元素構(gòu)建正樣本,每個正樣本都是一個三元對,所有正樣本存放在正樣本集合中;步驟66,為正樣本集合中的每個樣本,構(gòu)建負(fù)樣本,每個負(fù)樣本也是一個三元對,存放在負(fù)樣本集合中;步驟67,合并上述正樣本集合和負(fù)樣本集合,以獲取訓(xùn)練樣本。
優(yōu)選地,所述步驟7,包括;步驟71,將所述訓(xùn)練樣本分成若干份;步驟72,利用批量梯度下降方法,計算上述每份樣本的梯度,并更新節(jié)點(diǎn)向量。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)和技術(shù)效果:通過降維技術(shù)將節(jié)點(diǎn)屬性信息進(jìn)行降維,并且通過最大化條件概率使得學(xué)習(xí)到的網(wǎng)絡(luò)表示向量有效地融合了多種信息源,克服了之前方法存在的不足與局限性。而且學(xué)習(xí)到的向量是低維度的,解決了網(wǎng)絡(luò)理解挖掘中存在的問題:高維度、高度稀疏。學(xué)習(xí)到的向量可以直接計算節(jié)點(diǎn)之間的相似度,從而解決了相似度度量的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例技術(shù)中的技術(shù)方案,下面將對實施例技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為實施方式中融合多類型信息的網(wǎng)絡(luò)表示方法的流程圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的實施方式作進(jìn)一步說明,但本發(fā)明的實施不限于此。
如圖1,融合多類型信息的網(wǎng)絡(luò)表示方法的主要流程包括以下步驟:
步驟1,讀入網(wǎng)絡(luò)結(jié)構(gòu)信息(邊)及節(jié)點(diǎn)屬性信息,其中節(jié)點(diǎn)屬性信息包括節(jié)點(diǎn)內(nèi)容,標(biāo)簽等。
步驟2,將讀取的屬性信息表示為向量。
步驟3,通過降維技術(shù)對步驟2中的向量進(jìn)行降維,生成屬性特征向量。
步驟4,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)信息,生成對應(yīng)的網(wǎng)絡(luò)g(v,e),v是節(jié)點(diǎn)集合,e是邊集合。
步驟5,隨機(jī)初始化節(jié)點(diǎn)向量,其中長度等于節(jié)點(diǎn)屬性特征向量。
步驟6,利用隨機(jī)游走和滑動窗口方法,構(gòu)建訓(xùn)練樣本。
步驟7,調(diào)整節(jié)點(diǎn)向量,已獲得最大化條件概率p,其中最大化條件概率p為周圍節(jié)點(diǎn)的屬性特征向量與當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)向量的比值。
步驟8,輸出調(diào)整后的節(jié)點(diǎn)向量作為網(wǎng)絡(luò)表示。
優(yōu)選地,步驟6包括以下步驟:
步驟61,依次取網(wǎng)絡(luò)中的每個節(jié)點(diǎn),作為隨機(jī)游走路徑的當(dāng)前節(jié)點(diǎn)。
步驟62,從游走路徑當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中隨機(jī)抽取一個節(jié)點(diǎn),并把它添加到游走路徑的最后,并更新為當(dāng)前節(jié)點(diǎn)。
步驟63,重復(fù)上述過程,直至游走路徑的長度等于r(r>0,由用戶指定)。
步驟64,將生成的所有路徑存放在集合s中,其中集合的大小等于節(jié)點(diǎn)的數(shù)量。
步驟65,令集合d0和d1為空集;從步驟(b)生成的集合s中取一個元素出來,記為p;依次從p中取出一個節(jié)點(diǎn),記為vi;將在p中距離vi長度小于w(w:上下文窗口,大小由用戶指定)的每一個節(jié)點(diǎn)vj取出來,構(gòu)建三元對(vi,vj,1)并添加到集合d1中;重復(fù)上述步驟,直至處理完s中的每一個元素。
步驟66,從上述步驟生成的集合d1中,依次取出一個三元對,記為(vi,vj,1);對于每個三元對(vi,vj,1),從所有節(jié)點(diǎn)中隨機(jī)抽取n個節(jié)點(diǎn),n由用戶指定,抽取的每個節(jié)點(diǎn)vc與vi構(gòu)成一個三元對(vi,vc,-1),作為(vi,vj,1)對應(yīng)的負(fù)樣本并將其添加到集合d0中;重復(fù)上述處理,直至處理完d1中的每一個元素。
步驟67,合并集合d1和d0,合并后的集合記為d,d即為訓(xùn)練樣本。
優(yōu)選地,步驟7包括以下步驟:
步驟71,將步驟6中生成的訓(xùn)練樣本d分割成b份(b由用戶指定),第i份記作di;將條件概率p(周圍節(jié)點(diǎn)的屬性特征向量|當(dāng)前節(jié)點(diǎn)的網(wǎng)絡(luò)表示向量)公式化表示為:
其中ψj表示節(jié)點(diǎn)j的屬性特征向量,φi表示節(jié)點(diǎn)i的網(wǎng)絡(luò)表示向量。由于公式中的分母部分計算時間復(fù)雜度很高,因此,本發(fā)明采用負(fù)采樣的方法,將其轉(zhuǎn)換為如下代理函數(shù):
其中γ表示c是否為i的正樣本,若γ=1則表示c是i的正樣本,否則,若γ=-1則表示c是i的負(fù)樣本,σ(x)=1/(1+exp(-x))是一個sigmoid函數(shù)。最后,目標(biāo)函數(shù)公式化為:
步驟72,對于每份訓(xùn)練樣本di,計算目標(biāo)函數(shù)關(guān)于φ的梯度