推荐系统与深度学习(九)——NCF模型原理

公众号后台回复“图书“,了解更多号主新书内容

作者:livan

来源:数据python与算法

NCF原理

随着深度学习的推广,一些近期的研究将深度学习应用到了推荐中,然而很多工作都是将深度学习作为辅助工作,比如提取文本和图像的特征,而对于推荐的关键特征处理,user特征和item特征的交互,仍使用MF的思想。

NCF的作者利用深度学习来对user和item特征进行建模,使模型具有非线性表达能力。具体来说是使用多层感知机来学习user-item交互函数,进而得出结果值。

这一模型解决的问题主要是隐性反馈的问题,先了解两个概念,即:

显性反馈:用户明确表示对某物品喜好的行为,比如评分、购买等;

隐性反馈:不能明确反应用户喜好的行为,比如浏览日志、访问行为等;

如果把用户对物品有交互,记为1,否则记为0,则可得到如下公式:

问题来了~

交互行为是否代表喜好?未必~

这就对隐性反馈提出了挑战,因为他提供了关于用户喜好的噪声。

如何处理这个噪声?

传统的方式是用MF矩阵,即计算用户相关性和用户对物品偏好,进而得出推荐值。

但是这一方法由于只是对浅层特征做处理,结果就是存在比较大的偏差。

例如:

假设有三个用户u1,u2,u3,对应的矩阵如(a)图,我们计算出了三个用户对应向量为(b)图:p1,p2,p3,Jaccard相似系数为:s23(0.66)>s12(0.5)>s13(0.4)。

如果我们添加一个用户u4,得到相似系数为:s41(0.6)>s43 (0.4)>s42(0.2),表示u4最接近u1,然后u3,最后u2,等将p4画到(b)图时,发现问题了,在p4接近p1的过程中,p4与p2、p3的距离始终是p2<p3。于是矛盾出现了,引发比较大的排名误差。

解决这一问题的方法即增加隐式因子,将特征投射到更高维度,在高维上切分特征距离。然而这一方案可能对模型的泛化能力产生不利影响,容易引发过拟合。

基于这样的问题,大佬们研发出了NCF和LFM(隐语义模型),将深度学习和隐语义纳入到MF矩阵中,完成对高维度的训练和融合。

LFM在前文中做了描述,本文重点了解一下NCF模型,并在最后给出了两个模型的差异。

NCF模型

为了便于理解,NCF作者给出了NCF模型的基本图形结构为:

   在这一模型的基础上,论文给出了一个较为复杂的模型:

   这一模型主要分三部分:

1) GMF部分:

GMF被称为广义矩阵分解,user和item都通过one-hot编码得到稀疏向量,然后通过一个embedding层映射为user vector和item vector。这样就获得了user和item的隐向量,用于GMF的计算。

对应的输出公式为:

2) MLP部分:

MLP是一个多层神经网络,主要是要学习出MF矩阵中的高维隐向量,MLP计算时也存在一个vector向量化的问题,关键来了,这个vector与GMF中的向量vector并不一样,因为模型对vector的模型要求不一样。

Vector构建完成后,基于多模态的计算思路,拼接各个向量,投入到DNN中,完成深度学习的运算。

其对应的模型逻辑为:

3) NeuMF部分:

结合GMF和MLP,得到的就是第三种实现方式,上图是该方式的完整实现,输出层的计算公式为:

集成模型中一般对最后一层的输出结果进行加权,NCF模型将其换成倒数第二层,就变成了“特征”融合,最后的performance肯定也是大不相同的,效果会好一些。

NCF模型与LFM模型的区别

   1)LFM通过隐特征将用户与物品联系起来,求解能最大似然联系用户和物品的隐空间的特征表达,而NCF使用NN来学习用户和物品的交互函数,其中包括隐特征的求解过程(one-hot到隐特征的映射关系);

   2)LFM是隐语义模型,通过矩阵分解法进行计算,求解的是用户-隐类矩阵物品-隐类矩阵,而NCF求解得到的是一个模型;

   3)LFM只能根据两个矩阵,计算已出现的用户和已出现但没评分的物品的评分,只能填补原先用户-物品矩阵的空白,NCF的模型是通用的,可以计算新用户和新物品;

   4)LFM只考虑了各隐类间的线性关系,隐类间一般都是非线性关系的尤其是在隐类数较少的时候;NCF结合一个推广的矩阵分解GMF,考虑各隐类间的线性关系的同时,还使用MLP来学习用户和物品间潜在特征之间的非线性关系,非常灵活。

◆ ◆ ◆  ◆ ◆
麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-50活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:

点击下方小程序即可进入购买页面:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:


猜你喜欢

● 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗点击阅读原文,即可参与京东100-50购书活动
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值