협업 필터링 vs 내용기반 추천 시스템

HanJu Han·2024년 12월 8일
0

추천 시스템

목록 보기
28/49

협업 필터링과 내용기반 추천 시스템의 구조

1. 협업 필터링(Collaborative Filtering)의 구조

A. 사용자 기반 협업 필터링(User-based CF)

  • 핵심 구조:
    1. 사용자-아이템 평가 행렬 생성
    2. 사용자 간 유사도 계산 (코사인 유사도, 피어슨 상관계수 등 사용)
    3. 가장 유사한 이웃 사용자 그룹 선정
    4. 이웃 사용자들의 평가를 기반으로 예측 점수 계산

B. 아이템 기반 협업 필터링(Item-based CF)

  • 핵심 구조:
    1. 아이템-사용자 평가 행렬 생성
    2. 아이템 간 유사도 계산
    3. 사용자가 평가한 아이템과 가장 유사한 아이템들 선정
    4. 유사 아이템들의 평가를 기반으로 예측 점수 계산

C. 행렬 분해 기반 협업 필터링(Matrix Factorization)

  • 핵심 구조:
    1. 사용자-아이템 평가 행렬을 저차원의 잠재 요인(latent factor) 행렬로 분해
    2. 사용자 잠재 요인 행렬(P)과 아이템 잠재 요인 행렬(Q) 생성
    3. 두 행렬의 내적으로 평가 예측
    4. 경사 하강법 등을 통한 최적화

2. 내용기반 추천(Content-based Filtering)의 구조

A. 특성 추출 단계

  • 구조적 데이터 처리:
    1. 카테고리형 데이터 → One-hot 인코딩
    2. 수치형 데이터 → 정규화/표준화
    3. 텍스트 데이터 → TF-IDF, Word2Vec 등 적용
    4. 이미지/오디오 → CNN, 사전학습 모델 등을 통한 특성 추출

B. 프로필 생성 단계
1. 아이템 프로필

  • 추출된 특성들을 벡터화
  • 각 특성의 중요도 가중치 계산
  • 최종 아이템 프로필 벡터 생성
  1. 사용자 프로필
    • 사용자가 평가한 아이템들의 특성 벡터 결합
    • 평가 점수를 가중치로 활용
    • 시간 가중치 등 추가 고려 가능

C. 추천 생성 단계
1. 유사도 계산

  • 사용자 프로필과 아이템 프로필 간 유사도 측정
  • 코사인 유사도 등의 메트릭 사용
  1. 랭킹 및 필터링
    • 유사도 점수 기반 랭킹
    • 다양성 확보를 위한 재랭킹
    • 비즈니스 규칙 적용

3. 하이브리드 추천 시스템의 구조

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. 최종 추천 리스트 생성

실제 구현 시 고려사항:

  • 데이터 전처리 파이프라인 구축
  • 특성 추출 및 변환 과정의 효율화
  • 실시간 업데이트 메커니즘
  • 캐싱 전략
  • A/B 테스트를 통한 성능 평가
  • 확장성을 고려한 아키텍처 설계

이러한 구조들은 실제 서비스에서는 비즈니스 요구사항과 데이터 특성에 따라 다양하게 변형되어 사용됩니다.


장단점

1.협업 필터링(Collaborative Filtering)

장점:
1. 내용을 직접 분석할 필요가 없습니다. 예를 들어 영화 추천의 경우, 영화의 내용이나 특성을 분석하지 않고도 사용자들의 평가 패턴만으로 추천이 가능합니다.

  1. 예상치 못한 추천이 가능합니다. 사용자들의 실제 행동 패턴을 기반으로 하기 때문에, 내용상으로는 관련이 없어 보이지만 실제로 함께 선호되는 아이템을 발견할 수 있습니다.

  2. 도메인 지식이 필요하지 않습니다. 아이템의 특성을 직접 정의할 필요가 없어, 다양한 분야에 쉽게 적용할 수 있습니다.

단점:
1. 콜드 스타트 문제가 있습니다. 새로운 사용자나 새로운 아이템에 대한 데이터가 충분하지 않을 때 추천이 어렵습니다.

  1. 데이터 희소성 문제가 있습니다. 대부분의 사용자는 전체 아이템 중 일부만 평가하기 때문에, 데이터 행렬이 매우 희소해질 수 있습니다.

  2. 롱테일 아이템에 대한 추천이 어렵습니다. 인기 있는 아이템에 편향된 추천이 이루어질 수 있습니다.

2.내용기반 추천(Content-based Filtering)

장점:
1. 새로운 아이템도 즉시 추천할 수 있습니다. 아이템의 특성만 있으면 다른 사용자의 평가 없이도 추천이 가능합니다.

  1. 개인화된 추천이 가능합니다. 사용자의 과거 선호도를 바탕으로 비슷한 특성을 가진 아이템을 추천할 수 있습니다.

  2. 추천 이유를 설명하기 쉽습니다. "당신이 좋아했던 X와 비슷한 특성을 가진 Y를 추천합니다"와 같이 명확한 설명이 가능합니다.

단점:
1. 도메인 지식이 필요합니다. 아이템의 특성을 정확히 정의하고 추출하는 것이 중요하며, 이는 도메인마다 다른 전문성을 요구합니다.

  1. 과적합 위험이 있습니다. 사용자의 과거 선호도에만 기반하다 보니 다양성이 부족할 수 있고, 새로운 취향을 발견하기 어려울 수 있습니다.

  2. 특성 추출의 한계가 있습니다. 음악, 이미지, 영상 등 복잡한 콘텐츠의 경우 의미 있는 특성을 추출하기 어려울 수 있습니다.

실제 추천 시스템에서는 이러한 두 방식의 장단점을 보완하기 위해 하이브리드 접근방식을 많이 사용합니다. 예를 들어:

  • 초기에는 내용기반으로 추천을 시작하고, 데이터가 쌓이면 협업 필터링을 더 많이 활용
  • 두 방식의 결과를 적절히 가중치를 주어 결합
  • 상황에 따라 두 방식을 선택적으로 사용

이를 통해 각 방식의 단점을 보완하고 더 나은 추천 결과를 제공할 수 있습니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글