추천이란 데이터를 통해서 사용자가 아직 소비하지 않은 아이템 중 선호할 만한 것을 예측하는 것을 말합니다. 추천 시스템은 기본적으로 콘텐츠 기반 필터링 방식과 협업 필터링 방식이 있습니다. 두 알고리즘의 차이는 어느 데이터를 사용하느냐에 따라서 구분됩니다.
콘텐츠 기반 필터링 방식
콘텐츠 기반 필터링 방식은 사용자 혹은 아이템에 대한 프로필 데이터를 가지고 사용자가 좋아했던 아이템과 비슷한 유형의 아이템을 추천하거나 비슷한 유형의 사람이 좋아하는 아이템을 추천하는 방식입니다.
예를 들어, 아이템 기반 추천 방식은 슈퍼맨 영화에 대한 사전 분석을 통해 SF, 히어로 장르 등의 특징을 기록하고, 슈퍼맨을 본 사람에게 배트맨과같이 비슷한 종류의 영화를 추천해 줍니다.
사용자 기반 추천 방식은 사용자에 대해서 성별, 연령대, 지역 등 프로필을 작성할 수 있으며, 사용자와 프로필이 비슷한 다른 사용자가 선호하는 영화를 추천해 줍니다.
이렇게 비슷한 상품을 계속해서 추천하기 때문에, 추천되는 아이템의 다양성이 떨어진다는 단점이 있습니다.
협업 필터링 방식
협업 필터링 방식은 프로필 데이터 없이, 사용자의 과거 행동 데이터만을 가지고 추천하는 방법입니다. 즉, 사용자가 남긴 평점 데이터를 가지고 취향이 비슷한 사람이 선호하는 아이템을 추천해 줍니다.
이 알고리즘의 장점은 직관적이며, 데이터에 의한 결과이기 때문에 신뢰도가 높습니다. 하지만 그만큼 데이터에 대한 의존도가 높다 보니 새로운 패턴에 대한 추천이 어려운 단점이 있습니다. 또한, 선호할 가능성이 있는 아이템이더라도 그 전에 아무도 선택하지 않은 아이템은 추천하지 않는 문제점도 있습니다.
하이브리드 필터링 방식
콘텐츠 기반 필터링 방식과 협업 필터링 방식 모두 각각의 한계점이 있어, 이 둘을 함께 사용하는 하이브리드 필터링 기법이 등장했습니다.
두 가지 알고리즘을 모두 적용하고, 이의 가중 평균을 구하는 결합 필터링 기법과 평점 데이터와 아이템 프로필을 조합하여 사용자 프로필을 만들어 추천하는 콘텐츠를 통한 협업 기법이 있습니다.
또한, 일정 데이터가 쌓이기 전까지는 콘텐츠 기반 필터링 기법을, 일정 데이터가 어느 정도 쌓인 후에는 협업 필터링 기법을 사용하는 경우도 있습니다.
일반적으로 충분한 양의 평점 데이터가 주어진 경우에는 결합 필터링 기법이 콘텐츠 기반 필터링 기법보다 더 정확하다고 알려져 있습니다. 결합 필터링 기법은 클릭 로그를 일종의 평점으로 간주해 쇼핑몰의 상품 추천을 구현할 수 있습니다.
협업 필터링 방식
하이브리드 필터링 방식 중 협업 필터링 방식에 대해서 조금 더 자세히 알아보겠습니다.
협업 필터링 방식은 많은 사용자들로부터 모은 취향 정보를 기반으로 하여 사용자의 취향을 예측하는 것을 말합니다. 주어진 평점 데이터만으로 아직 평점을 남기지 않은 영화(아이템)에 대한 평점을 예측하는 기법입니다. 이때, 평점 데이터는 성격에 따라 명시적 데이터 세트와 암묵적 데이터세트로 구분됩니다.
명시적 데이터세트는 사용자가 아이템에 대하여 선호와 비선호를 명확하게 구분해 준 데이터를 말합니다. 예를 들어, 영화 평점처럼 해당 영화가 좋은 경우에는 5점, 별로인 경우에는 1점을 매겨 명확하게 구분되는 데이터입니다. 하지만 현실에서는 호불호가 명확한 데이터도 있지만, 명확하지 않은 데이터도 존재합니다.
암묵적 데이터 세트는 호불호 구분 없이 사용자가 아이템을 얼마나 소비했는지 기록한 데이터 세트입니다. 즉, 행동의 빈도수만 기록한 데이터로, 쇼핑몰의 클릭 로그를 예로 들 수 있습니다. 사용자가 클릭한 상품은 확실하게 선호하는 상품으로 간주할 수 있는 것입니다.
어떤 아이템을 선호하는지는 알 수 있지만, 어떤 아이템을 비선호하는지 알지 못하므로 암묵적 데이터 세트는 물음표에 해당하는 영역 역시 데이터로 포함하여 사용자의 선호도를 학습합니다.
추천 모델
협업 필터링 방식에는 다음 모델이 존재합니다.
Neighborhood Model
Neighborhood Model은 주어진 평점 데이터를 가지고 비슷한 사용자 혹은 아이템을 찾는 모델입니다. 이때 주로 피어슨 유사도가 사용됩니다.
(여기서 피어슨 상관계수는 두 변수 X와 Y 간의 선형 상관 관계를 계량화한 수치로, -1에서 1 사이의 값을 가지며, -1과 1에 가까울수록 상관관계가 큰 것을 의미합니다.)
Latent Factor Model
Latent Factor Model은 관찰된 데이터와 잠재되어 있는 데이터를 연결하는 기법으로, 주어진 평점 데이터로 아직 알지 못하는 사용자와 아이템의 특성을 찾아내는 것입니다.
Latent Factor Model은 Matrix Factorization 기법을 많이 사용하며, 이는 대규모 다차원 행렬을 차원 감소 기법으로 분해하는 과정에서 잠재 요인을 찾아내 뽑아내는 방법입니다. 즉, 사용자-아이템 행렬을 사용자-잠재 요인, 아이템-잠재 요인 행렬로 분해할 수 있습니다.
암묵적 데이터 세트의 경우에는 Latent Factor Model이 더 뛰어난 성능을 보입니다.
'개발' 카테고리의 다른 글
GIT (1) (0) | 2024.09.09 |
---|---|
JedisExhaustedPoolException 이슈 (4) | 2024.09.08 |
Kafka 설정 값 (1) | 2024.09.08 |
Transaction (1) | 2024.09.08 |
NoSQL (0) | 2024.08.25 |