推荐系统入门:详解前深度学习时代常见模型

本文介绍了前深度学习时代推荐系统中常见的模型,包括协同过滤、矩阵分解、逻辑回归、POLY2、FM、FFM、GBDT+LR以及LS-PLM。协同过滤和矩阵分解用于捕捉用户和物品的相似性,逻辑回归和POLY2通过特征组合增强模型能力,FM和FFM引入特征域概念,GBDT+LR解决高维特征组合问题,LS-PLM则通过分段线性模型实现非线性学习。每种模型都有其优缺点,适用于不同场景。
摘要由CSDN通过智能技术生成

1. 前深度学习时代

在这里插入图片描述

1.1 协同过滤

《Amazon.com Recommenders Item-to-Item Collaborative Filtering》

“协同过滤”就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。下面介绍基于用户的UserCF:

  1. 生成共现矩阵。假设有m个用户,n个物品,每个用户会对n个物品中的一个或者几个进行评分,未评分的物品分值就用问号表示,则所有m个用户对物品的评分可形成一个 m ∗ n m*n mn的评分矩阵,也就是协同过滤中的共现矩阵

  2. 生成共现矩阵后,推荐问题就转换成了预测矩阵中问号的值的过程。

  3. 通过每个用户对所有物品的评分向量,利用余弦相似度、皮尔逊相关系数(可以引入物品平均分的方式减少物品评分)等,找到与需要推荐用户X最相似的Top n用户

  4. 利用用户相似度和相似用户评分的加权平均偶的目标用户的评价预测。下式中, w u , s w_{u,s} wu,s是物品u和用户s的相似度, u s , p u_{s,p} us,p是用户s对物品p的评分。

R u , p = ∑ s ∈ S ( w u , s ⋅ R s , p ) ∑ s ∈ S w u , s R_{u,p} = \frac{\sum_{s \in S}(w_{u,s} \cdot R_{s,p})}{\sum_{s \in S}w_{u,s}} Ru,p=sSwu,ssS(wu,sRs,p)

userCF主要有量大缺点,(1) 在互联网场景下,用户数量远大于商品数量,而且还会持续增加,这导致用户相似度矩阵的存储开销很大;(2) 用户的历史数据很稀疏,找到相似用户的准确度很低。

由于上面两大缺点,Amazon最终没有采用该方法,而是采用了ItemCF。ItemCF的计算过程和UserCF类似,但是在应用场景上有所不同。UserCT具备强社交属性,并且更适合发现热点以及跟踪热点的趋势。ItemCF更适用于兴趣变化较为稳定的应用。

协同过滤有两大缺点,(1) 热门的物品具有很强的头部效应,容易跟大量物品产生相似性,而尾部物品则完全相反;(2) 协同过滤仅仅利用用户和物品的交互信息,造成了信息遗漏。

1.2 矩阵分解

协同过滤是基于用户的观看历史,找到与目标用户看过同样视频的相似用户,然后找到这些相似用户喜欢看的其他视频,推荐给目标用户。矩阵分解算法则期望为每一位用户和视频生成一个隐向量,将用户和视频定位到隐向量的表示空间上,距离相近的用户和视频表明兴趣特点接近,在推荐过程中,就把距离相近的视频推荐给目标用户。

在矩阵分解的算法框架下,用户和物品的隐向量是通过分解共现矩阵得到的。对矩阵进行矩阵分解的方法主要有三种,特征值分解、奇异值分解、梯度下降。其中,特征值分解只能作用于方阵,故排除。奇异值分解要求原始的共现矩阵是稠密的,所以必须对确实的元素值进行填充,并且计算复杂度为 O ( m n 2 ) O(mn^2) O(mn2),所以也不合适。因此,梯度下降成了进行矩阵分解的主要方法,目标函数是让原始评分 r u i r_{ui} rui与用户向量和物品向量之积 q i T p u q^T_ip_u qiTpu的差尽量小,同时为了减少过拟合现象,加入正则化项。下式中,K是所有用户评分样本的集合。

m i n q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 ) \underset{q^*,p^*}{min}\underset{(u,i)\in K}{\sum}(r_{ui}-q_i^Tp_u)^2+\lambda(||q_i||^2+||p_u||^2) q,pmin(u,i)K(ruiqiTpu)2+λ(qi2+pu2)

  1. q i q_i qi求偏导,得 ∂ h ∂ q i = 2 ( r u i − q i T p u ) p u − 2 λ q i \frac{\partial h}{\partial q_i} = 2(r_{ui}-q_i^Tp_u)p_u-2\lambda q_i qih=2(ruiqiTpu)pu2λqi
  2. p u p_u pu求偏导,得 ∂ h ∂ q i = 2 ( r u i − q i T p u ) q i − 2 λ p u \frac{\partial h}{\partial q_i} = 2(r_{ui}-q_i^Tp_u)q_i-2\lambda p_u qih=2(ruiqiTpu)qi2λpu
  3. 沿梯度反方向更新参数

矩阵分解相比协同过滤有三个优点:(1) 泛化能力强,一定程度上解决了数据稀疏问题;(2) 空间复杂度低;(3)更好的扩展性和灵活性

1.3 逻辑回归

相比协同过滤模型仅利用用户与物品的相互行为信息进行推荐,逻辑回归模型能够综合利用用户、物品、上下文等多种不同的特征。相比协同过滤和矩阵分解利用用户和物品的相似度进行推荐,逻辑回归将推荐问题看成一个分类问题,通过预测正样本的概率对物品进行排序

要点:

  1. 逻辑回归为什么要用sigmoid函数?
  2. 逻辑回归的目标函数是什么?利用的什么原理?
  3. 逻辑回归假设因变量y服从什么分布?

逻辑回归主要有两大优点:(1)可解释性强;(2)模型训练开销小。所以,一般在没有明显击败逻辑回归模型前,公司不会贸然加大计算资源的投入。

1.4 POLY2

ϕ P O L Y 2 ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n w h ( j 1 , j 2 ) x j 1 x j 2 \phi POLY2(w,x)=\sum\limits_{j_1=1}^{n-1}\sum\limits_{j_2=j_1+1}^{n}w_{h(j_1,j_2)}x_{j_1}x_{j_2} ϕPOLY2(w,x)=j1=1n1j2=j1+1nwh(j1,j2)xj1xj2

逻辑回归表达能力不强,会不可避免地造成有效信息的损失。在仅利用单一特征而非交叉特征进行判断的情况下,有时不仅是信息损失的问题,甚至会得出错误的结论。所以,我们就需要多维度特征交叉

POLY2模型对所有特征进行了两两交叉(特征 x j 1 x_{j_1} xj1 x j 2 x_{j_2} xj2),并对所有的特征组合赋予权重( w h ( j 1 , j 2 ) w_{h(j_1,j_2)} wh(j1,j2))。POLY2通过暴力组合特征的方式,在一定程度上解决了特征组合的问题。POLY2模型本质上仍是线性模型,其训练方法与逻辑回归并无区别,因此便于工程上的兼容。

POLY2模型有两大缺点:(1)常用的onehot编码方式太过稀疏,POLY2进行无选择的特征交叉使其更加稀疏,导致大部分交叉特征的权重缺乏有效的数据进行训练,无法收敛;(2)权重参数的数量由 n n n上升到 n 2 n^2 n2,极大增加了训练复杂度

1.5 FM

ϕ F M ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n ( w j 1 ⋅ w j 2 ) x j 1 x j 2 \phi FM(w,x)=\sum\limits_{j_1=1}^{n-1}\sum\limits_{j_2=j_1+1}^{n}(w_{j_1}\cdot w_{j_2})x_{j_1}x_{j_2} ϕFM(w,x)=j1=1n1j2=j1+1n(wj1wj2)x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值