넷플릭스(Netflix)는 사용자들이 (2020년 2분기 기준, 1억 5,100만 명) 그들이 좋아할 만한 컨텐츠를 찾을 수 있도록 하는 방법을 꾸준히 모색해 왔습니다. 이 중 큰 부분은 사용자들이 넷플릭스에서 빠르게 컨텐츠를 찾고 즐길 수 있도록 직관적이고, 재미있으며, 의미있는 고객 경험을 제공하는 것이었습니다.

 

 

 

사용자는 90초 안에 이탈합니다.

90초 안에 시선을 끌지 못하면, 사용자는 관심을 잃어버리고 다른 활동을 하러 가버린다는 것을 알고 있습니다. 이것은 적합한 컨텐츠 혹은 사용자가 해당 컨텐츠를 시청해야 할 충분한 이유를 제공하지 못했기 때문입니다. 사용자가 관심있는 컨텐츠인지를 빠르게 판단할 수 있도록 하려면 어떻게 해야 할까요?

옛말처럼 그림은 천 마디 말(Word)의 가치가 있습니다. 신경 과학자들은 인간의 뇌가 0.0013초 만에 이미지를 처리 할 수 있으며, 시각적 정보에 비해 텍스트를 처리하는 속도가 훨씬 느리다는 것을 발견했습니다. 넷플릭스에 표시되는 이미지를 개선함으로써 고객 경험을 향상시킬 수 있을까요?

이번 글은 사용자 참여도(Engagement)를 높인 획기적인 A/B 테스트에 대해 설명합니다. 목표는 다음과 같습니다.

  1. 사용자들이 원하는 컨텐츠를 빠르게 찾을 수 있는 삽화가 무엇인지를 정의합니다.
  2. 각 타이틀에 대한 사용자 참여도를 높이고 전체적으로 더 많이 시청합니다.
  3. 여러 이미지를 평가할 때 제목을 잘못 표기하지 않도록 합니다.

 

 

배경(Background)과 동기(Motivation)

 

 

Image for post

 

사용자가 위의 넷플릭스 홈페이지에 진입하면 삽화, 제목, 영화등급, 시놉시스, 평점 등의 정보를 마주하게 됩니다. 여러 연구를 통해, 사용자들은 삽화를 가장 먼저 확인한 다음 나머지 정보들을 더 살펴볼지 결정한다는 것을 알게 되었습니다. 그 사실을 알고 우리는 한눈에 클릭률(CTR, Click-Through Rate)을 개선할 수 있는지 자문해 보았습니다.

 

이 질문에 답하기 위해, 전체 타이틀의 감성을 단일 이미지로 전달하는 매력적인 삽화를 제작하는 크리에이티브 서비스 팀에 도움을 구했습니다. 크리에이티브 서비스 팀은 스튜디오 파트너들과, 내부 디자인 팀과 함께 다양한 종류의 삽화를 제작했습니다.

우리는 넷플릭스 경험과 전체적인 사용자 참여도를 향상시킬 수 있는 (단순히 하나의 컨텐츠에서 이탈하여 다른 컨텐츠를 선택하는 것이 아닌), 각 비디오에 가장 알맞는 삽화를 찾기 위한 데이터 기반의 프레임워크를 만들기로 했습니다.

 

 

더 나은 제품(Product)을 만들기 위한 실험

넷플릭스의 A/B 테스트 철학은 점진적인 배포, 데이터에 기반한 의사결정, 그리고 빠른 실패와 관련이 있습니다. 이미지 선택과 같은 복잡한 영역의 실험을 수행하는 경우, 보다 엄격하고 정교하게 점진적으로 가설을 검증해 나가려고 합니다.

 

 

첫 번째 실험(Experiment)

 

가장 먼저 “The Short Game” 이라는 단편 영화로 실험을 진행했습니다. 이 영화는 골프에서 서로 경쟁하는 여러 초등학생을 주제로 영감을 주는 이야기입니다. 이 영화의 기본 삽화(Default Artwork)를 보면 이것이 아이들에 대한 것이라는 사실을 깨닫지 못하고 넘어갈 수 있습니다. 이 영화의 시청자들을 늘릴 수 있는 삽화를 만들 수 있을까요?

 

 

 

Image for post
사용자를 3개의 셀(Cell)로 나누어 진행한 첫 번째 A/B 테스트. Cell 1의 사용자를 대상으로 노출된 기본 삽화 대비, Cell 2/3의 사용자에게 노출된 새 삽화들은 기본 삽화 대비 각각 14%, 6% 높은 컨텐츠 선택률(CTR)을 기록했습니다.

 

 

사용자들을 3개의 셀(Cell)로 나누어 진행한 첫 번째 A/B 테스트. Cell 1의 사용자들을 대상으로 노출된 기본 삽화 대비, Cell 2/3의 사용자들에게 노출된 새 삽화들은 기본 삽화 대비 각각 14%, 6% 높은 컨텐츠 선택률(CTR)을 기록했습니다.

이 질문에 답하기 위해, 각 테스트 셀(Cell) 별로 다른 삽화가 노출되는 A/B 테스트를 진행했습니다. 우리는 각 Variation 별 클릭률(CTR), 총 재생시간, 짧은 재생시간의 비중, 컨텐츠 시청률(영화나 시리즈물을 얼마나 많이 보았는지) 등과 같은 사용자 참여도를 측정했습니다. 아니나 다를까, 여러 삽화를 사용함으로써 시청자 수를 늘리고 참여도를 높일 수 있었습니다.

회의론자는 이것이 단순히 하나의 컨텐츠가 다른 컨텐츠로 대체된 것이라고 말할 수 있습니다. 그러나 이것은 사용자들이 삽화 변화에 민감하다는 초기 신호였습니다. 또한 이것은 넷플릭스 경험 상에서 사용자들이 찾고 있는 유형의 컨텐츠를 찾도록 도울 수 있는 더 나은 방법이 있다는 신호였습니다. 많은 컨텐츠들에 대해서도 첫 번째 실험과 같은 긍정적인 효과를 얻을 수 있는지를 확인하기 위해 점진적으로 더 큰 실험에 착수했습니다.

 

 

 

두 번째 실험 (multi-cell explore-exploit test)

 

그 다음 실험은 인기 스펙트럼을 모두 아우를 수 있는 블록버스터(blockbusters)와 비주류(niche) 컨텐츠를 모두 포함하였으며, 이전보다 훨씬 더 많은 수의 컨텐츠를 대상으로 진행되었습니다. 이번 실험의 가설은, 수 많은 사용자들을 각 컨텐츠에서 가장 알맞는 삽화를 선택하여 할당한다면 총 스트리밍(Streaming) 시간을 높일 수 있다는 것 입니다.

이 실험은 2개의 explore-exploit 테스트로 구성되어 있습니다. “explore” 테스트는 각 삽화들에 대한 사용자 참여도를 측정합니다. “exploit” 테스트는 그 다음 사용자들에게 (explore 테스트에서) 가장 참여도가 높은 삽화를 제공하고 총 스트리밍 시간을 향상시킬 수 있는지 확인했습니다.

 

 

Image for post
“explore” 테스트는 어떤 삽화가 가장 높은 사용자 참여도(Engagement)를 보이는지 측정합니다. 사용자들을 4개의 셀(Cell)로 나누어 각각 4개의 다른 삽화를 보여주며, 35일이 넘는 기간동안 가장 우수한 성과를 보인 삽화를 “exploit” 테스트 대상자들에게 노출합니다.
Image for post
“exploit” 테스트는 기본 삽화를 노출하는 대조군(Control Cell)을 포함한 3가지 다른 지표(Metric)에서 가장 우수한 성과를 보인 삽화를 각 셀(Cell)의 사용자들에게 노출하였습니다. 각 Cell 들의 성과는 “총 스트리밍 시간”, “테스트에 포함된 컨텐츠들의 재생시간 비중” 으로 비교 측정합니다.

 

“explore” 사용자 집단에서는, 각 컨텐츠의 모든 삽화들에 대한 선택률(CTR)을 측정하였습니다. 선택률은 재생횟수를(매우 짧은 재생은 제외) 기기에서의 노출횟수로 나누어 산출하였습니다. 다만, 여러 부분에 걸친 사항들로 인해 선택률 지표에 대한 몇 가지 선택을 해야 했습니다.

 

 

  • 전체 에피소드나 프로그램을 시청한 사용자들만 포함해야 할까요? 아니면, 몇 분만 시청한 사용자들도 포함해야 할까요?
  • 선택률은 국가 단위, 지역 단위, 혹은 전체집단에 대해 측정해야 할까요?

 

오프라인 모델링을 통해, 위의 항목들을 고려하여 3가지 종류의 “선택률” 지표를 도출했습니다. 아래 그림은 2가지 테스트가 어떻게 연결 되었는지를 알려 줍니다.

 

 

 

Image for post
1. Netflix API에서 “Explore” 테스트의 각 Cell 별로 삽화 후보들을 제공합니다. 2. “Explore” 테스트에 포함된 사용자들의 시청이력과 노출이력을 수집합니다. 3. 지표가 가장 우수한 삽화를 확인합니다. 4. 세 가지의 지표를 기준으로 선정된 세 가지의 삽화(Winning Artwork)들은 “Exploit” 테스트의 각 Cell 별로 나누어 노출됩니다.

 

실험결과는 분명했습니다. 테스트에 포함된 컨텐츠들의 조회수가 크게 늘었고, 총 스트리밍 시간 또한 증가했습니다. 첫 번째 실험에서 제기된, 컨텐츠 간 잠식효과는 없었다는 것이 증명되었습니다. 사용자들에게 더 적절한 삽화를 보여줌으로써 그들이 이전에 발견하지 못했던 컨텐츠를 더 많이 시청하게 되었습니다. 또한, 짧은 재생시간, 시청한 컨텐츠의 비율과 같은 2차 지표들에 부정적인 영향을 미치지 않는 것을 확인하였습니다. 그리고 가장 우수한 성과를 보인 삽화를 찾는 것 만큼 삽화를 주기적으로 교체하는 것이 효과가 있을지를 확인하기 위해 수개월에 걸친 종단적인 A/B 테스트를 진행했지만 삽화를 교체하는 것만으로는 이점이 없었습니다.

 

 

이 테스트를 진행하면서 몇 가지 엔지니어링 적인 어려움이 있었습니다. 우리는 기간에 따라, 여러가지 기기(device)를 통한 많은 노출(impression) 데이터를 일관성 있게 수집하기 위해 두 가지 영역에 투자를 해야만 했습니다.

 

  1. 클라이언트 측면의 노출 추적(Client side impression tracking): 선택률을 측정하는 주요 구성요소 중 하나는 컨텐츠의 제목이 기기의 뷰포트(viewport)상에 얼마나 들어오는지를 알야아 합니다. 즉, 모든 주요 기기 플랫폼은 1초보다 짧은 순간이라도 사용자가 무언가를 고려하기 위해 멈춘 순간 뷰포트에 들어오는 모든 이미지를 추적할 필요가 있습니다. 이러한 모든 마이크로 이벤트(micro-events)는 사용자 세션 데이터의 일부로 압축되고 주기적으로 전송됩니다. 아이패드(iPad)에서 스크롤하는 것이 TV에서의 내비게이션과 다르더라도 모든 장치에서 일관성있게 노출을 측정해야 합니다. 우리는 네트워크의 모든 단계를 걸쳐 낮은 손실률로(기기의 적은 저장공간으로 인해 이벤트 발송 전에 이벤트가 제거되거나, 네트워크 상의 손실 등) 매일 수십억 개의 노출을 수집합니다.
  2. 삽화에 대한 안정적인 식별자(Stable identifiers for each artwork): 각 삽화들에 대한 고유한 ID를 만드는 것은 놀랍도록 도전적인 영역이었습니다. 크리에이티브 서비스팀은 타이틀 처리, 품질향상을 위한 보정, 고해상도의 삽화 소싱 등을 통해 삽화들을 꾸준히 개선하고 있었습니다.

 

 

 

Image for post

 

위의 도표는 삽화의 구조를 나타냅니다. 삽화에는 배경 이미지, (넷플릭스가 지원하는 언어에서) 현지화 된 타이틀 처리, 선택적인 ‘새로운 에피소드(new episode)’ 뱃지, 그리고 넷플릭스가 제작한 컨텐츠라는 것을 의미하는 넷플릭스 로고가 포함되어 있습니다.

 

 

Image for post
위의 두 이미지는 가로/세로 비율과 다른 타이틀을 가지고 있지만 같은 계통의 ID를 가지고 있습니다.

 

 

그래서 우리는 가로/세로 비율, 절단, 보정, 현지화 된 타이틀 처리는 차이가 있지만 같은 배경 이미지를 가진 삽화들을 자동으로 묶는 시스템을 만들었습니다. 같은 배경 이미지를 공유하는 삽화는 동일한 “계통 ID(lineage ID)”를 가집니다.

크리에이티브 서비스팀이 타이틀 처리와 이미지를 일부 절단했음에도 불구하고, 우리는 삽화의 계통 ID를 활용하여 데이터 로그를 남길 수 있습니다. 우리의 알고리즘은 여러 국가의 사용자들이 선호하는 로케일(locale)이 다양하더라도 이들의 데이터를 결합할 수 있습니다. 이것은 상대적으로 작은 규모의 국가들과 적게 사용되는 언어에서 우리의 데이터를 향상시켰습니다.

 

 

 

세 번째 실험 (single cell title level explore test)

 

이전 실험들이 성공적이었지만, 삽화의 성과를 더 빠르고 정확하게 확인할 수 있는 방법이 있습니다. 컨텐츠에 가장 좋은 삽화라고 확신하기 전까지는, 최소한의 시간동안 무작위로 선정된 최소한의 사용자들을 대상으로만 실험을 진행하고자 합니다.

 

 

Image for post

 

두 번째 실험에서는 동일한 규모의 셀(Cell)들에 특정 컨텐츠의 후보 삽화 하나씩을 할당하는 구조입니다. 몇 일 동안 노출이 되기 때문에 낮은 성과를 보이는 삽화를 포함하여 잠재적으로 노출을 낭비했습니다. 또한, 실험에 할당하는 트래픽 규모에 따라, 예를 들어 2백만 명은 인기 컨텐츠에 대한 성과는 정확히 파악할 수 있지만 표본 크기가 작아 비주류 컨텐츠의 성과를 정확히 파악하기에는 어려움이 있습니다. 만약 이보다 훨씬 많은 2천만 명의 트래픽을 할당한다면 비주류 컨텐츠의 성과는 정확히 파악할 수 있겠지만 인기 컨텐츠에 낮은 성과를 보이는 삽화가 과도하게 노출되는 문제가 있습니다.

 

 

두 번째 실험은 평가가 필요한 이미지(삽화) 수를 동적으로 처리하지 않았습니다. 다른 컨텐츠에 대해서는 2개의 이미지만 평가하면서 인기 컨텐츠에 대해서는 10개의 이미지를 평가할 수 없었다는 의미입니다.

우리는 새로운 “title level explore test” 에서 이러한 문제들을 해결하려고 했습니다. 이번 실험에서는, 탐색(explore) 집단의 모든 구성원은 하나의 셀(cell)에 존재합니다. 컨텐츠가 사용자에게 보여지기 전에 짝(사용자, 컨텐츠)을 기준으로 어떤 삽화를 할당할지 동적으로 결정하게 됩니다. 본질적으로는, 이전의 실험들과 동일하게 각 셀에 다른 삽화들을 노출하는 방식의 A/B 테스트입니다. 다만 컨텐츠 단위로 할당이 이루어지기 때문에, 컨텐츠 별로 각각 다른 가짓수의 삽화들을 평가할 수 있게 되었습니다.

이 테스트는 컨텐츠를 처음으로 본 N명의 사용자들, 예를 들어 백만 명이 여러 삽화들을 평가했기 때문에 두 번째 실험보다 훨씬 빠른 결과를 얻을 수 있었습니다. 통계적 유의성에 도달한 가장 우수한 삽화를 결정하기까지의 며칠 동안은 탐색(Explore) 단계에 머물러 있게 됩니다. 가장 알맞은 삽화를 찾은 이후에는, 이를 활용(Exploit)하여 모든 사용자들에게 이 삽화가 노출되게 합니다.

 

다음은 삽화의 상대적인 성과를 측정하는데 사용하는 툴(Tool)에서 가져온 스크린 샷입니다. (화살표로) 마킹된 이미지들이 다른 모든 이미지보다 훨씬 우수한 성과를 보였습니다.

 

Dragons : Race to the Edge

Image for post

Unbreakable Kimmy Schmidt

Image for post

 

 

결론

이 일련의 실험들을 통해 가장 우수한 삽화들에는 이 블로그 게시물에 설명되어 있는 것과 같이 여러 흥미로운 트렌드가 있다는 것을 발견했습니다. 컨텐츠의 톤을 전달하는 감정을 표현한 얼굴이 포함된 이미지가 특히 좋습니다. 우리의 프레임워크는 우수한 삽화는 세계 여러 지역에서 다를 수 있다는 것을 고려해야만 합니다. 컨텐츠 내에서 인지도가 높거나 극단적인 성향을 가진 캐릭터를 활용한 삽화가 우수한 성과를 보이는 경향이 있습니다. 가장 우수한 삽화를 고르는 것은 물질적인 면에서 넷플릭스의 제품 경험을 향상시켜 왔습니다. 우리는 사용자들이 더 빠르게 컨텐츠를 찾고 즐길 수 있도록 할 수 있었습니다.

삽화 선택을 개선하기 위해 우리가 해야 할 일은 여전히 많습니다. 우리는 계속 여러 관점에서의 실험을 계속하려고 합니다. 삽화를 넘어 모든 구성요소(삽화, 모션 빌보드, 예고편, 몽타주 등)를 최적화하고 하나의 캔버스에서 컨텐츠에 가장 적합한 구성요소들을 선택할 수 있을까요?

 


Note: 해당 글은 Netflix Technology Blog에 Gopal Krishnan님이 2016년 5월 3일에 게시한 글을 번역 및 의역한 것 입니다.Hackle Blog

 

 

 

해당 글은 A/B 플랫폼 핵클과 모비인사이드의 파트너쉽으로 제공되는 기사입니다.