MBCF

김동환·2023년 4월 5일
0

AI_tech_5기

목록 보기
14/18
post-custom-banner

NBCF의 한계점

NBCF는 Sparsity와 Scalability에 대해서 한계점이 존재한다. 따라서 MBCF 기법이 등장하게 되었다

MBCF

  • 항목 간 단순 유사성을 비교하는 것에 벗어나 내재된 패턴을 이용
  • 데이터 정보가 파라미터의 형태로 모델에 압축(아이템 벡터, 유저 벡터)
  • 모델의 파라미터는 데이터의 패턴을 나타내고, 최적화를 통해 업데이트
  • 데이터에 숨겨진 유저-아이템 관계의 잠재적 특성/패턴을 찾음

장점

  • 이미 학습된 모델을 통해 추천하기 때문에 서빙 속도가 빠름
  • Sparsity / Scalability 문제 개선
  • Overfitting 방지(NBCF는 특정 이웃에 크게 영향)
  • Limited Coverage 극복

Latent Factor Model

SVD

유저와 아이템의 잠재 요인을 포함할 수 있는 행렬로 분해하는 방법

FULL SVD

R=UΣR = U\SigmaVTV^T ---> FULL SVD
UU(유저 벡터)는 RR의 left singular vector
VV(아이템 벡터)는 RR의 left singular vector
Σ\Sigma는 latent factor의 중요도

Truncated SVD

R=UΣkR = U\Sigma_kVTV^T ---> FULL SVD
대표값으로 사용될 k개의 Latent Factor만 사용한다.몇 개의 특이치만을 가지고도 유용한 정보 유지하면서 분해된 행렬을 부분 복원하면 가장 중요한 정보로 요약된다는 개념

Limitation

  • 분해하려는 행렬의 Knowledge가 불완전할 때 정의되지 않음
    • 따라서 결측된 entry를 모두 채우는 Imputation을 통해 Dense Matrix를 만들어 SVD를 수행
    • 이는 데이터의 양을 상당히 증가시켜 비용이 높아지고 정확하지 않은 Imputation은 데이터를 왜곡시키고 성능을 떨어뜨림

Matrix Factorization

  • User-Item 행렬을 저차원의 User와 Item의 latent factor 행렬의 곱으로 분해하는 방법
  • SVD의 개념과 유사하나, 관측된 선호도(평점)만 모델링에 활용하여,
    관측되지 않은 선호도를 예측하는 일반적인 모델을 구축
    R=P×QTR = P \times Q^T이렇게 예측된 R을 가지고 실제 R과 비교해 최적화를 수행한다. 여기에 L2 Norm Regularzation을 통해서 Overfitting을 방지할 수도 있다.

    이를 각각 pup_u, qiq_i에 대해서 미분을 하면 이고 이 반대 반향으로 업데이트 해주면 된다.

Tuning

Adding Biases

아이템과 유저에 따라 성향이나 편향이 다를 수 있으므로 bias를 추가해 성능을 높일 수도 있다. 그렇게 되면 Error term은 다음과 같고 업데이트 룰은 다음과 같다.

Confidence Level

모든 평점이 동일한 신뢰도를 갖지 않고 평점에 대한 신뢰도를 추가하는 기법. 유저의 아이템에 대한 평점이 정확하지 않은 경우 향상시킬 수 있다.

Temporal Dynamics

시간에 따라 변화는 유저, 아이템의 특성을 반영

MF for Implicit Feedback

ALS

  • 유저와 아이템 매트릭스를 번갈아 가면서 업데이트
  • Sparse한 데이터 대해 더 Robust하고 병렬 처리가 가능하다

    Implicit Feedback으로 데이터를 고려 시 r을 바이너리 형태로 표현을 하면 되는데 confidence를 고려하면 다음과 같이 할 수 있다.

Bayesian Personalized Ranking

사용자의 클릭, 구매 등의 로그는 Implicit Feedback 데이터인데 선호의 정도가 나타나있지 않다. 또한 관측되지 않은 데이터는 유저가 관심이 없는 것인지 아직 모르는 것인지에 대한 고려도 필요하다.

가정

  • 관측된 아이템을 관측되지 않은 아이템보다 선호
  • 관측된 아이템끼리는 선호도를 추론할 수 없음
  • 관측되지 않은 아이템끼리도 선호도를 추론할 수 없음

특징

  • 관측되지 않은 아이템들에 대해서도 정보를 부여하여 학습함
  • 관측되지 않은 아이템들에 대해서도 ranking이 가능
profile
AI Engineer
post-custom-banner

0개의 댓글