孫 靜,孫靜宇,李 璨,魏 東
(太原理工大學(xué) 軟件學(xué)院,山西 太原 030024)
個(gè)性化推薦算法[1]一方面為用戶在海量數(shù)據(jù)中找到自己所需信息起到了重要作用,另一方面也能夠有效地為信息生產(chǎn)者尋找到符合信息定位的目標(biāo)人群。算法關(guān)鍵在于挖掘用戶興趣。協(xié)同過(guò)濾推薦[2]是目前應(yīng)用最廣的推薦算法,通過(guò)挖掘用戶和項(xiàng)目之間的關(guān)系,為用戶提供其感興趣的具體項(xiàng)目。傳統(tǒng)推薦方法大多都是基于用戶的顯性反饋行為,而實(shí)際情況中多數(shù)用戶沒(méi)有提供顯性反饋的上網(wǎng)習(xí)慣。隨著研究的深入,研究者們發(fā)現(xiàn)數(shù)據(jù)量較大的用戶隱性行為包含著更多反映用戶喜好的深層信息,用戶行為日志[3]可以看作是最有代表性的用戶隱性行為。用戶日志中的行為記錄和用戶所訪問(wèn)項(xiàng)目間的相關(guān)性對(duì)準(zhǔn)確預(yù)測(cè)用戶興趣有重要意義。因此,分析用戶隱性行為發(fā)掘用戶潛在興趣成為目前推薦算法的一個(gè)研究熱點(diǎn)。本文提出的算法模型通過(guò)對(duì)用戶行為日志的分析,對(duì)原始數(shù)據(jù)進(jìn)行用戶興趣表征,同時(shí)融入時(shí)間注意力機(jī)制,使用一種新的深度學(xué)習(xí)模型挖掘并預(yù)測(cè)用戶興趣,減少了對(duì)用戶可能感興趣的具體項(xiàng)目的關(guān)注度,更加側(cè)重于挖掘用戶興趣標(biāo)簽、定位目標(biāo)用戶。將建立起來(lái)的用戶-興趣模型與用戶協(xié)同過(guò)濾算法結(jié)合產(chǎn)生推薦,從而為精準(zhǔn)定位目標(biāo)用戶、實(shí)現(xiàn)項(xiàng)目精準(zhǔn)營(yíng)銷提供一種新的思路。
智能設(shè)備的發(fā)展和普及使用戶上網(wǎng)日志數(shù)據(jù)量急劇增大。推薦系統(tǒng)隨之面臨新的機(jī)遇和挑戰(zhàn)——在數(shù)據(jù)爆炸的時(shí)代下如何準(zhǔn)確地提取和預(yù)測(cè)用戶興趣偏好,從而實(shí)現(xiàn)精準(zhǔn)推薦。
推薦算法[4,5]通常基于用戶歷史行為記錄并通過(guò)挖掘用戶或項(xiàng)目之間的相似性關(guān)系主動(dòng)幫助用戶發(fā)現(xiàn)其感興趣的項(xiàng)目。而傳統(tǒng)的推薦算法采用的淺層模型無(wú)法學(xué)習(xí)到用戶和項(xiàng)目的深層次特征。深度學(xué)習(xí)方法[6]能夠有效處理涉及海量高維數(shù)據(jù)并抽象出隱含特征。Roy S等[7]在推薦系統(tǒng)中利用視覺(jué)CLiMF方法學(xué)習(xí)視頻潛在因素有效緩解了常見(jiàn)的視頻冷啟動(dòng)問(wèn)題;He Ming等[8]構(gòu)建了一種名為協(xié)同附加變分自動(dòng)編碼器的新型深度學(xué)習(xí)模型,有效的從輔助信息中無(wú)監(jiān)督地學(xué)習(xí)潛在表示。眾所周知,深度神經(jīng)網(wǎng)絡(luò)取得優(yōu)異表現(xiàn)在于其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)——復(fù)雜的多層網(wǎng)絡(luò)將低層特征組合抽象為高層語(yǔ)義特征。也正是如此,深度神經(jīng)網(wǎng)絡(luò)受到計(jì)算能力和參數(shù)眾多的限制。
除了深度學(xué)習(xí)之外,通過(guò)將多個(gè)學(xué)習(xí)者結(jié)合在一起的集合方法同樣強(qiáng)大[9,10]。Breiman分別于1996年和2001年提出了Bagging[11]和隨機(jī)森林[12]兩種集成方法。一個(gè)好的集合方法總是由一些具有高度準(zhǔn)確性和多樣性的個(gè)體學(xué)習(xí)者構(gòu)成。Kontschieder P等[13]研究顯示深度神經(jīng)網(wǎng)絡(luò)特征促進(jìn)的集合方法將比簡(jiǎn)單地使用DNN或集合方法表現(xiàn)更好。Zhou和Feng[14]提出了一種不同的深度學(xué)習(xí)方法,稱為gcForest(多粒度級(jí)聯(lián)森林),它生成一個(gè)具有級(jí)聯(lián)框架的深度森林集合,并且能夠進(jìn)行表征學(xué)習(xí)。
在實(shí)際情況中用戶不可能對(duì)自己的上網(wǎng)日志都產(chǎn)生標(biāo)記行為,因此,訓(xùn)練模型的預(yù)測(cè)準(zhǔn)確率會(huì)受到一定影響。多示例學(xué)習(xí)[15]中,訓(xùn)練集由有標(biāo)記的數(shù)據(jù)包(Bag)組成,每個(gè)包由若干個(gè)沒(méi)有標(biāo)記的示例(Instance)構(gòu)成。唐俊等[16]利用多示例學(xué)習(xí)方法在用戶反饋不明確的情況下有效地解決了手游道具推薦問(wèn)題。但對(duì)于客戶端用戶日志數(shù)據(jù),用戶訪問(wèn)鏈接大多沒(méi)有顯示實(shí)質(zhì)文本內(nèi)容,因此基于詞頻的表示方法有一定的局限性。
本文改變用戶項(xiàng)目表征為用戶興趣向量表征,在此基礎(chǔ)上,建立一種改進(jìn)的基于集成隨機(jī)森林的多粒度掃描深度森林模型,同時(shí)利用用戶行為信息和用戶對(duì)項(xiàng)目的停留時(shí)間作為模型的輸入,并將其應(yīng)用于刻畫用戶興趣偏好,提高興趣預(yù)測(cè)準(zhǔn)確率,結(jié)合基于用戶的協(xié)同過(guò)濾推薦算法以提升推薦效果。
傳統(tǒng)的項(xiàng)目表征通常是將不同的項(xiàng)目以二進(jìn)制編碼的方式進(jìn)行數(shù)值轉(zhuǎn)換。這種把項(xiàng)目轉(zhuǎn)化為由0和1組成的數(shù)字序列的直譯式表征方法顯然不完全適合針對(duì)用戶上網(wǎng)行為的興趣偏好表征。本文所提算法將包與示例的概念引入到對(duì)用戶上網(wǎng)日志的表征,將用戶興趣的預(yù)測(cè)看作多示例學(xué)習(xí)問(wèn)題。由此,本文提出采用概念向量表示算法 (concept vector representation,CVR)來(lái)處理模型的原始數(shù)據(jù)集,得到用戶興趣向量表征作為訓(xùn)練模型的輸入。
概念向量表示算法(CVR)是一種基于退化策略的多示例學(xué)習(xí)算法。核心思想是通過(guò)改變數(shù)據(jù)包的表現(xiàn)形式,將多示例數(shù)據(jù)集轉(zhuǎn)化為單示例數(shù)據(jù)集從而進(jìn)行求解。CVR算法首先將原始數(shù)據(jù)集整理成由包組成的訓(xùn)練集 {(B1,Y1),…,(Bn,Yn)},(Bi,Yi) 表示數(shù)據(jù)包Bi對(duì)應(yīng)的標(biāo)簽為Yi,其中,Bi={x1,x2,…,xm},即數(shù)據(jù)包Bi由m個(gè)示例構(gòu)成。按照以下步驟改變包的表征方式:
步驟1 使用聚類方法把所有示例劃分為d簇,這里不考慮示例的所屬數(shù)據(jù)包。劃分之后結(jié)果用Gd表示 (d=1,2,3,…)。
步驟2 通過(guò)式(1)把包的示例量化到d個(gè)簇,獲取包的初始化關(guān)系模式RP(relation-pattern),其中,f=tf(g,Bi) 為計(jì)算數(shù)據(jù)包Bi中屬于簇g的示例個(gè)數(shù)
PBi={(g,f)|g∈G,f=tf(g,Bi)}
(1)
步驟3 合并具有相同簇集合的初始化關(guān)系模式RP,如式(2)所示
RPi={(g,Pi)|g∈G,Pi=Bx1⊕Bx2⊕…⊕Bxj}
(2)
式中:x1,x2,…,xj∈[1,n],合成運(yùn)算符⊕連接的數(shù)據(jù)包的初始化關(guān)系模式RP擁有相同的簇集合。此時(shí),數(shù)據(jù)包的總數(shù)為n,Pi合并的擁有相同簇集合包的個(gè)數(shù)為Pnum(Bx),即合成運(yùn)算符⊕連接的數(shù)據(jù)包個(gè)數(shù)為Pnum(Bx),并由式(3)得到Pi的支持度
(3)
步驟4 將合并后的關(guān)系模式RP表示為標(biāo)準(zhǔn)形式,如式(4)所示
β(Pi)={(G1,ω1),(G2,ω2),…,(Gd,ωd)}
(4)
式中:Pi∈RP,ωd表示在關(guān)系模式Pi中屬于簇Gd的示例占該模式中總示例個(gè)數(shù)的比重,計(jì)算如式(5)所示
(5)
式中:fd為關(guān)系模式RP合并后的Pi中屬于簇Gd的示例個(gè)數(shù);
步驟5 計(jì)算每個(gè)簇在數(shù)據(jù)集中的重要性,如式(6)所示
(6)
步驟6 把包表示成概念向量形式,如式(7)所示
Bagi=[N1×prβ(G1),N2×prβ(G2),…,Nd×prβ(Gd)]
(7)
步驟7 利用整理后的訓(xùn)練集訓(xùn)練學(xué)習(xí)器。
通過(guò)概念向量表示算法得到項(xiàng)目的概念向量表征,簡(jiǎn)化了數(shù)據(jù)集表示形式,多示例數(shù)據(jù)集被轉(zhuǎn)化成單示例數(shù)據(jù)集。之后將其作為訓(xùn)練集訓(xùn)練學(xué)習(xí)器。
本文提出利用CVR算法將用戶日志數(shù)據(jù)進(jìn)行向量表征。一般每個(gè)用戶行為日志被表示為Sessioni={x1,x2,…,xn}。 本文將用戶日志數(shù)據(jù)整理為多示例表示UserBagi=[Item1,Item2…,Itemn],把每一個(gè)用戶行為日志看作一個(gè)數(shù)據(jù)包,該用戶行為日志中訪問(wèn)的項(xiàng)目則為數(shù)據(jù)包中的示例,用戶日志中每個(gè)用戶都會(huì)訪問(wèn)多個(gè)項(xiàng)目,一個(gè)數(shù)據(jù)包中就有多個(gè)示例。模型最終得到的是包的標(biāo)簽,也就是用戶的興趣標(biāo)簽。
首先將所有示例聚類為d個(gè)簇,這里將d的數(shù)量設(shè)定為5,每個(gè)簇看作是相似項(xiàng)目所代表的一類興趣,表1是按照式(1)給出的一個(gè)量化后的例子。
表1 用戶數(shù)據(jù)包示例量化到5個(gè)興趣簇上的 初始化RP模式
表1中的數(shù)字表示某用戶數(shù)據(jù)包中屬于某個(gè)興趣簇的項(xiàng)目示例個(gè)數(shù)。表中的每一行都可以被看作用戶數(shù)據(jù)包的初始化關(guān)系模式RP。
接著利用式(2),將表1的初始化關(guān)系模式RP合并,同時(shí)按照式(3)計(jì)算出每個(gè)合并R模式的支持度,合成運(yùn)算后的結(jié)果見(jiàn)表2。
表2 合并初始化關(guān)系模式RP
其中,P1=UserBag1⊕UserBag2,支持度為2/5,因?yàn)镻1由2個(gè)初始化R模式合并運(yùn)算而成;同理,P2=UserBag3⊕UserBag4,支持度為2/5;P3=UserBag5,支持度為1/5。
至此,整個(gè)用戶數(shù)據(jù)集被表示成由RP模式構(gòu)成的集合。再根據(jù)式(4)和式(5)獲取合并后的RP模式的標(biāo)準(zhǔn)化形式,表3給出了表2合并初始化RP模式后的標(biāo)準(zhǔn)化形式。
然后利用概率函數(shù)根據(jù)式(6)計(jì)算每個(gè)簇的重要性,也就是計(jì)算出每類興趣在整個(gè)數(shù)據(jù)集中的重要程度。計(jì)算表3中興趣簇G1的重要性prβ(G1)=3/7×2/5+2/3×1/5,同理算出每簇的重要性見(jiàn)表4。
表3 RP模式的標(biāo)準(zhǔn)化形式
表4 每個(gè)(興趣)簇的重要性
深度森林gcForest模型如圖1所示。具有逐層處理、模型內(nèi)特征轉(zhuǎn)換和模型復(fù)雜度高的深度學(xué)習(xí)本質(zhì),其特點(diǎn)在于以集成方式對(duì)特征進(jìn)行逐層轉(zhuǎn)換。但該模型在利用隨機(jī)森林提取更高維特征時(shí),為所選特征分配相同權(quán)重。本文對(duì)gcForest模型的兩部分結(jié)構(gòu)分別改進(jìn)優(yōu)化:①引入停留時(shí)間注意力機(jī)制,將其與向量表征共同作為模型輸入;②將簇重要性作為特征權(quán)重,對(duì)gcForest模型的兩部分結(jié)構(gòu)分別進(jìn)行優(yōu)化。
圖1 深度森林模型
傳統(tǒng)深度森林模型主要包括兩部分:多粒度掃描和級(jí)聯(lián)森林。多粒度掃描結(jié)構(gòu)能夠有效地處理特征關(guān)系,因此它可以作為特征轉(zhuǎn)換部分。級(jí)聯(lián)森林結(jié)構(gòu)提供了一種深度神經(jīng)網(wǎng)絡(luò)中逐層處理的替代方法,以低成本學(xué)習(xí)高維度表示,提取更多特征并同時(shí)輸出最終預(yù)測(cè)結(jié)果。
多粒度掃描結(jié)構(gòu)通過(guò)使用滑動(dòng)窗口來(lái)掃描原始特征,并經(jīng)過(guò)兩種集成隨機(jī)森林實(shí)現(xiàn)特征轉(zhuǎn)換。M維特征向量經(jīng)過(guò)N維窗口滑動(dòng)掃描產(chǎn)生 (M-N+1) 個(gè)N維實(shí)例,每個(gè)實(shí)例通過(guò)隨機(jī)森林和完全隨機(jī)森林兩種不同的集成器提取到對(duì)應(yīng)的d維類向量,最終聯(lián)結(jié)成2×(M-N+1)×d維的增強(qiáng)特征向量。如圖2所示,100維的輸入特征經(jīng)10維的滑動(dòng)窗口掃描所產(chǎn)生91個(gè)10維的實(shí)例通過(guò)兩種森林訓(xùn)練,分別提取到對(duì)應(yīng)的91個(gè)5維類向量,最終聯(lián)結(jié)成2×(100-10+1)×5=910維的增強(qiáng)特征向量。
圖2 多粒度掃描結(jié)構(gòu)
滑動(dòng)窗口維度N取不同的值體現(xiàn)了多個(gè)不同的掃描粒度??蓪⒍嗔6葤呙璧玫降奶卣飨蛄柯?lián)結(jié)成更大維度的增強(qiáng)特征向量,作為級(jí)聯(lián)森林的輸入特征。
模型的級(jí)聯(lián)森林結(jié)構(gòu)如圖3所示 (d=5),將多粒度掃描提取的2×(M-N+1)×d維增強(qiáng)特征向量作為多層級(jí)聯(lián)森林第一層的輸入特征,經(jīng)過(guò)森林模型得到4個(gè)d維類向量,相當(dāng)于得到了4×d個(gè)擴(kuò)充特征。這里使用兩個(gè)隨機(jī)森林和兩個(gè)完全隨機(jī)森林,這兩種不同的集成決策樹,在保證準(zhǔn)確率的同時(shí)使模型具有高度的多樣性。將首層輸入特征與類向量特征聯(lián)結(jié),重新組成的2×(M-N+1)×5+4×d維新特征向量作為第二層的森林模型的輸入特征。
圖3 級(jí)聯(lián)森林結(jié)構(gòu)
以此類推,每一層森林模型輸出的4個(gè)d維類向量特征與2×(M-N+1)×d維首層輸入特征聯(lián)結(jié),作為下一層的輸入。在最后一層,將4個(gè)d維類向量取均值(或最大),得出可能性最大的類。
深度森林模型受深度神經(jīng)網(wǎng)絡(luò)的啟發(fā),在處理特征關(guān)系時(shí),采用基于滑動(dòng)窗口的多粒度掃描策略,通過(guò)掃描原始輸入數(shù)據(jù)提取局部特征,將生成的一系列局部低維特征向量訓(xùn)練轉(zhuǎn)化為類分布向量,但考慮到所屬類數(shù)據(jù)的不平衡性,森林的決策樹會(huì)傾向于根據(jù)大多數(shù)實(shí)例來(lái)強(qiáng)調(diào)類;另外,級(jí)聯(lián)森林結(jié)構(gòu)試圖通過(guò)在輸入監(jiān)督下組合集成決策樹的數(shù)量來(lái)直接學(xué)習(xí)類分布特征,然而在標(biāo)準(zhǔn)深度森林模型中,多層之間的表示學(xué)習(xí)過(guò)程并沒(méi)有考慮特征重要性對(duì)預(yù)測(cè)結(jié)果的影響,這可能導(dǎo)致整體預(yù)測(cè)性能對(duì)每個(gè)森林中的決策樹的數(shù)量敏感。
本文對(duì)深度森林模型進(jìn)行優(yōu)化:
(1)融合停留時(shí)間注意力機(jī)制??紤]到可以將用戶在瀏覽過(guò)程中對(duì)不同項(xiàng)目的駐留時(shí)間作為衡量用戶對(duì)該項(xiàng)目喜愛(ài)程度的重要指標(biāo)。通常,用戶駐留時(shí)間越長(zhǎng),感興趣程度越高。因此將用戶的駐留時(shí)間作為注意力機(jī)制的權(quán)重來(lái)深化用戶的興趣程度,具體做法為計(jì)算每個(gè)用戶數(shù)據(jù)包中各興趣簇所含項(xiàng)目示例的用戶駐留時(shí)間在該數(shù)據(jù)包所有示例用戶駐留時(shí)間總和的占比,并將所得比重作為該興趣簇的注意力權(quán)重。對(duì)于每個(gè)用戶行為日志Sessioni={x1,x2,…,xn},其對(duì)應(yīng)點(diǎn)擊時(shí)間為ti={t1,t2,…,tn},停留時(shí)間為Δtn-1=tn-tn-1
ΔTi={Δt1,…,Δtn-1,max(Δt)}
(8)
根據(jù)學(xué)者提出的最后一個(gè)項(xiàng)目在序列化推薦算法中的重要性,將xn停留時(shí)間設(shè)置為ΔTi中的最大停留時(shí)間max(Δt)。 時(shí)間注意力機(jī)制的權(quán)重向量具體由式(9)和式(10)計(jì)算可得
(9)
(10)
(2)引入特征度量權(quán)重。在多粒度掃描結(jié)構(gòu)和級(jí)聯(lián)森林結(jié)構(gòu)中引入簇重要性prβ(G)作為權(quán)重來(lái)提升預(yù)測(cè)準(zhǔn)確率。簇重要性在本文第2章根據(jù)用戶興趣向量表征計(jì)算可得。整體數(shù)據(jù)集經(jīng)過(guò)聚類得到簇,每個(gè)簇都是一類相似項(xiàng)目的集合,因此可以代表用戶的興趣,即興趣簇。經(jīng)過(guò)用戶向量表征得到的每個(gè)用戶數(shù)據(jù)包中的簇重要性,表示該用戶所訪問(wèn)的項(xiàng)目所屬興趣的比例權(quán)重,即用戶具有相同興趣的概率。因此,在圖2和圖3中,將經(jīng)過(guò)隨機(jī)森林得到的類分布向量與簇重要性權(quán)重結(jié)合得到增強(qiáng)類分布向量。
優(yōu)化后的多粒度掃描結(jié)構(gòu)如圖4所示,原始特征與駐留時(shí)間融合作為輸入,并將訓(xùn)練得到的類向量實(shí)例分別與簇重要性權(quán)重相乘之后聯(lián)結(jié)成高維特征,作為級(jí)聯(lián)森林結(jié)構(gòu)的輸入特征。優(yōu)化后的級(jí)聯(lián)森林結(jié)構(gòu)如圖5所示,將簇重要性作為權(quán)重,與每一層森林訓(xùn)練輸出類分布向量結(jié)合進(jìn)一步得到增強(qiáng)類向量,并聯(lián)結(jié)開始輸入特征作為下一級(jí)聯(lián)層的輸入,層層傳遞經(jīng)過(guò)N層級(jí)聯(lián)得到最終預(yù)測(cè)。
圖4 改進(jìn)的多粒度掃描結(jié)構(gòu)
圖5 改進(jìn)的級(jí)聯(lián)森林結(jié)構(gòu)
實(shí)驗(yàn)使用真實(shí)的運(yùn)營(yíng)商用戶日志數(shù)據(jù)和RecSys Challenge2015公開數(shù)據(jù)集作為驗(yàn)證數(shù)據(jù),分別針對(duì)用戶興趣向量表征和改進(jìn)深度森林模型對(duì)用戶興趣預(yù)測(cè)準(zhǔn)確率的影響進(jìn)行多次實(shí)驗(yàn),并驗(yàn)證了本文算法對(duì)用戶協(xié)同過(guò)濾推薦的有效性。為避免實(shí)驗(yàn)結(jié)果的偶然性,采用十折交叉驗(yàn)證,將實(shí)驗(yàn)收集的真實(shí)數(shù)據(jù)集分為訓(xùn)練子集和驗(yàn)證子集,10次結(jié)果的均值作為對(duì)算法精度的估計(jì)。
實(shí)驗(yàn)環(huán)境:處理器Intel(R) Core(TM) i5-8250U CPU @ 1.60 GHz 1.80 GHz;內(nèi)存8.00 G;Windows 10專業(yè)版64位操作系統(tǒng);編程環(huán)境Python3.1。
運(yùn)營(yíng)商用戶日志數(shù)據(jù)集(數(shù)據(jù)集1)是北京市電信運(yùn)營(yíng)商2018年10月10日部分用戶的DPI日志,該數(shù)據(jù)集共有1436萬(wàn)多條用戶上網(wǎng)日志,12萬(wàn)多個(gè)項(xiàng)目信息。RecSys Challenge2015公開數(shù)據(jù)集(數(shù)據(jù)集2)共包含某電商網(wǎng)站924萬(wàn)多條用戶行為日志、5萬(wàn)多個(gè)項(xiàng)目信息。在使用模型之前按照標(biāo)準(zhǔn)數(shù)據(jù)集的格式(見(jiàn)表5)提取所需字段并整理。
表5 數(shù)據(jù)集字段
本實(shí)驗(yàn)使用正確率(Accuracy)和誤差率(Error)作為評(píng)價(jià)用戶興趣向量表征和改進(jìn)深度森林模型對(duì)用戶興趣預(yù)測(cè)影響的指標(biāo),使用精確率(Precision)、召回率(Recall)和F1值作為評(píng)價(jià)本文算法對(duì)基于用戶的協(xié)同過(guò)濾推薦算法有效性的指標(biāo)。
正確率(Accuracy)和誤差率(Error)的計(jì)算公式如式(11)和式(12)所示。TP為樣本正例被正確預(yù)測(cè)的數(shù)量,TN為樣本負(fù)例被正確預(yù)測(cè)的數(shù)量,F(xiàn)P為樣本負(fù)例被錯(cuò)誤預(yù)測(cè)的數(shù)量,F(xiàn)N為樣本正例被錯(cuò)誤預(yù)測(cè)的數(shù)量,ALL為樣本總數(shù)
(11)
(12)
精確率(Precision)和召回率(Recall)計(jì)算公式可參見(jiàn)文獻(xiàn)[17]實(shí)驗(yàn)部分的評(píng)估指標(biāo),F(xiàn)1值計(jì)算公式如式(13)所示
(13)
(1)用戶興趣向量表征驗(yàn)證擴(kuò)展實(shí)驗(yàn)
本文將表征過(guò)后的數(shù)據(jù)經(jīng)過(guò)深度森林預(yù)測(cè)出用戶興趣,建立用戶-興趣模型之后再結(jié)合基于用戶的協(xié)同過(guò)濾算法(User-CF)計(jì)算推薦結(jié)果。根據(jù)本文第2章介紹,在進(jìn)行表征之前首先要對(duì)項(xiàng)目進(jìn)行聚類,設(shè)置不同的k值會(huì)產(chǎn)生不同數(shù)量的興趣簇。本部分實(shí)驗(yàn)主要驗(yàn)證不同k值對(duì)推薦準(zhǔn)確率的影響。本實(shí)驗(yàn)設(shè)定k值范圍為2-150,兩個(gè)數(shù)據(jù)集分別計(jì)算準(zhǔn)確率,如圖6和圖7所示。
圖6 數(shù)據(jù)集1上不同k值下兩種推薦算法的準(zhǔn)確率
圖7 數(shù)據(jù)集2上不同k值下兩種推薦算法的準(zhǔn)確率
從圖6可以看出,隨著k值增加,使用K-means聚類的用戶協(xié)同過(guò)濾算法推薦準(zhǔn)確率較傳統(tǒng)的用戶協(xié)同過(guò)濾算法均有所提升;k值在100附近時(shí),數(shù)據(jù)集1準(zhǔn)確率提升了0.9%,數(shù)據(jù)集2準(zhǔn)確率提升了1.05%;隨著k值繼續(xù)增加,準(zhǔn)確率有些回落,這是由于聚類個(gè)數(shù)增加,興趣數(shù)增加,但有些類別個(gè)數(shù)較少,導(dǎo)致興趣預(yù)測(cè)不準(zhǔn)確,進(jìn)而影響整體推薦效果。因此本文設(shè)置k=100為最優(yōu)聚類數(shù)。
(2)用戶興趣向量表征驗(yàn)證
在標(biāo)準(zhǔn)gcForest模型基礎(chǔ)上,將用戶興趣向量表征與隨機(jī)表征和二進(jìn)制One-hot表征進(jìn)行對(duì)比,比較3種方法對(duì)用戶興趣預(yù)測(cè)結(jié)果的影響。實(shí)驗(yàn)使用K-means聚類,這里取k=100。實(shí)驗(yàn)結(jié)果見(jiàn)表6,使用用戶興趣向量表征較另兩種表征方式而言,預(yù)測(cè)準(zhǔn)確率有所提升。One-hot表征采用的二進(jìn)制編碼形式具有一定的隨機(jī)性,因此與隨機(jī)表征效果相差不大;本文表征方式將注意力集中于用戶興趣,因此預(yù)測(cè)結(jié)果提升明顯。
(3)優(yōu)化的深度森林模型驗(yàn)證
為分別驗(yàn)證優(yōu)化部分對(duì)用戶興趣預(yù)測(cè)的有效性,將標(biāo)準(zhǔn)深度森林模型gcForest與本文改進(jìn)模型進(jìn)行比較,加入簇重要性權(quán)重的深度森林模型記為Cluster-gcForest,融入
表6 用戶興趣向量表征對(duì)預(yù)測(cè)結(jié)果的影響
停留時(shí)間注意力機(jī)制的深度森林模型記為ATT-gcForest。同時(shí)與作為模型基礎(chǔ)的隨機(jī)森林(random forest,RF)算法進(jìn)行比較。為消除干擾,本部分實(shí)驗(yàn)均選擇二進(jìn)制編碼表征。
實(shí)驗(yàn)結(jié)果見(jiàn)表7,Cluster-gcForest和ATT-gcForest明顯優(yōu)于隨機(jī)森林,隨機(jī)森林是集成的決策樹,而gcForest模型又都是隨機(jī)森林算法的集成,包含了兩種不同的森林模型(隨機(jī)森林和完全隨機(jī)森林),體現(xiàn)了集成子模型的多樣性,因此效果更好。而且本文在標(biāo)準(zhǔn)gcForest的基礎(chǔ)上,引入簇重要性作為特征權(quán)重,在多粒度掃描結(jié)構(gòu)和級(jí)聯(lián)森林結(jié)構(gòu)中與預(yù)測(cè)類向量相結(jié)合,保證了模型在訓(xùn)練數(shù)據(jù)時(shí)將注意力偏向于概率較大的用戶興趣簇;另一方面,在模型輸入中引入時(shí)間注意力機(jī)制,將停留時(shí)間作為輸入選擇權(quán)重,從大量數(shù)據(jù)中篩選出一部分有價(jià)值的信息。從而相較于gcForest模型,本文改進(jìn)模型對(duì)興趣預(yù)測(cè)準(zhǔn)確度更高。
表7 改進(jìn)的深度森林對(duì)預(yù)測(cè)結(jié)果的影響
(4)模型推薦精度對(duì)比
本實(shí)驗(yàn)比較了本文優(yōu)化模型Cluster-ATT-gcForest和RF、CNN、gcForest模型對(duì)推薦效果的影響,實(shí)驗(yàn)結(jié)果見(jiàn)表8,使用精確率、召回率和F1值進(jìn)行評(píng)價(jià)。實(shí)驗(yàn)分別使用上述幾個(gè)模型預(yù)測(cè)用戶興趣,將建立起來(lái)的用戶-興趣標(biāo)簽結(jié)合用戶協(xié)同過(guò)濾算法實(shí)現(xiàn)推薦。在計(jì)算用戶相似度時(shí),使用歐氏距離作為距離函數(shù)。
從表8和表9結(jié)果可直觀看到各模型結(jié)合用戶協(xié)同過(guò)濾算法的推薦效果,CNN模型與傳統(tǒng)隨機(jī)森林模型相比,推薦效果明顯提升。gcForest模型吸收了集成學(xué)習(xí)和深度學(xué)習(xí)兩種方法的優(yōu)勢(shì),在保證與CNN相當(dāng)或略有提升的結(jié)果的前提下,自動(dòng)確定訓(xùn)練層數(shù),從而實(shí)現(xiàn)模型復(fù)雜度自適應(yīng)調(diào)節(jié),提升算法效率。同時(shí),可以看出經(jīng)過(guò)用戶興趣向量表征和引入時(shí)間注意力機(jī)制的改進(jìn)模型Cluster-ATT-gcForest性能表現(xiàn)更好。興趣向量表征將算法注意力集中于用戶興趣,有效提高了用戶-興趣模型預(yù)測(cè)準(zhǔn)確率;將駐留時(shí)間與模型輸入融合使多維特征被選擇時(shí)將目光聚集在大概率特征上,從而體現(xiàn)被選擇特征的重要程度;使用簇重要性作為深度森林權(quán)重使隨機(jī)森林中的決策樹更傾向于選擇概率大的興趣簇作為類分布向量。因此Cluster-ATT-gcForest實(shí)驗(yàn)效果好于gcForest。
表8 在數(shù)據(jù)集1上本文方法與RF/CNN/gcForest 效果對(duì)比
表9 在數(shù)據(jù)集2上本文方法與RF/CNN/gcForest 效果對(duì)比
本文針對(duì)用戶上網(wǎng)日志中行為數(shù)據(jù)對(duì)興趣偏好的體現(xiàn),提出了一種融合用戶興趣表征與注意力機(jī)制的預(yù)測(cè)推薦算法。該算法通過(guò)用戶興趣向量表征將用戶對(duì)項(xiàng)目的訪問(wèn)表示轉(zhuǎn)化為用戶所屬興趣概率;同時(shí)引入駐留時(shí)間和簇重要性權(quán)重對(duì)gcForest模型進(jìn)行改進(jìn)和優(yōu)化,捕獲重點(diǎn)興趣特征;并將建立起來(lái)的用戶-興趣模型與基于用戶的協(xié)同過(guò)濾推薦算法結(jié)合。在真實(shí)數(shù)據(jù)集和公開數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,用戶興趣向量表征和優(yōu)化gcForest模型有效提升了興趣預(yù)測(cè)準(zhǔn)確率,驗(yàn)證了本文算法的有效性,同時(shí)說(shuō)明了本文算法具有一定的實(shí)用性和普適性。
由于數(shù)據(jù)源局限,本文模型未考慮到用戶信息多樣性。將不同數(shù)據(jù)源信息融合全面構(gòu)建用戶興趣模型是未來(lái)研究工作的方向;同時(shí),組合異構(gòu)網(wǎng)絡(luò)從而構(gòu)建混合推薦模型具有潛在的研究?jī)r(jià)值。