AffinityML is being gradually rolled out to all AdaptML customers. Contact your CSM for more information.
AffinityML is an Experience OS extension, and part of the AdaptML® package. It identifies users’ probability to engage, and applies it in audiences, targeting, affinity allocation, and product recommendations.
AffinityML is the next generation of the Dynamic Yield affinity-based personalization engine, powered by our state-of-the-art long short-term memory (LSTM) recurrent neural network (RNN).
AffinityML trains itself based on the historical patterns and activities of all visitors to your website or app, and learns which sequences of events ultimately lead to desired outcomes (say, a product purchase). AffinityML continually updates with every user action, and applies its learnings to predict which product attributes a single user is likely to have affinity for, in real time, based on their individual activity and the general behavioral patterns observed.
How AffinityML is applied
Based on this training, if a user completes the purchase of a product that is typically purchased only once (such as a large couch, oven, or smartphone), the model immediately lowers that user’s affinity to attributes of the product they just purchased, and increases the user’s affinity to attributes associated with complementary products that are typically purchased next (such as couch pillow cases, oven trays, or phone accessories).
Similarly, if a product is purchased from a category typically purchased repeatedly and at regular intervals (such as reusable diapers or paper towels), the model decreases the user's affinity for the attributes associated with the product at the time of purchase, and then increases it again at the right time, matching the purchase interval.
These capabilities mean that some use cases work particularly with AffinityML, including:
- Learn what other users who completed the same activity (say, adding an item to the cart) also liked, and automatically apply it to recommendations.
- Based on their previous purchases, recommend items users are likely to be interested in within order confirmations or shipping details emails.
- Highlight and re-sort the categories your users are most interested in and are predicted to be interested in even if they don't engage with the category.
Enablement
The transition from our classic affinity to AffinityML is seamless and transparent, and doesn’t require any additional implementation or updates to live campaigns. Both affinity-based personalization engines are responsible for calculating user affinity profiles. So, while the underlying profiles continuously evolve and change, your campaigns, experiences, and recommendation strategies that use affinity profiles are agnostic to how the profile is calculated.
When you transition to AffinityML, you can expect the new model to target different users than those of our classic affinity. This might result in slight changes in the number of targeted users and those included in affinity-based audiences.
To enable AffinityML, contact your Customer Success Manager.
For best practices in setting up the product attributes to include in affinity calculations, see Affinity-Based Personalization.
Best practices
The affinity personalization engine relies heavily on the quality of your product feed. To guarantee optimal performance, make sure to follow the following guidelines when selecting the attributes to enable for affinity personalization in your account:
- Less is more: Select up to 5 attributes.
Select only attributes that you want to employ in campaigns or have represented in product recommendations. Unnecessary attributes add noise to product recommendations. - Select only attributes that imply users’ preferences for other products and categories.
For example, if purchasing a product made of cotton implies that a user is likely to purchase cotton products from other categories as well, then "material" is a suitable attribute. - Select attributes that offer a valid value for every SKU (or most SKUs). Avoid values like “not applicable” or special characters. If absolutely necessary, leave the value empty.
- Avoid attributes with frequently shifting values. For example, “On_Sale” is not ideal as its values frequently change from “true” to “false.”