코드 PlatoBlockchain Data Intelligence 없이 Amazon Personalize를 사용하여 배치 권장 사항 파이프라인을 생성합니다. 수직 검색. 일체 포함.

코드 없이 Amazon Personalize를 사용하여 배치 권장 사항 파이프라인 생성

개인화된 콘텐츠가 고객 참여를 유도할 가능성이 높아지면서 기업은 고객의 프로필과 행동을 기반으로 맞춤형 콘텐츠를 제공하기 위해 지속적으로 노력하고 있습니다. 추천 시스템은 특히 최종 사용자가 항목에 부여할 선호도를 예측하려고 합니다. 몇 가지 일반적인 사용 사례에는 온라인 소매점의 제품 추천, 뉴스레터 개인화, 음악 재생 목록 추천 생성 또는 온라인 미디어 서비스에서 유사한 콘텐츠 검색 등이 있습니다.

그러나 모델 교육, 알고리즘 선택 및 플랫폼 관리의 복잡성으로 인해 효과적인 추천 시스템을 만드는 것이 어려울 수 있습니다. 아마존 개인화 개발자는 기계 학습(ML) 전문 지식 없이도 개인화된 제품 및 콘텐츠 추천을 통해 고객 참여를 개선할 수 있습니다. 개발자는 캡처된 사용자 행동 데이터를 사용하여 즉시 고객 참여를 시작할 수 있습니다. Amazon Personalize는 배후에서 이 데이터를 검사하고, 의미 있는 것을 식별하고, 올바른 알고리즘을 선택하고, 데이터에 맞게 사용자 지정된 개인화 모델을 교육 및 최적화하고, API 엔드포인트를 통해 권장 사항을 제공합니다.

실시간으로 권장 사항을 제공하면 참여도와 만족도를 높이는 데 도움이 될 수 있지만 때로는 이것이 실제로 필요하지 않을 수 있으며 일정에 따라 일괄적으로 수행하는 것이 더 비용 효율적이고 관리하기 쉬운 옵션이 될 수 있습니다.

이 게시물은 AWS 서비스를 사용하여 권장 사항을 생성할 뿐만 아니라 배치 권장 사항 파이프라인을 운영하는 방법을 보여줍니다. 코드 한 줄 없이 종단 간 솔루션을 살펴봅니다. 우리는 두 가지 주제에 대해 자세히 논의합니다.

솔루션 개요

이 솔루션에서는 다음을 사용합니다. 무비렌즈 데이터세트. 이 데이터 세트에는 86,000명의 사용자가 평가한 2,113개의 영화 등급이 포함되어 있습니다. 우리는 이 데이터를 사용하여 이러한 각 사용자에 대한 권장 사항을 생성하려고 시도합니다.

고객 행동 데이터를 Amazon Personalize에 사용할 수 있는 형식으로 가져오려면 데이터 준비가 매우 중요합니다. 이 게시물에서 설명하는 아키텍처는 서버리스 데이터 통합 ​​서비스인 AWS Glue를 사용하여 원시 데이터를 Amazon Personalize에서 사용할 준비가 된 형식으로 변환합니다. 이 솔루션은 Amazon Personalize를 사용하여 배치 추론을 사용하여 모든 사용자에 대한 배치 권장 사항을 생성합니다. 그런 다음 반복 가능한 방식으로 Amazon Personalize API를 호출하여 자동화된 워크플로를 실행할 수 있도록 Step Functions 워크플로를 사용합니다.

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

다음 단계에 따라 이 솔루션을 구축할 것입니다.

  1. AWS Glue를 사용하여 원시 데이터를 변환하는 데이터 변환 작업을 구축합니다.
  2. 변환된 데이터 세트로 Amazon Personalize 솔루션을 구축하십시오.
  3. 일괄 추론 생성을 조정하는 Step Functions 워크플로를 구축합니다.

사전 조건

이 연습에는 다음이 필요합니다.

AWS Glue로 원시 데이터를 변환하는 데이터 변환 작업 구축

Amazon Personalize를 사용하면 입력 데이터에 특정 스키마와 파일 형식이 있어야 합니다. 사용자와 항목 간의 상호 작용 데이터는 특정 열이 포함된 CSV 형식이어야 하지만 추천을 생성하려는 사용자 목록은 JSON 형식이어야 합니다. 이 섹션에서는 AWS Glue Studio를 사용하여 원시 입력 데이터를 Amazon Personalize에 필요한 구조 및 형식으로 변환합니다.

AWS Glue Studio는 ETL(추출, 변환 및 로드) 작업을 쉽게 생성하고 실행할 수 있도록 설계된 그래픽 인터페이스를 제공합니다. 간단한 끌어서 놓기 작업을 통해 데이터 변환 워크로드를 시각적으로 생성할 수 있습니다.

먼저 소스 데이터를 준비합니다. 아마존 단순 스토리지 서비스 (Amazon S3), 그런 다음 코드 없이 데이터를 변환합니다.

  1. Amazon S3 콘솔에서 raw, transformed 및 curated의 세 가지 폴더가 있는 S3 버킷을 생성합니다.
  2. 를 다운로드 MovieLens 데이터세트 그리고 user_ratingmovies-timestamp.dat라는 압축되지 않은 파일을 raw 폴더 아래의 버킷에 업로드합니다.
  3. AWS Glue Studio 콘솔에서 다음을 선택합니다. 작업 탐색 창에서
  4. 선택 소스 및 대상이 있는 시각적 개체다음을 선택 만들기.
  5. 라는 첫 번째 노드를 선택하십시오. 데이터 소스 – S3 버킷. 여기에서 입력 데이터를 지정합니다.
  6. 데이터 소스 속성 탭에서 S3 위치 업로드한 파일을 찾습니다.
  7. 럭셔리 데이터 형식선택한다. CSV등에 대한 구분 기호선택한다. .
    AWS 글루 스튜디오 - S3
  8. 출력 스키마 탭을 선택하여 스키마가 열을 올바르게 추론했는지 확인할 수 있습니다.
  9. 스키마가 예상과 일치하지 않으면 다음을 선택하십시오. 편집 스키마를 편집합니다.
    AWS Glue 스튜디오 - 필드

다음으로 Amazon Personalize의 스키마 요구 사항을 따르도록 이 데이터를 변환합니다.

  1. 선택 변환 – 매핑 적용 노드 및 변환 탭에서 대상 키와 데이터 유형을 업데이트합니다.
    Amazon Personalize는 최소한 다음과 같은 구조를 기대합니다. 상호 작용 데이터 세트:
    • user_id (끈)
    • item_id (끈)
    • timestamp (long, Unix epoch 시간 형식)
      AWS Glue Studio - 필드 매핑

이 예에서는 데이터 세트에서 평점이 낮은 영화를 제외합니다.

  1. 이렇게 하려면 S3 버킷이라는 마지막 노드를 제거하고 에 필터 노드를 추가합니다. 변환 탭.
  2. 왼쪽 메뉴에서 추가 조건 등급 < 3.5인 데이터를 필터링합니다.
    AWS Glue 스튜디오 - 출력

이제 출력을 다시 Amazon S3에 씁니다.

  1. 확장 목표 메뉴를 선택하고 아마존 S3.
  2. 럭셔리 S3 대상 위치, 이름이 지정된 폴더를 선택하십시오. transformed.
  3. 왼쪽 메뉴에서 CSV 형식 및 접미사로 타겟 위치interactions/.

다음으로 추천을 받고 싶은 사용자 목록을 출력합니다.

  1. 선택 매핑 적용 노드를 다시 확장한 다음 변환 메뉴를 선택하고 매핑 적용.
  2. 다음을 제외한 모든 필드 삭제 user_id 해당 필드의 이름을 userId. Amazon Personalize는 해당 필드의 이름이 지정될 것으로 예상합니다. 사용자 ID.
  3. 확장 목표 메뉴를 다시 선택하고 아마존 S3.
  4. 이번에는 선택 JSON 형식으로 선택한 다음 변환된 S3 폴더를 선택하고 접미사를 붙입니다. batch_users_input/.

이것은 생성 JSON Amazon Personalize에 대한 입력으로 사용자 목록. 이제 다음과 같은 다이어그램이 있어야 합니다.

AWS Glue Studio - 전체 워크플로

이제 변환 작업을 실행할 준비가 되었습니다.

  1. IAM 콘솔에서 glue-service-role이라는 역할을 생성하고 다음 관리형 정책을 연결합니다.
    • AWSGlueServiceRole
    • AmazonS3FullAccess

IAM 서비스 역할을 생성하는 방법에 대한 자세한 내용은 AWS 서비스에 권한을 위임하는 역할 생성.

  1. AWS Glue Studio 작업으로 돌아가서 다음을 선택합니다. 직업 세부 정보 탭.
  2. 작업 이름을 다음과 같이 설정하십시오. batch-personalize-input-transform-job.
  3. 새로 생성된 IAM 역할을 선택합니다.
  4. 다른 모든 항목에 대해서는 기본값을 유지하십시오.
    AWS Glue Studio - 작업 세부 정보
  5. 왼쪽 메뉴에서 찜하기.
  6. 준비가 되면 선택하세요. 달리기 작업을 모니터링하고 실행 탭.
  7. 작업이 완료되면 Amazon S3 콘솔로 이동하여 출력 파일이 성공적으로 생성되었는지 확인합니다.

이제 Amazon Personalize에 필요한 형식과 구조로 데이터를 형성했습니다. 변환된 데이터세트에는 다음 필드와 형식이 있어야 합니다.

  • 상호 작용 데이터 세트 – 필드가 있는 CSV 형식 USER_ID, ITEM_ID, TIMESTAMP
  • 사용자 입력 데이터세트 – 요소가 있는 JSON 형식 userId

변환된 데이터 세트로 Amazon Personalize 솔루션 구축

올바른 형식의 상호 작용 데이터 세트와 사용자 입력 데이터를 사용하여 이제 Amazon Personalize 솔루션을 생성할 수 있습니다. 이 섹션에서는 데이터 세트 그룹을 만들고 데이터를 가져온 다음 일괄 추론 작업을 만듭니다. 데이터 세트 그룹은 리소스를 Amazon Personalize 구성 요소의 컨테이너로 구성합니다.

  1. Amazon Personalize 콘솔에서 만들기 데이터 세트 그룹.
  2. 럭셔리 도메인, 고르다 관습.
  3. 왼쪽 메뉴에서 데이터세트 그룹을 만들고 계속.
    Amazon Personalize - 데이터 세트 그룹 생성

다음으로 상호 작용 데이터 세트를 만듭니다.

  1. 데이터세트 이름을 입력하고 선택 새 스키마 만들기.
  2. 왼쪽 메뉴에서 데이터세트 생성 및 계속.
    Amazon Personalize - 상호 작용 데이터 세트 생성

이제 이전에 생성한 상호 작용 데이터를 가져옵니다.

  1. 상호 작용 CSV 데이터 세트를 생성한 S3 버킷으로 이동합니다.
  2. 권한 탭에서 Amazon Personalize가 액세스할 수 있도록 다음 버킷 액세스 정책을 추가합니다. 버킷 이름을 포함하도록 정책을 업데이트합니다.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

Amazon Personalize로 돌아가서 선택하십시오. 데이터세트 가져오기 작업 만들기. 이제 상호 작용 데이터 세트를 Amazon Personalize로 가져와야 합니다. 다음 단계를 계속하기 전에 가져오기 작업이 활성 상태로 완료될 때까지 기다리십시오. 이 작업은 약 8분이 소요됩니다.

  1. Amazon Personalize 콘솔에서 살펴보기 탐색 창에서 선택하고 솔루션 만들기.
    Amazon Personalize - 대시보드
  2. 솔루션 이름을 입력합니다.
  3. 럭셔리 솔루션 유형선택한다. 아이템 추천.
  4. 럭셔리 조리법을 선택하십시오 aws-user-personalization 레시피.
  5. 왼쪽 메뉴에서 솔루션 생성 및 학습.
    Amazon Personalize - 솔루션 생성

이제 솔루션은 사용자 개인화 레시피와 함께 가져온 상호 작용 데이터 세트에 대해 학습합니다. 아래에서 이 프로세스의 상태를 모니터링합니다. 솔루션 버전. 계속하기 전에 완료될 때까지 기다리십시오. 이 작업은 약 20분이 소요됩니다.
Amazon Personalize - 상태

이제 JSON 입력에 있는 각 사용자에 대한 권장 사항을 생성하는 일괄 추론 작업을 생성합니다.

  1. 탐색 창의 사용자 지정 리소스선택한다. 배치 추론 작업.
  2. 작업 이름을 입력하고 해법, 이전에 만든 솔루션을 선택합니다.
  3. 왼쪽 메뉴에서 배치 유추 작업 만들기.
    Amazon Personalize - 배치 추론 작업 생성
  4. 럭셔리 입력 데이터 구성, S3 경로를 입력하십시오. batch_users_input 파일이 있습니다.

다음을 포함하는 JSON 파일입니다. userId.

  1. 럭셔리 출력 데이터 구성 통로, S3에서 선별된 경로를 선택합니다.
  2. 왼쪽 메뉴에서 배치 유추 작업 만들기.

이 프로세스는 약 30분이 소요됩니다. 작업이 완료되면 사용자 입력 파일에 지정된 각 사용자에 대한 권장 사항이 S3 출력 위치에 저장됩니다.

모든 사용자를 위한 권장 사항 세트를 성공적으로 생성했습니다. 그러나 우리는 지금까지 콘솔을 사용하여 솔루션을 구현했습니다. 이 배치 추론이 최신 데이터 세트로 정기적으로 실행되도록 하려면 오케스트레이션 워크플로를 구축해야 합니다. 다음 섹션에서는 Step Functions를 사용하여 오케스트레이션 워크플로를 생성하는 방법을 보여줍니다.

일괄 추론 워크플로를 조정하는 Step Functions 워크플로 구축

파이프라인을 조정하려면 다음 단계를 완료하십시오.

  1. Step Functions 콘솔에서 다음을 선택합니다. 상태 머신 생성.
  2. 선택 워크플로를 시각적으로 디자인다음을 선택 다음 보기.
    AWS Step Functions - 워크플로 생성
  3. 을 끌어 CreateDatasetImportJob 왼쪽에서 노드(검색 상자에서 이 노드를 검색할 수 있음)를 캔버스로 이동합니다.
  4. 노드를 선택하면 오른쪽에 구성 API 매개변수가 표시됩니다. ARN을 기록합니다.
  5. 에 자신의 값을 입력하십시오. API 매개 변수 텍스트 상자.

이것은 데이터세트가져오기작업 만들기 지정한 매개변수 값이 있는 API.

AWS Step Functions 워크플로

  1. 을 끌어 CreateSolutionVersion 캔버스에 노드.
  2. 기록해 둔 솔루션의 ARN으로 API 파라미터를 업데이트합니다.

이렇게 하면 솔루션 버전 만들기 API.

  1. 을 끌어 CreateBatchInferenceJob 노드를 캔버스에 추가하고 API 매개변수를 관련 값으로 유사하게 업데이트합니다.

사용하는지 확인하십시오. $.SolutionVersionArn 구문을 사용하여 이전 단계에서 솔루션 버전 ARN 파라미터를 검색합니다. 이러한 API 매개변수는 배치추론작업 생성 API.

AWS Step Functions 워크플로

권장 사항 일괄 추론 작업이 워크플로가 완료되기 전에 완료되도록 Step Functions 워크플로에서 대기 논리를 빌드해야 합니다.

  1. Wait 노드를 찾아서 끕니다.
  2. 에 대한 구성에서 기다림, 300초를 입력합니다.

이것은 임의의 값입니다. 특정 사용 사례에 따라 이 대기 시간을 변경해야 합니다.

  1. 선택 CreateBatchInferenceJob 노드를 다시 클릭하고 오류 처리 탭.
  2. 럭셔리 잡아라 오류, 입력 Personalize.ResourceInUseException.
  3. 럭셔리 대체 상태선택한다. 기다림.

이 단계를 통해 작업 상태를 주기적으로 확인할 수 있으며 작업이 완료될 때만 루프를 종료합니다.

  1. 럭셔리 결과 경로, 입력 $.errorMessage.

이는 "사용 중인 리소스" 예외가 수신될 때 작업이 동일한 입력으로 다시 시도하기 전에 x초 동안 대기한다는 것을 의미합니다.

AWS Step Functions 워크플로

  1. 왼쪽 메뉴에서 찜하기, 다음을 선택하십시오. 실행 시작.

Amazon Personalize에 대한 배치 추천 파이프라인을 성공적으로 오케스트레이션했습니다. 선택적 단계로 다음을 사용할 수 있습니다. 아마존 이벤트 브리지 정기적으로 이 워크플로의 트리거를 예약합니다. 자세한 내용은 Step Functions 실행 상태 변경을 위한 EventBridge(CloudWatch 이벤트).

정리

향후 요금이 발생하지 않도록 하려면 이 연습을 위해 생성한 리소스를 삭제하십시오.

결론

이 게시물에서는 한 줄의 코드나 ML 경험 없이 AWS Glue, Amazon Personalize 및 Step Functions의 조합을 사용하여 배치 권장 사항 파이프라인을 생성하는 방법을 보여주었습니다. AWS Glue를 사용하여 Amazon Personalize에 필요한 형식으로 데이터를 준비했습니다. 그런 다음 Amazon Personalize를 사용하여 데이터를 가져오고, 사용자 개인화 레시피가 있는 솔루션을 생성하고, 과거 상호 작용을 기반으로 각 사용자에 대해 기본적으로 25개의 권장 사항을 생성하는 배치 추론 작업을 생성했습니다. 그런 다음 이러한 작업을 자동으로 실행할 수 있도록 Step Functions를 사용하여 이러한 단계를 조정했습니다.

다음에 고려할 단계의 경우 사용자 세분화는 Amazon Personalize의 최신 레시피 중 하나이며 입력 데이터의 각 행에 대한 사용자 세그먼트를 생성하기 위해 탐색할 수 있습니다. 자세한 내용은 일괄 추천 및 사용자 세그먼트 가져오기.


저자,

맥신 위

맥신 위 AWS 데이터 랩 솔루션 아키텍트입니다. Maxine은 사용 사례에 대해 고객과 협력하고 비즈니스 문제를 해결하기 위한 솔루션을 설계하며 확장 가능한 프로토타입을 구축하도록 안내합니다. AWS와 함께하기 전에 Maxine은 고객이 호주에서 BI, 데이터 웨어하우징 및 데이터 레이크 프로젝트를 구현하도록 도왔습니다.

타임 스탬프 :

더보기 AWS 기계 학습