The ability to predict a customer’s needs, and provide proactive customer experiences based on this understanding, is reshaping how businesses interact with their customers. 

As companies race to create real-time, personalized interactions, they are turning to machine learning to build sophisticated algorithms and models that will produce personalization at scale. But machine learning has traditionally required running complex data infrastructure to collect and centralize data across sources, and large in-house data science teams to train and productionize these models. 

That’s why today we’re excited to announce the Amazon Personalize Destination, a machine learning service from Amazon Web Services that makes it easy for developers to create personalized recommendations for their customers. 

With Segment and Amazon Personalize, developers can build ML-based personalization into their application and marketing journey, without building new data pipelines or standing up additional infrastructure.

Customer Data Infrastructure + machine-learning = 📈

Building a successful machine learning initiative requires both clean data and the right infrastructure to support complex models. 

With Amazon Personalize and Segment, you have access to the models Amazon.com has perfected over the years—powered by your Segment data—to create accurate, personalized content at scale. With a few clicks, you’ll be able to send product recommendations into emails in Iterable, push notifications from Braze, or embed the recommendations directly into your app experience.

MylkGuys, an e-commerce vegan retailer who recently joined the Segment Startup Program, will be using Personalize to provide onsite recommendations for shoppers. “We have a huge selection of unique grocery products, and a bunch of different shopper personas, so personalizing the assortment to the right shopper is key to driving conversions and expanding basket size,” said MylkGuys CEO Gaurav Maken. 

“Segment makes it easy to collect customer data across apps and devices, and now Personalize makes it easy to activate ML-based recommendations across our marketing stack,” said Gaurav.

Getting started

Getting started with Segment and Amazon Personalize has three steps:

1. Preparing historical data (optional)- Prepare your historical data and upload your product or media catalog. (Alternatively, Personalize can be bootstrapped with an empty data set and then trained based on new event data sent into the service).

2. Creating a Personalize Solution - Select your algorithm and train a model or let Personalize select the best performing algorithm, or recipe as they are referred to in Personalize, based on the data you provide.

3. Getting recommendations - Use the Personalize API to stream customer data back into Segment to activate recommendations for each user.

You’ll need to be have access to an AWS Account, access to historical Segment data (from S3, Redshift, Snowflake, etc), and IAM access to deploy new services in your AWS Account. 

Preparing historical data

For a more complete model to start with, we recommend you use historical data to train your Amazon Personalize models. If you’re already using Segment to load data to Redshift, Snowflake, and S3, it’s easy to load your preexisting data into Personalize in a format that Personalize can understand with a single SQL query. 

unload ('
select
user_id as USER_ID,
products_sku as ITEM_ID,
event as EVENT_TYPE,
date_part(epoch,"timestamp") as TIMESTAMP
from prod.order_completed
UNION
select
user_id as USER_ID,
products_sku as ITEM_ID,
event as EVENT_TYPE,
date_part(epoch,"timestamp") as TIMESTAMP
from prod.product_added
UNION
select
user_id as USER_ID,
products_sku as ITEM_ID,
event as EVENT_TYPE,
date_part(epoch,"timestamp") as TIMESTAMP
from prod.product_viewed
')
to
's3://mybucket/my_folder'
credentials 'aws_access_key_id=AWS_ACCESS_KEY_ID;aws_secret_access_key=AWS_SECRET_ACCESS_KEY;token=AWS_SESSION_TOKEN'
HEADER
REGION AS '<your-region>'
DELIMITER AS ','
PARALLEL OFF;

Creating a Personalize Solution

Next, you’ll point Personalize to the historical dataset you created in the previous step by creating a dataset group, defining the necessary schemas, and initiating dataset upload jobs. Then you will create a Personalize Solution, which is where a machine learning model is trained. Personalize allows developers to use AutoML to determine the best algorithm to use. Finally, you will deploy your Personalize Solution by creating a Personalize Campaign.

Getting recommendations

Next, you’ll set up a destination in Segment and stream data into Personalize to gather real-time recommendations for your users. 

Under the hood, we’ll be streaming customer events into a Lambda function that you’ll run in your AWS account. You can deploy this Lambda from from the Serverless App Repo or check out the Github repo

Recommendations at your fingertips

With Segment and Amazon Personalize, you can now provide your customers with personalized ML-powered recommendations across your apps, emails, livechats, & sales & support channels. Recommend the right articles, products, videos, or music, in realtime, to drive conversions and increase engagement.  

Ready to try out Amazon Personalize with Segment? Request a demo today or if you’re already a Segment customer, check out our docs or log in to your workspace to get started.