유저 , 아이템 에 대해 평점 데이터 가 존재할 때, 유저 의 아이템 에 대한 평점을 예측한다면,
1) User-based : 아이템 에 대한 평점이 있으면서 유저 와 유사한 유저들의 집합을 라 한다면,
2) Item-based : 유저 가 평가를 한 다른 아이템 중에서 아이템 와 유사한 아이템들의 집합을 라한다면,
기존의 CF
는 Memory-based CF
라고도 불리며, 유저와 아이템을 직접 연관시켜 추천하기 때문에 설명력이 높고 적용이 용이해용
유사도
에 크게 의존Sparsity
에 매우 취약 그러나 대부분의 Real World의 데이터는 Sparse
합니다Scalability
이 떨어집니당기존엔 있는 데이터를 기반으로 했다면, 이번엔 Deep Learning
기반으로 추천하여 문제를 극복하는 방식으로 좀더 자동화
에 가까워집니당
주어진 데이터를 사용하여 모델을 학습해용. 데이터의 정보가 데이터 패턴Parameter
의 형태로 모델에 압축되면서 지속적인 최적화Optimization
을 통해 업데이트를 수행합니당. 이는 Machine Learning
방식이에용
이웃 기반 CF
는 유저-아이템 벡터를 데이터를 통해 '계산'된 형태로 저장하고 있는 반면, Model-based CF
의 경우 유저, 아이템 벡터는 모두 '학습'을 통해 변하는 Parameter
가 됩니당!
최근에 MF
원리를 Deep Learning
에 응용한 모델이 더 높은 성능을 내고 있다고 해용.
그렇다고 하지만 현업에서 자주 사용되진 않고 논문에 주로 사용된다고 합니당.
유저-아이템 데이터는 학습에만 사용되고, 학습된 모델은 '압축'된 형태로 저장이 됩니당.
그래서 이미 학습된 모델을 통해 추천 결과를 서빙하기 때문에 속도가 빠릅니다
이웃 기반 CF
에 비해 sparse
한 데이터에서도 좋은 성능을 보여용! 이는 가지고 있는 데이터만으로 학습해서 결과를 예측하기 때문이졉.
사용자, 아이템 개수가 늘어나도 마찬가지로 좋은 성능을 보입니다
이웃 기반 CF
와 비교했을 때 전체 데이터의 패턴을 학습하도록 모델이 작동해서 편향적인 예측 결과를 방지할 수도 있어용
이웃 기반 CF
의 경우 공통의 유저 / 아이템을 많이 공유해야만 유사도
값이 정확해져용...
유사도` 값이 정확하지 않은 경우 이웃의 효과를 보기 어려운 반면, 공유가 안되더라도 학습이 잘된다고 합니당
주어진 Matrix
에 평점을 기반으로 유저가 아이템에 '주게 될' 평점을 예측하는 방식입니당
이 경우엔 몇몇 아이템에 흥미를 가져서 '클릭'을 했어용
그리고 '클릭'을 안한 아이템에 대해서(관심이 없거나 또는 노출이 안되었거나) '클릭'을 하게될 것인가 아닌가에 대한 '예측'을 합니당