Skip to content

Latest commit

 

History

History
103 lines (94 loc) · 5.23 KB

CHANGES.md

File metadata and controls

103 lines (94 loc) · 5.23 KB

The Changes of the LibRec Library

Remarks: If you'd like to make contributes to LibRec, please contact me without any hesitations.

Todo list

  • LLORMA, CoFiSet, Ensemble models

librec-v1.4 (under development)

  • New recommenders added
    • CPTF
  • Dependent package happy.coding.utils.*.jar merged into package librec.util to be self-inclusive
  • LibRec data structure
    • SparseTensor: sparse tensor structure
  • LibRec configurations
    • option --measures-only removed field output.setup
    • options --to-clipboard, --to-file added to field output.setup
    • options --as-tensor, -headline added to field ratings.setup
    • option -b added to recommender GPLSA

librec-v1.3

  • New recommenders added
    • WBPR, UserCluster, ItemCluster, LDA, URP, BHfree, BUCM, GPLSA, LDCC, LRMF, AoBPR
    • External (used to evaluate the performance of rating predictions generated by extenal recomemnders)
    • New interface GraphicRecommender is added for probabilistic graphic models
    • Recommender RegSVD renamed to PMF, while old PMF is removed.
  • Demos are added to the folder demo
    • Class Demo added to the package librec.main
    • Datasets and configurations added to sub-folders
  • LibRec commands & configuration
    • Configuration entries in librec.conf improved and reformatted
    • Item recommendation results can be outputed
    • For iterative models, early-stop criterion can be specified by --early-stop RMSE (Prec@5, Loss, etc)
  • Class improvements
    • Java annotation Configuration is added to annotate general configuration of recommender interfaces
    • Java annotation AddConfiguration is added to annotate additional configuration of specific algorithms
    • Sparse Matrix
      • It will always keep both CCS and CRS structures for simpicity
      • New static method reshape added to remove zero entries and reshape dimensions
      • New method matString added to print in matrix-like format, useful for debug purpose
    • A few utility functions are added to DenseMatrix, DenseVector
    • New measures added for rating prediction
      • rMAE and rRMSE measure the MAE and RMSE after rounding prediction to the closest rating levels.
      • MPE measures the percentage of predictions which differ from the actual rating values
      • Perplexity is added for some probabilistic graphic models
      • ASYMM is deprecated and removed
    • LineConfiger is added to encapsulate the line of parameter with options
    • some bugs fixed
  • Datasets
    • The columns of dataset to use can be specified by -columns
    • More dataset split approaches are added, including time-based ones

librec-v1.2

  • Cache employed
    • rowCache(), columnCache(), rowColumnsCache(), columnRowsCache() methods added to SparseMatrix
    • employing cache technique can greatly improve the speed of recommendation
    • new config item "guava.cache.spec" used to specify cache configuration
  • Support more configurations
    • Rating predictions can be outputed now (is.prediction.out), thanks to disc5's comment.
    • Data conversion from real-valued ratings to binary ones (val.binary.threshold)
    • A number of command line arguments:
      • -c configFile: set alternative configuration files, java -jar librec.jar -c yourConfigFile.conf;
      • -v/--version: print out version information
      • --dataset-spec: print out dataset specifications
  • New recommendation methods implemented:
    • SLIM, FISM, SBPR, GBPR, TrustSVD, timeSVD++
  • Interface for context-aware recommender systems added
    • Context, UserContext, ItemContext, RatingContext -- Data Class
    • ContextRecommender -- Generic Interface
  • Others
    • Codes refactored & improved
      • SortMap/SortList performance improved, dependent library updated
      • Rename BRPMF to BPR
      • Utility methods (e.g., data standardization) added to data structure
    • bugs fixed
      • critical bug: set isCCSUsed = true (see SparseMatrix, copyCCS() method)
      • thanks to the comments of albe91, Victoria Lin

librec-v1.1

  • New recommendation methods implemented:
    • WRMF, AR, PD, RankALS, SoRec, SoReg, RSTE
  • Support a number of testing views of the testing set:
    • all: the ratings of all users are used.
    • cold-start: the ratings of cold-start users who rated less than 5 items (in the training set) are used.
  • Support two new validation methods:
    • Given N: For each user, N ratings will be preserved as training set, while the rest are used as test set.
    • Given ratio: Similarly as Given N, a ratio of users' ratings will be used for training and others for testing.
    • val.ratio: Its meaning is changed to the ratio of data for training, rather than the ratio of data for testing.
  • Data Structure:
    • DiagMatrix: diagonal matrix added
    • DataConvertor: is added to convert data files from one format to our supporting formats.
    • A number of enhancement functions are added to matrix, vector class
  • Package Refactor:
    • Package librec.core is split into two packages:
      • librec.rating: algorithms for rating predictions; supporting rating-based item ranking.
      • librec.ranking: algorithms for item ranking.
  • Others
    • Code improved
    • Some bugs fixed

librec-v1.0

  • A set of recommendations have been implemented.