<aside> ✔️ 간단 요약


행렬을 인수분해 후 재생성하여 결측치를 예측하는 방법

인수분해를 다양하게 시도하여 대상 행렬을 가장 잘 복구하는 최적의 하위 행렬을 찾는 과정

Latent Factors Matrix Factorization SGD
</aside>

행렬을 인수분해 후 재생성하여 결측치를 예측하는 방법

  1. 대상 행렬을 두개의 하위 행렬로 분해한다.

    User-Item 행렬을 User와 Item 각각에 대한 저차원의 latent factor 행렬로 분해한다.

  2. 두 하위 행렬을 다시 곱해서 대상 행렬과 동일한 크기의 단일 행렬로 만든다.

  3. 위의 과정에서 기존 행렬의 빈공간이 채워진다.

    이는 행렬의 성질을 이용한 것이다.

    즉, 결측값(비평가 항목)에 대해 임의로 Imputation을 수행하지 않는다.

    실제로 관측된 값만 활용한다.

요약하면, 인수분해를 다양하게 시도하여 대상 행렬을 가장 잘 복구하는 최적의 하위행렬을 찾는 과정이다.

기계가 해석하기 위한 행렬, 즉 블랙 박스 모델에 더 가깝다.

추천시스템에서 두 개의 하위행렬은 각각 유저 임베딩(User Latent Factors)과 아이템 임베딩(Item Latent Factors)이 된다.

결국 MF를 학습하는 것은 latent feature들을 학습하는 것과 같다.

범주형 feature의 잠재 요인을 feature로 사용하고자 할 경우 이 잠재 요인을 가장 손쉽게 구할 수 있는 방법이다.


Latent 행렬을 각각 P, Q라고 했을 때, MF는 Rating Matrix를 $P$와 $Q$로 분해하여 $R$과 최대한 유사하게 $\hat R$을 추론한다.(최적화)

$$ R \approx P \times Q^T = \widehat R $$

모델 학습 과정

Object Function을 정의하고 최적화 문제를 푸는 모델 학습 과정을 살펴보자.

$$ R \approx P \times Q^T = \widehat R\\ P \rightarrow |U| \times k\\ Q \rightarrow |I| \times k $$

Untitled

Objective Function

기본 형태

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

최종 형태

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

$\lambda$(상수)배 된 penalty term은 L2 — Regularization(규제)

학습 데이터에 과적합 되는 것을 방지한다.

MF 학습

SGD: Stochastic gradient descent(확률적 경사 하강법)

MF 모델에서의 SGD


MF 기반 추천으로 가장 널리 알려진 논문

Matrix Factorization Techniques for Recommender Systems

기본적인 MF에 다양한 테크닉을 추가하여 성능을 향상시켰다.