Amazon Personalize is a AI service that is part of the machine learning stack at AWS. Some of the business outcomes customers have achieved via using Amazon Personalize are:
Amazon Personalize is particularly strong at improving the customer’s ability to find products that specifically from long-tail catalog of items.
How It Works
One starts by bringing their data about how users interact with polls. There are 3 dataset types that Amazon Personalize takes as input:
User Events / Interactions (Required)
This dataset contains information about User-Poll interactions, e.g. users doing the following: Polls Metadata (Optional)
This dataset is useful in situations such as the Cold Start problem for New Polls. The metadata we have for Polls data is: Category, e.g. Music, Bollywood etc. User Metadata (Optional)
This dataset helps in Cold Start problem for New Users. Following are the attributes for this dataset:
All these 3 datasets can be imported in bulk into Amazon Personalize as CSV files. Once the data is uploaded, Personalize performs the following steps to train a private custom machine learning model:
Host Models (to AutoScaling End Points) Build Real-Time Feature Store
After the above steps, Personalize creates a Customised Personalization API.
Core Use Cases
Amazon Personalize focusses on 3 different core use cases.
Real-Time User Personalization
Given a user, recommend polls that the given user should interact with. New/Cold Users with no interaction history receive popular/trending items as recommendations.
Once, “events” are streamed into Personalize, recommendations are personalised in real time. So, after 1 or 2 “events”, new recommendations reflect the events history.
At present, Amazon Personalize uses to train a User Personalization based machine learning model.
Similar Items Recommendations
This use-case would typically be implemented on a poll detail page/screen on the mobile app. It recommends other polls similar to the poll in consideration based on user behavior.
So, this is not doing any Content-Based Filtering, but . This is based upon the following fact: Users who interacted with this particular poll also interacted with some other polls.
Re-ranking Items (Personalised)
The intuition here is simple. Given a user, and a list of items, personalize the order of those items for that user.
Key Features of Amazon Personalize
Modelling impressions data, or polls that are “viewed” but not interacted with. We view impressions as negative behaviour.
Balance between exploring for new polls and polls a user is likely to find relevant.
“Exploration”: Recommend polls with less interactive data and relevance. “Exploitation”: Recommend polls based on relevance. explorationWeight: Balances the behavior between “Exploration” vs “Exploitation”
Exclude or include polls to recommend based on event criteria.
Exclude or include items to recommend based on poll or user criteria.
For both filtering for events and on metadata, features allowed include or exclude items being recommended based on business rules we define in the service.
These business rules are similar to SQL “WHERE” Clause. Business rules provide guard rails on what to recommend to the end user from AWS Personalized !
Include recommendation for new users and new polls. Can be done via the “Trending” recipe.
Filtering Recommendations With Business Rules
Following are some examples of polls we might like to INCLUDE in our recommendation feed for a user:
Polls released in given time period Polls with more then 10 comments by users Recommend only certain categories: E.g. Internet, Movies & TV Seasonality: For example, Polls about a specific movie would be more relevant around it’s release period.
Following are some examples of polls might like to EXCLUDE in our recommendation feed for a user:
Polls older than a certain timestamp. Polls which have “EVENT_TYPE” being “Seen”. In case of a subscription based model: Polls not included in subscription
Following are some examples, how business rules can be applied:
EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN (”Seen")
INCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)
INCLUDE ItemID WHERE Items.ACCESS_TYPE IN (”paid”)
IF CurrentUser.MEMBERSHIP_TIER IN (”gold”, “platinum”)
(4) Multiple Expressions
INCLUDE ItemID WHERE Items.PROMO IN ($PROMO)
EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN (”seen”)
NOTE: $PROMO can be related to some promotional event
User-User Interactions Data
For Hunch, we also provide the feature and collect data of users following other users. There are following relevant questions about this data:
Is there a way to introduce the effect of following another User by a given User? Essentially should it have an impact on the personalized feed of a User, given the User follows a list of other Users? If yes, what should be the impact, in what magnitude, and how do we use this "User Following Other Users" information within Amazon Personalize.
Right now, AWS Personalize does not provide any methodology to incorporate user follower-following information within its personalized modelling recipes.