Greetings, I'm looking for advice for a project I've got. I'm building a streaming service where users can build their own channels by combining description tags (like Music, Comedy, Depeche Mode, Mickey Mouse, etc), that the service uses to automatically build a playlists).
What I understand is that I could model that like a search problem, where the sum of the tags is a term vector, or where a search query is done for each tag separately (1 vector per tag). I've got a prototype of this using just MySql, but a solution using Solr could be more robust. The issue here is that I pretend to mix this search problem with a CF recommendation one: create playlists using user tastes in addition to the description tags. What this means is that content that the person would like would have a higher score, which means a greater chance of being picked for a playlist for that person. I've been different approaches for combining these two problems (search and recommendation): 1. Using a CF Recommender (like an item-based one) for retrieving a list of what the user would like and then filter it using the description tags (w/Solr or Lucene). The problems of this approach are that I would need to generate huge Top Item lists, also that in most cases (especially when cold-starting or choosing) the Top Lists would have no elements of a requested tag. 2. Using a search engine to retrieve the files matching the description tags and then get a recommendation score for them using a CF Recommender. With this approach I could add other criteria for scoring such as recency, global popularity, etc. I don't know what could go wrong with this. 3. From what I've read on this list, in a Lucene index it is possible to add similar items as terms of an item. This would be enough for making playlists based on a search query like: "tag:Comedy AND (similar:Seinfeld OR similar:Cheers)" where Comedy is a description tag, and Seinfeld with Cheers are all the items the user liked. The problem of this approach is that similarity would need to be based on a user independent criteria (no CF) like content similarity or global vote co-ocurrence. I would like to know if one of the approaches I mentioned would work, or if there is a better thought out one. I like the 2nd approach myself, but I have concerns that it wouldn't scale. My ideal solution would be to do something like I mentioned in 3, but I don't know if CF could be possible with that approach or if not using CF at all would be a good thing overall. I know that my question could be more related to Lucene or Solr than Mahout, but as I'm more familiar with CF, cause I've been following Mahout CF since it was known as Taste, I would appreciate your advice from a recommendations perspective. Thanks, André
