推荐系统里的ALS是什么意思?

  统计/机器学习 推荐系统    浏览次数:21917        分享
3

推荐系统里的ALS是什么意思?


 

cyh   2018-01-29 09:33



   3个回答 
16

ALS是Alternating Least Squares,交替最小二乘。这是一种数值计算的方法。

在推荐系统中,我们经常需要计算矩阵分解。比如$M$是原本的评分矩阵,我们想找到两个矩阵$P$和$Q$使得,

$$M=PQ^T$$

或者

$$\text{min}\|M-PQ^T\|_2^2$$

因为这里$P$和$Q$同时都是变量,计算会比较复杂。一个简单的方法是,固定其中一个,计算另外一个。

例如我们先随机产生$P_0$,然后固定$P_0$,求解

$$Q_1=\text{arg}\min_{Q}\|M-P_0Q^T\|_2^2$$

然后再固定$Q_1$,求解

$$P_1=\text{arg}\min_{P}\|M-PQ_1^T\|_2^2$$

之后再固定$P_1$,求解

$$Q_2=\text{arg}\min_{Q}\|M-P_1Q^T\|_2^2$$

这样交替进行,每次只更新$P$和$Q$的其中一个,每一步计算的过程就和最小二乘法一样;所以叫做交替最小二乘法。

SofaSofa数据科学社区DS面试题库 DS面经

strong.man   2018-08-16 09:06

这个讲得很清楚,茅塞顿开,谢谢 - cyh   2018-08-20 20:55
请问这个方法可以保证每次交替求解,∥M−P1QT∥22 都会变小么 - tangkang   2018-09-06 10:53
这个是凸优化吧,最小二乘,肯定会变小的,直到最后稳定 - Nagozi   2018-09-07 01:04
P和Q都是变量,整个问题是对于P,Q的最小二乘,肯定会使cost function变小。主要是每一步只改变P或Q,相当于把所有变量分成两个子集,每次只改变一个子集。相似的算法还有coordinate descent。 - Zealing   2018-09-08 00:15
3

Alternating Least Squares

有兴趣的话,可以直接看论文


SofaSofa数据科学社区DS面试题库 DS面经

染盘   2018-02-02 12:56

1

这种方法不保证收敛

SofaSofa数据科学社区DS面试题库 DS面经

wangzhongruo   2020-02-09 15:07

为什么呢? - zhaijing   2020-02-10 20:14
保证收敛的不是这种方法本身,而是要解决的问题是设计为凸优化问题。所谓凸优化问题是一个凸函数在凸集里求最优。假设问题对P和Q都是凸问题,那么单独求P或Q时,loss函数都会单调减小,从而保证收敛。否则不保证收敛。 - Zealing   2020-02-11 01:34
明白了,谢谢 - zhaijing   2020-02-11 22:53


  相关讨论

推荐系统算法里的cold start是什么意思?

怎么给推荐结果增加多样性和随机性?

pointwise和pairwise推荐排序算法的区别是什么?

余弦相似和内积的意义?

推荐系统中常用的表示相似或者距离的方法有哪些?

两个向量的余弦距离大于1?

Jaccard相似或者Jaccard距离是怎么计算的?

协同过滤的数据预处理问题

怎么理解推荐系统中的NDCG?

为什么wide&deep模型用ftrl和adagrad两种优化方法

  随便看看

推荐系统有哪些常用的评价标准

sklearn中的predict_proba方法的返回值的意义

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别

python里清除已经定义过的变量

凸优化中局部最优解就是全局最优解吗?