浅析神经协同过滤NCF在推荐系统的应用

ⅰ亾dé卋堺 提交于 2020-10-18 07:57:09

NCF在推荐领域应用背景

CF,也就是协同过滤,在推荐领域有极其广泛的应用,应该没有谁的智能推荐系统是没用到过CF的。CF其实就是挖掘user和item的交互关系,然后生成I2I或者U2I表示向量。传统的CF从数学角度上还是偏行为统计计算的,没有用到很复杂的网络。因为深度学习很火,也是有一些关于Neural Collaborative Filtering的工作。今天介绍一下最近看的叫《Neural Collaborative Filtering》这篇论文。也有一个对应的开源项目,地址:

https://github.com/hexiangnan/neural_collaborative_filtering

有兴趣的做推荐相关工作的同学,可以在自己的工作中用用。

隐式反馈vs显式反馈

其实把任何算法前面加个N,改成neural某某都是比较好发paper或者取得效果的。这篇文章比较有意思的一个点我觉得不在于将GMF或者MLP加在CF中,而是为CF构建了一套针对隐式反馈的建模理论。

说到这里先要提下隐式反馈和显式反馈。首先推荐业务一般都是按照有监督学习方式建模,也就是说要构建特征和目标列。在目标列的选择上一般会认为购买、点击、收藏这种行为是正样本,标记成label=1,其它行为全都是0。

但是这其中有一些问题,有的时候点击了的不一定是用户真正喜欢的,没点击的不一定是用户不喜欢的。

在虎扑上经常看到这样的问题:

以上9个女生哪个最好看,大部分人会给出最好看的那个选择,但是并不表明他觉得剩下8个不好看。如果只以他觉得最好看的那个女生作为正样本去构建他的审美模型,肯定是不能完全覆盖用户的兴趣,这是显式反馈的建模机制。

对应以上的问题,隐式反馈是另一种建模方案,在隐式反馈中只要用户去看了某个女生,就把这个女生当成正样本,不看的当成负样本,这样就减少了构建样本时的误差(毕竟不感兴趣的也不会去看)。也就是说隐式反馈更多地是算一个概率,user和item是否会发生交互。

屏幕快照 2020-10-17 下午9.29.37.png

NCF网络结构

屏幕快照 2020-10-17 下午9.33.04.png

网络结构如上,底层输入是user和item的one-hot编码结果。在网络训练层使用了两种网络结构,一种是GMF(Geberakuzed Matrix Factorization),另一种是MLP(Multi-Layer perceptron)。通过将GMF和MLP的输出特征结合,最终通过NeuMF Layer去产出user和item交互的概率。就不展开解释了,具体推导见论文。

总之,通过NCF可以比较快速的user和item的潜在交互概率,可以作为推荐系统中的一个重要的召回链路输入。

参考文献:

[1]https://blog.csdn.net/xxiaobaib/article/details/99116755

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!