What is a good recommendation?
In real world, if I walk into a restaurant and order a veggie pizza without mushroom and I do this every time, if the waiter brings that next time without my instruction, I would be definitely appreciative that the waiter is sensitive to my need.
On the other hand, if the waiter suggests a veggie pizza with Indian Paneer toppings, I may be interested because it is vegetarian and pizza and something that extends my liking into a new topping that I have not tried.
Now if the waiter suggests an entirely new type of dish like a Masala Dosa which is again Vegetarian, but rice based, pan cake type, stuffed with potatoes cooked and fried in Indian spices, that extends my interest further into something I have not tasted before, but one that does not violate my fundamental liking of a vegetarian dish even though it is not pizza.
In these three scenarios, the recommendation works as they are natural extensions of one another even though the Masala Dosa is way different in taste and looks from a Pizza. Here the recommendation worked because the recommended product is kind of related in terms of some of the core attributes (like Veggie) of the original interest showed by the user even though many other attributes are entirely new. Now, if the user likes Masala Dosa, it is very easy to move onto something like a Aloo Paratha which is wheat based toasted bread like stuffed with sauteed potatoes.
So the idea of recommendation should not be to keep feeding similar things. But instead should help the user explore into worlds that were unknown to him before based on the interests showed by him. This can eventually lead the user to even try out things that he was averse to. For example, the above food recommendation can lead an user to try out an Omlette which as a Vegan he may not consider. But the fact that the user did not explore that path even though it was in his recommendation helps to rank the exploration of that path lower. On the other hand if the user decided to check that out, a whole new set of options open up to be presented to him. The recommendations in this case hand-hold the user from familiar terrain to unexplored areas.
The recommendation should help learning. Those who are conservative now may eventually get bored with what they are fed with like in food and may like to try out new options. The recommendation should suggest things that helps a conservative who sticks to same topics to explore new ones and expand his world view. That’s exactly the point of learning. A measure of good recommendation for a person is the number of topics a person explored over a time period.