본문 바로가기
프로젝트(진행중)/머신러닝 한 걸음씩

추천 시스템 정리

by 일말고프로젝트 2022. 2. 21.

1. 추천 시스템 개요

1) 프로세스

 

https://career-hacker.tistory.com/23

 

데이터베이스 내 상품의 평점, 구매, 리뷰 등을 포함한 데이터가 저장되어 있다. 유저가 추천을 요구하면 추천 로직에 의해  데이터들을 사용해 후보 상품을 추출하고 후보 상품의 평점 혹은 선호도를 예측한다. 이후 가장 높은 순위의 상품을 정해진 개수만큼 추천한다. 

 

 추천들은 어떠한 방법의 UX 이용해 사용자들에게 노출된다. 사용자들은  추천들에 대해 액션을 취하고  액션은 피드백으로 시스템에 주어진다.  피드백들은 추후에 사용될 추천들에 영향을 준다.

 

2) 자주 사용하는 용어

비개인적
/정형화된
Best, top-selling 대중적인, 그룹이 모두 좋아하는, 개인의 선호도와는 상관 없는 추천
연관성 Association Rule, Basket Analysis  물건을  사람들은  물건도 많이 산다는 개념
컨텐트 기반 Contents-Based 개인의 선호도를 통해 프로파일링을 하고, 선호도를 기반으로 추천
협업 사용자-사용자, 아이템-아이템 타인(이웃) 선호도를 사용해 추천

 

2. 추천 시스템 종류

1) 콘텐츠 기반 필터링

사용자가 특정 아이템을 선호하는 경우, 그 아이템과 비슷한 속성을 가진 다른 아이템을 추천하는 방식.

 

위 그림에서 User A가 좋아하는 Movie A의 장르가 love, Romantic이라면 이와 유사한 영화 Movie C를 추천해주는 방식이다. 때문에 콘텐츠, 즉 상품의 속성을 분석해야 한다. 이 과정에서 수집한 데이터 이외의 비정형 데이터로부터 관련 있는 정보를 얻는 작업이 필요하다.

 

2) 협업 필터링(Nearest Neighbor Based Collaborative Filtering)

 

최근접 이웃 기반과 잠재요인 협업 필터링이 있다.

 

(1) 최근접 이웃 기반 필터링

 - 사용자-사용자 기반 추천 방식 : 특정 사용자와 비슷한 고객들을 기반으로 이 비슷한 고객들이 선호하는 다른 상품을 특정 사용자에게 추천한는 방법이다. 예를 들어 a와 b가 유사한 고객 그룹으로 묶인다면 b가 선호하는 상품을 a가 좋아할 것으로 예측해 a에게 추천한다.

- 아이템-아이템 기반 추천 방식 : 특정 상품과 유사한 선호를 받은 상품을 비슷한 상품으로 간주해 추천하는 방법이다. 어떤 사용자가 a라는 상품을 선호한다고 할 때, 그 사용자는 a와 유사한 b라는 아이템 역시 선호할 것이라고 예측해 b상품을 추천해주는 방식이다. 사용자 기반 방식보다 정확도가 높은 것이 일반적이다.

 

(2) 잠재요인 기반 필터링

: 사용자-아이템 평점 행렬에 잠재되어 있는 잠재 요인이 있음을 가정하고, 행렬 분해를 통해 그 잠재 요인을 찾아내는 방식이다. SVD나 SGD같은 행렬 분해 방법을 사용한다.

 

3. 추천 모델 선택 시 유의사항

 

https://tech.kakao.com/2021/10/18/collaborative-filtering/

 

카카오 AI추천 : 협업 필터링 모델 선택 시의 기준에 대하여

안녕하세요. 카카오 추천팀의 hee.yoon입니다. 여기에서는 협업 필터링(Collaborative Filtering, CF)이 무엇인지를 먼저 살펴 본 다음, 협업 필터링을 활용해 추천 시스템을 개발할 때 중요하게 고려해야

tech.kakao.com

 

어떤 CF 모델을 선택할 것인가(1): 피드백(Feedback) 데이터

- 유저의 다양한 형태의 피드백에 따라 모델의 선택이 달라짐

- 유저의 선호를 직접 수집하는 Explicit Feedback(명시적 피드백)과 Implicit Feedback(암묵적 피드백)으로 나뉨

- Implicit Feedback의 특성을 고려한 모델 ALS(Alternating Least Squares)

 

어떤 CF 모델을 선택할 것인가(2): 메트릭(Metrics)

- CF 모델을 어떤 기준으로 평가하느냐에 따라 선택이 달라짐

- 광고 추천의 경우 광고를 클릭할 예상 확률이 중요하므로 클릭할 확률을 정확하게 맞추는게 중요하고, topN개의 후보군을 추출하는 경우에는 예측값 자체보다는 상위 추천 결과에 유저가 클릭할 만한 아이템이 얼마나 많이 추천되는지가 중요함

- 예측값과 실제 클릭 여부의 차이를 측정하는 메트릭이 아닌, 클릭 확률로 줄을 세웠을 때, 클릭한 아이템이 클릭하지 않은 아이템보다 상위에 랭크될 확률을 계산한 AUC를 최적화하는 것이 중요한 태스크의 경우에는, Bayesian Personalized Ranking(BPR)6과 같이 AUC를 직접 최적화하는 모델을 사용하는 것이 적합

어떤 CF 모델을 선택할 것인가(3): Bias & Feedback Loop

-추천한 결과를 다시 추천 시스템이 학습하여 계속 강화하는 문제에 따른 모델 bias에 따라 선택이 달라짐

-모델의 bias 정도에 따라 Debiasing 방법을 강구해야함

 

 

댓글