Engines are machine learning models that combine real-time and historical data to make personalized suggestions. There are two types of engines: search engines and recommendation engines. This guide will explain more about how they work and how you can get the most out of your engine configuration.
Engines are always configured in Dojo (not programmatically). You'll find all the setup steps explained in the Dojo Engines guide.
The engine lifecycle
- Engine creation: In Dojo, you create an engine and provide the user interaction to optimize for and the training schedule. The engine is trained right away and ready to go with a baseline knowledge based on your current data sets.
- Prediction: You ask your engine to make a prediction by calling the Engine APIs. At prediction time, the engine will take into account both the historical data (i.e. the product and interactions in your dataset when the engine was last trained) and the current context (i.e. the user's last few interactions and your current site activity and trends). The engine returns the results as a JSON response.
- Re-training: On the schedule that you provided in Dojo, the engine will be retrained on your latest data sets.
- Engine deletion: The engine lifecycle ends if you decide to delete your engine. Note that doing this will cause any APIs that call this engine to stop working.
Optimizing for user interactions
Any type of training requires a goal 🏋🏽♀️. That's why we ask you to tell Miso which interactions to optimize for when you're setting up your engine. The interactions you choose become your engine's goal to maximize during training (while of course still maintaining high-quality, diverse, personalized results). By optimizing for high-value interactions on your site, like checkouts or views, you can use Miso to drive conversions and revenue.
Miso allows you to set up multiple search engines and multiple recommendation engines. These engines can be on different training schedules and optimized for different interactions.
For example, you may have an eCommerce part of your site where you want to optimize for
checkout interactions, while you also have a content section where you want to optimize for
product_detail_page_view interactions. You can achieve this by using different engines for the different parts of your site.
You have a default Search engine and a default Recommendation engine, configured in Dojo, that respond by default when you call Miso's Engine APIs. To use a different engine from the default, use the
engine_id parameter when making an API call to Miso.
Setting a training schedule
Miso will automatically retrain the engine on the schedule that you choose in Dojo. It's recommended to select this schedule based on the volume of interactions on your site. More frequent retraining is useful if you have a lot of data coming in and need to keep refreshing your engine.
miso_id to improve engine performance
After you call an engine API, it's important to maintain the
miso_id that you get back in the API response, and add it to the subsequent user interaction that you send to Miso. We use miso_id to track and fine-tune the performance of personalization and search results. When a user clicks on a recommendation or search result, you should pass the associated
miso_id to the next page view, and associate the
miso_id with the interactions that take place on the page (e.g.
like, etc.). In this way, Miso will learn which recommendations worked and which didn't.