Datawhale学习打卡课节1: Paddle开发深度学习模型快速入门 NCF
Posted 宇宙哇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Datawhale学习打卡课节1: Paddle开发深度学习模型快速入门 NCF相关的知识,希望对你有一定的参考价值。
论文阅读笔记-Neural Collaborative Filtering
WWW’17 Xiangnan He et al.
文章内容
前置知识
- 协同过滤CF
地位:推荐系统经典方法之⼀,甚至有人把推荐系统和协同过滤画等号。
思想:根据历史交互行为找到⼀群口味很相似的用户;然后根据相似的用户再和你没见过的物品产生了什么交互,把这些推荐给你。这就是人们常说的人以群分,你是什么人,你就会遇到什么人,构成群体。在群体内互帮互助,利用集体智慧推荐。 - 矩阵分解MF
地位:推荐系统Base Line方法之⼀
宏观:把user–item交互矩阵分为两个子矩阵,用两个子矩阵相乘来重构关联矩阵,优化目标是使重构矩阵和真实矩阵之间的误差最小。常用的损失函数是均方误差。
微观:每个user/item被投影到⼀个潜在空间,用潜在的向量表示。
本文切入点
-
深度神经网络火热的当下,协同过滤方面之前还是对latent feature做内积来建模user-item交互,得到预测打分。
-
内积在复杂的交互行为建模中,存在如下图所示的局限性,即只靠单纯的线性变换会存在⼀定的排序误差。
-
深度神经网络火热的当下,协同过滤方面之前还是对latent feature做内积来建模user-item交互,得到预测打分。
内积在复杂的交互行为建模中,存在如下图所示的局限性,即只靠单纯的线性变换会存在⼀定的排序误差。
深度神经网络理论上可以拟合任意函数,可以更好地建模user-item之间复杂的交互过程。
本文贡献
本文用深度神经网络代替内积,实现对user-item的交互建模,并设计了⼀个通用的Neural Collaborative Filtering(NCF),在此基础上提出了三种实例: Generalized Matrix Factorization(GMF),Multi-Layer Perceptron(MLP)和Neural Matrix Factorization(NeuMF)。
通用框架NCF
Paddle实践
好的编程习惯
- import 放最开头
- config统一放置,防止漏更新
一些小点
- 计算用户的交互次数,把太少记录的用户认为是噪音数据,剔除掉,以求模型学到稳定的表征。
df['user_count'] = df['user_id'].map(df['user_id'].value_counts()) df = df[df['user_count']>20].reset_index(drop=True)
- 训练用的是1:3采样,测试用的是1:100
- 学到了pandas可以直接出rank
test_df['ranking'] = test_df.groupby(['user_id'])['y_pre'].rank(method='first', ascending=False)
- 别的跟torch几乎没差别
以上是关于Datawhale学习打卡课节1: Paddle开发深度学习模型快速入门 NCF的主要内容,如果未能解决你的问题,请参考以下文章
Flappy Paddle现身江湖!使用强化学习DQN让你划船划到停不下来