728x90

Introduction

추천 시스템은 사용자와 아이템(상품, 컨텐츠 등) 간 데이터의 활용, 사용자의 취향을 고려한 아이템(컨텐츠) 추천하는 시스템을 통칭한다. 

Recommendation Problem 

- Prediction vision of Problem ( or Matrix Completion Problem) : 학습 데이터를 통해서 유저의 선호도를 정확하게 예측하는 것이 목적인 문제.

- Ranking vision of Problem : 선호도 기준 상위 N개의 아이템을 선택하는 문제.

 

Goal of Recommender Systems 

- Relevance : 적절한 아이템을 유저에게 추천하는가?

- Novelty : 진부한 아이템(예: Sales Top 100)이 아닌 유저가 탐색하지 못한 색다른 아이템을 추천하는가? 

- Serendifity : 유저가 경험해보지 못한 완전 새로운 아이템을 추천하는가?

- Diversity : 다양한 아이템을 추천하는가? 

 

Recommendation Algorism

대표적인 추천 알고리즘 (source : https://greeksharifa.github.io/machine_learning/2019/12/17/Recommendation-System/)

 

1. 콘텐츠기반 필터링 : Content-based Filtering 

어떤 사용자가 특정 아이템을 선호할 때, 그 아이템과 비슷한 특성을 가진 다른 아이템을 추천하는 기법이다. 

... (정리중)

 

2. 협업 필터링 : Collaborative Filtering 

많은 사용자들로부터 얻은 기호정보(좋음, 싫음 같은 Rating값)에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다. 근본적인 가정은 사용자들의 과거의 경향이 미래에서도 그대로 유지 될 것이라는 전제에 있다.

사용자의 선호도와 관심 표현을 바탕으로 선호도, 관심에서 비슷한 패턴을 가진 사용자를 식별해 내는 기법이다. 비슷한 취향을 가진 사용들에게 서로 아직 구매하지 않은 상품들은 교차 추천하거나 분류된 고객의 취향이나 생활 형태에 따라 관련 상품을 추천하는데 활용된다.

Collaborative_filtering ( Wikipedia )

2.1 최근접 이웃 기반 필터링 : K-Nearest Neighbors(KNN)

협업 필터링은 사용자-아이템 행렬 데이터에 의존하는데, 사용자가 남긴 평점(rating) 데이터를 기반하여 남기지 않은 데이터를 추론하는 기법이다.

 

2.1.1. 사용자 기준 협업 필터링 : User-based Collaborative Filtering 

특정 사용자(A)와 유사한 사용자들(Bs)을 선정하고, 이들을 TOP-N이라고 명명한 뒤 이들이 선호하는 아이템을 특정 사용자(A)에게 추천하는 방식이다.

 

2.1.2. 아이템 기준 협업 필터링 : Item-based Collaborative Filtering 

어떤 사용자가 A라는 아이템을 선호한다고 할 때, 그 사용자는 A와 유사한 B라는 아이템 역시 선호할 것이라는 가정 하에 추천을 진행하는 방식이다. 아이템 기반 방식이 사용자 기반 방식 보다 정확도가 높은 것이 일반적이기에 본 방식이 더욱 자주 사용된다

Collaborative Filtering (source : https://medium.com/@cfpinela/recommender-systems-user-based-and-item-based-collaborative-filtering-5d5f375a127f )

2.2. 잠재 요인 기반 협업 필터링 (Latent Factor Collaborative Filtering)

사용자-아이템 평점 데이터(행렬)에 잠재되어 있는 요인(factor)이 있다고 가정 하에, 데이터를 행렬을 분해하여 사용자와 아이템의 관계 요인들을 찾아내는 기법이다.

예를 들어, 영화 감독을 잠재 요인으로 설정할 수 있다. 어떤 사용자는 스티브 스필버그의 영화를 좋아한다고 하면, 이 사용자는 영화를 선택할 때 영화 감독이 중요한 기준(요인)이 된다. 이러한 사용자에게는 스티브 스필버그 감독의 영화를 추천하는 것이 합리적이라고 판단하는 것이다. 즉, 잠재 요인 기반 필터링은 이러한 요인들을 찾고 이를 기반으로 추천하는 기법이다. 

 

3. 지식 기반 (Knowledge-based)

... (정리중)

 

4. 하이브리드 추천 

이름에서 알 수 있듯이 협업 필터링과 콘텐츠 기반 필터링을 섞은 hybrid 접근법이다. 케이스 따라 cold start(시작시점에 정보 부족)와 sparsity 문제와 같은 추천시스템 문제를 극복할 수 있는 방법이기도 하다. 

Neflix는 hybrid 추천 기법의 좋은 사례이다. Netflix는 사용자가 높게 평가했던(content-based)영화와 비슷한 특성을 지닌 영화를 추천하고, 비슷한 사용자(collaborate)들의 검색 습관과 시청을 비교하여 추천한다.

 

<참고자료>

위키백과 - 추천시스템

잠재요인 협업필터링 (Latent Factor Collaborative Filtering) 설명

추천시스템1 - 추천시스템이란? 추천 알고리즘의 종류

Recommender Systems — Ranking and Classifications

Recommender Systems — User-Based and Item-Based Collaborative Filtering

[NLP] Collaborative Filtering(Recommendation)

Python - Content based filtering 구현

 

https://unsplash.com/photos/pP7mDtIjFKA

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
반응형