Skip to content

Releases: swapUniba/ClayRS

ClayRS 0.5.1 - ClayRS can see!

04 Jul 17:27
fa77370
Compare
Choose a tag to compare

ClayRS can see

Release which includes image support for the Content Analyzer and RecSys modules!

  • This release was co-developed with @m-elio

NOTE: The minimum Python version has been bumped up from Python 3.7 to Python 3.8 in order to use @functools.cached_property decorator


Added

Content Analyzer

  • Implemented visual preprocessors thanks to torchvision library
    • Also torch augmenters were implemented
    • All of them can be checked in the docs
  • Implemented postprocessors techniques which also work for textual techniques
    • Visual bag of words (with count and tfidf weighting schema)
    • Scipy vector quantization
    • Dimensionality reduction techniques from sklearn (PCA, Gaussian random projections, Feature agglomeration)
  • Images path to process specified in the raw source could be an absolute_path, relative_path, online url!
  • Implemented several content techniques which extract embedding features from images
    • Pre-trained models from timm
    • Pre-trained caffe models using opencv.dnn
    • Hog descriptor, Canny edge detector, LBP, SIFT from skimage
    • Color histogram
    • Custom filter convolution
  • Implemented FromNPY technique, which imports features from a numpy serialized matrix

RecSys

  • Implemented VBPR technique following the corresponding paper
    • The implementation has been tested thoroughly by experimental comparison with cornac (experiment repository can be found here)

Changed

Content Analyzer

  • Changed Ratings class to use numpy arrays and integer mappings instead of relying on python dictionaries and strings
  • Adapted FieldContentProductionTechnique to consider the distinction between textual and visual techniques
  • Added possibility to serialize contents produced with multi threading

RecSys

  • Vectorized computation of CentroidVector algorithm
  • Adapted content based algorithm abstraction to make room for neural algorithms
  • Fixed missing Bootstrap partitioning technique from online documentation
  • AllItemsMethodology by default now considers as items catalog the union between train and test set
  • HoldOutPartitioningTechnique can now accept an integer value representing the n° of instances to hold rather than a percentage
  • Changed log of users skipped in partitioning/algorithm fitting: a single print with total number of skipped users is fired instead of a single one for each skipped user

EvalModel

  • Changed NDCG implementation to allow the choice of the gain weights (linear or exponential) and the definition of a discount function
  • Improved visualization of statistical tests results

ClayRS 0.4.1

12 Jun 09:57
e9b06cf
Compare
Choose a tag to compare

Added

  • ClayRS can be now installed to Python 3.10 thanks to @m-elio!
    • Support is still guaranteed for Python 3.7 - 3.8 - 3.9

ClayRS 0.4.0

30 Nov 17:21
Compare
Choose a tag to compare

Added

  • Implemented different weighting schemas for tuning the computation of the personalized page rank!
  • Added the possibility to perform a complete experiment for a specific list of users

Changed

  • Fixed missing __repr__ method to MAP metric
  • Changed default number of cpus from 0 (all available) to 1 (single core) for the Experiment class in order to overcome, for naïve users, serialization limitation of python multiprocessing mechanism

ClayRS 0.3.1

22 Nov 11:43
299d58e
Compare
Choose a tag to compare

Changed

  • The query endpoint to DBPedia ontology has been changed from the one provided by factforge to the virtuoso one
  • SPARQL query definition has been changed in order to improve response times
    • From ~20 min to ~6min to retrieve properties for all 1682 movies of the movielens 100k dataset
  • Changed default number of cpus from 0 (all available) to 1 (single core) for the recsys phase in order to overcome, for naïve users, serialization limitation of python multiprocessing mechanism

ClayRS 0.3.0

18 Oct 23:11
4c0281f
Compare
Choose a tag to compare

Added

  • Implemented ContentBasedExperiment and GraphBasedExperiment classes that lets you easily compare different algorithms with a simple interface!

Changed

  • Fixed missing __str__ method to some Content Based algorithms
  • Fixed error when property should be loaded in the graph but some items are missing from local
  • Set default n_recs parameter for the rank methods of each RecSys to 10
  • Fixed NoneType error for fit(), fit_rank(), fit_predict() methods of Content Based when the algorithm can't be fit for a user
  • Fixed Exception never retrieved log of asyncio that appeared in only specific environments
  • Re-organized internal module structure and imports for avoiding and preventing circular imports

ClayRS 0.2.1

20 Sep 14:17
0630f5a
Compare
Choose a tag to compare

Changed

  • This is a hotfix for duplicate logging which may happen in specific scenarios (e.g. Google Colab)

ClayRS 0.2.0

20 Sep 11:32
6d22d63
Compare
Choose a tag to compare

Added

  • Implemented multiprocessing via distex library for the recsys phase!
    • num_cpus parameter added to each eligible method (fit(), fit_rank(), rank(), predict(), etc.)
  • Implemented MAP, MAP@K metrics for the evaluation module
  • Implemented Bootstrap partitioning as an additional partitioning technique

Changed

  • All algorithms are now able to handle duplicate interactions in the dataset
    • In case data augmentation has been performed, bootstrap partitioning has been used, etc.

ClayRS 0.1.3

27 Jul 08:51
Compare
Choose a tag to compare

Changed

  • Changed behaviour of all metrics which need to compute popularity
    • Now there's no need to re-instantiate them in case multiple runs must be executed

Initial release

01 Jul 18:55
Compare
Choose a tag to compare

First release of ClayRS!