영화 추천 알고리즘, 나이브 베이즈 분류
1. 넷플릭스의 성공 요인
넷플릭스는 콘텐츠와 편리한 접근성을 바탕으로 성장했다. 뿐만 아니라 당신의 취향을 분석하여 돈을 번다.
넷플릭스의 또 다른 핵심 경쟁력은 바로 '추천 알고리즘'이다. 추천 알고리즘은 당신의 취향을 분석하여 오랜 시간동안 넷플릭스에 머물도록 한다. 취향의 저격의 수익과 직결되기 때문에 넷플릭스는 알고리즘을 중요하게 생각한다.
넷플릭스는 영화 추천 알고리즘의 성능을 10% 향상 시키는 팀에게 100만 달러를 상금으로 주는 대회인 'NETFLIX PRIZE'를 열기도 했다. 현재는 Netflix Research 부서를 운영하고 있다.
이처럼 넷플릭스는 콘텐츠를 만들고 유통할 뿐 아니라, 인공지능을 핵심 경쟁력으로 삼는 IT 기업이라 생각해야 한다.
2. 넷플릭스의 추천 알고리즘
넷플릭스의 추천 알고리즘은 내용 기반 필터링과 협업 필터링, 크게 두 가지 방식으로 작동한다.
1) Content Based Method(내용 기반 필터링)
넷플릭스에 새롭게 가입한 사용자가 있다. 넷플릭스는 이 사용자가 무엇을 좋아하는지 모른다.
이처럼, 아무 정보도 없는 상태를 Cold Start라고 한다.
따라서, 어떤 영화를 보든 그 영화를 좋아할 확률을 50%, 싫어할 확률도 50%라고 가정해보자.
* 이유 불충분의 원리(참고: 베이즈 정리)
영화를 좋아할 확률 50%를 '사전 확률(Prior Probability)'이라 부른다.
사용자는 넷플릭스에서 총 10편의 영화를 시청했다.
사용자는 5편의 영화에 좋아요를 눌렀는데, 그 중 3편이 액션 장르였다. 즉, 좋아하는 영화 중 60%가 액션 장르이다.
나머지 5편의 영화에는 싫어요를 눌렀는데, 그 중 1편이 액션 장르였다. 즉, 싫어하는 영화 중 20%가 액션 장르이다.
우리는 이 상황을 가로와 세로의 길이가 각각 1인 정사각형으로 표현할 수 있다.
여기서 사각형의 가로 길이를 영화를 좋아할 확률과 싫어할 확률로 분할한다. 따라서, 사각형의 가로 길이는 각각 0.5로 분할된다.
그리고 사각형의 왼쪽을 좋아하는 영화일 때, 그 영화가 액션 장르인지 아닌지로 분할한다. 여기서는 0.6과 0.4이다.
마찬가지로 오른쪽을 좋아하지 않는 영화일 때, 그 영화가 액션 장르인지 아닌지로 분할한다. 여기서는 0.2와 0.8이다.
이제 4개로 분할된 사각형의 가로와 세로의 값들을 곱하면 각 상황의 확률을 구할 수 있다.
이 사각형의 넓이를 통해 시청자가 액션 영화를 봤을 때, 좋아요를 누를 확률이 75%라는 것을 알 수 있다.
알고리즘은 이 데이터를 근거로 사용자에게 액션 영화를 추천했을 때,
시청자가 그 영화를 좋아할 확률을 50%(사전 확률)에서 75%로 업데이트 한다.
데이터를 통해 업데이트 된, 새로운 확률인 75%를 '사후 확률(Posterior Probability)' 이라고 부른다.
따라서, 인공지능은 사용자에게 액션 장르를 더 노출한다.
이번에는 인공지능이 장르가 아니라 출연 배우에만 순진하게(Naive) 가정해보자.
사용자는 넷플릭스에서 총 10편의 영화를 추가로 시청했다.
그 중 5편의 영화에 좋아요를 눌렀는데, 그 중 4편은 라이언 레이놀즈가 출연한 영화였다.
즉, 이 시기에 좋아한 영화의 80%에는 라이언 레이놀즈가 출연했다.
나머지 5편의 영화에는 싫어요를 눌렀는데, 그 중 1편에 라이언 레이놀즈가 출연했다.
즉, 이 시기에 싫어한 영화의 20%에는 라이언 레이놀즈가 출연했다.
이제 인공지능은 사용자가 라이언 레이놀즈가 출연한 영화를 꽤나 좋아한다는 정보를 학습했다.
만약 어떤 액션 영화에 라이언 레이놀즈가 출연한다면 시청자는 이 영화를 얼마나 좋아할까?
인공지능은 베이즈 정리를 이용해 이 값을 정확하게 구할 수 있다.
넷플릭스는 액션 장르일 때, 시청가자 그 영화를 좋아할 확률이 75%라는 것을 이미 알고 있다.
따라서, 사각형의 가로 길이를 0.75와 0.25로 나눈다.
그리고 좋아한 영화의 80%에 라이언 레이놀즈가 출연했고, 싫어한 영화의 20%에 라이언 레이놀즈가 출연했다는 추가 정보를 얻었다.
이제 넷플릭스는 라이언 레이놀즈가 출연한 액션 영화를 사용자가 얼마나 좋아할지 계산할 수 있다.
그 값은 92.3%이다. 따라서, 넷플릭스는 이 조건을 만족하는 영화를 사용자에게 노출 시킬 것이다.
이처럼, 나이브 베이즈 알고리즘은 당신의 정보를 학습하면서 정확도를 개선한다.
물론, 넷플릭스는 단순히 하나의 알고리즘만을 사용하지 않고, 많은 알고리즘을 앙상블(Ensemble)하여 사용한다.
또한, 섬세하게 영화를 분류하기 위해, 영화에 전문적으로 태그를 다는 Tagger를 고용하고 있다.
넷플릭스만의 정교한 태그는 내용 기반 알고리즘을 더욱 정확하게 만들어주는 원동력이다.
2) Collaborative Filtering(협업 필터링)
해당 포스팅은 아래의 출처를 바탕으로 정리했습니다.
https://www.youtube.com/watch?v=me--WQKQQAo&list=PL7_MtvxhoNAwVx8Dm1MkSNaivIQcQFaqi&index=2