ALS交替最小二乘算法
ALS指使用交替最小二乘法求解的协同过滤算法。通过观察到的所有用户给产品打分,来推断每个用户的喜好并向用户推荐合适的产品。
具体推荐是 通过用户评分矩阵来实现的,用户评分矩阵每一行代表一个用户,每一列代表一个产品,每一个元素代表一个用户对某一种产品的打分。用户评分矩阵通过用户特征矩阵和物品特征矩阵得到A=U * V。通过U和V来近似A。这样算法的自由度就从O(mn)变为了O((m+n)*k)。
算法的目标使得U*A尽可能近似A。则算法的优化目标就是
其中,F 代表Frobenius范数。
最小化每一个元素和 重构之间的误差平方和。该优化问题就是采用ALS来实现。
ALS的目标函数不是凸的,而且变量相互耦合。如果固定用户特征矩阵U或者产品特征矩阵V就可以使问题变得简单。原问题就转换为凸函数且可拆分。就可以使用最小二乘法求解。
这里的交替最小二乘法就是先随机生成U,然后固定U去求解V;在固定V去求解U,这样一直交替下去,直到收敛。但由于问题本质上是非凸的,因此ALS不保证最终可以得到全局最优解。在实际使用中,ALS对初始点不是很敏感,是不是全局最优解影响不大。
最小二乘法的本质:https://www.zhihu.com/question/37031188/answer/411760828
引用:https://www.jianshu.com/p/a8d095a9eb42
https://blog.csdn.net/l_15156024189/article/details/81712519