neo4j-examples / asset_portal

Asset management portal written with Ruby on Rails and Neo4j
13 stars 7 forks source link

Recommendation engine should use asset ratings #8

Open cheerfulstoic opened 9 years ago

asianfilm commented 9 years ago

Recommendation engines are very domain specific to my mind. (I like the hierarchical approach that GraphAware take in their Neo4j plugin.) Is an asset portal a specific enough domain that one can include a recommendation engine with basic defaults? It's an interesting question. For sure, the categories that are built-into Asset Portal help in that people who read science fiction books may like to read more science fiction books. And user ratings can be another data point. You'd want to track which users are accessing assets (whether they rate them or not) so that you can recommend books by people with similar reading histories (or Amazon-style "people went on to look at the following books"). That suggests tracking every interaction, ideally in a (degrading) time series...

In summary, I think that an asset portal is domain specific enough that you can have a recommendation engine built in to Asset Portal. But I would want to noderank the users/groups who own and create assets also. After all, you don't just recommend novels based on their rating, their category and what people read before/after. You may also want to recommend novels by the same author/publisher/translator, even if that is captured somewhat by the reading histories of the asset among different users. One would have to indicate which properties/relationships in common matter for recommendations, and how to weigh them. For example, for a book the author may have a greater weight than the publisher/translator. But I think a lot of the hard work of building a recommendation engine could be abstracted for sure.

cheerfulstoic commented 9 years ago

Yep, pretty much all of that. I'd like to have a reasonable default for a recommendation engine based off of generic things like common author/viewers/ratings/etc... but it would also be great if this was configurable or simply replaceable with another query (or just that part of the query). I also like the GA framework and think it's worth copying as applicable