메모리 기반 추천 알고리즘(memory-based RS)
: CF(Collaborative Filtering)로 대표되며, 추천이 필요 할 때 마다 데이터로 계산하여 추천하는 방식입니다. 개별 사용자 데이터에 집중할 수 있지만, 모든 데이터가 매번 메모리에 올라와 있어야 하기 때문에 계산시간이 오래 걸린다는 특징이 있습니다.
모델 기반 추천 알고리즘 (model-based RS)
: 데이터로 한 번 모델을 생성해 놓고, 이 모델을 통해 추천을 제공하는 방식입니다. 모델 생성 때는 많은 계산이 요구되지만 매번 더 빠른 추천을 제공 할 수 있으며, 메모리 기반 RS와 달리 사용자의 평가 패턴으로 모델을 구상하기 때문에 잘 드러나지 않는 weak-signal을 더 잘 잡아 낼 수 있습니다.
: MF(Matrix Factorization) 방식과 deep-learning을 활용한 방식이 여기 속합니다.
: 추천시스템 분야에서 흔히 SVD와 MF가 같은 의미로 사용되고는 합니다.
결론부터 말하자면 명백히 둘은 다른 기법이고, 실제로 SVD기법은 추천시스템에서 거의 사용되지 않습니다.
추천시스템의 데이터셋에는 사용자가 평가하지 않은 많은 null값이 존재하게 되는데,
기본 오차
과적합 방지 위한 정규화 적용
각 user와 item의 bias 고려
투빅스 17기 박나윤입니다.
1) 메모리 기반
추천을 위한 데이터를 모두 메모리에 갖고 추천이 필요할 때마다 이 데이터를 사용해서 계산 및 추천
Ex) Collaboratice Filtering
2) 모델 기반
데이터로부터 추천을 위한 모델 구성한 후에 이 모델만 저장하고, 실제 추천할 때에는 이 모델을 사용
Ex) Matrix Factorization(MF) : 행렬 요인화 방식, Deep Learning 방식
평가데이터 (사용자 * 아이템)으로 구성된 하나의 행렬을 2개의 행렬로 분해하는 방법!
3) SSG
1 잠재요인의 갯수 k를 정한다.
2 주어진 K에 따라 P(MxK)와 Q(NxK)의 임의의 수로 채워진 행렬을 만든다.
3 P, Q 행렬을 이용하여 예측평점 Rhat = PxQt 계산
4 실제 데이터와 R과 예측평점 Rhat을 비교하여, 오차를 구하고, 이 오차를 줄이기 위해 P,Q를 수정
5 반복(정해진 iteration 혹은 수렴할때까지)
투빅스 17기 이지수입니다.
메모리 기반 추천(ex. CF)는 모든 데이터를 메모리에 저장해야해서 대량의 데이터일 경우 계산시간이 너무 오래 걸린다는 단점이 있다. 하지만, 모델 기반 추천 방식은 일단 모델이 만들어지만 빠른 반응이 가능하다는 장점이 있다.
MF 방식은 사용자와 아이템으로 구성된 하나의 행렬을 2개의 행렬로 분해하는 방법이며, 분해된 행렬은 사용자 잠재요인행렬과 아이템 잠재요인행렬이라고 부른다.
P,Q 행렬은 SGD 방법을 통해서 최적화 할 수 있는데,이 때 정규화 항을 추가하고, 사용자와 아이템의 경향성을 고려해야한다.
투빅스 16기 이승주
모델 기반 추천 알고리즘은 모델을 통해 추천을 제공하는 방식입니다. 주로 MF(Matrix Factorization) 방식과 deep-learning을 활용한 방식이 여기 속합니다. 특잇값 분해를 기반으로 한 아이템-유저 행렬은 잠재행렬로 분해되고 학습을 통한 잠재 행렬의 업데이트를 통해 아이템-유저 행렬 내의 존재하지 않은 평점 또한 예측할 수 있게 됩니다. 학습의 방식은 대표적으로 SGD와 ALS가 있습니다.
최적의 잠재 행렬 크기 K를 찾기 위한 방식까지 정리해주셔서 인상깊었습니다. 감사합니다!
투빅스 16기 박한나입니다.
(대댓글로 잘못 달아 다시 올립니다)
투빅스 16기 김종우
앞에서는 메모리 기반의 추천 알고리즘을 보았다면, 이번 강의에서는 모델 기반의 추천 알고리즘을 보았다. 모델 기반 추천 알고리즘은 MF 방식과 deep - learning방식이 있다. SVD와 MF는 행렬 분해라는 비슷한 목적을 가지고 있지만 MF는 SVD와 달리 2개의 latent feature를 추출한다. 2개의 latent feature으로 rating matrix를 구성한 후에 rating prediction을 진행한다.
투빅스 17기 나다경입니다.
MF 방식은 (사용자 X 아이템)으로 구성된 하나의 행렬을 2개의 행렬로 분해하는 방법이다. R(평가 데이터) 행렬을 P(사용자 행렬)과 Q(아이템 행렬)로 쪼개어 분석하는 방식이다. K는 잠재요인이며, 사용자오 아이템의 특정을 K개의 잠재요인을 사용해서 분석하는 모델이다.
MF와 SVD의 개념은 혼동할 수 있으나 명백히 다른 기법이다. SVD는 데이터를 3개의 행렬로 분해해서 학습시키고 3개의 행렬로 원래의 행렬을 재현하는 기법이다. 그에 비해 MF에서는 원레 데이터를 P와 Q, 2개의 행렬로 분해한다는 점에서 차이가 있다.