Recommend item from set based on features Forgive what might be a basic question.  I'm just experimenting with ML / AL and I have a small problem set and I'd like to see if it can be solved with ML / AI.  Basically, given a set of objects with multiple features, I'd like to create a process for recommending one automatically to a user.  

I'm thinking that some sort of clustering algorithm may be the best approach. However, one main challenge I'm trying to wrap my head around is that I don't know in advance how many distinct clusters will evolve... There may be scenarios where we Feature X is really important, but other scenarios where a user will say Feature Y is important.  

Secondly, what is my input set?  For each training sample, I will have 1 selected object, and N-1 unselected objects.  But I don't want to "train" that the unselected objects are "bad" because they could be selected in a future training example.  

Finally, I don't have a large training set already, so I would like to use feedback (user input, "This was a bad choice" or "Use this object instead.") from the process to further refine the algorithm.  Is this feasible?

Are there any established patterns for this sort of process?  Thanks in advance.
This problem is usually approached with "Singular Value Decomposition". 

Search also for the "Netflix Challenge".