How to generate ratings without training data?
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.