Study/AI

[AI] 모델 기반 협업필터링

motti 2023. 4. 2. 21:07
반응형

Model Based Collaborative Filtering (MBCF)

NBCF의 한계

  • Sparsity(희소성) 문제
    • 데이터가 충분하지 않다면 추천 성능 떨어짐
    • 데이터가 부족하거나 아예 없는 유저 추천 불가능(cold start)
  • Scalability(확장성) 문제
    • 유저와 아이템이 늘어날수록 유사도 계산이 계속 늘어남
    • 유저,아이템이 많아야 정확한 예측을 하지만 반대로 시간이 오래 걸림

모델 기반 협업 필터링

데이터에 내재한 패턴을 이용해 추천하는 CF기법

  • Parametric Machine Learning을 사용
  • 주어진 데이터를 사용하여 모델을 학습
  • 데이터 정보가 파라미터의 형태로 모델에 압축
  • 모델의 파라미터는 데이터의 패턴을 나타내고 최적화를 통해 업데이트

모델 기반 CF vs 이웃 기반 CF

  • 이웃 기반 CF는 유저와 아이템 벡터를 데이터를 통해 계산된 형태로 저장
  • 모델 기반은 유저, 아이템 벡터 모두 학습을 통해 변하는 파라미터
  • 현업에서 Matrix Factorization 기법이 가장 많이 사용됨.
    • 최근 MF 기법을 딥러닝 모델에 응용하는 기법이 높은 성능을 냄

모델 기반 CF의 장점

  • 모델 학습과 서빙이 가능함
    • 유저-아이템 데이터는 학습에만 사용하고 학습된 모델은 압축된 형태로 저장
    • 이미 학습된 모델을 통해 추천하기 때문에 서빙 속도가 빠름
  • 희소성/확장성 문제 개선
    • 이웃 기반 cf에 비해 sparse한 데이터(빈 행렬)에서도 좋은 성능을 보임
    • 사용자, 아이템 개수가 많이 늘어나도 좋은 추천 성능을 보임
  • Overfitting 방지
    • 이웃 기반은 특정 주변 이웃에 의해 크게 영향을 받는거와 달리 모델 기반은 전체 데이터의 패턴을 학습
  • Limited Coverage 극복
    • 이웃기반은 공통의 유저 또는 아이템을 많이 공유해야 유사도 값이 정확해짐

Feedback data

  • Explitcit feedback vs Implicit Feedback
  • Explitcit feedback
    • 영화평점,맛집,별점 등등
  • Implicit Feedback
    • 클릭 여부, 시청 여부 등 item에 대한 user의 선호도를 간접적으로 알 수 있음
    • 유저-아이템 간 상호작용이 있었다면 1(positive)을 원소로 갖는 행렬로 표현 가능
    • 암시적 반응 데이터의 크기가 훨씬 크고 많이 사용됨

Latent Factor Model(임베딩이라는 말을 더 씀)

  • 유저와 아이템 관계를 잠재적 요인으로 표현할 수 있다고 보는 모델
    • 다양하고 복잡한 유저와 아이템의 특성을 몇개의 벡터로 compact하게 표현
  • 유저 - 아이템 행렬을 저차원의 행렬로 분해하는 방식으로 작동
    • 각 차원의 의미는 모델 학습을 통해 생성되며 표면적으로 알 수 없음
  • 같은 벡터 공간에서 유저와 아이템 벡터가 놓일 경우 유저와 아이템의 유사한 정도를 확인할 수 있음.
    • 유저 벡터와 아이템 벡터가 유사하게 놓인다면 해당 유저에게 해당 아이템이 추천될 확률이 높음.

Singular Value Decomposition(SVD)

  • Rating Matrix R에 대해 유저와 아이템의 잠재 요인을 포함할 수 있는 행렬로 분해
    • 유저 잠재 요인 행렬
    • 잠재 요인 대각 행렬(잠재 요인의 중요도)
    • 아이템 잠재 요인 행렬
  • 선행 대수학의 차원 축소 기법중 하나로 분류됨
    • PCA도 차원축소기법 중 하나

Full SVD

$R = U\Sigma V^T$

  • (수학 공식 ctrl+shift+e)
  • U : 유저와 Latent Factor의 관계
  • V : 아이템과 Latent Factor의 관계
  • 시그마 : Latent Factor의 중요도
    • $RR^T$을 고유값 분해해서 얻은 직사각 대각 행렬 대각원소들은 R의 singular value(특이치)

Truncated SVD

$R = U\Sigma V^T$ (인데 축소된것!)

  • 대표값으로 사용될 k개의 특이치만 사용
  • R은 축소된 U, V, 시그마에 의해 계산됨
    • 몇개의 특이치만을 가지고도 유용한 정보 유지 분해된 행렬이 부분 복원되면서 가장 중요한 정보로 요약된다는 개념
  • 각각의 K개의 Latent Factor는 유추할 수 있을 뿐 정확히 무엇을 의미하는지 알 수 없음
  • 유저,아이템의 행렬을 적은 차원의 행렬로 분해한다는 것은 앞선 MF와 같은 개념

SVD의 한계점

  • 분해할려는 행렬의 Knowledge가 불완전할 때 정의되지 않음
    • 실제 대부분의 데이터는 sparse matrix
  • 따라서 결측된 entry를 모두 채우는 imputation을 통해 Dense Matrix를 만들어 SVD 수행
    • imputation : 결측된 entry를 0 또는 유저,아이템의 평균 평점으로 채움
    • imputation은 데이터의 양을 상당히 증가시키므로, 컴퓨팅 연산 비용이 높아짐
  • 정확하지 않은 Imputation은 데이터를 왜곡시키고 예측 성능을 떨어뜨림
    • 행렬의 entry가 매우 적을 때, svd를 사용하면 과적합 되기 쉬움
  • SVD의 원리를 차용하되, 다른 접근 방법이 필요! ⇒ MF의 등장

Matrix Factorization(행렬 분해)

  • user-item 행렬을 저차원의 user와 item의 latent factor 행렬의 곱으로 분해하는 방법
  • svd의 개념과 유사하나, 관측된 선호도(평점)만 모델링에 활용하여, 관측되지 않은 선호도를 예측하는 일반적인 모델을 만드는 것이 목표
  • Rating Matrix를 P와Q로 분해하여 R과 최대한 유사하게 R-bar를 추론(최적화)
    • $R \approx P *Q^T = \bar{R}$
  • $P = |U| * k$ (전체 유저수 *k개의 latent factor)
  • $Q = |I|*k$ (전체 아이템수 *k개의 latent factor)
  • Objective Function을 정의하고 최적화 문제를 푸는 것
    • true rating : $r_{ui}$
    • predicted rating

  • $r_{ui}$ : 학습 데이터에 있는 유저 u의 아이템 i에 대한 실제 rating
  • $p_u(q_i)$ : 유저(아이템)의 latent vector
    • 최적화 문제를 통해 업데이트 되는 파라미터
  • $\lambda$(상수)배 된 penalty term은 L2-정규화(regulaization)를 의미
    • 학습 데이터에 과적합되는 것을 방지함
  • 실제 관측된 데이터만을 사용하여 모델을 학습(SVD는 행렬 분해를 위해 결측 entry를 채워넣었음)

정규화(regulaization)란?

  • weight를 loss function에 넣어주면 weight가 너무 커지지 않도록 제한이 걸려 overfitting 방지
  • Regulazation Term에 곱해지는 람다의 크기에 따라 영향도가 달라짐
    • 람다가 너무 크면 가중치가 제대로 변하지 않아서 학습이 일어나지 않는 과소적합이 일어남

반응형