1탄 (협업 필터링, 유사도 필터링) 유튜브 & 넷플릭스 추천 알고리즘의 비밀

유튜브와 넷플릭스를 볼 때 제가 본 영화나 드라마와 비슷한 느낌의 콘텐츠가 추천되는 것을 본 적이 있나요?

이는 바로 여러분이 아르고 리듬(Argorithm)의 선택을 받았다는 것! 이 알고리즘에 대해서는 많이 들어보셨을 겁니다.

사전적으로 해석하면 어떤 문제를 해결하기 위한 절차, 방법, 명령어 집합을 의미합니다.

여러 플랫폼은 이 알고리즘을 통해서 사용자들이 시청한 영상 기록을 수집하고, 어떤 장르를 좋아하는지 예측해서 맞춤형 콘텐츠를 보여주는 방법입니다.

이 과정에서 넷플릭스는 추천 알고리즘을 개선하기 위해 상금 10억이 걸린 대회를 개최하여 소비자를 2천개 이상의 집단으로 세분화하는 등 매우 디테일하게 타겟팅하였습니다.

유튜브는 이용자의 70%는 추천 알고리즘을 기반으로 새로운 작품을 탐색하고 감상할 수 있으며 부적절하고 고품질의 동영상을 필터링하기 위해 1년에 30회 이상 알고리즘을 수정합니다.

여러 기업들이 이렇게 추천, 이해, 리듬을 개선, 발전시키기 위해 노력하는 이유는

소비자 이탈을 방지하고 고객 충성도(loyalty)를 높여 안정적인 수익 기반을 마련하는 데 핵심적인 역할을 하는 알고리즘으로 급부상했기 때문입니다.

자, 그러면 이와 같은 알고리즘이 어떻게 만들어지는지 한번 같이 분석해볼까요?

분석의 전체적인 흐름

추천 시스템으로는 크게 협업 필터링(Collaborative Filtering) 콘텐츠 기반 필터링(Content-based Filtering) 두 가지가 대표적입니다.

전체적인 순서는 아래와 같이 진행될 예정입니다!

영화 간 유사도 분석 ↓ 사용자 간 유사도 분석 ↓ 영화 간 장르 유사도 분석 ↓ 사용자 평가 예측

수집 DATA(공공 데이터)

Movie Lens 100k 영화 정보 데이터 영화 정보 관련 9,125개의 데이터를 수집하고, movie Id(영화 ID), title(영화 제목), genres(영화 장르)를 이용했습니다.

Movie Lens 100k 영화 평점 데이터 영화 평점에 대한 100,004개의 데이터를 수집하여 userId(사용자 ID), movieId(영화 ID), rating(사용자가 부여한 평점), timestamp(타임스탬프)를 이용하였습니다.

영화정보 및 평가데이터 보기

영화 평점 데이터의 탐색적 데이터 분석(EDA)을 통해

영화별 평점 개수 분포 시각화 사용자별 평점 개수 분포 시각화

평점 개수와 평점 간 상관관계 분석가 중평점을 산출하여 Top5 영화 리스트업

이렇게 총 시각화 세 가지, 분석 두 가지 결과를 확인했어요.

시각화 그래프에서 영화별, 사용자별 평점 개수 분포를 확인하는 것 외에도 전체적인 영화 평점이 3~5점 사이에 가장 많은 분포를 보이는 것을 알 수 있겠죠?

해당 데이터를 사용하여 상관관계를 분석한 결과 평점수가 150이상일 때 평점수와 평점 평균 간약한 양의 상관관계를 가졌음을 알 수 있습니다.

의미 있는 결과, 도출을 위한 평점 개수에 가중 평점을 산출했습니다.

해당 분석에 사용된 연산식은 다음과 같습니다!

(Weighted Rating)=(v/(m+v))*R+(m/(v+m))*Cv:개별 영화에 평점을 투표한 횟수 m:평점을 주기 위한 최소 투표 횟수 R:개별 영화에 대한 평균 평점 C:전체 영화에 대한 평균 평점

사용자기반협업필터링

자기와 다른 사람의 취향을 분석해서 취향이 비슷했던 사용자가 좋아했던 영화를 자기에게도 소개하는 방식입니다.

사용자가 영화 ‘조커’를 본다면, 조커를 본 다른 사람이 좋아하는 영화 ‘라라랜드’를 추천해 주는 거죠.

사용자기반협업필터링전체시나리오순서,지금부터영화데이터와평점데이터를이용해분석하겠습니다!

먼저 userid와 title로 피벗 테이블을 만들어 사용자가 평가한 평점에 따라 유사도 행렬을 구한 후

사용자간의 유사도 측정을 위해 상관 분석으로 피어슨 유사도를 분석합니다.

기본적인 원리는 위 표와 같이 가장 유사도가 높은 사용자가 개봉한 영화 중 아직 시청하지 않은 영화를 권장합니다.즉, 가중평가가 높은 영화 순으로 목록이 만들어집니다.

소팅(sorting) 기능으로 userId “514”를 선택한 후 유사도 순으로 정렬하면 가장 비슷한 사용자가 userid ’19’임을 알 수 있습니다.

다시 영화 가중평점과 사용자 ’19’의 평점이 높은 순으로 정렬하면 사용자 ‘514’가 못 본 영화의 추천 목록이 나옵니다.

쇼생크 탈출, 대부, 유주얼 서스펙트, 쉰들러 리스트 등

취향이 비슷한 사용자가 본 영화 중에서 아직 사지 않은 영화를 추천합니다.

장르에 따른 콘텐츠 유사도 기반 필터링

제가 본 콘텐츠의 장르를 분석해서 비슷한 장르와 내용의 영화를 추천하는 방법입니다.

영화 데이터 파일을 로드하고 파생변수 블록으로 장르 컬럼에 통합되었던 정보를 각각 하나의 컬럼으로 만듭니다.

장르별로 필터링을 하기 위해서는 먼저 장르 데이터를 전처리를 해야 합니다.

어드벤처 장르를 포함하며, 어드벤처 컬럼이면 TRUE, 아니면 FALSE가 됩니다.

「TRUE=1」, 「FALSE=0」과 같이, 미리 숫자 형식으로 바꾸어 용이하게 연산을 실시한 후, 소팅 기능에 의해서 「토이스토리」와 장르가 비슷한 순서로 리스트 업 했습니다.

자,유사도를계산해서토이스토리와장르가몇번이나겹쳐지는지를확인을해보도록하겠습니다.

비슷한 장르의 영화로 영화의 가중평가점이 높은 순으로 추천을 받습니다

토이스토리3, 몬스터주식회사, 인사이드 아웃 등 애니메이션 중심의 영화들이 추천됐다.?

자,이렇게여러분이보는콘텐츠는다양한방법의추천알고리즘으로이루어진다는것을알수있는시간이었죠?

이 밖에도 영화 데이터를 이용하면 “아이템 기반의 협업 필터링”, “사용자 평점 예측” 등 다양한 추천 알고리즘과 예측 분석을 할 수 있습니다.

다음은 영화 데이터를 사용한 또 다른 분석 방법을 알아보고, 그에 따른 확장 가능성과 기대 효과로 만나보겠습니다. ≧(≧◇≦)≦

?빅재미로 직접 체험한다?빅데이터분석은 빅재미로, 빅재미는 다양한 분야에 데이터 분석을 적용함으로써 최적의 의사결정과 투자 효율성 증대 등 비즈니스 생산성을 극대화합니다. 솔루션을 바로가기 쉽고 빠르게 접근할 수 있어 코딩 시간을 획기적으로 단축할 수 있습니다. 데이터 업로드, CSV, RDS, TXT 등 다양한 포맷의 데이터 파일 변경 없이 마우스로 Drag & Drop하여 쉽게 로드할 수 있습니다. 간단한 빅데이터 분석, 데이터 분석 소프트웨어(Big Zami) 혁신제품 전용몰로 이동하는 혁신제품 지정 인증 취득 기술 혁신성, 시장성, 사회적 필요… www.bigzami.com 안녕하세요여러분 ㅎㅎ 오늘도 빅데이터 분석 전문가가 되실 준비 되셨습니까? 지난번 지역주민감도 blog.naver.com

error: Content is protected !!