推荐系统的发展:协同过滤(Collaboration Filtering, CF)、逻辑回归(LR)、因子分解机(Factorization Machine)、梯度提升树(GBDT)。
协同过滤
定义:协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。
用户相似度计算:这是算法中的关键一步。可以使用(1)余弦相似度(2)皮尔逊相关系数等来计算两个向量之间的相似度。
ItemCF:基于物品相似度进行推荐的协同过滤算法。具体步骤:(1)基于历史数据,构建以用户为行坐标、物品位列坐标的共现矩阵。(2)计算共现矩阵的相似性。(3)获得用户历史行为数据中心正反馈物品列表。(4)找出top k个物品,组成集合。(5)生成最终的推荐系统。
协同过滤的泛化性能不强。推荐系统的头部效应明显,处理稀疏向量的能力差。矩阵分解技术被提出。
矩阵分解算法——协同过滤的进化
在“矩阵分解”的算法框架下,用户和物品隐向量是通过分解协同过滤生成的共现矩阵得到的。将 m × n m\times n m×n维的矩阵分解为 m × k m\times k m×k 和 k × n k\times n k×n维的矩阵,分别表示用户和商品。方法有:特征值分解、奇异值分解(SVD)、梯度下降。
矩阵分解的优点:(1)泛化能力强。解决数据稀疏问题。(2)空间复杂度降低。(3)更好的扩展性和灵活性。
逻辑回归——融合多种特征的推荐模型
逻辑回归将推荐问题看成一个分类问题,通过预测正样本的概率对物品进行排序。逻辑回归模型将推荐问题转换成了一个点击率(CTR)问题。
过程:
- 用户属性和物品属性等特征转换成数值型特征向量。
- 确定逻辑回归模型的优化目标(点击率),利用已有样本对逻辑回归模型进行训练,确定内部参数。
- 利用模型得到用户点击概率。
- 利用点击率对物品进行排序,得到推荐列表。
数学形式:
特征向量作为输入: x = ( x 1 , x 2 , . . . , x n ) T x=(x_1, x_2, ... , x_n)^T x=(x1,x2,...,xn)T输入。对每一个特征向量赋予权重 w = ( w 1 , w 2 , . . , w n ) T w=(w_1,w_2,..,w_n)^T w=(w1,w2,..,w