999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進神經協同過濾模型的電影推薦系統

2020-07-20 06:16:16駿,虞
計算機工程與設計 2020年7期
關鍵詞:排序用戶信息

王 駿,虞 歌

(杭州師范大學 信息科學與工程學院,浙江 杭州 311121)

0 引 言

在2006年之前,矩陣分解法采用的是數學上的SVD法,不僅占用大量內存,而且時間復雜度高。Simon Funk發表了一個算法(稱為Funk-SVD),提供了矩陣分解的新思路,矩陣分解變成分解為兩個低階矩陣,并縮小低階矩陣相乘之積與原來矩陣的差距。這個算法后來被Netflix Prize的冠軍Koren稱為(latent factor model, LFM),使得矩陣分解算法在海量數據中的個性化信息推薦應用成為可能。

隨著神經網絡的發展,谷歌在2016年推出Wide&Deep網絡[1]后,在特征嵌入層之上加入多層感知機(multi-layer perceptron,MLP),使得模型泛化能力更強。何向南等進一步提出多層感知機與廣義矩陣分解(genera-lized matrix decomposition,GMF)結合的神經協同過濾模型[2](neural collaborative filtering,NCF),使模型的推薦能力得到更大提升[2]。

神經協同過濾模型的多層感知機層把用戶特征向量與物品特征向量內積產生的向量送入神經網絡中學習得到高階隱含特征信息,廣義矩陣分解層把用戶特征向量與物品特征向量進行內積產生的向量當低階特征組合信息,最后模型得到的信息綜合了高階隱含特征信息和低階特征組合信息[3]。可是使用神經網絡學習抽象的隱含信息總會丟失一部分信息,而且神經網絡雖然有強大的擬合能力,可是具有解釋性差的特點,單一的信息來源難以滿足復雜的推薦問題。

本文基于神經協同過濾模型,把原GMF結構改為BPR[4]結構來挖掘排序信息,實驗結果表明,排序信息與低階特征組合信息相比,有更好的推薦結果。在改進的神經協同過濾模型上,結合使用電影類型因子、電影流行度等輔助信息優化推薦結果,建立個性化電影推薦系統,并實現該系統電影推薦仿真。使用MovidLens-100K和 MovidLens-1M 數據集的實驗結果表明,改進的神經協同過濾模型(本文稱為B-NCF模型)在推薦結果的命中率和歸一化折扣累積增益[5]上都優于神經協同過濾模型。

1 相關知識

1.1 神經協同過濾模型

神經協同過濾模型(NCF)中,輸入層上面是嵌入層,它是一個全連接層,將來自輸入層的稀疏表示映射為稠密向量[2](dense vector)。NCF模型用兩條路線來對用戶和物品建模(用戶ID和物品ID兩個輸入),需要通過GMF和MLP兩個路線,把他們各自的運算得到的信息連接起來。GMF應用了一個線性內核來模擬潛在的特征交互;MLP使用非線性內核從數據中學習高階特征交互信息[3]。

神經協同過濾模型結構,如圖1所示。

圖1 神經協同過濾模型結構

1.2 貝葉斯個性化排序算法

貝葉斯個性化排序(Bayesian personalized ranking,BPR)算法[4]是實現最大化后驗概率優化排序的算法,在UAI 2009被采用,至今仍然是很重要的推薦系統算法。推薦排序算法[6]大體分為3種,第一種是逐點方法(pointwise approach),第二種是成對方法(pairwise approach),還有一種是列表方法(listwise approach)。貝葉斯個性化排序算法屬于第二種方法,利用概率統計方法對元素進行兩兩之間排序。

假設任意用戶u在電影p與n同時存在的情況下選擇了電影p,我們就認為p排序在n前面,如此記錄這三元組 (u,p,n)。 所有 (u,p,n) 組合用集合D表示,>u代表用戶u對應的所有商品的全序關系,則優化目標是最大化后驗概率p(θ|>u)。 根據貝葉斯公式,貝葉斯個性化排序算法最終的最大對數后驗估計函數如式(1)所示

(1)

2 基于神經協同過濾的改進模型

本文在基于神經協同過濾模型基礎上,提出了改進的神經協同過濾模型B-NCF。B-NCF模型在NCF模型基礎上使用BPR結構代替神經協同過濾網絡的GMF結構挖掘排序信息,如圖2所示。

圖2 B-NCF模型結構

2.1 嵌入層(embedding layer)

輸入層上面是嵌入層,它是一個全連接層,用于將數據映射為特征向量。其中用戶ID(Uid)映射為用戶特征向量,用戶已經評分的電影ID(Pid)和用戶沒有評分的電影ID(Nid)映射為電影特征向量。容易看出,三元組 (u,p,n) 中任意用戶u對電影p感興趣的概率大于電影n。

Uid,Pid與Nid都分別經過BPR嵌入層和MLP嵌入層映射為向量,然后后綴為Emb的向量去BPR層,后綴為MLP的向量去MLP層,分別命名為Uid_MLP,Uid_Emb,Pid_MLP,Pid_Emb,Nid_MLP,Nid_Emb。

根據BPR算法的使用方法,算法模型訓練好后,BPR嵌入層的權重可以看作用戶隱因子矩陣和電影隱因子矩陣,使用BPR嵌入層權重可以計算出任意用戶u對任意一部電影的排序得分。

2.2 多層感知機層(MLP Layer)

如圖2中MLP層所示,Pid_MLP,Nid_MLP,Uid_MLP向量拼接成新的向量進入MLP層經過多層感知機產生高階特征信息。

在神經協同過濾模型的多層感知機層基礎上,增加了批標準化[7](batch normalization,BN)層與丟棄(Dro-pout)層,其中,BN層統一各層的方差加快模型的收斂速度,Dropout層提高泛化性防止過擬合。

多層感知機層輸出高階特征信息φMLP, 表達式[2]如式(2)所示

(2)

2.3 貝葉斯個性化排序層(BPR layer)

如圖2中BPR層所示,Uid_Emb,Pid_Emb,Nid_Emb向量進入BPR層產生排序信息。

貝葉斯個性化排序的目標是最大化電影p總排在電影n前面這個集合排列的概率,為了最大化這個概率就要最小化BPR loss。我們希望這個概率越大越好,對于BPR loss是越小越好[4],BPR loss表達式如式(3)所示

(3)

2.4 輸出層(output layer)

(4)

通過減小預測值(Model Prediction)與真實屬性值(Target)的交叉熵來迭代更新模型參數,表達式[2]如式(5) 所示

(5)

3 模型更新步驟

改進神經協同過濾模型所有參數更新步驟如下[9]:

輸入:3組數據Uid、Pid和Nid,學習率α, 正則項系數λ, 隱空間的維度K。

輸出:用戶BPR嵌入層權重矩陣W,電影BPR嵌入層權重矩陣H。

(1)初始化所有嵌入層權重。

(2)在BPR層,Uid_Emb*Pid_Emb與Uid_Emb*Nid_Emb作差,由sigmoid激活函數變換得到[0,1]值再與1作差,差值作為排序信息BPR loss。BPR 層輸出排序信息與MLP層信息拼接成新的向量。

(3)新向量通過sigmoid激活函數轉為取值在[0,1]的預測值,同時把評分表中任意用戶的大于或等于4分的電影屬性值設為1其余電影屬性值設為0,通過減小預測值(model prediction)與真實屬性值target的交叉熵來迭代更新模型參數。如果損失函數收斂,則模型訓練結束,輸出W和H,否則回到步驟(2)。

(4)迭代更新完成后,就可以根據BPR嵌入層權重計算出任意用戶u對任意一部電影的排序得分。

4 電影推薦系統

本文提出的電影推薦系統由兩部分組成,推薦得分也由兩部分信息生成。以神經協同過濾模型為基礎的B-NCF模型生成排序得分,再綜合流行度、電影類型因子等輔助信息得到推薦得分。電影推薦得分生成如圖3所示,訓練過程中,把命中率和歸一化折扣累積增益表現最好的那一次更新過程中的BPR嵌入層權重輸出(圖中假設權重是 0~9 的整數),訓練得到的權重可以看作對應的用戶隱因子矩陣和電影隱因子矩陣(item latent matrix),假設給用戶ID為1的用戶推薦電影,從用戶隱因子矩陣取第一行作用戶隱因子向量(user latent vector),與電影隱因子矩陣相乘得到相應的排序得分(rank score),通過輔助信息電影流行度(popularity score)和用戶評分(genre score)微調推薦得分(recommended score)。最后按推薦得分大小排序輸出前5部電影以及對應推薦得分。

圖3 電影推薦得分生成

一個用戶會喜歡多種類型電影,一部電影可以屬于多種類型,根據用戶觀看同一類型電影占所看電影數量比例,得到電影類型因子,公式如式(6)所示

(6)

同理,電影流行度是根據電影已經評價人數占總評價用戶人數的比例,再加1得到。本文的最終推薦得分如式(7)所示

RecommendedScore=
PopularityScore*RankScore*GenreScore

(7)

最后根據排序得分前5名輸出包含對應電影信息的推薦電影列表。

5 實驗設計與分析

5.1 數據來源

實驗數據集:MovieLens-100K,數據集里面包括u.data、u.info、u.item、u.genre、u.user、u.occupation等文件,其中u.data文件包含943個用戶對于1682部電影的100 000個評分(分值為[1,5]之間的整數);每個用戶至少評級20部電影;u.user文件包含用戶的人口統計信息(年齡,性別,職業,郵編);u.item文件包括電影名,電影ID,上映日期,IMDB電影網對應電影主頁網址,所屬的電影類型(恐怖,犯罪,喜劇等)。

由MovieLens-100K的評分(u.data)文件抽取80%數據做訓練數據集生成99 057對偏序對,Uid、Pid為評分用戶ID和評分電影ID,Nid為未評分電影ID,99 057對(Uid,Pid,Nid)偏序對做訓練數據訓練模型,剩下的20%數據提供真實屬性值用作測試集,訓練好的模型輸入測試集來計算改進模型的命中率和歸一化折扣累積增益。

MovieLens-1M數據集含有來自6040名用戶對3706部電影的100萬條評分數據,分為3個表:評分表、用戶信息表和電影信息表,同理得到訓練數據994 169對(Uid,Pid,Nid)偏序對和測試集。

5.2 實驗平臺

使用聯想筆記本電腦,內存為8 GB,CPU為Intel酷睿i53230M,CPU主頻為2.4 GHz,硬盤容量為1 TB;操作系統是Windows10,使用PyCharm編譯程序,使用Python版本是3.6.3,Tensorflow版本為1.10.0。

5.3 模型評價指標

排名列表的性能由命中率(hit rate,HR)和歸一化折扣累積增益(normalized discounted cumulative gain,NDCG)衡量。

命中率公式如式(8)所示

(8)

式中: |GT| 代表所有測試集合,分子是推薦列表中屬于測試集合的數量。

NDCG基于列表排名位置折損因子體現,它的思想主要是位置在推薦列表越靠前的推薦內容,其相關度應該越高,具體表達式如式(9)所示

(9)

其中,累加項的分子部分是效用函數或叫做增益(Gain),分母是關于位置的一個折損因子,Z是一個歸一化因子,表示理想的推薦列表的折損累計增益(discounted cumulative gain,DCG)。NDCG取值范圍在0到1區間,分值越高代表推薦越好。N是列表排名個數,本文取前10個輸出進行HR和NDCG評價,取N=10。

5.4 模型參數設置

每批次訓練數據量(Batchsize)定為256,訓練輪數(Epoch)為50。

在嵌入層,生成服從均值為0,方差為0.1的正態分布隨機數初始化嵌入層權重,用戶嵌入層輸入維度為用戶數量和電影嵌入層輸入維度為電影數量,隱空間的維度K都為10。

在MLP層,使用BN層對訓練數據進行歸一化,多層神經網絡各層神經元數量默認依次為64、32、16、8,丟棄率為0.2,MLP各層輸出都使用Relu激活函數。

在輸出層,BPR層輸出值與MLP層輸出值默認賦予 1∶1 的權重,直接拼接在一起產生新向量。使用sigmoid激活函數產生預測值,衡量預測值與真實值差距的損失函數使用交叉熵函數,學習率為0.001。該層權重初始化使用lecun uniform函數。優化器使用Adam[8]優化器,Adam優化器被廣泛認為在不同情況下工作性能都比較優秀的優化器。

5.4.1 MLP層的隱藏層數與預測因子個數

更多隱藏層數能夠加強神經網絡提取信息能力,在合適范圍內增加層數提升模型性能,但是超出范圍會導致過擬合,導致神經網絡學習能力降低;神經協同過濾模型的最后一層隱藏層決定了模型的性能,所以將其作為預測因子[2](predictive factors),使用 [0,16,32,64,128] 的中間各層神經元數量和 [8,16,32] 的預測因子數量進行了模型評估。所用數據集同為MovieLens-1M,訓練50輪,實驗結果見表1 和表2。

表1 不同隱藏層和不同神經元NDCG

表2 不同隱藏層和不同神經元HR

模型穩定性有待改進,訓練前訓練集NDCG和HR都低的情況下容易訓練出低分值NDCG和HR,嘗試別的優化器情況也不見好轉。因此整個實驗每組條件都是取多次出現結果并求平均值作為表現。在隱藏層為 [8,16,32,64], 雖然偶有低分表現,可是概率小得多。由表1和表2可以看到,隨著隱藏層增加模型表現越來越好,但在五層隱藏層的時候開始出現性能下降。神經網絡逐漸學習到有用的信息。預測因子并沒有隨著數量增加提升模型的性能,因此對比表1和表2,本文選擇使用 [8,16,32,64] 作為隱藏層,不僅因為表現好,而且待更新參數比五層隱含層 [8,16,32,64,128] 少。

5.4.2 BPR排序信息和MLP層信息混合比例

在輸出層,BPR排序信息和MLP層信息以一定權重結合形成新的向量。所用數據集同為MovieLens-1M,在訓練50輪,得到表3結果。

由表3可以看到偏離1∶1越遠的比例,相應實驗結果的NDCG和HR都逐漸減小,最佳的比例在1∶1附近,本文選擇1∶1作為BPR排序信息和MLP層信息混合比例。

表3 不同比例拼接得到的NDCG和HR

5.5 實驗結果與分析

5.5.1 模型對比

本文選取了神經協同過濾(NCF)模型,貝葉斯個性化排序(BPR)模型,多層感知機(MLP)模型和廣義矩陣分解(GMF)模型作為對照,主要的參數設置和神經網絡結構與B-NCF模型相同。訓練50輪,取不同算法在 MovieLens-100K 和MovieLens-1M數據集中多次表現的平均值,見表4和表5。

表4 不同模型在 MovieLens-100K分析比較

表5 不同模型在MovieLens-1M分析比較

由表4和表5可知,B-NCF模型平均能帶來至少 4%HR 和20%NDCG提升,由于使用了BPR排序算法,NDCG 的提升相當明顯。總體來說,GMF模型、BPR模型和MLP模型在兩個數據集的表現差不多,推薦水平相當,NCF模型總體性能比BPR、MLP和GMF模型要好,B-NCF 模型是這幾個模型中表現最好的,而且訓練更新的參數量只比神經協同過濾模型多不到2%。綜合來看,B-NCF 模型雖然HR和NDCG得到提升,可是沒有犧牲更多的計算資源去提升推薦性能。

5.5.2 在不同數據集表現

圖4和圖5為訓練50輪,B-NCF在數據集MovieLens-100K和MovieLens-1M的HR@10和NDCG@10曲線圖(縱坐標起點是0.6)。

圖4 在MovieLens-100K數據集的表現

圖5 在MovieLens-1M數據集的表現

由圖4和圖5可以看到,在不同數據集,B-NCF模型的HR和NDCG都在0.65以上,保持著較高的水平,而且在訓練輪數接近10的時候,HR和NDCG都趨向穩定,模型收斂速度很快,而且訓練數據集越大,模型學習能力越強。

5.6 電影推薦仿真

本文挑選評分列表中的第一個用戶給電影推薦系統進行推薦仿真,使用MovieLens-100K數據,該用戶評分電影272部,是一位24歲的男性工程師,喜歡黑色(Film-Noir)電影,喜劇(Comedy)電影,動畫(Animation)電影以及流行的好萊塢電影,基于該用戶的各項推薦得分見表6(只截取排序得分最大的前5部電影)。電影推薦系統給該用戶推薦結果見表7。

表6 各項得分情況

電影推薦系統給該用戶推薦結果見表7。

表7 電影推薦結果

6 結束語

通過上述研究可以看到,從挖掘信息的深度來看,基于神經協同過濾模型的B-NCF模型,提高了推薦的命中率和歸一化折扣累積增益,而且只增加了極少計算資源,在信息來源的廣度上看,基于B-NCF模型的電影推薦系統還綜合考慮了輔助信息來拓寬信息來源的多樣化,使得電影推薦更加個性化。

本文研究重點是推出基于B-NCF模型的電影推薦系統,對于B-NCF模型的最優參數并沒有做細致研究,輔助信息只選擇了電影流行度和電影類型因子,更多的推薦因素可以得到更好的個性化推薦結果,本文不再展開討論。B-NCF模型穩定性有待提高,初始訓練集低NDCG和低HR容易訓練出低NDCG和HR的推薦結果。可以通過篩選合適訓練集,比如訓練集初始HR和NDCG高于預設閾值才啟動運算推薦,否則重新生成訓練集,來減少出現低NDCG和HR的推薦情況。

今后的研究工作,會關注深度學習在推薦系統的各個方向的應用,比如注意力機制[10]在用戶興趣偏好上的應用,對抗生成網絡[11]模擬產生推薦列表。

猜你喜歡
排序用戶信息
排序不等式
恐怖排序
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 久久精品人人做人人爽97| 精品亚洲欧美中文字幕在线看| 欧美午夜视频| 九月婷婷亚洲综合在线| 91麻豆国产视频| 亚洲人成影视在线观看| 国产成人福利在线视老湿机| 97se综合| 成人午夜视频免费看欧美| 亚洲国产综合自在线另类| 午夜毛片福利| 久久网欧美| 亚洲精品大秀视频| 亚洲中文无码av永久伊人| 天堂在线视频精品| 国产精品自拍露脸视频| 亚洲午夜福利精品无码| 亚洲国产清纯| 激情無極限的亚洲一区免费| jizz国产在线| 久久婷婷五月综合97色| 成色7777精品在线| 国产丰满大乳无码免费播放| 一级毛片a女人刺激视频免费| 午夜精品福利影院| 久久精品国产精品国产一区| 日韩区欧美区| 国产在线观看成人91| 亚洲精品在线观看91| 91久久国产综合精品女同我| 国产成人精品免费av| 婷婷色在线视频| 国产麻豆另类AV| 精品无码一区二区三区在线视频| 制服丝袜无码每日更新| 中文字幕无码制服中字| 91口爆吞精国产对白第三集| 野花国产精品入口| 国产麻豆精品久久一二三| 国产精品任我爽爆在线播放6080 | 先锋资源久久| 亚洲成a∧人片在线观看无码| 人禽伦免费交视频网页播放| 欧美日韩免费| 欧美一区福利| 啪啪啪亚洲无码| 日本午夜三级| 国产成人高清精品免费| 久久特级毛片| 国产美女人喷水在线观看| 怡春院欧美一区二区三区免费| 波多野结衣国产精品| 国产精品三区四区| 成人综合久久综合| 免费A∨中文乱码专区| 国产成人亚洲日韩欧美电影| 国产精品手机在线播放| 欧美黄网在线| 黄色在线不卡| 91在线视频福利| 国内a级毛片| 亚洲成A人V欧美综合天堂| 亚洲香蕉在线| 午夜免费小视频| 久久婷婷国产综合尤物精品| 亚洲欧美日韩中文字幕在线一区| 熟女视频91| 亚洲国产日韩视频观看| 国产丝袜丝视频在线观看| 99在线视频免费| 新SSS无码手机在线观看| 国产丝袜第一页| 亚洲伊人久久精品影院| 蜜桃视频一区| 午夜精品一区二区蜜桃| 亚洲天堂免费观看| 午夜啪啪网| 91伊人国产| 日韩A∨精品日韩精品无码| 亚洲国产精品不卡在线 | 国产精品伦视频观看免费| a级毛片免费播放|