Tạo quy trình đề xuất hàng loạt bằng cách sử dụng Amazon Personalize không cần mã PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Tạo đường dẫn đề xuất hàng loạt bằng Amazon Personalize mà không cần mã

Với nội dung được cá nhân hóa có nhiều khả năng thu hút sự tham gia của khách hàng hơn, các doanh nghiệp liên tục tìm cách cung cấp nội dung phù hợp dựa trên hồ sơ và hành vi của khách hàng của họ. Các hệ thống khuyến nghị nói riêng tìm cách dự đoán sở thích mà người dùng cuối dành cho một mặt hàng. Một số trường hợp sử dụng phổ biến bao gồm đề xuất sản phẩm trên các cửa hàng bán lẻ trực tuyến, cá nhân hóa bản tin, tạo đề xuất danh sách phát nhạc hoặc thậm chí khám phá nội dung tương tự trên các dịch vụ truyền thông trực tuyến.

Tuy nhiên, có thể là một thách thức để tạo ra một hệ thống khuyến nghị hiệu quả do sự phức tạp trong đào tạo mô hình, lựa chọn thuật toán và quản lý nền tảng. Cá nhân hóa Amazon cho phép các nhà phát triển cải thiện mức độ tương tác của khách hàng thông qua các đề xuất nội dung và sản phẩm được cá nhân hóa mà không yêu cầu kiến ​​thức chuyên môn về máy học (ML). Các nhà phát triển có thể bắt đầu thu hút khách hàng ngay lập tức bằng cách sử dụng dữ liệu hành vi của người dùng đã thu thập được. Đằng sau hậu trường, Amazon Personalize kiểm tra dữ liệu này, xác định những gì có ý nghĩa, chọn các thuật toán phù hợp, đào tạo và tối ưu hóa mô hình cá nhân hóa được tùy chỉnh cho dữ liệu của bạn và cung cấp các đề xuất thông qua điểm cuối API.

Mặc dù việc cung cấp các đề xuất trong thời gian thực có thể giúp tăng cường sự tương tác và sự hài lòng, nhưng đôi khi điều này có thể không thực sự bắt buộc và việc thực hiện hàng loạt trên cơ sở đã lên lịch có thể đơn giản là một lựa chọn hiệu quả hơn về chi phí và dễ quản lý.

Bài đăng này hướng dẫn bạn cách sử dụng các dịch vụ AWS để không chỉ tạo đề xuất mà còn vận hành đường dẫn đề xuất hàng loạt. Chúng tôi xem xét giải pháp end-to-end mà không cần một dòng mã nào. Chúng tôi thảo luận chi tiết về hai chủ đề:

Tổng quan về giải pháp

Trong giải pháp này, chúng tôi sử dụng PhimLens tập dữ liệu. Bộ dữ liệu này bao gồm 86,000 xếp hạng phim từ 2,113 người dùng. Chúng tôi cố gắng sử dụng dữ liệu này để đưa ra các đề xuất cho từng người dùng này.

Chuẩn bị dữ liệu là rất quan trọng để đảm bảo chúng tôi nhận được dữ liệu hành vi của khách hàng ở định dạng sẵn sàng cho Amazon Personalize. Kiến trúc được mô tả trong bài đăng này sử dụng AWS Glue, một dịch vụ tích hợp dữ liệu không máy chủ, để thực hiện việc chuyển đổi dữ liệu thô thành định dạng sẵn sàng cho Amazon Personalize sử dụng. Giải pháp sử dụng Amazon Personalize để tạo các đề xuất hàng loạt cho tất cả người dùng bằng cách sử dụng suy luận hàng loạt. Sau đó, chúng tôi sử dụng quy trình Chức năng từng bước để quy trình làm việc tự động có thể được chạy bằng cách gọi các API Cá nhân hóa của Amazon theo cách có thể lặp lại.

Sơ đồ sau đây minh họa giải pháp này.Sơ đồ kiến ​​trúc

Chúng tôi sẽ xây dựng giải pháp này với các bước sau:

  1. Xây dựng công việc chuyển đổi dữ liệu để chuyển đổi dữ liệu thô của chúng tôi bằng AWS Glue.
  2. Xây dựng giải pháp Cá nhân hóa Amazon với tập dữ liệu đã chuyển đổi.
  3. Xây dựng dòng công việc Chức năng Bước để sắp xếp việc tạo ra các suy luận hàng loạt.

Điều kiện tiên quyết

Bạn cần những thứ sau cho hướng dẫn này:

Xây dựng công việc chuyển đổi dữ liệu để chuyển đổi dữ liệu thô với AWS Glue

Với Amazon Personalize, dữ liệu đầu vào cần phải có một lược đồ và định dạng tệp cụ thể. Dữ liệu từ các tương tác giữa người dùng và các mục phải ở định dạng CSV với các cột cụ thể, trong khi danh sách người dùng mà bạn muốn tạo đề xuất phải ở định dạng JSON. Trong phần này, chúng tôi sử dụng AWS Glue Studio để chuyển đổi dữ liệu đầu vào thô thành cấu trúc và định dạng cần thiết cho Amazon Personalize.

AWS Glue Studio cung cấp giao diện đồ họa được thiết kế để dễ dàng tạo và chạy các công việc trích xuất, chuyển đổi và tải (ETL). Bạn có thể tạo khối lượng công việc chuyển đổi dữ liệu một cách trực quan thông qua các thao tác kéo và thả đơn giản.

Trước tiên, chúng tôi chuẩn bị dữ liệu nguồn của mình trong Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3), sau đó chúng tôi chuyển đổi dữ liệu mà không cần mã.

  1. Trên bảng điều khiển Amazon S3, hãy tạo một nhóm S3 với ba thư mục: thô, đã chuyển đổi và được sắp xếp.
  2. Tải về Tập dữ liệu MovieLens và tải tệp không nén có tên user_ratingmovies-timestamp.dat lên nhóm của bạn trong thư mục thô.
  3. Trên bảng điều khiển AWS Glue Studio, hãy chọn việc làm trong khung điều hướng.
  4. Chọn Trực quan với nguồn và đích, sau đó chọn Tạo.
  5. Chọn nút đầu tiên được gọi là Nguồn dữ liệu - nhóm S3. Đây là nơi chúng tôi chỉ định dữ liệu đầu vào của mình.
  6. trên Thuộc tính nguồn dữ liệu tab, chọn Vị trí S3 và duyệt đến tệp đã tải lên của bạn.
  7. Trong Định dạng dữ liệu, chọn CSV, Và cho Dấu phân cách, chọn Tab.
    Xưởng keo AWS - S3
  8. Chúng ta có thể chọn tab Lược đồ đầu ra để xác minh rằng lược đồ đã suy ra các cột một cách chính xác.
  9. Nếu giản đồ không phù hợp với mong đợi của bạn, hãy chọn Chỉnh sửa để chỉnh sửa lược đồ.
    AWS Glue Studio - Các lĩnh vực

Tiếp theo, chúng tôi biến đổi dữ liệu này để tuân theo các yêu cầu về giản đồ đối với Amazon Personalize.

  1. Chọn Chuyển đổi - Áp dụng ánh xạ và trên Chuyển đổi , cập nhật khóa đích và các kiểu dữ liệu.
    Amazon Personalize, ít nhất, mong đợi cấu trúc sau cho tập dữ liệu tương tác:
    • user_id (chuỗi)
    • item_id (chuỗi)
    • timestamp (dài, ở định dạng thời gian kỷ nguyên Unix)
      AWS Glue Studio - Lập bản đồ hiện trường

Trong ví dụ này, chúng tôi loại trừ các phim được xếp hạng kém trong tập dữ liệu.

  1. Để làm như vậy, hãy xóa nút cuối cùng được gọi là nhóm S3 và thêm một nút bộ lọc trên Chuyển đổi tab.
  2. Chọn Thêm điều kiện và lọc ra dữ liệu có xếp hạng <3.5.
    AWS Glue Studio - Đầu ra

Bây giờ chúng tôi ghi đầu ra trở lại Amazon S3.

  1. Mở rộng Mục tiêu menu và chọn Amazon S3.
  2. Trong Vị trí mục tiêu S3, chọn thư mục có tên transformed.
  3. Chọn CSV như định dạng và hậu tố Điểm đích với interactions/.

Tiếp theo, chúng tôi xuất danh sách người dùng mà chúng tôi muốn nhận đề xuất.

  1. Chọn Áp dụng ánh xạ một lần nữa, và sau đó mở rộng Chuyển đổi menu và chọn Áp dụng ánh xạ.
  2. Bỏ tất cả các trường ngoại trừ user_id và đổi tên trường đó thành userId. Amazon Personalize hy vọng trường đó sẽ được đặt tên tên người dùng.
  3. Mở rộng Mục tiêu menu một lần nữa và chọn Amazon S3.
  4. Lần này, hãy chọn JSON làm định dạng, và sau đó chọn thư mục S3 đã chuyển đổi và gắn nó với batch_users_input/.

Điều này tạo ra một JSON danh sách người dùng làm đầu vào cho Amazon Personalize. Bây giờ chúng ta sẽ có một sơ đồ giống như sau.

AWS Glue Studio - Toàn bộ quy trình làm việc

Bây giờ chúng tôi đã sẵn sàng để thực hiện công việc chuyển đổi của mình.

  1. Trên bảng điều khiển IAM, tạo một vai trò gọi là keo-dịch vụ-vai trò và đính kèm các chính sách được quản lý sau:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Để biết thêm thông tin về cách tạo vai trò dịch vụ IAM, hãy tham khảo Tạo vai trò để ủy quyền cho dịch vụ AWS.

  1. Điều hướng trở lại công việc AWS Glue Studio của bạn và chọn Chi tiết công việc tab.
  2. Đặt tên công việc là batch-personalize-input-transform-job.
  3. Chọn vai trò IAM mới được tạo.
  4. Giữ các giá trị mặc định cho mọi thứ khác.
    AWS Glue Studio - Chi tiết công việc
  5. Chọn Lưu.
  6. Khi bạn đã sẵn sàng, hãy chọn chạy và giám sát công việc trong Chạy tab.
  7. Khi công việc hoàn tất, hãy điều hướng đến bảng điều khiển Amazon S3 để xác thực rằng tệp đầu ra của bạn đã được tạo thành công.

Hiện chúng tôi đã định hình dữ liệu của mình theo định dạng và cấu trúc mà Amazon Personalize yêu cầu. Tập dữ liệu đã chuyển đổi phải có các trường và định dạng sau:

  • Tập dữ liệu tương tác - Định dạng CSV với các trường USER_ID, ITEM_ID, TIMESTAMP
  • Tập dữ liệu đầu vào của người dùng - Định dạng JSON với phần tử userId

Xây dựng giải pháp Cá nhân hóa Amazon với tập dữ liệu đã chuyển đổi

Với tập dữ liệu tương tác của chúng tôi và dữ liệu đầu vào của người dùng ở định dạng phù hợp, giờ đây chúng tôi có thể tạo giải pháp Cá nhân hóa Amazon của mình. Trong phần này, chúng tôi tạo nhóm tập dữ liệu, nhập dữ liệu của chúng tôi và sau đó tạo công việc suy luận hàng loạt. Một nhóm tập dữ liệu sắp xếp tài nguyên thành các vùng chứa cho các thành phần Cá nhân hóa của Amazon.

  1. Trên bảng điều khiển Amazon Personalize, hãy chọn Tạo nhóm tập dữ liệu.
  2. Trong miền, lựa chọn Tuỳ chỉnh.
  3. Chọn Tạo nhóm tập dữ liệu và tiếp tục.
    Amazon Personalize - tạo nhóm tập dữ liệu

Tiếp theo, tạo tập dữ liệu tương tác.

  1. Nhập tên tập dữ liệu và chọn Tạo lược đồ mới.
  2. Chọn Tạo tập dữ liệu và tiếp tục.
    Amazon Personalize - tạo tập dữ liệu tương tác

Bây giờ chúng tôi nhập dữ liệu tương tác mà chúng tôi đã tạo trước đó.

  1. Điều hướng đến nhóm S3 mà chúng tôi đã tạo tập dữ liệu CSV tương tác của mình.
  2. trên Quyền , hãy thêm chính sách truy cập nhóm sau để Amazon Personalize có quyền truy cập. Cập nhật chính sách để bao gồm tên nhóm của bạn.
    {
       "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> /*"
             ]
          }
       ]
    }

Điều hướng trở lại Amazon Personalize và chọn Tạo công việc nhập tập dữ liệu của bạn. Bộ dữ liệu tương tác của chúng tôi hiện sẽ được nhập vào Amazon Personalize. Chờ công việc nhập hoàn tất với trạng thái Hoạt động trước khi tiếp tục bước tiếp theo. Quá trình này sẽ mất khoảng 8 phút.

  1. Trên bảng điều khiển Amazon Personalize, hãy chọn Giới thiệu chung trong ngăn điều hướng và chọn Tạo giải pháp.
    Cá nhân hóa Amazon - Trang tổng quan
  2. Nhập tên giải pháp.
  3. Trong Loại giải pháp, chọn Đề xuất mặt hàng.
  4. Trong Recipe, chọn aws-user-personalization công thức.
  5. Chọn Tạo và đào tạo giải pháp.
    Amazon Personalize - tạo ra giải pháp

Giải pháp hiện đào tạo dựa trên tập dữ liệu tương tác đã được nhập với công thức cá nhân hóa người dùng. Theo dõi trạng thái của quá trình này trong Các phiên bản giải pháp. Chờ nó hoàn thành trước khi tiếp tục. Quá trình này sẽ mất khoảng 20 phút.
Cá nhân hóa Amazon - Trạng thái

Bây giờ chúng tôi tạo công việc suy luận hàng loạt của mình, công việc này tạo ra các đề xuất cho từng người dùng có mặt trong đầu vào JSON.

  1. Trong ngăn dẫn hướng, dưới Tài nguyên tùy chỉnh, chọn Công việc suy luận hàng loạt.
  2. Nhập tên công việc và Dung dịch, chọn giải pháp đã tạo trước đó.
  3. Chọn Tạo công việc suy luận hàng loạt.
    Amazon Personalize - tạo công việc suy luận hàng loạt
  4. Trong Cấu hình dữ liệu đầu vào, nhập đường dẫn S3 nơi batch_users_input tập tin được đặt.

Đây là tệp JSON chứa userId.

  1. Trong Cấu hình dữ liệu đầu ra con đường, chọn đường dẫn được sắp xếp trong S3.
  2. Chọn Tạo công việc suy luận hàng loạt.

Quá trình này mất khoảng 30 phút. Khi công việc kết thúc, các đề xuất cho từng người dùng được chỉ định trong tệp đầu vào của người dùng được lưu ở vị trí đầu ra S3.

Chúng tôi đã tạo thành công một tập hợp các đề xuất cho tất cả người dùng của chúng tôi. Tuy nhiên, chúng tôi mới chỉ triển khai giải pháp sử dụng bảng điều khiển cho đến nay. Để đảm bảo rằng hội nghị hàng loạt này chạy thường xuyên với tập dữ liệu mới nhất, chúng tôi cần xây dựng quy trình làm việc điều phối. Trong phần tiếp theo, chúng tôi sẽ hướng dẫn bạn cách tạo dòng công việc điều phối bằng cách sử dụng Hàm bước.

Xây dựng quy trình làm việc Chức năng bước để sắp xếp quy trình làm việc suy luận hàng loạt

Để sắp xếp đường dẫn của bạn, hãy hoàn thành các bước sau:

  1. Trên bảng điều khiển Chức năng Bước, chọn Tạo máy trạng thái.
  2. Chọn Thiết kế quy trình làm việc của bạn một cách trực quan, sau đó chọn Sau.
    Chức năng từng bước AWS - Tạo quy trình làm việc
  3. Kéo CreateDatasetImportJob từ bên trái (bạn có thể tìm kiếm nút này trong hộp tìm kiếm) trên canvas.
  4. Chọn nút và bạn sẽ thấy các thông số API cấu hình ở bên phải. Ghi lại ARN.
  5. Nhập các giá trị của riêng bạn vào Tham số API hộp văn bản.

Điều này gọi là TạoDatasetImportJob API với các giá trị tham số mà bạn chỉ định.

Các chức năng từng bước AWS Quy trình làm việc

  1. Kéo CreateSolutionVersion trên canvas.
  2. Cập nhật các thông số API bằng ARN của giải pháp mà bạn đã ghi chú.

Điều này tạo ra một phiên bản giải pháp mới với dữ liệu mới được nhập bằng cách gọi Phiên bản CreateSolution API.

  1. Kéo CreateBatchInferenceJob trên canvas và cập nhật tương tự các thông số API với các giá trị có liên quan.

Đảm bảo rằng bạn sử dụng $.SolutionVersionArn cú pháp để truy xuất tham số ARN phiên bản giải pháp từ bước trước. Các tham số API này được chuyển đến TạoBatchInferenceJob API.

Các chức năng từng bước AWS Quy trình làm việc

Chúng ta cần xây dựng logic chờ trong quy trình làm việc của Hàm bước để đảm bảo công việc suy luận theo lô đề xuất kết thúc trước khi quy trình làm việc hoàn tất.

  1. Tìm và kéo nút Chờ.
  2. Trong cấu hình cho Đợi, nhập 300 giây.

Đây là một giá trị tùy ý; bạn nên thay đổi thời gian chờ này tùy theo trường hợp sử dụng cụ thể của bạn.

  1. Chọn CreateBatchInferenceJob một lần nữa và điều hướng đến Xử lý lỗi tab.
  2. Trong Catch lỗi, đi vào Personalize.ResourceInUseException.
  3. Trong Trạng thái dự phòng, chọn Đợi.

Bước này cho phép chúng tôi kiểm tra định kỳ trạng thái của công việc và nó chỉ thoát khỏi vòng lặp khi công việc hoàn tất.

  1. Trong đường dẫn kết quả, đi vào $.errorMessage.

Điều này hiệu quả có nghĩa là khi nhận được ngoại lệ “tài nguyên đang sử dụng”, công việc sẽ đợi x giây trước khi thử lại với các đầu vào tương tự.

Các chức năng từng bước AWS Quy trình làm việc

  1. Chọn Lưu, và sau đó chọn Bắt đầu thực hiện.

Chúng tôi đã sắp xếp thành công quy trình đề xuất hàng loạt của mình cho Amazon Personalize. Là một bước tùy chọn, bạn có thể sử dụng Sự kiện Amazon để lên lịch kích hoạt quy trình công việc này một cách thường xuyên. Để biết thêm chi tiết, hãy tham khảo EventBridge (Sự kiện CloudWatch) để thay đổi trạng thái thực thi Chức năng Bước.

Làm sạch

Để tránh phát sinh các khoản phí trong tương lai, hãy xóa các tài nguyên bạn đã tạo cho hướng dẫn này.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách tạo đường dẫn đề xuất hàng loạt bằng cách sử dụng kết hợp AWS Glue, Amazon Personalize và Step Functions mà không cần một dòng mã hoặc trải nghiệm ML. Chúng tôi đã sử dụng AWS Glue để chuẩn bị dữ liệu của mình thành định dạng mà Amazon Personalize yêu cầu. Sau đó, chúng tôi sử dụng Amazon Personalize để nhập dữ liệu, tạo giải pháp với công thức cá nhân hóa người dùng và tạo công việc hội nghị hàng loạt tạo ra 25 đề xuất mặc định cho mỗi người dùng, dựa trên các tương tác trước đây. Sau đó, chúng tôi sắp xếp các bước này bằng cách sử dụng Step Functions để chúng tôi có thể chạy các công việc này một cách tự động.

Đối với các bước cần xem xét tiếp theo, phân đoạn người dùng là một trong những công thức mới hơn trong Amazon Personalize mà bạn có thể muốn khám phá để tạo phân đoạn người dùng cho mỗi hàng của dữ liệu đầu vào. Để biết thêm chi tiết, hãy tham khảo Nhận đề xuất hàng loạt và phân đoạn người dùng.


Giới thiệu về tác giả

Maxine cuối tuần

Maxine cuối tuần là một Kiến trúc sư Giải pháp Phòng thí nghiệm Dữ liệu AWS. Maxine làm việc với khách hàng về các trường hợp sử dụng của họ, thiết kế các giải pháp để giải quyết các vấn đề kinh doanh của họ và hướng dẫn họ xây dựng các nguyên mẫu có thể mở rộng. Trước hành trình của mình với AWS, Maxine đã giúp khách hàng thực hiện các dự án BI, kho dữ liệu và hồ dữ liệu ở Úc.

Dấu thời gian:

Thêm từ Học máy AWS