Νοημοσύνη δεδομένων Πλάτωνα.
Κάθετη Αναζήτηση & Αι.

Εφαρμόστε εξατομικευμένες προτάσεις σε πραγματικό χρόνο χρησιμοποιώντας το Amazon Personalize | Υπηρεσίες Ιστού της Amazon

Ημερομηνία:

Σε βασικό επίπεδο, η τεχνολογία Machine Learning (ML) μαθαίνει από δεδομένα για να κάνει προβλέψεις. Οι επιχειρήσεις χρησιμοποιούν τα δεδομένα τους με μια υπηρεσία εξατομίκευσης που υποστηρίζεται από ML για να βελτιώσουν την εμπειρία των πελατών τους. Αυτή η προσέγγιση επιτρέπει στις επιχειρήσεις να χρησιμοποιούν δεδομένα για να αντλήσουν χρήσιμες πληροφορίες και να βοηθήσουν στην αύξηση των εσόδων και της αφοσίωσης στην επωνυμία τους.

Προσαρμογή του Amazon επιταχύνει τον ψηφιακό σας μετασχηματισμό με το ML, διευκολύνοντας την ενσωμάτωση εξατομικευμένων προτάσεων σε υπάρχοντες ιστότοπους, εφαρμογές, συστήματα μάρκετινγκ ηλεκτρονικού ταχυδρομείου και πολλά άλλα. Το Amazon Personalize επιτρέπει στους προγραμματιστές να εφαρμόσουν γρήγορα μια εξατομικευμένη μηχανή εξατομίκευσης, χωρίς να απαιτείται τεχνογνωσία ML. Το Amazon Personalize παρέχει την απαραίτητη υποδομή και διαχειρίζεται ολόκληρο τον αγωγό μηχανικής εκμάθησης (ML), συμπεριλαμβανομένης της επεξεργασίας των δεδομένων, της αναγνώρισης χαρακτηριστικών, της χρήσης των καταλληλότερων αλγορίθμων και της εκπαίδευσης, της βελτιστοποίησης και της φιλοξενίας των μοντέλων. Λαμβάνετε αποτελέσματα μέσω ενός API και πληρώνετε μόνο για ό,τι χρησιμοποιείτε, χωρίς ελάχιστες χρεώσεις ή προκαταβολικές δεσμεύσεις.

Ο ορθοστάτης Αρχιτεκτονική εξατομικευμένων συστάσεων σχεδόν σε πραγματικό χρόνο με το Amazon Personalize δείχνει πώς να σχεδιάζετε εξατομικευμένες προτάσεις σχεδόν σε πραγματικό χρόνο χρησιμοποιώντας το Amazon Personalize και Υπηρεσίες δεδομένων που έχουν δημιουργηθεί ειδικά για το AWS. Σε αυτήν την ανάρτηση, σας καθοδηγούμε σε μια εφαρμογή αναφοράς ενός εξατομικευμένου συστήματος συστάσεων σε πραγματικό χρόνο χρησιμοποιώντας το Amazon Personalize.

Επισκόπηση λύσεων

Η λύση εξατομικευμένων συστάσεων σε πραγματικό χρόνο υλοποιείται χρησιμοποιώντας Προσαρμογή του Amazon, Υπηρεσία απλής αποθήκευσης Amazon (Amazon S3), Ροές δεδομένων Amazon Kinesis, AWS Lambda, να Amazon API Gateway.

Η αρχιτεκτονική υλοποιείται ως εξής:

  1. Προετοιμασία δεδομένων – Ξεκινήστε από δημιουργία μιας ομάδας δεδομένων, σχήματα και σύνολα δεδομένων που αντιπροσωπεύει τα στοιχεία, τις αλληλεπιδράσεις και τα δεδομένα χρήστη σας.
  2. Εκπαιδεύστε το μοντέλο – Αφού εισαγάγετε τα δεδομένα σας, επιλέξτε τη συνταγή που ταιριάζει με την περίπτωση χρήσης σας και στη συνέχεια δημιουργήστε μια λύση να εκπαιδεύσει ένα μοντέλο από δημιουργία μιας έκδοσης λύσης. Όταν η έκδοση λύσης είναι έτοιμη, μπορείτε να δημιουργήσετε μια καμπάνια για την έκδοση λύσης.
  3. Λάβετε σχεδόν προτάσεις σε πραγματικό χρόνο – Όταν έχετε μια καμπάνια, μπορείτε να ενσωματώσετε κλήσεις στην καμπάνια στην εφαρμογή σας. Αυτό είναι όπου οι κλήσεις προς το Λάβετε συστάσεις or GetPersonalizedRanking Τα API δημιουργούνται για να ζητούν προτάσεις σχεδόν σε πραγματικό χρόνο από το Amazon Personalize.

Για περισσότερες πληροφορίες, ανατρέξτε στο Αρχιτεκτονική εξατομικευμένων συστάσεων σχεδόν σε πραγματικό χρόνο με το Amazon Personalize.

Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσεων.

Εκτέλεση

Επιδεικνύουμε αυτήν την υλοποίηση με μια περίπτωση χρήσης σχετικά με τη δημιουργία προτάσεων ταινιών σε πραγματικό χρόνο σε έναν τελικό χρήστη με βάση τις αλληλεπιδράσεις τους με τη βάση δεδομένων ταινιών με την πάροδο του χρόνου.

Η λύση υλοποιείται χρησιμοποιώντας τα ακόλουθα βήματα:

  1. Προϋπόθεση (Προετοιμασία δεδομένων)
  2. Ρυθμίστε το περιβάλλον ανάπτυξης σας
  3. Αναπτύξτε τη λύση
  4. Δημιουργήστε μια έκδοση λύσης
  5. Δημιουργήστε μια καμπάνια
  6. Δημιουργήστε ένα πρόγραμμα παρακολούθησης συμβάντων
  7. Λάβετε συστάσεις
  8. Απορρόφηση αλληλεπιδράσεων σε πραγματικό χρόνο
  9. Επικυρώστε προτάσεις σε πραγματικό χρόνο
  10. Εκκαθάριση

Προϋποθέσεις

Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε τις ακόλουθες προϋποθέσεις:

  • Προετοιμάστε τα δεδομένα της προπόνησής σας – Προετοιμάστε και μεταφορτώστε τα δεδομένα σε έναν κάδο S3 χρησιμοποιώντας το οδηγίες. Για τη συγκεκριμένη περίπτωση χρήσης, θα ανεβάζετε δεδομένα αλληλεπιδράσεων και δεδομένα στοιχείων. Μια αλληλεπίδραση είναι ένα συμβάν που καταγράφετε και στη συνέχεια εισάγετε ως δεδομένα εκπαίδευσης. Το Amazon Personalize δημιουργεί προτάσεις που βασίζονται κυρίως στα δεδομένα αλληλεπιδράσεων που εισάγετε σε ένα σύνολο δεδομένων αλληλεπιδράσεων. Μπορείτε να καταγράψετε πολλούς τύπους συμβάντων, όπως κλικ, παρακολούθηση ή μου αρέσει. Αν και το μοντέλο που δημιουργήθηκε από το Amazon Personalize μπορεί να προτείνει με βάση τις προηγούμενες αλληλεπιδράσεις ενός χρήστη, η ποιότητα αυτών των προτάσεων μπορεί να βελτιωθεί όταν το μοντέλο διαθέτει δεδομένα σχετικά με τις συσχετίσεις μεταξύ των χρηστών ή των στοιχείων . Εάν ένας χρήστης έχει ασχοληθεί με ταινίες που έχουν κατηγοριοποιηθεί ως Δράμα στο σύνολο δεδομένων στοιχείων, το Amazon Personalize θα προτείνει ταινίες (στοιχεία) με το ίδιο είδος.
  • Ρυθμίστε το περιβάλλον ανάπτυξης σας - εγκαταστήστε τη διεπαφή γραμμής εντολών AWS (AWS CLI).
  • Διαμορφώστε το CLI με τον λογαριασμό σας στο Amazon - Διαμορφώστε το AWS CLI με τα στοιχεία του λογαριασμού σας AWS.
  • Εγκαταστήστε και εκκινήστε το AWS Cloud Development Kit (AWS CDK)

Αναπτύξτε τη λύση

Για να αναπτύξετε τη λύση, κάντε τα εξής:

  • Κλώνος το αποθετήριο σε έναν νέο φάκελο στην επιφάνεια εργασίας σας.
  • Ανάπτυξη τη στοίβα στο περιβάλλον AWS σας.

Δημιουργήστε μια έκδοση λύσης

Η λύση αναφέρεται στον συνδυασμό μιας συνταγής Amazon Personalize, προσαρμοσμένων παραμέτρων και μιας ή περισσότερων εκδόσεων λύσης (εκπαιδευμένα μοντέλα). Όταν αναπτύσσετε το έργο CDK στο προηγούμενο βήμα, δημιουργείται αυτόματα μια λύση με μια συνταγή εξατομίκευσης χρήστη. Μια έκδοση λύσης αναφέρεται σε ένα εκπαιδευμένο μοντέλο μηχανικής εκμάθησης. Δημιουργώ ένα έκδοση λύσης για την υλοποίηση.

Δημιουργήστε μια καμπάνια

Μια καμπάνια αναπτύσσει μια έκδοση λύσης (εκπαιδευμένο μοντέλο) με προβλεπόμενη χωρητικότητα συναλλαγών για τη δημιουργία προτάσεων σε πραγματικό χρόνο. Δημιουργώ ένα εκστρατεία για την υλοποίηση.

Δημιουργήστε ένα πρόγραμμα παρακολούθησης συμβάντων

Το Amazon Personalize μπορεί να κάνει προτάσεις που βασίζονται μόνο σε δεδομένα συμβάντων σε πραγματικό χρόνο, μόνο σε δεδομένα ιστορικού συμβάντων ή και στα δύο. Καταγράψτε συμβάντα σε πραγματικό χρόνο για να δημιουργήσετε τα δεδομένα των αλληλεπιδράσεων σας και να επιτρέψετε στο Amazon Personalize να μάθει από την πιο πρόσφατη δραστηριότητα του χρήστη σας. Αυτό διατηρεί τα δεδομένα σας φρέσκα και βελτιώνει τη συνάφεια των προτάσεων του Amazon Personalize. Για να μπορέσετε να καταγράψετε συμβάντα, πρέπει να δημιουργήσετε ένα πρόγραμμα παρακολούθησης συμβάντων. Ένα πρόγραμμα παρακολούθησης συμβάντων κατευθύνει νέα δεδομένα συμβάντων στο σύνολο δεδομένων αλληλεπιδράσεων στην ομάδα δεδομένων σας. Δημιουργία και παρακολούθηση συμβάντων για την υλοποίηση.

Λάβετε συστάσεις

Σε αυτήν την περίπτωση χρήσης, το σύνολο δεδομένων αλληλεπίδρασης αποτελείται από αναγνωριστικά ταινιών. Συνεπώς, οι προτάσεις που παρουσιάζονται στον χρήστη θα αποτελούνται από αναγνωριστικά ταινιών που ευθυγραμμίζονται περισσότερο με τις προσωπικές του προτιμήσεις, που καθορίζονται από τις ιστορικές τους αλληλεπιδράσεις. Μπορείτε να χρησιμοποιήσετε το getRecommendations API για την ανάκτηση εξατομικευμένων προτάσεων για έναν χρήστη στέλνοντας τις συσχετισμένες του userID, τον αριθμό των αποτελεσμάτων για προτάσεις που χρειάζεστε για τον χρήστη καθώς και την καμπάνια ARN. Μπορείτε να βρείτε την καμπάνια ARN στο μενού της κονσόλας Amazon Personalize.

Για παράδειγμα, το ακόλουθο αίτημα θα ανακτήσει 5 προτάσεις για τον χρήστη του οποίου userId είναι 429:

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

Η απάντηση από το αίτημα θα είναι:

{ "$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"
}

Τα στοιχεία που επιστρέφονται από την κλήση API είναι οι ταινίες που προτείνει το Amazon Personalize στον χρήστη με βάση τις ιστορικές τους αλληλεπιδράσεις.

Οι τιμές βαθμολογίας που παρέχονται σε αυτό το πλαίσιο αντιπροσωπεύουν αριθμούς κινητής υποδιαστολής που κυμαίνονται μεταξύ μηδέν και 1.0. Αυτές οι τιμές αντιστοιχούν στην τρέχουσα καμπάνια και στις σχετικές συνταγές για αυτήν την περίπτωση χρήσης. Καθορίζονται με βάση τις συλλογικές βαθμολογίες που αποδίδονται σε όλα τα στοιχεία που υπάρχουν στο ολοκληρωμένο σύνολο δεδομένων σας.

Απορρόφηση αλληλεπιδράσεων σε πραγματικό χρόνο

Στο προηγούμενο παράδειγμα, ελήφθησαν συστάσεις για τον χρήστη με αναγνωριστικό 429 με βάση τις ιστορικές αλληλεπιδράσεις του με τη βάση δεδομένων ταινιών. Για προτάσεις σε πραγματικό χρόνο, οι αλληλεπιδράσεις των χρηστών με τα στοιχεία πρέπει να ενσωματώνονται στο Amazon Personalize σε πραγματικό χρόνο. Αυτές οι αλληλεπιδράσεις ενσωματώνονται στο σύστημα συστάσεων μέσω του Amazon Personalize Παρακολούθηση συμβάντων. Ο τύπος της αλληλεπίδρασης, που ονομάζεται επίσης EventType, δίνεται από την στήλη με το ίδιο όνομα στο σύνολο δεδομένων αλληλεπίδρασης (EVENT_TYPE). Σε αυτό το παράδειγμα, τα συμβάντα μπορεί να είναι τύπου "παρακολούθηση" ή "κλικ", αλλά μπορείτε να έχετε τους δικούς σας τύπους συμβάντων σύμφωνα με τις ανάγκες της εφαρμογής σας.

Σε αυτό το παράδειγμα, το εκτεθειμένο API που δημιουργεί τα συμβάντα των χρηστών με τα στοιχεία λαμβάνει την παράμετρο "αλληλεπιδράσεις" που αντιστοιχεί στον αριθμό των συμβάντων (interactions) ενός χρήστη (UserId) με ένα μόνο στοιχείο (itemId) τώρα αμέσως. ο trackingId Η παράμετρος μπορεί να βρεθεί στην κονσόλα Amazon Personalize και στην απάντηση της δημιουργίας αιτήματος παρακολούθησης συμβάντων.

Αυτό το παράδειγμα δείχνει α putEvent αίτημα: Δημιουργήστε 1 αλληλεπιδράσεις τύπου κλικ, με αναγνωριστικό στοιχείου "185" για το αναγνωριστικό χρήστη "429", χρησιμοποιώντας την τρέχουσα χρονική σήμανση. Σημειώστε ότι στην παραγωγή, το 'sentAt' θα πρέπει να οριστεί στην ώρα της αλληλεπίδρασης του χρήστη. Στο παρακάτω παράδειγμα, το ρυθμίσαμε στο χρονικό σημείο σε μορφή εποχής όταν γράψαμε το αίτημα API για αυτήν την ανάρτηση. Τα συμβάντα αποστέλλονται στο Amazon Kinesis Data Streams μέσω μιας πύλης API, γι' αυτό πρέπει να στείλετε τις παραμέτρους stream-name και PartitionKey.

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"}'

Θα λάβετε μια απάντηση επιβεβαίωσης παρόμοια με την ακόλουθη:

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

Επικυρώστε προτάσεις σε πραγματικό χρόνο

Επειδή το σύνολο δεδομένων αλληλεπίδρασης έχει ενημερωθεί, οι προτάσεις θα ενημερωθούν αυτόματα για να ληφθούν υπόψη οι νέες αλληλεπιδράσεις. Για να επικυρώσετε τις προτάσεις που ενημερώνονται σε πραγματικό χρόνο, μπορείτε να καλέσετε ξανά το getRecommendations API για το ίδιο αναγνωριστικό χρήστη 429 και το αποτέλεσμα θα πρέπει να είναι διαφορετικό από το προηγούμενο. Τα ακόλουθα αποτελέσματα δείχνουν μια νέα σύσταση με αναγνωριστικό 594 και οι προτάσεις με αναγνωριστικά 16, 596, 153 και 261 άλλαξαν τη βαθμολογία τους. Αυτά τα αντικείμενα έφεραν στο νέο είδος ταινιών ('Animation|Children|Drama|Fantasy|Musical') τις κορυφαίες 5 προτάσεις.

Αίτημα:

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

Απόκριση:

{ "$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"
}

Η απάντηση δείχνει ότι η σύσταση που παρέχεται από το Amazon Personalize ενημερώθηκε σε πραγματικό χρόνο.

εκκαθάριση

Για να αποφύγετε περιττές χρεώσεις, καθαρίστε την εφαρμογή της λύσης χρησιμοποιώντας Καθαρισμός πόρων.

Συμπέρασμα

Σε αυτήν την ανάρτηση, σας δείξαμε πώς να εφαρμόσετε ένα εξατομικευμένο σύστημα συστάσεων σε πραγματικό χρόνο χρησιμοποιώντας το Amazon Personalize. Οι αλληλεπιδράσεις με το Amazon Personalize για την απορρόφηση αλληλεπιδράσεων σε πραγματικό χρόνο και τη λήψη προτάσεων εκτελέστηκαν μέσω ενός εργαλείου γραμμής εντολών που ονομάζεται curl, αλλά αυτές οι κλήσεις API μπορούν να ενσωματωθούν σε μια επιχειρηματική εφαρμογή και να έχουν το ίδιο αποτέλεσμα.

Για να επιλέξετε μια νέα συνταγή για την περίπτωση χρήσης σας, ανατρέξτε στο Εξατομίκευση σε πραγματικό χρόνο. Για να μετρήσετε τον αντίκτυπο των συστάσεων του Amazon Personalize, ανατρέξτε στο Μέτρηση του αντίκτυπου των συστάσεων.


Σχετικά με τους Συγγραφείς

Cristian Marquez είναι Senior Cloud Application Architect. Έχει τεράστια εμπειρία στο σχεδιασμό, την κατασκευή και την παράδοση λογισμικού σε επίπεδο επιχείρησης, υψηλού φορτίου και κατανεμημένων συστημάτων και εγγενών εφαρμογών cloud. Έχει εμπειρία σε γλώσσες προγραμματισμού backend και frontend, καθώς και σχεδιασμό συστημάτων και υλοποίηση πρακτικών DevOps. Βοηθά ενεργά τους πελάτες να δημιουργήσουν και να εξασφαλίσουν καινοτόμες λύσεις cloud, λύνοντας τα επιχειρηματικά τους προβλήματα και επιτυγχάνοντας τους επιχειρηματικούς τους στόχους.

Ανάντ Κομαντοόρου είναι Senior Cloud Architect στο AWS. Εντάχθηκε στον οργανισμό AWS Professional Services το 2021 και βοηθά τους πελάτες να δημιουργήσουν εγγενείς εφαρμογές στο cloud στο AWS cloud. Έχει πάνω από 20 χρόνια εμπειρίας στην κατασκευή λογισμικού και η αγαπημένη του ηγετική αρχή της Amazon είναι «Οι ηγέτες έχουν πολύ δίκιο."

spot_img

Τελευταία Νοημοσύνη

spot_img

Συνομιλία με μας

Γεια σου! Πώς μπορώ να σε βοηθήσω?