Tech이야기~!
welcom 자세히보기

Artificial Intelligence

[Netflix] Netflix at Spark+AI Summit 2018

Enhold 2018. 7. 15. 07:37

Netflix at Spark+AI Summit 2018

https://medium.com/netflix-techblog/netflix-at-spark-ai-summit-2018-5304749ed7fa


Spark 사용한 Netflix 추천에 대하여 살펴보기(번역)

Apache Spark는 분산 컴퓨팅을위한 대대적으로 널리 사용되는 큰 데이터 플랫폼이었습니다. Netflix는 Spark을 다양한 배치 및 스트림 처리 작업 부하에 광범위하게 사용하고 있습니다. Spark 계산에 대한 유용한 사례 목록은 콘텐츠 권장 사항 및 개인 설정 영역의 다양한 응용 프로그램에서 제공됩니다. 회원 개인화를위한 기계 학습 파이프 라인의 대부분은 대형 관리 스파크 클러스터 위에서 실행됩니다. 이러한 모델은 Netflix 앱에서 볼 수있는 다양한 개인화 된 캔버스, 타이틀 관련 순위, 행 선택 및 정렬, 아트 워크 개인화 등을 포함하는 추천 시스템의 기반을 형성합니다.

Spark은 데이터 준비, 피쳐 추출, 교육 및 모델 선택을 통해 모델을 개발하는 데 도움이되는 계산 인프라를 제공합니다. Personalization Infrastructure 팀은 지난 몇 년 동안이 도메인에서 Spark 응용 프로그램을 확장하는 데 도움을주었습니다. 우리는 더 넓은 Spark 커뮤니티와 우리의 학습 내용을 공유하는 것을 강력하게 믿고 있으며, 올해 Spark + AI Summit (샌프란시스코)에서 Netflix 규모의 Spark를 사용하는  3 개의 project을 있었습니다. 이 게시물은 세 번의 발표를 요약합니다.

1. Netflix 권장 사항을위한 사실 저장소 ( Nitin Sharma , Kedar Sadekar )

첫 번째는  끊임없이 진화하는 새로운 요구 사항에서 기능을 추출하기 위해 팩트 스토어를 구축 한 방법 

 개인화 모델을위한 교육 자료 인프라 스트럭처를 구축했습니다. 맞춤 추천의 품질을 높이기 위해 이전 데이터를 사용하여 오프라인에서 아이디어를 시도합니다. 오프라인 측정 항목을 개선하는 아이디어는 회원 참여, 만족도 및 보존과 같은 핵심 측정 항목에서 통계적으로 유의미한 향상을 통해 측정되는 A / B 테스트로 푸시됩니다. 이러한 오프라인 분석의 핵심은 기계 학습 모델에서 요구하는 기능을 생성하는 데 사용되는 역사적인 사실 (예 : 멤버의 기록보기, '내 목록'에있는 비디오보기 등)입니다.

이야기에서 우리는 핵심 요구 사항, 팩트 스토어 디자인의 진화, 푸시 기반 아키텍처, 스케일링 노력 및 우리의 학습 내용을 발표했습니다.


우리는이 팩트 스토어의 데이터 처리를 위해 Spark을 광범위하게 사용하는 방법을 논의하고 빠른 액세스와 효율적인 저장의 디자인 상충 관계에 대해 조사했습니다.

2. Spark Streaming을 통한 실시간 권고에 가까운 ( Elliot Chow , Nitin Sharma)

넷플 릭스의 개인화 사용 사례에 대한 많은 추천 사항은 일괄 처리 방식으로 사전 계산되지만 회원 상호 작용, 인기도 상승 및 새로운 쇼 출시 프로모션을 고려해야하는 시간에 민감한 사용 사례에는 충분히 빠르지 않을 수 있습니다. 끊임없이 성장하는 Netflix 카탈로그를 통해 거의 실시간으로 청중에게 적합한 콘텐츠를 찾는 것이 최고의 맞춤 경험을 제공하는 데 필요한 요소입니다.

우리의 두 번째 이야기 는 Netflix에서 구축 한 실시간 스파크 스트리밍 생태계에 대하여  near-real-time  ML 인프라 스트럭처를 제공했습니다. 이 대화는 NRT (Near-Real-Time) 인프라를 사용하는 두 가지 제품 사용 사례, 구체적으로 Billboard (사용자가 페이지 상단의 큰 캔버스)에 표시 할 맞춤형 비디오를 선택하는 방법과 오른쪽 캔버스가 주어진 모든 제목에 대한 개인화 된 아트 워크. 스파크 스트리밍을 기반으로 대용량 인프라를 구축하는 동안 얻은 교훈을 반영했습니다.


인프라와 관련하여 우리는 다음과 같이 이야기했습니다.

  • Spark Streaming으로 규모 문제 해결
  • Spark 위에 구축해야하는 국가 관리
  • 데이터 지속성
  • 탄력성, 지표 및 운영 자동 치료

3. ML 사용 사례를위한 스파크 기반 계층화 라이브러리 ( Shiva Chaitanya )

우리의 마지막 이야기는 우리가 오프라인 기계 학습 워크 플로우에 사용되는 트레이닝 세트의 계층화에 도움이 내장 된 특정 스파크 기반 라이브러리를 소개했다. 이를 통해 사용자의 행동을 더 잘 모델링하고 맞춤 설정된 동영상 추천을 제공 할 수 있습니다.

이 라이브러리는 원래 교육 데이터 스냅 샷 인프라 에서 사용자 선택 알고리즘을 구현하기 위해 작성 되었지만 ML 파이프 라인의 범용 계층화 사용 사례를 수용하기 위해 발전했습니다. 여기에서 주요 아이디어는 데이터 분배에 대해 원하는 제약 조건을 유지하면서 데이터 세트를 다운 샘플링하는 메커니즘을 제공 할 수 있다는 것입니다. Spark DataFrames 위에 유연 계층화 API를 설명했습니다.


Spark + Scala를 선택하면 분산 컴퓨팅 환경에서 강력한 유형 안전성을 얻을 수있었습니다. 라이브러리의 DSL을 사용하여 복잡한 샘플링 규칙을 쉽게 표현할 수있는 몇 가지 예를 제시했습니다.

이 회담에서는 Netflix의 개인화 사용 사례에서 Spark 사용법을 약간 훑어 보았습니다. Spark은 Netflix의 다른 여러 도메인에서 많은 다른 데이터 처리, ETL 및 분석 용도로 사용됩니다. 각 도메인은 고유 한 도전 과제를 제시합니다. 구성원 대면 개인화 도메인의 경우 인프라가 구성원 규모 수준으로 확장되어야합니다. 즉, 1 억 2 천 5 백만 명이 넘는 회원과 활발한 프로필 덕분에 우리는 컨텐츠를 개인화하고 적절하고시기 적절하도록 합리적으로 빨리해야합니다.

Spark는 수평 적으로 확장 가능한 컴퓨팅 플랫폼을 제공하지만, 예를 들어 코드 겐 (code-gen)과 같은 일부 고급 기능을 사용하면 규모면에서 흥미로운 기술적 문제가 발생하는 경우가 많습니다. Spark의 인기가 높아지면서 진정으로 큰 데이터 세트에 대한 갈망이 증가함에 따라 프로젝트를 계속 발전시켜야하며, 실행중인 워크로드에 대해 투명성과 디버깅 용이성을 제공하는 것이 더 좋습니다.

이곳에서 한 조직의 수업을 공유하면 지역 사회 전반에 도움이됩니다. 우리는 그러한 회의에서 우리의 경험을 공유하게되어 기쁘 며 현대 ML 및 대규모 데이터 인프라 사용 사례에 대한 Spark의 개선에 대한 아이디어의 지속적인 교환을 환영합니다.