《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應用 > 基于自編碼器的評分預測算法
基于自編碼器的評分預測算法
2015年微型機與應用第2期
韓偉森1,2,皮建勇1,2
(1.貴州大學 計算機科學與信息學院,貴州 貴陽 550025; 2.貴州大學 云計算與物聯(lián)網(wǎng)研究中心,貴州 貴陽 550025)(1.貴州大學 計算機科學與信息學院,貴州 貴陽 550025; 2.貴州大學 云計算與物聯(lián)網(wǎng)研究中心,貴州 貴陽 550025)
摘要: 評分預測是推薦系統(tǒng)的一個組成部分,通過一個實數(shù)表達對用戶的偏好進行預測,在學術(shù)界被廣泛研究。神經(jīng)網(wǎng)絡(luò)具有很強的特征提取能力,能獲取數(shù)據(jù)深層次的特征。使用神經(jīng)網(wǎng)絡(luò)中的一種網(wǎng)絡(luò)即自編碼器,通過擴展使其具有處理像評分矩陣這種有缺失數(shù)據(jù)的矩陣的能力,并通過實驗證明其預測結(jié)果與當前主流的評分預測算法SVD的性能接近。
Abstract:
Key words :

  摘  要評分預測推薦系統(tǒng)的一個組成部分,通過一個實數(shù)表達對用戶的偏好進行預測,在學術(shù)界被廣泛研究。神經(jīng)網(wǎng)絡(luò)具有很強的特征提取能力,能獲取數(shù)據(jù)深層次的特征。使用神經(jīng)網(wǎng)絡(luò)中的一種網(wǎng)絡(luò)即自編碼器,通過擴展使其具有處理像評分矩陣這種有缺失數(shù)據(jù)的矩陣的能力,并通過實驗證明其預測結(jié)果與當前主流的評分預測算法SVD的性能接近。

  關(guān)鍵詞: 推薦系統(tǒng);神經(jīng)網(wǎng)絡(luò);自編碼器;評分預測

0 引言

  協(xié)同過濾算法是推薦系統(tǒng)中較為常用的算法,因為使用協(xié)同過濾算法進行推薦時,只需收集用戶對某件物品的一個動作表達用戶對物品的偏好程度,如評分、加入購物車、購買等,即可進行推薦,這樣的數(shù)據(jù)對于電子商務網(wǎng)站或者視頻網(wǎng)站來說是非常容易收集的。基于領(lǐng)域[1]的算法是協(xié)同過濾算法中最基本的算法,主要分為基于用戶的協(xié)同過濾算法,即給用戶B推薦物品,只需尋找與他相似的用戶并將該用戶喜歡而用戶B沒有看過的物品推薦給B。基于物品的協(xié)同過濾算法與基于用戶的思路類似只是主體換成了物品,這兩種算法在業(yè)界被廣泛應用。后來又出現(xiàn)了矩陣分解的方法,其中具有代表性的是SIMON F提出的SVD算法[2]。SVD算法是對用戶評分矩陣進行分解,然后再重構(gòu),重構(gòu)的結(jié)果就是預測結(jié)果,SVD算法在評分預測方面的性能優(yōu)于傳統(tǒng)的基于鄰域的算法,在Netflix Prize競賽中取得了巨大的成功。

  神經(jīng)網(wǎng)又稱為多層感知器,因其具有強大的函數(shù)表達能力,可以表達復雜模型,是機器學習的一個重要研究分支,2006年HINTON G E[3]等人發(fā)明訓練深度網(wǎng)絡(luò)的方法以后,具有深度結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)成為了機器學習領(lǐng)域的一個研究熱點。自編碼器是神經(jīng)網(wǎng)絡(luò)中一種用于無監(jiān)督學習的網(wǎng)絡(luò),本文提出一種關(guān)于自編碼器在評分預測上的擴展,并與當前熱門的評分預測算法SVD進行試驗對比。

1 算法

  目前很多的機器學習工作都會使用自編碼器進行無監(jiān)督學習,得到一組好的特征表示來完成更高級的任務[4-5],使用這樣的方法獲得了顯著的效果。基于自編碼器有很強的發(fā)現(xiàn)潛在特征的能力,在評分預測中對于用戶評分矩陣,用已經(jīng)評分的部分作為輸入,使用自編碼器學習恒等函數(shù)y(x)≈x獲得數(shù)據(jù)更深層次的表達,然后再利用這組表達去重構(gòu)評分矩陣缺失的部分,即得到預測值。

  1.1 網(wǎng)絡(luò)結(jié)構(gòu)

  假設(shè)有N個用戶,M部電影,用戶對某個電影的評分為1~K之間的某個整數(shù),就形成了M×N的矩陣V,這個矩陣是一個有缺失數(shù)據(jù)的矩陣,如果用戶i沒有對電影j進行評分則元素Vji就是缺失的。矩陣的一列的第i屬性表示用戶i對電影的評分,用矩陣V的一個列向量作為輸入給自編碼器。自編碼器輸入層的每一個節(jié)點代表用戶對當前電影的評分,對于輸入向量中缺失評分的那個用戶,網(wǎng)絡(luò)中對應的輸入的單元和輸出單元也是缺失的,這樣自編碼器會根據(jù)不同的電影輸入而改變網(wǎng)絡(luò)結(jié)構(gòu),但是隱藏層的單元數(shù)是固定的,單元之間的參數(shù)是共享的,網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。在圖中展示了兩個電影輸入給自編碼器的情況,第一個電影只被用戶1、2、3、5評過分,則相應的第4個輸入和輸出節(jié)點是缺失的;第二個電影被用戶1、3、4評過分,則第2和第5個節(jié)點是缺失的。

001.jpg

  現(xiàn)在來分析特定電影被用戶評分的向量作為輸入情況下的自編碼器。假設(shè)電影被n個用戶評價,h為隱藏層的單元個數(shù),則有如下符號定義:

  v:神經(jīng)網(wǎng)絡(luò)的輸入,v∈Rn。

  h:隱藏層的單元數(shù)。

  W:第層的單元j到連接到第l+1層的單元i的參數(shù),其中W(1)∈Rh×n,W(2)∈Rh×n。

  b:連接到l+1層的單元i的偏置。

  a:第l層的單元i的激活,其中a=vi表示第i個輸入。

  自編碼器的向前計算過程為:

  1.png

  2.jpg

  1.2 網(wǎng)絡(luò)訓練

  網(wǎng)絡(luò)的訓練采用反向傳播算法,包含向前階段和向后階段兩個過程。向前階段使用式(1)、(2)計算出預測值,在向后階段利用誤差向后傳播的思想計算梯度,即先計算l+1梯度,再計算l層的梯度。每個電影的輸入用向量v表示,則每個參數(shù)的梯度為:

  3.jpg

  使用bath-method訓練時,不同電影的輸入被相同用戶評分為輸出單元和輸入單元,可以把與這些單元相關(guān)的參數(shù)的梯度進行累加,作為總梯度來進行參數(shù)的更新。

  2006年Chu Chengtao[6]提出當算法能夠?qū)懗梢环N稱為summation form的形式時這種算法就能很容易地進行并行化訓練,并給出了神經(jīng)網(wǎng)絡(luò)在Map-Reduce框架下的并行化訓練思路,本文提出的預測評分算法很容易擴展到處理大數(shù)據(jù)的環(huán)境。

  1.3 預測

002.jpg

  網(wǎng)絡(luò)訓練完成后進入到預測階段,如要預測用戶u1對電影的評分,網(wǎng)絡(luò)的輸入層到隱藏層不變,只需在輸出層增加一個關(guān)于用戶u1的輸出節(jié)點,為了能夠預測其訓練集中所有用戶對當前電影的評分,可以把輸出層的節(jié)點數(shù)增加到N,網(wǎng)絡(luò)結(jié)構(gòu)修改如圖2所示。輸入層的節(jié)點4是缺失的,但是輸出層的節(jié)點4還在,因此輸出層的節(jié)點4就是算法對用戶4關(guān)于當前電影的評分預測。然后使用式(1)、(2)對網(wǎng)絡(luò)進行一次向前計算,即可得到網(wǎng)絡(luò)對電影被某個用戶評分的預測。

  1.4 利用隱式反饋

  在推薦系統(tǒng)領(lǐng)域,會遇到一種叫做冷啟動的問題。網(wǎng)站有很多的電影和用戶,但是用戶對電影的評分卻很少,評分矩陣過于稀疏,導致評分預測精度下降。電影網(wǎng)站很容易獲得一種隱式的反饋,即用戶看過或瀏覽過某部電影,但是因為某種原因沒有給出評分,這種隱式的反饋,也可以在一定程度上解釋用戶的偏好,因此算法就可以利用這組隱式反饋數(shù)據(jù)。考慮向量d∈{0,1}N是一個長度為N的0~1向量,表示電影是否被某個用戶查看過,這樣就可以通過這組向量去影響隱藏層的表示,這時對式(1)進行修改如下:

  4.jpg

  本次實驗采用MoiveLens-100k數(shù)據(jù)集,其中含有943個用戶對1 682部電影的10萬次評分,評分取值是從1~5之間的整數(shù),實驗前需要對數(shù)據(jù)進行預處理,即對整個數(shù)據(jù)除以5,最后算法的輸出結(jié)果乘以5得到最終的預測結(jié)果。在實驗中把數(shù)據(jù)集劃分為不相交的兩部分,第一部分包含9萬個用戶評分作為訓練集,剩下的作為測試集驗證預測效果,上述過程會重復劃分10次,進行10次訓練和預測。預測結(jié)果的評價采用評分預測中常用的均方根誤差(RMSE)作為評分標準。假設(shè)用戶u對電影i的真實評分為rui,算法預測評分為ui,T是一個集合存放測試集中用戶u對電影i評分的二元組,則RMSE的計算公式為:

  5.png

  每次訓練,把訓練數(shù)據(jù)分成10批(batche),每批含有168個電影的訓練用例,最后一批含有170個電影訓練用例,每一批計算完梯度后進行參數(shù)更新,神經(jīng)網(wǎng)絡(luò)的隱藏單元個數(shù)設(shè)置為50。對比實驗選擇當下預測評分算法中比較流行的SVD,SVD的隱式因子設(shè)定為50,數(shù)據(jù)全部經(jīng)過算法訓練一次記一個周期(epoch),訓練50個周期,在1~50個周期的誤差中選擇最好的訓練結(jié)果,如圖3所示。10次測試的平均結(jié)果如表1所示。從結(jié)果來看,基于自編碼器的評分預測算法性能在當前數(shù)據(jù)集上好于SVD,帶有隱式反饋的自編碼器性能略好于原始的自編碼器,但是提升效果不明顯,僅有0.06。

003.jpg

3 結(jié)論

  本文提出了一種基于自編碼器的評分預測算法,在MoiveLens數(shù)據(jù)集上獲得了不錯的效果,實驗中的參數(shù)并沒有被很好地調(diào)節(jié),算法還有提高的可能性,用戶的隱式反饋雖然還能提高算法的預測精度,但是在實驗中提高僅僅只有0.06,并不明顯,如何更好地利用這種隱式反饋需要進一步研究。通常在獲取的用戶評分數(shù)據(jù)中往往帶有時間屬性,而這也是一個非常好收集到的屬性, KOREN Y提出的一個SVD的變種[1]中使用了時間屬性并取得了好的成績,今后的研究中會考慮把時間屬性加入到自編碼器模型中。近年來基于深度結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)成為機器學習研究的熱點,已被成功地使用到很多領(lǐng)域,如自然語言處理、信息檢索、分類。未來利用具有構(gòu)建深度結(jié)構(gòu)的自編碼器來提高預測結(jié)果也值得進一步研究。

參考文獻

  [1] 項亮.推薦系統(tǒng)實戰(zhàn)[M].北京:人民郵電出版社,2012.

  [2] SIMON F. Netfix update: tray this at home[EB/OL]. [2006-12-11](2014-09-01).http://sifter.org/~simon/journal/20061211.html.

  [3] HINTON G E, OSINDERO S, TEH Y. A fast learning algorithm for deep belief nets [J]. Neural Computation, 2006,(18):1527-1554.

  [4] RAINA R, BATTLE A, LEE H, et al. Self-taught learning: transfer learning from unlabeled data[C]. Proceedings of the 24th International Conference on Machine Learning, ICML 2007,2007:759-766.

  [5] HINTON G E, SALAKHUTDINOV R. Reducing the dimensionality of data with neural networks[J]. Science, 2006,31(3):504-507.

  [6] Chu Chengtao, KIM S K, Lin Yian, el al. Map-reduce for machine learning on multicore [C]. NIPS 2006.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 尤物国产精品福利三区| 欧美综合激情网| 国产精品亚洲片在线观看不卡 | 中文字幕无码人妻aaa片| 法国性经典xxxxhd| 国产一级毛片高清视频完整版| 88国产精品视频一区二区三区| 成人福利小视频| 亚洲制服丝袜精品久久| 秋霞免费理论片在线观看午夜| 国产成人久久精品二区三区| aaaaa级少妇高潮大片| 无码天堂亚洲国产AV| 亚洲午夜成人片| 狠狠色丁香婷婷| 四虎8848精品永久在线观看| 国产三级毛片视频| 国产麻豆综合视频在线观看| 一区二区日韩精品中文字幕| 日本久久中文字幕| 亚洲a∨无码男人的天堂| 污污动漫在线看| 免费黄色欧美视频| 色妞色综合久久夜夜| 国产成人涩涩涩视频在线观看| 91欧美激情一区二区三区成人| 好猛好深好爽好硬免费视频| 久久久久久久久中文字幕 | 欧美在线观看视频一区| 人妻少妇看a偷人无码精品| 美女黄网站人色视频免费国产| 国产在线精品美女观看| 巨胸喷奶水视频www免费视频| 在线看欧美成人中文字幕视频| 一级做a爰片久久毛片唾| 日本japanese丰满奶水| 久久青草免费91观看| 欧美一级做一级做片性十三| 亚洲欧美日本另类| 爽爽日本在线视频免费| 免费大片黄手机在线观看|