ML/Recommendation

[Recommendation] 추천 시스템 - 콘텐츠 기반 필터링 (Contents-based Filtering)

young_3060 2024. 1. 20. 10:00
728x90

🚦 이번 포스팅에서는 〰️

📌 콘텐츠 기반 필터링 (Contents-based Filtering)이란?
📌 콘텐츠 기반 필터링 방법

 

우리가 영화를 추천받고 싶을 때 어떻게 할까?

  1. 나랑 성향이 비슷한 친구들이 본 영화를 찾아본다.
  2. 내가 좋아하는 감독, 장르, 키워드의 영화를 찾아본다.

 

이게 바로

  1. 협업 필터링 (Collaborative Filtering)
  2. Content Based Filtering

이다!

 

저번 포스팅에서는 협업 필터링에 대해 알아보았다.

이번 포스팅에서는 추천 시스템 알고리즘의 기본 중 두번째 방법인 콘텐츠 기반 필터링 (Content-based Filtering) 에 대해서 알아보자!

 

 

📌 콘텐츠 기반 필터링 (Contents-based Filtering)이란?


사용자에가 특정 아이템을 선호하는 경우 그 아이템과 비슷한 콘텐츠를 가지는 다른 아이템을 추천하는 방식이다.

데이터를 획득 후 콘텐츠 분석에서 비정형 데이터로부터 관련 있는 정보를 얻는 작업이 필요하다.

예를 들어, feature extraction, vector representation 등의 작업을 수행해야 한다.

 

그 후, 사용자의 선호 아이템과 취향을 파악하기 위해 사용자 프로필 파악이 필요하고 cosine 유사도를 이용하여 유사 아이템을 추천한다.

 

  • 장점 : 많은 사용자의 행동 정보를 필요로 하지 않음 ➡️ 콜드 스타트 문제 해결 가능!
  • 단점
    • 메타 정보의 한정성 : 상품의 프로파일을 모두 함축하는데 한계가 있음 ➡️ 정밀성 떨어짐
    • 세부적인 개인의 성향 파악이 어려움
    • 음악, 사진, 영상을 동시에 추천해야한다고 할 때, 각 항목에서 추출할 수 있는 정보가 다 달라서 프로파일을 구성하기 어려워진다.
      ➡️ 다양한 항목을 동시 추천하는 건 어려움

 

📌 콘텐츠 기반 필터링 방법


 

  • Keyword Matching

 : 사용자와 항목을 일치시키는 간단한 방법으로는 키워드를 일치(matching)시키는 것이다.

예를 들어, 구직사이트에서 직업추천을 하는 경우 구직자의 이력서와 직업 설명 키워드를 매칭시키는 것

 

TF-IDF(Term Frequency-Inverse Document Frequency)가 항목이나 사용자에 대해 고유한 키워드 가중치 부여하는데 주로 사용된다.

 

 

  • Supervised Model Building

 : 보다 체계적인 방법으로, 사용자가 좋아할만한 경향이 있는 아이템을 추정하는 지도학습 모델을 구축하는 방법이다.

모델 학습 feature은 다음과 같다.

 

  • 사용자와 항목의 속성 (표시변수)
    ex : 구직자와 직업이 같은 산업에 있는지
  • 사용자가 항목을 좋아하는지 여부 (응답변수)
    ex : 구직자가 해당 직업에 지원(또는 관심)이 있는지

 

 

콘텐츠 기반 필터링은 계산적으로 빠르고 해석하기가 용이하다.

따라서, 새 항목이나 새로운 사용자에게 쉽게 적용이 가능하다.

 

하지만 항목 및 사용자의 일부 특성이 명확하게 포착되지 않거나 설명하기 쉽지 않을 수도 있다.

 

(✅ Stitch Fix가 이를 해결함

➡️ 머신러닝이 정형 데이터를, 사람이 비정형 데이터를 처리하도록 하여서 일부 특성을 알기 어려운 문제 해결)

 

 

다음 포스팅은 간단한 추천 시스템 실습으로 돌아오겠다!!

 

 

[참고]

https://velog.io/@qtly_u/Recommendation-System-in-Practice

 

 

 

728x90