Netflix 개인화 및 추천 시스템 아키텍처 개요

Source

  • Evernote/Advanced View Required/The Netflix Tech Blog System Architectures for Personalization and Recommendation.md

Summary

본 문서는 Netflix의 개인화 및 추천 시스템을 위한 소프트웨어 아키텍처를 설명하며, 대용량 데이터 처리, 실시간 사용자 상호작용 대응, 그리고 새로운 추천 방식의 빠른 실험을 지원하기 위한 설계 원칙을 다룹니다. 핵심은 오프라인(Offline), 네어라인(Nearline), 온라인(Online) 세 가지 계산 모드를 적절히 조합하여 각 단계의 장단점(데이터 양, 알고리즘 복잡도, 응답 시간)을 최적화하는 것입니다. 전체 인프라는 AWS 클라우드 위에서 운영됩니다.

Key Points

  • 추천 시스템 아키텍처는 머신러닝 알고리즘을 포함하는 여러 구성 요소로 이루어지며, 데이터 저장, 이벤트 분배, 신호/모델 결합, 추천 결과 조합 등을 포함합니다.
  • 계산 방식은 사용 사례에 따라 세 가지로 구분됩니다:
    • 온라인(Online) 계산: 실시간 응답이 필요하며 최신 데이터와 사용자 컨텍스트에 빠르게 반응하지만, 알고리즘 복잡도와 처리 데이터 양에 제한이 있으며 SLA(응답 시간) 제약이 있습니다. 실패 시 빠른 폴백(fallback) 메커니즘이 필요합니다.
    • 오프라인(Offline) 계산: 배치 처리 방식으로 데이터 양과 알고리즘 복잡도에 제한이 적어 복잡한 분석과 실험에 유리합니다. 응답 시간 제약이 느슨하여 엔지니어링 요구사항이 단순하고, 새로운 알고리즘의 빠른 배포와 실험(Agile Innovation)을 지원합니다.
    • 네어라인(Nearline) 계산: 온라인과 오프라인의 중간 형태로, 실시간 서비스는 아니지만 온라인과 유사한 계산을 수행할 수 있는 절충안입니다.
  • 아키텍처의 주요 과제는 이러한 다양한 계산 모드(Offline, Nearline, Online)를 원활하게 결합하고 관리하며, 각 단계에서 생성된 신호와 모델을 효과적으로 통합하여 최종 사용자에게 의미 있는 추천 결과를 제공하는 것입니다.