Hi everyone. In this video we're going to talk about recommender systems. What is a recommender system? Recommender system is a collection of algorithms that recommend items to users such that the users are likely to respond. By respond, I mean, they can view the product, or they can buy the product, or they can click the advertisement and so on. All of these a user response either directly or indirectly profits the business. Such the users induce more transactions for their services and goods. Examples of those services might be like this. Netflix gives you a personalized movie recommendation. They recommend movies based on your watching history or browsing history or search terms. They can best guess what you might like. The reason why they want to do this is that they want you to keep your subscription with them longer. YouTube does similar thing by recommending more videos to users. Although, the business model of YouTube is different from Netflix, that most of these videos are free. It is still desire for them if users watch their videos board, because this users might respond to their advertisement, and bring them some business profit. You might have seen lots of products, recommendations from Amazon or any e-commerce website. Music services such as Pandora, gives some personalized recommendation and plays the music that you might like. In the news aggregation, apps or services can give you a list of news articles that you might be interested. The term recommender system is really broad and there are tons of different method there. Let's have a look at a few recommendation system approaches. The most simple one would be popular rebased. An example of this would be the Twitter moments. It has an assumption that if something is very popular to a lot of people, then someone must be interested to know about this. They'd recommend the most popular trending items to everyone. Another good approach is a content-based. Content-based usually have items and associated features or attributes of the items. They create these items specification and then identifies a similar items. The recommender system can recommend items that are similar to user have interacted. In terms of a user interaction. Oftentimes, it's not very useful if recommender system recommends something very similar to what user have already bought or consumed. However, if the recommender systems goal is to recommend the items to buy to something similar the user have viewed or interactive it, such as clicks. It could be meaningful to recommend items that are similar to what user have viewed before. Oftentimes, the features of these items are hand-engineered, which means they need some domain knowledge. This domain knowledge can be something like movie genres and some features about the movie, or some features about the music, or the specification of some product items. Content-based method relies on this type of attributes for items and then measure the similarity between the items. Then recommend similar items to user who has a preference to something similar. Another very popular approaches called the collaborative filtering. Collaborative filtering also uses the similarity, but different from content-based, which only uses an item similarity. These items similarity is based on the attributes of the item. Collaborative filtering measures the similarity between item to item and user to user. Then uses this property to recommend items chosen by similar users. For example, a user A is similar to user B, and user B has bought some items they user A has not bought yet. Then we can recommend this item that user B bought to user A. As we will see later, collaborative filtering is often domain free. That means it does not need a domain specific information to create the item-item similarity and user-user similarity as well. In terms of collaborative filtering, users are similar if they buy similar things. Also we can say the items that are bought by the same set of users are considered to be similar. Well, let's talk more details about content-based filtering. As we mentioned, content-based filtering, these user profile and items. They create user profile by collecting the user information. Sometimes they ask some survey, such as demographics or some questionnaire that are relevant to their preference. For items, we need a domain specific information to create the item features or attributes. Oftentimes, these features are hand-engineered by domain experts. As an example, Music Genome Project by Pandora. They started about in 2000 and they hired us, [inaudible] musical theory experts. The process took about five years or more to analyze 400,000 songs. This musical attributes by musical theory experts include some beats of the music, harmony and lyrics, melody and rhythm and tempo and so on. All of these musical tributes are handpicked by music experts and then these are about 450 musical attributes. Using this content-based method, they offer music that are similar to what a user already likes. Hand Engineering, although features of our diagram sounds very expensive and take long time. Fortunately, a lot of cases, there are some specs about the items, such as a laptop has technical specification such as a hard disk size, the CPU speed and RAM size and so on. It doesn't need extensive domain experts input, like the Music Genome Project from Pandora did. Similarly, movie features are industry standard that they already know about who are the actors and director, and what year the movie came out and so on. It doesn't need a lot of hand engineering, but the information is known. However, all of these information are very domain specific, even though we don't need to have experts to specify those. How does the content-based method gather the user profiling? User profiling refers to what is the user preference. Sometimes a recommender system ask directly to user. For example, Coursera might ask you to input your interest, just a subject that you are interested on and career goals and skill sets that might be relevant to certain courses. Other recommender system oftentimes that happens search field that the user look for something and then they start from there. User preference also can be from past behavior. Netflix or Pandora, in some other recommender systems, the e-commerce, they monitor what user have watched or what user have about, and so on. Then based on their past behavior, they can find items that are similar to those and then recommend those. Collaborative filtering, we mentioned that it does not need a hand engineered features and then it does not need a domain knowledge such as a specification of the item and so on. You also learn from other user's interaction, such as if the other users bought similar item that I have bought, then it tells about the items are similar and the users, I and another person who bought the same item will be similar. The collaborative filtering has a name collaborative, because different users will help defining which items are similar. Therefore, it will help filtering those items. In order to calculate the similarity between the items and similarity between the users, we need some history data. It's going to work well if the recommender system already have the user's preference based on users previous behavior. However, it can suffer from cold start problem when the new user comes to the website and the recommender system doesn't have any data, so it doesn't know what to recommend. In that case, we can do some several things. In the content-based method, we can explicitly ask the users to search or input the user preference in the beginning and then start from there. Or we can also suggest to some popular movies or popular music by other people and then hopefully the user will click and start giving some input there. Let's talk about some different approaches in collaborative filtering. The simplest method would be memory-based. The recommender system would remember what other similar users have bought and it will recommend the same thing to you. A little bit more sophisticated, recommend based on similarity between users and items as well. When similar user bought something, then the recommender system recommend you something similar. It doesn't have to be exactly the same thing. Latent factor models can be very useful when the system becomes very large. Matrix of factorization is used to reduce the dimension to smaller dimension, the compact to the encodes the interaction between the users and items. Other methods can be also found, such as using supervised models to predict the ratings of missing items. When a user didn't buy this item and did not have any ratings, the recommender system predicts using the supervised models. If it's likely to be highly rated by these user, then the recommender system can recommend this product. Graphs can be also used. It's based on the assumption that if you buy something, your friends might also like this. There are some other various methods that we're not going to talk about that. As you can see, collaborative filtering can have a lot of different method in it.