BLOG

Amazon SageMaker에서 기계 학습을 통한 Amazon Pinpoint 캠페인
작성일: 2018-05-25

성공적인 비즈니스의 핵심은 고객에 대한 깊은 이해입니다. 이전 블로그 게시물에서 Amazon Redshift Spectrum을 AWS 데이터 레이크 전략의 일부로 사용하여 고객의 360o 이니셔티브를 향상시킬 수 있는 방법에 대해 설명했습니다.

 

이 블로그 게시물에서는 민첩성, 비용 효율성 및 AWS를 통해 고객 분석 실행을 통해 혁신을 도울 수 있는 방법을 지속적으로 보여 드리고자 합니다. 많은 사람들이 AI가 고객의 360o 이니셔티브를 향상시킬만한 방법을 모색하고 있습니다. Amazon SageMaker 및 Amazon Pinpoint를 활용하는 솔루션을 통해 머신러닝(ML)을 어떻게 타겟화된 캠페인을 이끌 수 있는지 보여 드리겠습니다.

 

리테일 관련 사례를 살펴 보겠습니다. 소비자로서 우리는 구매 습관에 대해 직관력을 가지고 있습니다. 좋은 경험이 있는 제품을 다시 구입하는 경향이 있거나 반대로 불만족스러운 경험으로 인해 다른 대안으로 갈 수 있습니다. 3 부작의 일부인 책을 구입하면 시리즈에서 다음 책을 살 가능성이 더 높습니다. 스마트폰을 구입하면 가까운 미래에 액세서리를 살 가능성이 큽니다.

 

그렇다면, 우리가 고객의 구매 행동을 배울 수 있다면 어떨까요? 우리가 다음에 구매할 물건을 상대적으로 높은 확률로 알고 있다면 무엇을 할 수 있습니까? 우리가 이 예측 능력을 소유하고 있다면 우리가 조치를 취할 수 있는 많은 것들이 있습니다. 예를 들어 재고 관리의 효율성을 높이거나 마케팅 캠페인의 성과를 향상시킬 수 있습니다.

 

이 블로그 게시물에서는고객 맞춤형 장,단기 메모리 반복형 신경 네트워크 (LSTM RNN) 모델을 구축, 교육 및 제공하기 위해 Amazon SageMaker를 사용하여 구매행동을 예측하고 Amazon Pinpoint를 통해 캠페인을 제공하기 위해 예측을 활용합니다. RNN은 특화된 유형의 신경망으로, 머신러닝 알고리즘의 한 종류입니다. RNN은 일반적으로 시퀀스 데이터와 함께 사용됩니다. 일반적인 응용 프로그램에는 오디오를 텍스트로 변환, 언어 번역, 감정 분석과 같은 자연어 처리(NLP) 문제를 포함합니다. 이 경우 UCI 머신 러닝 저장소에서 다운로드한 실제 온라인 리테일 데이터 세트[i]를 통해 약간의 창의력을 발휘하고 고객 거래 내역에 RNN 모델을 적용할 것입니다.

 

 

도전 과제

 

우리가 솔루션에 들어가기 전에 개념에서 생산에 이르는 프로젝트를 수행하는 데 따르는 어려움을 이해해봅시다. 정식 ML 프로세스를 고려해보십시오.

 

 

중요한 관찰결과:

 

  1. 이 프로세스에는 데이터 엔지니어링 프로젝트에 공통적인 데이터 파이프라인이 포함되어있어 대규모 데이터 문제에 직면해 있습니다. 이 블로그에 소개 된 데이터 세트는 작지만 Amazon.com과 같은 대형 리테일 업체의 유사한 세트는 큰 데이터 규모를 가지며 다양한 형식의 배치 및 스트리밍으로 제공됩니다. 높은 모델 성능을 생성하기 때문에 많은 데이터가 ML 프로젝트에 유용하지만 적절한 규모의 데이터를 활용하려면 적절한 플랫폼이 필요합니다. AWS 데이터레이크 전략은 운영상의 복잡성을 최소화하고 비용 효율성을 극대화하는 미래 지향적인 솔루션을 제공 할 수 있습니다. 기초 작업은 AI 이니셔티브와 다른 데이터 엔지니어링 프로젝트에서 계속해서 배당금을 지불하게 됩니다.
  2. 다양한 활동을 지원할 필요성이 있습니다. 다양한 활동은 팀 구성원의 기능 및 스킬세트에 가장 적합한 다양한 도구에 대한 필요성을 의미합니다. 데이터 처리, 발견 및 기능 엔지니어링과 같은 활동은 Spark와 같은 도구에 적합합니다. AWS에서 Amazon EMR은 Spark 클러스터 관리를 용이하게 하고 Spot 가격 책정을 통해 비용을 최소화하면서 탄력적인 확장과 같은 기능을 갖게 합니다. Keras 및 Gluon과 같은 프레임 워크는 Prototype 제작에 선호될 수 있지만 TensorFlow 또는 MXNet은 개발의 후반 단계에서 교육 및 모델 제공을 위한 기본 엔진으로 더 적합할 수 있습니다. 올바른 프레임 워크는 팀의 사용 사례와 스킬세트에 따라 다릅니다. ML 프레임 워크에 구속받지 않는 Amazon SageMaker와 같은 플랫폼이 이상적입니다. 기본 Amazon SageMaker 알고리즘을 활용하거나 선택한 프레임 워크에 내장된 자체 스크립트 또는 컨테이너를 사용하여 사용자 정의 모델을 생성할 수 있습니다.
  3. 이 과정은 매우 반복적입니다. 따라서 반복 사이의 시간을 최소화하는 것이 생산성 측면에서 중요합니다. 각 반복의 중요한 부분은 하이퍼 매개 변수 튜닝이라고 하는 프로세스입니다. 이 매개 변수에 대한 최상의 값은 모델, 데이터 세트 및 목표 별로 고유하므로 실험을 통해 발견해야 합니다. 때로는 많은 매개 변수가 있고 한 변수의 변경이 파급 효과를 가질 수 있기 때문에 프로세스가 어려울 수 있습니다. 매개 변수가 조정될 때마다 모델이 재교육 및 평가되며 복잡성과 데이터 크기에 따라 교육 시간도 늘어납니다. 처리 시간을 최소화하려면 GPU를 활용하고 서버 클러스터를 사용하여 분산된 교육을 수행해야 합니다. 이것은 며칠이 아닌 몇 시간이나 혹은 몇 분을 기다리는 것과 다릅니다. 서비스로서의 GPU에 대한 분산 교육을 제공할 수 있는 Amazon SageMaker와 같은 플랫폼을 사용하면 사용량에 따른 지불 시스템을 통해 상당한 생산성 향상과 비용 효율성을 얻을 수 있습니다. 데이터 과학자 및 ML 엔지니어는 희소하고 값 비싼 리소스입니다. 이 프로세스의 병목 현상을 최소화하는 것이 팀을 군살없이 유지하는데 매우 중요한 사항입니다.
  4. 사진이 불완전합니다. 똑같이 중요한 것은 그림에 없는 것입니다. 분석 실습의 효율성은 비즈니스에 제공하는 가치로 측정됩니다. 모델 또는 엔드 포인트를 제공하는 것이 의도한 비즈니스 성과의 끝이 아닐 수도 있습니다. Amazon SageMaker는 ML 모델을 위한 Auto Scaling API 엔드 포인트의 배포를 자동화합니다. 나머지 AWS 플랫폼은 폭 넓은 서비스와의 통합을 통해 최종 사용자가 ML 모델을 소비 가능하고 실용적으로 만들 수 있게 함으로써 목표를 향해서 한걸음 더 나아갈 수 있습니다. 이러한 통합은 애플리케이션 및 스트림에 대한 실시간 추론을 제공하거나 예측 데이터 분석을 엔터프라이즈 데이터웨어 하우스 (EDW) 및 비즈니스 인텔리전스 (BI) 플랫폼으로 가져 오는 형태일 수 있습니다. 이 블로그 게시물의 후반부에 Amazon Pinpoint에서 예측을 사용하여 실적이 우수한 캠페인을 제공하는 방법을 보여줍니다.

 

 

예측 캠페인 솔루션

 

다음 이미지는 제시할 솔루션의 개념적 아키텍처를 보여줍니다. 이 솔루션은 Amazon SageMaker를 활용하여 앞서 설명드린 ML 프로세스를 용이하게 합니다. 아키텍쳐에 나와있는 네 단계를 보여드리도록 하겠습니다.

 

 

 

 

  1. 데이터 엔지니어링 : 데이터 세트는 Amazon S3 데이터 레이크에 저장됩니다. 이 솔루션을 구축하기 위한 첫 번째 단계는 Amazon SageMaker 관리 Jupyter 노트북을 배포하는 것입니다.

이 첫 번째 노트북은 Spark에서 수행하기로 선택한 데이터 정리, 처리, 검색 및 기능 엔지니어링 작업을 캡처합니다. Spark은 대용량 데이터 세트를 처리 할 수 있는 능력과 다른 유용한 유틸리티 중 데이터 검색에 대한 SQL 지원의 편의성 때문에 이러한 활동에 가장 적합한 도구입니다. SageMaker 노트북 인스턴스는 외부 Amazon EMR 클러스터에 대해 실행되도록 구성할 수 있습니다. Spot 가격 책정을 통해 Amazon EMR의 Spark를 탄탄하고 경제적으로 확장하는 기능은 이 탐색 단계에서 가치가 있습니다. 이 단계에서 파이프 라인을 최적화하는 데 시간을 투자하는 것이 종종 바람직하지 않습니다. 대신 클러스터를 일시적으로 확장하는 것이 팀을 민첩하게 유지하는 전략입니다.

 

  1. 제작 및 교육 : TensorFlow에서 맞춤 모델을 만들고 Amazon SageMaker의 분산 교육 기능을 활용하기로 결정했습니다. 이 노트북은 교육 및 검증 데이터 세트 준비부터 Amazon SageMaker에서 맞춤형 TensorFlow 모델의 교육 및 배포에 이르는 나머지 ML 프로세스를 보여줍니다.

 

다음 다이어그램은 구현된 LSTM RNN 모델의 아키텍처를 보여줍니다.

 

 

개념적으로 RNN은 입력 시퀀스의 조건부 확률을 추정하기 위해 모델링 할 수 있습니다. 이 경우, 순서는 고객 기반의 주문 내역입니다. 우리가 과거에 구매 한 것은 장래에 구매하는 것에 영향을 줍니다. 이전에 구입한 기록에 인코딩 된 예측력이 있으므로 다음에 가장 많이 팔리는 항목을 예측할 수 있습니다. 의심할 여지 없이, 특정 상황에서 이 접근법을 능가할 수 있는 모델들이 있습니다. 제품 권장 사항 및 평가가 포함된 고객 데이터를 보유하고 있는 경우 이러한 기능을 활용하는 예측 모델이 경우에 따라 더 효과적일 수 있습니다. 많은 양의 데이터가 있는 경우 양방향성이 있는 다중 레이어 RNN과 같이 복잡성이 높은 모델을 사용하면 더 나은 결과를 얻을 수 있습니다. 예측 능력을 향상시키는 또 다른 방법은 증폭을 통해 앙상블을 만드는 것입니다. 이 아이디어를 시험해보기 위해 독자에게 이 부분을 남겨두겠습니다!

 

이 Python 스크립트는 Amazon SageMaker 교육 및 모델 제공과 호환되는 방식으로 앞에서 설명한 LSTM RNN 모델을 정의합니다. 개발자는 설명서에 설명 된대로 인터페이스를 구현하기만 하면 됩니다. 이 인터페이스는 사용자 지정 견적기의 TensorFlow 인터페이스와 유사합니다. 원격 교육을 수행하는 것은 SageMaker TensorFlow 객체를 생성하고 fit 메소드를 호출하는 것처럼 간단합니다. 분산 트레이닝을 수행하려면 train_instance_count 매개 변수가 1보다 큰 TensorFlow 객체를 인스턴스화하고 global_step 값이 tf.train.get_or_create_global_step () 인 알고리즘에서 트레이닝 작업을 인스턴스화 해야 합니다. (이는 분산 된 교육을 수행하기 위한 TensorFlow 프레임 워크 요구 사항입니다.)

 

내 노트를 실행하는 사람들은 각각의 실행마다 다른 결과를 관찰합니다. 이것은 ML 알고리즘의 비결정적 특성의 결과로 예상되지만 데이터 세트가 비교적 작고 모델을 재훈련 할 때마다 데이터 세트에서 무작위 분할 및 셔플링이 발생한다는 사실에 의해 증폭됩니다.

 

그럼에도 불구하고 이전 주문이 11 개 미만인 유효성 검사 데이터 집합의 고객이 다음에 구매할 3648 중에서 가장 가능성이 높은 제품을 예측하기 위해서는 20-50 %의 예측 정확도를 얻어야합니다. 2 ~ 50 개 주문 내역을 보유한 고객에 대해 교육을 받았지만 10 개 이상의 주문 내역을 보유한 고객은 상대적으로 적습니다. 이러한 이유로 데이터 세트의 한계로 인해 이 모델을 사용하여 주문이 10 건 미만인 고객에 대해서만 예측을 수행하기로 했습니다. 다음 차트는 숙련된 모델 중 하나의 예상 정확도를 나타냅니다 (파란색). 가장 자주 구매되는 (녹색) 제품과 가장 많이 판매되는 제품 (오렌지색)으로 가장 인기 있는 제품을 예측하는 naïve한 모델의 예측 정확도와 비교됩니다. 다시 말하면, 훈련과 검증 세트가 무작위로 섞여 있기 때문에 다양한 결과를 관찰 할 수 있습니다. 그럼에도 불구하고 이러한 경우 2 ~ 15 %의 정확도를 기대합니다.

 

 

  1. 배포: Amazon SageMaker에서 숙련된 모델을 만든 후 모델에 대한 Auto Scaling API 엔드포인트를 만들려면 배포 방식 호출을 하면 됩니다. 사전 훈련된 모델 중 하나를 배포하는 경우 유효성 검사 세트를 사용하여 다음 구매를 예측할 수 있습니다. 필자는 10 개 이하의 주문을 한 유효성 검사 세트에서 고객을 선택하고 다음에 구매할 제품을 예측했습니다. 전체 데이터 세트에서 테스트 데이터를 샘플링 할 수 있습니다. 그러나 정규화 기술을 적용함에도 불구하고 과도한 징후가 관찰되었기 때문에 교육 세트의 데이터 사용을 피하기로 했습니다. 명확하게 하기 위해 유효성 검사 세트는 주문 내역 시퀀스에서 다음에 알려진 구매의 예측 정확도를 측정하여 모델이 제대로 수행되고 일반화되는지 확인하는 데 사용되었습니다. 이제 데이터 세트의 고객에 대한 다음 알 수 없는 구매를 예측하기 위해 다시 다른 용도로 사용합니다. 예를 들어 9 건의 주문 내역을 가진 고객의 10 번째 구매를 예측합니다. 관찰 된 분포는 다음과 같아야 합니다.

 

 

 

  1. BATCH와 실시간 INFERENCE: 이제 조치를 취할 때입니다. 이러한 예측을 활용하여 다양한 캠페인 목표를 달성 할 수 있습니다. 예를 들어, 3 단계의 그림에서 제품을 선택하여 프로모션을 진행할 수 있습니다. 이러한 예측을 활용하여 전환율이 높은 특별 이벤트로 트래픽을 유도 할 수 있습니다. 이 섹션의 맨 위에 있는 솔루션 아키텍처 다이어그램에서 개념화 한 바와 같이, 이러한 예측을 Amazon Pinpoint에 제공하여 마케팅 캠페인을 추진할 수 있는 여러 가지 방법이 있습니다. 실시간 모바일 푸시가 예측된 프로모션을 제공하는 올바른 방법인 경우 장바구니의 상태가 업데이트 될 때 예측 엔드포인트를 호출하는 AWS Lambda 함수를 트리거하도록 시스템을 디자인하고 잠재적으로 모바일 푸시를 끝까지 수행 할 수 있습니다 사용자. 프로세스는 다음과 같습니다.

 

 

 

 

또는 예측을 일괄적으로 처리하고 마케팅 팀이 캠페인을 시작하기 위해 Amazon Pinpoint로 가져올 수있는 데이터 호수에서 카탈로그화할 수 있습니다. AWS 관리 콘솔을 사용하여 이를 수행 할 수 있습니다. 이 샘플 엔드 포인트 파일로 직접 시도하십시오. 이 엔드 포인트 파일에는 우리 모델이 다음에 “Rabbit Night Light”를 구입할 것으로 예측하는 고객 집단이 포함됩니다. 이 파일에는 인구 통계와 같은 표준 속성과 고객이 도달 할 수있는 채널 및 주소가 포함되어 있습니다. 또한 사용자 지정 특성을 추가 할 수 있습니다. 이 경우 예측 된 제품 ID에 대한 맞춤 속성을 추가했습니다. 이 속성은 콘텐츠를 동적으로 개인화하기 위해 캠페인의 메시지 본문 내에서 활용 될 수 있습니다. 예를 들어, 예측 된 제품 이미지는 이 사용자 정의 속성을 사용하여 동적으로 참조 될 수 있습니다.

 

이 데이터를 가져 오기 위한 첫 번째 단계는 세그먼트를 만드는 것입니다. Amazon S3에서 엔드 포인트 파일을 가져 와서 세그먼트를 작성할 수 있습니다.

 

 

도입된 테스크가 완성 단계에 이르기까지 기다리세요.

 

 

세그먼트를 만든 후에는 캠페인을 런칭할 수 있습니다.

 

 

캠페인의 타깃 그룹을 만들어진 세그먼트를 선택하세요.

 

 

캠페인에 대한 메시지를 작성하십시오. A / B 테스트를 통해 캠페인을 시작한 경우 각 트리트먼트 그룹에 대한 메시지를 작성해야 합니다.

 

 

마지막으로, 캠페인의 일정을 정하세요.

 

 

자, 이제 캠페인을 런칭했습니다! 하지만 우리의 작업은 완료되지 않았습니다. 예측 모델 성과뿐만 아니라 캠페인을 독립적으로 측정 할수 있는 전략을 가지고 있어야 합니다.

 

  1. 캠페인 실적은 메시지를 작성하고 발표하는 방식에 영향을 받을 수 있습니다. Amazon Pinpoint의 A / B 테스트를 활용하여 메시징의 유사 콘텐츠 실적을 측정하십시오.
  2. 유효성 검사 세트가 모델 성능의 좋은 척도가 아닐 수도 있습니다. 데이터세트에 결함이 있거나 부족할 수 있습니다. 프로덕션 환경에서 실제 성능을 테스트하는 전략이 있어야 합니다. 하나의 전략은 통제 그룹을 유지하는 것입니다. Amazon Pinpoint는 세그먼트에서 보류 비율을 지정할 수 있으므로 이를 용이하게 할 수 있습니다. 또한 Amazon Pinpoint Amazon Kinesis 통합을 활용하여 캠페인 이벤트를 캡처 할 수 있으므로 캠페인 및 모델의 성능을 진단하고 측정하기 위한 추가 데이터를 사용할 수 있습니다.
  3. ML 모델 개발은 반복적인 과정입니다. 프로덕션 환경에서 모델의 다양한 버전을 검증하는 전략이 있어야합니다. 이 작업을 용이하게 하기 위해 A / B 테스트 기능을 내장한 Amazon SageMaker를 활용할 수 있습니다.
  4. 마지막으로 비즈니스에 제공하는 가치를 측정하십시오. 예를 들어 전자 상거래 전환율에 대한 공개 통계를 고려해보십시오. 인터넷의 다양한 사이트에서 1-5 % 범위의 전환율을 보고하고 10-60 %의 개방률을 보고합니다. 예측 정확도가 높은 예측 모델을 사용하여 매우 매력적인 맞춤 콘텐츠를 제작할 수 있다면 어떨까요? 경쟁력 우위가 중요합니다. Amazon Pinpoint 분석을 통해 예측 캠페인의 효율성을 입증하여 캠페인 실적, 앱 사용 및 수익 기여도가 포함된 측정 항목을 추적하고 제시하십시오.

 

결론

 

이 블로그 게시물에서는 Amazon SageMaker, Amazon Pinpoint 및 AWS 데이터 레이크 전략을 통해 AWS 플랫폼에서 데이터 과학 및 마케팅을 함께 수행 할 수 있는 방법을 보여주었습니다. 자동화, 서버리스 아키텍처 및 사용 후 지불 경제성을 통해 고속 및 비용 효율성으로 바 인상 결과를 제공 할 수 있는 방법을 보여주는 예측 캠페인 솔루션을 사용했습니다.

 

Campaign을 만들며 좋은 시간 보내시길 바랍니다!

 

원문 URL: https://aws.amazon.com/ko/blogs/machine-learning/amazon-pinpoint-campaigns-driven-by-machine-learning-on-amazon-sagemaker/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.