当前位置:网站首页>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学习独立的嵌入,并结合两种模型通过连接他们最后的隐层输出。
公式如下:
边栏推荐
- Thinking about MySQL taking shell through OS shell
- IPv6表示方法与配置案例
- 5G控制面协议之N2接口
- Arrays & object & System & Math & random & Packaging
- greenplum企业部署
- 为什么5G N2接口控制面使用SCTP协议?
- Hongke solution | a unique solution to realize seamless integration at low cost in Digital Substations
- VMware虚拟机在物理机win10系统下如何连接外网
- Hongke share | bring you a comprehensive understanding of "can bus error" (II) -- can error types
- day16-集合上
猜你喜欢

apisix健康检查测试

day02_基本语法

Joint use skills of joiner.on and stream().Map

Hongke will share the EtherCAT demo for you and teach you how to quickly transition from other protocols to EtherCAT industrial bus

如何画出优秀的架构图

CNN-卷积神经网络

day17_ Under collection

Hongke education you want to enter the field of TSN? Hongke teaches you how to build TSN test system

Sequence list and linked list

day10_异常处理&枚举
随机推荐
7、 Next generation Internet IPv6
Hongke will share the EtherCAT demo for you and teach you how to quickly transition from other protocols to EtherCAT industrial bus
多线程并发下的指令重排问题
Conversion of fixed-point number to floating-point number of vivado IP core
What is WAF protection
10种常见的软件架构模式
ss命令详解
IPv6表示方法与配置案例
Ram block memory generator of vivado IP core
Online multiplayer chat room based on UDP communication
失效的访问控制
一文看懂网络安全五年之巨变
Scanbasepackages scanning range configuration
软件定义边界SDP
Those vulnerability attacks on app
Right value reference and mobile construction
day04_ array
What is the basic principle of Library collision and library collision attack
day09_static&final&代码块&抽象类&接口&内部类
day02_基本语法