HomeAbout
RecSys
추천시스템, 그것이 알고싶다
주정민
July 11, 2022
3 min

Table Of Contents

01
추천시스템, 무엇일까?
02
유사도 개념
03
추천시스템 로드맵
04
추천시스템 한계점
05
하이브리드 추천시스템
06
마치며

안녕하세요. 추천을 좋아하는 데이터 분석가입니다. 이번 글은 그동안 추천을 애정하며 공부해온 내용들을 바탕으로 추천시스템에 대해 한눈에 쉽고 빠르게 정리해보려고 합니다.

추천시스템, 무엇일까?

들어가기에 앞서서 추천 알고리즘이 핫한 이유는 무엇일까요? 실제로 유튜브 사용자들의 시청 시간 70%가 추천 알고리즘으로 일어나고 있으며, 추천 알고리즘의 도입을 통해 사용자들의 비디오 시청 시간이 20배이상 증가했다고 합니다. 넷플릭스 또한, 매출의 75%가 추천시스템에 의해 발생한다고 해요. 고객에게 다양한 아이템을 추천해주면서 고객의 정보 데이터가 쌓이겠죠. 이를 통해서 고객의 취향과 니즈를 파악할 수 있게 됩니다. 고객 입장에서는 개인이 좋아할 만한 다양한 컨텐츠와 상품을 접할 수 있기 때문에, 고객의 만족도는 증가합니다.

추천시스템을 한마디로 정의해보면, 사용자의 정보 데이터를 분석하여 개인의 취향에 맞는 아이템을 추천하는 알고리즘입니다. 사용자는 이커머스에서 상품을 구매하고 평점을 주거나, 유튜브 영상이나 음악에 좋아요를 누르고 컨텐츠에 대해 피드백을 줍니다. 사용자의 피드백과 행동 데이터를 분석해서 사용자의 취향을 파악하고 추천시스템에 활용을 합니다.

추천시스템 정의
추천시스템 정의

추천 시스템에 사용되는 데이터의 종류로는 2가지 데이터로 나눌 수 있습니다.

  • Explicit 데이터: 사용자가 선호도를 직접적으로 표현한 데이터 ex) 평점, 좋아요/싫어요, 리뷰, 구독
  • Implicit 데이터: 사용자가 간접적으로 표현된 선호도, 취향을 나타내는 데이터 ex) 사용자 행동 로그 데이터, 검색 기록, 클릭 기록, 방문 페이지, 구매 내역

Implicit 데이터와 explicit 데이터가 있습니다. explicit 데이터는 사용자가 직접 영화에 평점을 주고 동영상에 좋아요, 싫어요 등의 표현을 직접적으로 하는 데이터입니다. 실무에서는 이러한 형태의 데이터는 얻기가 어렵습니다. 상품을 구매해도 모든 사람들이 리뷰를 남기지않는 사용자가 많기 때문에 이 데이터는 사용자의 취향이 정확하게 반영되는 장점이있지만, 데이터 자체를 얻기가 어렵다는 단점이 있습니다. implicit 데이터는 사용자도 모르게 서비스를 이용할때, 간접적으로 발자국처럼 남긴 데이터를 말하는데요. 로그데이터, 사용자의 검색, 클릭기록 방문페이지 데이터를 통해 사용자의 취향을 간접적으로 유추할 수 있는것이죠. 이 데이터는 실무에서 얻기 쉽지만, 사용자가 클릭을 했다고해서 그 상품을 좋아하는지 싫어하는지는 직접적으로 알수없겠죠.

유사도 개념

추천시스템의 종류에 대해 알아보기에 앞서서 중요한 수학적 개념인 유사도가 나옵니다. 추천시스템에서 유사도란 어떻게 적용될까요? 영상, 이미지, 텍스트 등 다양한 형태의 아이템 정보 데이터를 벡터 형태로 표현하여 아이템 벡터간의 유사도를 측정합니다. 아이템간의 유사도를 측정하여 고객이 구매한 아이템과 비슷한 아이템을 고객에게 추천해줍니다.

패션 데이터셋 예시
패션 데이터셋 예시

추천시스템에서 유사도 측정 원리에 대해 패션상품 데이터셋이 있습니다. 상품번호, 상품의 종류, 카테고리, 사이즈, 색깔로 이루어진 데이터셋입니다. 여기서 분홍색 반팔티를 구매한 고객에게 가장 비슷한 아이템인 하늘색 반팔티를 고객에게 추천해주는 거죠. 두 아이템은 같은 사이즈, 반팔티라는 점에서 아이템이 유사합니다. 라지 사이즈의 분홍색 반팔티에 대한 고유 정보 데이터의 벡터간의 유사도를 계산하여 라지 사이즈의 분홍색 반팔티와 유사도가 비슷한 라지 사이즈의 하늘색 카라 반팔티를 고객에게 추천해줍니다.

유사도 방식 종류

유사도 방식 종류
유사도 방식 종류

대표적으로 집합기반 추천 방식인 자카드 유사도, 각도기반 추천인 코사인 유사도, 거리 기반 추천인 유클리디안 거리, 상관관계인 피어슨 상관계수가 많이 사용됩니다. 이외에도 맨하튼 거리 계산법과 같은 다양한 유사도 측정 방법도 있어요. 이러한 유사도 측정 방식은 서비스 및 추천 알고리즘 방식 등 상황에 따라 다르게 사용됩니다.

이 중 자카드 유사도는 집합 간의 교집합 크기를 이용해서 유사도를 측정하는 방법입니다. 자카드 유사도는 0이상 1이하까지 값의 범위가 존재합니다. 합집합과 교집합의 크기가 비슷할수록 1의 값을 가집니다. 두 집합 사이의 교집합 크기가 클수록 아이템 간의 유사도가 높은거죠.

자카드 유사도를 추천시스템에 활용해보면 어떻게 될까요? 앞선 예시의 패션 상품 데이터셋의 분홍색 반팔티와 하늘색 반팔티의 자카드 유사도를 계산해보도록 하겠습니다. 분홍색 반팔티는 상의, 반팔티, 라지사이즈, 분홍색 아이템 속성으로 이루어져있었고, 하늘색 반팔티는 상의, 반팔티, 라지사이즈, 하늘색으로 이루어져있었습니다.

패션 데이터셋 자카드 유사도
패션 데이터셋 자카드 유사도

  • 분홍색 반팔티 (상의, 반팔티, L, 분홍색)
  • 하늘색 반팔티 (상의, 반팔티, L, 하늘색)

자카드 유사도 = (두 아이템 교집합)/(두 아이템 합집합) = (상의 ,반팔티, L)/( 상의, 반팔티, L, 분홍색, 하늘색) = 3/5

두 아이템은 색깔 속성을 제외하고 상의, 반팔티, 라이즈 사이즈의 공통점 즉, 교집합이 존재하죠. (두 아이템의 교집합)/(두 아이템의 합집합)를 계산해보면, 3/5의 값이 나옵니다. 자카드 유사도 값이고 2가지 아이템은 3/5 정도의 유사도를 띄고 있다고 볼 수 있습니다. 분홍색 반팔티를 구매한 유저에게 유사한 하늘색 반팔티도 좋아할 것이라고 생각해서 추천해줄 수 있습니다.

추천시스템 로드맵

추천시스템 종류
추천시스템 종류

기본적인 추천시스템의 종류에는 크게 컨텐츠기반 필터링, 협업필터링, 하이브리드 추천시스템이 있습니다. 조금 더 심화된 알고리즘으로는 딥러닝을 활용한 추천시스템 등이 있습니다.

컨텐츠기반 필터링이란?

컨텐츠기반 필터링
컨텐츠기반 필터링

컨텐츠기반 필터링 추천시스템은 사용자가 선택하거나 구매한 아이템과 유사한 아이템을 추천하는 방법입니다.여기서 말하는 컨텐츠란 뉴스, 상품, 음악, 영화, 웹툰 등등이 될 수 있어요. 말 그대로 이 컨텐츠의 유사도를 기반으로 유저에게 추천해주는겁니다.

협업 필터링이란?

협업 필터링
협업 필터링

협업 필터링은 비슷한 취향을 갖은 사용자가 좋아한 아이템을 사용자에게 추천하는 방법입니다. 협업 필터링은 “나와 비슷한 취향을 갖은 사람은 나와 비슷한 평가를 내릴거야. 나는 아직 구매하지 않았지만 다른 사람이 구매한 상품을 나도 갖고 싶을거야!”라는 가정에서 시작해요.

위 그림을 보시면 고객 a,b는 모두 피자를 구매했고 고객 a,b의 취향이 비슷할것이라고 판단을 합니다. 따라서 고객 a가 치킨을 구매내역이 있으면, 고객 b에게 치킨을 추천해줍니다. 고객 b도 치킨을 좋아할 것이라고 판단하는거죠.

추천시스템 한계점

앞선 추천 기본 알고리즘들은 한계가 있습니다. 고객이 평가를 남긴 정보 평점 데이터를 바탕으로 신뢰성 있는 추천을 할 수 있다는 장점이 있어요. 하지만 대표적으로 3가지의 단점도 존재합니다.

첫번째 콜드 스타트 문제입니다. 협업 필터링 알고리즘을 사용하기 위해서는 기존 데이터가 반드시 필요하기에 신규 사용자에게는 어떠한 아이템도 추천할 수 없게 됩니다. 콜드 스타트란 이러한 상황을 일컫는 말로 ‘새로 시작할 때의 곤란함’을 의미합니다.

두 번째는 계산 효율성 저하입니다. 협업 필터링은 계산량이 비교적 많은 알고리즘이기 때문에 사용자 수가 많거나 행렬분해시, 계산이 장기간 소요되기도 합니다.

마지막으로 롱테일 문제입니다. 사용자들은 소수의 인기 있는 콘텐츠에만 관심을 보이기 마련이고, 자연스럽게 소수의 인기 콘텐츠가 전체 추천 콘텐츠의 많은 비율을 차지하게 됩니다. 인기가 저조한 콘텐츠는 정보 부족으로 추천되지 못하는 셈이죠.

앞선 추천시스템들은 알고리즘이 간단하기 때문에 문제점들이 있었죠.

그렇다면 이러한 추천시스템 방식의 단점을 해결하려면 어떤 알고리즘이 필요할까요?🕵🏻

하이브리드 추천시스템

앞선 추천시스템 종류의 단점을 보완하기 위해 2개이상의 다양한 종류의 추천시스템 알고리즘을 조합하는 방법이 하이브리드 추천시스템입니다. 하이브리드 추천시스템은 다양한 알고리즘들의 단점은 보완하고 장점을 결합하여 더 좋은 알고리즘을 만든 것입니다. 컨텐츠기반 필터링 같은 경우는 신규 유저에게 추천을 잘해주지 못하는 단점이있었지만, 추천 결과를 협업기반 필터링 추천 알고리즘과 결합한다면 추천 효과를 더 높일 수 있습니다. 실무에서는 한가지의 추천 알고리즘만 사용하지 않고 대부분 여러가지 추천 알고리즘을 결합하여 많이 사용합니다.

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

마치며

이번 글은 추천시스템에 대해 기본적인 내용들에 대해 정리해보았는데요. 추천 시스템에 대해 심화된 실무적인 내용을 더 알고싶으시다면, https://playinpap.github.io/reco-first-enjoy-after-learning-recommendation/ 을 참고하시면됩니다.



Tags

#추천시스템

Share


Related Posts

Spotify의 음악 추천이 매력적인 이유
2022-06-06
2 min
© 2023, All Rights Reserved.
Powered By

Quick Links

About UsOfficial Page

Social Media