오늘 할 일: 끝내주게 숨쉬기
article thumbnail

지난 추천시스템 1편에서 추천시스템의 여러 사례들과 개념을 간략하게 살펴보았습니다. 추천시스템이란 특정 사용자가에게 좋아할 것이라고 예상되는 상품을 추천하는 시스템이라고 언급했습니다. 사용자 입장에서는 원하는 정보를 찾는 데 들이는 시간을 줄일 수 있고, 기업 입장에서는 고객의 만족도를 높여 충성 고객을 확보할 수 있다는 장점이 있었습니다. 서비스가 다양해지고 정보도 넘쳐나는 IT 시대에 중요도가 더욱 부각되고 있는 머신러닝 알고리즘이라고 할 수 있죠.  

출처: https://www.sciencedirect.com/science/article/abs/pii/S0950705114004328

이번 추천시스템 2편에서는 추천시스템을 구축하기 위해서 어떤 데이터가 필요한지, 그 데이터를 갖고 어떤 알고리즘을 적용해볼 수 있는지 알아보겠습니다.

 

추천시스템에서 사용하는 데이터

어떤 서비스든 머신러닝을 적용하기 위해서는 데이터가 필수로 갖춰져 있어야 하죠. 추천시스템도 '추천'이라는 서비스를 제공하기 위해 사용자 데이터와 상품 데이터, 그리고 추천 점수를 필요로 합니다.

 

1. 사용자 정보

사용자의 프로필 정보를 의미합니다. 예를 들면 사용자의 나이, 성별, 지역, 학력, 자산 등 개인적인 신상정보 혹은 사용자의 웹페이지 방문 기록, 클릭 패턴, 페이지 체류시간 등 행동정보(로그) 등이 있습니다.

사용자 정보는 평점, 설문조사, 리뷰와 같은 직접적인 피드백(Explicit feedback)을 통해 수집할 수도 있고, 웹페이지나 앱에 다녀간 흔적(체류시간, 클릭여부, 검색로그 등)과 같은 간접적인 피드백(Implicit feedback)을 통해 수집할 수도 있습니다. (각 피드백의 자세한 특징은 추천시스템 1편 하단 참고)

 

2. 아이템 정보

사용자에게 제공하려는 아이템은 서비스마다 각각 다르게 정의할 수 있죠. SNS에서는 사용자가 업로드한 게시글과 유사한 게시글, 사용자가 관심이 있을 법한 사진이 아이템이 됩니다. 컨텐츠를 제공하는 서비스에서는 책, 음악, 영화, 방송이 아이템이 되고 지도 서비스에서는 여행지나 음식점을 아이템으로 선정할 수 있습니다.

아이템 프로필로는 아이템의 가격, 색상, 역할과 같은 고유 정보를 사용하거나 아이템을 좋아하거나 구매한 경험이 있는 사용자 집계 정보 등을 활용할 수 있습니다.

 

3. 추천점수

사용자가 해당 아이템을 얼마나 좋아했는가? interaction이 있었는가? interaction이 있다면 얼마나 자주 있었는가?를 점수화(scoring)한 값입니다. 사용자에게 아이템을 추천하기 위해서는 준비된 아이템마다 사용자가 얼마나 좋아할지에 대한 정량화된 기준이 필요하기 때문이죠. 지도학습에서의 타겟이라고 이해하시면 되겠습니다.

위에서 사용자 정보로 언급한 평점, 행동로그 등의 정보들을 추천점수로도 활용할 수 있습니다. 어떤 값을 타겟으로 설정하는지에 따라 성능이 크게 좌우될 수 있으니 신중히 골라야겠죠.

 

 

대표적인 추천알고리즘 종류

추천시스템에 적용되는 알고리즘은 컨텐츠 기반 추천시스템(Contents-based Recommender System), 협업필터링(Collaborative Filtering), 하이브리드 추천시스템(Hybrid Recommender System)으로 나눠서 볼 수 있습니다. 각각의 정의를 간단하게 살펴보겠습니다.

 

1. 컨텐츠 기반 추천시스템

사용자 혹은 아이템에 대한 프로필 정보를 가지고 사용자가 좋아했던 아이템과 비슷한 유형의 아이템을 추천합니다.

사용자가 영화 <101마리 달마시안>을 보았다면 해당 영화에 대한 설명(리뷰, 평점, 감독, 출연 배우 등)을 바탕으로 유사한 영화 <크루엘라>를 추천하는 식입니다.

출처: 직접 그림

 

2. 협업 필터링

'특정 상품에 대한 선호도가 유사한 고객들은 다른 상품에 대해서도 선호도가 비슷할 것이다’ 라는 가정하에 사용자의 아이템 평가 데이터를 이용해 비슷한 선호도를 갖는 다른 사용자가 선택한 아이템을 추천합니다.

예를 들어 영화 겨울왕국1에 대한 평가가 유사한 두 사람에게, 어느 한쪽이 아직 시청하지 않았지만 다른 사림이 좋은 평가를 내린 영화 겨울왕국2를 추천하는 식입니다. 

출처: https://towardsdatascience.com/getting-started-with-recommender-systems-and-tensorrec-8f50a9943eef

 

3. 하이브리드 추천시스템

컨텐츠 기반 추천시스템과 협업 필터링을 결합한 모델입니다. 두 가지 알고리즘을 모두 적용하여 아이템마다 가중평균을 구해 랭킹을 매기는 방법, 평점 데이터와 아이템 프로필을 조합해 사용자 프로필을 만들어 추천하는 방법 등 다양한 기법이 있다고 합니다. 실제로 넷플릭스는 협업 필터링을 사용해 유사한 사용자간의 시청/검색 기록을 비교할 뿐만 아니라, 컨텐츠 기반 필터링을 사용해 사용자가 높게 평가한 영화의 특징을 공유하는 영화를 제공한다고 알려져 있습니다.

출처: https://www.researchgate.net/publication/319045879_Towards_a_deep_learning_model_for_hybrid_recommendation

 

이상으로 추천시스템에서 사용하는 데이터와 대표적인 알고리즘 종류를 알아보았습니다. 추천시스템의 큰 틀을 이해하시는 데에 도움이 되면 좋겠습니다. 이후 포스팅에서는 컨텐츠 기반 추천시스템과 협업 필터링에 대해 보다 자세하게 다뤄보겠습니다. 다음 포스팅에서 뵙겠습니다🤗