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