[RecSys] CF : Collaborative Filtering 기초

mincheol2·2022년 3월 11일
0

RecSys

목록 보기
6/23
post-thumbnail

이 글은 부스트캠프 AI Tech 3기 강의를 듣고 정리한 글입니다.

CF는 직관적으로 이해하기 쉽지만 앞으로 배울 다양한 기법의 기초가 되는 중요한 개념이다.

CF의 문제정의

협업 필터링(Collaborative Filtering, CF)이란 많은 유저들로 부터 얻은 기호 정보 를 이용해 유저의 관심사를 자동으로 예측하는 방법이다. 여기서 Collaborative는 집단적 협업, 다수의 의견을 활용한다는 뜻이다.

즉 CF는 더 많은 유저/아이템 데이터가 축적될수록 협업의 효과는 커지고 추천은 정확해질 것이라는 가정에서 출발한다. (ML에서 데이터가 많으면 잘될것이란 것과 동일한 의미)

CF의 예시 ) 컴퓨터를 구매한 유저들이 구매한 다른 상품들(마우스, 키보드 등) 추천 - 이때 나에 대한 추천은 다른 유저들 구매이력으로 부터 구해진다.


CF 기반 추천 시스템의 최종 목적은 유저 u가 아이템 i에 부여할 평점(선호도, 클릭확률)을 예측하는 것이다.

이를 위한 CF 기반 추천 시스템의 과정은 크게 3가지 단계로 나뉜다.

  1. 유저 - 아이템 행렬을 생성 (user-itme interaction matrix)

  2. 유사도 기준을 정하고, 유저간 or 아이템간 유사도를 구함

  3. 주어진 평점과 유사도를 활용하여 행렬의 비어있는 값(평점)을 예측 (Matrix Completion)

CF의 원리

유저 A와 비슷한 취향을 가진 유저들이 선호하는 아이템을 추천하기 때문에 아이템이 가진 속성을 사용하지 않으면서 높은 추천 성능을 보인다.
이는 Item의 속성을 가지고 예측하는 Content-based Recommendation과는 정반대된다.

원리는 그림을 통해 이해해보자.

동일한 아이템(빨간 동그라미, 빨간 세모) 를 선호하는 User A, B 가 있다고 해보자
이때 User B가 새로운 아이템(하늘색 네모)를 선호한다면 새로운 아이템(하늘색 네모)는 User A에게 추천하면 선호할 것이다.

반대로 User B가 새로운 아이템(노란 동그라미)를 선호하지 않는다면 새로운 아이템(노란 동그라미)는 User A에게 추천하면 User B와 마찬가지로 선호하지 않을 것이다.
즉 User A와 유사한 선호 패턴을 가진 User B가 새로운 아이템들에 대해 평가한다면 User A 또한 User B와 비슷하게 선호할 것 이다.

CF의 분류

CF는 크게 Memory 기반 , Model 기반 CF 두가지로 분류할 수 있다.
여기서는 각 기반의 간단한특징과 어떤 모델들이 있는지만 간단히 소개한다.

Memory-based CF (Neighborhood-based CF)

초창기 CF로 모든 User-item Interaction Matrix를 메모리에 올려놓고 계산하기 때문에 Memory-based CF라고 불린다. 단순 행렬 계산으로 예측값을 구하기 때문에 새로운 유저(아이템)이 들어올 시 다시 모든 것을 계산해 줘야한다는 아주 큰 단점이 있다.

  • User-based
  • Item-based

Model-based CF

User-item Interaction Data를 기반으로 예측 Model을 만들어 Model의 파라미터를 학습하는 방식이다.
Memory-based CF와는 다르게 새로운 유저(아이템)이 들어올 시 학습된 모델을 통해 예측을 하기 때문에 현업에서 많이 사용한다(특히 MF를 많이 사용한다고 한다)

  • Non-Parametric(KNN,SVD)
  • Matrix Factorization, MF
  • Deep Learning

Hybrid CF

  • Content-based Recommendation과의 결합
profile
옹오옹오오오옹ㅇㅇ

0개의 댓글