ALS算法具体过程如下:
I.为 Q 指定一个初值 Q0,可以是 随机生成或者全局平均值
II.固定当前 Q0 值,求解 P0
III.固定当前 P0 值,求解 Q1
IV.固定当前 Q1 值,求解 P1
V.…(重复以上过程)
直到损失函数的值 C 收敛,迭代结束
求解过程
- 以固定 Q,求解 P为例
- 由于每一个用户 u 都是相互独立的,当 Q 固定时,用户特征向量 Pu 应该取得的值与其它用户特征向量无关;所以每一个 Pu 都可以单独求解
- 优化目标 min┬(P,Q)?C 可转化为
- 那么我们的目标变成了:求每一个用户特征向量 Pu ,使得 L_u (P_u ) 取得最小值
- Lu 对 Pu 求偏导:
- 令 (?L_u)/(?P_u ) = 0,可以得到
- 可以看到,物品特征向量构成的矩阵,其实就是 Q:(Q_1, Q_2,Q_3,…,Q_n )=Q
- 所以可以得到:(QQ^T+λI)P_u=QR_u
- 解得P_u=〖(QQ^T+λI)〗^(-1) QR_u
- 这样一一解出每一个 Pu,就可以得到这一步的用户特征矩阵 P 了
- 同样,下一次固定 P 时,可以解得Q_i=〖(PP^T+λI)〗^(-1) PR_i
梯度下降算法
想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习。
|