본문 바로가기

Product Manager/자료실

추천 시스템의 기본 원리

활용 자료 : <비전공자도 이해할 수 있는 AI 지식>

콘텐츠 기반 필터링(Contents-Based Filtering) : 내가 선호하는 제품과 비슷한 제품을 추천하는 방식

'콘텐츠'가 들어간 이유는 영상을 추천하는데에서 출발했기 때문이다. 커머스에서는 상품을 가르키고, 콘텐츠 플랫폼에서는 말 그대로 콘텐츠이다. CB 로직이라 부르기도 한다. 예시로는 "방금 보신 상품과 유사한 상품"을 보여주는 전시 영역이 여기에 해당된다. 핵심은 콘텐츠/상품의 특징.

  • 장점 : 다른 유저 데이터는 필요하지 않다. 오직 현재 유저가 선호하는 특징만 알 수 있으면 된다.
  • 단점 : 콘텐츠/상품의 특징을 추출하고 규정짓는 것이 어렵다. 대부분 사람이 직접 분류해야 하며, 특징을 세분화한다고 해서 유저의 관심사를 확장하기는 어렵다. <살인의 추억>을 좋아하는 고객에게서 공포, 스릴러의 특징을 추출해 <추격자> 같은 영화만 계속해서 추천하면 곤란함. => CB 로직의 한계.

 

 

협업 필터링(Collaborative Filtering) : 나와 비슷한 유저가 구매한 제품을 추천하는 방식

성향이 비슷한 유저가 선호한 콘텐츠를 추천한다. 유저의 관심사를 확장할 수 있는 방식, 콘텐츠 기반 필터링의 한계를 극복할 수 있는 방식이다. CF 로직이라 부르기도 한다. 예시로는 "20대 여성 고객이 선호하는 상품", "OOO을 본 유저들이 보는 웹툰"과 같은 전시 영역이 있다. 핵심은 유저 간의 유사도.

 

행렬 인수분해(Matrix Factorization) : 협업 필터링 기법 중 하나. 사이먼 펑크가 넷플릭스 프라이즈에서 고안한 알고리즘. 

기본적인 원리는 다음과 같다.

  • "이 영화는 액션이 얼마나 있나요?" 질문 X "이 고객은 액션 영화를 얼마나 좋아하나요?" 질문 
  • => 그 결과를 합산하는 것

 

평점 데이터를 이용해 고객의 특징을 자동으로 추출하고, 영화의 특징도 자동으로 추출한다. 즉, 잠재요인(Latent Factor)을 발굴하고 그 결과 고객의 평점을 예측한다. 이를 계산하기 위해서는 평점 데이터가 반드시 필요하다. 많은 데이터를 활용할수록 더욱 정교하게 유사도를 찾아낼 수 있다.

 

행렬 인수분해를 넘어, 더 높은 성과를 내는 방법

행렬 인수분해를 딥러닝으로 대체하면 더 높은 성과를 낼 수 있다. 단, 엄청나게 방대한 데이터가 있다는 전제 하에. 실제로 유튜브는 행렬 인수분해를 딥러닝으로 대체해서 더 높은 성과를 냈다. 또한, 평점 데이터 외에도 다양한 데이터를 입력값으로 활용하고 편향을 조정하거나 보상 함수를 더함으로써 보다 정교한 추천을 할 수 있다.