제퍼넷 로고

AWS Glue로 Amazon Personalize 설정

시간

데이터는 마케팅, 영업 또는 제품과 같은 다양한 비즈니스 단위의 요구를 충족시키기 위해 다양한 방식으로 사용될 수 있습니다. 이 게시물에서는 데이터를 사용하여 최종 사용자 참여를 개선하기위한 개인화 된 권장 사항을 만드는 데 중점을 둡니다. 대부분의 전자 상거래 응용 프로그램은 개인화 된 권장 사항을 제공하는 데 사용할 수있는 엄청난 양의 고객 데이터를 사용합니다. 그러나 데이터가 정리되지 않았거나 귀중한 통찰력을 제공하기에 올바른 형식이 아닐 수 있습니다.

이 게시물의 목표는 AWS 접착제 JSON 데이터를 추출, 변환 및 정리 된 CSV 형식으로로드합니다. 그런 다음에서 제공하는 추천 엔진을 실행하는 방법을 보여줍니다. 아마존 개인화 고객에게 맞춤형 경험을 제공하기 위해 사용자 상호 작용 데이터에 Amazon Personalize의 결과 출력은 API에서 생성 할 수있는 권장 사항입니다.

일반적인 사용 사례는 사용자 항목 상호 작용 데이터를 수집하고 고객이 좋아할 수있는 유사한 제품 또는 제품을 제안하는 전자 상거래 플랫폼입니다. 이 게시물이 끝나면 정리되지 않은 JSON 데이터를 가져와 각 사용자가 상호 작용 한 제품을 기반으로 개인화 된 추천을 생성하여 최종 사용자에게 더 나은 경험을 제공 할 수 있습니다. 이 게시물의 목적은 다음을 참조하십시오. 사용자 항목 상호 작용 데이터 세트 이 솔루션을 구축합니다.

이 솔루션의 리소스로 인해 AWS 계정에 비용이 발생할 수 있습니다. 가격 정보는 다음을 참조하십시오. AWS Glue 요금Amazon Personalize 요금.

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

사전 조건

이 게시물에는 다음이 필요합니다.

버킷 생성에 대한 지침은 1 단계 : 첫 번째 S3 버킷 생성. 확인하십시오 Amazon Personalize 액세스 정책 연결.

이것은 매우 관대 한 정책입니다. 실제로 최소한의 권한을 사용하고 필요한 경우에만 액세스 권한을 부여하는 것이 가장 좋습니다. 역할 생성에 대한 지침은 2 단계 : AWS Glue에 대한 IAM 역할 생성.

AWS Glue를 사용하여 데이터 크롤링

AWS Glue를 사용하여 JSON 파일을 크롤링하여 데이터 스키마를 결정하고 AWS Glue 데이터 카탈로그에 메타 데이터 테이블을 생성합니다. 데이터 카탈로그에는 AWS Glue에서 ETL 작업의 소스 및 대상으로 사용되는 데이터에 대한 참조가 포함되어 있습니다. AWS Glue는 데이터를 쉽게 추출, 정리, 보강, 정규화 및로드 할 수있는 서버리스 데이터 준비 서비스입니다. 분석 또는 기계 학습 (ML)을 위해 데이터를 준비하는 데 도움이됩니다. 이 섹션에서는 CSV 파일이 필요한 Amazon Personalize를 위해 JSON 데이터를 준비하는 방법을 살펴 봅니다.

데이터에는 Amazon Personalize를 통해 반드시 실행해야하거나 실행해야하는 다른 열이있을 수 있습니다. 이 게시물에서 우리는 user-item-interaction.json 열만 포함하도록 AWS Glue를 사용하여 해당 데이터를 파일링하고 정리합니다. user_id, item_idtimestamp, CSV 형식으로 변환합니다. 크롤러를 사용하여 데이터 저장소에 액세스하고, 메타 데이터를 추출하고, 데이터 카탈로그에서 테이블 정의를 만들 수 있습니다. 자동으로 새 데이터를 검색하고 스키마 정의를 추출합니다. 이를 통해 데이터와 모델을 학습하는 동안 포함 할 내용을 더 잘 이해할 수 있습니다.

XNUMXD덴탈의 user-item-interaction JSON 데이터는 레코드 배열입니다. 크롤러는 데이터를 하나의 객체, 즉 배열로 취급합니다. 우리는 맞춤 분류 자 JSON 배열의 각 레코드를 기반으로하는 스키마를 만듭니다. 데이터가 레코드 배열이 아닌 경우이 단계를 건너 뛸 수 있습니다.

  1. AWS Glue 콘솔의 겉옷선택한다. 분류 자.
  2. 왼쪽 메뉴에서 분류 자 추가.
  3. 럭셔리 분류 자 이름시작하다 json_classifier.
  4. 럭셔리 분류 자 유형, 고르다 JSON.
  5. 럭셔리 JSON 경로, 입력 $[*].
  6. 왼쪽 메뉴에서 만들기.

생성을 선택합니다.

  1. 크롤러 페이지선택한다. 크롤러 추가.
  2. 럭셔리 크롤러 이름, 입력 json_crawler.
  3. 럭셔리 맞춤 분류 자에서 생성 한 분류자를 추가합니다.

사용자 지정 분류 자의 경우 생성 한 분류자를 추가합니다.

  1. 왼쪽 메뉴에서 다음 보기.
  2. 럭셔리 크롤러 소스 유형선택한다. 데이터 저장소.
  3. 나머지는 모두 기본값으로두고 선택 다음 보기.
  4. 럭셔리 데이터 저장소를 선택하십시오, JSON 데이터 파일의 Amazon S3 경로를 입력합니다.
  5. 왼쪽 메뉴에서 다음 보기.

다음을 선택하십시오.

  1. 섹션 건너 뛰기 다른 데이터 저장소 추가.
  2. . IAM 역할을 선택하십시오. 섹션에서 선택 기존 IAM 역할 선택.
  3. 럭셔리 IAM 역할에서 이전에 생성 한 역할 (AWSGlueServiceRole-xxx).
  4. 왼쪽 메뉴에서 다음 보기.

다음을 선택하십시오.

  1. 빈도는 그대로 둡니다. 주문형 실행.
  2. 산출 페이지에서 선택 데이터베이스 추가.
  3. 럭셔리 데이터베이스 이름, 입력 json_data.
  4. 왼쪽 메뉴에서 마감재 .
  5. 왼쪽 메뉴에서 지금 실행. 

다음으로 이동하여 크롤러를 실행할 수도 있습니다. 겉옷 페이지, 크롤러 선택 및 크롤러 실행.

AWS Glue를 사용하여 CSV에서 JSON으로 파일 변환

크롤러 실행이 완료되면 테이블 AWS Glue 콘솔의 페이지. 크롤러가 생성 한 테이블로 이동합니다. 여기에서 데이터 스키마를 볼 수 있습니다. Amazon Personalize 데이터에 사용할 필드를 기록해 둡니다. 이 게시물을 위해 우리는 user_id, item_id및 Amazon Personalize에 대한 타임 스탬프 열.

이 게시물에서는 Amazon Personalize에 대한 user_id, item_id 및 타임 스탬프 열을 유지하려고합니다.

이 시점에서 데이터베이스를 설정했습니다. Amazon Personalize에는 CSV 파일이 필요하므로 JSON 형식의 데이터를 Amazon Personalize에 필요한 데이터 만 포함하는 세 개의 정리 된 CSV 파일로 변환해야합니다. 다음 표는 Amazon Personalize에 포함 할 수있는 세 가지 CSV 파일의 예를 보여줍니다. 주목하는 것이 중요합니다. 상호 작용 데이터가 필요하지만 사용자 데이터 메타 데이터는 선택 사항입니다.

데이터 세트 유형 필수 입력 사항 예약 된 키워드
사용자

USER_ID (끈)

메타 데이터 필드 1 개

항목

ITEM_ID (끈)

메타 데이터 필드 1 개

CREATION_TIMESTAMP(긴)
상호 작용

USER_ID (끈)

ITEM_ID (끈)

TIMESTAMP (긴)

 

EVENT_TYPE (끈)

IMPRESSION (끈)

EVENT_VALUE (float, null)

모델을 학습시키기 위해 최소 1,000 개의 고유 한 결합 된 기록 및 이벤트 상호 작용이 있는지 확인하는 것도 중요합니다. 할당량에 대한 자세한 내용은 Amazon Personalize의 할당량.

데이터를 CSV로 저장하려면 데이터에 대해 AWS Glue 작업을 실행해야합니다. 작업은 AWS Glue에서 ETL 작업을 수행하는 비즈니스 로직입니다. 이 작업은 형식을 JSON에서 CSV로 변경합니다. 데이터 형식에 대한 자세한 내용은 입력 데이터 형식화.

  1. AWS Glue 대시 보드선택한다. AWS 글루 스튜디오.

AWS 글루 스튜디오 AWS Glue ETL 작업을 생성, 실행 및 모니터링하기위한 사용하기 쉬운 그래픽 인터페이스입니다.

  1. 왼쪽 메뉴에서 작업 생성 및 관리.
  2. 선택 그래프에 소스와 타겟이 추가되었습니다.
  3. 럭셔리 출처선택한다. S3.
  4. 럭셔리 목표선택한다. S3.
  5. 왼쪽 메뉴에서 만들기.

생성을 선택합니다.

  1. 데이터 소스 S3 버킷을 선택합니다.
  2. 데이터 소스 속성 – S3 탭에서 앞서 만든 데이터베이스와 테이블을 추가합니다.

데이터 원본 속성 – S3 탭에서 앞서 만든 데이터베이스와 테이블을 추가합니다.

  1. 변환 탭에서 드롭 할 상자를 선택하십시오. user_loginlocation.

이 게시물에서는 개인화 알고리즘을 실행하기 위해 추가 메타 데이터를 사용하지 않습니다.

이 게시물에서는 개인화 알고리즘을 실행하기 위해 추가 메타 데이터를 사용하지 않습니다.

  1. 데이터 대상 S3 버킷을 선택합니다.
  2. 데이터 대상 속성 – S3 탭, 형성선택한다. CSV.
  3. 럭셔리 S3 대상 위치, 대상의 S3 경로를 입력하십시오. 

이 게시물에서는 JSON 파일에 사용한 것과 동일한 버킷을 사용합니다.

이 게시물에서는 JSON 파일에 사용한 것과 동일한 버킷을 사용합니다.

  1. 직업 세부 정보 페이지 성함, 작업 이름을 입력하십시오 (이 게시물의 경우 json_to_csv).
  2. 럭셔리 IAM 역할에서 이전에 생성 한 역할을 선택합니다.

또한 다음을 포함해야합니다. AmazonS3FullAccess 이전 정책.

  1. 나머지 필드는 기본 설정으로 둡니다.

나머지 필드는 기본 설정으로 둡니다.

  1. 왼쪽 메뉴에서 찜하기.
  2. 왼쪽 메뉴에서 달리기.

작업이 실행되는 데 몇 분 정도 걸릴 수 있습니다.

이제 Amazon S3 버킷에 다음 섹션에서 사용하는 CSV 파일이 표시됩니다.

Amazon Personalize 설정

이제 Amazon Personalize에서 사용할 수있는 파일 형식으로 데이터 형식이 지정되었습니다. Amazon Personalize는 ML과 Amazon.com에서 20 년 이상의 추천 경험을 사용하는 완전 관리 형 서비스로, 실시간 개인화 된 제품 및 콘텐츠 추천과 타겟 마케팅 프로모션을 강화하여 최종 사용자 참여를 개선 할 수 있습니다. 이 섹션에서는 데이터를 사용하여 개인화 된 경험을 생성하는 Amazon Personalize 솔루션을 생성하는 방법을 살펴 봅니다.

  1. Amazon Personalize 콘솔의 새 데이터 세트 그룹선택한다. 시작하기.
  2. 데이터 세트 그룹의 이름을 입력합니다.

데이터 세트 그룹에는 데이터 세트, 솔루션 및 이벤트 수집 API가 포함됩니다.

  1. 데이터 세트 이름을 입력하고 데이터를 기반으로 한 스키마 세부 정보를 입력합니다.

이 데이터 세트의 경우 다음 스키마를 사용합니다. 데이터 세트의 값에 따라 스키마를 변경할 수 있습니다.

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0"
}

  1. 왼쪽 메뉴에서 다음 보기.
  2. Amazon S3에서 데이터를 가져 오려면 데이터 세트 가져 오기 작업 이름을 입력합니다.

IAM 서비스 역할에 Amazon S3 및 Amazon Personalize에 대한 액세스 권한이 있고 버킷에 올바른 권한이 있는지 확인하십시오. 버킷 정책.

  1. 데이터 경로를 입력합니다 (이전 섹션의 Amazon S3 버킷).
  2. 대시보드 데이터 세트 그룹 페이지에서 데이터 세트 업로드가져 오기 user-item-interactions 데이터 (사용자 데이터 및 항목 데이터는 선택 사항이지만 솔루션을 향상시킬 수 있음).

데이터 세트 그룹에 대한 대시 보드 페이지의 데이터 세트 업로드에서

우리는 예를 포함합니다 item.csv 에 파일을 GitHub 레포. 다음 스크린 샷은 항목 데이터의 예를 보여줍니다.

다음 스크린 샷은 항목 데이터의 예를 보여줍니다.

  1. $XNUMX Million 미만 솔루션 생성에 대한 솔루션 교육선택한다. 스타트.

솔루션은 선택한 알고리즘 또는 레시피와 함께 제공 한 데이터의 학습 된 모델입니다.

  1. 럭셔리 솔루션 이름, 입력 aws-user-personalization.
  2. 왼쪽 메뉴에서 다음 보기.
  3. 검토 및 선택 마감재 .
  4. 대시 보드에서 캠페인 시작에 대한 캠페인 생성선택한다. 스타트.

캠페인을 통해 애플리케이션은 솔루션 버전에서 권장 사항을 얻을 수 있습니다.

  1. 럭셔리 캠페인 이름, 이름을 입력하십시오.
  2. 생성 한 솔루션을 선택하십시오.
  3. 왼쪽 메뉴에서 캠페인 만들기.

이제 데이터 레이크의 데이터를 성공적으로 사용하고 다양한 권장 사항을 얻는 데 사용할 수있는 권장 사항 모델을 만들었습니다. 이 데이터 세트를 사용하면 데이터 세트의 다른 제품과 사용자의 상호 작용을 기반으로 가정 용품 제품에 대한 개인화 된 권장 사항을 얻을 수 있습니다.

Amazon Personalize를 사용하여 추천 받기

솔루션을 테스트하려면 작성한 캠페인으로 이동하십시오. 에서 캠페인 결과 테스트 섹션 아래 사용자 ID, 추천을받을 ID를 입력하세요. 상대 점수와 함께 ID 목록이 표시됩니다. 항목 ID는 권장되는 특정 제품과 관련이 있습니다.

다음 스크린 샷은 사용자 ID 검색을 보여줍니다. 1. 추천 항목 ID입니다. 59, 나무 액자와 관련이 있습니다. 항목 옆에 나열된 점수는 각 항목과 사용자의 예상 관련성을 제공합니다.

다음 스크린 샷은 사용자 ID 1에 대한 검색을 보여줍니다.

Amazon Personalize 점수에 대한 자세한 내용은 Amazon Personalize에서 추천 점수 소개.

권장 사항을 생성하려면 GetRecommendations or GetPersonalizedRanking API를 사용하는 AWS 명령 줄 인터페이스 (AWS CLI) 또는 언어 별 SDK. Amazon Personalize를 사용하면 사용자가 더 많은 실시간 사용 사례를 위해 항목을 클릭하면 권장 사항이 변경 될 수 있습니다. 자세한 내용은 실시간 권장 사항 얻기.

결론

AWS는 다양한 AI / ML분석 통찰력을 얻고 더 나은 비즈니스 결정을 안내하는 데 사용할 수있는 서비스입니다. 이 게시물에서는 추가 데이터 열이 포함 된 JSON 데이터 세트를 사용하고 AWS Glue를 사용하여 해당 데이터를 정리 및 변환했습니다. 또한 Amazon Personalize를 사용하여 고객에게 권장 사항을 제공하는 사용자 지정 모델을 구축했습니다.

Amazon Personalize에 대해 자세히 알아 보려면 개발자 가이드. 이 솔루션을 시도하고 의견에 질문이 있으면 알려주십시오.


저자에 관하여

조이 쉬 피스 와파조이시 피타 왈라 샌프란시스코에 기반을 둔 Amazon Web Services의 Startup Solutions Architect입니다. 그녀는 주로 스타트 업 고객과 협력하여 AWS에서 안전하고 확장 가능한 솔루션을 구축 할 수 있도록 지원합니다.

 

 

 

샘 트란샘 트란 시애틀에 기반을 둔 Amazon Web Services의 Startup Solutions Architect입니다. 그는 고객이 AWS에서 잘 설계된 솔루션을 생성하도록 돕는 데 중점을 둡니다.

출처 : https://aws.amazon.com/blogs/machine-learning/setting-up-amazon-personalize-with-aws-glue/

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?