sommai - Fotolia


Set up an AWS recommendation engine with Amazon Personalize

Amazon Personalize offers machine recommendation algorithms as a service, but it's not the only recommendation engine on the market with AI behind it.

Amazon Personalize is a machine learning service that generates customer recommendations for any application running on AWS infrastructure. Personalize provides an AWS recommendation engine, which means data scientists and engineers don't have to craft AI programs from scratch.

Personalize draws on Amazon's extensive experience in recommendations for the company's own storefront, but Amazon stated the data from Personalize use will remain private for the businesses that adopt it.

AWS developers should consider the engine for several reasons. Personalize integrates directly into AWS workflows, with separate APIs for personalization and recommendations. It can continuously improve over time using reinforcement learning. Personalize manages the complexities of selecting the right algorithm, training and updating the AI model, and correlating accuracy metrics, for dynamic recommendations within applications.  

Amazon Personalize in applications

Companies can use Personalize to generate product and content recommendations, such as items in a store catalog, content on an information site and movies on a media site. Companies can also use it to tailor search results and produce targeted promotions.

Developers can integrate these results into the organization's website, mobile app, content management system or email marketing campaign, for example. Improved personalization capability differentiates businesses in the post-digital era, where individual experiences matter, according to research from Accenture, a global IT professional services company.

How to set up Amazon Personalize

The development process to feed the AWS recommendation engine an organization's data involves several steps:

  • Create a schema that describes what is being recommended and characterizes the users.
  • Create a schema and starting data set that describes user behavior, such as what they liked, clicked on or bought.
  • Connect an S3 bucket to Amazon Personalize, or configure a data stream from a server or application into Personalize.

Author's note: To stream data, the AWS Amplify JavaScript library includes hooks into Personalize for a JavaScript application. The AWS SDK also includes hooks for streaming data into Personalize from any application or Lambda function running on AWS.

  • Select a recipe type, such as USER_PERSONALIZATION, PERSONALIZED_RANKING or RELATED_ITEMS, on which to generate a model. Some types have a few recipes with algorithms suited to a particular kind of project.
  • Create a campaign to test the results of the data fed to and AI work in the recommendation engine.

Amazon Personalize pricing and availability

Personalize pricing consists of three components: the size of training data, the amount of training time and the number of recommendations generated per hour. It costs $.05 cents per gigabyte of data uploaded and $.24 cents per hour of model training. Training costs are based on virtual CPUs with 8 GB of RAM. Because Amazon selects the instance types that train your data, the cost could be higher per hour if the instance size is larger than this base design.

AWS prices recommendations on a metric that reflects the sustained throughput of recommendations generated per hour. Enterprises can commit to pay more for a quicker guaranteed response time. It costs $0.20 transactions per second, per hour, for up to 20,000 recommendations and becomes cheaper with more volume. 

In live deployment, the data and training costs are likely to be a small fraction of what an organization spends to add the recommendation engine to an AWS-hosted application. Consider a typical example customer-facing website. The application uses 200 GB of training data ($10), and the organization updates the training for the recommendation engine for 20 minutes per day for a month ($72), totaling $82. In contrast, the recommendations integrated into each webpage request for that application average a volume of 10,000 transactions per second for 720 hours, costing $1,442.

At time of publication, Personalize is available in several AWS regions, including U.S. East (Ohio), U.S. East (N. Virginia), U.S. West (Oregon), Asia Pacific (Tokyo), Asia Pacific (Singapore) and EU (Ireland).

Organizations that use a recommendation engine should fine-tune the platform to get a sense of how Amazon Personalize or another product's integration can affect various business metrics and see which personalization setups deliver the best results. While Personalize aims to reduce the complexity of data analysis, it is a smart investment to hire data scientists to optimize recommendations.

Surveying the competition

Amazon Personalize pricing is competitive with comparable services from Microsoft and Google, both currently in beta. Pricing for Microsoft Personalizer and Google Recommendations AI could change when they reach general availability.

Microsoft Personalizer costs $0.08 per thousand transactions and drops to $0.03 per thousand transactions after 10 million transactions. Google Recommendations AI costs $0.35 per thousand requests. Google's recommendation engine users also incur charges to log errors to Stackdriver. Any requests for items that are not in the catalog imported for the service show up as errors, at $.50 per gigabyte stored.

Third-party tools offer similar personalization capabilities to those from the major public cloud vendors. Amazon Personalize is a good option for companies that already have substantial AWS infrastructure. However, these tools -- including Optimizely, Apptus, Yuspify, Recombee and CloudEngage, as well as the Salesforce Personalization Builder -- might suit a business worker's skill set.

You do not have to be a developer to adjust the customization and recommendation results that these tools display. These recommendation engines might better integrate into content management engines, like WordPress, or online storefronts.  

Dig Deeper on AWS artificial intelligence

App Architecture
Cloud Computing
Software Quality