diff --git a/docs/_build/html/.doctrees/datasets.doctree b/docs/_build/html/.doctrees/datasets.doctree
new file mode 100644
index 000000000..8d8983e86
Binary files /dev/null and b/docs/_build/html/.doctrees/datasets.doctree differ
diff --git a/docs/_build/html/.doctrees/environment.pickle b/docs/_build/html/.doctrees/environment.pickle
new file mode 100644
index 000000000..64f46236b
Binary files /dev/null and b/docs/_build/html/.doctrees/environment.pickle differ
diff --git a/docs/_build/html/.doctrees/evaluation.doctree b/docs/_build/html/.doctrees/evaluation.doctree
new file mode 100644
index 000000000..26b5501f8
Binary files /dev/null and b/docs/_build/html/.doctrees/evaluation.doctree differ
diff --git a/docs/_build/html/.doctrees/intro.doctree b/docs/_build/html/.doctrees/intro.doctree
new file mode 100644
index 000000000..1dbcfdbc7
Binary files /dev/null and b/docs/_build/html/.doctrees/intro.doctree differ
diff --git a/docs/_build/html/.doctrees/models.doctree b/docs/_build/html/.doctrees/models.doctree
new file mode 100644
index 000000000..8dc9485b4
Binary files /dev/null and b/docs/_build/html/.doctrees/models.doctree differ
diff --git a/docs/_build/html/.doctrees/tuning.doctree b/docs/_build/html/.doctrees/tuning.doctree
new file mode 100644
index 000000000..42587bc9b
Binary files /dev/null and b/docs/_build/html/.doctrees/tuning.doctree differ
diff --git a/docs/_build/html/.doctrees/utils.doctree b/docs/_build/html/.doctrees/utils.doctree
new file mode 100644
index 000000000..591573f10
Binary files /dev/null and b/docs/_build/html/.doctrees/utils.doctree differ
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 000000000..ff6bac1fb
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,34 @@
+###############################################################################
+# Auto-generated by `jupyter-book config`
+# If you wish to continue using _config.yml, make edits to that file and
+# re-generate this one.
+###############################################################################
+author = 'Recommenders contributors'
+comments_config = {'hypothesis': False, 'utterances': False}
+copyright = '2022'
+exclude_patterns = ['**.ipynb_checkpoints', '.DS_Store', 'Thumbs.db', '_build']
+extensions = ['sphinx_togglebutton', 'sphinx_copybutton', 'myst_nb', 'jupyter_book', 'sphinx_thebe', 'sphinx_comments', 'sphinx_external_toc', 'sphinx.ext.intersphinx', 'sphinx_design', 'sphinx_book_theme', 'sphinx_inline_tabs', 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.ifconfig', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', 'sphinx_jupyterbook_latex']
+external_toc_exclude_missing = False
+external_toc_path = '_toc.yml'
+html_baseurl = 'https://recommenders-team.github.io/recommenders/'
+html_favicon = 'https://raw.githubusercontent.com/recommenders-team/artwork/main/icon/recommenders_color_icon.svg'
+html_logo = 'https://raw.githubusercontent.com/recommenders-team/artwork/main/color/recommenders_color.svg'
+html_sourcelink_suffix = ''
+html_theme = 'sphinx_book_theme'
+html_theme_options = {'search_bar_text': 'Search this book...', 'launch_buttons': {'notebook_interface': 'classic', 'binderhub_url': '', 'jupyterhub_url': '', 'thebe': False, 'colab_url': ''}, 'path_to_docs': '/docs', 'repository_url': 'https://github.com/recommenders-team/recommenders', 'repository_branch': 'main', 'extra_footer': '', 'home_page_in_toc': False, 'announcement': '', 'analytics': {'google_analytics_id': ''}, 'use_repository_button': True, 'use_edit_page_button': False, 'use_issues_button': True}
+html_title = 'Recommenders documentation'
+latex_engine = 'pdflatex'
+myst_enable_extensions = ['colon_fence', 'dollarmath', 'linkify', 'substitution', 'tasklist']
+myst_url_schemes = ['mailto', 'http', 'https']
+nb_execution_allow_errors = False
+nb_execution_cache_path = ''
+nb_execution_excludepatterns = []
+nb_execution_in_temp = False
+nb_execution_mode = 'off'
+nb_execution_timeout = 30
+nb_output_stderr = 'show'
+numfig = True
+pygments_style = 'sphinx'
+suppress_warnings = ['myst.domains']
+use_jupyterbook_latex = True
+use_multitoc_numbering = True
diff --git a/recommenders.egg-info/PKG-INFO b/recommenders.egg-info/PKG-INFO
index 7256b675c..2d036d07f 100644
--- a/recommenders.egg-info/PKG-INFO
+++ b/recommenders.egg-info/PKG-INFO
@@ -62,17 +62,17 @@ Requires-Dist: pytest>=3.6.4; extra == "dev"
Requires-Dist: pytest-cov>=2.12.1; extra == "dev"
Requires-Dist: pytest-mock>=3.6.1; extra == "dev"
Provides-Extra: all
-Requires-Dist: tf-slim>=1.1.0; extra == "all"
Requires-Dist: pytest-mock>=3.6.1; extra == "all"
-Requires-Dist: nvidia-ml-py3>=7.352.0; extra == "all"
-Requires-Dist: fastai<2,>=1.0.46; extra == "all"
+Requires-Dist: black<21,>=18.6b4; extra == "all"
Requires-Dist: torch>=1.13.1; extra == "all"
-Requires-Dist: pyarrow<7.0.0,>=0.12.1; extra == "all"
+Requires-Dist: tf-slim>=1.1.0; extra == "all"
Requires-Dist: pytest>=3.6.4; extra == "all"
-Requires-Dist: tensorflow==2.8.4; extra == "all"
+Requires-Dist: fastai<2,>=1.0.46; extra == "all"
Requires-Dist: pyspark<3.3.0,>=2.4.5; extra == "all"
-Requires-Dist: black<21,>=18.6b4; extra == "all"
Requires-Dist: pytest-cov>=2.12.1; extra == "all"
+Requires-Dist: tensorflow==2.8.4; extra == "all"
+Requires-Dist: nvidia-ml-py3>=7.352.0; extra == "all"
+Requires-Dist: pyarrow<7.0.0,>=0.12.1; extra == "all"
Provides-Extra: experimental
Requires-Dist: xlearn==0.40a1; extra == "experimental"
Requires-Dist: vowpalwabbit<9,>=8.9.0; extra == "experimental"
diff --git a/recommenders.egg-info/requires.txt b/recommenders.egg-info/requires.txt
index 378d43127..fcf65e6df 100644
--- a/recommenders.egg-info/requires.txt
+++ b/recommenders.egg-info/requires.txt
@@ -29,17 +29,17 @@ cornac<1.15.2,>=1.1.2
cornac<2,>=1.15.2
[all]
-tf-slim>=1.1.0
pytest-mock>=3.6.1
-nvidia-ml-py3>=7.352.0
-fastai<2,>=1.0.46
+black<21,>=18.6b4
torch>=1.13.1
-pyarrow<7.0.0,>=0.12.1
+tf-slim>=1.1.0
pytest>=3.6.4
-tensorflow==2.8.4
+fastai<2,>=1.0.46
pyspark<3.3.0,>=2.4.5
-black<21,>=18.6b4
pytest-cov>=2.12.1
+tensorflow==2.8.4
+nvidia-ml-py3>=7.352.0
+pyarrow<7.0.0,>=0.12.1
[dev]
black<21,>=18.6b4