협업 필터링과 내용기반 추천 시스템의 구조
A. 사용자 기반 협업 필터링(User-based CF)
B. 아이템 기반 협업 필터링(Item-based CF)
C. 행렬 분해 기반 협업 필터링(Matrix Factorization)
A. 특성 추출 단계
B. 프로필 생성 단계
1. 아이템 프로필
C. 추천 생성 단계
1. 유사도 계산
A. 가중치 결합 방식
final_score = w1 * collaborative_score + w2 * content_based_score
B. 스위칭 방식
if sufficient_data_exists:
return collaborative_filtering_result
else:
return content_based_result
C. 계층적 결합
1. 첫 번째 방식으로 후보군 생성
2. 두 번째 방식으로 재순위화
3. 최종 추천 리스트 생성
실제 구현 시 고려사항:
이러한 구조들은 실제 서비스에서는 비즈니스 요구사항과 데이터 특성에 따라 다양하게 변형되어 사용됩니다.
장점:
1. 내용을 직접 분석할 필요가 없습니다. 예를 들어 영화 추천의 경우, 영화의 내용이나 특성을 분석하지 않고도 사용자들의 평가 패턴만으로 추천이 가능합니다.
예상치 못한 추천이 가능합니다. 사용자들의 실제 행동 패턴을 기반으로 하기 때문에, 내용상으로는 관련이 없어 보이지만 실제로 함께 선호되는 아이템을 발견할 수 있습니다.
도메인 지식이 필요하지 않습니다. 아이템의 특성을 직접 정의할 필요가 없어, 다양한 분야에 쉽게 적용할 수 있습니다.
단점:
1. 콜드 스타트 문제가 있습니다. 새로운 사용자나 새로운 아이템에 대한 데이터가 충분하지 않을 때 추천이 어렵습니다.
데이터 희소성 문제가 있습니다. 대부분의 사용자는 전체 아이템 중 일부만 평가하기 때문에, 데이터 행렬이 매우 희소해질 수 있습니다.
롱테일 아이템에 대한 추천이 어렵습니다. 인기 있는 아이템에 편향된 추천이 이루어질 수 있습니다.
장점:
1. 새로운 아이템도 즉시 추천할 수 있습니다. 아이템의 특성만 있으면 다른 사용자의 평가 없이도 추천이 가능합니다.
개인화된 추천이 가능합니다. 사용자의 과거 선호도를 바탕으로 비슷한 특성을 가진 아이템을 추천할 수 있습니다.
추천 이유를 설명하기 쉽습니다. "당신이 좋아했던 X와 비슷한 특성을 가진 Y를 추천합니다"와 같이 명확한 설명이 가능합니다.
단점:
1. 도메인 지식이 필요합니다. 아이템의 특성을 정확히 정의하고 추출하는 것이 중요하며, 이는 도메인마다 다른 전문성을 요구합니다.
과적합 위험이 있습니다. 사용자의 과거 선호도에만 기반하다 보니 다양성이 부족할 수 있고, 새로운 취향을 발견하기 어려울 수 있습니다.
특성 추출의 한계가 있습니다. 음악, 이미지, 영상 등 복잡한 콘텐츠의 경우 의미 있는 특성을 추출하기 어려울 수 있습니다.
실제 추천 시스템에서는 이러한 두 방식의 장단점을 보완하기 위해 하이브리드 접근방식을 많이 사용합니다. 예를 들어:
이를 통해 각 방식의 단점을 보완하고 더 나은 추천 결과를 제공할 수 있습니다.