Skip to content

Commit 6a83a9e

Browse files
authored
Release/0.6.0 (#129)
1 parent 361ba33 commit 6a83a9e

File tree

8 files changed

+55
-12
lines changed

8 files changed

+55
-12
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,5 @@ jobs:
7171
run: make test
7272

7373
- name: Upload coverage
74+
if: matrix.python-version == '3.9'
7475
uses: codecov/codecov-action@v3

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88

9-
## [0.6.0] - Unreleased
9+
## [0.6.0] - 13.05.2024
1010

1111
### Added
1212
- Warm users/items support in `Dataset` ([#77](https://github.com/MobileTeleSystems/RecTools/pull/77))

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ The table below lists recommender models that are available in RecTools.
114114
- For getting recommendations `filter_viewed` and `items_to_recommend` options are available
115115
- For item-to-item recommendations use `recommend_to_items` method
116116
- For feeding user/item features to model just specify dataframes when constructing `Dataset`. [Check our tutorial](examples/4_dataset_with_features.ipynb)
117-
117+
- For warm / cold inference just provide all required ids in `users` or `target_items` parameters of `recommend` or `recommend_to_items` methods and make sure you have features in the dataset for warm users/items. **Nothing else is needed, everything works out of the box.** Check [documentation](https://rectools.readthedocs.io/en/stable/features.html#models) to see which models support this scenarios.
118118

119119
## Contribution
120120
[Contributing guide](CONTRIBUTING.rst)

docs/source/features.rst

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,27 @@ Item Features
4747
This table stores data about items.
4848
It might include category, price or any other features which may prove to be important for a recommender model.
4949

50+
Hot, warm, cold
51+
~~~~~~~~~~~~~~~
52+
There is a concept of a temperature we're using for users and items:
53+
54+
* **hot** - the ones that are present in interactions used for training (they may or may not have features);
55+
* **warm** - the ones that are not in interactions, but have some features;
56+
* **cold** - the ones we don't know anything about (they are not in interactions and don't have any features).
57+
58+
All the models are able to generate recommendations for the *hot* users (items).
59+
But as for warm and cold ones, there may be all possible combinations (neither of them, only cold, only warm, both).
60+
The important thing is that if model is able to recommend for cold users (items), but not for warm ones (see table below),
61+
it is still able to recommend for warm ones, but they will be considered as cold (no personalisation should be expected).
62+
5063
All of the above concepts are combined in `Dataset`.
5164
`Dataset` is used to build recommendation models and infer recommendations.
5265

5366
.. include:: dataset.rst
5467

68+
.. include:: models.rst
69+
70+
What are you waiting for? Train and apply them!
5571

5672
Recommendation Table
5773
~~~~~~~~~~~~~~~~~~~~
@@ -60,11 +76,6 @@ It has a fixed set of columns, though they are different for i2i and u2i recomme
6076
Recommendation table can also be used for calculation of metrics.
6177

6278

63-
.. include:: models.rst
64-
65-
What are you waiting for? Train and apply them!
66-
67-
6879
.. include:: metrics.rst
6980

7081
Oops, yeah, can't forget about them.

docs/source/models.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,30 @@ Models
88
Details of RecTools Models
99
--------------------------
1010

11+
12+
+-----------------------------+-------------------+---------------------+---------------------+
13+
| Model | Supports features | Recommends for warm | Recommends for cold |
14+
+=============================+===================+=====================+=====================+
15+
| DSSMModel | Yes | Yes | No |
16+
+-----------------------------+-------------------+---------------------+---------------------+
17+
| EASEModel | No | No | No |
18+
+-----------------------------+-------------------+---------------------+---------------------+
19+
| ImplicitALSWrapperModel | Yes | No | No |
20+
+-----------------------------+-------------------+---------------------+---------------------+
21+
| ImplicitItemKNNWrapperModel | No | No | No |
22+
+-----------------------------+-------------------+---------------------+---------------------+
23+
| LightFMWrapperModel | Yes | Yes | Yes |
24+
+-----------------------------+-------------------+---------------------+---------------------+
25+
| PopularModel | No | No | Yes |
26+
+-----------------------------+-------------------+---------------------+---------------------+
27+
| PopularInCategoryModel | No | No | Yes |
28+
+-----------------------------+-------------------+---------------------+---------------------+
29+
| PureSVDModel | No | No | No |
30+
+-----------------------------+-------------------+---------------------+---------------------+
31+
| RandomModel | No | No | Yes |
32+
+-----------------------------+-------------------+---------------------+---------------------+
33+
34+
1135
See the API documentation for further details on Models:
1236

1337
.. currentmodule:: rectools

examples/1_simple_example.ipynb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,13 @@
733733
"user_recos.sort_values(\"rank\")"
734734
]
735735
},
736+
{
737+
"cell_type": "markdown",
738+
"metadata": {},
739+
"source": [
740+
"Here is the simple example, we only used ratings to train the model and we only prepared recommendations for users who have rated movies before. But some models allow you to use explicit features, e.g. user age or item genre. And some models allow you to generate recommendations for users that have not rated any movies before. See [documentation](https://rectools.readthedocs.io/en/stable/features.html#models) for the details."
741+
]
742+
},
736743
{
737744
"cell_type": "code",
738745
"execution_count": null,
@@ -743,9 +750,9 @@
743750
],
744751
"metadata": {
745752
"kernelspec": {
746-
"display_name": "rect",
753+
"display_name": "Python 3 (ipykernel)",
747754
"language": "python",
748-
"name": "rect"
755+
"name": "python3"
749756
},
750757
"language_info": {
751758
"codemirror_mode": {
@@ -757,7 +764,7 @@
757764
"name": "python",
758765
"nbconvert_exporter": "python",
759766
"pygments_lexer": "ipython3",
760-
"version": "3.7.10"
767+
"version": "3.9.13"
761768
},
762769
"toc": {
763770
"base_numbering": 1,

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "RecTools"
3-
version = "0.5.0"
3+
version = "0.6.0"
44
description = "An easy-to-use Python library for building recommendation systems"
55
license = "Apache-2.0"
66
authors = [

rectools/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION = "0.5.0"
1+
VERSION = "0.6.0"

0 commit comments

Comments
 (0)