이번 시간부터는 현재까지 추천 시스템 분야에서 가장 많이 사용되는 기법인 협업필터링(Collaborative Filtering, CF)에 대해 알아보도록 하겠습니다.
Collaborative filtering
협업필터링이라고 불리는 CF는 특정 아이템에 대해 선호도가 비슷한 사용자들은 다른 아이템에 대해서도 비슷한 선호도를 보일 것이라는 가정을 바탕으로 사용자 또는 아이템 간의 유사도를 통해 선호도를 예측하는 방식입니다.
CB는 자신의 데이터만을 사용하여 선호도를 예측하지만 CF의 경우 다른 사람의 정보를 통해 선호도를 예측하는 것이 가장 큰 차이라고 할 수 있습니다.
따라서 다른 사람의 선호도를 반영하기 때문에 추천되는 아이템의 다양성을 보장할 수 있다는 장점이 있습니다.
하지만 사용자와 아이템 행렬을 만들게 되면 모든 사용자가 모든 아이템에 평점을 남기는 것이 아니기 때문에 대부분의 공간이 존재하지 않는 상태로 나타나게 됩니다. 이를 데이터의 희소성(sparsity)라고 표현하는데, 이 문제가 CF에서의 가장 큰 issue라고 할 수 있습니다. 즉, 데이터의 부족으로 인해 선호도를 예측하는 것이 불가능하다는 단점이 있습니다.
CF는 크게 memory-based, model-based로 나눌 수 있습니다.
memory-based
memory-based CF는 memory에 저장한 사용자 혹은 아이템 간의 유사도를 기반으로 유사도가 높은 이웃을 데이터를 통해 추천하는 방식입니다. 이때 사용하는 대표적인 방법이 우리가 흔히 알고 있는 머신러닝 기법중 하나인 KNN(k-nearest neighbor) 방법입니다.(앞에서 '이웃'이라고 말한 이유가 여기 있습니다.)
memory-based는 유사도를 구하는 기준에 따라 item-based(IBCF), user-based(UBCF)로 나누어지게 됩니다.
- IBCF: 비슷한 상품간의 연관성(유사도)을 통해 사용자에게 아이템을 추천
- item 수 < user 수의 경우에 많이 사용합니다. 왜냐하면 이때의 경우에 item 유사도 행렬을 구할 때 덜 sparse 하기 때문입니다.
- 즉, 비슷한 아이템을 추천하기 때문에 user-based보다 다양성 측면에서 낮을 수 있다는 단점이 존재합니다.
- UBCF: 비슷한 사용자와의 연관성(유사도)을 통해 사용자에게 아이템을 추천
- item 수 > user 수의 경우에 많이 사용합니다.
- IBCF와 반대로 비슷한 사용자를 기준으로 추천하기 때문에 IBCF에 비해 다양성이 높을 수 있다는 장점이 있습니다.
model-based
model-based는 모델을 개발하여 특정 알고리즘을 통해 아이템을 추천하는 방식을 말합니다.
대표적으로는 MF(matrix factorization) 모델이 있습니다. 이는 사용자-아이템 행렬을 두개의 행렬로 분리하고 다시 행렬 곱으로 사용자의 평점을 예측하는 방식으로써 기존 CF가 지니고 있는 data sparsity를 완화시킬 수 있다는 장점이 있습니다.
model-based는 실행할때마다 결과가 다를 수 있다는 점에서 memory-based와 가장 큰 차이점이라고 할 수 있습니다.
이번 포스팅에서는 추천 시스템에서 가장 많이 사용되는 방식인 협업필터링에 대해서 어떻게 이루어져 있는지에 대해 알아보았습니다. 다음 글부터는 관련된 자세한 내용과 구현 코드에 대해서 알아보도록 하겠습니다.
'reommender system' 카테고리의 다른 글
[추천 시스템#2] 콘텐츠 기반 추천 시스템(content-based recommender system) (0) | 2023.04.27 |
---|---|
[추천 시스템#1] 추천 시스템이란? (0) | 2023.04.25 |