Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Staging to main: LF announcement and GRU update #2006

Merged
merged 38 commits into from
Oct 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
42e6982
Replacing references GRU4Rec to GRU
miguelgfierro Sep 27, 2023
b5f0f3b
Replacing references GRU4Rec to GRU
miguelgfierro Sep 27, 2023
4ba66e8
Replacing references GRU4Rec in config files
miguelgfierro Sep 27, 2023
efd001a
Update references
miguelgfierro Sep 28, 2023
48ebb26
Merge pull request #2000 from recommenders-team/gru_fix
miguelgfierro Sep 28, 2023
3bb666c
datasets with Sgit st!
miguelgfierro Sep 19, 2023
dbbbb8b
Added init to fix import error
miguelgfierro Sep 20, 2023
92eb223
update repo url
miguelgfierro Sep 20, 2023
3738f03
ignore xlearn
miguelgfierro Sep 20, 2023
0ce2c79
Add init files
miguelgfierro Sep 20, 2023
011153d
update info from MS
miguelgfierro Sep 20, 2023
d1fb6dc
update info from MS
miguelgfierro Sep 20, 2023
dc7f6a7
:memo:
miguelgfierro Sep 20, 2023
457312d
Minor syntax in README
anargyri Sep 20, 2023
ff4634d
:memo:
miguelgfierro Sep 22, 2023
ccb7b75
Announcement LF
miguelgfierro Sep 28, 2023
bfe470c
Update email
miguelgfierro Sep 29, 2023
b7ee345
Update README.md
anargyri Sep 28, 2023
33104a1
Merge branch 'staging' into lf
miguelgfierro Sep 29, 2023
4a76743
security
miguelgfierro Sep 29, 2023
dc459bb
license and contribution notice
miguelgfierro Sep 29, 2023
6de8ce9
update author link
miguelgfierro Sep 29, 2023
63b352b
Add new code of conduct from LF
miguelgfierro Sep 29, 2023
89cbebb
Merge branch 'lf' of github.com:recommenders-team/recommenders into lf
miguelgfierro Sep 29, 2023
3643818
Merge pull request #2003 from recommenders-team/lf
miguelgfierro Sep 29, 2023
2576273
Delete conda.md
miguelgfierro Sep 29, 2023
17516c8
Merge pull request #2007 from recommenders-team/miguelgfierro-patch-1
miguelgfierro Sep 29, 2023
79e61ca
Update readme LF feedback @wutaomsft
miguelgfierro Oct 4, 2023
1b6ca64
Update NEWS.md
miguelgfierro Oct 5, 2023
0a40ee0
Update README.md
miguelgfierro Oct 5, 2023
793ef41
Merge pull request #2008 from recommenders-team/miguel/readme_ms
miguelgfierro Oct 5, 2023
2beb9dd
:memo:
miguelgfierro Oct 6, 2023
2036105
remove unused input
miguelgfierro Oct 6, 2023
512581c
:memo:
miguelgfierro Oct 6, 2023
6a8d770
no need to output the logs twice
miguelgfierro Oct 6, 2023
6af75fd
packages
miguelgfierro Oct 6, 2023
a1a1785
skipping flaky test
miguelgfierro Oct 6, 2023
d3da0fe
Merge pull request #2009 from recommenders-team/miguel/review_azureml…
miguelgfierro Oct 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .github/actions/azureml-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,6 @@ runs:
--testlogs ${{inputs.TEST_LOGS_PATH}} --add_spark_dependencies --testkind ${{inputs.TEST_KIND}}
--conda_pkg_python ${{inputs.PYTHON_VERSION}} --testgroup ${{inputs.TEST_GROUP}}
--disable-warnings --sha "${GITHUB_SHA}"
- name: Print test logs
shell: bash
run: cat ${{inputs.TEST_LOGS_PATH}}
- name: Get exit status
shell: bash
id: exit_status
Expand Down
7 changes: 6 additions & 1 deletion AUTHORS.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

Contributors to Recommenders
============================
Recommenders is developed and maintained by a community of people interested in exploring recommendation algorithms and how best to deploy them in industry settings. The goal is to accelerate the workflow of any individual or organization working on recommender systems. Everyone is encouraged to contribute at any level to add and improve the implemented algorithms, notebooks and utilities.

<p align="center">
<img src="https://contributors-img.web.app/image?repo=microsoft/recommenders" width = 500/>
<img src="https://contributors-img.web.app/image?repo=recommenders-team/recommenders" width = 500/>
</p>

Maintainers (sorted alphabetically)
Expand Down
45 changes: 39 additions & 6 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,42 @@
# Microsoft Open Source Code of Conduct
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
# Recommenders Code of Conduct

Resources:
This code of conduct outlines expectations for participation in the Recommenders open source community, as well as steps for reporting unacceptable behavior. We are committed to providing a welcoming and inspiring community for all. People violating this code of conduct may be banned from the community. Our open source community strives to:

- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
- Contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
* **Be friendly and patient**: Remember you might not be communicating in someone else's primary spoken or programming language, and others may not have your level of understanding.

* **Be welcoming**: Our community welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, color, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.

* **Be respectful**: We are a world-wide community of professionals, and we conduct ourselves professionally. Disagreement is no excuse for poor behavior and poor manners. Disrespectful and unacceptable behavior includes, but is not limited to:
1. Violent threats or language.
1. Discriminatory or derogatory jokes and language.
1. Posting sexually explicit or violent material.
1. Posting, or threatening to post, people's personally identifying information ("doxing").
1. Insults, especially those using discriminatory terms or slurs.
1. Behavior that could be perceived as sexual attention.
1. Advocating for or encouraging any of the above behaviors.

* **Understand disagreements**: Disagreements, both social and technical, are useful learning opportunities. Seek to understand the other viewpoints and resolve differences constructively.

* **Remember that we’re different**. The strength of our community comes from its diversity, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Focus on helping to resolve issues and learning from mistakes.

* This code is not exhaustive or complete. It serves to capture our common understanding of a productive, collaborative environment. We expect the code to be followed in spirit as much as in the letter.

## Reporting Code of Conduct Issues

We encourage all communities to resolve issues on their own whenever possible. This builds a broader and deeper understanding and ultimately a healthier interaction. In the event that an issue cannot be resolved locally, please feel free to report your concerns by contacting [email protected]. In your report please include:

1. Your contact information.
1. Names (real, usernames or pseudonyms) of any individuals involved. If there are additional witnesses, please include them as well.
1. Your account of what occurred, and if you believe the incident is ongoing. If there is a publicly available record (e.g. a mailing list archive or a public chat log), please include a link or attachment.
1. Any additional information that may be helpful.

All reports will be reviewed by a multi-person team and will result in a response that is deemed necessary and appropriate to the circumstances. Where additional perspectives are needed, the team may seek insight from others with relevant expertise or experience. The confidentiality of the person reporting the incident will be kept at all times. Involved parties are never part of the review team.

Anyone asked to stop unacceptable behavior is expected to comply immediately. If an individual engages in unacceptable behavior, the review team may take any action they deem appropriate, including a permanent ban from the community.

*This code of conduct is based on the [template](http://todogroup.org/opencodeofconduct) established by the [TODO Group](http://todogroup.org/) and used by numerous other large communities and the Scope section from the [Contributor Covenant version 1.4](http://contributor-covenant.org/version/1/4/).*
9 changes: 7 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

# Contribution Guidelines

Contributions are welcomed! Here's a few things to know:
Expand Down Expand Up @@ -32,9 +37,9 @@ Once the features included in a [milestone](https://github.com/microsoft/recomme

We strive to maintain high quality code to make the utilities in the repository easy to understand, use, and extend. We also work hard to maintain a friendly and constructive environment. We've found that having clear expectations on the development process and consistent style helps to ensure everyone can contribute and collaborate effectively.

Please review the [coding guidelines](https://github.com/Microsoft/Recommenders/wiki/Coding-Guidelines) wiki page to see more details about the expectations for development approach and style.
Please review the [coding guidelines](https://github.com/recommenders-team/recommenders/wiki/Coding-Guidelines) wiki page to see more details about the expectations for development approach and style.

Apart from the official [Code of Conduct](CODE_OF_CONDUCT.md) developed by Microsoft, in the Recommenders team we adopt the following behaviors, to ensure a great working environment:
Apart from the official [Code of Conduct](CODE_OF_CONDUCT.md), in Recommenders team we adopt the following behaviors, to ensure a great working environment:

#### Do not point fingers
Let’s be constructive.
Expand Down
5 changes: 5 additions & 0 deletions GLOSSARY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

# Glossary

* **A/B testing**: Methodology to evaluate the performance of a system in production. In the context of Recommendation Systems it is used to measure a machine learning model performance in real-time. It works by randomizing an environment response into two groups A and B, typically half of the traffic goes to the machine learning model output and the other half is left without model. By comparing the metrics from A and B branches, it is possible to evaluate whether it is beneficial the use of the model or not. A test with more than two groups it is named Multi-Variate Test.
Expand Down
11 changes: 11 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

# What's New

## Update October 10, 2023

We are pleased to announce that this repository (formerly known as Microsoft Recommenders, https://github.com/microsoft/recommenders), has joined the [Linux Foundation of AI and Data](https://lfaidata.foundation/) (LF AI & Data)! The new organization, `recommenders-team`, reflects this change.

We hope this move makes it easy for anyone to contribute! Our objective continues to be building an ecosystem and a community to sustain open source innovations and collaborations in recommendation systems.

## Update August 18, 2023

We moved to a new organization! Now to access the repo, instead of going to https://github.com/microsoft/recommenders, you need to go to https://github.com/recommenders-team/recommenders. The old URL will still resolve to the new one, but we recommend you to update your bookmarks.
Expand Down
21 changes: 14 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

# Recommenders

[![Documentation Status](https://readthedocs.org/projects/microsoft-recommenders/badge/?version=latest)](https://microsoft-recommenders.readthedocs.io/en/latest/?badge=latest)

<img src="https://raw.githubusercontent.com/recommenders-team/artwork/main/color/recommenders_color.svg" width="800">

## What's New (August, 2023)

We moved to a new organization! Now to access the repo, instead of going to https://github.com/microsoft/recommenders, you need to go to https://github.com/recommenders-team/recommenders. The old URL will still resolve to the new one, but we recommend that you update your bookmarks.
## What's New (October, 2023)

Starting with release 0.6.0, Recommenders has been available on PyPI and can be installed using pip!
We are pleased to announce that this repository (formerly known as Microsoft Recommenders, https://github.com/microsoft/recommenders), has joined the [Linux Foundation of AI and Data](https://lfaidata.foundation/) (LF AI & Data)! The new organization, `recommenders-team`, reflects this change.

Here you can find the PyPi page: https://pypi.org/project/recommenders/
We hope this move makes it easy for anyone to contribute! Our objective continues to be building an ecosystem and a community to sustain open source innovations and collaborations in recommendation systems.

Here you can find the package documentation: https://microsoft-recommenders.readthedocs.io/en/latest/
Now to access the repo, instead of going to https://github.com/microsoft/recommenders, you need to go to https://github.com/recommenders-team/recommenders. The old URL will still resolve to the new one, but we recommend that you update your bookmarks.

## Introduction

Recommenders objective is to assist researchers, developers and enthusiasts in prototyping, experimenting with and bringing to production a range of classic and state-of-the-art recommendation systems.

Recommenders is a project under the [Linux Foundation of AI and Data](https://lfaidata.foundation/projects/).

This repository contains examples and best practices for building recommendation systems, provided as Jupyter notebooks. The examples detail our learnings on five key tasks:

- [Prepare Data](examples/01_prepare_data): Preparing and loading data for each recommender algorithm.
Expand Down Expand Up @@ -82,7 +89,7 @@ The table below lists the recommender algorithms currently available in the repo
| LightGBM/Gradient Boosting Tree<sup>*</sup> | Content-Based Filtering | Gradient Boosting Tree algorithm for fast training and low memory usage in content-based problems. It works in the CPU/GPU/PySpark environments. | [Quick start in CPU](examples/00_quick_start/lightgbm_tinycriteo.ipynb) / [Deep dive in PySpark](examples/02_model_content_based_filtering/mmlspark_lightgbm_criteo.ipynb) |
| LightGCN | Collaborative Filtering | Deep learning algorithm which simplifies the design of GCN for predicting implicit feedback. It works in the CPU/GPU environment. | [Deep dive](examples/02_model_collaborative_filtering/lightgcn_deep_dive.ipynb) |
| GeoIMC<sup>*</sup> | Hybrid | Matrix completion algorithm that has into account user and item features using Riemannian conjugate gradients optimization and following a geometric approach. It works in the CPU environment. | [Quick start](examples/00_quick_start/geoimc_movielens.ipynb) |
| GRU4Rec | Collaborative Filtering | Sequential-based algorithm that aims to capture both long and short-term user preferences using recurrent neural networks. It works in the CPU/GPU environment. | [Quick start](examples/00_quick_start/sequential_recsys_amazondataset.ipynb) |
| GRU | Collaborative Filtering | Sequential-based algorithm that aims to capture both long and short-term user preferences using recurrent neural networks. It works in the CPU/GPU environment. | [Quick start](examples/00_quick_start/sequential_recsys_amazondataset.ipynb) |
| Multinomial VAE | Collaborative Filtering | Generative model for predicting user/item interactions. It works in the CPU/GPU environment. | [Deep dive](examples/02_model_collaborative_filtering/multi_vae_deep_dive.ipynb) |
| Neural Recommendation with Long- and Short-term User Representations (LSTUR)<sup>*</sup> | Content-Based Filtering | Neural recommendation algorithm for recommending news articles with long- and short-term user interest modeling. It works in the CPU/GPU environment. | [Quick start](examples/00_quick_start/lstur_MIND.ipynb) |
| Neural Recommendation with Attentive Multi-View Learning (NAML)<sup>*</sup> | Content-Based Filtering | Neural recommendation algorithm for recommending news articles with attentive multi-view learning. It works in the CPU/GPU environment. | [Quick start](examples/00_quick_start/naml_MIND.ipynb) |
Expand Down
18 changes: 18 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

# Security Policy

## Reporting a Vulnerability
If you think you have found a security vulnerability, please send a report to [email protected].

We don't currently have a PGP key, unfortunately.

A Recommenders committer will send you a response indicating the next steps in handling your report. After the initial reply to your report, the committer will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.

Important: Please don't disclose the vulnerability before it has been fixed and announced, to protect our users.

## Security announcements
Please subscribe to the [announcements mailing list](https://lists.lfaidata.foundation/g/recommenders-announce), where we post notifications and remediation details for security vulnerabilities.
5 changes: 5 additions & 0 deletions SETUP.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<!--
Copyright (c) Recommenders contributors.
Licensed under the MIT License.
-->

# Setup Guide

The repo, including this guide, is tested on Linux. Where applicable, we document differences in [Windows](#windows-specific-instructions) and [MacOS](#macos-specific-instructions) although
Expand Down
51 changes: 0 additions & 51 deletions conda.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/source/models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ Caser
.. automodule:: recommenders.models.deeprec.models.sequential.caser
:members:

GRU4Rec
GRU
--------------
.. automodule:: recommenders.models.deeprec.models.sequential.gru4rec
.. automodule:: recommenders.models.deeprec.models.sequential.gru
:members:

NextItNet
Expand Down
4 changes: 2 additions & 2 deletions examples/00_quick_start/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ In this directory, notebooks are provided to perform a quick demonstration of di
| [sar_azureml_designer](sar_movieratings_with_azureml_designer.ipynb) | MovieLens | Python CPU | An example of how to implement SAR on [AzureML Designer](https://docs.microsoft.com/en-us/azure/machine-learning/concept-designer). |
| [a2svd](sequential_recsys_amazondataset.ipynb) | Amazon | Python CPU, GPU | Use A2SVD [11] to predict a set of movies the user is going to interact in a short time. |
| [caser](sequential_recsys_amazondataset.ipynb) | Amazon | Python CPU, GPU | Use Caser [12] to predict a set of movies the user is going to interact in a short time. |
| [gru4rec](sequential_recsys_amazondataset.ipynb) | Amazon | Python CPU, GPU | Use GRU4Rec [13] to predict a set of movies the user is going to interact in a short time. |
| [gru](sequential_recsys_amazondataset.ipynb) | Amazon | Python CPU, GPU | Use GRU [13] to predict a set of movies the user is going to interact in a short time. |
| [nextitnet](sequential_recsys_amazondataset.ipynb) | Amazon | Python CPU, GPU | Use NextItNet [14] to predict a set of movies the user is going to interact in a short time. |
| [sli-rec](sequential_recsys_amazondataset.ipynb) | Amazon | Python CPU, GPU | Use SLi-Rec [11] to predict a set of movies the user is going to interact in a short time. |
| [wide-and-deep](wide_deep_movielens.ipynb) | MovieLens | Python CPU, GPU | Utilizing Wide-and-Deep Model (Wide-and-Deep) [5] to predict movie ratings in a Python+GPU (TensorFlow) environment.
Expand All @@ -38,5 +38,5 @@ In this directory, notebooks are provided to perform a quick demonstration of di
[10] _NPA: Neural News Recommendation with Personalized Attention_, Chuhan Wu, Fangzhao Wu, Mingxiao An, Jianqiang Huang, Yongfeng Huang and Xing Xie. KDD 2019, ADS track.<br>
[11] _Adaptive User Modeling with Long and Short-Term Preferences for Personailzed Recommendation_, Zeping Yu, Jianxun Lian, Ahmad Mahmoody, Gongshen Liu and Xing Xie, IJCAI 2019.<br>
[12] _Personalized top-n sequential recommendation via convolutional sequence embedding_, Jiaxi Tang and Ke Wang, ACM WSDM 2018.<br>
[13] _Session-based Recommendations with Recurrent Neural Networks_, Balazs Hidasi, Alexandros Karatzoglou, Linas Baltrunas and Domonkos Tikk, ICLR 2016.<br>
[13] _Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation_, Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and Yoshua Bengio, arXiv preprint arXiv:1406.1078. 2014.<br>
[14] _A Simple Convolutional Generative Network for Next Item Recommendation_, Fajie Yuan, Alexandros Karatzoglou, Ioannis Arapakis, Joemon M. Jose and Xiangnan He, WSDM 2019. <br>
Loading