I'm working on a recommendation engine for a simple application. The user is shown a photo which has a set of keywords; he or she can either like or dislike the current photo, and after 10 photos or so, the system should start providing recommendations.
My current plan is to maintain a term-frequency collection of all keywords corresponding to a like action. The cosine similarity will then be computed for each unseen image, and the top 10 results will be shown to the user as the next photos to like/dislike.
Are there more established techniques for this kind of thing?