当前位置:网站首页>NeuralCF-神经协同过滤网络
NeuralCF-神经协同过滤网络
2022-07-29 05:27:00 【yc_ZZ】
一、概述
CF(协同过滤)与深度学习结合
回顾矩阵分解

模型提出背景
矩阵分解的模型结构相对比较简单,就是将用户隐向量和物品隐向量进行内积操作后得到“相似度”,这里相似度指的是对评分的预测。特别是输出层无法对优化目标进行有效的拟合,模型容易处于欠拟合状态(欠拟合是指模型拟合程度不高)。故在此基础上提出NeuralCF模型。
二、NeuralCF原始模型的结构
NeuralCF用“多层神经网络+输出层”的结构代替了矩阵分解模型中简单的内积操作
优点是:
1、让用户向量和物品向量做更充分的交叉,得到更多有价值的特征组合信息
2、引入更多的非线性特征,让模型表达能力更强
三、混合模型的引入
GMF-广义矩阵分解

这里解释下用户隐向量 P u = P T v u U P_{u}=P^{T}v^{U}_{u} Pu=PTvuU ,物品隐向量同理
class GMF(nn.Module):
def __init__(self,user_num, item_num, factor_num):
super(GMF,self).__init__()
self.embed_user_GMF = nn.Embedding(user_num,factor_num)
self.embed_item_GMF = nn.Embedding(item_num,factor_num)
self.predict_layer = nn.Linear(factor_num,1)
self._init_weight_()
def _init_weight_(self):
nn.init.normal_(self.embed_item_GMF.weight,std=0.01)
nn.init.normal_(self.embed_user_GMF.weight,std=0.01)
def forward(self,user,item):
embed_user_GMF = self.embed_user_GMF(user)
embed_item_GMF = self.embed_item_GMF(item)
output_GMF = embed_user_GMF*embed_item_GMF
prediction = self.predict_layer(output_GMF)
return prediction.view(-1)
MLP(多层感知机)
通常,每一层都全连接到下一层,某一层上的每个人工神经元的输出成为下一层若干人工神经元的输入。MLP至少有三层人工神经元,如下图所示。
公式如下:

四、Neural CF混合模型
为了使得融合模型具有更大的灵活性,我们允许GMF和MLP学习独立的嵌入,并结合两种模型通过连接他们最后的隐层输出。
公式如下:
边栏推荐
猜你喜欢

VMware虚拟机在物理机win10系统下如何连接外网

day04_ array

5G服务化接口和参考点

AbstractQueuedSynchronizer(AQS)之 ReentrantLock 源码浅读

Hongke | uses jesd204 serial interface to bridge analog and digital worlds at high speed

软件包设置成——>YUM源

Tcp/ip 五层参考模型以及对应的典型设备以及ipv6

【面试题】2022年最新软件测试面试题(400道)【附带答案】持续更新...

day15_ generic paradigm

如何在开发板上使用sftp命令访问sftp-server
随机推荐
失效的访问控制
网站被挂马的解决方案
Hongke automation SoftPLC | modk operation environment and construction steps (1) -- Introduction to operation environment
Tcp/ip 五层参考模型以及对应的典型设备以及ipv6
etcd原理
How to use SFTP command to access SFTP server on the development board
find命令详解(文章最后运维最常用操作)
Hongke share | FPGA implementation of pass through and store and forward switching delay
Annotation
How to judge whether a business is attacked by DDoS? What harm will it cause?
Complex floating point division of vivado IP core floating point
Arrays&Object&System&Math&Random&包装类
MySQL 事物四种隔离级别分析
三、广域通信网
Leetcode question brushing record
ping 原理
Leetcode刷题记录
Why are the job requirements for software testing in 2022 getting higher and higher? Is there any secret in it?
On defect description style
MQTT服务器搭建以及使用MQTT.fx测试