추천시스템이란?
사용자 개인의 취향 파악을 통해 취향에 맞는 상품, 컨텐츠(영상, 음악) 등을 추천해주는 시스템.
ex. Amazon 상품추천, Netflix 영상 추천, Youtube Music 음악 추천 등
(추천시스템의 이점)
1. 사용자 - 개인의 취향/선호를 파악하여 추천해주기 때문에 검색에 들이는 시간을 줄이고 생각하지 못한 선호 제품, 컨텐츠 등을 얻을 수 있다.
2. 서비스 제공자 - 목표로 하는 KPI를 달성 할 수 있다. (매출, Page View, Unique Visitor 등)
도메인에 따라 다른 추천 접근 방식을 가져야한다.
뉴스 - 최신성, 핫이슈 + 개인의 관심영역
영화 - 장르
패션 - 스타일
친구 - SNS
음악, 여행지, 식당 등
어떤 사용자에게 어떤 아이템을 제공할 것인가?
-> 사용자의 선호, 취향, 관심사, 의도-선물용인지?, 상황, 맥락 등을 파악하고 이해 하는것이 중요하다.
어떤 데이터를 활용할 것인가?
User - Age, Location, Job, Gender etc
Item - product_nm, Category, Color, Size etc
검색 vs 추천
검색 - "검색 키워드"를 통해서 사용자의 의도가 드러난 상황에서 적절한 정보 제공
추천 - "검색 키워드" 없이도 사용자에게 적절한 정보나 컨텐츠를 제공
추천 시스템의 분류
어떤 요건에 맞춰 어떤 데이터를 활용하여 어떤 모델을 이용하여 어떤 방식으로 계량할 것인가?
요건에 따른 분류
01. Best Recommendation(인기 추천)
- 인기 지표에 따라 다양한 추천 결과 생성
- 이력이 없는 신규 사용자에게도 추천 가능
- 추천 경과가 없는 경우 보완해주는 역할
연관 추천, 개인화 추천의 score와 best score를 합산하여 최종 score 생성(score간의 Scaling이 중요)
02. Related Recommendation(연관 추천)
- 대체재(상품페이지) : 유사한 item으로 추천
서로 대신할 수 있는 관계의 두 가지 재화 (ex. 콜라 vs 사이다)
- 보완재(장바구니) : 연관되어 있는 item으로 추천
서로 보원 관계에 있는 재화 (ex. 핸드폰 vs 핸드폰 케이스)
03. Personalized Recommendation(개인화 추천)
- 사용자 별 개별화된 세밀한 추천 결과 제공
- 사용자 입장에서 보닝ㄴ에게 큐레이션된 서비스 제공
- 사용자의 이력 데이터가 풍부해야 좋은 추천 결과를 제공 가능하다.
Feedback 데이터에 따른 분류
01. Explicit Feedback
: 사용자의 아이템에 대한 명시적 선호 정보를 가진 이력
ex. Rating 이력 (별점 4점, 좋아요, 만족 등)
(데이터 활용의 한계)
- 사용자가 정보를 잘 남기지 않는 경우가 많기 때문에 데이터 수집의 어려움이 있다.
02. Implicit Feedback
: 사용자의 아이템에 대한 암시적 선호 정보를 가진 이력
ex. 사용자의 아이템 소비 이력(조회, 클릭, 구매 등)
(데이터 활용의 한계)
사용자 행동에 대한 해석이 어렵기 떄문에 선호도를 명확하게 알기 힘들다.
모델에 따른 분류
아이템 속성과 사용자 행동 이력을 통해 유사도/선호도 계산
Best Recommendation
- Popularity가 높은 아이템 추천
Related Recommendation
- 주어진 아이템과 유사도가 높은 아이템 추천
Personalized Recommendation
- 사용자의 선호도가 높은 아이템 추천
- 사용자와 유사한 사용자들이 선호하는 아이템 추천
1. CBF(Content-Based Filterting/Recommendation)
- 아이템의 속성 기반 추천
- 다른 사용자의 행동 이력은 사용하지 않음
장점 : item 속성이 없어도 추천이 가능
단점 : 사용자 정보가 없을 때 추천이 어려움
다양성이 떨어짐
2. CF(Collaborative Filtering)
- 사용자들의 행동 이력 기반 추천
- 아이템의 속성은 사용하지 않음
장점 : item에 분석을 할 필요가 없음
전반적으로 정확도가 높음
단점 : 데이터의 연결성이 떨어지는 경우 많은 계산이 필요하여 확장성 부족
3. HR(Hybrid Recommendation)
- CBF + CF
- 아이템의 속성과 사용자의 행동 이력을 모두 사용
계량 방식에 따른 분류
01. Rating Prediction
사용자가 점수를 부여하지 않은 셀에 예측 점수를 부여하기
02. Top-k Recommendation
선호 점수가 높은 아이템을 추천
추천시스템 성능 평가
1. 이력 데이터 기반 성능 평가
2. 심사위원 평가
3. 온라인 성능 평가 - A/B Test
: 서비스의 KPI(매출, PV, UC, CTR 등) 지표로 평가
Rating Prediction 성능 평가
모델이 예측한 Rating과 사용자의 실제 Rating의 차이를 계산
RMSE - 큰 오차에는 큰 패널티, 작은 오차에는 적은 패널티를 부여
MAE - 오차만큼의 패널티 부여
Top -K 추천 성능 평가
추천한 아이템 중 사용자에 의해 클릭된 아이템의 위치&개수를 이용하여 평가
01. Precision(정확도, 정밀도) & Recall(재현율)
Confusion Matrix
Precision = TP/(TP + FP) - Positive라고 예측한 것들 중 옳바르게 예측한 비중
Recall = TP/(TP + FN) - 실제로 Ture인 것들 중 옳바르게 예측한 비중
02. Precision@K & Recall@K
추천 결과의 개수가 K개일 때의 Precision & Recall
- 평가 데이터가 여러개(n)인 경우 각 평가 데이터에 대한 결과의 평균을 계산
- 개인화 추천의 경우 각 개인에 대한 추천 결과를 평균하여 계산
(한계)
추천된 아이템에서 만족한 아이템이 동일한 개수일 때 추천된 순서에 따라서 값이 달라지지 않기 떄문에 순서를 반영하지 않는다. (추천된 순위도 중요한데 반영을 하지 않음)
03. Average Precision
추천된 아이템의 순서를 반영하여 관련성 있는 아이템이 상위에 추천될 때 더 높은 값을 가짐
04. MAP(Mean Average Precision)
평가 데이터가 여러개(n)인 경우 각 평가 데이터에 대한 결과의 평균을 계산
05. NDCG(Normalized Discounted Cumulative Gain)
AP와 마찬가지로 관련성이 높은 결과를 상위에 추천하는지를 평가하는 지표
- DCG@K는 K값에 따라서 민감하게 변함
- K에 따른 변화를 최소화 하기 위해 최선의 순서일 때의 DCG@K,
즉 I(deal)DCG@K를 구하고 이를 이용하여 정규화한 지표
-> NDCG는 DCG보다 K값에 따른 변화가 적고 0~1 사이의 값을 가지기 때문에 모델의 성능 비교에 용이함.
추천시스템 고려사항
Prediction vs Discovery
01. Prediction : 사용자의 다음에 행위(클릭/구매/시청 등)할 아이템을 예측하여 추천
ex. 매트릭스를 본 사용자에게 매트릭스2, 매트릭스3을 추천
-> 사용자의 negative step을 단축
02. Discovery : 사용자가 인지하지 못하는 아이템을 추천
ex. 매트릭스를 본 사용자에게 인셉션, 블레이드러너를 추천
-> Longtail 아이템을 제공하여 사용자의 서비스 exploration을 높음
추천의 만족도(Beyond Accuracy)
01. Accuracy : 유저의 평점/소비에 맞게 예측하는지
02. Diversity : 다양한 유형의 아이템이 추천되는지
03. Serendipity : 예상치 못한 아이템이 추천되는지
04. Novelty : 그동한 경험하지 못한 새로운 아이템이 추천되는지
05. Coverage : 얼마나 많은 아이템이 사용자에게 추천되는지
※ 추천 결과에 대해 사용자가 신회할 수 있어야하고, 신뢰도를 높이기 위해 설명을 제공
ex. 000님이 좋아하는 장르의 영화
출처 : The RED : 현실 데이터를 활용한 추천시스템 구현 A to Z by 번개장터 CTO 이동주
'Learning > Recommendation System' 카테고리의 다른 글
03-2. Best Recommendation (0) | 2022.06.02 |
---|---|
03-1. E-commerce 상품 추천(트랜잭션 데이터 기반) (0) | 2022.05.16 |
02-3. CF 기반 평점 예측을 이용한 영화 추천 (0) | 2022.05.12 |
02-2. CBF 기반 평점 예측을 이용한 영화 추천 (0) | 2022.05.12 |
02-1. 평점 예측을 이용한 영화 추천_overview (0) | 2022.05.12 |