[추천시스템] Contents Based Filtering: 아이템 특성 기반 추천

하는·2024년 4월 22일
0

추천시스템

목록 보기
4/4

Contents Based Filtering 이란?

Contents Based Filtering (CBF)아이템의 특성을 분석하여 사용자에게 유사한 아이템을 추천하는 기술이다. CBF는 사용자가 과거에 선호했던 아이템의 특성과 유사한 특성을 가진 새로운 아이템을 찾아 추천한다.

Contents Based Filtering의 원리

CBF의 기본 아이디어:

  1. 아이템의 특성 (메타데이터, 키워드, 설명 등)을 추출
  2. 사용자가 과거에 선호했던 아이템의 특성을 분석하여 사용자 프로필 생성
  3. 사용자 프로필과 아이템 특성의 유사도를 계산
  4. 유사도가 높은 아이템을 사용자에게 추천

예를 들어, 영화 추천 시스템에서:

  • 각 영화의 장르, 감독, 배우, 줄거리 등의 특성을 추출
  • 사용자가 과거에 높은 평점을 준 영화의 특성을 분석하여 사용자 프로필 생성
  • 사용자 프로필과 유사한 특성을 가진 영화를 추천

Contents Based Filtering의 원리

CBF는 아이템의 특성과 사용자의 선호도를 바탕으로 추천을 수행한다. 이를 위해 아이템의 특성을 추출하고, 사용자 프로필을 생성하는 과정이 필요하다.

아이템 특성 추출

  • 아이템의 특성은 메타데이터, 키워드, 설명 등 다양한 형태로 존재
  • 텍스트 데이터의 경우, TF-IDFWord2Vec 등의 기법을 활용하여 아이템 벡터를 생성
    • TF-IDF: 단어의 빈도와 문서 내 중요도를 고려하여 가중치 부여
    • Word2Vec: 단어를 벡터 공간에 임베딩하여 단어 간 유사도 계산 가능
  • 멀티미디어 데이터의 경우, CNN, RNN 등의 딥러닝 모델을 활용하여 특성 추출

사용자 프로필 생성

  • 사용자가 과거에 선호했던 아이템의 특성을 종합하여 사용자 프로필 생성
  • 가장 간단한 방법은 선호 아이템 벡터의 평균을 사용하는 것
    \ text{user_profile} = \frac{1}{n} \sum_{i=1}^{n} \text{item_vector}_i
  • 사용자의 피드백 (평점, 클릭, 구매 등)을 반영하여 프로필을 업데이트하는 방법도 활용
    • \ text{user_profile} = \alpha \cdot \text{user_profile} + (1-\alpha) \cdot \text{feedback_item_vector}
    • α\alpha는 업데이트 비율을 조절하는 하이퍼파라미터

유사도 계산 및 추천

  • 사용자 프로필과 아이템 벡터 간의 유사도를 계산하여 추천 아이템 선정
  • 대표적인 유사도 척도로는 코사인 유사도자카드 유사도 등이 있음
    • 코사인 유사도: 벡터 간 각도의 코사인 값으로 유사도 측정
      •  textcosinesimilarity(A,B)=ABAB\ text{cosine_similarity}(A, B) = \frac{A \cdot B}{\|A\| \|B\|}
    • 자카드 유사도: 두 집합의 교집합 크기를 합집합 크기로 나눈 값
      •  textjaccardsimilarity(A,B)=ABAB\ text{jaccard_similarity}(A, B) = \frac{|A \cap B|}{|A \cup B|}
  • 유사도가 높은 아이템을 추천 리스트에 포함
  • 추천의 다양성, 새로운 아이템 추천 등을 고려하여 최종 추천 리스트 생성

CBF의 원리는 아이템의 특성을 추출하고, 사용자의 선호를 반영한 프로필을 생성하여, 이를 바탕으로 유사한 아이템을 추천하는 것이다. 각 단계에서 다양한 기법과 알고리즘이 활용되며, 도메인에 따라 적절한 방법을 선택하는 것이 중요하다.

Contents Based Filtering의 장단점

장점단점
아이템의 내용을 직접 분석하여 추천아이템의 특성 추출 및 분석이 필요
Cold-start 문제에 강함 (새로운 아이템도 특성 기반으로 추천 가능)사용자의 선호 변화를 반영하기 어려움
추천 결과에 대한 설명이 용이다양성이 부족할 수 있음 (유사한 아이템만 추천)

Contents Based Filtering의 구현

CBF를 구현하기 위해서는 다음과 같은 단계가 필요하다:

  1. 아이템 특성 추출

    • 텍스트 데이터: TF-IDF, Word2Vec 등을 활용
    • 멀티미디어 데이터: CNN, RNN 등의 딥러닝 모델 활용
  2. 사용자 프로필 생성

    • 사용자가 선호한 아이템의 특성을 종합하여 사용자 벡터 생성
    • 가중 평균, 피드백 기반 업데이트 등의 방법 활용
  3. 유사도 계산

    • 사용자 벡터와 아이템 벡터 간의 유사도 계산
    • 코사인 유사도, 자카드 유사도 등의 방법 활용
  4. 추천 아이템 선정

    • 유사도가 높은 아이템을 사용자에게 추천
    • 다양성, 새로운 아이템 추천 등을 고려하여 최종 추천 리스트 생성
profile
천천히 꾸준히 취미처럼 냐미😋

0개의 댓글