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被投影到⼀个潜在空间,用潜在的向量表示。

本文切入点

  1. 深度神经网络火热的当下,协同过滤方面之前还是对latent feature做内积来建模user-item交互,得到预测打分。

  2. 内积在复杂的交互行为建模中,存在如下图所示的局限性,即只靠单纯的线性变换会存在⼀定的排序误差。

  3. 深度神经网络火热的当下,协同过滤方面之前还是对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实践

好的编程习惯

  1. import 放最开头
  2. 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让你划船划到停不下来

DataWhale 动手学深度学习PyTorch版-task3+4+5:文本预处理;语言模型;循环神经网络基础

Paddle 点灯人 之 Paddle介绍

Paddle 点灯人 之 Paddle介绍

7-3 学习打卡(11.28)

基于CRNN的文本字符交易验证码识别--Paddle实战