This is the official pytorch implementation of AutoDebias, an automatic debiasing method for recommendation.

Overview

AutoDebias

This is the official pytorch implementation of AutoDebias, a debiasing method for recommendation system. AutoDebias is proposed in the paper:

AutoDebias: Learning to Debias for Recommendation

by Jiawei Chen, Hande Dong, Yang Qiu, Xiangnan He, Xin Xin, Liang Chen, Guli Lin and Keping Yang

Published at SIGIR 2021.

Introduction

AutoDebias is an automatic debiasing method for recommendation system based on meta learning, exploiting a small amout of uniform data to learn de-biasing parameters and using these parameters to guide the learning of the recommendation model.

Environment Requirement

The code runs well under python 3.8.5. The required packages are as follows:

  • pytorch == 1.4.0
  • numpy == 1.19.1
  • scipy == 1.5.2
  • pandas == 1.1.3
  • cppimport == 20.8.4.2

Datasets

We use two public datasets (Yahoo!R3 and Coat) and a synthetic dataset (Simulation).

  • user.txt: biased data collected by normal policy of recommendation platform. For Yahoo!R3 and Coat, each line is user ID, item ID, rating of the user to the item. For Simulation, each line is user ID, item ID, position of the item, binary rating of the user to the item.
  • random.txt: unbiased data collected by stochastic policy where items are assigned to users randomly. Each line in the file is user ID, item ID, rating of the user to the item.

Run the Code

Explicit feedback

  • For dataset Yahoo!R3:
python train_explicit.py --dataset yahooR3
  • For dataset Coat:
python train_explicit.py --dataset coat

Implicit feedback

  • For dataset Yahoo!R3:
python train_implicit.py --dataset yahooR3
  • For dataset Coat:
python train_implicit.py --dataset coat

Feedback on list recommendation

  • For dataset Simulation:
python train_list.py --dataset simulation

Contact

Please contact [email protected] or [email protected] if you have any questions about the code and paper.

You might also like...
Official PyTorch implementation for Generic Attention-model Explainability for Interpreting Bi-Modal and Encoder-Decoder Transformers, a novel method to visualize any Transformer-based network. Including examples for DETR, VQA.
Official PyTorch implementation for Generic Attention-model Explainability for Interpreting Bi-Modal and Encoder-Decoder Transformers, a novel method to visualize any Transformer-based network. Including examples for DETR, VQA.

PyTorch Implementation of Generic Attention-model Explainability for Interpreting Bi-Modal and Encoder-Decoder Transformers 1 Using Colab Please notic

This is the official Pytorch-version code of FlatGCN (Flattened Graph Convolutional Networks for Recommendation).

FlatGCN This is the official Pytorch-version code of FlatGCN (Flattened Graph Convolutional Networks for Recommendation, submitted to ICASSP2022). Req

PyTorch implementation of the paper: "Preference-Adaptive Meta-Learning for Cold-Start Recommendation", IJCAI, 2021.

PAML PyTorch implementation of the paper: "Preference-Adaptive Meta-Learning for Cold-Start Recommendation", IJCAI, 2021. (Continuously updating ) Int

Official implementation of the method ContIG, for self-supervised learning from medical imaging with genomics

ContIG: Self-supervised Multimodal Contrastive Learning for Medical Imaging with Genetics This is the code implementation of the paper "ContIG: Self-s

Official public repository of paper
Official public repository of paper "Intention Adaptive Graph Neural Network for Category-Aware Session-Based Recommendation"

Intention Adaptive Graph Neural Network (IAGNN) This is the official repository of paper Intention Adaptive Graph Neural Network for Category-Aware Se

Official repository for "Exploiting Session Information in BERT-based Session-aware Sequential Recommendation", SIGIR 2022 short.

Session-aware BERT4Rec Official repository for "Exploiting Session Information in BERT-based Session-aware Sequential Recommendation", SIGIR 2022 shor

PyTorch Lightning implementation of Automatic Speech Recognition

lasr Lightening Automatic Speech Recognition An MIT License ASR research library, built on PyTorch-Lightning, for developing end-to-end ASR models. In

PyTorch implementation of
PyTorch implementation of "ContextNet: Improving Convolutional Neural Networks for Automatic Speech Recognition with Global Context" (INTERSPEECH 2020)

ContextNet ContextNet has CNN-RNN-transducer architecture and features a fully convolutional encoder that incorporates global context information into

PyTorch implementation of the Deep SLDA method from our CVPRW-2020 paper
PyTorch implementation of the Deep SLDA method from our CVPRW-2020 paper "Lifelong Machine Learning with Deep Streaming Linear Discriminant Analysis"

Lifelong Machine Learning with Deep Streaming Linear Discriminant Analysis This is a PyTorch implementation of the Deep Streaming Linear Discriminant

Comments
  • Update ex.cpp

    Update ex.cpp

    According to the official description of cppimport, this line is essential: "the comment at top is essential to opt in to cppimport. Don't forget this! "

    If you do not add it, it will raise this error:

    "ModuleNotFoundError: No module named 'utils.ex'"

    opened by chongminggao 0
  • ModuleNotFoundError: No module named 'utils.ex'

    ModuleNotFoundError: No module named 'utils.ex'

    Hi. Thank you for sharing the code.

    I download your code and directly run it. But it shows: ModuleNotFoundError: No module named 'utils.ex'

    If I delete import utils.ex as ex and add exp= cppimport.imp_from_filepath('utils/ex.cpp'), it still shows the following error: #include <forward_list> ^~~~~~~~~~~~~~ 1 error generated. error: command 'gcc' failed with exit status 1

    Can you help me how to run your code if possible. Thank you very much!

    opened by DongXiang-CV 0
  • High Performance of Biased Methods

    High Performance of Biased Methods

    Hello, I am very happy to see the release of Autodebias.

    When I seek to reproduce the MF_biased and MF_combine approaches, they exhibits much better performance than the IPS/DR/CausE approaches. The MF_combine approach, in particular, reaches an AUC of 0.735-0.737, which is competitive to AutoDebias.

    I'm very curious as to why the IPS/DR/CausE approach would fail in this implementation, and why the biased/combine approaches would perform better than debiased approaches. This issue is important to me because this strange result makes me question the validity of the fundamental causal approaches (IPS/DR) in practice.

    Thanks!

    opened by XPBooster 1
Owner
Dong Hande
Dong Hande
Mind the Trade-off: Debiasing NLU Models without Degrading the In-distribution Performance

Models for natural language understanding (NLU) tasks often rely on the idiosyncratic biases of the dataset, which make them brittle against test cases outside the training distribution.

Ubiquitous Knowledge Processing Lab 22 Jan 2, 2023
(SIGIR2020) “Asymmetric Tri-training for Debiasing Missing-Not-At-Random Explicit Feedback’’

Asymmetric Tri-training for Debiasing Missing-Not-At-Random Explicit Feedback About This repository accompanies the real-world experiments conducted i

yuta-saito 19 Dec 1, 2022
Towards Debiasing NLU Models from Unknown Biases

Towards Debiasing NLU Models from Unknown Biases Abstract: NLU models often exploit biased features to achieve high dataset-specific performance witho

Ubiquitous Knowledge Processing Lab 22 Jun 14, 2022
This repository contains the code for "Self-Diagnosis and Self-Debiasing: A Proposal for Reducing Corpus-Based Bias in NLP".

Self-Diagnosis and Self-Debiasing This repository contains the source code for Self-Diagnosis and Self-Debiasing: A Proposal for Reducing Corpus-Based

Timo Schick 62 Dec 12, 2022
SpecAugmentPyTorch - A Pytorch (support batch and channel) implementation of GoogleBrain's SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition

SpecAugment An implementation of SpecAugment for Pytorch How to use Install pytorch, version>=1.9.0 (new feature (torch.Tensor.take_along_dim) is used

IMLHF 3 Oct 11, 2022
Recommendationsystem - Movie-recommendation - matrixfactorization colloborative filtering recommendation system user

recommendationsystem matrixfactorization colloborative filtering recommendation

kunal jagdish madavi 1 Jan 1, 2022
[SIGIR22] Official PyTorch implementation for "CORE: Simple and Effective Session-based Recommendation within Consistent Representation Space".

CORE This is the official PyTorch implementation for the paper: Yupeng Hou, Binbin Hu, Zhiqiang Zhang, Wayne Xin Zhao. CORE: Simple and Effective Sess

RUCAIBox 26 Dec 19, 2022
Automatic self-diagnosis program (python required)Automatic self-diagnosis program (python required)

auto-self-checker 자동으로 자가진단 해주는 프로그램(python 필요) 중요 이 프로그램이 실행될때에는 절대로 마우스포인터를 움직이거나 키보드를 건드리면 안된다(화면인식, 마우스포인터로 직접 클릭) 사용법 프로그램을 구동할 폴더 내의 cmd창에서 pip

null 1 Dec 30, 2021