Skip to content

Releases: fabioiuri/DRecPy

v0.2.2

16 Mar 20:55
Compare
Choose a tag to compare

Improvements

  • Expand user path (~) on DB dataset
  • Change null interaction pair generator to sample uniformly. This changes the way null interaction pairs are sampled so that in-dataset null pairs (pairs with lower interaction value than the threshold) and out-of-dataset null pairs are sampled uniformly.

Bugfixes

  • Fix select_random_generator returning non-int internal ids, that was producing issues with data sampling

Others

v0.2.1

24 Sep 18:52
Compare
Choose a tag to compare

Improvements

  • Added MAE regression metric
  • Add optional ignore_low_predictions_threshold parameter to the recommendation evaluation process, so that items with model predictions bellow this threshold are ignored
  • Add Caser sequential recommender (Tang, Jiaxi, and Ke Wang. "Personalized top-n sequential recommendation via convolutional sequence embedding." Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining. 2018.)

Bugfixes

  • Fix matrix split to evaluate the number of min user interactions for all users
  • Fix potential issue with list sampler not using the provided column to sample negative interaction ids

Others

  • Change recommend() method to not filter out item recommendations bellow the model interaction threshold by default

v0.2.0 Alpha Release

02 Sep 01:07
Compare
Choose a tag to compare

Improvements

  • Added list-sampler with negative_ratio support, sequence sorting and group records by multiple columns
  • Added support for early stopping rules, with the first built-in rule being the MaxValidationRule
  • Slightly improve MemoryInteractionDataset performance by removing unneeded type casts and simplifying record conversion
  • Improve recommender training workflow, by abstracting gradient computation, weight updates and improve separation of concerns through specific functions that should focus on each subtask (new methods: _sample_batch(), _predict_batch(), _compute_batch_loss(), _compute_reg_loss())
  • Improve recommender logging: optional console (defaults to on) and file (defaults to off) logger, with error, warning and info logs
  • Allow passing custom parameters to InteractionDataset instances, when instantiating them through the integrated datasets submodule
  • Automatically compute regularization for recommenders that use tf.keras.Model or tf.keras.Layer trainable variables with any regularization parameter set
  • Change how metrics are passed to evaluation procedures, to improve readability and extensibility. Now instead of receiving tuples with functions and extra params, it receives callable instances of those metrics:
    • From: metrics={'HR': (hit_ratio, {}), 'NDCG': (ndcg, {})}, 'FScore': (f_score, {'beta': 1})
    • To: metrics=[HitRatio(), NDCG(), FScore(beta=1)]

Bugfixes

  • Fix bug on integrated datasets get_test_dataset that could end up generating test datasets (via leave_k_out) instead of using the offered test dataset
  • Fix temporary DatabaseInteractionDataset files not being deleted at times

Others

  • Add error handling to the ranking evaluation process
  • Add examples to showcase extending existing recommenders

v0.1.0

05 Jul 18:50
Compare
Choose a tag to compare

Improvements

  • Point Sampler now returns triples instead of tuples, now containing the interaction value of the sampled user id and item id as well
  • Update recommender workflow to process multiple points in each _do_batch call
  • Added regularization to DMF model
  • Epoch callbacks are also computed before the first epoch

Bugfixes

  • Fix NCE-DMF loss function

Others

  • Changed recommender default interaction threshold to 0.001 to avoid assuming interaction values of 0 as positive
  • Rename InteractionDataset copy method to copy

v0.0.3

02 Jun 23:15
Compare
Choose a tag to compare

Improvements

  • Last_timestamps option for leave_k_out split
  • Create matrix_split variant
  • Improve leave_k_out split performance by using raw identifiers instead of assigning and using internal identifiers
  • Move split methods location from DRecPy.Evaluation to DRecPy.Evaluation.Splits
  • Move evaluation processes location from DRecPy.Evaluation to DRecPy.Evaluation.Processes
  • Improve select_one() performance for in-memory interaction dataset instances
  • Add CDAE support for custom losses and support for sampling data points based on neg_ratio parameter
  • Improve CDAE ranking speed
  • Add epoch callback results to the training progress bar
  • Improve evaluation processes multithreading performance to be 15% faster in the average case
  • Improve defaults of evaluation processes
  • Add recommendation_evaluation process
  • Add novelty argument for the ranking and recommendation evaluation processes

Bugfixes

  • Fix predictive evaluation bug when evaluating the performance on the training set
  • Fix ranking evaluation n_neg_interactions bounds check
  • Fix ranking evaluation repeated generated items on the negative interactions list

Others

  • Improve existing examples
  • Add consistency evaluation scripts
  • Improve README.md and relevant documentation
  • Complete tests for the dataset module, evaluation module, and recommender baselines
  • Add integration with Travis CI

v0.0.2

18 Mar 00:50
Compare
Choose a tag to compare
  • Bug fixes where deterministic evaluations where not always possible (even with a seed parameter passed through)
  • Correct requirement versions for critical dependencies
  • Bug fixes due to the interaction vectors returned by InteractionDataset instances being of type integer, which caused tensorflow conversion incompatibilities
  • Fixed crashes hapenning because DatabaseInteractionDataset instanced would leave open cursors
  • Fix wrong retrieved MemoryInteractionDataset column value types
  • Improve DatabaseInteractionDataset cleanup method to drop unused tables