Amazon Personalize

A service that provides real-time personalization (recommendations, personalized ranking) powered by machine learning

Overview

Amazon Personalize is a fully managed service that enables real-time personalization without requiring machine learning expertise. It learns from user behavioral history (clicks, purchases, views, etc.) and item metadata to generate recommendations, personalized rankings, and related item suggestions optimized for each individual user. Built on the recommendation technology developed at Amazon.com, it includes production-ready features such as cold start handling, real-time event reflection, and business rule filtering.

Dataset Groups and Schema Design

A Personalize dataset group is a container that stores the data needed to build a recommendation model. Up to three types of datasets can be registered in a dataset group. The Interactions dataset (required) stores user-item behavioral history (USER_ID, ITEM_ID, TIMESTAMP, EVENT_TYPE) and serves as the foundation for model training. The Items dataset (optional) stores item metadata (category, price range, genre, creation date, etc.) and is used for content-based filtering and recommending cold start items. The Users dataset (optional) stores user attribute information (age group, gender, membership tier, etc.) and improves recommendation accuracy per user segment. In schema design, the granularity of EVENT_TYPE directly impacts recommendation quality. By distinguishing behavioral intensity with values like "view," "click," and "purchase" and weighting them via the EVENT_VALUE field, you can build models that prioritize purchase behavior over clicks. The Interactions dataset requires a minimum of 1,000 interactions and 25 or more unique users, with model accuracy improving as data volume increases.

Recipe Selection and Solution Version Training

A Personalize recipe is a template for a recommendation algorithm. You select the appropriate recipe based on your use case. The USER_PERSONALIZATION recipe generates a personalized item list for each user, ideal for e-commerce homepages and video streaming home screens. The RELATED_ITEMS recipe returns items similar or related to a specific item, used for "customers who viewed this also viewed" sections on product detail pages. The PERSONALIZED_RANKING recipe reorders a given item list based on user preferences, useful for personalizing search results and category listings. A solution version is a snapshot of a model trained by combining a recipe with datasets. Training options include full training (retraining on all data) and incremental training (updating with differential data), with a common operational pattern of running full training weekly and incremental training daily. Enabling automatic hyperparameter optimization (HPO) lets Personalize search for optimal parameters, though this increases training time and cost. Offline metrics (precision@K, nDCG, coverage) evaluate model quality, quantifying improvement against a baseline.

Campaign Deployment and Real-Time Inference

A campaign is a trained solution version deployed as a real-time inference endpoint. Calling the GetRecommendations API returns a personalized item list for a specified user with millisecond-level latency. You set the campaign's minProvisionedTPS (minimum provisioned transactions per second) to ensure processing capacity matching your traffic. When actual traffic exceeds minProvisionedTPS, auto-scaling kicks in, but it may lag behind sudden spikes, so it is advisable to increase TPS in advance for events like sales periods. The PutEvents API streams user real-time behavior (clicks, cart additions, etc.), which is immediately reflected in the next inference. This allows recommendation content to dynamically change in response to user behavior within a session. The filter feature lets you apply business rules at inference time, such as "exclude already purchased items," "exclude out-of-stock items," or "restrict to a specific category." Pricing consists of three components: training time (approximately $0.24 per hour), real-time inference (approximately $0.20 per TPS per hour), and data ingestion (approximately $0.05 per GB).

共有するXB!