user3156386
user3156386

Reputation: 157

Cypher query - Neo4j - Find people with same prefrences

I have the following idea but I don't know wether it's possible so I hope somebody can tell me if it is possible or not.

Let's say I have a graph network containing 1000 people and everybody has preferences regarding books. The preferences aren't hard coded in the system but are free to be defined by the users.

I want to group people based on their preferences towards books and I want the system to define the groups every night. People can be part of different groups and a group needs to have at least 5 people.

Thanks!

Upvotes: 2

Views: 137

Answers (1)

FrobberOfBits
FrobberOfBits

Reputation: 18002

You should read this article on using Neo4J to build a recommender system using collaborative filtering. It will give you some concrete examples to think about.

In your case, you need to be more specific about what a "preference" is. This could be modeled a lot of different ways, depending on what you're after. For example, you could have users "like" books, then books could be grouped by genre, keywords, and so on. It then becomes a set intersection problem: people with the same preferences are those who "like" books linked to similar keywords, genres, authors, etc.

You'll probably want to read up on music taste prediction that last.fm does. Seems to me your problem is highly similar, but with books instead of music.

There's not one right way to do this, and it's a complicated problem. I would recommend starting with a really clear statement of how you want to the site to appear to users, and lots of examples of what good outcomes of this algorithm would be. What you're describing isn't really any sort of pluggable software component you can just drop in.

Upvotes: 3

Related Questions