劉 峰,王寶亮,鄒榮宇,趙浩淳
(1.天津大學(xué) 信息與網(wǎng)絡(luò)中心,天津 300072;2.天津大學(xué) 電氣自動(dòng)化與信息工程學(xué)院,天津 300072;3.天津大學(xué) 國(guó)際工程師學(xué)院,天津 300072)
隨著互聯(lián)網(wǎng)和人工智能等信息技術(shù)的快速發(fā)展,信息量呈指數(shù)級(jí)的增長(zhǎng),信息過(guò)載問(wèn)題日益突出。為解決這一問(wèn)題,個(gè)性化推薦系統(tǒng)應(yīng)運(yùn)而生[1]。個(gè)性化推薦系統(tǒng)根據(jù)用戶歷史行為數(shù)據(jù)進(jìn)行建模分析用戶偏好,進(jìn)而為其提供個(gè)性化的信息推薦,方便用戶獲取自身需求的信息[2-4]。推薦系統(tǒng)在給每位用戶提供有針對(duì)性的商品信息推薦服務(wù)的同時(shí)過(guò)濾掉了那些用戶并不感興趣的信息,有效地節(jié)約了人們的信息篩選時(shí)間。個(gè)性化推薦系統(tǒng)由于在信息推薦方面的優(yōu)秀表現(xiàn),已成為熱點(diǎn)研究方向。
隨著各類互聯(lián)網(wǎng)業(yè)務(wù)的快速發(fā)展,各種輔助信息的獲取越來(lái)越容易,而將這些輔助信息應(yīng)用于推薦算法中,將提升推薦性能,但這也對(duì)推薦算法的建模能力提出新的挑戰(zhàn)?;趫D模型的推薦算法是當(dāng)前的熱點(diǎn)方向,但是不易融合輔助信息,而網(wǎng)絡(luò)表示學(xué)習(xí)(Network Representation Learning,NRL)強(qiáng)大的網(wǎng)絡(luò)提取能力與基于圖模型的推薦算法相結(jié)合,能提升算法的可擴(kuò)展性??傮w而言,網(wǎng)絡(luò)表示學(xué)習(xí)是以稠密、低維的向量形式表示網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn),并使這些低維向量具有表示和推理能力,從而將這些向量作為輸入應(yīng)用于節(jié)點(diǎn)分類、鏈接預(yù)測(cè)和推薦系統(tǒng)中。
基于上述設(shè)計(jì)思路,研究人員將網(wǎng)絡(luò)表示學(xué)習(xí)技術(shù)應(yīng)用于推薦算法中以提高其建模能力。ZHANG 等[5]利用TransR 提取物品的結(jié)構(gòu)化信息,并融合物品的結(jié)構(gòu)化信息、文本信息與視覺信息進(jìn)行推薦。BARKAN 等[6]借 鑒Google 提 出的Word2vec方法,實(shí)現(xiàn)基于物品的協(xié)同過(guò)濾推薦。ZHOU 等[7]提出一種針對(duì)非對(duì)稱結(jié)構(gòu)的基于隨機(jī)游走的網(wǎng)絡(luò)表示學(xué)習(xí)方法。本文對(duì)經(jīng)典DeepWalk[8]算法進(jìn)行改進(jìn),面向推薦目標(biāo)與被推薦對(duì)象為相同類型的應(yīng)用場(chǎng)景,提出一種基于隨機(jī)游走的網(wǎng)絡(luò)表示學(xué)習(xí)推薦算法RANE。
NRL 技術(shù)在早期主要是對(duì)稀疏高維的節(jié)點(diǎn)進(jìn)行降維表示,包括主成分分析(Principal Component Analysis,PCA)、局部線 性嵌入(Locally Linear Embedding,LLE)[9]、拉普拉斯特征映射[10]等,但算法復(fù)雜度較高且應(yīng)用條件較嚴(yán)苛,因此很難在大規(guī)模的網(wǎng)絡(luò)中部署應(yīng)用。隨著NRL 技術(shù)的發(fā)展,研究人員致力于將其與推薦算法相結(jié)合,因此Word2vec模型[11]、DeepCrossing 模型[12]等應(yīng)用于推薦系統(tǒng)的算法模型由此被提出。
Word2vec[11]模型可以較好地計(jì)算詞與詞之間的相似度,SkipGram 模型是其中的詞向量訓(xùn)練模型。對(duì)于中心詞而言,該網(wǎng)絡(luò)模型在提高上下文單詞出現(xiàn)概率的同時(shí)降低其他無(wú)關(guān)單詞的出現(xiàn)概率。由于訓(xùn)練網(wǎng)絡(luò)所使用的詞匯表通常很大,如果每次預(yù)測(cè)上下文之后更新全部詞匯表,則會(huì)導(dǎo)致過(guò)大的計(jì)算量,因此需要優(yōu)化模型加速訓(xùn)練過(guò)程。在基于Negative Sampling 的SkipGram 模型中,對(duì)于中心詞w規(guī)定上下文單詞均為正樣本,其余單詞均為負(fù)樣本,設(shè)由隨機(jī)游走采樣得到的上下文集合為Context(w),那么對(duì)于一組采樣

其中:對(duì)于w上下文中每一個(gè)單詞u都要進(jìn)行負(fù)采樣,Neg(u)表示對(duì)u的負(fù)采樣集合。在n個(gè)單詞中,wi出現(xiàn)的頻率為f(wi),則其被采樣到的概率如下:

引入標(biāo)志位Lu(x),對(duì)于正采樣x?{u},令Lu(x)=1,對(duì)于負(fù)采樣x?Neg(u),令Lu(x)=0,則式(1)中的條件概率表示如下:

其中:σ為Sigmoid 函數(shù);vw表示的是輸入詞向量與隱藏層權(quán)重矩陣乘積的結(jié)果;vx表示的是輸出層權(quán)重矩陣中單詞x對(duì)應(yīng)某一列,稱vx為單詞x的輔助詞向量。擴(kuò)展到總語(yǔ)料庫(kù)C,最大化目標(biāo)函數(shù)如下:

為方便計(jì)算,取對(duì)數(shù)后可得最終的目標(biāo)函數(shù):

DeepWalk[8]將自然語(yǔ)言處理(Natural Language Processing,NLP)應(yīng)用于NRL 中。DeepWalk 將網(wǎng)絡(luò)中通過(guò)隨機(jī)游走得到固定長(zhǎng)度的節(jié)點(diǎn)序列看作是NLP 中的語(yǔ)句,將序列中的節(jié)點(diǎn)看作NLP 中的單詞,通過(guò)實(shí)驗(yàn)表明由隨機(jī)游走得到的節(jié)點(diǎn)序列組成的語(yǔ)料庫(kù)與NLP 的語(yǔ)料庫(kù)具有相似的冪律分布特性[8],對(duì)應(yīng)真實(shí)網(wǎng)絡(luò)的小世界特性說(shuō)明該節(jié)點(diǎn)序列能有效描述網(wǎng)絡(luò)結(jié)構(gòu)信息,進(jìn)而使用Word2vec 中的SkipGram 模型進(jìn)行網(wǎng)絡(luò)中節(jié)點(diǎn)的表示學(xué)習(xí),并通過(guò)Hierarchical Softmax 模型加速訓(xùn)練過(guò)程。
Node2vec[13]算法在DeepWalk 基礎(chǔ)上進(jìn)行改進(jìn),在DeepWalk 中隨機(jī)游走是從當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中隨機(jī)均勻地選取下一個(gè)節(jié)點(diǎn),而Node2vec 設(shè)計(jì)了兩個(gè)參數(shù)p和q,p控制跳向上一個(gè)節(jié)點(diǎn)的概率,q控制跳向非上一個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的概率,并以此控制隨機(jī)游走的傾向。若p<1 &q>1,則游走偏廣度優(yōu)先遍歷,著重刻畫局部信息;若p>1 &q<1,則游走偏深度優(yōu)先遍歷,著重刻畫全局信息。偏置參數(shù)的添加雖增加了算法的計(jì)算量,但使算法具有更強(qiáng)的可擴(kuò)展性。
上述基于隨機(jī)游走的算法主要考慮的是網(wǎng)絡(luò)的一階距離(兩節(jié)點(diǎn)有直接連邊),而LINE[14]算法中提出了網(wǎng)絡(luò)的二階距離(兩節(jié)點(diǎn)有共同的鄰居節(jié)點(diǎn))的概念,用更多的鄰域來(lái)豐富節(jié)點(diǎn)的表示。GraRep[15]算法則將一階、二階距離推廣到了n階,定義網(wǎng)絡(luò)的n階距離矩陣,使用SVD 算法對(duì)網(wǎng)絡(luò)的1 到n階矩陣進(jìn)行分解,每個(gè)節(jié)點(diǎn)的特征由1 到n階組合表示。
TADW[16]算法證明了DeepWalk 本質(zhì)上與 矩陣分解是相同的,并在已經(jīng)較為成熟的矩陣分解框架下,將文本特征引入網(wǎng)絡(luò)表示學(xué)習(xí)。設(shè)節(jié)點(diǎn)的鄰接矩陣為M,算法將M分解為3 個(gè)矩陣的乘積,其中矩陣T是固定的文本特征向量,另外2 個(gè)矩陣W與H為參數(shù)矩陣,使用共軛梯度下降法更新W與H矩陣求解參數(shù),如圖1 所示。

圖1 TADW 矩陣分解模型示意圖Fig.1 Schematic diagram of TADW matrix decomposition model
上述均為網(wǎng)絡(luò)表示學(xué)習(xí)技術(shù)的熱門算法,這些算法在推薦系統(tǒng)領(lǐng)域表現(xiàn)出較好的性能。本文受DeepWalk 算法的啟發(fā),提出RANE 算法,針對(duì)隨機(jī)游走和網(wǎng)絡(luò)表示兩部分分別進(jìn)行改進(jìn),修正游走序列數(shù)和游走長(zhǎng)度,網(wǎng)絡(luò)學(xué)習(xí)中融合屬性信息,最終將輸出用于推薦系統(tǒng)中,有效地提高了推薦性能。
在原始的DeepWalk 算法中,各節(jié)點(diǎn)在網(wǎng)絡(luò)中進(jìn)行均勻的隨機(jī)游走,進(jìn)而得到固定長(zhǎng)度、固定數(shù)量的游走序列,然后通過(guò)SkipGram 模型學(xué)習(xí)節(jié)點(diǎn)的向量表示。本文在DeepWalk 算法的基礎(chǔ)上進(jìn)行改進(jìn),RANE 算法具體步驟如下:
算法1RANE 算法
輸入圖G(V,E)、隨機(jī)游走停止概率P、每個(gè)節(jié)點(diǎn)的最大游走數(shù)量maxT、每個(gè)節(jié)點(diǎn)的最小游走數(shù)量minT、上下文窗口大小k、嵌入維度d、負(fù)樣本數(shù)量nns、頂點(diǎn)屬性矩陣A
輸出節(jié)點(diǎn)向量矩陣W、節(jié)點(diǎn)向量輔助矩陣W*、權(quán)重參數(shù)向量β

在算法1 中,首先基于網(wǎng)絡(luò)重要性進(jìn)行隨機(jī)游走采樣得到節(jié)點(diǎn)序列庫(kù),并設(shè)置停止概率控制序列長(zhǎng)度;然后在表示學(xué)習(xí)過(guò)程中,融合屬性信息進(jìn)行學(xué)習(xí);最后應(yīng)用學(xué)習(xí)后的向量進(jìn)行相似性表示,進(jìn)而完成推薦任務(wù)。因?yàn)镽ANE 算法是在原始DeepWalk中添加隨機(jī)游走相關(guān)參數(shù)以及融合屬性信息,并未涉及其他函數(shù)的加入,所以時(shí)空復(fù)雜度基本不變。
針對(duì)DeepWalk 算法中采樣點(diǎn)過(guò)多的問(wèn)題,重新設(shè)計(jì)隨機(jī)游走策略。對(duì)于網(wǎng)絡(luò)節(jié)點(diǎn)v,根據(jù)式(6)通過(guò)考慮重要性計(jì)算游走次數(shù)lv:

其中:maxT為隨機(jī)游走的最大次數(shù);minT為隨機(jī)游走的最小次數(shù);H(v)為節(jié)點(diǎn)的網(wǎng)絡(luò)重要性。計(jì)算PageRank[17]值需要對(duì)H(v)進(jìn)行數(shù)值量化,迭代公式如下:

其中:d為阻尼系數(shù);n為總節(jié)點(diǎn)數(shù);M(v)為網(wǎng)絡(luò)中與節(jié)點(diǎn)v關(guān)聯(lián)的節(jié)點(diǎn)集合;deg(v)是節(jié)點(diǎn)v的度。通過(guò)式(7)不斷進(jìn)行迭代,最后趨于穩(wěn)定的PR(v)值就是所需的H(v)。
另外,本文在游走過(guò)程中加入了停止概率P控制游走序列長(zhǎng)度,即在節(jié)點(diǎn)每次向下一個(gè)節(jié)點(diǎn)游走時(shí)都有概率P結(jié)束本次游走,使得游走生成的節(jié)點(diǎn)序列不再是統(tǒng)一長(zhǎng)度。
通過(guò)以上改進(jìn),使得重要的節(jié)點(diǎn)采樣次數(shù)增加,可以更好地還原網(wǎng)絡(luò)結(jié)構(gòu),并且序列長(zhǎng)度不一,更接近真實(shí)情況。
在獲得節(jié)點(diǎn)序列庫(kù)后,本文在表示學(xué)習(xí)階段提出利用屬性信息學(xué)習(xí)節(jié)點(diǎn)向量表示的ASkipGram 模型。首先,應(yīng)用自動(dòng)編碼器調(diào)整節(jié)點(diǎn)的屬性維度[18-19],統(tǒng)一設(shè)置為d,所得屬性矩陣為A?R||V×d,其中,V為節(jié)點(diǎn)集,節(jié)點(diǎn)v的屬性向量可以表示為Av。然后,將所得到的屬性信息矩陣融入表示學(xué)習(xí)中。將屬性信息和網(wǎng)絡(luò)結(jié)構(gòu)相結(jié)合得到兩者的融合向量U(v):

其中:Wv為隱藏層的詞向量;βv為節(jié)點(diǎn)v的屬性權(quán)重。在式(8)中,在融合節(jié)點(diǎn)屬性信息時(shí),使用進(jìn)行計(jì)算而沒有直接使用權(quán)重βv,這樣可以保證無(wú)論如何包含屬性信息的部分均不可能為0,進(jìn)而確保了節(jié)點(diǎn)的屬性信息在模型訓(xùn)練中的參與度。在得到融合向量U(v)后,使用其代替原文中的詞向量Wv與輸出層的節(jié)點(diǎn)輔助詞向量進(jìn)行點(diǎn)積,計(jì)算得出節(jié)點(diǎn)v與x之間的相似度。
經(jīng)過(guò)隨機(jī)游走后,可采樣得到節(jié)點(diǎn)v的上下文集合為Context(v)。對(duì)于節(jié)點(diǎn)v,Context(v)中的單詞全為正樣本,而其他單詞全為負(fù)樣本,因此對(duì)

其中:u為v上下文集合中的任一單詞。對(duì)原模型中條件概率p(x|v)進(jìn)行改進(jìn),計(jì)算公式如下:

其中:σ為Sigmoid 函數(shù);Lu(x)為標(biāo)志位,當(dāng)正采樣時(shí)Lu(x)=1,負(fù)采樣時(shí)Lu(x)=0。由于原SkipGram 模型在訓(xùn)練時(shí)未考慮上下文節(jié)點(diǎn)與中心節(jié)點(diǎn)的距離,而對(duì)于推薦系統(tǒng)而言,較近的兩節(jié)點(diǎn)之間應(yīng)該具有更高的相似性,因此本文在式(10)中引入權(quán)重λx,v,定義該權(quán)重系數(shù)如下:

其中:D(x,v)為節(jié)點(diǎn)x與v之間的距離。當(dāng)x與v直接相連時(shí),D(x,v)=1;當(dāng)兩者之間有一個(gè)節(jié)點(diǎn)時(shí),D(x,v)=2,以此類推。
將對(duì)單個(gè)節(jié)點(diǎn)v的計(jì)算結(jié)論擴(kuò)展至總語(yǔ)料庫(kù)C,則所有節(jié)點(diǎn)最大化目標(biāo)函數(shù)如下:

將式(9)和式(10)代入式(12),為方便計(jì)算對(duì)式(12)取對(duì)數(shù)作為最終函數(shù):

令L 對(duì)U(v)和分別求偏導(dǎo):

對(duì)于式(14),為在訓(xùn)練過(guò)程中針對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行屬性權(quán)重的自適應(yīng)調(diào)節(jié),最終進(jìn)行更新的參數(shù)為Wv和βv,因此分別對(duì)Wv和βv求偏導(dǎo):

設(shè)梯度更新學(xué)習(xí)速率為η,則Wv、和βv的更新結(jié)果為:

算法2ASkipGram(nns,A,k,Cv,W,W*,β)

在同質(zhì)圖的推薦中,以節(jié)點(diǎn)相似性為依據(jù)進(jìn)行推薦,而其中必然應(yīng)用到以向量形式對(duì)節(jié)點(diǎn)進(jìn)行表示。根據(jù)上文計(jì)算結(jié)果,可以得到任意節(jié)點(diǎn)v的向量表示:

為方便進(jìn)行統(tǒng)一的度量,先對(duì)向量進(jìn)行L2 范數(shù)歸一化處理,然后使用向量?jī)?nèi)積的方式表示兩節(jié)點(diǎn)的相似度,最終相似度計(jì)算結(jié)果如下:

對(duì)某一節(jié)點(diǎn)而言,利用式(22)計(jì)算出該節(jié)點(diǎn)與其他節(jié)點(diǎn)的相似度,排序后根據(jù)預(yù)先設(shè)定的閾值取出相似度高的節(jié)點(diǎn)進(jìn)行推薦。
實(shí)驗(yàn)選取3 個(gè)數(shù)據(jù)集進(jìn)行驗(yàn)證,分別為Cora、Citeseer 和BlogCatalog,其中,Cora 和Citeseer 數(shù)據(jù)集來(lái)源于科學(xué)出版物網(wǎng)絡(luò),BlogCatalog 來(lái)源于社交網(wǎng)絡(luò)。具體統(tǒng)計(jì)信息如表1 所示。

表1 實(shí)驗(yàn)數(shù)據(jù)集信息Table 1 Experimental dataset information
本文選定以下4 種算法與RANE 算法進(jìn)行對(duì)比:
1)DeepWalk[8]。該算法 是本文 算法的 思想基礎(chǔ),采用均勻隨機(jī)游走生成節(jié)點(diǎn)序列,并通過(guò)SkipGram 模型進(jìn)行網(wǎng)絡(luò)表示學(xué)習(xí)。
2)Node2vec[13]。該算法針對(duì)DeepWalk 的隨機(jī)游走部分進(jìn)行改進(jìn),控制隨機(jī)游走偏向。
3)GraRep[15]。該算法是對(duì)LINE 算法的擴(kuò)展,定義了網(wǎng)絡(luò)的n階距離矩陣并使用SVD 算法對(duì)網(wǎng)絡(luò)的1 到n階矩陣進(jìn)行分解,每個(gè)節(jié)點(diǎn)的特征由1 到n階的特征拼接表示。
4)TADW[16]。該算法是DeepWalk 算法的 擴(kuò)展算法,將節(jié)點(diǎn)的文本信息特征矩陣融入到矩陣分解過(guò)程中,最終將得到的兩個(gè)分解后的矩陣中的對(duì)應(yīng)向量進(jìn)行拼接,作為節(jié)點(diǎn)的最終嵌入表示。
采用ROC 曲線下方面積(Area Under Curve,AUC)來(lái)評(píng)測(cè)推薦系統(tǒng)性能。在計(jì)算過(guò)程中,采用下式降低計(jì)算復(fù)雜度[20]:

實(shí)驗(yàn)環(huán)境為Ubuntu 16.04,應(yīng)用Python 3.6.5 進(jìn)行算法開發(fā)。為了控制實(shí)驗(yàn)中輸出結(jié)果的可比較性,設(shè)定所有算法輸出節(jié)點(diǎn)向量的維度均為128 維,使用余弦相似度進(jìn)行節(jié)點(diǎn)間的相似度計(jì)算。對(duì)于使用均勻隨機(jī)游走的算法,規(guī)定任一節(jié)點(diǎn)游走的次數(shù)為20,序列長(zhǎng)度為40,其余參數(shù)根據(jù)實(shí)驗(yàn)選擇最優(yōu)設(shè)定。RANE 算法中maxT設(shè)為40,minT設(shè)為10,隨機(jī)游走終止概率P設(shè)為0.15。在節(jié)點(diǎn)嵌入學(xué)習(xí)部分,DeepWalk、Node2vec 與RANE 算法的上下文窗口大小設(shè)為5,學(xué)習(xí)率設(shè)為0.01,負(fù)樣本個(gè)數(shù)設(shè)為4。對(duì)于GraRep 算法設(shè)定融合1 至4 階鄰居信息組成節(jié)點(diǎn)向量,其余參數(shù)均沿用原論文設(shè)定。對(duì)于TADW 算法,除節(jié)點(diǎn)嵌入維度外其他參數(shù)依照原論文設(shè)定,取迭代至穩(wěn)定的節(jié)點(diǎn)嵌入向量作為結(jié)果。
在實(shí)驗(yàn)過(guò)程中,選取數(shù)據(jù)集的10%作為測(cè)試集,其是在保證訓(xùn)練集中無(wú)孤立節(jié)點(diǎn)的情況下隨機(jī)選取的,并且保證測(cè)試集中正采樣與負(fù)采樣數(shù)量相同。
3.5.1 推薦性能分析
改變訓(xùn)練集的數(shù)量比率(R),使其占數(shù)據(jù)集的40%~90%,測(cè)試集不變,均為上文設(shè)置。對(duì)不同數(shù)量訓(xùn)練集,每種算法進(jìn)行10 次獨(dú)立測(cè)試,取平均值后作為該次實(shí)驗(yàn)的最終結(jié)果。
在Citeseer 數(shù)據(jù)集上,5 種算法的準(zhǔn)確度對(duì)比結(jié)果如表2 所示。可以看出,RANE 算法在不同的訓(xùn)練集比率下所得結(jié)果均優(yōu)于其他算法,而在訓(xùn)練集比率為40%的情況下,優(yōu)勢(shì)最明顯。

表2 5 種算法在Citeseer 數(shù)據(jù)集上的準(zhǔn)確度對(duì)比結(jié)果Table 2 Comparison results of the accuracy of five algorithms on the Citeseer dataset
在Cora 數(shù)據(jù)集上,5 種算法的準(zhǔn)確度對(duì)比結(jié)果如表3 所示,可以看出整體趨勢(shì)和Citeseer 數(shù)據(jù)集相同,RANE 算法仍然具有最優(yōu)的性能表現(xiàn),且在訓(xùn)練集比率較低的情況下優(yōu)勢(shì)更明顯。

表3 5 種算法在Cora 數(shù)據(jù)集上的準(zhǔn)確度對(duì)比結(jié)果Table 3 Comparison results of the accuracy of five algorithms on the Cora dataset
在BlogCatalog 數(shù)據(jù)集上,5 種算法的準(zhǔn)確度對(duì)比結(jié)果如表4 所示。綜合3 個(gè)數(shù)據(jù)集上所得結(jié)果可以看出,RANE 算法相比其他算法具有更好的推薦效果,并且在訓(xùn)練集比率較小時(shí)優(yōu)勢(shì)更明顯,主要原因筆者認(rèn)為是該算法可以更好地解決冷啟動(dòng)問(wèn)題。

表4 5 種算法在BlogCatalog 數(shù)據(jù)集上的準(zhǔn)確度對(duì)比結(jié)果Table 4 Comparison results of the accuracy of five algorithms on the BlogCatalog dataset
3.5.2 隨機(jī)游走與表示學(xué)習(xí)模塊消融實(shí)驗(yàn)
由于本文算法在DeepWalk 算法上對(duì)隨機(jī)游走和節(jié)點(diǎn)表示學(xué)習(xí)兩部分均進(jìn)行改進(jìn),為了測(cè)試每一部分的改進(jìn)對(duì)最終結(jié)果的影響情況,本文對(duì)兩部分進(jìn)行了消融實(shí)驗(yàn)。RRANE 算法表示僅改進(jìn)隨機(jī)游走部分,ARANE 算法表示僅改進(jìn)節(jié)點(diǎn)表示學(xué)習(xí)部分,在BlogCatalog 數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn),準(zhǔn)確度結(jié)果如表5 所示??梢钥闯觯瑑刹糠志鶎?duì)最終結(jié)果有一定的性能提升,但節(jié)點(diǎn)表示學(xué)習(xí)部分對(duì)整體算法的性能影響更大。

表5 RANE 隨機(jī)游走與節(jié)點(diǎn)表示學(xué)習(xí)模塊的消融實(shí)驗(yàn)結(jié)果Table 5 Results of ablation experiments of random walk and node representation learning module of RANE
3.5.3 隨機(jī)游走模塊采樣效果驗(yàn)證
為驗(yàn)證改進(jìn)后的隨機(jī)游走策略對(duì)采樣序列的修正效果,選取BlogCatalog 數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),結(jié)果如圖2 所示。設(shè)置maxT為40,minT為10,隨機(jī)游走終止概率為0.15??梢钥闯?,改進(jìn)后的隨機(jī)游走策略更好地保留了網(wǎng)絡(luò)結(jié)構(gòu)特性。

圖2 RANE 隨機(jī)游走序列節(jié)點(diǎn)分布Fig.2 Node distribution of random walk sequence of RANE
3.5.4 參數(shù)敏感性分析
在BlogCatalog 數(shù)據(jù)集上對(duì)算法進(jìn)行參數(shù)敏感性分析。本文分析maxT與minT參數(shù),在分別固定minT或maxT的同時(shí)調(diào)節(jié)另一個(gè)參數(shù)進(jìn)行實(shí)驗(yàn)。如圖3 所示,minT對(duì)AUC值的影響更大。

圖3 min T 與max T 的參數(shù)敏感性實(shí)驗(yàn)Fig.3 Experiment on parameters sensitivity of min T and max T
對(duì)隨機(jī)游走部分的終止概率P進(jìn)行敏感性測(cè)試,設(shè)置P為0.05、0.10、0.15、0.20、0.25、0.30。如圖4所示,終止概率越小,AUC 值越大,但此時(shí)游走長(zhǎng)度更長(zhǎng),相應(yīng)的計(jì)算量就會(huì)增大,因此實(shí)驗(yàn)過(guò)程中應(yīng)綜合考慮推薦效果與計(jì)算成本。

圖4 游走終止概率的參數(shù)敏感性實(shí)驗(yàn)Fig.4 Experiment on parameter sensitivity of walk termination probability
由于RANE 算法在計(jì)算節(jié)點(diǎn)相似性時(shí)引入了有關(guān)上下文節(jié)點(diǎn)與中心點(diǎn)距離的權(quán)重,因此需要對(duì)ASkipGram 模型的窗口大小k進(jìn)行參數(shù)敏感性分析,窗口大小依次設(shè)置為1、3、5、7、9、11、13、15。如圖5所示,隨著窗口的不斷增大,AUC 值呈先增大后減小的變化趨勢(shì),說(shuō)明窗口取得過(guò)大或過(guò)小都會(huì)影響節(jié)點(diǎn)網(wǎng)絡(luò)特征的表征效果。

圖5 ASkipGram 模型窗口大小的參數(shù)敏感性實(shí)驗(yàn)Fig.5 Experiment on parameter sensitivity of window size of ASkipGram model
測(cè)試節(jié)點(diǎn)嵌入維度d分別為16、32、64、128 和256 時(shí)的RANE 算法AUC 值,其他參數(shù)均為上文設(shè)置,在BlogCatalog 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如圖6 所示,可以看出在嵌入維度為128 時(shí)AUC 取得最優(yōu)值。

圖6 節(jié)點(diǎn)嵌入維度的參數(shù)敏感性實(shí)驗(yàn)Fig.6 Experiment on parameter sensitivity of node embedded dimension
本文在DeepWalk 算法的基礎(chǔ)上,提出基于隨機(jī)游走的網(wǎng)絡(luò)表示學(xué)習(xí)推薦算法。根據(jù)節(jié)點(diǎn)重要性決定游走序列數(shù),設(shè)置終止概率使得游走序列的長(zhǎng)度不完全相同,從而更接近真實(shí)情況。同時(shí),在節(jié)點(diǎn)表示學(xué)習(xí)過(guò)程中,融合節(jié)點(diǎn)的屬性信息,自適應(yīng)調(diào)整節(jié)點(diǎn)屬性信息權(quán)重,并考慮上下文節(jié)點(diǎn)離中心節(jié)點(diǎn)的距離,以獲得更準(zhǔn)確的推薦結(jié)果。在3 個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該算法具有較好的推薦性能,并且有效解決了冷啟動(dòng)問(wèn)題。但由于該算法隨機(jī)游走部分設(shè)置的截止概率為隨機(jī)生成,因此后續(xù)可將其與游走長(zhǎng)度相關(guān)聯(lián),進(jìn)一步提高推薦準(zhǔn)確度。