A library of Recommender Systems

Overview

A library of Recommender Systems

This repository provides a summary of our research on Recommender Systems. It includes our code base on different recommendation topics, a comprehensive reading list and a set of bechmark data sets.

Code Base

Currently, we are interested in sequential recommendation, feature-based recommendation and social recommendation.

Sequential Recommedation

Since users' interests are naturally dynamic, modeling users' sequential behaviors can learn contextual representations of users' current interests and therefore provide more accurate recommendations. In this project, we include some state-of-the-art sequential recommenders that empoly advanced sequence modeling techniques, such as Markov Chains (MCs), Recurrent Neural Networks (RNNs), Temporal Convolutional Neural Networks (TCN) and Self-attentive Neural Networks (Transformer).

Feature-based Recommendation

A general method for recommendation is to predict the click probabilities given users' profiles and items' features, which is known as CTR prediction. For CTR prediction, a core task is to learn (high-order) feature interactions because feature combinations are usually powerful indicators for prediction. However, enumerating all the possible high-order features will exponentially increase the dimension of data, leading to a more serious problem of model overfitting. In this work, we propose to learn low-dimentional representations of combinatorial features with self-attention mechanism, by which feature interactions are automatically implemented. Quantitative results show that our model have good prediction performance as well as satisfactory efficiency.

Social recommendation

Online social communities are an essential part of today's online experience. What we do or what we choose may be explicitly or implicitly influenced by our friends. In this project, we study the social influences in session-based recommendations, which simultaneously model users' dynamic interests and context-dependent social influences. First, we model users' dynamic interests with recurrent neural networks. In order to model context-dependent social influences, we propose to employ attention-based graph convolutional neural networks to differentiate friends' dynamic infuences in different behavior sessions.

Reading List

We maintain a reading list of RecSys papers to keep track of up-to-date research.

Data List

We provide a summary of existing benchmark data sets for evaluating recommendation methods.

New Data

We contribute a new large-scale dataset, which is collected from a popular movie/music/book review website Douban (www.douban.com). The data set could be useful for researches on sequential recommendation, social recommendation and multi-domain recommendation. See details here.

Publications:

Comments
  • UniformNeighborSampler in SocialRec

    UniformNeighborSampler in SocialRec

    While I was looking through the code, I noticed that in neigh_samplers.py, users can sample themselves as the second-order neighbors because when we sample 10 neighbors of the first-order neighbor, the user is also included.

            adj = self.adj_info[node, :]
            neighbors = []
            for neighbor in adj:
                if first_or_second == 'second':
                    if self.visible_time[neighbor] <= timeid:
                        neighbors.append(neighbor)    
    

    I was wondering is this intended or a logic flaw. Thank you!

    opened by lamnvs 1
  •  Extracting Attention And Visualize it

    Extracting Attention And Visualize it

    weight

    After running the model, I am wondering if weights of attention and their visualization can be done as the attached file displays from the original paper.

    There are many examples for extracting and visualization for seq2seq but couldn't really find one for feature explanation.

    Is there any ideas/code that can be used for attention visualization of meaningful features? ?

    opened by joohyelim 1
  • Only One class present issue

    Only One class present issue

    I am working on my own data -purchase history of financial production. So I have data as who, with features, purchased which products, with features and when. However, I have found that the metric of the model is AUC -- and I, as expected, get the following error

    ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.

    Since all my Ys are 1s -as I only have who purchased (clicked) which and there is no 0 value ( who didn't purchase which). As other CTR prediction models also use AUC and log loss, I assume that there must be a way to use AUC for such a dataset.

    Do you have any idea how to solve this issue? That would be really helpful!

    opened by joohyelim 1
  • Converting to top-n recommendation

    Converting to top-n recommendation

    I am very impressed about the usefulness of AutoInt to my personal project. I'm wondering if there is any handy way of converting this AutoInt to top-n recommendaiton? Would it be possible?

    opened by joohyelim 1
  • doubts about the data processing of Criteo in AutoInt

    doubts about the data processing of Criteo in AutoInt

    @Songweiping ,Hello,I am very interested in your work(AutoInt) at CIKM'19,but I had some doubts when I reproduced the experiments of the paper. As we know, Criteo has its own bench mark, including two csv files(train.csv & test.csv).But the preprocess of AutoInt splits the file(train_samples.txt) to get the train data,valid data and test data. I'm wondering how to transform the original Dataset(train.csv & test.csv) into a Dataset that the data_process code can handle. Could you post your code for converting original csv files(train.csv & test.csv) into the whole txt file(the data used in your paper, and Format is similar to the sample file train_example.txt)?

    opened by yfreedomliTHU 1
  • Question about ReLU in Multi-Head Attention

    Question about ReLU in Multi-Head Attention

    In multi-head attention, there is a relu after queries, keys, and values. Is this a correct implementation? The paper did not mention the relu in Eq. 5. Besides, it seems that the relu will make the attention matrix always positive.

    # Linear projections
    Q = tf.layers.dense(queries, num_units, activation=tf.nn.relu)
    K = tf.layers.dense(keys, num_units, activation=tf.nn.relu)
    V = tf.layers.dense(values, num_units, activation=tf.nn.relu)```
    opened by ArtanisCV 0
  • SocialRec中的samples

    SocialRec中的samples

    在SocialRec中,samples1和samples2的默认值分别为10和5。如果我没理解错的话samples1代表第二层邻居的数量,samples2代表第一层邻居的数量,这样的话第二层邻居的数量就比第一层邻居的数量还多,与经验不符。而且您的论文中也写到“The neighborhood sample sizes are empirically set to 10 and 15 in the first and second convolutional layers”,请问是少写了一个1吗?

    opened by SSOTTY 1
  • Session segmentation on Delicious datasets

    Session segmentation on Delicious datasets

    Hi, I'm trying to test the result in the paper Session-Based Social Recommendation on the Delicious datasets . From the paper and datasets, I understand that you consider each session is a sequence of tags a user has assigned to a bookmark and all the tagging actions for that bookmark will have the same timestamp according to the datasets. So my question is that when you give the time_id for each session (as in the preprocess_DoubanMovie.py file), will two sessions have the same id only if their timestamps have exactly same date and time ? E.g: A session with timestamp '01/06/2020 2:30:00 pm' and another session with timestamp '01/06/2020 2:30:01 pm' will have different time_id.

    opened by lamnvs 1
Owner
MilaGraph
Research group led by Prof. Jian Tang at Mila-Quebec AI Institute (https://mila.quebec/) focusing on graph representation learning and graph neural networks.
MilaGraph
Graph Neural Networks for Recommender Systems

This repository contains code to train and test GNN models for recommendation, mainly using the Deep Graph Library (DGL).

null 217 Jan 4, 2023
Collaborative variational bandwidth auto-encoder (VBAE) for recommender systems.

Collaborative Variational Bandwidth Auto-encoder The codes are associated with the following paper: Collaborative Variational Bandwidth Auto-encoder f

Yaochen Zhu 14 Dec 11, 2022
QRec: A Python Framework for quick implementation of recommender systems (TensorFlow Based)

QRec is a Python framework for recommender systems (Supported by Python 3.7.4 and Tensorflow 1.14+) in which a number of influential and newly state-of-the-art recommendation models are implemented. QRec has a lightweight architecture and provides user-friendly interfaces. It can facilitate model implementation and evaluation.

Yu 1.4k Dec 27, 2022
Plex-recommender - Get movie recommendations based on your current PleX library

plex-recommender Description: Get movie/tv recommendations based on your current

null 5 Jul 19, 2022
Deep recommender models using PyTorch.

Spotlight uses PyTorch to build both deep and shallow recommender models. By providing both a slew of building blocks for loss functions (various poin

Maciej Kula 2.8k Dec 29, 2022
Recommender System Papers

Included Conferences: SIGIR 2020, SIGKDD 2020, RecSys 2020, CIKM 2020, AAAI 2021, WSDM 2021, WWW 2021

RUCAIBox 704 Jan 6, 2023
RecSim NG: Toward Principled Uncertainty Modeling for Recommender Ecosystems

RecSim NG, a probabilistic platform for multi-agent recommender systems simulation. RecSimNG is a scalable, modular, differentiable simulator implemented in Edward2 and TensorFlow. It offers: a powerful, general probabilistic programming language for agent-behavior specification;

Google Research 110 Dec 16, 2022
E-Commerce recommender demo with real-time data and a graph database

?? E-Commerce recommender demo ?? This is a simple stream setup that uses Memgraph to ingest real-time data from a simulated online store. Data is str

g-despot 3 Feb 23, 2022
Movie Recommender System

Movie-Recommender-System Movie-Recommender-System is a web application using which a user can select his/her watched movie from list and system will r

null 1 Jul 14, 2022
Mutual Fund Recommender System. Tailor for fund transactions.

Explainable Mutual Fund Recommendation Data Please see 'DATA_DESCRIPTION.md' for mode detail. Recommender System Methods Baseline Collabarative Fiilte

JHJu 2 May 19, 2022
Movies/TV Recommender

recommender Movies/TV Recommender. Recommends Movies, TV Shows, Actors, Directors, Writers. Setup Create file API_KEY and paste your TMDB API key in i

Aviem Zur 3 Apr 22, 2022
6002project-rl - An implemention of offline RL on recommender system

An implemention of offline RL on recommender system @author: misajie @update: 20

Tzay Lee 3 May 24, 2022
Persine is an automated tool to study and reverse-engineer algorithmic recommendation systems.

Persine, the Persona Engine Persine is an automated tool to study and reverse-engineer algorithmic recommendation systems. It has a simple interface a

Jonathan Soma 87 Nov 29, 2022
fastFM: A Library for Factorization Machines

Citing fastFM The library fastFM is an academic project. The time and resources spent developing fastFM are therefore justified by the number of citat

null 1k Dec 24, 2022
A Library for Field-aware Factorization Machines

Table of Contents ================= - What is LIBFFM - Overfitting and Early Stopping - Installation - Data Format - Command Line Usage - Examples -

null 1.6k Dec 5, 2022
A library for preparing, training, and evaluating scalable deep learning hybrid recommender systems using PyTorch.

collie_recs Collie is a library for preparing, training, and evaluating implicit deep learning hybrid recommender systems, named after the Border Coll

ShopRunner 97 Jan 3, 2023
NVIDIA Merlin is an open source library designed to accelerate recommender systems on NVIDIA’s GPUs.

NVIDIA Merlin is an open source library providing end-to-end GPU-accelerated recommender systems, from feature engineering and preprocessing to training deep learning models and running inference in production.

null 420 Jan 4, 2023
NVIDIA Merlin is an open source library providing end-to-end GPU-accelerated recommender systems, from feature engineering and preprocessing to training deep learning models and running inference in production.

NVIDIA Merlin NVIDIA Merlin is an open source library designed to accelerate recommender systems on NVIDIA’s GPUs. It enables data scientists, machine

null 419 Jan 3, 2023
A library for preparing, training, and evaluating scalable deep learning hybrid recommender systems using PyTorch.

collie Collie is a library for preparing, training, and evaluating implicit deep learning hybrid recommender systems, named after the Border Collie do

ShopRunner 96 Dec 29, 2022
A Comparative Framework for Multimodal Recommender Systems

Cornac Cornac is a comparative framework for multimodal recommender systems. It focuses on making it convenient to work with models leveraging auxilia

Preferred.AI 671 Jan 3, 2023