• 추천시스템이란? 그리고 목적
  • 추천시스템 분류
  • 추천시스템의 핵심

 

추천시스템이란? 그리고 목적

사용자의 성향을 알아보고 아이템을 추천해줄 수 있으며 사용자가 해당상품을 구매할 확률을 고려하고 친사용자에 가까운 서비스를 만들어낼 수 있는 시스템을 얘기합니다. 개인 맞춤화 시스템을 만드는 것이 대부분의 연구 목적입니다. 최근에 사람을 매칭해주는 어플에서도 사람과 사람을 매칭시키고 혹은 물건을 사는 시스템이나 영화, 노래를 듣는 어플같은데서는 사람과 물품 혹은 원하는 컨텐츠을 매칭하는데 추천시스템이 주로 사용됩니다. 

 

 

추천시스템 분류

 

기본적으로 콘텐츠기반(Content based filtering)과 협업필터링(Collaborative filtering), 최근접이웃기반필터링(nearest neighbor collaborative filtering), 잠재요인 기반 필터링(latent factor collaborative filtering) 으로 나뉘어져 있습니다. 초기에는 콘텐츠기반 필터링을 주로 사용하다가 넷플릭스의 영화추천알고리즘에 협업필터링이 사용되면서 대부분 협업필터링을 사용하는 추세입니다. 

추천시스템 분류도 (출처: https://greeksharifa.github.io/machine_learning/2019/12/17/Recommendation-System/#2-%EC%B6%94%EC%B2%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98-%EA%B0%9C%EC%9A%94)

 

1. 콘텐츠기반 필터링

사용자가 선호하는 컨텐츠를 기반으로 비슷한 콘텐츠를 가진 아이템을 추천해주는 방식

예를 들어, 사용자가 여드름성 화장품과 아모레퍼시픽 화장품에 높은 평점을 주었을 경우 다음에는 아모레퍼시픽에 여드름성 다른 관련 화장품을 추천해주는 것입니다. 

 

2. 협업필터링

사용자와 아이템간의 rating을 이용해 사용자사이의 '유사도'를 찾는 방식

한 사용자와 비슷한 사용자의 구매목록이나 평점등을 이용해서 해당 사용자가 어떤 상품을 좋아할지 수치적으로 예측하는 방식입니다. 유사도를 계산할때는 유클리디안 거리, 코사인유사도기반, 피어슨유사도기반 등의 수학적 유사도를 계산합니다. 유사도가 높은 사용자 집단(이를 'TOP-N'이라고 명칭함) 안에서 각 사용자들이 남긴 평점을 weighted sum을 계산해서 평점을 예측합니다. 예를 들어, 유사도가 높은 사용자들이 구매했던 상품에 대한 평점의 가중치의 합을 구해서 사용자 집단안에 속한 사용자의 평점을 예측하는 방식입니다. 하지만, 처음 방문한 사용자는 유사한 사용자를 알기 어렵기에 추천이 잘 될 수 없는 문제점이 있습니다. 이를 cold start problem이라고 말합니다. 이런 이유로 넷플릭스를 사용시 처음 방문자는 좋아하는 영화를 선택하는 설문조사를 진행하고 있습니다. 

 

2-1. 최근접 이웃기반 협업 필터링

사용자-아이템 행렬에서 사용자가 아직 평가하지 않은 아이템을 예측하는 것입니다. row는 users, column은 items로 구성되어 있어야 합니다. 또한, 사용자기반 협업 필터링과 아이템 기반 협업 필터링으로 나뉩니다. 사용자 기반은 '비슷한 사용자들이 A아이템을 구매하더라~ '이고 아이템 기반은 'A아이템을 구매한 사용자가 다음과 같은 물품도 구매하더라~'라고 이해하시면 편합니다. 

따라서, 사용자 기반 협업 시스템의 경우 row가 사용자, 아이테템 기반 협업 시스템의 경우 아이템이 row가 됩니다.  일반적으로 아이템기반 협업필터링이 정확도가 좋고 더 많이 사용됩니다. 

 

3. 잠재요인 필터링(latent factor collaborative filtering)

사용자-아이템 평점 행렬에서 '잠재요인' 있다는 가정하에 행렬분해 방식을 사용하여 잠재요인을 구체적으로 정의하는 방식입니다. 예를 들어, 어떤 사용자의 영화평가에 대한 잠재요인이 장르라는 것을 가정한다면, 그 사용자가 판타지를 선호할때 다른 영화도 판타지를 추천해주는것이 가장 합리적이라고 판단되고 이를 추천해주는 것입니다.  

2009년까지는 앞선 추천시스템방식이 주목을 받았다면 2009년 이후에는 넷플릭스 컴피티션에서 우승을 하면서 '행렬분해'(Matrix Factorization)을 이용한 잠재요인 필터링이 주목을 받고 많이 사용하고있는 추세입니다. 

 


특이값 분해 (Singular Value Decomposition)

특이값 분해는 spectral decomposition의 일반화 버전이라고 생각하면 쉽습니다. 정방행렬이 아닌경우에도 다차원행렬을 저차원행렬로 분해 가능합니다. 


추천시스템의 핵심

 

추천시스템의 핵심은 사용자와 사용자가 영화나 음악에 남기는 평점을 기반으로 만들어진 matrix안에서 빈 값을 매우는 것입니다. 

예를 들면 넷플릭스에서 제공되는 약 1만칠천개가 넘는 영화에 시청자들이 모두 평점을 매길 수 없기에 한명의 사용자는 굉장히 적은 개수의 평점을 남길 것입니다. 이런 사용자들이 남기지 못한 데이터를 예측하고 빈값을 찾아내는 것이 추천시스템의 핵심입니다. 

 

 

 

 

'데이터분석 > 추천시스템' 카테고리의 다른 글

추천시스템 만드는 개념  (0) 2022.07.13
Graphical Models in recommendation systems  (0) 2022.07.12

+ Recent posts