I am working on generating restaurant ratings automatically and I have various feature values like delivery time, cost estimate, etc. I want to generate a rating for each restaurant between 0 to 5. But I don't have any training data or ground truth to validate. This rating might vary with user. Most of the related work, mostly related to the Yelp data challenge, have some relevance score as training data. I though of using reinforcement learning to learn the rating with user feedback, but not sure how to do that. Can anyone please suggest a relevant technique or algorithm for this problem?
-
$\begingroup$ What is your problem? do you want to validate your predicted ratings? then you need rating data. $\endgroup$– Sean OwenCommented Jun 13, 2015 at 7:22
-
$\begingroup$ Validation is one problem. Here I am more concerned about building the model itself. I am not very comfortable with unsupervised models. $\endgroup$– BhaskarCommented Jun 13, 2015 at 13:29
1 Answer
If you model your system by means of reinforcement learning, you will make your system learn from the user's feedback. The system will provide a rating based on the input features (it may be just a random rating during the first stages, since you will not have any prior information), and then the user will tell the system how well it predicted such rating. Based on the difference between the suggested and the actual user's ratings, the reinforcement learning algorithm will refine the recommendation system's model in order to provide more accurate ratings in the future.
Sutton's book on reinforcement learning (http://incompleteideas.net/book/the-book-2nd.html) is a good introduction to the reinforcement learning field.
-
$\begingroup$ Thanks for the help. This is some kind of online online learning as I expected, but I am really not clear about the implementation part. Could you throw in some hints for the same. Say I have a model and I have 5 parameters, and corresponding 5 weights, for example the model be f = (0.1*a + 0.8*b + 0.4*c + 0.2*d + 0.5*e) and I use this to recommend initially. Now how do I update the model using the implicit feedback? $\endgroup$– BhaskarCommented Jun 12, 2015 at 12:17
-
$\begingroup$ If you are planning to apply online learning to update the weights, then you should take a look to the Stochastic Gradient Descent entry in Wikipedia. It includes a very simple example, similar to the one in your comment. $\endgroup$ Commented Jun 12, 2015 at 15:49