孫 紅,鹿梅珂
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)E-mail:823372873@qq.com
推薦系統(tǒng)自從上世紀(jì)90年代作為一項(xiàng)獨(dú)立存在的概念出現(xiàn),逐漸成為現(xiàn)代互聯(lián)網(wǎng)時(shí)代的一種信息檢索工具,現(xiàn)如今在社交網(wǎng)站、電子商務(wù)以及影音娛樂等方面都有著很大的涉及.在深度學(xué)習(xí)提出之后,結(jié)合深度學(xué)習(xí)的推薦系統(tǒng)取得了顯著成效,深度學(xué)習(xí)在推薦圈中越來越受到重視.
早期的推薦系統(tǒng)是按照商品的流行程度進(jìn)行排序,然后將排名靠前的商品推薦給用戶[1];后來John Riedl和Paul Resnick提出了分析用戶和文章的關(guān)聯(lián),產(chǎn)生了最早的協(xié)同過濾推薦[2];Elkahky等人提出多視角深度神經(jīng)網(wǎng)絡(luò)模型并將其用于推薦[3];后來可以自動學(xué)習(xí)特征深度學(xué)習(xí)興起,尤其在多源異構(gòu)數(shù)據(jù)中自動特征學(xué)習(xí)將學(xué)習(xí)到的歸總為統(tǒng)一表征[4],在實(shí)際使用中成為了成熟的推薦系統(tǒng).
后續(xù)出現(xiàn)了許多基于深度學(xué)習(xí)的推薦系統(tǒng),Wide & Deep模型將用戶數(shù)據(jù)編碼成離散特征并通過深度學(xué)習(xí)得到隱性特征向量[5];DeepFM模型在此基礎(chǔ)上借助FFM思想[6]解決了網(wǎng)絡(luò)參數(shù)過多的問題;List-wise推薦模型[7]可以根據(jù)用戶多樣性的問題給多樣的用戶選擇推薦;阿里的深度興趣網(wǎng)絡(luò)(Deep Interest Network,DIN)[8]可以在商品的推薦中表示出用戶對不同種類的商品的興趣.
自動編碼器(Auto Encoder,簡稱AE)[9]起初用于數(shù)據(jù)降維,后來證明在推薦系統(tǒng)中也取得了不錯的效果.自動編碼器可以通過加入約束條件以實(shí)現(xiàn)想要的功能,例如加入干擾噪聲可以形成降噪自動編碼器(DAE),解決訓(xùn)練過程中的過擬合現(xiàn)象;通過堆疊的方法可以將多個簡單神經(jīng)網(wǎng)絡(luò)堆疊成深度神經(jīng)網(wǎng)絡(luò),形成堆疊降噪自動編碼器(SDA)[10];在DAE的基礎(chǔ)上進(jìn)一步處理[11]通過加入干擾型數(shù)據(jù)噪聲達(dá)成邊緣化處理,可實(shí)現(xiàn)邊緣降噪自動編碼器(mDAE)[12],避免SDA訓(xùn)練計(jì)算成本過高問題;有學(xué)者結(jié)合了SDA和mDAE兩者間的優(yōu)點(diǎn),創(chuàng)造性的提出了堆疊邊緣降噪自動編碼器模型,并將這個深度模型與協(xié)調(diào)過濾算法相結(jié)合,最終形成了基于堆疊邊緣降噪自動編碼器的深度協(xié)同推薦方法,即DCR-SmDAE模型[13].AutoSVD++模型[14]通過融入了自動編碼器到傳統(tǒng)的矩陣分解模型中,該模型能保留收縮性的特性并通過這種方式學(xué)習(xí)項(xiàng)目得到特征,在推薦系統(tǒng)的改進(jìn)上有了一定的成效.融合物品熱門因子的協(xié)同過濾改進(jìn)算法[15]在皮爾遜相似度原理上添加物品熱門因子,優(yōu)化皮爾遜相似度計(jì)算,提高推薦效果.
僅基于矩陣分解的協(xié)同過濾方法中存在的數(shù)據(jù)稀疏與冷啟動的問題,而深度學(xué)習(xí)在特征提取上可以優(yōu)化傳統(tǒng)的協(xié)同過濾方法[16].但在一般的基于深度學(xué)習(xí)的推薦系統(tǒng)的算法中,模型訓(xùn)練時(shí)間長且不能同時(shí)兼顧質(zhì)量.針對上述問題,本文深度學(xué)習(xí)中的自動編碼器模型中融入稀疏和邊緣降噪的約束[17],再在此基礎(chǔ)上通過堆疊的方法形成深度模型[18],然后通過矩陣分解的方法與推薦系統(tǒng)進(jìn)行有機(jī)結(jié)合,最終形成本文所述的基于堆疊稀疏邊緣降噪自動編碼器的協(xié)同深度推薦方法(S-SmDAERS).
自動編碼器由于學(xué)習(xí)特征表示能力的優(yōu)勢在稀疏數(shù)據(jù)上也能夠?qū)崿F(xiàn)數(shù)據(jù)的特征提取.在傳統(tǒng)自動編碼器的基礎(chǔ)上,通過向輸入中注入噪聲,然后利用含噪聲的“腐壞”的樣本去重構(gòu)不含噪聲的“干凈”輸入,就形成了降噪自動編碼器(DAE).
DAE的執(zhí)行過程通過編碼函數(shù)fencoding將噪聲映射到隱藏層中,從而獲取隱藏層中的特征hhide,在解碼輸出的過程中通過解碼函數(shù)gdecoding將hhide映射到輸出層,得到輸入數(shù)據(jù)的重構(gòu)[19].
mDAE是在DAE的基礎(chǔ)上在繼續(xù)進(jìn)行進(jìn)一步的處理,通過加入干擾型數(shù)據(jù)噪聲達(dá)成邊緣化處理實(shí)現(xiàn),將原DAE中的損失函數(shù)求對應(yīng)的期望損失函數(shù).邊緣化隨機(jī)特征可以避免SDA存在的訓(xùn)練計(jì)算成本過高的代價(jià),這樣就可以一定程度上大大減少其因?yàn)閿?shù)據(jù)集增大而導(dǎo)致的計(jì)算強(qiáng)度增強(qiáng),從而縮短處理的時(shí)間.
矩陣分解(MF)是目前推薦系統(tǒng)中最為廣泛使用的一項(xiàng)技術(shù),可以將用戶與項(xiàng)目之間存在的交互矩陣分解為兩個低階陣.對于m個用戶對于n個物品的評價(jià)打分矩陣R將其分解為兩個秩相等都為d的低階矩陣用戶矩陣U和物品矩陣V.
概率矩陣分解[20]是在正則化矩陣分解的基礎(chǔ)上,引入概率模型進(jìn)一步優(yōu)化.它的概率基礎(chǔ)是假設(shè)一個具有高斯觀測噪聲和高斯先驗(yàn)的概率線性模型為隱式特征因子,將其對數(shù)后驗(yàn)函數(shù)進(jìn)行最大化處理,再將所得目標(biāo)函數(shù)利用梯度下降法可求得最優(yōu)的U和V值.
在推薦問題中,由于用戶和物品數(shù)量過于龐大,數(shù)據(jù)稀疏問題嚴(yán)重制約著推薦質(zhì)量.機(jī)器學(xué)習(xí)中使用降維方法來解決數(shù)據(jù)的稀疏性,常見的方法有矩陣分解降低維數(shù)和聚類,即將隸屬于同一類別的特征用相同的標(biāo)簽來標(biāo)注.對于有缺失值的數(shù)據(jù)可以采用矩陣填充技術(shù)對缺失元素進(jìn)行估計(jì).此外,本文中使用的自動編碼器以及衍生形式對數(shù)據(jù)進(jìn)行了重構(gòu),也能夠處理數(shù)據(jù)的稀疏性問題.
對于自動編碼器而言,在其隱藏層的神經(jīng)元進(jìn)行某種調(diào)整,如在隱藏層中加入稀疏邊緣約束條件,最終得到了稀疏邊緣自編碼器(SmDAE).稀疏邊緣降噪自動編碼器可以將輸入的數(shù)據(jù)從高維度的向量空間向低維度的向量空間進(jìn)行轉(zhuǎn)化,但是因其單個的編碼能力有所不足,故本文借助于堆疊思想,將三個SmDAE以順序連接方式連接在一起,就得到了堆疊稀疏邊緣降噪自動編碼器.
向DAE的隱藏層中加入稀疏編碼器和mDAE的約束條件后形成了SmDAE,將三個SmDAE進(jìn)行順序連接,利用自動編碼器能很好地重構(gòu)其輸入端的優(yōu)點(diǎn),將前者的輸出層用后者的輸入層代替,得到本文使用的S-SmDAE模型.
通過S-SmDAE模型訓(xùn)練學(xué)習(xí)出的編碼解碼操作后的映射矩陣可以得到隱藏層中項(xiàng)目的潛在特征的特征向量值,將其作為矩陣分解輸入源的特征向量可將概率矩陣分解與SmDAE自動編碼器融合,并利用矩陣分解的方法對參數(shù)進(jìn)行優(yōu)化.
S-SmDAE模型的方法流程大致如下:首先需要將每個單隱層的自編碼器作為一個簡單網(wǎng)絡(luò)對訓(xùn)練樣本數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,然后再進(jìn)行堆疊.這個過程是無監(jiān)督的,但是需要在所有層都完成之后需要使用前面分層訓(xùn)練時(shí)對于各層之間出現(xiàn)的參數(shù)進(jìn)行相應(yīng)的優(yōu)化,尋找最佳數(shù)值來調(diào)整整個多層網(wǎng)絡(luò)的參數(shù),在整個參數(shù)調(diào)整完畢之后通過帶標(biāo)簽的樣本對系統(tǒng)進(jìn)行微調(diào),最終得到的網(wǎng)絡(luò)模型與協(xié)同過濾傳統(tǒng)的概率分解模型[21]進(jìn)行融合,最終完成推薦任務(wù).
其步驟為:
1)對物品的潛在特征進(jìn)行學(xué)習(xí),得到物品潛在特征.
2)利用本文的S-SmDAE模型進(jìn)行訓(xùn)練,得到隱藏層特征向量.
3)將2)中得到的物品和用戶隱藏層特征向量作為概率分解矩陣的基本值,得到新的物品和用戶特征向量.
4)將前面得到的模型進(jìn)行微調(diào),得到最終的網(wǎng)絡(luò)模型
5)將模型用于預(yù)測評分
6)將模型用于推薦
為了驗(yàn)證本文的系統(tǒng),本文選擇了MovieLens數(shù)據(jù)集、Book-Crossings圖書評分?jǐn)?shù)據(jù)集和Netflix數(shù)據(jù)集進(jìn)行驗(yàn)證,上述三種數(shù)據(jù)集的具體信息統(tǒng)計(jì)如表1所示.
表1 數(shù)據(jù)集信息匯總對比表
本文中對實(shí)驗(yàn)中獲得的評分預(yù)測分值跟驗(yàn)證數(shù)據(jù)集中相對應(yīng)的實(shí)際上看到的分值做比較,比較兩者之間的相似程度,采用準(zhǔn)確率的評估是通過均方根誤差(RMSE)實(shí)現(xiàn).
(1)
本文考慮實(shí)驗(yàn)過程中的數(shù)據(jù)或許會有隱式反饋的存在,這種隱式反饋主要表現(xiàn)在假設(shè)用戶給一個項(xiàng)目打的分?jǐn)?shù)為零,這或許是由于該用戶可能不是因?yàn)椴幌矚g而是因?yàn)椴⑽唇佑|過這個項(xiàng)目所導(dǎo)致.基于此,本文還采用了如式(2)的召回率進(jìn)行對系統(tǒng)的評價(jià),其值一般越高說明結(jié)果越準(zhǔn).
(2)
本文算法中由于有S-SmDAE和矩陣分解的存在使得其中有很多相關(guān)的超參數(shù),如.λu,λv,λn,λW,K這些參數(shù)調(diào)整出現(xiàn)的變化會對最后的整個模型有一定的影響,借助在對信息加噪聲干擾后再對特征的提取上面所做的最終結(jié)論,本文在對輸入的數(shù)據(jù)集中在噪聲干擾處理上面擬打算使用無偏掩碼噪聲且其等級為0.3,而其中的學(xué)習(xí)率被設(shè)置成0.003.
實(shí)驗(yàn)1.不同的K值對RMSE的影響
在本實(shí)驗(yàn)中,在λu,λv,λn,λW值不變的情況下分析最內(nèi)層特征維度參數(shù)K,通過RMSE指標(biāo)進(jìn)行評估,其結(jié)果如圖1所示.在這三個數(shù)據(jù)集中,隨著K的增大,RMSE的值逐漸減小,在K=50處達(dá)到最小值,此時(shí)推薦質(zhì)量最高.當(dāng)K繼續(xù)增大,RMSE又開始回升.
圖1 K值對RMSE的影響
實(shí)驗(yàn)2.不同K值對召回率的影響
K值變化對召回率也會產(chǎn)生影響,在MovieLens數(shù)據(jù)集ml-1m上的分析結(jié)果如圖2所示.
圖2 ml-1m中不同K值對recall@M的影響
在MovieLens數(shù)據(jù)集ml-1m上,不同的K值對召回率recall@M值有著很大的影響,且與此同時(shí)recall@M中M值越高其召回率越高,普遍情況下隨著K值的增加recall@M都有所增大,直至K=50后又都有所減小,故而在K=50處取得了模型作為推薦的質(zhì)量最高點(diǎn).
綜合以上RMSE和recall@M兩種指標(biāo)分析,參數(shù)K取值為50時(shí)本文的S-SmDAERS模型可以有著很好表現(xiàn)效果.
實(shí)驗(yàn)3.λu,λv,λn,λW對RMSE的影響
將S-SmDAE模型中的最內(nèi)層特征參數(shù)K固定為50,再研究λu,λv,λn,λW對指標(biāo)的影響.可將λu,λv,作為一組,另將λn,λW作為一組,分別研究這兩組參數(shù)的影響.
取λn=0.001和λW=0.001,再對λu,λv進(jìn)行調(diào)整,其不同取值下RMSE的值如圖3所示.
圖3 參數(shù)λu和λv不同取值下RMSE值
分析發(fā)現(xiàn)在λu=0.1和λv=10處時(shí)RMSE能達(dá)到最小值,即局部最優(yōu)解,這個時(shí)候的準(zhǔn)確率最高.
固定λu=0.1,λv=10,研究λn,λW對RMSE的影響如圖4所示.
圖4 參數(shù)λn和λW不同取值下RMSE值
分析發(fā)現(xiàn)在λn=0.001和λW=0.001處RMSE能達(dá)到最小值,即局部最優(yōu)解,這個時(shí)候的準(zhǔn)確率最高.
綜上所述,本文S-SmDAERS模型的一些超參數(shù)可以確定調(diào)整為:K=50,λu=0.1,λv=10,λn=0.001,λW=0.001.
除上述參數(shù)的影響外,數(shù)據(jù)集的稀疏度對模型的評價(jià)指標(biāo)也有所影響.數(shù)據(jù)集越稀疏,所需的迭代次數(shù)越多.在M值相同的情況下,數(shù)據(jù)集稀疏度越低,recall@M的值越低,即模型的表現(xiàn)效果越好,而在稀疏度較高的Book-Crossing數(shù)據(jù)集上表現(xiàn)效果略有欠缺.
實(shí)驗(yàn)4.與不同算法的比較
本文選取了DCR-SmDAE、AutoSVD++和CTR算法進(jìn)行對比.在同等迭代次數(shù)下,ml-1m數(shù)據(jù)集在四種算法下的RMES如圖5所示.
圖5 不同算法在同等迭代次數(shù)下的RMES
可以看出,本文所提的模型在每次訓(xùn)練的迭代上較其他算法在RMSE上都更低,說明其準(zhǔn)確率更高,較其他算法模型分別提升了0.022,0.031和0.011.在達(dá)到模型最優(yōu)的迭代中,本文所提的算法模型較其他算法能更快地達(dá)到最優(yōu)推薦質(zhì)量.
選取數(shù)據(jù)的稀疏程度最低的MovieLens-1M數(shù)據(jù)集,在此數(shù)據(jù)集上對CTR模型、AutoSVD++模型和DCR_SmDAE模型和本文模型S-SmDAERS做出如圖6所示的對比實(shí)驗(yàn).
圖6 不同算法在同等M值下的recall@M
由圖6可知,推薦數(shù)量M的值相同的情況下本文所提出的模型S-SmDAERS在評測指標(biāo)recall@M中皆比其他算法模型高,這就說明S-SmDAERS模型在推薦的質(zhì)量上較其他模型都有所提升,平均提升了1.752%.
本文提出的S-SmDAERS深度推薦系統(tǒng)模型在模型的訓(xùn)練耗時(shí)以及推薦的性能與質(zhì)量上雖然都有著一定的提升,取得了不錯的效果,但是在實(shí)驗(yàn)過程中依舊發(fā)現(xiàn)其中存在某些小的問題還需進(jìn)一步優(yōu)化.
1)自動編碼器堆疊可以使模型逐層學(xué)習(xí)到數(shù)據(jù)的多種表達(dá),但直接訓(xùn)練一個多層的自編碼器會因梯度擴(kuò)散等問題使誤差變得極小,訓(xùn)練變得無效,而分層預(yù)訓(xùn)練的方法則使深度網(wǎng)絡(luò)的訓(xùn)練成為可能,這個過程中生成的初始化權(quán)值矩陣可以作為網(wǎng)絡(luò)的初始化矩陣,加速深度網(wǎng)絡(luò)的收斂速度.在實(shí)踐中,深度自編碼器像其他深度神經(jīng)網(wǎng)絡(luò)一樣能夠減小訓(xùn)練數(shù)據(jù)和計(jì)算資源需求,后續(xù)的多層堆疊可以使訓(xùn)練效果提升[20];
2)由于設(shè)備限制本文所用的數(shù)據(jù)集不夠大,未來希望能用更充分的數(shù)據(jù)對本文的模型進(jìn)行驗(yàn)證;
3)神經(jīng)網(wǎng)絡(luò)的參數(shù)只能根據(jù)前輩的經(jīng)驗(yàn)進(jìn)行調(diào)整,導(dǎo)致參數(shù)調(diào)整只能取局部最優(yōu),不能真正達(dá)到最優(yōu)值,后續(xù)希望能夠帶入一種動態(tài)調(diào)整參數(shù)方法,使得該神經(jīng)網(wǎng)絡(luò)在訓(xùn)練上能夠更為準(zhǔn)確;
4)訓(xùn)練數(shù)據(jù)增加導(dǎo)致模型訓(xùn)練所花的時(shí)間代價(jià)呈不可控的形式變大,后續(xù)希望通過結(jié)合分布式處理的方式在不影響模型訓(xùn)練性能的前提下節(jié)省大量的訓(xùn)練時(shí)間,緩解時(shí)間代價(jià).