推荐系统里的ALS是什么意思?
3个回答
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面经
这个讲得很清楚,茅塞顿开,谢谢
-
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
这种方法不保证收敛
SofaSofa数据科学社区DS面试题库 DS面经
为什么呢?
-
zhaijing
2020-02-10 20:14
保证收敛的不是这种方法本身,而是要解决的问题是设计为凸优化问题。所谓凸优化问题是一个凸函数在凸集里求最优。假设问题对P和Q都是凸问题,那么单独求P或Q时,loss函数都会单调减小,从而保证收敛。否则不保证收敛。
-
Zealing
2020-02-11 01:34
明白了,谢谢
-
zhaijing
2020-02-11 22:53