推荐算法-基于模型的协同过滤
模型的建立相当于从行为数据中提取特征,给用户和物品同时打上“标签”
有显性特征时,我们可以直接匹配做出推荐
没有时,可以根据已有的偏好数据,去发掘出隐藏的特征,这需要用到隐语义模型(LFM)
一、隐语义模型(LFM Latent Factor Mode)
基于样本的用户偏好信息,训练一个推荐模型,然后根据实时的用户喜好信息进行预测新物品的得分,计算推荐
目标:揭示隐藏特征【使用偏好数据训练模型,找到内在规律,再用模型来做预测(类似回归)】
方法:矩阵分解进行降维分析【分解之后的矩阵代表了用户和物品的隐藏特征】
1、LFM降维方法-矩阵因子分解
想要发现K个隐类,就是找到两个矩阵P和Q,使得两个矩阵的乘积近似等于R
找到影响用户打分的隐藏因子-》预测评分矩阵
2、模型的求解-损失函数
目标:找到最好的分解方式,让分解之后的预测评分矩阵误差最小
选择平方损失函数,并且加入正则化项,以防止过拟合
3、最小化过程的求解:
- 随机梯度下降算法:
- 模型求解算法-交替最小二乘法(ALS Alternating Least Square)
思想:由于两个矩阵P和Q都是未知,且通过矩阵乘法耦合再一起,为了使它们解耦,
可以先固定Q,把P当作变量,通过损失函数最小化求出P,再反过来固定P,把Q当作变量,求解出Q,如此交替执行,直到误差满足阈值条件,或者到达迭代上限。