Amp on Amazon이 데이터를 사용하여 고객 참여를 높이는 방법, 2부: Amazon SageMaker PlatoBlockchain Data Intelligence를 사용하여 개인화된 쇼 추천 플랫폼 구축. 수직 검색. 일체 포함.

Amp on Amazon이 데이터를 사용하여 고객 참여를 높이는 방법, 2부: Amazon SageMaker를 사용하여 개인화된 쇼 추천 플랫폼 구축

앰프 Amazon의 새로운 라이브 라디오 앱입니다. Amp를 사용하면 자신만의 라디오 쇼를 호스팅하고 Amazon Music 카탈로그의 노래를 재생하거나 다른 Amp 사용자가 호스팅하는 쇼를 청취하고 들을 수 있습니다. 콘텐츠가 풍부하고 다양한 환경에서 사용자 경험을 각 사용자의 개별 취향에 맞게 조정하여 원하는 프로그램을 쉽게 찾고 즐길 수 있는 새로운 콘텐츠를 찾을 수 있도록 하는 것이 중요합니다.

Amp는 머신 러닝(ML)을 사용하여 앱 홈 페이지에서 라이브 및 예정된 Amp 쇼에 대한 맞춤형 권장 사항을 제공합니다. 추천은 프로그램의 인기도(예: 청취 및 좋아요 수), 제작자의 인기도(예: 최근 프로그램이 재생된 총 횟수) 및 사용자의 개인적 선호도를 나타내는 기능을 사용하여 랜덤 포레스트 모델을 사용하여 계산됩니다. 쇼의 주제와 제작자에게 선호도는 사용자의 행동 데이터에서 암시적으로 또는 사용자 프로필에 제공된 관심 주제(예: 대중 음악, 야구 또는 정치)에서 명시적으로 계산됩니다.

이것은 Amp용 데이터 분석 및 ML을 사용하고 개인화된 쇼 추천 목록 플랫폼을 만드는 방법에 대한 시리즈의 2부입니다. 이 플랫폼은 3년 2022월 출시 이후 추적된 고객 참여 측정항목(쇼 좋아요, 제작자 팔로우, 예정된 쇼 알림 활성화)이 XNUMX% 향상되었습니다.

인용하다 파트 1 데이터 및 분석 시스템을 사용하여 행동 데이터를 수집하고 처리하는 방법을 학습합니다.

솔루션 개요

Amp용 ML 기반 쇼 추천 프로그램에는 다음 아키텍처 다이어그램과 같이 XNUMX가지 주요 구성 요소가 있습니다.

  1. Amp 모바일 앱.
  2. 좋아요 및 팔로우와 같은 행동 데이터를 수집하고 쇼가 생중계될 때 상태 업데이트와 같은 방송 관련 정보를 수집하는 백엔드 서비스.
  3. 행동 및 쇼 데이터의 실시간 수집, 실시간(온라인) 기능 컴퓨팅 및 저장.
  4. 배치(오프라인) 기능은 컴퓨팅 및 스토리지입니다.
  5. 프로그램 목록을 가져오기 위해 앱 백엔드에서 들어오는 요청을 처리하는 추천 시스템입니다. 여기에는 개인화 및 개인화되지 않은 기능을 기반으로 쇼 순위를 매기기 위한 실시간 추론이 포함됩니다.

이 게시물은 다음 사항을 자세히 설명하기 위해 3, 4, 5부에 중점을 둡니다.

다음 다이어그램은 상위 수준 아키텍처와 해당 구성 요소를 보여줍니다.

다음 섹션에서는 실시간 피쳐 컴퓨팅, 배치 피쳐 컴퓨팅, 실시간 추론, 운영 상태 및 관찰한 결과에 대한 자세한 내용을 제공합니다.

실시간 피쳐 컴퓨팅

프로그램에 대한 좋아요 및 청취 횟수와 같은 일부 기능은 지속적으로 스트리밍되어 그대로 사용해야 하는 반면, 5분 이상의 청취 세션 수와 같은 다른 기능도 원시 데이터로 실시간으로 변환되어야 합니다. 세션이 스트리밍됩니다. 추론 시간에 값을 계산해야 하는 이러한 유형의 기능은 시점 (PIT) 기능. PIT 기능에 대한 데이터는 빠르게 업데이트되어야 하며 최신 버전은 짧은 대기 시간(20개 쇼에 대해 사용자당 1,000밀리초 미만)으로 쓰고 읽어야 합니다. 또한 데이터가 누락되거나 부분적으로 있으면 권장 사항이 저하되고 고객 경험이 저하될 수 있으므로 데이터는 내구성 있는 저장소에 있어야 합니다. 읽기/쓰기 대기 시간 외에도 PIT 기능에는 낮은 반사 시간도 필요합니다. 반영 시간은 기여 이벤트가 발생한 후 기능을 읽을 수 있는 데 걸리는 시간입니다. 예를 들어 청취자가 쇼를 좋아하고 PIT LikeCount 기능이 업데이트되는 사이의 시간입니다.

데이터 소스는 앱을 직접 제공하는 백엔드 서비스입니다. 일부 데이터는 메트릭으로 변환된 다음 아마존 단순 알림 서비스 (Amazon SNS)를 ML 기능 변환 파이프라인과 같은 다운스트림 리스너로 전송합니다. MemoryDB와 같은 인메모리 데이터베이스는 대용량에서 내구성 있는 스토리지와 초고속 성능을 위한 이상적인 서비스입니다. 기능을 MemoryDB에 변환하고 쓰는 컴퓨팅 구성 요소는 Lambda입니다. 앱 트래픽은 시간과 요일에 따라 최고점과 최저점의 일별 및 주별 패턴을 따릅니다. Lambda는 들어오는 이벤트 볼륨에 대한 자동 확장을 허용합니다. 각 개별 지표 변환의 독립적인 특성으로 인해 그 자체로 상태 비저장 서비스인 Lambda가 이 문제에 적합합니다. 퍼팅 아마존 단순 대기열 서비스 Amazon SNS와 Lambda 간의 (Amazon SQS)는 메시지 손실을 방지할 뿐만 아니라 사전 구성된 Lambda 동시성 제한이 제공하기에 충분하지 않을 수 있는 예기치 않은 트래픽 버스트에 대한 버퍼 역할을 합니다.

일괄 피처 컴퓨팅

사용자의 끊임없이 진화하는 취향을 나타내기 위해 과거 행동 데이터를 사용하는 기능은 계산하기가 더 복잡하고 실시간으로 계산할 수 없습니다. 이러한 기능은 예를 들어 매일 한 번과 같이 자주 실행되는 배치 프로세스에 의해 계산됩니다. 일괄 기능용 데이터는 데이터 필터링 및 집계를 위한 빠른 쿼리를 지원해야 하며 장기간에 걸쳐 있을 수 있으므로 볼륨이 커집니다. 배치 기능도 실시간 추론을 위한 입력으로 검색 및 전송되기 때문에 낮은 대기 시간으로 읽어야 합니다.

일괄 기능 컴퓨팅을 위한 원시 데이터 수집에는 PIT 기능에 필요한 XNUMX분 미만의 반영 시간 요구 사항이 없으므로 이벤트를 더 길게 버퍼링하고 일괄적으로 메트릭을 변환할 수 있습니다. 이 솔루션은 스트리밍 데이터를 다음을 포함한 여러 대상으로 신속하게 수집하는 관리형 서비스인 Kinesis Data Firehose를 활용했습니다. 아마존 단순 스토리지 서비스 (Amazon S3) 오프라인 계산에 활용하기 위해 S3 데이터 레이크에 메트릭을 유지합니다. Kinesis Data Firehose는 이벤트 버퍼와 Lambda 통합을 제공하여 이러한 지표를 쉽게 수집하고 일괄 변환하고 나중에 일괄 기능 컴퓨팅에서 사용할 수 있도록 Amazon S3에 유지합니다. 배치 기능 계산에는 PIT 기능과 동일한 짧은 지연 시간 읽기/쓰기 요구 사항이 없습니다. 따라서 Amazon S3는 이러한 대용량 비즈니스 지표를 저장하기 위한 저렴하고 내구성 있는 스토리지를 제공하기 때문에 더 나은 선택입니다.

초기 ML 모델은 지난 21개월 동안 캡처된 데이터를 사용하여 매일 계산된 2개의 배치 기능을 사용합니다. 이 데이터에는 사용자당 재생 및 앱 참여 기록이 모두 포함되며 사용자 수와 앱 사용 빈도에 따라 증가합니다. 이 규모의 기능 엔지니어링에는 필요한 입력 데이터를 가져와 병렬로 처리하고 결과를 영구 저장소로 내보내는 자동화된 프로세스가 필요합니다. 처리 인프라는 계산 기간 동안에만 필요합니다. SageMaker 처리 Apache Spark 및 대규모 분산 데이터 처리 작업을 실행하는 데 필요한 기타 종속성을 포함하는 사전 빌드된 Docker 이미지를 제공합니다. 처리 작업의 기본 인프라는 SageMaker에서 완전히 관리됩니다. 클러스터 리소스는 작업 기간 동안 프로비저닝되고 작업이 완료되면 정리됩니다.

배치 프로세스의 각 단계(데이터 수집, 기능 엔지니어링, 기능 지속성)는 오류 처리, 재시도 및 그 사이의 상태 전환이 필요한 워크플로의 일부입니다. 와 함께 AWS 단계 함수, 상태 머신을 생성하고 워크플로를 여러 사전 처리 및 사후 처리 단계로 분할할 수 있을 뿐만 아니라 기능을 SageMaker 기능 저장소에 유지하거나 다른 데이터를 Amazon S3에 유지하는 단계를 수행할 수 있습니다. Step Functions의 상태 머신은 다음을 통해 트리거될 수 있습니다. 아마존 이벤트 브리지 매일 오후 10:00 UTC와 같이 설정된 일정에 따라 실행되도록 배치 컴퓨팅을 자동화합니다.

기능이 계산된 후에는 모델 재교육뿐만 아니라 추론 중에 읽을 수 있도록 버전을 지정하고 저장해야 합니다. 자체 기능 저장 및 관리 서비스를 구축하는 대신 SageMaker 기능 저장소를 사용할 수 있습니다. Feature Store는 ML 모델의 기능을 저장, 공유 및 관리하기 위해 특별히 제작된 완전 관리형 리포지토리입니다. ML 기능의 기록을 오프라인 스토어(Amazon S3)에 저장하고 온라인 스토어에 API를 제공하여 가장 최근의 기능을 짧은 대기 시간으로 읽을 수 있도록 합니다. 오프라인 상점은 추가 모델 교육 및 실험을 위해 기록 데이터를 제공할 수 있으며, 온라인 상점은 실시간 추론을 위한 기능을 얻기 위해 고객 대면 API에서 호출할 수 있습니다. 보다 개인화된 콘텐츠를 제공하기 위해 서비스를 발전시키면서 추가 ML 모델을 교육하고 Feature Store의 도움으로 이러한 모델에서 기능을 검색, 발견 및 재사용할 것으로 예상합니다.

실시간 추론

실시간 추론에는 일반적으로 끝점 뒤에서 ML 모델을 호스팅해야 합니다. 웹 서버 또는 컨테이너를 사용하여 이 작업을 수행할 수 있지만 이를 위해서는 ML 엔지니어링 노력과 관리 및 유지 관리를 위한 인프라가 필요합니다. SageMaker를 사용하면 ML 모델을 실시간 엔드포인트에 쉽게 배포할 수 있습니다. SageMaker를 사용하면 SageMaker 끝점을 생성 및 구성하여 ML 모델을 교육 및 업로드하고 호스트할 수 있습니다. 실시간 추론은 Amp 홈 페이지에서 탐색할 때 쇼 순위 지정을 위한 저지연 요구 사항을 충족합니다.

관리형 호스팅 외에도 SageMaker는 관리형 엔드포인트 확장을 제공합니다. SageMaker 추론을 사용하면 최소 및 최대 인스턴스 수와 조정을 트리거하는 대상 사용률로 Auto Scaling 정책을 정의할 수 있습니다. 이러한 방식으로 수요 변화에 따라 쉽게 확장하거나 축소할 수 있습니다.

운영 상태

이 시스템이 실시간 기능 컴퓨팅을 위해 처리하는 이벤트 수는 앱 사용의 자연스러운 패턴에 따라 변경됩니다(시간 또는 요일에 따라 트래픽이 높거나 낮음). 마찬가지로 실시간 추론을 위해 수신하는 요청 수는 동시 앱 사용자 수에 따라 확장됩니다. 또한 이러한 서비스는 인기 있는 제작자의 소셜 미디어에서의 자체 프로모션으로 인해 트래픽이 예기치 않게 급증합니다. 들어오는 트래픽을 성공적으로 저렴하게 처리하기 위해 시스템을 확장 및 축소할 수 있는지 확인하는 것이 중요하지만, 고객에 대한 데이터 및 서비스 손실을 방지하기 위해 운영 메트릭을 모니터링하고 예기치 않은 운영 문제에 대해 경고하는 것도 중요합니다. 이러한 서비스의 상태를 모니터링하는 것은 다음을 사용하여 간단합니다. 아마존 클라우드 워치. 오류 및 작업 지연 시간과 같은 중요한 서비스 상태 지표와 메모리, 디스크, CPU 사용량과 같은 활용 지표는 CloudWatch를 사용하여 즉시 사용할 수 있습니다. 우리 개발 팀은 메트릭 대시보드와 자동화된 모니터링을 사용하여 고가용성(99.8%)과 짧은 대기 시간(사용자당 권장 프로그램을 얻기 위해 종단 간 200밀리초 미만)으로 고객에게 서비스를 제공할 수 있도록 합니다.

결과 측정

이 게시물에서 설명하는 ML 기반 쇼 추천기 이전에는 프로필에 자체 보고된 사용자의 개인적 관심 주제를 기반으로 Amp 쇼의 순위를 매기는 더 간단한 휴리스틱 알고리즘이 사용되었습니다. A/B 테스트를 설정하여 과거 앱 상호 작용의 사용자 데이터를 사용하여 ML 기반 추천자로 전환할 때의 영향을 측정했습니다. 청취 시간 및 참여 활동 수(프로그램 좋아요, 프로그램 제작자 팔로우, 알림 켜기)와 같은 측정항목의 개선 사항을 성공 지표로 확인했습니다. ML 기반 추천자를 통해 순위가 매겨진 쇼 추천을 받은 사용자의 50%를 대상으로 한 A/B 테스트에서는 고객 참여 지표가 3%, 재생 시간이 0.5% 향상되었습니다.

결론

특별히 제작된 서비스를 통해 Amp 팀은 이 게시물에 설명된 대로 3개월 이내에 프로덕션에 맞춤화된 쇼 추천 API를 출시할 수 있었습니다. 시스템은 또한 사용자 유입을 생성할 수 있는 잘 알려진 쇼 호스트 또는 마케팅 캠페인에 의해 생성된 예측할 수 없는 부하에 대해 잘 확장됩니다. 이 솔루션은 처리, 교육 및 호스팅을 위해 관리형 서비스를 사용하므로 시스템의 일상적인 유지 관리에 소요되는 시간을 줄이는 데 도움이 됩니다. 또한 CloudWatch를 통해 이러한 모든 관리형 서비스를 모니터링하여 프로덕션 시스템의 지속적인 상태를 보장할 수 있습니다.

Amp의 ML 기반 추천기의 첫 번째 버전을 규칙 기반 접근 방식(고객의 관심 주제별로만 정렬)에 대해 A/B 테스트한 결과 ML 기반 추천기가 고객을 보다 다양한 주제의 고품질 콘텐츠에 노출시키는 것으로 나타났습니다. , 더 많은 수의 팔로우 및 활성화된 알림이 발생합니다. Amp 팀은 관련성이 높은 권장 사항을 제공하기 위해 모델을 개선하기 위해 지속적으로 노력하고 있습니다.

Feature Store에 대한 자세한 내용은 다음을 방문하십시오. Amazon SageMaker 기능 스토어 에서 다른 고객 사용 사례를 확인하십시오. AWS 머신 러닝 블로그.


저자 소개

Amp on Amazon이 데이터를 사용하여 고객 참여를 높이는 방법, 2부: Amazon SageMaker PlatoBlockchain Data Intelligence를 사용하여 개인화된 쇼 추천 플랫폼 구축. 수직 검색. 일체 포함.튤립 굽타 Amazon Web Services의 솔루션 아키텍트입니다. 그녀는 Amazon과 협력하여 AWS에서 기술 솔루션을 설계, 구축 및 배포합니다. 그녀는 고객이 AWS에 솔루션을 배포하는 동안 모범 사례를 채택하도록 지원하며 분석 및 ML 애호가입니다. 여가 시간에는 수영, 하이킹, 보드 게임을 즐깁니다.

Amp on Amazon이 데이터를 사용하여 고객 참여를 높이는 방법, 2부: Amazon SageMaker PlatoBlockchain Data Intelligence를 사용하여 개인화된 쇼 추천 플랫폼 구축. 수직 검색. 일체 포함.데이비드 쿠오 Amazon Web Services의 솔루션 아키텍트입니다. 그는 AWS 고객과 협력하여 AWS에서 기술 솔루션을 설계, 구축 및 배포합니다. 그는 미디어 및 엔터테인먼트 고객과 함께 일하며 기계 학습 기술에 관심이 있습니다. 여가 시간에 그는 여가 시간에 무엇을 해야 하는지 궁금합니다.

Amp on Amazon이 데이터를 사용하여 고객 참여를 높이는 방법, 2부: Amazon SageMaker PlatoBlockchain Data Intelligence를 사용하여 개인화된 쇼 추천 플랫폼 구축. 수직 검색. 일체 포함.마놀리아 맥코믹 Amp on Amazon의 수석 소프트웨어 개발 엔지니어입니다. 그녀는 고객 대면 애플리케이션을 제공하기 위해 AWS를 사용하여 분산 시스템을 설계하고 구축합니다. 그녀는 여가 시간에 새로운 요리법을 읽고 요리하는 것을 즐깁니다.

Amp on Amazon이 데이터를 사용하여 고객 참여를 높이는 방법, 2부: Amazon SageMaker PlatoBlockchain Data Intelligence를 사용하여 개인화된 쇼 추천 플랫폼 구축. 수직 검색. 일체 포함.제프 크리스토퍼슨 Amp on Amazon의 선임 데이터 엔지니어입니다. 그는 실행 가능한 통찰력을 제공하는 AWS에서 빅 데이터 솔루션을 설계, 구축 및 배포하는 일을 하고 있습니다. 그는 확장 가능하고 자동화된 솔루션을 채택하는 내부 팀을 지원하며 분석 및 빅 데이터 애호가입니다. 그가 스키를 타지 않을 때 여가 시간에는 산악 자전거에서 그를 찾을 수 있습니다.

타임 스탬프 :

더보기 AWS 기계 학습