By using AWS re:Post, you agree to the Terms of Use

Giving weights to event types in amazon personalize

  1. For the VIDEO_ON_DEMAND domain, some use cases include multiple event types. For example, the 'Top picks for you' use case includes two event types 'watch' and 'click'. Is 'watch' given more weight than 'click' when training the model? In general, when there is more than one event type, do domain recommenders give more weight to some event types?

  2. In our use case, we have a platform that recommends video content. However, we have multiple event types, and some events need to be given more weight than others. Below is the list of our event types in the order of their importance:


So when training the model, we would want 'SHARE' to have more weight than 'LIKE', and 'LIKE' to have more weight than 'WATCH_COMPLETE' and so on.

I was looking into custom solutions. It looks like there is no way to give weights when using Personalize's custom solutions as mentioned in this post...

So when using Amazon Personalize, should we use domain recommenders or build custom solutions for our use case?

**If we cannot give weights to different event types using Personalize, then what are alternatives? **Should we use Amazon SageMaker and build models from scratch? Open to any and all suggestions.

Thank you!

1 Answer

The VOD recommender for "Top picks for you" uses the same underlying HRNN-based algorithm noted in the StackOverflow answer you linked. Therefore the answer still applies with respect to weighting event types. That is, Personalize does not support weighting specific event types or specific interactions more than others. Instead, the Top picks for you recommender (as well as the underlying user-personalization recipe) builds sequence models from user sessions which are used to learn each user's interest based on a sequence of events rather than specific event types.

Given your event taxonomy, including interactions for SHARE, LIKE, and WATCH_COMPLETE in your interactions dataset are good choices since they indicate positive intent by the user. It may make sense to include WATCH_PARTIAL interactions as well (particularly if they represent the user watching the majority of the content, there is not a subsequent WATCH_COMPLETE for the user for the video, and/or you do not have a sufficient number of WATCH_COMPLETE events across your user base). Otherwise, use WATCH_COMPLETE. If using one of the VOD recommenders, you will need to map your WATCH_COMPLETE events to the required Watch type and you could map the STARTED events to View. The SKIP events could be used as impressions if they can be correlated to a WATCH_COMPLETE or WATCH_PARTIAL event for a video that the user eventually watched (e.g., the user skips through the first 3 videos in a sequence and watches the 4th video could be expressed in a PutEvents call with the 4 videos as impressions and the 4th video as the ItemId that the user Watched).

I suggest not basing the choice of whether to use Personalize or a custom SageMaker model on whether event type weighting is supported. Rather, the choice should be based on the approach that drives the most impact to your business metric (CTR, watch time, etc) with online testing.

answered 9 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions