Techniques are disclosed for using a combination of explicit and implicit user context modeling techniques to identify and provide appropriate computer actions based on a current context, and to continuously improve the providing of such computer actions. The appropriate computer actions include presentation of appropriate content and functionality. Feedback paths can be used to assist automated
machine learning in detecting patterns and generating inferred rules, and improvements from the generated rules can be implemented with or without direct
user control. The techniques can be used to enhance
software and device functionality, including self-customizing of a model of the user's current context or situation, customizing received themes, predicting appropriate content for presentation or retrieval, self-customizing of
software user interfaces, simplifying repetitive tasks or situations, and mentoring of the user to promote desired change.