常用的推荐算法
基于协同过滤的推荐算法是主流思想之一; 基于模型与基于领域的推荐算法之间的区别为:基于领域的协同过滤是将用户的数据读入到内存中进行运算,也称为基于内存的协同过滤(Memory-based)。数据量少的情况下,可以在线实时推荐;基于模型的推荐(Model-based),采用机器学习的方式,分成训练集和测试集。离线训练时间比较长,但训练完成后,推荐过程比较快。 隐语义模型是指通过挖掘用户与物品之间的隐含联系,从而对用户进行推荐。
一、矩阵分解是什么?
如上表所示,是一个user-item的评分表。 矩阵分解就是从评分矩阵中分解出user矩阵和item矩阵 user矩阵列数和item矩阵行数,为k,即隐变量的个数,自己设定。 矩阵分解做推荐系统的主要思想是用已知的user-item矩阵来分解为两个user矩阵和item矩阵,对分解后的user矩阵和item矩阵相乘得到每个用户对每部电影的预测评分,评分值越大,表示用户喜欢该电影的可能性越大,该电影值得推荐给用户。 目标函数为: step1:得到user-item矩阵: step2:分解为user矩阵和item矩阵,隐含特征为k(自己设定),k越大,计算量越大,k值即user列数和item行数 将user矩阵和item矩阵得到每个用户对影片的评分预测。(user-item矩阵如何分解为user矩阵和item矩阵见下节)
step3.根据每个用户对影片的评分预测,对用户进行推荐。
二、user-item矩阵如何分解为user矩阵和item矩阵
分解的好不好需要用到评估指标,评估预测值和真实值之间的差距: 如何对目标函数进行最优化解法,有两种常用的方差: 1.交替最小二乘法(Alternating Least Squares,ALS); 2.随机梯度下降(Stochastic Gradient Descent,SGD )
ALS
最小二乘法由统计学家提出,应用广泛,简而言之是要求预测值与真实值差值的平方和大最小。ALS交替最小二乘法是固定一个来优化另一个。 即:step1,固定user矩阵,优化item矩阵; step2,固定item矩阵优化user矩阵; step3.重复step1和step2,知道两个矩阵收敛。 针对目标函数: step1:固定Y优化X 将目标函数转化为矩阵表达形式
对目标函数J关于x求梯度,并令梯度为零,得 求解后可得: step2:同理求得y
SGD
梯度下降主要分为三种: 全量梯度下降: 特点:在每次更新时用所有样本,稳定,但收敛慢; 随机梯度下降: 每次更新时用1个样本,用1个样本来近似所有的样本,更快收敛,最终解在全局最优解附近; 小批量梯度下降: 每次更新用b个样本,折中,速度较快。
|