상세 컨텐츠

본문 제목

추천 시스템 (2) - 실제 시스템 분석

IT/Machine Learning

by HarimKang 2020. 1. 14. 01:21

본문

Writer : Harim Kang

추천 시스템관련 두번째 포스팅입니다. 추천 시스템의 개요와 알고리즘을 알고싶으시다면 아래의 포스팅을 봐주시길 바랍니다. 현 포스팅은 페이스북, 넷플릭스, 왓챠, 아마존 등에서 사용하고 있는 추천 시스템에 대한 분석 포스팅입니다.

2020/01/08 - [IT/Machine Learning & Deep Learning] - 추천 시스템 (1) - 개요 및 알고리즘

 

추천 시스템 (1) - 개요 및 알고리즘

Writer : Harim Kang 추천 시스템은 이제 4차 산업 시대에서 필수적인 요소입니다. 이미지 또는 영상과 같은 콘텐츠 추천부터 시작해서, 쇼핑, 광고 노출, 검색어 노출, SNS 등등 모든 분야에서 추천이 들어가지..

davinci-ai.tistory.com

추천 시스템 분석

Recommendation Service

앞선 포스팅에서는 추천 서비스의 개요와 기본적인 알고리즘에 대해서 알아보았습니다. 추천 시스템은 실제로 어떤 형태로 서비스를 제공할까요? 현재 우리 일상에 아주 다양한 형태로 제공되지만, 그중에서도 저는 SNS, 영화, 쇼핑 분야의 대표적인 기업들이 추천 서비스를 어떤 식으로 사용하고 있는지와 구체적인 방법을 알아보고자 합니다.

포스팅의 목차

  1. 페이스북
  2. 넷플릭스
  3. 왓챠
  4. 아마존
  5. 추천 시스템 이슈와 미래

페이스북의 추천시스템

Facebook

페이스북에는 뉴스피드라는 공간이 있습니다. 사용자와 연관 있는 사람들의 게시글이 올라오는 소통 공간입니다. 초기 페이스북에 사용자가 적을 때는 사용자당 읽어야 할 게시글이 적어서 문제가 없었습니다. 하지만, 사용자의 증가에 따라 한 사람당 읽어야 할 게시글이 방대하게 증가하게 되었습니다. 해당 뉴스피드들은 사용자의 관심이 없어도 보이고, 정작 관심이 있는 것은 너무나 아래쪽으로 가서 못 보는 경우가 생기게 됩니다. 그래서 페이스북은 뉴스피드 선정 방식에 추천 알고리즘을 도입합니다.

NewsFeed of Facebook

Edge Rank Algorithm

사용자와 관련된 게시물을 먼저 보여주기 위해서 우선순위를 매기는 알고리즘입니다. 이는 사용자가 좋아할 만한 뉴스피드를 우선적으로 노출시키는 추천 시스템입니다.

Weight Calculation

  • 세 가지 기준으로 점수를 부여
  • 친밀도(Affinity), 가중치(Weight), 시간(Decay)을 기준으로 사용
  • 친밀도 > 가중치 > 시간 순서로 점수에 가중치를 부여
  • 합산 점수의 순위가 높을수록 상위에 노출

친밀도 계산 방식

Affinity

사용자와 게시글을 작성한 작성자 간의 관계를 살펴봅니다.

여기서 반응이란 좋아요, 댓글, 공유, 태그 등의 활동을 의미합니다.

  • 사용자 측면
    • 작성자의 다른 게시물에 대한 반응
    • 작성자 담벼락 게시물에 대한 반응
  • 작성자 측면
    • 사용자의 게시물에 대한 반응
    • 사용자 담벼락 게시물에 대한 반응
  • 사용자-작성자 간의 메신저 이용도

가중치 계산 방식

Weight

과거 사용자가 반응한 게시물과 현재 평가하고자 하는 게시물의 유사성 & 다른 사용자들의 게시물에 대한 반응을 살펴봅니다.

또한 아래의 우선순위로 가중치를 계산합니다.

동영상 > 그림/사진 > 텍스트

링크 > 직접 작성

시간에 따른 계산 방식

Decay

게시물이 작성된 시간, 게시물에 대한 마지막 반응 시간, 작성자와 관계를 맺은 시기 등을 기준으로 계산합니다.

그 외의 추천 방식

  • 스토리 범핑(Story Bumping) : 지나간 게시물 분석
  • 라스트 액터(Last Actor) : 최근 50개의 게시물 분석
  • 사용자가 직접 '먼저 보기' 버튼을 통해서 최상단에 노출

Story Bumping & Last Actor

Netflix

Netflix

넷플릭스는 DVD 대여 사업으로 시작하여 최근에는 온라인에서 바로 시청 가능한 스트리밍 서비스를 주력으로 성장 중인 영화 스트리밍 업체입니다.

넷플릭스 영화 시청의 75%가 추천을 통해 이루어지는 것으로 알려져 있습니다. 넷플릭스는 추천 시스템의 정확도가 회사의 핵심적인 경쟁력이라고 생각합니다.

실제로 2007년부터 매년 Netflix Prize 공모전을 통해서 기존보다 10% 이상 개선을 이루는 알고리즘에 100만 달러를 주는 공모전을 개최하며 추천 시스템에 막대한 투자를 하고 있습니다.

Cine-match Algorithm

넷플릭스는 전체 서비스하는 데에 100여 가지 이상의 알고리즘을 사용하고 있습니다. 그중에서도 사용자에게 알맞은 영화를 추천하는 알고리즘은 Cine-match Algorithm입니다.

Cine-match Algorithm은 Content-based와 Collaborative filtering을 함께 사용하는 Hybrid 추천 알고리즘입니다.

해당 알고리즘은 세 가지의 방식을 사용하여 가중치를 결정합니다.

  • Bayesian Classifier

    A영화를 본 사람이 B영화를 볼 확률 (큰 표본을 작은 표본으로 예측)

  • Association Analysis : Co-occurrence

    동시 발생 상관관계, A와 B를 동시에 좋다고 판단할 때, A와 B의 관계를 알아보는 방법

  • Neural Network

    소비자 선호 분야를 포함한 영화적 Attribute들에 대해 가중치를 결정

사용 데이터

  • Input Data
    • 기존의 영화 데이터 : 장르, 감독, 배우, 태그(줄거리, 분위기, 유머 코드, 등장인물 특성 등)
    • 사용자의 개별 콘텐츠 소비 취향 : 찜 한 영화, 좋아요/싫어요
    • 사용자의 시청 습관 : ex) 특정 콘텐츠를 중지한 시점, 빨리 넘기는 시점, 보지 않고 찜만 해 놓은 콘텐츠 등의 미세한 콘텐츠 소비 패턴
  • 중간 분석을 위한 생성 Data
    • 사용자와 다른 사용자와의 영화 선택 유사성
    • 사용자가 안 본 콘텐츠의 선호 예상 점수
  • Output Data
    • 추천 영화 리스트, 영화의 포스터

Tagger

Tag : 내용과 무관하게 Tag를 설명하기 위한 그림입니다.

넷플릭스는 콘텐츠를 약 5만여 가지의 태그 중 적합한 태그를 부여하여 정리한다고 합니다. 이렇게 나눈 콘텐츠를 개별 이용자의 이용 이력에 따라 맞춤형으로 더 정교한 추천을 해주는 것입니다.

이렇게 많은 종류의 태그를 콘텐츠에 부여하는 것은 직접 사람이 한다고 합니다. 넷플릭스는 50여 명의 정규직 태거가 근무하며, 일과에 넷플릭스 콘텐츠를 보고 직접 태그를 부여한 다고 합니다. 그래서 콘텐츠에 부여된 Tag들을 People Powered data라고 하기도 합니다.

이를 통해 우리가 알 수 있는 점은 정교한 추천을 위해서는 정교한 데이터가 필요하다는 것을 알 수 있고, 이는 아직 사람이 해야 하는 아주 힘든 작업이라는 점입니다.

WATCHA

Watcha의 영화 평점 및 유저 분석 시스템

한국판 Netflix라고도 불리는 왓챠는 다양한 영화 콘텐츠와 평점 기반 유저 분석과 추천 시스템으로 사랑받는 스트리밍 기업입니다.

Watcha의 영화 추천 시스템

Collaborative Filtering을 사용하여 선호하는 영화를 바탕으로, 사용자 간의 연관성을 파악합니다.

Collaborative Filtering

위의 그림에서 동그라미(선호도)의 크기는 유저가 결정(평점)합니다. 이를 통해서 유저 간의 경향성 (Covariance)을 파악합니다.

Netflix VS Watcha 알고리즘 비교

넷플릭스 왓챠 비교

Amazon의 추천 시스템

Amazon은 온라인 서점에서 시작되어 현재는 세계에서 가장 큰 이커머스 쇼핑몰입니다. 아마존은 특히 추천 시스템을 이용하여 많은 발전을 하였습니다. 매출의 35%가 추천 상품에서 발생한다고 할 정도입니다.

Amazon A9

출처 : keywordtool.io

아마존은 자신들만의 추천 시스템이 여러 가지 있는데 대표적으로 'A9'이 있습니다. 자신들만의 고유한 Item-to-Item Collaboration Filtering을 사용하는 시스템으로서, 아래와 같은 방식으로 수행됩니다.

  • 제품들 간의 유사성을 계산하는 방식
  • 특정 제품을 구매한 모든 고객에 대해서 각 고객이 구매한 다른 제품과 이 제품과의 유사성의 합을 계산합니다.
  • 이것들을 모든 고객들에게 적용시켜서 계산합니다.
  • 사용자의 검색 기록, 리뷰, 찜 목록, 장바구니, 구매한 물품 등의 사용자 정보를 전체 사용자와 비교하는 방식의 추천 시스템입니다.
  • Collaborative Filtering기반의 추천 서비스

아래는 아마존에 플레이스테이션을 검색했을 때의 결과이다.

Search 'Playstation'

제일 먼저 위와 같이 적절한 아이템을 보여줍니다.

What other items do customers buy after viewing this item? (Amazon)

아이템을 선택하면, 해당 아이템을 본 후에 소비자들이 사는 물건들을 알려줍니다.

Customers who viewed this item also viewed (Amazon)

또한, 해당 아이템을 본 후에 소비자들이 함께 많이 본 아이템을 알려줍니다.

Customers who bought this item also bought (Amazon)

그리고, 해당 아이템을 산 후에 소비자들이 함께 사는 아이템들을 알려줍니다. 이런 식으로 아마존은 한 아이템과 연관되는 다양한 추천 상품을 보여줌으로써 더 많은 소비를 유도합니다.

추천 시스템의 이슈

페이스북의 감정 조작 실험 (2012)

페이스북 데이터 과학 연구팀이 2012년 사용자 68만 9000여 명을 대상으로 뉴스피드에서 특정 감정과 관련된 단어를 삭제한 실험입니다.

페이스북의 감정 조작 실험 (2012)

해당 실험의 결과를 해석하자면, '뉴스피드가 긍정적이면 우리의 감정도 긍정적이 되고, 뉴스피드가 부정적이면 우리의 감정도 부정적이 될 수 있다'라는 결과를 얻었다고 볼 수 있습니다.

위의 실험을 통해서 증명되었듯이 추천 시스템이라는 점을 이용하여 사람의 심리를 나쁘게 이용할 수도 있다는 우려가 존재합니다.

그 외의 이슈들

  • 정교한 추천 시스템을 위한 정교한 데이터!
    • 만들기가 쉽지 않다.
  • 정해진 답이 없는 추천 결과!
    • 평가하기 힘든 추천 시스템 (이게 정확한 건가..? , 피드백을 믿을 수 있는가?)
  • 나보다 더 자신을 잘 아는 추천 알고리즘?
    • 지나친 개인의 소비 패턴 노출

미래의 추천 시스템은?

현재는 기업들이 '개인화 기술'이라고 부르는 시스템을 형성하고 있습니다. 하지만 가까운 미래에는 '초 개인화 기술'이라는 더욱더 소비자를 잘 아는 기술이 될 것입니다. 아마존은 '1인 마케팅'이 아닌 '0.1인 마케팅'을 하겠다고 선언하였습니다. 이것은 한 사람에게 소비패턴은 10가지 이상이 될 수도 있다는 의미입니다. 상품별로 또는 시간, 상황에 따라 소비자의 소비 패턴이 바뀔 수 있다는 의미입니다. 현재의 한 사람당 하나의 소비패턴 그리고 하나의 추천 시스템이 아닌, 한 사람당 10가지 이상의 소비 패턴을 예측하고 이에 맞는 추천 시스템이 되려고 기업들은 노력할 것입니다.

스켈터랩스의 초개인화 기술 구현 컨셉

또한 사용자의 점점 더 다양한 정보를 수집할 수 있게 되면서, 이에 맞춰서도 추천 시스템이 더 정교해질 것이라고 생각됩니다. 위의 그림과 같이 사용 가능한 모든 시그널(데이터)을 통해 추천 시스템을 구축하게 될 것입니다.

Reference

관련글 더보기