1. An Introduction to Recommender Systems

인터넷이 발전됨에 따라 아이템 구매 및 선호에 대한 사용자의 피드백을 얻기 쉬워졌다. 이런 피드백을 바탕으로 과거의 사용자-아이템 간 데이터를 활용해 취향을 고려한 아이템을 추천하는 것이 추천시스템의 기본적 아이디어이다. 추천 알고리즘은 대표적으로 아래와 같이 3가지가 있다.

Collaborative Filtering : 협업필터링

Content-based Recommender Systems : 컨텐츠 기반 추천시스템

Knowledge-based systems : 지식 기반 추천 시스템.


1.1 Goals of Recommender Systems

추천시스템의 목적을 논하기 전에, 두 가지 추천 문제에 대해 알아보자.

1) Prediction version of Problem : Matrix Completion probelm이라고도 하며, 학습 데이터를 통해 유저의 선호도를 정확하게 예측하는 것이 목적(A라는 유저는 1번 상품을 선호할 것이다)

2) Ranking version of Problem : 정확한 수치를 예측하는 것이 아닌, 랭킹을 고려해 top-k의 아이템을 선정하는 것이 목적(A라는 유저는 1, 2, 3번 상품 순으로 선호할 것이다)

일반적으로 Prediction version of Problem을 푸는 것이 목적이다. 이를 해결해야 Ranking 문제도 해결할 수 있기 때문이다. 하지만 현실적으로 더욱 자연스러운 것을 Ranking 문제이다. 예를 들면 보통 우리가 A, B 중 상품을 고를 때 A와 B를 비교해 상대적으로 더 좋은 것을 사지, A와 B의 점수를 각각 구해서 비교하는 것은 비효율적이기 때문이다.

비즈니스적 측면으로 추천시스템의 목적은 아이템 판매량을 높이는 것이기 때문에, 실제 운영적/기술적 측면으로는 아래와 같은 목적이 있다.

1) Relevance : 추천된 아이템이 유저에게 관련이 있는가? (명백한 목적이지만 이것만으로 불충분)

2) Novelty : 진부한 아이템(예, Sales Top 100)이 아닌 유저가 탐색하지 못한 색다른 아이템을 추천하는가? (어느정도 예상 가능)

3) Serendipity : 유저가 이전에 경험해보지 못한 완전 새로운 아이템을 추천하는가? (아예 예상 불가능)

4) Diversity : 추천됨 Top-k 아이템에 다양한 아이템이 포함되는가?

위와 더불어, 추천시스템을 통해 서비스 이용 만족도, 경험의 개인화를 제공하는 데 유용하다. 또한 추천의 이유(goal)를 같이 제공하는 것이 유용하다.

 

 

1.2 Basic Models of Recommender Systems

머신러닝에 KNN, SVM 등 여러 모델이 있듯이 추천시스템에도 여러 모델이 있다. 이 챕터에서는 이 모델에 대해 간단히 설명하고자 한다.

1) Collaborative Filtering Models(협업 필터링)

추천시스템의 주요 Task는 아래와 같은 행렬(유저-아이템)에 빈 부분을 채우는 것이다. 이를 Matrix Completion이라고 부른다. 협업필터링으로 불리는 이 모델은 위 행렬의 빈 부분을 채우기 위해 다수가 협업하는 식으로 해결하는 모델이다. 즉 각 유저, 아이템은 특정 수준의 상관관계를 가진다고 가정한다.

예를 들어, A와 B가 유사한 그룹으로 묶인다면 B가 선호하는 아이템을 A가 좋아할 것으로 예측한다. 따라서 A가 구매한 아이템을 제외하고 B가 선호하는 아이템을 A에게 추천한다.

 

2) Memory-Based methods

Memory-based method는 neighborhood-based collaborative filtering algorithms라고도 불리며 User-based collaborative filtering과 Item-based collaborative filtering으로 구분된다.

A. User-based collaborative filtering : 유저 간의 유사도가 높을수록 높은 가중치를 부여하는 방식으로, 특정 유저가 아직 구매하지 않았으나 동질 그룹의 다른 유저가 선호하는 아이템을 추천한다. 일반적으로 특정 A와 유사한 Top K의 유사한 유저들로 동질 그룹으로 구성하여 A가 선호할만한 아이템을 선정한다.

B. Item-based collaborative filtering : B라는 아이템에 대한 A 유저의 선호도를 예측하기 위해, B와 가장 유사한 Top K 아이템을 선정하여 Item set을 구성한다.

 

3.Model-based methods: 모델 기반 방법은 머신러닝이나 데이터마이닝 방법에서 예측 모델의 context를 기반한 방법이다. 모델이 파라미터화되어 있다면, 이 모델의 파라미터는 컨텍스트 내에서 학습된다. 의사결정 나무 베이지안 모델 등이 이 예시에 해당된다.

 

Memory based moethods와 Model-based methods는 비슷한 점이 많다.

 

Types of Ratings

추천알고리즘은 tracking ratings에 영향을 많이 받았다. ratings은 이산형이 많고 {-2,-1,0,1,2} or {1,2,3,4,5}처럼 점수를 구간화 해놓았다. 뿐만 아닌 facebook 좋아요와 같은 기능도 ratings에 한 종류라고 볼 수 있다.


1.3 Content based recommend systems

컨텐츠 기반 추천시스템은 협업 필터링과 다르게, 사용자가 과거에 경험했던 아이템 중 비슷한 아이템을 현재 시점에서 추천하는 것이다. Information Retrieval과 ML의 중간 지점 정도로, 정보를 찾는 과정과 과거 정보를 활용해서 유저의 성향을 배우는 문제라고 볼 수 있다.

컨텐츠 기반 추천시스템은 다음과 같은 구조로 생각할 수 있다.

데이터 획득 후, 컨텐츠 분석에서 비정형 데이터로부터 관련 있는 정보를 얻는 작업이 필요하다. 예를 들면 feature extraction, vector representation 등의 작업을 수행해야 한다. 그 후 유저가 선호하는 아이템과 취향을 파악하는 유저 프로필 파악이 필요하고 cosine 유사도 등을 이용하여 유사 아이템을 선택한다.

ex) 사용자가 떡볶이를 시켜 먹었다고 가정하면, 떡볶이와 관련된 특징(분식, 매운 음식)을 토대로 관련된 특징을 가진 다음음식을 추천하도록 학습한다.


1.4 Knowledge based recommend system

사용자들의 구매 이력이 적은 경우에 사용한다. 아이템을 추천하기 전에 아이템의 특징과 명시적인 질문을 통해 회득한 사용자 선호도와 추천 범위 등 아이템들에 대한 정보를 고려하여 추천한다.

ex) 배달 음식 어플을 처음 사용하면 좋아하는 음식의 종류(한식, 분식), 가격대, 맛(매운, 단짠단짠)과 같은 다양한 데이를 받아서 추천한다.


1.5 Hybrid recommend system

위에서 언급한 다양한 추천 시스템을 결합하여 만든다. 한 서비스의 단점을 다른 서비스의 장점으로 만든다.

ex) 새로운 아이템에 대한 평점이 없으면 추천 성능이 떨어지게 되는 협업 필터링과 아이템의 특징에 대한 정보를 이용할 수 있는 지식 기반 추천 시스템을 결합한다.


출처 :

1. https://wikidocs.net/48797

2. https://kr1lib.org/book/3561149/adfc57

3. http://melonicedlatte.com/datascience/2019/01/26/190736.html

4. https://skyeong.net/265

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기