추천시스템의 Model based CF

ReadyMadeLife·2022년 4월 1일
1

Model based CF (MBCF)

기존에 다뤘던 NBCF의 경우 Sparsity와 Scalability 이슈가 있다.
유저, 아이템의 개수가 늘어날수록 기하급수적으로 계산량이 늘어나기 때문

따라서 MBCF의 경우, 항목 간 유사성을 단순 비교하는 것이 아닌,
데이터 패턴을 이용해 추천해주는 CF 모델이다.

MBCF의 특징은 데이터에 숨겨진 유저-아이템 관계의 잠재적 특성/패턴을 찾는데 있다.
<-> NBCF는 유저/아이템 벡터를 데이터를 통해 계산된 형태로 저장 (-> Memory-based CF)
반면에, MBCF는 유저, 아이템 벡터는 모두 학습을 통해 변하는 파라미터이다.

현업에서는 Matrix Factorization 기법이 많이 사용되고,
특히 MF원리를 DL모델에 응용하는 기법이 성능이 좋다.

MBCF의 경우 다양한 장점이 많고, 아래와 같이 정리해보겠다.
1. 모델 학습 /서빙
: 유저-아이템 데이터는 학습에만 사용되고 학습된 모델은 압축된 형태로 저장되어,
이미 학습된 모델을 통해 추천하기 때문에 서빙 속도가 빠르다.

  1. Sparsity / Scalability 문제 개선
    : Sparsity한 데이터에서도 좋은 성능을 보이고, 사용자, 아이템 개수가 늘어나도 좋은 성능을 보인다.

  2. Overfitting 방지
    : 전체 데이터 패턴을 학습하기 때문에, KNN과 같은 주변 데이터로만 예측하는 NBCF에 비해 과적합되지 않는다.

  3. Limit coverage 극복
    : NBCF의 경우 유사도 값이 정확하지 않은 경우, 효과를 보기 힘들지만 MBCF의 경우 이를 해결할 수 있다.

Singular Value Decomposition (SVD)

Singular Value Decomposition (SVD)란
Rating Matrix R에 대해 유저와 아이템의 잠재요인을 포함할 수 있는 행렬로 분해하는 것을 말한다.

  • 유저와 잠재 요인 행렬
  • 잠재 요인 대각 행렬
  • 아이템 잠재 요인 행렬

SVD 원리

Full SVD


변수 설명

  • U : 유저와 Latent Factor 관계
  • V : 아이템과 Latent Factor 관계
  • \sum : Latent Factor 중요도

Truncated SVD


대표값으로 사용될 K개의 특이치만 사용

각각 K개의 Latent Factor는 유추만 할 수 있고 정확이 어떤 것을 의미하는지 알 수 없다.

SVD 한계

SVD의 경우, 분해하려는 행렬이 불완전할때 정의되지 않는다.
-> 결측치를 채우는 Imputation을 통해 Dense Matrix를 만들어 SVD를 수행하는데 여기서 문제점이 있다.

  • Imputation은 데이터 양을 상당 수준 증가시켜, cost를 높인다.
  • 평균이나 0으로 결측치를 채워 데이터를 왜곡시키고 성능을 떨어뜨린다.

따라서, SVD 원리를 차용한 MF를 만들었다.

Matrix Factorization (MF)

Matrix Facorization (MF)는 User-Item 행렬을 저차원 User와 Item의 latent factor 행렬 곱으로 분해한다.

SVD와 다른점은 관측된 rating만 모델링에 사용해서 관측되지 않은 rating을 예측하는 모델을 만드는 것에 있다.

Rating Matrix를 P와 Q로 분해하여 최대한 유사한 R을 찾는 것에 있다.

기본 MF 모델

RR과 최대한 유사한 R^\hat{R}을 찾는 것에 있다.

따라서, Objective Function을 정의하자면 아래와 같다.

Objective Function

이것을 더 자세히 풀자면,

이렇게 정의할 수 있는데, 2nd term은 과적합 방지를 위한 L2 Regularization을 의미한다.

Model Training

학습은 Stochastic Gradient Descent를 사용하여 학습을 시킨다.

그리고 Gradient를 반대방향으로 pu,qip_u, q_i를 업데이트 시킨다.

profile
레디메이드인생

0개의 댓글