BACKGROUND

A personal assistant program provides services traditionally provided by a human assistant. For example, a personal assistant can update a calendar, provide reminders, track activities, and perform other functions. Some personal assistant programs can respond to voice commands and audibly communicate with users. Personal assistants can suggest restaurants, music, tasks, movies, and other items to a user when the user might have an interest in one of these items.

SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in isolation as an aid in determining the scope of the claimed subject matter.

Aspects of the technology described herein provide a more efficient user interface by providing suggestions that are tailored to a specific user's interests. The suggestions may be provided by a personal assistant or some other application running on a user's computing device. A goal of the technology described herein is to provide relevant suggestions when the user can and actually wants to use them. The suggestions are designed to provide information or services the user wants to use.

Relevant suggestions and the appropriate time to present the suggestion can be determined by association rules. The association rules are generated by analyzing a user's past actions to determine a probability the user is interested in a suggestion in a given context. The technology described herein can analyze signals describing user actions to build data vectors associated with different types of events. For example, different types of data vectors may describe a movie event, a music event, a travel event, a dinning event, a shopping event, etc. The data vectors are then used as input to a machine learning algorithm to generate association rules.

Once generated, the current context of a user can be monitored to trigger a suggestion associated with the association rule when the context part of the association rule matches the current context.

