추천을 위한 다양한 알고리즘 종류

메모리 기반 알고리즘

추천을 위한 데이터를 모두 메모리에 가지고 있으면서 추천이 필요할 때마다 데이터를 사용하고 계산해서 추천하는 방식
장점: 모든 데이터를 메모리에 저장하고 있기 때문에 원래 데이터에 충실하게 사용한다.
단점: 대량의 데이터를 다뤄야 하는 경우 계산 시간이 너무 오래 걸리고 느리게 반응한다.

CF 알고리즘은 대표적인 메모리 기반 추천 알고리즘
개별 사용자 데이터에 집중한다.

모델 기반 알고리즘

데이터로부터 추천을 위한 모델을 먼저 구성한 후에 모델만을 저장하고, 실제 추천할 때에는 모델을 사용해서 필요시에 추천하는 방식
장점: 원래 데이터를 가지고 모델을 만들고, 모델이 만들어진 뒤에는 원래 데이터는 더이상 사용되지 않기 때문에 대규모 데이터에 빠르게 반응할 수 있다.
단점: 모델 생성 과정에서 계산 과정이 필요하기 때문에 오래 걸린다.

Matrix Factorization과 딥러닝 방식의 추천은 모델 기반 추천 알고리즘
전체 사용자의 평가 패턴으로부터 모델을 구성하기 때문에 데이터가 가지는 약한 신호를 더 잘 잡아낼 수 있다.

  • Weak Signal 약한 신호 : 개별 사용자의 행동분석에는 드러나지 않는 패턴
    ex) 소수의 사용자가 소수의 영화에 대해서만 특정한 평가 패턴이 있는 경우

MF Matrix Factorization 방식의 원리

MF, 즉 행렬 요인화는 user와 item으로 구성된 하나의 행렬을 두 개의 행렬로 분해하는 방식이다.
앞의 CF 알고리즘에서는 user와 item으로 구성된 2차원 행렬 full-matrix를 사용했다.

full-matrix를 사용자 잠재 요인 행렬과 아이템 잠재 요인 행렬로 나누어 사용한다.
(M명의 사용자와 N명의 아이템 데이터)

  • P : User latent matrix (M x k)
  • Q : Item latent matrix (N x k)
  • k : latent vector (k개의 잠재요인)
    (여기서 잠재요인이란, 사용자 개개인이 가지고 있는 숨겨진 특징을 말한다.)

즉, 위의 이미지를 표현한다면, 사용자와 아이템의 특성을 k개의 잠재요인을 사용해서 분석하는 모델이다.

아래 이미지를 통해 더 자세히 설명해본다.

k=2 잠재요인을 2개로 지정했다면 사용자와 영화의 특성을 2개의 요인으로 나타낼 수 있다. 만일 두 요인의 차원이 액션-드라마(k1)와 판타지-사실주의(k2) 라고 한다면 모든 사용자와 영화의 특성은 각 요인에 대해서 -1과 1사이의 값으로 표현될 수 있다고 가정한다.

사용자와 아이템 2가지 요인의 값에 따라서 2차원 공간에 나타내면 아래와 같다.

어떤 사용자가 어떠한 영화를 선호할지 예측할 수 있다.

예상 평점인 R hat을 구할 수 있다.

profile
data analysis, data science

0개의 댓글