推荐系统小综述 传统推荐模型

首先我们先介绍一下传统的推荐模型

下面是传统推荐模型的表格图与结构图

接下来我们来逐步说一下这几个传统推荐模型

首先就是基础的协同过滤算法,协同过滤算法体现出了物以类聚,人以群分的思想。

基本的协同过滤推荐算法基于以下假设:

  • “跟你喜好相似的人喜欢的东西你也很有可能喜欢” :基于用户的协同过滤推荐(User-based CF)

  • “跟你喜欢的东西相似的东西你也很有可能喜欢 ”:基于物品的协同过滤推荐(Item-based CF)

实现协同过滤推荐有以下几个步骤:

  1. 找出最相似的人或物品:TOP-N相似的人或物品

    通过计算两两的相似度来进行排序,即可找出TOP-N相似的人或物品

  2. 根据相似的人或物品产生推荐结果

    利用TOP-N结果生成初始推荐结果,然后过滤掉用户已经有过记录的物品或明确表示不感兴趣的物品

这就是基础的协同过滤思想

  • 相似度的计算方法

    • 数据分类

      • 实数值(物品评分情况)

      • 布尔值(用户的行为 是否点击 是否收藏)

    • 欧氏距离, 是一个欧式空间下度量距离的方法. 两个物体, 都在同一个空间下表示为两个点, 假如叫做p,q, 分别都是n个坐标, 那么欧式距离就是衡量这两个点之间的距离. 欧氏距离不适用于布尔向量之间

    •                     

                                            E(p,q) = \sqrt{\sum_{i=1}^n (p_i - q_i)^2}

    欧氏距离的值是一个非负数, 最大值正无穷, 通常计算相似度的结果希望是[-1,1]或[0,1]之间,一般可以使用

    如下转化公式:

                                                  

  • 杰卡德相似度&余弦相似度&皮尔逊相关系数

    • 余弦相似度

      • 度量的是两个向量之间的夹角, 用夹角的余弦值来度量相似的情况

      • 两个向量的夹角为0是,余弦值为1, 当夹角为90度是余弦值为0,为180度是余弦值为-1

      • 余弦相似度在度量文本相似度, 用户相似度 物品相似度的时候较为常用

      • 余弦相似度的特点, 与向量长度无关,余弦相似度计算要对向量长度归一化, 两个向量只要方向一致,无论程度强弱, 都可以视为'相似'

    • 皮尔逊相关系数Pearson

      • 实际上也是一种余弦相似度, 不过先对向量做了中心化, 向量a b 各自减去向量的均值后, 再计算余弦相似度

      • 皮尔逊相似度计算结果在-1,1之间 -1表示负相关, 1表示正相关

      • 度量两个变量是不是同增同减

      • 皮尔逊相关系数度量的是两个变量的变化趋势是否一致, 不适合计算布尔值向量之间的相关度

    • 杰卡德相似度 Jaccard

      • 两个集合的交集元素个数在并集中所占的比例, 非常适用于布尔向量表示

      • 分子是两个布尔向量做点积计算, 得到的就是交集元素的个数

      • 分母是两个布尔向量做或运算, 再求元素和

    • 余弦相似度适合用户评分数据(实数值), 杰卡德相似度适用于隐式反馈数据(0,1布尔值)(是否收藏,是否点击,是否加购物车)

   

但是在实际应用中,协同过滤算法经常会面对一些问题,例如用户评分矩阵稀疏,系统无法获取到足够多的用户数据,从而无法计算到足够多的相似度 。

因此我们引出了MF矩阵分解模型

MF矩阵分解模型包括SVD(奇异值分解),FunkSVD,FM(Factorization Machine)

这里我们简单介绍一下LFM(latent factor model)隐语义模型如下图:

  • P矩阵是User-LF矩阵,即用户和隐含特征矩阵。LF有三个,表示共总有三个隐含特征。

  • Q矩阵是LF-Item矩阵,即隐含特征和物品的矩阵

  • R矩阵是User-Item矩阵,有P*Q得来

  • 能处理稀疏评分矩阵

利用矩阵分解技术,将原始User-Item的评分矩阵(稠密/稀疏)分解为P和Q矩阵,然后利用P*Q还原出User-Item评分矩阵R。整个过程相当于降维处理,其中:

  • 矩阵值P_{11}表示用户1对隐含特征1的权重值

  • 矩阵值Q_{11}表示隐含特征1在物品1上的权重值

  • 矩阵值R{11}就表示预测的用户1对物品1的评分,且R{11}={P{1,k}}{Q{k,1}}

这样就能实现对稀疏矩阵中缺失值的填补。

之后我们来介绍一下LR模型

LR模型就是一种逻辑回归模型,我们将商品推荐给用户的问题看成是一个回归问题,我们通过逻辑回归函数来对用户特征进行处理,随后便可以得到其对用户ctr(点击率)的预测。

                                                     在这里插入图片描述

 其中x为输入的用户和商品特征。

这种方法通过运用逻辑回归的运用,使得我们在处理推荐问题时非常的方便,只需要将用户的信息传入逻辑回归中就行。

但是这种方法无法进行特征交叉和特征筛选,无法有效利用已有的特征。

总上,单纯的LR模型性能可能不算太好,需要进行特征工程。但是特征工程费时费力,所以LR模型算是一个基本模型。可以加入很多优化。

上面我们提到了特征交叉,什么是特征交叉呢

特征交叉是算法工程师把领域知识融入模型的一种方式。比如说女性特征+双十一的时间特征组合(女性,双11)这一特征,可能就是一个极好的预测购买的特征。通过这种交叉过的特征可以更好的表达出用户的购买偏好。

FM模型:

  • 相比于LR,FM引入了二阶特征组合
  • 通过矩阵分解引入隐向量的方式来估计特征参数,解决特征稀疏问题,同时大大减少参数数目
  • 相比于MF(Matrix Factorization),FM能够引入用户特征、物品特征以外的其他特征,应用范围更广

这种方法虽然初步解决了特征两两组合的问题,但对于样本中未出现的交叉特征,无法对其参数进行估计,模型泛化能力差。这在大规模稀疏场景下是无法接受的,还需要进一步优化模型。

这里需要注意 公式中的W矩阵可以将n*n维压缩成k*n维的矩阵内做运算,大大降低了维度

FM模型也采用了相同的思路解决二阶特性稀疏的问题,对于每个一维特征x赋予一个相对应的隐向量v,交叉特征的权重则由相对应的两个隐向量v的内积表示。本质上都是对特征进行embedding化表征,将0/1这种二值硬匹配转换为向量软匹配,使得样本中未出现的值也能通过向量计算出来,具备良好的泛化性。

这种方法类似于MF矩阵分解方法中所用的方式相似。

接下来我们来说一下FFM模型:

FFM在FM的基础上进一步改进,在模型中引入特征域的概念,即field。将同一个field的特征单独进行one-hot,因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅与特征相关,也与field相关。
假设样本的n个特征属于f个field,那么FFM的二次项有nf个隐向量。而在FM模型中,每一维特征的隐向量只有一个。FM可以看做FFM的特例,把所有特征都归属到一个field的FFM模型。其模型方程为:  
                             

如果隐向量的长度为k,那么FFM的二次参数有nfk个,远多于FM模型的nk个。

FFM模型更好的反应的特征和特征之间的关系

GBDT+LR模型:

这个模型是特征功能的开端

上面我们说到的FM和FFM的特征交叉特点,但是这两个模型的特征交叉都是两两交叉。从而会造成许多相关联不大的特征被关联了起来。

GBDT算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力成本。

之后将经过GDBT算法处理过的特征放入LR中进行训练,这种方法处理后的CTR预测效果非常的好

LS-PLM/MLR算法:

这也是阿里巴巴曾经的主流推荐模型

(1)LR不能捕捉非线性
(2)GBDT+LR虽然能够产生非线性特征组合,但是树模型不适用于超高维稀疏数据
(3)FM利用二阶信息来产生变量之间的相关性,但是无法适应多阶模式

LS-PLM采用了分治的思想,先分成几个局部再用线性模型拟合,这两部都采用监督学习的方式,来优化总体的预测误差,总的来说有以下优势:

  • 端到端的非线性学习: 从模型端自动挖掘数据中蕴藏的非线性模式,省去了大量的人工特征设计,这 使得MLR算法可以端到端地完成训练,在不同场景中的迁移和应用非常轻松。通过分区来达到拟合非线性函数的效果;
  • 可伸缩性(scalability):与逻辑回归模型相似,都可以很好的处理复杂的样本与高维的特征,并且做到了分布式并行;
  • 稀疏性: 对于在线学习系统,模型的稀疏性较为重要,所以采用了L1 和 L2,1正则化,模型的学习和在线预测性能更好。当然,目标函数非凸非光滑为算法优带来了新的挑战。

MLR就像它的名字一样,由很多个LR模型组合而成。用分片线性模式来拟合高维空间的非线性模式,形式化表述如下:

给定样本x,模型的预测p(y|x)分为两部分:首先根据  分割特征空间为m部分,其中m为给定的超参数,然后对于各部分计算  作为各部分的预测。函数g(⋅)确保了我们的模型满足概率函数的定义。当我们将softmax函数作为分割函数σ(x),将sigmoid函数作为拟合函数η(x)的时候,该模型为:

可以看出这个公式前面是一个softmax分类器,后面是一个逻辑回归

同时MLR还引入了结构化先验分组稀疏线性偏置模型级联增量训练Common Feature Trick来提升模型性能。

论文中一个直观的例子,如下图,LR不能拟合非线性数据,MLR可以拟合非线性数据,因为划分-训练模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值