Custom Decision Service

Microsoft Custom Decision Service helps you create intelligent systems with a cloud-based contextual decision-making API that sharpens with experience. Custom Decision Service harnesses the power of reinforcement learning and adapts the content in your application to maximize the overall engagement of users. The system incorporates user feedback into its decisions in real time and responds to emergent trends and breaking stories in minutes.

In a typical application, there is a front page with links to several articles or other types of content. As the front page loads, it requests the Custom Decision Service to provide a ranking of articles to include on the page. When the user clicks on an article, a second request is sent to the Custom Decision Service to log the outcome of our decision.

Custom Decision Service is easy to use. The easiest integration mode requires just an RSS feed for your content and a few lines of javascript to be added into your application.

Custom Decision Service converts your content into features for machine learning. These features allow the system to understand your content in terms of its text, images, videos, and overall sentiment. We leverage several other Microsoft Cognitive Services such as Entity Linking, Text Analytics, Emotion, and Computer Vision.

Some common use cases for the Custom Decision Service include:

  • Personalizing articles on a news website.
  • Personalizing video content on a media portal.
  • Optimizing ad placements or web pages that the ad directs to.
  • Ranking recommended items on a shopping website.

We are currently in free public preview, focused on personalizing a list of articles on a website or an app. Feature extraction works best for English language content. Limited functionality is offered for some other languages such as Spanish, French, German, Portuguese and Japanese. This documentation is revised as we are ready to advertise more functionality.

Custom Decision Service can be applied to applications that are not in the content personalization domain. Such applications might be a good fit for a custom preview. Contact us to learn more.

Learning mode: pooled or application specific

Custom Decision Service can be used in two learning modes, as follows. The APIs are identical, regardless of which learning mode you use.

  • Pooled learning mode: one model all applications, suitable for low-traffic applications.
  • Application-specific learning mode, suitable for high-traffic applications.

Pooled learning mode

Custom Decision Service learns from the click patterns of the users in response to the content presented in your application. Learning can be slow if your application has relatively low traffic. This problem is pronounced for dynamic content such as news. Such applications may not have enough time to learn the quality of an article and apply this learning before new content arrives.

Thus, for low-traffic applications with dynamic content, we recommend to pool data across multiple applications. Using the pooled data, we learn a single model for all applications that sign up for this learning mode, and use this model to customize their content. For example, you would be able to promote a breaking news story if users on other websites are interested in it, even before anyone has read it on your website. Your privacy is respected, as the raw data is never shared with any individual application, but only the decisions made by the system.

Application-specific learning mode

When your data volume permits, we recommend the application-specific learning mode. Then Custom Decision Service learns a model only based on how your users interact with your content. Such model would perform better than one learned in the pooled mode, because other applications' users and content may be different from yours.

Then Custom Decision Service creates a deployment of the entire learning pipeline for your application. You can also access the collected data offline to derive further insights about user preferences.

To use this learning mode, you need to have an Azure Storage account where your data would be logged. Choose "advanced options" when registering a new application on the portal, and enter the connection string for the Azure Storage account.

API usage modes

Custom Decision Service can be applied to both webpages and apps. Our APIs can be called either from a browser or from an app. The API usage is similar on both modes, but some of the details are different.

Glossary of terms

Finally, let us introduce several terms that frequently occur in our documentation.

  • Action Sets: The set of content items for the Custom Decision Service to rank. This set can be specified as an RSS or Atom endpoint.
  • Ranking: Each request to the Custom Decision Service specifies one or more action sets. The system responds by picking all the content options from these sets, and returns a ranked order of them.
  • Callback function: This function, which you specify which renders the content in your UI. The content is ordered by the rank ordering returned by the Custom Decision Service.
  • Reward: A measure of how the user responded to the rendered content. Custom Decision Service measures user response using clicks, and the clicks are reported to our system using custom code inserted in your application.

Next steps:

  1. Get started with Custom Decision Service to optimize a webpage or to optimize a smartphone app.
  2. Consult API reference to learn more about the provided functionality.