From the webpage:
Reco4j is an open source project that aims at developing a recommendation framework based on graph data sources. We choose graph databases for several reasons. They are NoSQL databases that are “schemaless”. This means that it is possible to extend the basic data structure with intermediate information, i.e. similarity value between item and so on. Moreover, since every information are expressed with some properties, nodes and relations, the recommendation process can be customized to work on every graph.
Indeed Reco4j can be used on every graph where “user” and “item” are represented by nodes and the preferences are modelled as relationship between them.
The current implementation leverages on Neo4j as first example of graph database integrated in our framework.
The main features of Reco4j are:
- Performance, leveraging on the graph database and storing information in it for future retrieving it produce fast recommendations also after a system restart;
- Use of Network structure, integrating the simple recommendation algorithms with (social) network analisys;
- General purpose, it can be used with preexisting databases;
- Customizability, editing the properties file the recommender framework can be adapted to the current graph structure and use several types of the recommendation algorithms;
- Ready for Cloud, leveraging on the graph database cloud features the recommendation process can be splitted on several nodes.
The current version has two different projects:
- reco4j-core: this project contains the base structure, the interface and the recommendation engine;
- reco4j-neo4j: this project contains the neo4j implementation of the framework.
The “similarity value” comment caught my eye.
How much similarity between two or more items do you need, to have the same item, for some particular purpose?
I first saw this in a tweet by Peter Neubauer.