最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

AutoRec算法

2022-11-21 13:04 作者:021usc  | 我要投稿

AutoRec模型是一個(gè)單隱層神經(jīng)網(wǎng)絡(luò)推薦模型,可以說是最簡單的神經(jīng)網(wǎng)絡(luò)的模型。它的原理也不復(fù)雜,可以看做是MLP(多層感知機(jī))DNN(深度神經(jīng)網(wǎng)絡(luò))的簡化,其中最主要的是結(jié)合了自編碼器(AutoEncoder)和協(xié)同過濾(Collaborative Filtering)的思想。


自編碼器是一個(gè)能夠完成數(shù)據(jù)“自編碼”的模型:將數(shù)據(jù)以向量的形式作為輸入,通過自編碼器,得到的輸出盡可能和輸入接近。這個(gè)概念和矩陣分解非常的相似,矩陣分解就是將評(píng)分矩陣分解成兩個(gè)矩陣,通過訓(xùn)練擬合原有的評(píng)分,最后通過兩個(gè)矩陣相乘的形式得到一個(gè)滿秩的矩陣,也就是可以對(duì)未知的評(píng)分進(jìn)行預(yù)測(cè)。


自編碼器結(jié)構(gòu)

其中輸入為x,輸出為r,S代表所有的輸入數(shù)據(jù)向量,h%3Df(x)表示編碼器,r%3Dg(h)%3Dg(f(x))表示解碼器,自編碼器的目標(biāo)便是優(yōu)化損失函數(shù)。

%5Coperatorname%7Bargmin%7D%20%5Csum_%7Br%20%5Cin%20S%7D%5C%7Cr-g(f(x))%5C%7C_%7B2%7D%5E%7B2%7D

就是令圖中的紅色部分的Error的值最小。


在基于評(píng)分?jǐn)?shù)據(jù)的協(xié)同過濾算法當(dāng)中,假設(shè)我們有m個(gè)用戶,n個(gè)物品,則有用戶-物品評(píng)分矩陣R%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bm%20%5Ctimes%20n%7D。對(duì)于一個(gè)用戶u來說,他對(duì)所有n個(gè)物品的評(píng)分?jǐn)?shù)據(jù)可以形成一個(gè)n維的向量r%5E%7B(u)%7D%3D%5Cleft(R_%7Bu%201%7D%2C%20%5Cldots%2C%20R_%7Bu%20n%7D%5Cright)。同理,對(duì)于一個(gè)物品i來說,他對(duì)所有m個(gè)物品的評(píng)分?jǐn)?shù)據(jù)可以形成一個(gè)m維的向量r%5E%7B(i)%7D%3D%5Cleft(R_%7B1%20i%7D%2C%20%5Cldots%2C%20R_%7Bm%20i%7D%5Cright)。下面是AutoRec的整體模型框圖

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

可以看到整個(gè)模型只有3層,藍(lán)色的圓點(diǎn)代表的是隱層神經(jīng)元,紅色方框代表的是模型的輸入y_i,經(jīng)過權(quán)重矩陣W_EW_D到達(dá)輸出層,我們的目的是通過訓(xùn)練模型,找到合適的權(quán)重矩陣W_EW_D,以及偏置%5Cmub,使得輸入值和輸出值的誤差最小。

%5Carg%20%5Cmin%20_%7B%5Ctheta%7D%20%5Csum_%7By%20%5Cin%20S%7D%20%5C%7C%20y-h(y%20%3B%20%5Ctheta)%5C%7C_%7B2%7D%5E%7B2%7D

h(y%20%3B%20%5Ctheta)%3Df%5Cleft(W_%7BD%7D%20g%5Cleft(W_%7BE%7D%20y%2B%5Cmu%5Cright)%2Bb%5Cright)

為了防止過擬合,可以對(duì)權(quán)重W_EW_D添加約束

%5Carg%20%5Cmin%20_%7BA%7D%20%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Cleft%5C%7Cy_%7Bi%7D-h%5Cleft(y_%7Bi%7D%20%3B%20%5Ctheta%5Cright)%5Cright%5C%7C_%7BF%7D%5E%7B2%7D%2B%5Cfrac%7B%5Clambda%7D%7B2%7D%5Cleft(%5Cleft%5C%7CW_%7BL%7D%5Cright%5C%7C_%7BF%7D%5E%7B2%7D%2B%5Cleft%5C%7CW_%7BD%7D%5Cright%5C%7C_%7BF%7D%5E%7B2%7D%5Cright)%20%5Ctext%20%7B%20%7D

其中%7C%7C%C2%B7%7C%7C_F表示Frobenius范數(shù),定義好損失函數(shù)之后,就可以使用反向傳播和梯度下降等方法來進(jìn)行模型訓(xùn)練了?;谖锲返腁utoRec模型的訓(xùn)練過程如下:

  1. 輸入物品i的評(píng)分向量y_i,即所有用戶對(duì)物品i的評(píng)分向量

  2. 得到模型的評(píng)分預(yù)測(cè)輸出向量h%5Cleft(y_%7Bi%7D%20%3B%20%5Ctheta%5Cright)

  3. 根據(jù)評(píng)分預(yù)測(cè)向量和真實(shí)評(píng)分向量的誤差進(jìn)行訓(xùn)練,最小化損失函數(shù),得到最終的模型參數(shù)%5Ctheta

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

視頻參考

代碼參考https://gitee.com/youryouth/mc/tree/master

作者分別在MovieLens 1M和10M、以及Netflix數(shù)據(jù)上進(jìn)行了對(duì)比實(shí)驗(yàn),評(píng)測(cè)指標(biāo)為RMSE,即均方根誤差。分別與U-RBM、I-RBM、BiasedMF、LLORMA算法進(jìn)行了對(duì)比。結(jié)果如下:

作者還做了消融實(shí)驗(yàn),驗(yàn)證選擇不同的激活函數(shù)對(duì)最終實(shí)驗(yàn)結(jié)果的影響。

代碼實(shí)踐

可以使用基于用戶或者基于電影,作為網(wǎng)絡(luò)的輸入。比如基于用戶,那么網(wǎng)絡(luò)的輸入就是6040,如果是電影,那么網(wǎng)絡(luò)的輸入3952,然后經(jīng)過隱藏層,假設(shè)是300,得到對(duì)應(yīng)的特征向量,最后的輸出跟輸入維度保持一致。

使用torch.utils.data.Dataset來加載對(duì)應(yīng)的數(shù)據(jù)集。

代碼中的x_mat矩陣即用戶或者電影對(duì)應(yīng)的矩陣,然后每一行作為輸入即可。

總結(jié)

AutoRec模型是深度學(xué)習(xí)方法用于推薦系統(tǒng)中的開山之作,它僅僅使用了一個(gè)單隱層的自編碼器來泛化用戶和物品評(píng)分,使模型具有一定的泛化和表達(dá)能力。但是由于模型過于簡單,也讓它在實(shí)際使用中顯得表征能力不足。


AutoRec算法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
临洮县| 贵定县| 嘉定区| 东山县| 海盐县| 秀山| 浙江省| 清苑县| 连江县| 疏附县| 潮州市| 定边县| 湖南省| 尚志市| 汾西县| 株洲市| 普陀区| 洛南县| 徐汇区| 松阳县| 灯塔市| 濮阳县| 那曲县| 外汇| 新沂市| 巩义市| 双桥区| 延安市| 二手房| 正定县| 青州市| 威宁| 出国| 南投县| 贞丰县| 京山县| 镇平县| 乌兰县| 灵川县| 曲阜市| 福鼎市|