MF에서 $p_u, q_i$ 가운데 하나를 상수로 고정하고 다른 하나로 least-square 문제를 풀어 가중치를 업데이트하는 방식

유저와 아이템 행렬을 번갈아가며 업데이트한다.

$p_u$나 $q_i$를 상수로 고정 ⇒ 목적 함수가 quadratic form이 된다.

⇒ convex(볼록)하기 때문에 Least Square 문제로 풀 수 있다.

ALS vs SGD

Sparse한 데이터에 대해 SGD보다 더 Robust하다.

행렬 인수분해를 통해 계산하는 MF → 계산 한계

ALS →

대용량 데이터를 병렬 처리하여 빠르게 학습 가능

행렬 단위 연산 가능


ALS 목적함수

$$ \tt \min {P, Q} \sum{\text {observed }r_{u,i}}\left(r_{u, i}-p_u^T q_i\right)^2+\lambda\left(\left\|p_u\right\|_2^2+\left\|q_i\right\|_2^2\right) $$

아래 수식을 사용해 $P,Q$를 번갈아가며 업데이트

$$ \begin{aligned}& p_u=\left(Q^T Q+\lambda I\right)^{-1} Q^T r_u \\& q_i=\left(P^T P+\lambda I\right)^{-1} P^T r_i\end{aligned} $$