-
Recommend AlgorithmAI 2020. 12. 23. 21:08
Contents Based Filtering
- 사용자 혹은 아이템에 대한 프로필 데이터를 통해 사용자가 좋아했던 아이템과 비슷한 유형의 아이템을 추천
- 사용자와 비슷한 유형의 다른 사용자가 좋아하는 아이템을 추천
- User-based Recommendation
- 사용자의 프로필을 기반으로 한 추천
- ex) 영화 추천 : 사용자 프로필 { 성별, 연령대, 지역 } --> 사용자와 비슷한 프로필의 다른 사용자가 선호하는 영화 탐색 --> 추천
- Item-based Recommendation
- 추천 아이템의 프로필을 기반으로한 추천
- ex) 영화 추천 : 영화 프로필 { 장르, 배우, 흥행 여부 } --> 프로필에 해당하는 영화를 좋아했던 사용자 탐색 --> 사용자에게 추천
- 대용량의 데이터에 대한 프로필을 작성하는데 어려움이 있다.
- 영화 프로필의 경우 개개인의 차이가 있을 수 있다. --> 추천의 객관성 떨어짐
Colaborative Filtering
- 사용자의 과거 행동을 기반으로 비슷한 유형의 다른 사용자가 선호하는 아이템을 추천
- ex) 영화 추천 : 사용자가 자신이 본 영화에 평점을 남김 --> 취향 파악 --> 비슷한 유형의 사용자가 높은 평점을 준 영화 추천
- 도메인에 제약없이 데이터를 축적할 수 있으며 일반적으로 Contents Based Filtering 보다 추천 성능이 뛰어나다고 알려져 있다.
- 사용자의 과거 행동이 충분히 쌓이지 않아 해당 사용자의 취향을 파악하기 전에는 추천의 성능이 매우 떨어짐 = Cold Start 문제
- 데이터
- 평점 데이터는 성격에 따라 Explicit Dataset과 Implicit Dataset으로 구분된다.
- Explicit Dataset
- 호와 불호를 명확하게 구분해준 데이터셋
- ex) 별이 1개부터 5개로 평점을 매기는 별점 시스템
- 사용자가 평점을 매기지 않은 데이터들을 제외한 나머지 데이터만으로 사용자의 선호도 학습
- Implicit Datset
- 호불호 구분 없이 사용자가 아이템을 얼마나 소비하였는지를 기록한 데이터셋
- ex) 쇼핑몰의 클릭 로그, 검색 기록 등
- 호불호를 알 수 없기 때문에 사용자가 평점을 매기지 않은 데이터 또한 포함하여 선호도를 학습
- 모델
- Neighborhood model
- 주어진 평점을 기반으로 서로 비슷한 유저 혹은 아이템을 찾는다.
- 유사도는 주로 Pearson 상관계수를 통해 구한다.
- 평점 데이터를 기반으로 상관계수 계산 --> 피어슨 상관계수가 1에 가까울수록 서로 유사한 아이템에 높은 선호도를 매긴다고 볼 수 있다. --> 이를 통해 유사한 사용자가 좋아한 아이템을 추천하는 것을 User-Oriented Neighborhood model이라 한다.
- 가장 유사도가 높은 K개의 아이템을 묶는 것이 가능하다. --> 특정 사용자가 아직 평점을 남기지 않은 아이템을 추천해야 할 경우 --> K개의 가까운 이웃들에게 사용자가 남긴 평점을 가지고 해당 아이템에 내릴 평점 예측 --> Item-Oriented Neighborhood model
- Explicit Dataset에 적합하다.
- Neighborhood model
피어슨 상관계수 Item-Oriented Neighborhood -
- Latent Factor Model
- 관찰된 데이터와 잠재되어 있는 데이터를 연결시키는 기법
- ex) 주어진 평점 데이터를 기반으로 사용자와 아이템의 특성을 찾아내는 것
- 사용자의 평점을 나타내는 커다란 행렬 제공 --> 사용자와 아이템의 Latent Factor를 알아내고자 한다. --> 이를 각각 학습시키는 Matrix Factorization 기법을 사용한다.
- Latent Factor Model
Hybrid Filtering
- Contents Based Filtering과 Colaborative Filtering 모두 한계점이 존재한다.
- Hybrid Filtering = Contents Based Filtering + Colaborative Filtering
- Combining Filtering : 두 알고리즘 모두 적용 --> Weighted Average 계산 --> 추천
- Collaboration via Content : 평점 데이터와 아이템 프로필을 조합하여 사용자 프로필 생성 --> 추천
Reference
'AI' 카테고리의 다른 글
Word Embedding (0) 2020.12.29 Data Sampling (0) 2020.12.28 Neural Network architectures (0) 2020.11.05 Attention is all you need (0) 2020.06.16 Feature Support Maxtrix (0) 2020.05.29