유기농은 너무 비싸서 그런데 농약 친 건 어딨나요?

유기농은 너무 비싸서 그런데 농약 친 건 어딨나요?

06 Jun 2021

Artwork Personalization at Netflix

Artwork Personalization at Netflix

넷플릭스의 아트워크 추천에 대해서 알아보자. 블로그, PPT, 유튜브 자료가 있다.

Artwork Personalization at Netflix 블로그

qcon_artwork_personalization_talk PPT

Artwork Personalization at Netflix | Netflix 유투브

Introduction

많은 시간 동안, 넷플릭스 개인화 추천 시스템의 목표는

  • 각 구성원에 적합한 타이틀을 적합한 시간에 제공

였다. 수 천 타이틀의 카탈로그와 일 억개가 넘는 계정의 회원으로, 회원 각각에게 적합한 타이틀을 추천하는 것은 중요하다. 그러나 추천 업무는 그걸로 끝이 아니다. 다음과 같은 질문에 답해야한다.

  • 추천되는 특정 타이틀을 관리 해야 하는가?
  • 개인의 흥미에 맞춘 새로운 타이틀을 어떻게 설명 해야 할까?
  • 추천된 타이틀이 볼만한 가치가 있다고 어떻게 설명 할까?

이러한 질문에 답하는 것도 회원들이 훌륭한 컨텐츠를 발견하는 것을 돕기 위해 중요하다. 처음 보는 타이틀에서 더욱 그렇다. 이러한 문제를 해결하기 위해서 사용한 한가지 방법은 타이틀을 표현하는 아트워크를 다루는 것이다.

  • 만약 타이틀의 아트워크로 유저 개인에게 맞는 어떤 것을 표현한다.
  • 유저가 타이틀로 빠져들게 하는 게이트웨이로 작용한다.
  • 하고 당신이 타이틀의 좋아 할 시각적 근거를 제시할 수 있게 된다.

아트워크는 연기자를 강조하거나, 흥미로운 순간을 표현하거나, 컨텐츠의 본질을 전달하는 드라마틱한 장면을 포함할 수 있다. 만약 홈페이지에서 완벽한 이미지를 표시하고 있다면, 이미지를 통해 컨텐츠를 경험할 것이다. 넷플릭스에는 일 억 이상의 타이틀이 있고, 각 회원에게 맞는 개인화 추천과 개인화 시각적 자료가 제공된다.

이전 연구에서, 넷플릭스는 모든 회원들에 걸처 각각의 타이틀에 맞는 하나의 완벽한 아트워크를 찾으려고 했었다. 멀티-암드-밴딧 알고리즘으로 타이틀에 딱 맞는 최고의 아트워크를 찾았다. 개인의 다양한 취향을 고려하다면, 우리의 각 회원들에게 회원과 관련성이 있는 타이틀의 각 측면을 가장 강조하는 아트워크를 찾아주는 것이 더 좋지 않겠는가?

이것에 영감을 받아서, 개인화가 의미 있는 시나리오에 대해 탐구를 해보자. 회원들은 각자 다른 시각적 히스토리를 가지고 있다. 아래 그림의 왼쪽 세 타이틀은 한 회원이 과거에 본 것이다. 오른쪽의 아트워크는 그 회원이 추천 받은 영화의 아트워크다. 영화 ‘GoodWill Hunting’ 을 묘사한 이미지를 개인화 하는 것을 다뤄보자. 회원이 다른 장르와 테마를 얼마나 선호하는지에 따라 이 결정을 개인화 할 수 있다. 많은 로맨틱 영화를 경험한 회원은 맷 데이먼과 미니 드라이버가 있는 아트워크를 선호할 것이고, 코미디를 많이 소비한 회원은 잘 알려진 코미디언인 로빈 윌리엄스를 포함하는 아트워크를 선호할 것이다.

Figure 1

다른 예로, 영화 ‘Pulp Fiction’의 아트워크 개인화에 출연자에 대한 선호도가 어떤 영향을 미칠지 상상해보자. 우마 써먼이 나온 여러 영화를 시청한 회원은 우마가 포함된 아트워크에 긍정적으로 반응할 것이다. 그러나 존 트라볼타의 팬은 존을 강조하는 아트워크를 좀 더 흥미로워 할 것이다.

Figure 2

당연히, 모든 시나리오에서 아트워크 개인화가 분명하고 명확하지 않을 수 있다. 그래서 넷플릭스는 수동적인 파생 규칙 사용하지 않고 데이터에 의존한다. 아트워크 전체를 개인화 해서 모든 회원에게 최적의 타이틀을 제공해서 회원들의 경험을 향상 시킨다.

Challenges

넷플릭스에서는 개인화를 강화하고 회원 경험에 대한 많은 요소를 알고리즘을 적용해서 채택한다. 이러한 요소는

  • 홈페이지에서 선택한 행
  • 그 행에서 선택한 타이틀
  • 표시하는 갤러리들
  • 보내는 메시지 등등

을 포함한다. 개인화가 필요한 요소들은 각각 고유한 과제를 가진다. 시각적 요소를 개인화하는 것 뿐만이 아닌 다른 요소들의 개인화 과제가 함께 해결해야할 과제로 포함된다.

Figure 3

이미지 개인화의 제약 사항 중 한가지는 타이틀을 표현할 아트워크를 하나만 선택할 수 있다는 것이다. 일반적인 추천 환경은 아트워크 추천과는 다르게 회원이 선택한 항목으로 나중에 선호 항목에 대해 학습 할 수 있는 많은 선택지를 제공받을 수 있다. 아트워크 선택이 닫힌 루프에서 작동하는 치킨-에그 문제라는 것을 의미한다. 회원이 타이틀을 재생하는 것은 그 회원에게 표시된 아트워크로 부터 시작되는 결정이다.

Figure 4

타이틀에 대한 아트워크 하나를 제시할 때, 알고자하는 것은

  • 타이틀 소비(혹은 안했는지)에 대해 영향을 미치는가?
  • 특정 아트워크를 제시한 것과 관계없이 타이틀을 소비 하는가?

그래서 아트워크 개인화는 기존 추천 문제 보다 상위에 위치할 수 있고 추천 알고리즘이 다른 추천 알고리즘과 함께 동작 해야 한다. 당연히, 아트워크를 개인화하는 방법을 제대로 학습 하기 위해, 특정 아트워크가 특정 회원에게 명확하게 더 나은 것을 나타내는 신호를 찾기 위해 많은 데이터를 수집해야 한다.

다음 제약 사항은 아트워크를 회원에게 보여줄 때, 세션 간 아트워크를 변경했을 때의 효과를 파악하는 것이다. 아트워크를 변경하면 변경된 아트워크에 해당하는 타이틀의 인식률이 떨어질 수 있다. 예를 들어, 회원이 이미 한 타이틀에 흥미가 있었지만, 아직 그것을 소비하지 않은 상태라면? 아트워크의 변경하는 함으로 개선된 선택지가 회원들을 다시 소비를 고려하게 만드는가? 만약 회원들에게 보여줄 확실히 더 나은 아트워크를 찾는다면 아마 그걸 사용할 것이다. 하지만 아트워크가 계속 바뀌게 되면 회원들에 혼란을 줄 수 있다. 아트워크를 계속 변경하면 어떤 아트워크가 타이틀에 관심을 가지게 하는지? 불확실해지는 문제도 발생한다.

Figure 5

다음으로, 같은 페이지나 세션 내 다른 아트워크 와의 관계도 파악 해야 한다. 주인공을 과감하게 클로즈 업한 아트워크가 다른 것 보다 더 돋보이고 그에 따라 효과가 있을 수 도 있다. 그러나 모든 타이틀이 비슷한 아트워크를 가지고 있으면 페이지가 전체의 매력이 감소할 수 있다. 아트워크 하나 하나를 보는 것은 부족할 수 있을 수도 있기 때문에, 페이지와 세션에 걸쳐 다양한 아트워크 들을 선택하는 방법에 대해서도 고려해야 한다. 타이틀의 아트워크의 효과는 아트워크 그 자체가 아닌 다른 정보 ( 예: 시놉시스, 트레일러 등 )에도 영향을 받을 수 있다. 그래서 우리는 회원들에게 매력적으로 보일 수 있는 타이틀의 보완적인 측면을 강조할 수 있는 선택이 필요하기도 하다.

효과적인 개인화를 위해선 타이틀에 대한 좋은 아트워크 풀이 필요하다. 타이틀의 “clickbait”(흥미를 이끌어 내지만 최종적으로 소비를 시키지는 않는)를 피하기위해 각각이 매력적이고, 유익하고, 대표하는 여러가지 정보가 포함된 아트워크가 필요하다. 타이틀의 이미지 셋도 컨텐츠의 다양한 측면에 대해 관심이 있는 광범위한 잠재 고객을 충족할 수 있을 만큼 다양해야한다. 결국, 아트워크가 얼마나 매력적이고 유익한 지는 그것을 보는 개인에 따라 달라진다. 그러므로, 테마 만이 아닌 다른 미학도 강조하는 아트워크를 가져야 한다. 넷플릭스의 예술가와 디자이너로 구성된 팀은 개인화 알고리즘을 고려해서 다양한 차원의 아트워크를 만든다.

아트워크 개인화 규모를 위한 엔지니어링 제약사항도 있다. 고객의 경험이 매우 시각적이기 때문에 많은 이미지를 포함한다. 그래서 각 정보에 개인화된 선택지를 적용하는 것은 초당 이천만의 요청을 매우 빠르게 처리해야 한다는 것을 의미한다. 시스템은 안정적이어야 한다. UI에서 아트워크 렌더링을 실패하는 것은 고객 경험 등급을 떨어 트릴 수 있다. 개인화 알고리즘은 타이틀이 런칭 되었을 때 빠르게 응답해야하고 콜드 스타트 상황에서도 빠르게 개인화를 위해 학습해야한다는 것을 의미한다. 타이틀 런칭 후, 알고리즘은 계속해서 변화한 환경에 적응해야 하는데 시간이 흐르면서 타이틀의 라이프 사이클과 회원의 취향이 변화함에 따라 아트워크의 효과도 계속해서 변화할 수 있기 때문이다.

Figure 6

Approach : Contextual Bandits

넷플릭스의 추천 엔진의 대부분은 머신러닝 알고리즘으로 구동된다. 보통의 알고리즘은

  • 회원들이 어떻게 서비스를 사용하는지를 배치로 수집한다.
  • 배치 데이터로 새로운 머신러닝 알고리즘을 학습한다.
  • 다음, A/B 테스트를 통해 현재 운영 시스템에 대해 새로운 머신러닝 알고리즘을 테스트한다.

A/B 테스트가 새로운 알고리즘이 더 좋다는 것을 회원의 랜덤 서브셋에 적용하며 도움을 준다.

  • 그룹 A의 회원들은 현재 운영 시스템, 그룹 B가 새로운 알고리즘을 받는다.
  • 그룹 B의 회원들이 더 높은 참여를 한다면, 새로운 알고리즘으로 전체 회원들에 적용한다.

안타깝게도, 이러한 배치 접근 방식은 안타깝게도 reget을 발생시키는데; 장 기간동안 많은 회원이 더 좋은 경험을 받지 못하게 된다.

Figure 7

Figure 8

이러한 regret을 줄이기 위해 배치 머신러닝에서 벗어나서 온라인 머신러닝을 고려해야한다. 아트워크 개인화를 위해 온라인 학습 프레임워크로 사용한 프레임워크는 contextual bandit 이다. 컨텍스튜얼 밴딧은 온라인 학습 알고리즘의 종류로 각 회원 컨텍스트에 학습된 모델을 적용하는 이점이 있고 편향되지 않은 모델을 학습하는데 필요한 학습 데이터 수집 비용을 절약할 수 있는 방법이다. 이전에의 비-개인화로 이미지를 선택하는 작업에서는, 컨텍스트와는 무관하게 우수한 이미지를 고르는 기본적인 밴딧을 사용했었다.

기본적인 밴딧 알고리즘은 다음과 같다.

  • 학습된 알고리즘(Learner)이 액션(Action)을 선택한다.
  • 환경(Environment)은 액션에 대한 실제 보상(Reward)을 제공한다.
  • 알고리즘은 누적 보상을 최대화하는 방향으로 업데이트 된다.

Figure 9

컨텍스튜얼 밴딧은 다음과 같다.

  • 환경이 알고리즘에 피처 벡터(context)를 제공한다.
  • 알고리즘은 컨텍스트에 맞는 액션을 선택한다.
  • 환경은 컨텍스트 내 액션에 대한 실제 보상을 제공한다.
  • 알고리즘은 누적 보상을 최대화 하는 방향으로 업데이트 된다.

개인화를 위해, 회원 정보가 컨텍스트가 되는데 회원 마다 이미지들에 다른 반응을 할 것이라고 예상하기 때문이다. 강화학습과 유사해보인다. 강화학습에서 고려하는 상태는 컨텍스튜얼 밴딧에는 고려되지 않는다.

Figure 10

컨텍스튜얼 밴딧의 주요 특성은 regret을 최소화 하기 위해 설계되었다는 점이다. 여기서 말하는 regret은 선택된 액션과 최적 액션 간 차이를 말한다. 고차원 컨텍스튜얼 밴딧을 위한 학습 데이터는 학습된 모델의 예측들에서 제어된 랜덤을 주입해서 생성한다. 랜덤화 스키마는 복잡성이 다양해 질 수 있다.

  • 유니폼한 랜덤성을 가지는 단순한 입실론-그리디 공식
  • 부터 모델 불확실성 함수로 랜덤 정도를 적응적으로 다양화 할 수 있는 닫힌 루프 스키마

랜덤화 스키마라는 과정을 data exploration이라고 할 수 있다. 그리고 아래는 대표적인 Data Exploration 방법이다.

Epsilon-Greedy

  • Epsilon이라는 Exploration할 확률을 부여한다.

Upper Confidence Bound

  • 각 액션에 대한 보상의 신뢰 구간을 구한다.
  • 신뢰 구간 Upper Bound가 가장 큰 Action을 Exploration 한다.

Beta-Bernoulli Distribution

  • 이미 가지고 있는 Take Fraction knowledge를 prior 베타 분포로 사용한다.
  • 알파, 베타에 기본(1 , 1 ) + Take Frac( 시청한 횟수, 시청하지 않은 횟수 ) 로 Exploration을 한다.

Thompson Sampling

  • 이미 가지고 있는 Take Fraction으로 베타 분포에서 샘플링 한다.
  • 가장 큰 샘플 값을 가지면 Exploration을 한다.

데이터 탐색 전략을 선택하는데 있어서 영향을 주는 요소는 다음과 같다.

  • 시스템이 배포될 모집단의 크기
  • 타이틀에서 사용 가능한 후보 아트워크의 수

프레임워크에서는 랜덤한 아트워크 선택 정보를 데이터 탐색을 위해 로그로 남겨야 한다. 로그 데이터의 편향된 선택을 수정하면 편향 되지 않은 방식으로 오프라인 모델 검증을 수행할 수 있다.

컨텍스튜얼 밴딧의 데이터 탐색은 보통 비용(regret)이 있는데 세션에서 선택한 아트워크가 사실 가장 적합한 결과가 아닐 수가 있다.

  • 이런 랜덤한 탐색이 회원 경험에 어떤 영향을 미치는가?(결과적으로 메트릭에)

회원 수가 일 억을 넘어가면 데이터 탐색이 초래하는 regret은 일반적으로 매우 작다. 회원 수가 많기 때문에 분할 상쇄가 된다. 그렇기 때문에 회원 경험 측면에 초점을 맞추는 컨텍스튜얼 밴딧을 선택할 수 있게 하는 중요한 고려사항이 된다. 컨텍스튜얼 밴딧의 랜덤화와 탐색이 만약 탐색 비용이 높다면 알고리즘 자체가 적합하지 않다고 판단할 수 있다.

온라인 탐색 스키마로 각 튜플(회원, 타이틀, 이미지)에 대해 선택이 타이틀 재생을 발생 시켰는지 여부를 기록한 학습 데이터셋을 얻는다. 아트워크에 대한 선택지가 너무 자주 바뀌지 않도록 데이터 탐색을 어느 정도 제어해서 특정 아트워크에 대한 회원 참여도를 더욱 명확하게 만들 수 있다. 타이틀을 플레이 하도록 유도는 하지만 궁극적으로는 낮은 품질의 참여를 초래하는 “clickbait” 이미지를 추천하지 않는 모델을 만들기 위해 참여도 퀄리티를 검토해서 각각의 관측치에 대한 레이블을 결정할 수 있다.

Training

이러한 온라인 학습 환경에서, 컨텍스튜얼 밴딧 모델을 학습해서 회원 각각의 컨텍스트에 기반한 최고의 아트워크를 선택한다. 넷플릭스는 타이틀 당 최대 수집 개의 후보 이미지를 가지고 있다. 아트워크를 선택하는 모델을 학습하기 위해 타이틀에 관계없이 각 회원을 기준으로 이미지의 순위를 매겨서 문제를 단순화 할 수 있다. 단순화로 타이틀에 걸친 회원의 이미지 선호도를 학습할 수 있다. 그이유는 모든 이미지 후보에 대해,

  • 회원들 중에는 이미지를 제공받고 타이틀에 참여하는 회원
  • 이미지를 제공받고 타이틀에 참여하지 않은 회원

이 있기 때문이다. 각 튜플(멤버, 타이틀, 이미지)을 입력으로 회원이 컨텐츠를 즐길 확률을 예측할 수 있도록 선호도를 모델링 할 수 도 있다. 지도 학습 모델일 수도 있는 컨텍스튜얼 밴딧은 데이터 탐색과 최고의 결과를 예측을 하는데 보통 톰슨 샘플링, LinUCB 또는 베이지안 방법을 사용한다.

Greedy Policy Model

Figure 11

LinUCB Model

Figure 12

Thompson Sampling Model

Figure 13

Potential signals

컨텍스튜얼 밴딧에서, 컨텍스는 모델의 입력으로 들어오는 피처 벡터로 표현된다. 이 문제를 위해 피처로 사용할 수 있는 많은 신호가 있다. 특정하면, 회원의 많은 속성을 고려할 수 있다:

  • 시청한 타이틀
  • 타이틀 장르
  • 특정 타이틀에 대한 상호작용
  • 국가
  • 선호 언어
  • 사용 디바이스
  • 시간과 날짜

넷플릭스의 알고리즘은 개인화된 추천 엔진과 함께 아트워크도 추천하기 때문에, 어떤 아트워크를 표시하는 것은 무시하고, 우리의 다양한 추천 알고리즘이 타이틀을 어떻게 고려하는지와 관련된 신호를 사용할 수 있다.

중요한 고려 사항은 아트워크 중 일부는 후보 풀에 있는 다른 것들 보다 더 좋다는 것이다. 넷플릭스의 이전 연구인 개인화 되지 않은 아트워크 선택하는 알고리즘은 전체 모집단을 기준으로 선택하기 위해 최고의 아트워크를 결정하는데 전체 회원들이 아트워크를 선택하는 비율을 사용했다. 컨텍스튜얼 개인화 모델에서는 전반적인 선택 비율이 여전히 중요하고 개인화 알고리즘은 개인화 되지 않은 모델의 랭킹과 평균적으로 일치하는 선택을 복구한다.

Image Selection

회원에게 최적의 아트워크를 할당하는 것은 선택의 문제가 될 수 있다. 타이틀에 사용 가능한 아트워크 풀에서 가장 적합한 후보 아트워크를 찾는 것이다. 학습된 모델을 각 컨텍스트에 대한 이미지의 순위를 매기는데 사용한다. 모델은 주어진 회원 컨텍스트에서 주어진 이미지의 재생 확률을 예측한다. 이 확률을 사용해서 후보 이미지 셋을 정렬하고, 가장 높은 확률을 가지는 이미지를 선택한다. 그 이미지를 회원에게 표시한다.

Evaluation

Offline

온라인이나 실제 회원에게 배포하기 전에 컨텍스튜얼 밴딧 알고리즘을 검증하기 위해서 replay라고 알려진 오프라인 기술을 사용할 수 있다. 이 방법을 사용하면 로그 데이터를 기반으로 실제 질문에 대해 답변할 수 있다. 즉, 편향되지 않은 메트릭으로 서로 다른 알고리즘을 사용해서 서로 다른 시나리오에서 과거 세션에서 실제 일어났을 상황으로 오프라인 비교를 할 수 있다.

Figure 14

Replay는 프로덕션에서 사용되는 알고리즘이 아닌 새로운 알고리즘으로 선택된 이미지를 가설적으로 제시했다면 회원들이 타이틀에 어떻게 참여 했을지 알게 해준다. 이미지에 대해서, 몇가지 메트릭에 대해 흥미가 있는데, 참여 비율이다. 그림 2는 컨텍스튜얼 밴딧 방법이 랜덤 선택이나 비 컨텍스튜얼 밴딧에 비해 카탈로그 전체의 평균 참여 비율의 평균을 얼마나 증가시키는지를 보여준다.

replay를 사용하는 것의 단점도 존재하는데 많은 양의 로그 데이터가 필요 하다는 점과 몇가지 매치는 높은 분산을 가질 수 있다는 점이다.

Figure 15

Online

서로 다른 많은 모델을 오프라인에서 실험 한 후에 replay에서 충분한 개선을 보인 알고리즘을 하나를 선택하고, A/B 테스트를 적용해서 비-개인화 밴딧과 가장 훌륭한 개인화 컨텍스튜얼 밴딧을 비교한다. 기존 예상과 같이, 알고리즘은 개인화가 되었고 핵심 메트릭을 성능을 상당 부분 개선했다. 오프라인의 replay 측정과 실제 온라인의 상당한 상호 관련성도 볼 수 있다. 온라인 결과는 흥미로운 인사이트를 주는데 예를 들어, 개인화는 회원이 사전에 타이틀과 상호작용을 하지 않은 경우에 더 개선 되었다. 타이틀이 낯설 때 아트워크가 더 중요할 것이라고 예상할 수 있다.

Conclusion

우리의 서비스 전반에 걸친 아트워크 추천 개인화를 다루었다. 컨텍스튜얼 밴딧 알고리즘으로 회원들이 새로운 컨텐츠를 발견하는 방법을 의미 있게 개선했다. 그래서 모두에게 공개했다. 이 프로젝트는 첫번째 개인화의 첫번째 사례로 우리가 추천하는 것 뿐만이 아니라 회원들에게 추천한 방법이다. 그러나 초기 접근법이고 개선하거나 확장할 수 있는 많은 방법이 있다. 새로운 이미지나 새로운 타이틀을 빠르게 개인화하는 콜드 스타트를 해결하는 알고리즘을 개발하는 것이다. 예를 들면, 컴퓨터 비전 기술을 사용하는 것이다. 다른 방법은 다른 타입의 아트워크나 시놉시스나 메타데이터, 그리고 트레일러 등으로 알고리즘의 적용을 확장하는 것이다. 더 광범위한 방법도 있다: 아티스트와 디자이너가 어떤 새로운 이미지를 추가해야 타이틀을 더욱 매력적이고 개인화 할 수 있는지 도움을 줄 수 있다.

Categories