추천시스템 (Recommender System):
사용자가 관심을 가질만한 콘텐츠 (상품, 영화, 이미지, 뉴스 등)을 추천하는 기계학습의 한 방법으로 사용자의 선호도 및 과거 행동을 토대로 사용자의 관심과 흥미를 가질만한 콘텐츠를 제공하는 것
ex) 사용자의 과거 행동 데이터(구매지표, 평점, 좋아요수) 등
메타데이터: 상품 정보, 사용자 그룹 등
추천시스템 활용도: 상품 추천, 컨텐츠 추천, 뉴스 추천, 개인 맞춤형 광고, 앱 추천
case 1. 상품 추천하는 경우)
– 상품: 도서, 음악, 전자제품, 식료품 등
–사용자 행동: 명시적 (별점, 리뷰), 암묵적 (구매, 검색)
–추천 기준: 베스트셀러, 관심그룹별 추천, 비슷한 상품
추천시스템 모델:
1. 예측 모델: 사용자-아이템 조합 행렬 구성
부분 데이터로부터 평가값 예측하여 행렬 완성.
2. 랭킹 모델: 사용자 별 상위 k개의 아이템 추천(top-k recommend)
아이템 별 관심 가질 상위 k명의 사용자 선별.
1) 협업 필터링(Collaborative Filtering)
- 사용자 행동 데이터로 아이템 추천.
- 유사 사용자 그룹에서 공통 관심 아이템을 추천.
- 대규모 데이터 필요(데이터 적은 경우, 신규 아이템/사용자에는 어려움)
- 새로운 아이템 추천 가능.
• Memory Based Approach(메모리 기반 방식)
- User-based Filtering : target user와 유사한 user들의 아이템 선호 기반 추천
- Item-based Filtering: target item과 유사한 item들에 대한 사용자 추천
• Model Based Approach
- 사용자-아이템 평점 표현한 수학적 모델로부터 데이터 학습.
- 행렬 분해(Matrix Factorization): MF, SVD, NMF 등
2) 콘텐츠 필터링(Contents-Based Filtering)
- 아이템 메타 데이터 활용.
- 비슷한 아이템 추천.
- 신규 아이템에 대한 추천 가능.
- 추천하려는 사용자에 대한 정보 활용. (신규 사용자에게 추천하는 기능이 아님)
3) 지식 기반 추천(Knowledge Based Recommendation)
- 특정 도메인에 대한 지식구조 구축 후 추천.
- 아이템별 스펙이 상이, 평점 전무한 아이템 추천에 적합 (ex. 명품, 자동차, 부동산)
4) 하이브리드/앙상블 추천(Hybrid/Ensemble Recommendation)
- 서로 다른 추천 방식을 복합적으로 사용. 각 방식의 단점을 보완하여 성능 향상.
ex) 새로운 상품 추천 - 콘텐츠 필터링 사용,, 사용자 리뷰 축적 후 협업 필터링 사용,,
(+) 데이터에 사용자 데이터나 사용자-아이템 상호작용 데이터가 부족하거나, 헤비 유저들에게 상호작용 데이터가 편향되어있는 경우
'Cold Start Problem'이 필연적으로 발생하므로 Hybrid 모델은 꼭 사용해야한다고 볼 수 있다.
Cold Start 문제를 해결할 방식으로 Inference 진행하고 결과들을 이어붙이기.. Target 그룹마다 다른 방식 채택하고 이를 Ensemble하는 방식으로 구현할 수 있다.
* "Cold Start Problem": 데이터가 적어 추천시스템의 성능이 점점 떨어지는 현상.
5) 딥러닝 추천(Deep Learning Recommendation)
- 컨텐츠 기반 추천에서 비정형 아이템 사이의 유사도 측정
--> 비선형적 관계 표현이 가능하다. 행렬분해 쓰는 MF는 선형적 관계 위주
<추천 시스템 EDA분석시 기준 잡기>
어떤 아이템인지? - 평일/휴일에 따라 다르게 추천, 지역-계절 따라 다르게 추천
트렌드에 민감한지? - 최신 트렌드 반영, 시간에 따라 선호가 달라지는 아이템인가?
위치 정보 활용? - 아이템의 지역성 고려, 위치 추적으로 사용자 정보 활용
SNS 활용? - 사용자의 친구들이 관심 갖는 아이템 추천, 사회적 영향력 고려.