Logo Zephyrnet

Triển khai các đề xuất được cá nhân hóa theo thời gian thực bằng cách sử dụng Amazon Personalize | Dịch vụ web của Amazon

Ngày:

Ở cấp độ cơ bản, công nghệ Machine Learning (ML) học từ dữ liệu để đưa ra dự đoán. Các doanh nghiệp sử dụng dữ liệu của họ với dịch vụ cá nhân hóa được hỗ trợ bởi ML để nâng cao trải nghiệm khách hàng của họ. Cách tiếp cận này cho phép các doanh nghiệp sử dụng dữ liệu để rút ra những hiểu biết sâu sắc có thể hành động và giúp tăng doanh thu cũng như lòng trung thành với thương hiệu của họ.

Cá nhân hóa Amazon tăng tốc quá trình chuyển đổi kỹ thuật số của bạn với ML, giúp tích hợp các đề xuất được cá nhân hóa vào các trang web, ứng dụng, hệ thống tiếp thị qua email hiện có, v.v. Amazon Personalize cho phép các nhà phát triển nhanh chóng triển khai công cụ cá nhân hóa tùy chỉnh mà không yêu cầu kiến ​​thức chuyên môn về ML. Amazon Personalize cung cấp cơ sở hạ tầng cần thiết và quản lý toàn bộ quy trình machine learning (ML), bao gồm xử lý dữ liệu, xác định tính năng, sử dụng thuật toán phù hợp nhất cũng như đào tạo, tối ưu hóa và lưu trữ mô hình. Bạn nhận được kết quả thông qua API và chỉ trả tiền cho những gì bạn sử dụng mà không có mức phí tối thiểu hoặc cam kết trả trước.

Các bài viết Kiến trúc các đề xuất được cá nhân hóa gần theo thời gian thực với Amazon Personalize trình bày cách xây dựng các đề xuất gần được cá nhân hóa theo thời gian thực bằng cách sử dụng Amazon Personalize và Dịch vụ dữ liệu chuyên dụng của AWS. Trong bài đăng này, chúng tôi sẽ hướng dẫn bạn cách triển khai tham khảo hệ thống đề xuất được cá nhân hóa theo thời gian thực bằng cách sử dụng Amazon Personalize.

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

Giải pháp đề xuất được cá nhân hóa theo thời gian thực được triển khai bằng cách sử dụng Cá nhân hóa Amazon, Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3), Luồng dữ liệu Amazon Kinesis, AWS LambdaCổng API Amazon.

Kiến trúc được triển khai như sau:

  1. Chuẩn bị dữ liệu – Bắt đầu bằng tạo một nhóm dữ liệu, lược đồ và bộ dữ liệu đại diện cho các mục, tương tác và dữ liệu người dùng của bạn.
  2. Đào tạo mô hình – Sau khi nhập dữ liệu, hãy chọn công thức phù hợp với trường hợp sử dụng của bạn, sau đó tạo ra một giải pháp để đào tạo một người mẫu bằng cách tạo ra một phiên bản giải pháp. Khi phiên bản giải pháp của bạn đã sẵn sàng, bạn có thể tạo chiến dịch cho phiên bản giải pháp của mình.
  3. Nhận đề xuất gần thời gian thực – Khi có chiến dịch, bạn có thể tích hợp các cuộc gọi đến chiến dịch trong ứng dụng của mình. Đây là nơi các cuộc gọi đến Nhận đề xuất or GetPersonalizedXếp hạng API được tạo ra để yêu cầu các đề xuất gần như theo thời gian thực từ Amazon Personalize.

Để biết thêm thông tin, tham khảo Kiến trúc các đề xuất được cá nhân hóa gần theo thời gian thực với Amazon Personalize.

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

Thực hiện

Chúng tôi chứng minh cách triển khai này bằng trường hợp sử dụng về việc đưa ra đề xuất phim theo thời gian thực cho người dùng cuối dựa trên tương tác của họ với cơ sở dữ liệu phim theo thời gian.

Giải pháp được thực hiện theo các bước sau:

  1. Điều kiện tiên quyết (Chuẩn bị dữ liệu)
  2. Thiết lập môi trường phát triển của bạn
  3. Triển khai giải pháp
  4. Tạo phiên bản giải pháp
  5. Tạo một chiến dịch
  6. Tạo trình theo dõi sự kiện
  7. Nhận đề xuất
  8. Nhập các tương tác thời gian thực
  9. Xác thực các đề xuất theo thời gian thực
  10. Dọn dẹp

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

Trước khi bắt đầu, hãy đảm bảo bạn có các điều kiện tiên quyết sau:

  • Chuẩn bị dữ liệu đào tạo của bạn – Chuẩn bị và tải dữ liệu lên vùng lưu trữ S3 bằng cách sử dụng hướng dẫn. Đối với trường hợp sử dụng cụ thể này, bạn sẽ tải lên dữ liệu tương tác và dữ liệu mặt hàng. Tương tác là một sự kiện mà bạn ghi lại rồi nhập dưới dạng dữ liệu huấn luyện. Amazon Personalize tạo đề xuất chủ yếu dựa trên dữ liệu tương tác mà bạn nhập vào tập dữ liệu Tương tác. Bạn có thể ghi lại nhiều loại sự kiện, chẳng hạn như nhấp chuột, xem hoặc thích. Mặc dù mô hình do Amazon Personalize tạo có thể đề xuất dựa trên các tương tác trước đây của người dùng nhưng chất lượng của những đề xuất này có thể được nâng cao khi mô hình sở hữu dữ liệu về mối liên kết giữa người dùng hoặc các mục . Nếu người dùng đã tương tác với các phim được phân loại là Phim chính kịch trong tập dữ liệu mục, Amazon Personalize sẽ đề xuất các phim (mục) có cùng thể loại.
  • Thiết lập môi trường phát triển của bạn đặt Giao diện dòng lệnh AWS (AWS CLI).
  • Định cấu hình CLI bằng tài khoản Amazon của bạnĐịnh cấu hình AWS CLI với thông tin tài khoản AWS của bạn.
  • Cài đặt và khởi động Bộ công cụ phát triển đám mây AWS (AWS CDK)

Triển khai giải pháp

Để triển khai giải pháp, hãy làm như sau:

  • Clone kho lưu trữ vào một thư mục mới trên máy tính để bàn của bạn.
  • Triển khai ngăn xếp vào môi trường AWS của bạn.

Tạo phiên bản giải pháp

Giải pháp đề cập đến sự kết hợp giữa công thức Amazon Personalize, thông số tùy chỉnh và một hoặc nhiều phiên bản giải pháp (mô hình được đào tạo). Khi bạn triển khai dự án CDK ở bước trước, một giải pháp với công thức Cá nhân hóa người dùng sẽ tự động được tạo cho bạn. Phiên bản giải pháp đề cập đến mô hình học máy được đào tạo. Tạo một phiên bản giải pháp để thực hiện.

Tạo một chiến dịch

Chiến dịch triển khai phiên bản giải pháp (mô hình đã đào tạo) với khả năng giao dịch được cung cấp để tạo đề xuất theo thời gian thực. Tạo một chiến dịch để thực hiện.

Tạo trình theo dõi sự kiện

Amazon Personalize có thể đưa ra đề xuất chỉ dựa trên dữ liệu sự kiện theo thời gian thực, chỉ dữ liệu sự kiện lịch sử hoặc cả hai. Ghi lại các sự kiện theo thời gian thực để xây dựng dữ liệu tương tác của bạn và cho phép Amazon Personalize tìm hiểu từ hoạt động gần đây nhất của người dùng. Điều này giúp dữ liệu của bạn luôn mới và cải thiện mức độ liên quan của các đề xuất của Amazon Personalize. Trước khi có thể ghi lại các sự kiện, bạn phải tạo trình theo dõi sự kiện. Trình theo dõi sự kiện sẽ chuyển dữ liệu sự kiện mới tới tập dữ liệu Tương tác trong nhóm tập dữ liệu của bạn. Tạo và trình theo dõi sự kiện để thực hiện.

Nhận đề xuất

Trong trường hợp sử dụng này, tập dữ liệu tương tác bao gồm ID phim. Do đó, các đề xuất được trình bày cho người dùng sẽ bao gồm ID phim phù hợp nhất với sở thích cá nhân của họ, được xác định từ các tương tác lịch sử của họ. Bạn có thể dùng getRecommendations API để truy xuất các đề xuất được cá nhân hóa cho người dùng bằng cách gửi các đề xuất được liên kết của nó userID, số lượng kết quả cho các đề xuất mà bạn cần cho người dùng cũng như ARN của chiến dịch. Bạn có thể tìm thấy chiến dịch ARN trong menu bảng điều khiển Amazon Personalize.

Ví dụ: yêu cầu sau sẽ truy xuất 5 đề xuất cho người dùng có userId là 429:

curl --location 'https://{your-api-id}.execute-api.{your-region}.amazonaws.com/prod/getRecommendations?campaignArn={campaignArn}&userId=429&numResults=5'

Phản hồi từ yêu cầu sẽ là:

{ "$metadata": { "httpStatusCode": 200, "requestId": "7159c128-4e16-45a4-9d7e-cf19aa2256e8", "attempts": 1, "totalRetryDelay": 0 }, "itemList": [ { "itemId": "596", "score": 0.0243044 }, { "itemId": "153", "score": 0.0151695 }, { "itemId": "16", "score": 0.013694 }, { "itemId": "261", "score": 0.013524 }, { "itemId": "34", "score": 0.0122294 } ], "recommendationId": "RID-1d-40c1-8d20-dfffbd7b0ac7-CID-06b10f"
}

Các mục được lệnh gọi API trả về là những bộ phim mà Amazon Personalize đề xuất cho người dùng dựa trên các hoạt động tương tác trước đây của họ.

Các giá trị điểm được cung cấp trong ngữ cảnh này biểu thị các số có dấu phẩy động nằm trong khoảng từ 1.0 đến XNUMX. Các giá trị này tương ứng với chiến dịch hiện tại và các công thức liên quan cho trường hợp sử dụng này. Chúng được xác định dựa trên điểm chung được gán cho tất cả các mục có trong tập dữ liệu toàn diện của bạn.

Nhập các tương tác thời gian thực

Trong ví dụ trước, chúng tôi nhận được đề xuất cho người dùng có ID là 429 dựa trên lịch sử tương tác của họ với cơ sở dữ liệu phim. Đối với các đề xuất theo thời gian thực, tương tác của người dùng với các mặt hàng phải được nhập vào Amazon Personalize trong thời gian thực. Những tương tác này được đưa vào hệ thống đề xuất thông qua Amazon Personalize Trình theo dõi sự kiện. Loại tương tác, còn được gọi là EventType, được đưa ra bởi cột cùng tên trong tập dữ liệu dữ liệu tương tác (EVENT_TYPE). Trong ví dụ này, các sự kiện có thể thuộc loại “xem” hoặc “nhấp chuột”, nhưng bạn có thể có các loại sự kiện của riêng mình tùy theo nhu cầu của ứng dụng.

Trong ví dụ này, API hiển thị tạo ra các sự kiện của người dùng với các mục sẽ nhận được tham số “tương tác” tương ứng với số lượng sự kiện (interactions) của người dùng (UserId) với một phần tử duy nhất (itemId) ngay lập tức. Các trackingId có thể tìm thấy tham số trong bảng điều khiển Amazon Personalize và trong phản hồi của việc tạo yêu cầu Trình theo dõi sự kiện.

Ví dụ này cho thấy một putEvent yêu cầu: Tạo 1 tương tác thuộc loại nhấp chuột, với id mục là '185' cho id người dùng '429', sử dụng dấu thời gian hiện tại. Lưu ý rằng trong quá trình sản xuất, 'sentAt' phải được đặt theo thời gian tương tác của người dùng. Trong ví dụ sau, chúng tôi đặt giá trị này thành thời điểm ở định dạng thời gian kỷ nguyên khi chúng tôi viết yêu cầu API cho bài đăng này. Các sự kiện được gửi đến Amazon Kinesis Data Streams thông qua Cổng API, đó là lý do tại sao bạn cần gửi tham số tên luồng và Khóa phân vùng.

curl --location 'https://iyxhva3ll6.execute-api.us-west-2.amazonaws.com/prod/data' --header 'Content-Type: application/json' --data '{ "stream-name": "my-stream","Data": {"userId" : "429", "interactions": 1, "itemId": "185", "trackingId" : "c90ac6d7-3d89-4abc-8a70-9b09c295cbcd", "eventType": "click", "sentAt":"1698711110"},"PartitionKey":"userId"}'

Bạn sẽ nhận được phản hồi xác nhận tương tự như sau:

{ "Message": "Event sent successfully", "data": { "EncryptionType": "KMS", "SequenceNumber": "49..........1901314", "ShardId": "shardId-xxxxxxx" }
}

Xác thực các đề xuất theo thời gian thực

Vì tập dữ liệu tương tác đã được cập nhật nên các đề xuất sẽ được cập nhật tự động để xem xét các tương tác mới. Để xác thực các đề xuất được cập nhật theo thời gian thực, bạn có thể gọi lại API get recommendations cho cùng một id người dùng 429 và kết quả sẽ khác với kết quả trước đó. Các kết quả sau đây cho thấy đề xuất mới có id là 594 và các đề xuất có id là 16, 596, 153 và 261 đã thay đổi điểm số của chúng. Những hạng mục này đưa thể loại phim mới ('Hoạt hình|Trẻ em|Kịch|Kỳ ảo|Nhạc kịch') vào top 5 đề xuất.

Yêu cầu:

curl --location 'https://{your-api-id}.execute-api.{your-region}.amazonaws.com/prod/getRecommendations?campaignArn={campaignArn} &userId=429&numResults=5'

Đáp ứng:

{ "$metadata": { "httpStatusCode": 200, "requestId": "680f2be8-2e64-47d7-96f7-1c4aa9b9ac9d", "attempts": 1, "totalRetryDelay": 0 }, "itemList": [ { "itemId": "596", "score": 0.0288085 }, { "itemId": "16", "score": 0.0134173 }, { "itemId": "594", "score": 0.0129357 }, { "itemId": "153", "score": 0.0129337 }, { "itemId": "261", "score": 0.0123728 } ], "recommendationId": "RID-dc-44f8-a327-482fb9e54921-CID-06b10f"
}

Phản hồi cho thấy đề xuất do Amazon Personalize cung cấp đã được cập nhật theo thời gian thực.

Làm sạch

Để tránh những khoản phí không cần thiết, hãy dọn dẹp quá trình triển khai giải pháp bằng cách sử dụng Làm sạch tài nguyên.

Kết luận

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách triển khai hệ thống đề xuất được cá nhân hóa theo thời gian thực bằng Amazon Personalize. Các tương tác với Amazon Personalize để thu thập các tương tác trong thời gian thực và nhận đề xuất được thực thi thông qua công cụ dòng lệnh có tên là Curl nhưng các lệnh gọi API này có thể được tích hợp vào ứng dụng kinh doanh và thu được kết quả tương tự.

Để chọn một công thức mới cho trường hợp sử dụng của bạn, hãy tham khảo Cá nhân hóa thời gian thực. Để đo lường tác động của các đề xuất do Amazon Personalize đưa ra, hãy tham khảo Đo lường tác động của các khuyến nghị.


Về các tác giả

Cristian Marquez là Kiến trúc sư ứng dụng đám mây cấp cao. Ông có nhiều kinh nghiệm thiết kế, xây dựng và cung cấp phần mềm cấp doanh nghiệp, hệ thống phân tán và tải trọng cao cũng như các ứng dụng gốc trên nền tảng đám mây. Anh ấy có kinh nghiệm về các ngôn ngữ lập trình phụ trợ và giao diện người dùng, cũng như thiết kế hệ thống và triển khai các phương pháp thực hành DevOps. Ông tích cực hỗ trợ khách hàng xây dựng và bảo mật các giải pháp đám mây sáng tạo, giải quyết các vấn đề kinh doanh và đạt được mục tiêu kinh doanh của họ.

Anand Komandooru là Kiến trúc sư đám mây cấp cao tại AWS. Anh gia nhập tổ chức Dịch vụ chuyên nghiệp AWS vào năm 2021 và giúp khách hàng xây dựng các ứng dụng gốc đám mây trên đám mây AWS. Ông có hơn 20 năm kinh nghiệm xây dựng phần mềm và nguyên tắc lãnh đạo Amazon yêu thích của ông là “Các nhà lãnh đạo nói rất đúng."

tại chỗ_img

Tin tức mới nhất

tại chỗ_img