[Recommender System] Content-based filtering

BBaeng·2024년 3월 22일
0

Recommendation System

목록 보기
3/4

Content-based filtering

아이템의 내용을 나타내는 정보를 사용해 추천하는 알고리즘으로 사용자가 선호하는 정보를 기반으로 내용이 비슷한 아이템을 계산함으로써 추천합니다.

예를 들어, A가 교보문고에서 백엔드 관련 도서 중 Spring에 대한 책을 주로 클릭하였다면 (여기서 클릭을 선호한다는 개념을 잡고 개발했다고 가정합니다) 추천 책의 리스트로 Spring과 관련된 도서들을 추천합니다.

이를 Content-based filtering(내용 기반 필터링)이라고 합니다.

여기서 사용하는 데어터는 다음과 같습니다.

  • 사용자 프로필
  • 아이템 특징과의 유사도

사용자 프로필

해당 데이터는 사용자들이 좋아하는 아이템의 특징을 나열한 리스트의 형태로 표현 가능합니다.

예를 들어 사용자가 선호하는 개발 직군 및 기술이 프로필에 포함됩니다.

  • User 1
    • 직군 : 백엔드 개발자
    • 기술 : Spring, Java
  • User 2
    • 직군 : 프론트엔드 개발자
    • 기술 : react, typescript

아이템의 경우는 다음과 같을 수 있습니다.

  • Item 1
    • 이름 : 스프링 부트3 백엔드 개발자 되기
    • 기술 : Spring Boot, Spring, Java
    • 대상 : 백엔드 개발자
  • Item 2
    • 이름 : Flutter 생존 코딩
    • 기술 : Flutter, Dart
    • 대상 : 프론트엔드 개발자

위와 같이 정리되어 있는 아이템을 사용자에게 추천한다고 하는 경우 사용자 1의 프로필에 주목하여 추천하는 정보는 Item1, 사용자 2에게 추천되는 도서는 Item2이다.

여기서 User2와 Item2는 완벽하게 일치하지 않지만 유사도가 높기에 충분히 추천될 수 있습니다.

아이템 특징 획득

Content-based filtering에서 사용할 아이템의 특징을 획득하는 방법은 다음과 같습니다.

    • 제목
    • 장르
    • 문자 수
    • 작가
    • 출판 일
  • 음악
    • 작곡자, 작곡 연도
    • 음성분석을 통해 음 높이, 음색, 음량 등이 수치화된 데이터
  • 이미지
    • 색채 정보
    • 피사체 형태

위와 같이 상품, 아이템에 따라 멀티미디어 처리등의 추가적인 방식을 통해 아이템의 특징을 데이터화시킬 수도 있습니다.

사용자 프로필 획득

Content-based filtering에서 사용할 사용자 프로필을 획득하는 방법은 다음과 같습니다.

1. 간접 지향형

  • 과거 행동 이력에 기반해 사용자 프로필을 작성합니다.
  • 예를 들어 사용자가 백엔드 개발 관련 도서를 많이 구매하였다면 해당 아이템의 특징(백엔드)을 해당 사용자가 선호하는 것으로 판단하여 프로필을 구성합니다.
    • 해당 내용은 사용자가 그 순간의 선호하는 부분이 바뀔 수 있기에 유저의 니즈를 정확히 맞추지 못합니다. 예를 들어 사용자가 AI에 관심을 가지게 된 경우에는 이를 반영하지 못합니다.

2. 직접 지정형

  • 유저가 선호하는 아이템을 명시적으로 지정하여 이를 이용합니다.
  • 예를 들어 사용자가 AI에 관심을 가지고 해당 부분을 선호하는 분야로 잡는다면 해당 관련 도서가 추천됩니다.
  • 이런 명시적인 선호도 지정은 서비스 가입 직후 온보딩 또는 마이 페이지 등에서 수행됩니다.

0개의 댓글