手搭深度推荐模型(三) DeepFM

本文是笔者参与datawhale组织的深度推荐模型组队学习的分享,学习内容见本链接 ,本文中所指的教程即该链接中的相应文件。

DeepFM这篇比之前两篇更难理解了一些,DeepFM对Wide&Deep的改进主要在于wide侧使用了FM,而FM又使用了矩阵分解的思想,因此这篇我回顾一下从传统机器学习到DeepFM每个算法都在注重解决什么问题,帮助自己理解DeepFM。

一、协同过滤 CF

协同过滤的总体思路是建立m个用户与n个物品的共现矩阵,通过使用余弦相似度、皮尔逊相关系数等计算相似度的算法,计算用户与物品,或物品与物品的相似度,来进行推荐,分为基于用户的协同过滤和基于物品的协同过滤。

1. 基于用户的协同过滤 UserCF

概念

根据共现矩阵按行求用户相似度,根据相似用户喜欢的物品加权平均排序之后做推荐。

优点
  1. 适合用于发现热点(如新闻推荐)
  2. 具有社交属性,可以找兴趣相似的人

2. 基于物品的协同功率 ItemCF

概念

根据共现矩阵按列求物品相似度,根据用户正反馈的物品的相似物品加权平均排序之后做推荐。

优点
  1. 数据库中物品的数量是远小于用户的,因此比UserCF占用空间小
  2. 适合用于挖掘用户兴趣变化比较稳定的应用(如电影、音乐推荐)

协同过滤的限制

  1. UserCF用户数远大于物品数,存储量过大
  2. UserCF用户历史数据稀疏,找相似用户不准确
  3. 泛化能力差
  4. 热门物品头部效应严重

二、矩阵分解

概念

将M×N的用户-物品共现矩阵分解成 M×K 与 K×N的用户矩阵与物品矩阵,因此每个用户和物品都是k维空间的一个值,通过空间中与用户最近的物品来进行推荐。
其中,k是隐向量维度,k越大模型泛化能力弱,记忆能力强,k越小模型泛化能力越强。k的设定是根据推荐效果和工程开销而定。
当k确定后,矩阵的计算通过梯度下降计算,损失函数为当前用户矩阵与物品矩阵的乘积与原始矩阵的差值的平方和(通常加正则项)。
注意:在实际使用时还需要消除用户和物品的打分偏差(不同用户尺度不同,不同物品被打分的尺度也不同)

优点

  1. 隐向量是根据全局信息生成的,因此相对于协同过滤具备了更强的泛化能力
  2. 不需存储相似性矩阵(N×N),只需存储用户和物品的隐向量(M+N)×2

限制

  1. 同CF一样,不能使用用户和物品的属性特征,不能使用用户与物品交互的上下文特征。

三、逻辑回归

概念

使用用户、物品、用户属性、物品属性、上下文信息等特征根据具体任务构造逻辑回归模型,每次推荐时根据输入特征预测出物品点击的概率,根据概率排序推荐。

优点

  1. 可以利用用户属性、物品属性、上下文信息等特征
  2. 可解释性强
  3. 易于并行化、模型简单、训练开销小

限制

  1. 无法自动进行特征交叉
  2. 表达能力弱(泛化能力弱)

四、因子分解机 FM

概念

为解决逻辑回归不能自动进行特征组合的问题,推荐系统引入了因子分解机FM。
在FM之前,POLY2模型首先提出了一种自动特征组合的方法,即使用暴力法两两组合特征,每个特征的权重仍是一个标量,将这样构造的特征交给逻辑回归,POLY2的模型如下所述, x j 1 x j 2 x_{j_{1}} x_{j_{2}} xj1xj2
∅ POLY ⁡ 2 ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值