Search code examples
recommendation-engineazure-cognitive-services

Does the Recommendation service allow enriching an existing model with new data?


We are able to provide an initial training model and ask for recommendations. When asking for recommendations we can provide new usage events. Are these persisted at all into the model? Do they manipulate the model at all?

Is there another way the data is supposed to be updated or do we need to retrain a new model every time we want to enrich the model?

https://azure.microsoft.com/en-us/services/cognitive-services/recommendations/

EDIT: We are trying to use the "Recommendations Solution Template" which deploys a solution to Azure and provides a swagger endpoint for working with the model (https://gallery.cortanaintelligence.com/Tutorial/Recommendations-Solution)

It appears the Cognitive Services API is much richer than this. Can the swagger version's models be updated?


Solution

  • After more experience with this I discovered a few things as of August 21st, 2017:

    1. While not intuitive for the uninitiated, new data requires training a new model for the data to be persisted into the model.

    This allows a form of versioning the model, and means when you make new models you can switch recommendations to work how they did before if they don't work as well.

    The recommended method appears to be to batch usage data and create new builds of the model on an interval.

    The APIs do allow passing in recent usage data to allow recent data to be accounted for at scoring time, it's just not persisted.

    The "upload usage events" call in the cognitive services API does not seem to work. Uploading the new usage data via a file does appear to work.

    1. The Recommended Solutions Template vs. The Cognitive Services API

    It appears the Recommended Solutions Template is a packaged version of the SAR (Smart Adaptive Recommendations) model inside the Cognitive Services API that is optimized for ease of use.

    I'm presuming for other popular recommendation models like FBT the Cognitive Services API should be used as the deployable template only allows one model type.

    1. Additional note on the Preview Status of the API

    It seems microsoft is deprecating the datamart as of February and sending people to this preview API instead. Therefore it seem reasonable to presume this Preview is highly likely to move on past preview and not be killed.