【搜索/推荐排序】NCF,DeepCross,Deep Crossing
生活随笔
收集整理的這篇文章主要介紹了
【搜索/推荐排序】NCF,DeepCross,Deep Crossing
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1.NCF
- 1.1 問題:基于FM的問題
- 問題
- 動機(jī):神經(jīng)網(wǎng)絡(luò)替代點積
- 1.2 NCF模型圖
- 1.3代碼
- 2. Deep Crossing:微軟:ResNet
- 3.Deep&Cross
1.NCF
1.1 問題:基于FM的問題
問題
FM->MF來自于矩陣分解的思想,所以也有矩陣分解的問題
實際上u1和u4更相似,但沒有交互不代表不想似,而latent space隱式空間考慮的是交互。
所謂潛在因素就是雖然用戶與項目間有交互,但不一定用戶就喜歡了,而沒交互也不代表不喜歡,這就對隱形學(xué)習(xí)帶來了噪音
動機(jī):神經(jīng)網(wǎng)絡(luò)替代點積
直接使用DNN從數(shù)據(jù)中學(xué)習(xí)交互函數(shù)(以代替MF的內(nèi)積交互部分),從而突破了由于MF表達(dá)時的限制
1.2 NCF模型圖
-
GMF:通用矩陣分解,線性部分
yui^=aout(hT(pu⊙qi))\hat{y_{ui}}=a_{out}(h^T(p_u\odot q_i))yui?^?=aout?(hT(pu?⊙qi?))
pup_upu?:用戶向量,qiq_iqi?:商品向量?item
點乘,element-wise -
MLP:非線性部分
-
最終
NCF(x)=yui^=σ(hT([pu⊙qi,MLP(pu,qi)]))NCF(x)=\hat{y_{ui}}=\sigma(h^T([p_u\odot q_i,MLP(p_u, q_i)]))NCF(x)=yui?^?=σ(hT([pu?⊙qi?,MLP(pu?,qi?)]))
1.3代碼
x = self.embedding(x) user_x = x[:, self.user_field_idx].squeeze(1) item_x = x[:, self.item_field_idx].squeeze(1) x = self.mlp(x.view(-1, self.embed_output_dim)) gmf = user_x * item_x x = torch.cat([gmf, x], dim=1) x = self.fc(x).squeeze(1)2. Deep Crossing:微軟:ResNet
3.Deep&Cross
Cross+MLP
Cross:處理交叉特征(和FM功能一致)
總結(jié)
以上是生活随笔為你收集整理的【搜索/推荐排序】NCF,DeepCross,Deep Crossing的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图灵奖获得者、信息安全常青树Adi Sh
- 下一篇: 2022年后人工智能/深度学习八大应用方