Releases: swapUniba/ClayRS
Releases · swapUniba/ClayRS
ClayRS 0.5.1 - 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
- Also
- 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
- Pre-trained models from
- Implemented
FromNPY
technique, which imports features from a numpy serialized matrix
RecSys
- Implemented VBPR technique following the corresponding paper
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 setHoldOutPartitioningTechnique
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 thegain
weights (linear
orexponential
) and the definition of adiscount
function - Improved visualization of statistical tests results
ClayRS 0.4.1
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
Added
- Implemented different weighting schemas for tuning the computation of the personalized page rank!
- Check documentation
- Added the possibility to perform a complete experiment for a specific list of users
Changed
- Fixed missing
__repr__
method toMAP
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
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
Added
- Implemented
ContentBasedExperiment
andGraphBasedExperiment
classes that lets you easily compare different algorithms with a simple interface!- Check documentation
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 forfit()
,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
Changed
- This is a hotfix for duplicate logging which may happen in specific scenarios (e.g. Google Colab)
ClayRS 0.2.0
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
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
First release of ClayRS!