Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence. Machine learning algorithms build a model based on sample data, known as training data, in order to make predictions or decisions without being explicitly programmed to do so. Machine learning algorithms are used in a wide variety of applications, such as in medicine, email filtering, speech recognition, and computer vision, where it is difficult or unfeasible to develop conventional algorithms to perform the needed tasks.
The recommender problem
Estimate a utility function that automatically predicts how a user will like an item
- Past behavior
- Relation to other users
- Item similarity
A way to approach this problem
One way to estimate a utility function that predicts how a user will like an item is to use a machine learning model that takes as input the past behavior of the user, the relation of the user to other users, the similarity of the item to other items, and the context in which the item is being presented. The output of the model would be a prediction of how much the user will like the item.
To build such a model, you would need to gather data on users' past behavior, including ratings or preferences for different items. You would also need data on the relationships between users, such as whether they are friends or share similar interests. The item similarity data could be based on the features of the items or on their co-occurrence with other items in past user behavior. The context in which the item is presented could include information such as the time of day, the user's location, and the user's current activity or task.
Using this data, you could train a machine learning model, such as a decision tree, random forest, or neural network, to predict the user's preference for an item based on these factors. The model could then be used to estimate the utility of an item for a particular user by making a prediction of how much the user will like the item based on the input features.
Approaches to recommendation
- Collaborative filtering: recommend on past behavior
- User based: recommend what other users like who are like me
- Item based: find similar items to those I have previously liked
- Content-based: Recommended based on item features
- Personalized learning to rank: treat recommendations as a tranking problem
- Demographic: recommend based on user features
- Social-recommendations: trust-based
- Hybrid: any combination of the above
- Behavioural data
- Cloud delivery models:
- Cloud deployment models
- Collaborative filtering
- Content-based filtering
- Cost function
- Right to anonymity
- Right to privacy
- Matrix factorization
- K-nearest neighbour (k-NN) algorithm
- Mean absolute error (MAE)
- Popularity bias
- Reinforcement learning
- Root-mean-square error (RMSE)
- Stochastic gradient descent
- Training data
not listed in case study but perhaps useful:
An excellent, and I truly mean excellent example is MarI/O, a machine learning program that learns how to play mario, and mario kart.
- Super Mario World: https://www.youtube.com/watch?v=qv6UVOQ0F44
- Mario Kart: https://www.youtube.com/watch?v=S9Y_I9vY8Qw