Building a Recommendation Engine
blog.assembly.com
blog.assembly.com
Relying on users to explicitly mark objects is not the best approach, though. Each user have their own mind about what the best marks/weights would be, hence the input would be inconsistent and the recommendation results would suffer. Not to mention that manual marking is tedious, and as you pointed out - it is hard to apply to old content.
I would suggest using a system that can extract the marks automatically. Couple of years ago I was involved in a project that had such a component (NeuralBrother's Neugs), but there are OS projects that provide similar functionality as well.
I would suggest a mix of automated and manual tagging, use both, show the automated or curate the text shown. It should be easy enough to cluster the tags too, one man's walking simulator is another's 'story game' or similar.
Overall, this is a reasonable starting point for recommending user actions.
When you have more data, you can try using collaborative filtering to estimate user preferences more robustly from sparse data. You could also try optimizing user and entity parameters by maximizing a likelihood function on followed recommendations composed of probabilities regressed from a function of the user and entity Mark vectors.
Another variation that I was considering is to generate 'user clusters'. In Mark Vector Space, divide user vectors into N groups such that the net variance across all clusters is minimized. Then when a user, for which there is sparse data, needs contextual information from other users, I could simply ask how correlated he is to the different clusters. If each cluster's 'center of mass' is a vector, the dot product between a new user and the different cluster vectors could be informative in reconstructing suggestions: the idea being to infer from similar users what a particular user might want.
I was also wondering whether adding a stochastic component to each user-vector would be interesting.
Thanks for the feedback.