Skip to content

Evaluating accuracy and diversity of graph vertex ranking recommendation algorithms

License

Notifications You must be signed in to change notification settings

faberchri/MyMediaGraph

 
 

Repository files navigation

MyMediaGraph

A fork of the MyMediaLite framework for recommendation algorithm evaluation with mainly two additions:

  • A library of graph vertex ranking recommendation algorithms (my-media-graph-extension)
  • Various diversity metrics (my-media-lite-4j/src/main/java/org/mymedialite/eval/measures/diversity)

How to use

  • Build the project with maven. Don't run the tests, takes too long.

    mvn clean package -DskipTests
  • Run a recommender on the included MovieLens dataset, here the Most Popular-algo (in the project root dir):

    java -jar my-media-main/target/my-media-main-1.0-SNAPSHOT-jar-with-dependencies.jar MostPopular data/ml_medium_7-3_split train.csv test.csv attributes.csv
  • Run a recommender (BmANP3) with a particular parameter set:

    java -jar my-media-main/target/my-media-main-1.0-SNAPSHOT-jar-with-dependencies.jar "BmANP3{numWalks=100000,beta=0.9}" data/ml_medium_7-3_split train.csv test.csv attributes.csv
  • Get the recommendation quality statistics from data/ml_medium_7-3_split/METRICS.csv.

A list of the included recommenders together with the corresponding identifiers is available at MyMediaGraph/my-media-main/src/main/java/ch/uzh/ifi/ddis/mymedialite/main/ItemRecommenderEvaluate.java. To test additional recommenders, expand the list with classes implementing the ItemRecommender interface.

Publication

Our RecSys'15 paper presenting accuracy and diversity performance of vertex ranking recommendation algorithms: Blockbusters and Wallflowers: Accurate, Diverse, and Scalable Recommendations with Random Walks

Mapping of recommendation algorithm names:

Name in Paper Command line Identifier
Perfect Perfect
Random Random
MostPop MostPopular
I-kNN ItemKNN
WI-kNN WeightedItemKNN
BPRMF BPRMF2
#3-Paths IB-3Path
\mathrm{L^{+}} Laplacian
\mathrm{P^{3}} P3Matrix
\mathrm{\hat{P}^{3}} P3RandomWalkCached
\mathrm{P^{3}_{\alpha}} P3AlphaMatrix
\mathrm{\hat{P}^{3}_{\alpha}} BmP3Alpha
\mathrm{P^{5}} P5Matrix
\mathrm{RP^{3}_{\beta}} P3PopAbsNorm
\mathrm{R\hat{P}^{3}_{\beta}} BmANP3
\mathrm{H_{\lambda}} HybridS
\mathrm{\hat{H}_{\lambda}} BmHybridS

Related projects

MyMediaLite project

Java port of MyMediaLite

About

Evaluating accuracy and diversity of graph vertex ranking recommendation algorithms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 83.7%
  • Groovy 16.2%
  • Shell 0.1%