丁來(lái)旭, 劉洪娟
(東北大學(xué) 軟件學(xué)院, 遼寧 沈陽(yáng) 110169)
現(xiàn)今,大數(shù)據(jù)所蘊(yùn)含的信息給人們生活帶來(lái)了無(wú)限的便利,但與此同時(shí),信息價(jià)值良莠不齊,人們被大量低價(jià)值信息包圍,如何快速地獲取有價(jià)值的信息,成為亟需解決的難題.因此,推薦系統(tǒng)應(yīng)運(yùn)而生,其核心目的就是通過(guò)信息技術(shù)手段,快速匹配用戶需求和有效信息.隨著研究的深入,推薦系統(tǒng)精度逐漸提高,但傳統(tǒng)的推薦算法只有在用戶評(píng)分充足的情況下,推薦效果較好.而事實(shí)上評(píng)分矩陣往往是稀疏的,以電影評(píng)分為例,大多數(shù)用戶僅僅看過(guò)幾十部電影就參與評(píng)分,同時(shí)也存在著大量影片評(píng)分較少的現(xiàn)象.數(shù)據(jù)稀疏會(huì)嚴(yán)重影響推薦精度,甚至導(dǎo)致算法失靈.
近年來(lái),網(wǎng)絡(luò)表示學(xué)習(xí)逐漸成為研究熱點(diǎn)[1-2].網(wǎng)絡(luò)表示學(xué)習(xí),又名圖嵌入、網(wǎng)絡(luò)嵌入,通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí),生成網(wǎng)絡(luò)節(jié)點(diǎn)的向量表示,將節(jié)點(diǎn)向量表示作為后續(xù)任務(wù)的輸入,完成多樣化應(yīng)用任務(wù),例如鏈路預(yù)測(cè)、可視化和推薦任務(wù)等.
Zhao等[3]首次將網(wǎng)絡(luò)表示學(xué)習(xí)應(yīng)用于推薦系統(tǒng),將矩陣視為網(wǎng)絡(luò),通過(guò)網(wǎng)絡(luò)表示學(xué)習(xí)生成節(jié)點(diǎn)的低維向量表示,根據(jù)向量的相似性分別進(jìn)行項(xiàng)目推薦和標(biāo)簽推薦.Barkan等[4]提出了ITEM2VEC算法,將自然語(yǔ)言處理中的負(fù)采樣(negtive sampling)和跳詞(skip-gram)技術(shù)應(yīng)用于ITEM2VEC算法中,學(xué)習(xí)物品在低維空間的向量表示,進(jìn)行相似物品推薦.網(wǎng)絡(luò)中的節(jié)點(diǎn)本身具有獨(dú)特的屬性信息,將這些信息融入到學(xué)習(xí)過(guò)程,會(huì)提高表示學(xué)習(xí)的準(zhǔn)確度. Li等[5]將時(shí)間屬性融入到表示學(xué)習(xí)的過(guò)程中,提升了推薦效果.網(wǎng)絡(luò)可以表示多樣的信息關(guān)系,通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的拆分,使得嵌入過(guò)程具有更強(qiáng)的解釋性,基于這一思想,Xu等[6]提出PGCN(path conditioned graph convolutional network)算法.
無(wú)論是對(duì)網(wǎng)絡(luò)進(jìn)行拆分,還是對(duì)網(wǎng)絡(luò)進(jìn)行整體嵌入,基于網(wǎng)絡(luò)表示學(xué)習(xí)的推薦算法對(duì)權(quán)重的處理往往體現(xiàn)在連邊被采樣的概率上,并不能反映出用戶對(duì)物品的偏好.本文以電影推薦場(chǎng)景為例,提出基于多維特征表示學(xué)習(xí)(multi-dimensional feature representation learning, MFL)的混合推薦算法.該算法對(duì)電影評(píng)分網(wǎng)絡(luò)進(jìn)行拆分,基于改進(jìn)LINE算法對(duì)用戶喜愛(ài)電影和厭惡電影進(jìn)行層次推進(jìn)式學(xué)習(xí).基于改進(jìn)的DeepWalk算法,獲取相似用戶序列,捕獲相似用戶特征.將喜好特征、厭惡特征和相似用戶特征線性組合后,連接為用戶最終的特征向量,以余弦相似度作為相似性度量指標(biāo),完成電影推薦任務(wù).公共數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文提出的MFL推薦算法在準(zhǔn)確率和F1指標(biāo)上,相比于其他算法表現(xiàn)良好,具備一定的優(yōu)越性.
傳統(tǒng)的推薦算法只能捕獲到用戶和物品直接相鄰的一階關(guān)系,對(duì)于物品共現(xiàn)等二階以上的關(guān)系,難以展現(xiàn).同時(shí),相關(guān)算法也存在著大規(guī)模稀疏矩陣導(dǎo)致的算法失靈問(wèn)題.隨著深度學(xué)習(xí)技術(shù)的發(fā)展,將用戶數(shù)據(jù)和物品數(shù)據(jù)輸入到算法模型,通過(guò)大量訓(xùn)練,可以捕獲到用戶和物品之間的高階關(guān)系,擴(kuò)展已有信息,從而實(shí)現(xiàn)更加精準(zhǔn)的推薦.
2016年,Cheng等[7]提出了Wide & Deep模型,該模型是由淺層神經(jīng)網(wǎng)絡(luò)Wide部分和深層神經(jīng)網(wǎng)絡(luò)Deep部分組成,前者使模型具有記憶能力,后者使模型具有泛化能力.通過(guò)訓(xùn)練優(yōu)化模型參數(shù),將產(chǎn)生的結(jié)果拼接,送到輸出層,完成推薦.Wide & Deep模型同時(shí)考慮到低階和高階特征,但對(duì)低階特征需要手工干預(yù).Guo等[8]提出的DeepFM模型保留高低階特征的同時(shí),可以避免人工干預(yù),成為推薦領(lǐng)域炙手可熱的算法之一.
近年來(lái),深度神經(jīng)網(wǎng)絡(luò)成功地應(yīng)用于自然語(yǔ)言處理領(lǐng)域.Mikolov等[9]提出word2vec算法,其核心思想是將單詞和短語(yǔ)映射到低維向量空間,以捕獲單詞之間的語(yǔ)義關(guān)系,算法引入負(fù)采樣的跳詞技術(shù)極大地提高了任務(wù)處理能力,因其高效準(zhǔn)確已擴(kuò)展到自然語(yǔ)言處理以外的其他領(lǐng)域.
網(wǎng)絡(luò)表示學(xué)習(xí)是指從網(wǎng)絡(luò)數(shù)據(jù)中學(xué)習(xí)得到網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的向量表示,節(jié)點(diǎn)表示就可以作為節(jié)點(diǎn)的特征應(yīng)用于后續(xù)的網(wǎng)絡(luò)應(yīng)用任務(wù)中[10].
DeepWalk[1]算法首次將詞嵌入算法應(yīng)用到網(wǎng)絡(luò)表示學(xué)習(xí)領(lǐng)域.算法將復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)視為自然語(yǔ)言處理中的“語(yǔ)料庫(kù)”,通過(guò)隨機(jī)游走的方式,獲取節(jié)點(diǎn)序列,將節(jié)點(diǎn)在序列中出現(xiàn)的概率等同于單詞在句子中出現(xiàn)的概率,通過(guò)詞嵌入模型,獲取節(jié)點(diǎn)的網(wǎng)絡(luò)表示.Node2vec[11]是DeepWalk的改進(jìn)算法,在游走的過(guò)程中考慮深度優(yōu)先和廣度優(yōu)先,分別反映出節(jié)點(diǎn)鄰居的宏觀特性和微觀特性,從而獲取網(wǎng)絡(luò)結(jié)構(gòu)信息,進(jìn)行網(wǎng)絡(luò)表示學(xué)習(xí).BiasedWalk[12]是基于Node2vec的改進(jìn)算法,與源點(diǎn)距離較近的點(diǎn)具有更高相似性,通過(guò)控制距離進(jìn)行深度和廣度游走,既能保留高階鄰近信息,又能夠捕獲節(jié)點(diǎn)間的同質(zhì)關(guān)系和等價(jià)關(guān)系.在網(wǎng)絡(luò)游走過(guò)程中,有些節(jié)點(diǎn)相距較遠(yuǎn),但是結(jié)構(gòu)相似,常規(guī)游走難以捕獲這類關(guān)系.Struc2vec[13]通過(guò)構(gòu)建帶權(quán)層次圖,在帶權(quán)層次圖中隨機(jī)游走采樣頂點(diǎn)序列,可以有效地捕獲相距較遠(yuǎn)但結(jié)構(gòu)相似的節(jié)點(diǎn).
相較于通過(guò)游走學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),嵌入學(xué)習(xí)的算法是通過(guò)定義損失函數(shù)方式進(jìn)行網(wǎng)絡(luò)學(xué)習(xí),其中具有代表性的網(wǎng)絡(luò)表示學(xué)習(xí)算法是LINE算法[2].LINE算法同時(shí)考慮到網(wǎng)絡(luò)的一階相似和二階相似,將相鄰的兩個(gè)節(jié)點(diǎn)視為一階相似,共同鄰居的節(jié)點(diǎn)視為二階相似.通過(guò)自定義的損失函數(shù)方式,對(duì)所有一階和二階相似度的節(jié)點(diǎn)對(duì)進(jìn)行概率建模,該算法能有效地保存網(wǎng)絡(luò)的局部信息和全局信息.SDNE(structural deep network embedding)[14]是LINE算法的擴(kuò)展工作,二階相似度通過(guò)無(wú)監(jiān)督學(xué)習(xí)來(lái)捕獲全局結(jié)構(gòu),一階相似度通過(guò)監(jiān)督學(xué)習(xí)來(lái)保留局部結(jié)構(gòu),該模型對(duì)兩個(gè)部分聯(lián)合優(yōu)化,保留網(wǎng)絡(luò)信息.
2018年,阿里巴巴團(tuán)隊(duì)在DeepWalk的基礎(chǔ)上,將節(jié)點(diǎn)本身特征加入到嵌入模型,提出EGES(enhanced graph embedding with side information)算法[15],將嵌入算法應(yīng)用于十億級(jí)的數(shù)據(jù),是嵌入領(lǐng)域?yàn)閿?shù)不多的應(yīng)用于工業(yè)生產(chǎn)的算法.
MFL推薦算法可以分為以下四個(gè)步驟:
1) 將用戶對(duì)電影的評(píng)分矩陣視為復(fù)雜網(wǎng)絡(luò),其中用戶和電影視為網(wǎng)絡(luò)節(jié)點(diǎn),評(píng)分視為網(wǎng)絡(luò)連線權(quán)重.以連線權(quán)重作為區(qū)分,將網(wǎng)絡(luò)分為高權(quán)重子網(wǎng)和低權(quán)重子網(wǎng).
2) 基于改進(jìn)的LINE算法,學(xué)習(xí)高權(quán)重子網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu),生成用戶向量和電影向量.將高權(quán)重子網(wǎng)生成的電影向量作為低權(quán)重網(wǎng)絡(luò)學(xué)習(xí)的輸入,學(xué)習(xí)低權(quán)重子網(wǎng)結(jié)構(gòu),生成低權(quán)重子網(wǎng)的用戶向量.
3) 從全網(wǎng)節(jié)點(diǎn)中,隨機(jī)抽出對(duì)電影有相同評(píng)分的用戶節(jié)點(diǎn),形成用戶節(jié)點(diǎn)序列,將用戶節(jié)點(diǎn)序列輸入到CBOW(continuous bag-of-word)[16]算法中,學(xué)習(xí)相似用戶的特征.
4) 將每個(gè)用戶節(jié)點(diǎn)生成的三個(gè)維度特征向量線性組合后拼接成最終的用戶向量.以向量的余弦距離作為節(jié)點(diǎn)間相似指標(biāo),生成目標(biāo)用戶的相似用戶集,將相似用戶關(guān)聯(lián)的電影推薦給目標(biāo)用戶,完成推薦任務(wù).
評(píng)分矩陣作為推薦算法的輸入,常常是由作為記錄組成的,其中u代表用戶編號(hào),i代表電影編號(hào),t代表用戶對(duì)電影的評(píng)分.用戶和電影構(gòu)成網(wǎng)絡(luò)中的節(jié)點(diǎn),其中U={u1,u2,…,um}為用戶集,I={i1,i2,…,in}為電影集,E={eij|i=1,2,…,n;j=1,2,…,m}為連邊集,當(dāng)存在一條連邊eij=t,代表用戶ui對(duì)電影ij的評(píng)分為t.該網(wǎng)絡(luò)可以表示為G=(V,E,W),其中,V=U∩I,E?U×I,W為連邊上的權(quán)重矩陣.網(wǎng)絡(luò)表示學(xué)習(xí)算法對(duì)網(wǎng)絡(luò)結(jié)構(gòu)信息進(jìn)行學(xué)習(xí),生成網(wǎng)絡(luò)節(jié)點(diǎn)的低維向量表示.向量的相似性作為用戶相似性的指標(biāo),選取最相似的Top-k個(gè)用戶,將相似用戶集關(guān)聯(lián)的電影構(gòu)成電影推薦集,推薦給目標(biāo)用戶.
2.2.1 喜好特征的網(wǎng)絡(luò)表示學(xué)習(xí)
提取網(wǎng)絡(luò)連邊權(quán)重大于最大權(quán)重一半的邊,生成用戶喜愛(ài)網(wǎng)絡(luò)(高權(quán)重子網(wǎng)),例如,對(duì)于最高評(píng)分為5的評(píng)分網(wǎng)絡(luò),凡是評(píng)分大于等于3分的連邊均被提取.
對(duì)于每一個(gè)邊,利用softmax函數(shù),用戶節(jié)點(diǎn)vi生成電影節(jié)點(diǎn)vj的條件概率為
(1)
其中,|V|代表全部節(jié)點(diǎn).
用戶節(jié)點(diǎn)vi生成電影節(jié)點(diǎn)vj的經(jīng)驗(yàn)分布為
(2)
(3)
其中,λi表示節(jié)點(diǎn)vi的重要程度,這里取λi=di,最終得到目標(biāo)函數(shù):
(4)
在對(duì)損失優(yōu)化的過(guò)程中,計(jì)算條件概率P(vj|vi)需要對(duì)全網(wǎng)節(jié)點(diǎn)進(jìn)行遍歷,在大規(guī)模網(wǎng)絡(luò)結(jié)構(gòu)中,計(jì)算的過(guò)程需要大量的時(shí)間和資源.為解決復(fù)雜度較高的問(wèn)題,引用文獻(xiàn)[9]中的方法,用負(fù)采樣方法替代對(duì)全網(wǎng)節(jié)點(diǎn)的遍歷,損失函數(shù)轉(zhuǎn)化為
(5)
經(jīng)過(guò)迭代優(yōu)化,生成兩類向量,Φ1和Φ′分別代表用戶的喜好特征向量和電影向量.
2.2.2 厭惡特征的網(wǎng)絡(luò)表示學(xué)習(xí)
提取網(wǎng)絡(luò)連邊權(quán)重小于最大權(quán)重一半的邊,形成用戶厭惡網(wǎng)絡(luò),對(duì)用戶厭惡的網(wǎng)絡(luò)進(jìn)行學(xué)習(xí),學(xué)習(xí)的目標(biāo)函數(shù)為
(6)
厭惡網(wǎng)絡(luò)學(xué)習(xí)和喜愛(ài)網(wǎng)絡(luò)學(xué)習(xí)的區(qū)別主要體現(xiàn)在兩點(diǎn):首先,在用戶喜愛(ài)網(wǎng)絡(luò)的表示學(xué)習(xí)中,不對(duì)用戶節(jié)點(diǎn)和電影節(jié)點(diǎn)初始化設(shè)定;在厭惡網(wǎng)絡(luò)學(xué)習(xí)中,電影節(jié)點(diǎn)需要初始化設(shè)定,其設(shè)定值為喜愛(ài)網(wǎng)絡(luò)輸出的電影向量,用戶節(jié)點(diǎn)不作初始化設(shè)定.其次,在訓(xùn)練的過(guò)程中,喜好網(wǎng)絡(luò)對(duì)全部節(jié)點(diǎn)進(jìn)行學(xué)習(xí),包括電影節(jié)點(diǎn)和用戶節(jié)點(diǎn);相對(duì)地,在厭惡網(wǎng)絡(luò)表示學(xué)習(xí)的過(guò)程中,電影向量被鎖定,僅對(duì)用戶向量進(jìn)行學(xué)習(xí).
2.2.3 算法1描述
算法1描述見(jiàn)表1.
表1 算法1
將抽取的序列輸入到自然語(yǔ)言處理算法CBOW模型[16]中.對(duì)于某一部電影vj,抽取得到的序列為Wvj=(v1,v2,v3,…,vk),本文希望通過(guò)訓(xùn)練語(yǔ)料庫(kù),最大化概率P(vi|v1,…,vi-1,vi+1,…,vk).其中每一個(gè)節(jié)點(diǎn)都可以通過(guò)低維向量進(jìn)行表示,隨后最大化概率P可轉(zhuǎn)換為如下公式:
P(vi|Φ(v1),…,Φ(vi-1),Φ(vi+1),…,
Φ(vk)).
(7)
在網(wǎng)絡(luò)表示學(xué)習(xí)的模型中,最終優(yōu)化目標(biāo)函數(shù)轉(zhuǎn)化為
(8)
為減少計(jì)算量,實(shí)際訓(xùn)練的過(guò)程中,選取目標(biāo)詞vi前后一個(gè)窗口的長(zhǎng)度所組成的子序列作為CBOW模型的輸入.本文窗口長(zhǎng)度window_size=40.通過(guò)對(duì)相似用戶的學(xué)習(xí),生成用戶特征向量Φ3,算法描述如表2所示.
對(duì)于一個(gè)用戶節(jié)點(diǎn),將會(huì)生成三組向量Φ1,Φ2,Φ3,分別代表用戶喜好特征、厭惡特征和相似用戶特征.用戶節(jié)點(diǎn)vi最終的低維向量可以表示為Φ1,Φ2,Φ3線性組合,即
Φ(vi)=(α1·Φ1(vi),α2·Φ2(vi),α3·Φ3(vi)).
(9)
根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn),將α1,α2,α3分別設(shè)置為0.5,0.3,0.2.生成的最終用戶向量Φ(vi),以余弦相似度作為用戶間相似性指標(biāo)Sim,選取最相似的三個(gè)用戶組成目標(biāo)用戶的相似用戶集S(u).
(10)
將用戶集合S(u)所有關(guān)聯(lián)的電影推薦給目標(biāo)用戶,完成推薦任務(wù).
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于2個(gè)開(kāi)放的數(shù)據(jù)集MovieLens[17]和MovieTweetings[18].MovieLens數(shù)據(jù)集來(lái)源于Group平臺(tái),包括用戶6 040個(gè),電影3 952部,評(píng)分?jǐn)?shù)量100 000次.在對(duì)用戶和電影節(jié)點(diǎn)學(xué)習(xí)的過(guò)程中,1個(gè)用戶沒(méi)有喜愛(ài)的電影,346部電影無(wú)人喜歡,無(wú)法完成喜愛(ài)特征提取,去除與之相關(guān)的數(shù)據(jù)記錄,最終數(shù)據(jù)處理后的結(jié)果如表3所示.MovieTweetings更新于2020年9月24日,包含69 324個(gè)用戶和36 383部電影,共有評(píng)分888 452個(gè).為體現(xiàn)不同算法在稀疏數(shù)據(jù)上的表現(xiàn)差異,推薦任務(wù)的推薦目標(biāo)為評(píng)分表中有40個(gè)以上評(píng)分記錄的用戶,滿足條件的用戶數(shù)據(jù)如表3所示.實(shí)驗(yàn)數(shù)據(jù)集隨機(jī)分為兩部分,取80%的數(shù)據(jù)作為訓(xùn)練集,其余數(shù)據(jù)作為測(cè)試集.
表3 數(shù)據(jù)集摘要統(tǒng)計(jì)
實(shí)驗(yàn)中,對(duì)比算法包括DeepWalk[1]、LINE[2]、BiasedWalk[12]、Struc2vec[13]和GraphWave[19],算法的嵌入維度為200,其余參數(shù)均為默認(rèn)值.
DeepWalk算法是一種經(jīng)典的提取網(wǎng)絡(luò)特征算法,通過(guò)隨機(jī)游走獲取游走序列,將游走序列輸入到嵌入算法中,從而獲得網(wǎng)絡(luò)節(jié)點(diǎn)的低維向量表示,游走長(zhǎng)度默認(rèn)為10,窗口大小默認(rèn)為5.LINE算法通過(guò)對(duì)相鄰節(jié)點(diǎn)對(duì)和有公共鄰居節(jié)點(diǎn)對(duì)的概率建模,保存網(wǎng)絡(luò)的局部信息和全局信息,最終獲取節(jié)點(diǎn)的低維向量表示,負(fù)采樣數(shù)默認(rèn)為5.Struc2vec算法在帶權(quán)層次圖中隨機(jī)游走,可以有效地捕獲相距較遠(yuǎn)但結(jié)構(gòu)相似的節(jié)點(diǎn),游走長(zhǎng)度為10,窗口大小為5.BiasedWalk算法通過(guò)控制距離進(jìn)行深度和廣度游走,既能保留高階鄰近信息,又能夠捕獲節(jié)點(diǎn)間的同質(zhì)關(guān)系和等價(jià)關(guān)系,游走長(zhǎng)度默認(rèn)為80,窗口大小10.GraphWave算法是一種全新的網(wǎng)絡(luò)嵌入方法,利用波動(dòng)擴(kuò)散方式學(xué)習(xí)節(jié)點(diǎn)網(wǎng)絡(luò)鄰域,將小波視為圖上的概率分布,采樣步長(zhǎng)默認(rèn)為20.
對(duì)于MFL推薦算法,α1=0.5,α2=0.3,α3=0.2,d=200,max=100,min=10,windows_size=40.
每個(gè)算法選出最相似的三個(gè)用戶,將三個(gè)用戶關(guān)聯(lián)的電影組成電影推薦集,推薦給目標(biāo)用戶.測(cè)評(píng)指標(biāo)包括準(zhǔn)確率、召回率和F1指標(biāo).
準(zhǔn)確率:
(11)
召回率:
(12)
F1指標(biāo):
(13)
其中:U是用戶集合;N(u)是推薦給目標(biāo)用戶的電影集合;T(u)是目標(biāo)用戶在測(cè)試集中觀看過(guò)的電影集合.
為了有效衡量不同方法的推薦效果,減少測(cè)試集中單人觀影記錄較少導(dǎo)致的數(shù)據(jù)異常,僅對(duì)測(cè)試集中觀影記錄10次以上的用戶進(jìn)行推薦.
根據(jù)3.2節(jié)參數(shù)的設(shè)定,實(shí)驗(yàn)結(jié)果如表4所示.
對(duì)比幾個(gè)算法,可以發(fā)現(xiàn),在MovieLens數(shù)據(jù)集上,MFL算法準(zhǔn)確率和F1指標(biāo)要好于其他算法.在召回率方面,除DeepWalk算法外,其他幾個(gè)算法表現(xiàn)接近.DeepWalk算法在不加限制的隨機(jī)游走的過(guò)程中,會(huì)頻繁經(jīng)過(guò)觀影記錄較多的用戶,在推薦過(guò)程中,目標(biāo)用戶總會(huì)被觀影記錄較多的用戶匹配,以犧牲準(zhǔn)確率為代價(jià)提高了召回率,DeepWalk算法雖然推薦的電影數(shù)量較多,但用戶滿意的較少,推薦過(guò)程中并沒(méi)有精確反映出用戶特征.基于這一點(diǎn),MFL算法能更加精準(zhǔn)地匹配出用戶需求,能更有效地完成推薦任務(wù).在MovieTweetings數(shù)據(jù)集中,數(shù)據(jù)記錄要比MovieLens更為稀疏,且需要推薦的備選電影是MovieLens的10倍,這就導(dǎo)致所有推薦算法在各項(xiàng)指標(biāo)上均呈現(xiàn)出不同程度的下降.召回率方面,幾個(gè)算法的差距明顯縮小,可以表明,在更大規(guī)模的稀疏數(shù)據(jù)上,提高推薦數(shù)量并不能有效改善推薦質(zhì)量.MFL算法在兩個(gè)數(shù)據(jù)集中的準(zhǔn)確率和F1指標(biāo)均是表現(xiàn)最好的方法,由此可見(jiàn)MFL算法的優(yōu)越性.
表4 電影推薦的實(shí)驗(yàn)結(jié)果
MFL算法相比于次優(yōu)算法LINE,在MovieLens數(shù)據(jù)集上的準(zhǔn)確率和F1指標(biāo)分別提升12%和7%,在MovieTweetings數(shù)據(jù)集上的準(zhǔn)確率和F1指標(biāo)分別提升16%和18%,說(shuō)明該算法能有效緩解稀疏性帶來(lái)的負(fù)面影響,面對(duì)稀疏矩陣,具備一定的優(yōu)越性.
MFL推薦算法充分考慮用戶的多維特征,分別對(duì)用戶的喜好特征和厭惡特征進(jìn)行學(xué)習(xí),同時(shí)還對(duì)相似用戶特征進(jìn)行學(xué)習(xí).喜好能反映用戶特征,厭惡同樣也能反映用戶特征.因此,通過(guò)多維學(xué)習(xí),MFL算法能更好地刻畫(huà)出用戶特征,同時(shí)該算法面對(duì)稀疏矩陣同樣有良好的表現(xiàn),相比于其他嵌入推薦算法,MFL算法能實(shí)現(xiàn)更加精準(zhǔn)的推薦.
MFL推薦算法對(duì)結(jié)果具有影響的參數(shù)包括向量的線性組合系數(shù)α、嵌入維度d.在相似用戶學(xué)習(xí)過(guò)程中,采樣相似用戶最大序列長(zhǎng)度max和最小序列長(zhǎng)度min,以及窗口大小window_size.實(shí)驗(yàn)隨機(jī)抽取MovieLens數(shù)據(jù)集中10%的用戶,對(duì)抽取的用戶進(jìn)行電影推薦,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析.
對(duì)于系數(shù)α,實(shí)驗(yàn)以0.1為步長(zhǎng),對(duì)比了三個(gè)特征向量在不同權(quán)重下的F1指標(biāo)表現(xiàn).通過(guò)實(shí)驗(yàn)數(shù)據(jù),給出適用于電影推薦的系數(shù)α取值范圍,以系數(shù)范圍代表值作為正文部分的實(shí)驗(yàn)系數(shù).實(shí)驗(yàn)結(jié)果如圖1、圖2所示.
由圖1可知,當(dāng)α1取固定值時(shí),α2和α3具有一定的互補(bǔ)性.在每個(gè)α1的區(qū)間段內(nèi),當(dāng)α2和α3取值較為接近時(shí),推薦效果較好,說(shuō)明在α1區(qū)間段內(nèi),α2和α3均對(duì)推薦作出了貢獻(xiàn).與此同時(shí),隨著α1的取值逐漸提高,區(qū)段推薦效果的平均值也在提高,當(dāng)α1取0.5和0.6時(shí),曲線趨勢(shì)逐漸穩(wěn)定且推薦效果較好,說(shuō)明當(dāng)盡可能充分地學(xué)習(xí)用戶喜愛(ài)電影時(shí),推薦可以抑制最壞的情況,避免推薦失效.具體到實(shí)際電影推薦任務(wù)場(chǎng)景中,α1最佳取值范圍為0.5~0.6.將圖1的橫坐標(biāo)稍作變換,將α2作為區(qū)段的區(qū)分,如圖2所示.可以看出,α2最佳取值為0.1~0.4,推薦效果穩(wěn)定,且推薦質(zhì)量較高.若α2取值大于0.4,推薦效果惡化,說(shuō)明當(dāng)α2的權(quán)重過(guò)大時(shí),網(wǎng)絡(luò)表示學(xué)習(xí)過(guò)于強(qiáng)調(diào)用戶對(duì)厭惡電影的學(xué)習(xí),忽略了喜愛(ài)電影和鄰居節(jié)點(diǎn)的學(xué)習(xí),使得推薦效果惡化,符合應(yīng)用場(chǎng)景的實(shí)際情況.同時(shí),由圖2可以看出,區(qū)段高點(diǎn)較大概率出現(xiàn)在區(qū)段的2/3處,即α1取值在α3的2倍附近,推薦達(dá)到階段高點(diǎn).結(jié)合圖1和圖2可知,以0.1為步長(zhǎng)的權(quán)重分配下,(α1,α2,α3)綜合表現(xiàn)最佳的兩組代表權(quán)重分別為(0.6,0.2,0.2)和(0.5,0.3,0.2).由兩組權(quán)重的對(duì)比實(shí)驗(yàn)發(fā)現(xiàn),兩組權(quán)重在F1指標(biāo)上,推薦效果接近.準(zhǔn)確率方面,第二組權(quán)重組合的準(zhǔn)確率略微高于第一組權(quán)重組合,綜合考慮,本文正文實(shí)驗(yàn)采用的權(quán)重?cái)?shù)據(jù)組合為(0.5,0.3,0.2).
圖1 參數(shù)α的影響(以α1分區(qū))
圖2 參數(shù)α的影響(以α2分區(qū))
對(duì)于嵌入維度d,主要對(duì)比了50,100,200,300,400,500這6個(gè)維度下的F1指標(biāo),這6個(gè)維度下F1指標(biāo)如圖3所示.
圖3 參數(shù)d的影響
由圖3可知,隨著嵌入維度的增加,衡量推薦效果的F1指標(biāo)呈現(xiàn)出先上升后逐漸平穩(wěn)并略下降的趨勢(shì).起初隨著維度的增加,網(wǎng)絡(luò)表示學(xué)習(xí)的過(guò)程能更好地學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)信息,當(dāng)嵌入維度增加到了一定的閾值時(shí),維度增加并不能提升網(wǎng)絡(luò)表示的效果.對(duì)于高維度的網(wǎng)絡(luò)表示學(xué)習(xí),隨著嵌入維度的提升,其時(shí)間和空間的開(kāi)銷也將增大,權(quán)衡性能,本文選擇嵌入維度d為200.
對(duì)于最大采樣長(zhǎng)度max,本文主要對(duì)比15,25,50,75,100,150,200,300這8個(gè)參數(shù)對(duì)F1指標(biāo)的影響,如圖4所示.
從圖4的實(shí)驗(yàn)結(jié)果可得,隨著max的增加,推薦效果平穩(wěn)略微下降,但下降幅度有限.可以看出,最大采樣長(zhǎng)度max對(duì)整體的評(píng)價(jià)指標(biāo)影響不大.其中表現(xiàn)最好的參數(shù)max=50和表現(xiàn)較差的參數(shù)max=200,F1指標(biāo)的相差幅度僅為2%,遠(yuǎn)低于參數(shù)α和嵌入維度d對(duì)推薦效果的影響.本文max默認(rèn)選取為100.
圖4 參數(shù)max的影響
在最小采樣長(zhǎng)度min的實(shí)驗(yàn)中,min分別取0,5,10,20,30,其余參數(shù)均為默認(rèn),結(jié)果如圖5所示.
圖5 參數(shù)min的影響
window_size設(shè)置為10,20,30,40,50,其余參數(shù)均為默認(rèn),實(shí)驗(yàn)結(jié)果如圖6所示.
圖6 參數(shù)window_size的影響
從圖5和圖6的實(shí)驗(yàn)結(jié)果可知,最小采樣長(zhǎng)度min和窗口大小window_size對(duì)推薦效果影響并不大.
通過(guò)以上參數(shù)敏感度分析可知,在MovieLens數(shù)據(jù)集中,對(duì)電影推薦效果影響較大的參數(shù)是線性組合系數(shù)α和嵌入維度d.其余參數(shù)最大采樣長(zhǎng)度max和最小采樣長(zhǎng)度min,以及window_size同樣會(huì)對(duì)推薦產(chǎn)生影響,但影響有限,遠(yuǎn)不及線性組合系數(shù)和嵌入維度對(duì)結(jié)果的影響.
本文以電影推薦場(chǎng)景為例,提出了一種基于網(wǎng)絡(luò)表示學(xué)習(xí)的MFL推薦算法.該算法對(duì)網(wǎng)絡(luò)表示學(xué)習(xí)算法LINE和DeepWalk進(jìn)行改進(jìn),分別學(xué)習(xí)用戶喜愛(ài)特征、厭惡特征以及相似用戶特征,將三個(gè)低維特征向量線性組合拼接成最終的用戶向量,以余弦相似度作為相似性指標(biāo),將相似用戶關(guān)聯(lián)的電影推薦給目標(biāo)用戶,完成電影推薦任務(wù).
MFL推薦算法在2個(gè)公共數(shù)據(jù)集上分別進(jìn)行驗(yàn)證,最終實(shí)驗(yàn)結(jié)果表明,在MovieLens數(shù)據(jù)集上,準(zhǔn)確率和F1指標(biāo)分別提升12%和7%;在MovieTweetings數(shù)據(jù)集上,準(zhǔn)確率和F1指標(biāo)分別提升16%和18%.表明本文提出的算法在電影推薦類的場(chǎng)景中,具有較好的推薦效果.
實(shí)際應(yīng)用中,用戶特征并不會(huì)一成不變,會(huì)隨著時(shí)間的推移而發(fā)生一定的變化.因此在未來(lái)的工作中,考慮將時(shí)間因素引入到推薦算法中,從而實(shí)現(xiàn)更加精準(zhǔn)地推薦.