Advanced ML

How to Play Advanced

This section is devoted to users that want to create their own models and adjust their parameters and functions. There are two key elements in our models: target and output_type. Target represents what you query with and output_type is what you want returned by your query.

Other elements that can be set to optimize the model are features and model_type. Features define which attributes of your object the model will use, i.e. tags, name and description. The model_type (not to be confused with the model_namethat is used in the Out of the Box models discussed in the Simple ML section) defines the mathematical model used to optimise your ML model’s performance, depending on your data.

  • Target is the element you want to give your model while output_type is the element you want to get back from your model.

    • Example: When you build a Product Recommendation for Users, you give the recommender a user and get back a product. In this case the user is set as the target and product is set as the output_type.

  • Features can be any combination of tags, name or description.

  • Model_type is the mathematical model the prediction is based on.

Custom Recommendation Models

Recommendation models by nature are dependant upon the transaction history you have of your customers’ purchases or behavior. You can combine the target and output_type to build any type of recommender.

We provide four recommendation models: Collaborative Filtering, Ranking, Content and Popularity. You can set these as the model_type to create a variety of recommenders.

Note that for a recommender, the target and output_type must be different elements. For Content Similarity models, they must be the same.


  • The simple_product_recommender can also be implemented setting user as target, product as output_type and collaborative_filtering_recommender as model_type.

  • In this demo, the target is a user and the output_type is a product (or movies in this case), the model_type is ranking_recommenderand there are no features included.

Custom Similarity Models

There are two types of Similarity models; those that compare content of features and those that are based on the transaction history.

Content Similarity Models

You can create a Content Similarity model based on the features of the User or Product Building Blocks. Pick an output_type and at least one feature from tags, name and description, and set the model_name to content_similarity_model.

  • When you query a model, you will always get the output_type back, i.e., Product or User. But, you can also query the actual features of those Blocks themselves by providing those instead of an object id.

    • If you build a User Similarity model based on tags, you can query any set of tags to get users with similar tags.

Transaction Similarity Models

This model uses similarity in the same manner as the Collaborative Filtering model to return similar modules when the target module and the output_type module are different. In this case, provide a target and output_typejust like in the Recommendation Engines section, but set the model_name to transactions_similarity_model.


  • Get similar products based on their names by setting output_type as products, model_name as similarity_model and features as name.