I am planning to implement product recommendation in my eCommerce site using neo4j graph database .
Recommendation will be based on User action on a product. Actions will be
- Product View ,
- Rating ,
- Read book
- Download book ,
- Purchase ,
- Add to card ,
- Review ,
- Share
- Some more action applicable to our site.
The graph structure will be
User (Node )
- ID
- Timestamp
Product ( Node )
- Name
- Timestamp
Action ( Relationship between User and Product node )
- Weight ( Given based on the action , eg : purchase : 10 , view : 1 etc)
- Timestamp (Time at which action occurred )
Later I will add social relationship between the User nodes .
I found different recommendation methods and algorithms from my initial analysis from internet . Following are the list which is categorized based on my understanding . Some of term might be incorrect or redundant or wrong categorization ( Correct me if I am wrong ).
- Item-Item similarity
- k-nearest neighbors (k-NN) algorithm
- Pearson correlation coefficient.
- User-User similarity
- Matrix Factorization
- Singular Value Decomposition (SVD)
- Restricted Boltzmann Machines (RBM)
- Non-Negative Matrix Factorization ( NNMF )
- Latent factor analysis
- Co-visitation analysis
- Latent topic analysis
- Cluster model
- Association rule
- Bi-gram matrix association rule
- Ensembles
My problem is to identify which all methods are applicable in my eCommerce site and can be solved using neo4j graph database ( Based on the above model ).