亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于深度神經(jīng)網(wǎng)絡(luò)的推薦算法

        2018-08-22 01:23:24程磊高茂庭
        現(xiàn)代計(jì)算機(jī) 2018年22期
        關(guān)鍵詞:用戶模型

        程磊,高茂庭

        (上海海事大學(xué)信息工程學(xué)院,上海 201306)

        0 引言

        互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展,為人類的信息共享提供便捷的同時(shí),也帶來了信息過載的問題。為了解決此問題,推薦系統(tǒng)應(yīng)用而生,如今在各種領(lǐng)域得到廣泛應(yīng)用,例如電子商務(wù)、信息檢索、社交網(wǎng)絡(luò)、信息服務(wù)和新聞推送等。推薦系統(tǒng)通常是根據(jù)用戶的歷史記錄進(jìn)行推薦,其中推薦算法顯得尤為重要,目前主流的包括協(xié)同過濾、基于內(nèi)容和混合的推薦算法[1]。近年來深度學(xué)習(xí)已經(jīng)成功應(yīng)用于推薦領(lǐng)域。

        深度學(xué)習(xí)是通過組合低層的稀疏特征形成高層稠密的語(yǔ)義抽象,從而挖掘數(shù)據(jù)的特征表示。深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)是深度學(xué)習(xí)的一個(gè)學(xué)習(xí)模型,在較多領(lǐng)域上具有很高的推薦準(zhǔn)確度。劉帆[2]等人將DNN用于圖像融合,通過DNN提取低頻子帶的特征,并通過隱藏層的權(quán)值識(shí)別低頻子帶分量。王昕[3]等人將DNN應(yīng)用到語(yǔ)音識(shí)別的鄰域,DNN通過擬合噪語(yǔ)音和純語(yǔ)音之間的非線性關(guān)系,得到純語(yǔ)音的近似表征,達(dá)到降噪的作用。陳春利[4]等人將DNN進(jìn)行改進(jìn),提出一種堆疊深度信念網(wǎng)絡(luò),通過探討隱含層參數(shù)、迭代次數(shù)和學(xué)習(xí)率來將DNN用于信號(hào)分選,從而提高了分類的準(zhǔn)確率。趙紅燕[5]等人將DNN用于漢語(yǔ)識(shí)別,通過利用DNN自動(dòng)學(xué)習(xí)目標(biāo)詞的上下文特征建立了一個(gè)漢語(yǔ)框架識(shí)別模型。張艷[6]等人將DNN用于DNA位點(diǎn)的選擇,使用DNN構(gòu)建數(shù)據(jù)分析模型,實(shí)現(xiàn)了致病位點(diǎn)與疾病的關(guān)聯(lián)分析。萬(wàn)圣賢[7]等人將DNN用于微博情感分析,將微博中的文本輸入到DNN中,經(jīng)過處理后對(duì)文本進(jìn)行分詞,提高了分類的準(zhǔn)確性。陳耀旺[8]等人將DNN用于個(gè)性化游戲推薦,通過分析用戶的偏好及時(shí)間推移興趣建立訓(xùn)練集,通過DNN進(jìn)行建模分析,提高了推薦準(zhǔn)確度。

        本文將深度神經(jīng)網(wǎng)絡(luò)用于推薦算法,對(duì)用戶的項(xiàng)目評(píng)分和項(xiàng)目類型進(jìn)行分析,提出一種基于深度神經(jīng)網(wǎng)絡(luò)的推薦算法。該推薦算法是一種基于內(nèi)容的推薦[9],主要根據(jù)項(xiàng)目的評(píng)分和項(xiàng)目的類型,挖據(jù)項(xiàng)目類型上的相似性給予推薦,相比于協(xié)同過濾,該推薦算法不需依賴于近鄰用戶的評(píng)分,只需根據(jù)用戶個(gè)人的評(píng)分和項(xiàng)目類型就能產(chǎn)生推薦。

        1 相關(guān)工作

        1.1 深度神經(jīng)網(wǎng)絡(luò)

        深度神經(jīng)網(wǎng)絡(luò)是一組限制玻爾茲曼機(jī)組成的層次神經(jīng)網(wǎng)絡(luò)[10],其結(jié)構(gòu)如圖1所示。

        圖1 DNN模型圖

        圖1中,DNN是一個(gè)層級(jí)結(jié)構(gòu),包括輸入層、隱含層(一層或者多層)和輸出層。輸入層用于接收輸入信號(hào),輸出層節(jié)點(diǎn)用于輸出信號(hào)。相鄰層的節(jié)點(diǎn)采用全連接,每個(gè)連接都存在一個(gè)連接權(quán)值,而同一層的節(jié)點(diǎn)不存在連接。

        1.2 數(shù)據(jù)說明

        數(shù)據(jù)包括用戶項(xiàng)目評(píng)分和項(xiàng)目類型,其中,Ui表示第i個(gè)用戶,Ii表示第i個(gè)項(xiàng)目,Ti表示第i個(gè)類型。數(shù)據(jù)格式分別如表1和表2所示。

        表1 用戶項(xiàng)目評(píng)分表

        表2 項(xiàng)目類型表

        表1中,數(shù)字1到5表示用戶對(duì)項(xiàng)目的存在評(píng)分,且評(píng)分等級(jí)為1到5,等級(jí)越高,表明用戶對(duì)項(xiàng)目越喜歡;數(shù)字0表示用戶對(duì)項(xiàng)目不存在評(píng)分。表2中,數(shù)字1表示項(xiàng)目屬于類型,數(shù)字0表示項(xiàng)目不屬于類型。

        2 基于深度神經(jīng)網(wǎng)絡(luò)的推薦算法

        推薦算法主要包括離線部分和在線部分。離線部分主要是數(shù)據(jù)處理和DNN訓(xùn)練,在線部分是實(shí)時(shí)預(yù)測(cè)。

        2.1 數(shù)據(jù)處理

        DNN訓(xùn)練前,需要對(duì)模型輸入層和輸出層的數(shù)據(jù)進(jìn)行處理,并建立一種對(duì)應(yīng)關(guān)系。模型輸入層的數(shù)據(jù)為用戶項(xiàng)目喜好度,模型輸出層為用戶項(xiàng)目評(píng)分。

        (1)輸入層數(shù)據(jù)處理

        用戶對(duì)項(xiàng)目進(jìn)行評(píng)分時(shí),項(xiàng)目的類型起到了一定的引導(dǎo)性作用。例如,用戶對(duì)不同項(xiàng)目的類型存在不同的喜愛程度,當(dāng)項(xiàng)目類型中存在用戶喜歡的類型時(shí),用戶就會(huì)給予項(xiàng)目更高的評(píng)分等級(jí)。通過統(tǒng)計(jì)用戶評(píng)分過的項(xiàng)目數(shù),可以得到用戶對(duì)于不同項(xiàng)目類型的評(píng)分次數(shù),出現(xiàn)評(píng)分次數(shù)越多的類型,表明用戶對(duì)此類型的喜好程度越高。

        首先,計(jì)算用戶u對(duì)類型t的評(píng)論次數(shù),用Sut表示,它是通過用戶-項(xiàng)目隸屬矩陣?和項(xiàng)目-類型隸屬矩陣I?的對(duì)應(yīng)項(xiàng)相乘得到。在?中,當(dāng)用戶u存在對(duì)項(xiàng)目 i的評(píng)分時(shí),=1,否則=0。同理,在 I?中,當(dāng)項(xiàng)目 i中屬于類型 t時(shí),?=1,否則=0。如式(1):

        其中,k表示項(xiàng)目種類數(shù)。

        然后,計(jì)算用戶u對(duì)所有類型的總評(píng)論次數(shù),用Su表示。如式(2):

        其中,m表示類型種類數(shù)。

        最后,計(jì)算每個(gè)用戶u對(duì)于項(xiàng)目類型t的喜好度,用 Put表示,如式(3):

        (2)輸出層數(shù)據(jù)處理

        用戶對(duì)項(xiàng)目的評(píng)分表示了用戶對(duì)項(xiàng)目的喜好程度,將喜好程度進(jìn)行編碼,如表3所示。

        表3 用戶項(xiàng)目評(píng)分編碼表

        (3)建立對(duì)應(yīng)關(guān)系

        將處理后的輸入層數(shù)據(jù)和輸出層數(shù)據(jù)進(jìn)行匯總,建立對(duì)應(yīng)關(guān)系。以U1為例,其訓(xùn)練數(shù)據(jù)如表4。

        表4 關(guān)系對(duì)應(yīng)表

        2.2 DNN訓(xùn)練

        DNN訓(xùn)練前,需要搭建模型并確定方法,模型具體包括一個(gè)輸入層,兩個(gè)隱含層和一個(gè)輸出層。輸入神經(jīng)元的個(gè)數(shù)為Nin,隱藏層第l層神經(jīng)元的個(gè)數(shù)為,輸出層神經(jīng)元的個(gè)數(shù)為Nout。隱含層采用Dropout策略,激活函數(shù)為ReLU,輸出層的激活函數(shù)為Softmax,代價(jià)函數(shù)采用分類交叉熵,代價(jià)函數(shù)的求解方式采用Adam。

        模型中隱含層神經(jīng)元的個(gè)數(shù)采用Kolmogorov定理,輸入神經(jīng)元數(shù)目與隱含層神經(jīng)元的數(shù)目存在等量關(guān)系,如式(4):

        DNN訓(xùn)練過程中,主要包括以下幾個(gè)步驟:

        線性求和,激活函數(shù),代價(jià)函數(shù)和代價(jià)函數(shù)求解。

        (1)線性求和

        隱含層和輸出層中每一個(gè)神經(jīng)元的輸入都來自前一層所有神經(jīng)元輸出值的線性加權(quán)和,為了防止過度擬合,對(duì)輸入值采取 Dropout策略[11],如式(5):

        (2)激活函數(shù)

        激活函數(shù)是將線性求和的輸入值進(jìn)行非線性映射,使得神經(jīng)網(wǎng)絡(luò)具備了分層學(xué)習(xí)的能力。隱含層中的激活函數(shù)采用ReLU,輸出層的激活函數(shù)采用Softmax,分別如式(6)和式(7):

        (3)代價(jià)函數(shù)

        DNN接收輸入信號(hào)并產(chǎn)生輸出信號(hào)的過程稱之為前向傳播過程,當(dāng)?shù)玫捷敵鲋岛笮枰c實(shí)際值進(jìn)行比對(duì),這時(shí)需要代價(jià)函數(shù)。根據(jù)任務(wù)的不同,常分為交叉熵準(zhǔn)則和最小均方差。在模型中采用交叉熵準(zhǔn)則的一種,稱為分類交叉熵,其表達(dá)是如(8):

        其中,Li表示第i個(gè)輸出值與目標(biāo)值的差值,tij表示第i個(gè)輸入信號(hào)對(duì)應(yīng)的第 j個(gè)實(shí)際類,pij表示第i個(gè)輸入信號(hào)對(duì)應(yīng)的第 j個(gè)預(yù)測(cè)類,j表示預(yù)測(cè)值的類別數(shù)。

        (4)代價(jià)函數(shù)求解

        代價(jià)函數(shù)的求解采用Adam算法[12],即自適應(yīng)時(shí)刻估計(jì)方法(Adaptive Moment Estimation),它是用來替代隨機(jī)梯度下降的優(yōu)化算法,它利用梯度的一階矩陣和二階矩陣估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率,其中目標(biāo)函數(shù),一階矩陣和二階矩陣的更新參數(shù)分別為α,β1,β2。則算法流程如下:

        輸入:參數(shù) α,β1,β2,目標(biāo)函數(shù) f(θ)

        輸出:使得目標(biāo)函數(shù)收斂的θ

        執(zhí)行步驟:

        1)Intial:parameter vector:θ0

        2)1stmomentvector:m0←0

        3)2stmomentvector:v0←0

        4)timestep:t←0

        5)whileθtnot converged do

        6)t←t+1

        7)gt← ?θf(wàn)t(θt-1)

        8)mt← β1?mt-1+(1- β1)?gt

        9)vt← β2?vt-1+(1- β2)?g2t

        10)m?t←mt/(1-β1

        t)

        11)v?t← vt/(1- β2

        t)

        12)θt←θt-1-α?m?t/(?- ε)

        13)end while

        14)return θt

        2.3 實(shí)時(shí)預(yù)測(cè)

        DNN訓(xùn)練結(jié)束后,確定最佳的模型參數(shù),即可得到最佳模型。當(dāng)加入新項(xiàng)目時(shí),將目標(biāo)項(xiàng)目先進(jìn)行數(shù)據(jù)處理,然后經(jīng)過模型訓(xùn)練,便得到預(yù)測(cè)結(jié)果。對(duì)于預(yù)測(cè)后的結(jié)果,按照表3進(jìn)行反編碼,即可得到目標(biāo)用戶對(duì)目標(biāo)項(xiàng)目的預(yù)測(cè)評(píng)分pui。

        3 實(shí)驗(yàn)結(jié)果分析

        3.1 實(shí)驗(yàn)數(shù)據(jù)集和實(shí)驗(yàn)環(huán)境

        實(shí)驗(yàn)數(shù)據(jù)集采用MovieLens 100K數(shù)據(jù)集,它包含用戶對(duì)電影的評(píng)分和電影的類型。實(shí)驗(yàn)數(shù)據(jù)集采用實(shí)驗(yàn)環(huán)境為Windows7 x64操作系統(tǒng),Intel Core i5處理器和8G內(nèi)存,代碼使用Python3.5語(yǔ)言實(shí)現(xiàn)。

        3.2 實(shí)驗(yàn)設(shè)置

        模型的搭建使用Keras,它是一種基于Theano或TensorFlow的深度學(xué)習(xí)庫(kù)、線性求和、激活函數(shù)、代價(jià)函數(shù)和代價(jià)函數(shù)的求解采用Keras中的默認(rèn)參數(shù),而剩余的其他參數(shù)的設(shè)置如表5。

        表5 實(shí)驗(yàn)參數(shù)設(shè)置

        參數(shù)設(shè)置完畢后,需要對(duì)模型進(jìn)行訓(xùn)練,模型訓(xùn)練的迭代次數(shù)為1000,批尺寸為20,實(shí)時(shí)保存最佳模型。模型保存后,需要對(duì)模型進(jìn)行測(cè)試,采用5折交叉驗(yàn)證,通過均方誤差去衡量預(yù)測(cè)的準(zhǔn)確性。

        3.3 實(shí)驗(yàn)度量標(biāo)準(zhǔn)

        本文采用均方誤差(RMSE)作為度量標(biāo)準(zhǔn),它可以直觀反映總體預(yù)測(cè)的誤差,如式(9):

        其中,pui表示用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分,rui表示用戶u對(duì)項(xiàng)目i的實(shí)際評(píng)分,N表示預(yù)測(cè)的項(xiàng)目數(shù)。

        3.4 實(shí)驗(yàn)對(duì)比

        實(shí)驗(yàn)對(duì)比的目的是確定算法在不同的訓(xùn)練項(xiàng)目數(shù)下模型預(yù)測(cè)的誤差變化,從而給出最佳的訓(xùn)練項(xiàng)目數(shù)。由于本文推薦算法需要用戶有一定的評(píng)論項(xiàng)目數(shù)才可以給出預(yù)測(cè),并且在實(shí)際生活中,用戶的評(píng)論項(xiàng)目數(shù)是一個(gè)不確定數(shù)目,所以設(shè)置模型訓(xùn)練的項(xiàng)目數(shù)分別為10,20,30,40,50,60,70,模型測(cè)試時(shí)的項(xiàng)目數(shù)均為30,比較在不同訓(xùn)練項(xiàng)目數(shù)下,算法預(yù)測(cè)評(píng)分的均方誤差,如圖2。

        圖2 不同項(xiàng)目數(shù)下的RMSE值變化

        從圖2中可以看出,隨著模型訓(xùn)練的項(xiàng)目數(shù)增加,算法預(yù)測(cè)評(píng)分的均方誤差逐漸降低,當(dāng)模型訓(xùn)練的項(xiàng)目數(shù)為60的時(shí)候,其均方誤差最小。因此,項(xiàng)目數(shù)為60時(shí),算法預(yù)測(cè)的效果已經(jīng)基本達(dá)到最佳。

        選取模型訓(xùn)練的項(xiàng)目數(shù)為60,進(jìn)行預(yù)測(cè)評(píng)分實(shí)驗(yàn),當(dāng)預(yù)測(cè)項(xiàng)目數(shù)為30時(shí),其預(yù)測(cè)評(píng)分與實(shí)際評(píng)分的對(duì)比效果圖,如圖3。

        從圖3中可以看出,當(dāng)模型訓(xùn)練的項(xiàng)目數(shù)為60時(shí),算法預(yù)測(cè)評(píng)分的效果已經(jīng)呈現(xiàn)不錯(cuò)的效果。在30個(gè)預(yù)測(cè)項(xiàng)目中,存在8個(gè)項(xiàng)目的預(yù)測(cè)評(píng)分與實(shí)際評(píng)分存在偏差,而剩余22個(gè)項(xiàng)目的預(yù)測(cè)評(píng)分與實(shí)際評(píng)分完全一致,若從命中率分析,算法的命中率高達(dá)73.33%。

        圖3 預(yù)測(cè)評(píng)分與實(shí)際評(píng)分對(duì)比效果圖

        4 結(jié)語(yǔ)

        本文提出了一種基于深度神經(jīng)網(wǎng)絡(luò)的推薦算法,算法不需要依賴于近鄰的評(píng)分,只需根據(jù)項(xiàng)目類型和項(xiàng)目評(píng)分產(chǎn)生推薦。在用戶存在一定的評(píng)分項(xiàng)目數(shù)時(shí),利用本文算法可以產(chǎn)生令人滿意的推薦效果。下一步將著手于融合用戶的評(píng)分時(shí)間和評(píng)論留言,利用CNN或NLP等前沿的深度學(xué)習(xí)框架產(chǎn)生推薦,提高算法的準(zhǔn)確度。

        猜你喜歡
        用戶模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        3D打印中的模型分割與打包
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        Camera360:拍出5億用戶
        100萬(wàn)用戶
        国内精品人人妻少妇视频| 国产成人涩涩涩视频在线观看| 日本无遮挡吸乳呻吟视频| 亚洲国产成人AⅤ片在线观看| 精品在线视频免费在线观看视频| 久久国产精品亚洲va麻豆| 国产又爽又黄又刺激的视频| 国产欧美日韩在线观看| 久久国产亚洲中文字幕| 亚洲毛片免费观看视频| 人禽交 欧美 网站| 人体内射精一区二区三区| 亚洲女同同性少妇熟女| 国产精品亚洲av高清二区| 日韩精品一区二区三区中文| 国产精品美女| 台湾自拍偷区亚洲综合| 国产精品一区二区三区免费视频| 人妻丰满熟妇av无码区不卡 | 麻豆国产在线精品国偷产拍| 久久精品免费免费直播| 99久久久无码国产精品免费砚床 | 一区二区三区在线观看视频免费| 国产一区二区视频在线免费观看| 污污内射在线观看一区二区少妇 | 久久开心婷婷综合中文| 亚洲av色香蕉一区二区三区| 国产人在线成免费视频| 中文字幕人妻系列一区尤物视频| 久久热免费最新精品视频网站| 国产一区内射最近更新| 99国产超薄丝袜足j在线观看| 一区二区三区在线日本| 日本孕妇潮喷高潮视频| 精品人妻一区二区三区四区| 国内精品91久久久久| 日本一区二区三区区视频| 日本最大色倩网站www| 91短视频在线观看免费| 手机在线播放成人av| 国产人妻大战黑人20p|