这章主要介绍的是机器学习推荐系统的模型,例如协同过滤( Collaborative Filtering , CF )、逻辑回归( Logistic Regression, LR ), 进化到因子分解机( Factorization Machine, FM )、梯度提升树( Gradient Boosting Decision Tree, GBDT )。
介绍有以下两个原因:
其中主要有以下部分组成。
这里先对协同过滤给出一个大致介绍。
顾名思义,“协同过滤” 就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。这里用一个商品推荐的例子来说明协同过滤的推荐过程
以上描述了协同过滤的算法流程,其中关于“用户相似度计算”及“最终结果的排序”过程是不严谨的,下面重点描述这两步的形式化定义。
共现矩阵中的行向量代表相应用户的用户向量。那么,计算用户i 和用户 j 的相似度问题,就是计算用户向量i和用户向量y之间的相似度。
两个向量之间常用的相似度计算方法有如下几种。
余弦相似度( Cosine Similarity ) 衡量了用户向量i和用户向量J之间的向量夹角大小。显然,夹角越小,证明余弦相似度越大,两个用户越相似。
更详细可以看【推荐系统->相似度算法】余弦相似度。
待理解知识 ,文末给大家两个参考文献参考
其中, R i , p R_{i,p} Ri,p代表用户i对物品p的评分。 R i ‾ \overline{R_i} Ri代表用户i对所有物品的平均评分,P代表所有物品的集合。
其中, R P ‾ \overline{R_P} RP代表物品p得到所有评分的平均分。
理论上,任何合理的“向量相似度定义方式”都可以作为相似用户计算的标准。
假设“目标用户与其相似用户的喜好是相似的”,可根据相似用户的已有评价对目标用户的偏好进行预测。这里最常用的方式是利用用户相似度和相似用户的评价的加权平均获得目标用户的评价预测。
其中,权重 w u , s w_{u,s} wu,s是用户u和用户s的相似度, R S , P R_{S,P} RS,P是用户s对物品p的评分。(个人是这样理解的:分母为权重之和,比如 0.2 + 0.3 + 0.1 + 0.4 0.2+0.3+0.1+0.4 0.2+0.3+0.1+0.4;分子为各个权重乘以相应的评分,比如5分制,4个人分别给了2、3、1、4分, 分 子 = 0.2 ∗ 2 + 0.3 ∗ 3 + 0.1 ∗ 1 + 0.4 ∗ 4 分子=0.2*2+0.3*3+0.1*1+0.4*4 分子=0.2∗2+0.3∗3+0.1∗1+0.4∗4)
在获得用户 U 对不同物品的评价预测后,最终的推荐列表根据预测得分进行排序即可得到。
以上介绍的协同过滤算法基于用户相似度进行推荐,因此也被称为基于用户的协同过滤( UserCF ),它符合人们直觉上的“兴趣相似的朋友喜欢的物品,我也喜欢”的思想。
ItemCF 是基于物品相似度进行推荐的协同过滤算法。通过计算共现矩阵中物品列向量的相似度得到物品之间的相似矩阵,再找到用户的历史正反馈物品的相似物品进行进一步排序和推荐。
ItemCF 的具体步骤如下:
( 1 ) 基于历史数据,构建以用户(假设用户总数为 m ) 为行坐标,物品( 物品总数n) 为列坐标的m x n维的共现矩阵。
( 2 )计算共现矩阵两两列向量间的相似性( 相似度的计算方式与用户相似度的计算方式相同 ),构建维的物品相似度矩阵。
( 3 ) 获得用户历史行为数据中的正反馈物品列表。
( 4 ) 利用物品相似度矩阵,针对目标用户历史行为中的正反馈物品,找出相似的 Top A 个物品,组成相似物品集合。
( 5 )对相似物品集合中的物品,利用相似度分值进行排序,生成最终的推荐列表。
在第 5 步中,如果一个物品与多个用户行为历史中的正反馈物品相似,那么该物品最终的相似度应该是多个相似度的累加,如(式 2-5) 所示。
协同过滤无法将两个物品相似这一信息推广到其他物品的相似性计算上。这就导致了一个比较严重的问题一热门的物品具有很强的头部效应,容易跟大量物品产生相似性;而尾部的物品由于特征向量稀疏,很少与其他物品产生相似性,导致很少被推荐。
为解决上述问题,同时增加模型的泛化能力,矩阵分解技术被提出。该方法在协同过滤共现矩阵的基础上,使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征,在一定程度上弥补了协同过滤模型处理稀疏矩阵能力不足的问题。
另外,协同过滤仅利用用户和物品的交互信息,无法有效地引人用户年龄、性别、商品描述、商品分类、当前时间等一系列用户特征、物品特征和上下文特征,这无疑造成了有效信息的遗漏。为了在推荐模型中引入这些特征,推荐系统逐渐发展到以逻辑回归模型为核心的、能够综合不同类型特征的机器学习模型的道路上。