The Netflix Recommender System 논문 Review
전체 시청 시간의 무려 80%! 를 개인화 추천에 의해 소비되는 Netflix가 추천 시스템에 관한 논문 The Netflix Recommender System: Algorithms, Business Value, and Innovation을 작년 말(2015년 12월)에 ACM학회에서 발표했다. 그래서 이 논문을 통해 Netflix가 가지는 추천의 힘에 대하여 나의 의견을 쪼금 보태어(그래서 오류가 있을 수 있음) 리스티클(List Arcticle) 형식으로 리뷰를 해보고자 한다. 참고로 파란색 글씨는 예전에 어디선가 들었던 불확실한 배경 지식으로(일명 카더라~) 추가한 멘트임을 밝힙니다.
리스티클 (listicle)은 list와 article의 합성어로서 리스트 형태를 취하고 있는 기사로, 버즈피드에서 처음 시도하여 트래픽을 쓸어 담은 저널리즘 포맷이다. 근래에는 이 포맷의 글이 너무 많아 짐에 따라 피로도가 증가하는 추세이다.
우선 이 논문에서는 Recommender System의 수학적인 Algorithm은 다루지 않고, Netflix가 추천을 바라보는 관점, 다양한 추천 알고리즘의 Use Case, 비즈니스적인 가치 그리고 지속적으로 고객의 만족도 (클릭률, Retention 등)를 개선하기 위한 노력(A/B테스트 등)에 관하여 설명한다.
Netflix 사용자는 60~90초내에, 10~20개의 Title을 보고, 그중 3개 정도를 자세히 리뷰한다. 이때 고객이 관심 있는 콘텐츠가 있으면 시청을 지속하게 되고, 그렇지 않으면 고객이 시청을 포기하고 이탈 위험이 증가한다. 이렇게 단시간 내에 원하는 것을 제공하기 위해 Diverse Pool(의역: 다양한 콘텐츠 추천 방식)로 고객이 관심 있는 콘텐츠를 시청하도록 하며, 그 콘텐츠를 왜? 선택했는지 분석을 통해 지속적으로 추천 시스템을 개선해 나간다. (가장 공감이 가는 부분으로 추천 시스템뿐만 아니라 모든 분야에서 고객이 왜? 이것을 선택했는지에 대한 이해는 꼭 필요한 부분이라 생각된다. )
Netflix는 Device에 의존적이지만 일반적으로 40 rows, 75 video(per row)를 제공하며, 각 Row별 모두 다른 개인화 추천 알고리즘을 사용한다. 어떤 Row(추천 알고리즘)를 배치할지 또한 개인화되어 제공한다.
위 화면은 Suspenseful Movies Video장르에서 PVR 추천 알고리즘으로 추천한 결과이다. 이처럼 PVR알고리즘은 특정 장르내 콘텐츠 중에서 개인화된 Ranking을 제공하는 추천 방식이다. Netflix는 Micro-genre(또는 Alt-genre라 불리는)로 7만여 가지의 다양한 콘텐츠를 분류하고 제공하며 이러한 Micro-genre는 유저들에게 단순히 추천 순위가 높은 영화가 아닌 신선한 충격(Serendipity)을 주는 영화를 추천해 줄 수 있다고 한다.
참고로, 개인화 추천에서도 자주 추천되는(또는 추천 순위가 높은) 콘텐츠는 상대적으로 인기 콘텐츠일 가능성이 높다. 그래서 서비스 가입 후 일정기간은 효과적인 추천이 되지만 시간이 지날수록 추천의 식상함으로 인해 만족도가 점점 떨어지기 마련인데 이를 해결하기 위한 것이 우연성(Serendipity) 즉 신선한 콘텐츠를 통해 추천의 만족도를 높이는것이다. 하지만 우연성만 강조한 추천은 산으로 가기 때문에 개인의 추천 순위과 우연성의 적절한 밸런스가 중요하다.
1일~1년 기간의 개인의 시청 트렌드(성향)의 변화를 분석하여 유저가 관심을 가질 수 있는 최적의 추천 Metrix과 알고리즘으로 Video를 추천한다. PVR과 다른 점은 전체 콘텐츠를 대상으로 추천한다는 점이다.
실시간(수분~수일)으로 발생되는 이슈를 찾아내어 개인화 추천에 반영하는 Trening Ranker알고리즘은 대단히 높은 예측력을 발휘한다. 이 알고리즘은 두 가지 서로 다른 형태의 이슈를 분석 하는데, 하나는 발렌타인 데이에는 Romantic Movie를 많이 보는 것과 같이 월, 년 단위 주기적으로 발생하는 Boosting Trend이고, 다른 하나는 기상 이변으로 허리케인이 상륙하면 허리케인 관련 다큐멘터리나 Movie가 많이 시청하 것과 같이 일회성, 단기성 Boosting Trend이다.
대부분의 Video 추천 알고리즘은 안 본 Movie Title을 추천하는데, 'continue watching ranker’는 최근에 시청한 연속극 형태 Title을 추천 대상으로 한다. 이 알고리즘은 연속극 형태의 Title의 시청중단 이유가 지속적으로 시청 중인지?, 잠시 중단한 것인지?, 보기 싫어서 이탈했는지? 중단 사유를 예측하여 지속 시청 가능한 연속극 Title을 계속 추천해 주는 알고리즘이다. 일반적인 추천 알고리즘보다는 통계 추청 방식을 한다. 속된 말로 안 본 사람은 있어도 한 번만 본 사람이 없는 연속극 콘텐츠를 찾고 유저가 관심이 있는 콘텐츠라면 지속적으로 몰아 보기를 할 수 있도록 유도하는 알고리즘이 아닌가 하는 생각이 든다.
Netflix 전체 시청 시간의 80%는 개인화 추천, 나머지 20%가 검색에 의해 이루어진다. 이 검색 시스템은 검색 단어의 검색 결과와 더불어 검색단어의 실제 의도를 추정하여 연관 검색 결과를 같이 보여준다. 예를 들어 "usual"(Fig3 왼쪽) 검색 시 질의 의도인 "usual suspects"를 추정하여 "The Usual Suspects"와 연관된 영화를 검색 결과로 제공한다. 또 다른 예로 "fren"(Fig3 오른쪽) 질의시는 "fren" 단어와 포함된 Title 제목과 더불의 "fren" 질의어의 의도로 추정되는 "French Movies" 장르의 영화를 같이 검색 결과로 보여 준다.
Netflix는 추천 시스템의 가치를 정량적으로 분석하고 판단한다. 관련 지표로 보유 중인 Catalog의 Title을 얼마나 다양하게 시청되는지를 보여주는 ECS(Effective Catalog Size) 수치를 보면, 단순 인기 Title을 추천해 주는 것 보다 개인화 추천이 4배의 시청 다양성이 크고 (왼쪽 그림은 y 축 상단으로 갈수록 다양한 Video가 시청됨을 의미함), 개인화 추천 시 추천 순위(Rank) 별 클릭률이 얼마나 높은지 Fig4 오른쪽 그림을 보면 알 수 있다. 이러한 지표로 Netflix는 추천 시스템의 가치를 1년에 1B$ 우리 돈으로 무려 1.2조 원의 가치고 있다고 판단한다.
지속적으로 고객의 Retention 향상을 위해 프로토 타이핑된 추천 Model을 "Offline 실험 -> 평가 -> Online실험(A/B테스트) -> 평가 -> 서비스 적용"의 과정을 통해 서비스에 적용한다. 이 일련의 과정에서 Online실험은 상대적으로 시간이 많이 걸리기 때문에 Historical 데이터로 진행하는 Offline실험의 정확도 개선을 통해 전체 Iteration의 과정을 단축시키고자 한다.
더 나은 Offline 실험 방법을 찾자 (5.1.Better Experimentation Protocols)
전 세계에 적용되는 추천 알고리즘을 만들자 (5.2.Global Algorithms)
추천의 UI 명당자리를 잘 관리하자 (5.3.Controlling for Presentation Bias)
이제 UI도 Fully개인화 하자 (5.4.Page Construction)
신규 가입한 놈은 어떻게 하지? (5.5.Member Coldstarting)
계정을 돌려쓰는 놈은? (5.6.Account Sharing)
이 논문을 Review 하면서, 공짜 점심 없음 정리(No Free Lunch)를 추천에 관하여 가장 적용하고 있는 곳이 Netflix가 아닌가 한다. 모든 문제를 쪼개고 분석하고 그 문제에 최적화된 솔루션을 사용하는 점이 인상 깊었다. 이런 점에서 Netflix가 가지는 추천의 힘을 현재는 streaming 분야만 집중하지만, 추천의 힘이 곧 경쟁력이 되는 디지털 콘텐츠, e커머스 등으로 비즈니스 영역이 확장될지 두고 볼일이다. 그리고 추천에 관심이 많은 개발자로서 이렇게 멋찌게 추천 시스템을 만드는 Netflix가 조금 아니 많이 부러웠다.
No Free Lunch라는 용어는 경제학에서 이미 사용하던 것이다. 어떤 특정 정책에 의해 얼핏 보면 이득을 얻는 것 같지만 그것은 한 측면의 이득일 뿐이고 반드시 이면에 다른 측면이 있고 그 측면에서 손해가 발생한다는 것이다.
참고 자료
논문 : http://dl.acm.org/citation.cfm?id=2869770.2843948
Netflix blog: http://techblog.netflix.com/2015/04/learning-personalized-homepage.html
Micro-genre: http://www.theatlantic.com/technology/archive/2014/01/how-netflix-reverse-engineered-hollywood/282679/
추천의 성능평가에 대하여 : http://bahnsville.tistory.com/900