-
하이브리드추천시스템과 Context-Aware카테고리 없음 2022. 5. 17. 11:47
Contents-based Recommender System
Collaborative Filtering
- Neighborhood-based Collaborative Filtering (User-based/Item-based)
- Model-based Collaborative Filtering
Contents-based vs. Collaborative Filtering
What is Hybrid
- 다양한 데이터와 다양한 알고리즘을 조합하는 방식 -> 유저와 아이템 프로필, 유저와 아이템의 상호관계, 유저 주변의 다른 유저 정보, 아이템과 비슷한 다른 아이템 정보
- 가용할 수 있는 최대 정보 또는 지식을 다양한 source로부터 얻어서 활용하는 방식
- 다양한 추천알고리즘의 장점만 모아서 성능 좋고, 뛰어난 시스템을 만드는 방식 -> Robust한 inference를 할 수 있다
What is Hybrid Recommender System
Simple Hybrid Method
- Weighted Ensemble
- 여러 모델의 추천 결과를 하나로 ensemble 하는 기법
Other Hybrid Methods
- Weighted Ensemble
-Soft Ensemble(점수) 또는 Hard Vote와 같은 방법으로 여러 모델의 추천결과를 하나로 합쳐서 최종 추천 아이템을 정하는 방식
- Mixed
-추천시스템이 적용될 플렛폼에 여러 다른 추천알고리즘을 활용하고, 이때 알고리즘의 추천 결과를 모두 보여주는 방식
- Switch
-플랫폼내 사용자 또는 서비스 상태 등 특정 상황을 고려하여 여러 추천 알고리즘의 추천 결과를 선택적으로 보여주는 방식
- Feature Combination
-보유하고 있는 데이터로부터 얻을 수 있는 다양한 feature를 모두 조합하여 추천 알고리즘을 학습하고 추천하는 방식
- Meta-Level
-여러 추천 알고리즘을 활용할 때 첫번째 모델이 다음 모델의 input이 되면서 서로가 서로의 정보를 학습하여 추천하는 방식
Evaluation for Hybrid Methods
1. Service Perspective
- Business KPI
- Online/Offline evaluation
2. Model Performance Perspective
- Accuracy, Coverage, Popularity
- Diversity, Serendipity(Novelty), Scalability
- Personalization
- Rating Prediction: RMSE, NDCG
Context-Aware 추천시스템이란
현재까지의 추천시스템
- 유저와 아이템이 제공한 explicit 데이터를 활용한다
- 위의 데이터가 부족하여, 유저가 흘리고간 힌트(implicit)를 찾으려고 애쓴다
- 확보하거나 주어진 데이터로 유저와 아이템 행렬을 만든다
- 유저와 아이템 간의 관계, 유저와 아이템 특징을 활용한다
- 평점 또는 랭킹을 추천한다
- -->아이템, 유저 등 직접적으로 관련된 정보이외 다른걸 활용할 순 없을까?
Context, Context-Aware Recommender System
1. Context=맥락
- 맥락을 이해한다=유저의 상황을 이해한다
- 유저와 아이템과 관련있지만, 상호관계를 설명하지는 않는다
- 개체(유저 또는 아이템)의 상황을 설명하는 특징적인 정보를 뜻한다
2. Context-Aware Recommender System=맥락기반 추천시스템
- 맥락기반 추천시스템=맥락(유저의 상황)을 이해한 추천시스템
- 유저와 아이템의 단순 상호관계 파악뿐만 아니라 상황 정보도 포함한 포괄적인 추천시스템
3. Contents와 Context의 차이를 이해하고 추천시스템 구축한다
Context-Aware Recommender System 예시
1. 뉴스 추천
- 기존 방법: 유저의 성향과 뉴스 컨텐츠의 유사도 등을 판단하여 추천한다
- 맥락기반 방법: 유저가 월요일(시간)에 뉴스를 읽는다면, 한주의 날씨 등 한주를 시작할 때 관심갖을 내용을 추천한다
3. 장소 추천
- 기존 방법: 유저가 좋아하는 취향과 과거 선택했던 아이템 기반으로 추천하다
- 맥락 기반 방법: 오후, 저녁 등 가고자하는 시간정보를 바탕으로 추천한다
Context-Aware Recommender System
Model Structure
- 기존 방법
- Context-Aware Recommender System
Context-Aware Recommender System 정리
- 다양한 상황의 많은 context 정보 활용 가능하다(주로 시간, 장소 정보, 다양한 메타정보, 대표 키워드, 태그 등)
- Context 정보를 얻는 방법도 다양하다(Explicit하게 또는 Implicit하게 얻을 수 있다-접속한 기기, 평점을 준 이벤트 정보, 날씨 정보 등)
- 적절한 context 정보로 초기 filtering을 할 수 있다
- Context 정보를 활용하여 A/B test 등 다양한 실험을 할 수 있다
- Context-Aware 추천시스템은 도메인 지식을 더욱 잘 활용할 수 있는 방법이다
Contextual Information in Recommender System
- Spotify Music Recommender System
Contextual Information 적용하기
1. Contextual Pre-filtering
- Context 정보를 활용하여 처음 데이터를 filtering하는 기법
- Context 정보를 기준으로 user 또는 item을 나누는 방법이다
2. Contextual Post-filtering
- User, item, contextual information 등 다양한 features로 모델링을 먼저 진행한다
- 모델의 추천결과에 context 정보를 활용하여 filtering하는 기법이다
3. Contextual Modeling
- Context 정보 자체를 모델링에 활용하는 기법이다
- Complex한 방법으로 머신러닝 등 모델을 활용할 수 있다
Contextual Pre-filtering
- Main method
1. Context 정보를 활용하여 가장 관련있는 2D(Users X Item) 데이터를 만든다
2. 그 후, 많이 알려진 다양한 추천 알고리즘을 사용한다
- Context는 query의 역할로써 가장 관련있는 데이터를 선택하는 역할을 한다
- Context generalization
-Specific한 context 데이터가 충분하지 않기 때문에 sparsity 문제가 발생할 수 있다
-Context를 활용한 User-Item Splitting할 때, generalized할 필요가 있다
- 적절한 Filtering을 위해 computation이 많이 필요할 수 있다
Contextual Post-filtering
- Main method
1. Context 정보를 무시하고, User와 Item 정보로 2D 추천시스템 모델을 먼저 학습한다
2. 추천 결과를 context 정보를 활용하여 filter 또는 adjust한다
- 유저의 Specific 취향 또는 패턴을 context를 통해 찾을 수 있다
- Heuristic approach - 주어진 context로 특정 user가 관심있는 공통 item의 특징을 활용한다
- Model-based approach - 주어진 context로 user가 item을 선호할 확률을 예측하는 모델을 만든다
- Context generalization을 적용할 수 있으며, 대부분의 잘 알려진 추천알고리즘을 적용할 수 있다
Contextual Modeling
- Main method
1. 모든 정보(user, item, context)를 전부 활용하여 모델링한다
2. Predictive model 또는 heuristic approach를 사용한다
- 기존 2D에서 N-Dimension 형태로 확장하여 모델링한다
- Examples of Contextual modeling - Context-aware SVM, Tensor Factorization, Pairwise Interaction Tensor Factorization, Factorization Machine