본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online
Ch 04. Contents-based Recommender System
컨텐츠 기반 추천시스템(1)
- 컨텐츠가 비슷한 아이템을 추천
- 사용자가 과거에 경험했던 아이템 중 가장 비슷한 아이템을 현재 시점에 추천
- Information Retrieval(정보 pull ➡️ 키워드를 통해 정보 파악)과 Machine Learning(feature 추출 및 학습)의 중간 지점
- 정보(아이템)을 찾는 과정과 과거 정보를 활용해서 유저의 성향 배우는 문제
Main Idea
유저 A가 높은 평점을 주거나 큰 관심을 갖은 아이템 x와 유사한 아이템 y를 추천
예시
- 웹사이트, 블로그, 뉴스: 비슷한 컨텐츠의 게시글(item)을 찾아서 추천
- 영화: 같은 배우, 같은 장르, 같은 영화 감독 등 비슷한 특징을 갖는 영화(item)을 찾아서 추천
컨텐츠 기반 추천시스템(2)
- 유저가 과거에 접한 아이템이면서 만족한 아이템
- 유저가 좋아했던 아이템 중 일부 또는 전체와 비슷한 아이템 선정
- 선정된 아이템을 유저에게 추천
장점
- 다른 유저의 데이터 필요 X
- 추천할 수 있는 아이템 범위 넓음
- Unique, New, Unpopular 아이템 모두 가능
- 추천하는 이유 제시 가능
- 아이템의 features로 컨텐츠 분석 가능
- 특정 feature가 추천의 이유가 됐다고 설명 가능
단점
- 적절한 features 찾기 어려움
- 새로운 유저를 위한 추천 어려움
- User Profile이 존재하지 않거나 데이터 매우 부족
- 선호하는 특성을 가진 항목을 반복 추천
- Overspecialization
- 유저의 다양한 취향 반영 어려움
- 유저 프로필의 추천 불가
컨텐츠 기반 추천시스템 Architecture
1. 정보(유저,아이템) 제공 ➡️ 컨텐츠 분석(Contents Analyzer)
텍스트와 같은 비정형 데이터로부터 관련 있는 정보 얻는 작업 - feature extraction, vector representation
2. 유저 프로필 파악(Profile Learner)
- 유저가 선호하는 아이템, 취향 파악
- 머신러닝 등 알고리즘을 통해 유저 데이터 일반화
3. 유사 아이템 선택(Filtering Component)
- 아이템 중 가장 적절하게 match하는 아이템 선택
- 관련있는 아이템으로 최종 추천 리스트 만들기
4. 추천 리스트 생성
<음악 사이트(Pandora) 예시>
- 신곡 출시되면 음악을 분석하여 장르, 비트, 음색 등 400여 항목 체크 ➡️ features extraction
- 유저로부터 'like'를 받은 음악의 특색과 해당 유저의 프로파일 준비 ➡️ profile learner
- 음악의 특징과 사용자 프로필을 바탕으로 선호하는 음악 추천 ➡️ filtering component
컨텐츠 기반 추천시스템에서 가장 중요한 것!
- 컨텐츠의 내용을 분석하는 아이템 분석 알고리즘
- Clutering, Machine Learning, TF-IDF 등 활용
- 추천시스템 성능을 높일 수 있는 적절한 컨텐츠를 사용하는 것
- 영화 추천을 위해 영화 정보를 활용하고, 뉴스 추천을 위해 뉴스 내용을 활용하는 것