All Projects → chenchongthu → Ehcf

chenchongthu / Ehcf

This is our implementation of EHCF: Efficient Heterogeneous Collaborative Filtering (AAAI 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ehcf

Deeplearning.ai Natural Language Processing Specialization
This repository contains my full work and notes on Coursera's NLP Specialization (Natural Language Processing) taught by the instructor Younes Bensouda Mourri and Łukasz Kaiser offered by deeplearning.ai
Stars: ✭ 473 (+575.71%)
Mutual labels:  neural-networks, neural
Artificio
Deep Learning Computer Vision Algorithms for Real-World Use
Stars: ✭ 326 (+365.71%)
Mutual labels:  neural-networks, recommender-system
Go Perceptron Go
A single / multi layer / recurrent neural network written in Golang.
Stars: ✭ 159 (+127.14%)
Mutual labels:  neural-networks, neural
Genann
simple neural network library in ANSI C
Stars: ✭ 1,088 (+1454.29%)
Mutual labels:  neural-networks, neural
Graph 2d cnn
Code and data for the paper 'Classifying Graphs as Images with Convolutional Neural Networks' (new title: 'Graph Classification with 2D Convolutional Neural Networks')
Stars: ✭ 67 (-4.29%)
Mutual labels:  neural-networks
Fft Conv Pytorch
Implementation of 1D, 2D, and 3D FFT convolutions in PyTorch. Much faster than direct convolutions for large kernel sizes.
Stars: ✭ 65 (-7.14%)
Mutual labels:  neural-networks
Neural prophet
NeuralProphet - A simple forecasting model based on Neural Networks in PyTorch
Stars: ✭ 1,125 (+1507.14%)
Mutual labels:  neural
Ai Platform
An open-source platform for automating tasks using machine learning models
Stars: ✭ 61 (-12.86%)
Mutual labels:  neural-networks
Get started with deep learning for text with allennlp
Getting started with AllenNLP and PyTorch by training a tweet classifier
Stars: ✭ 69 (-1.43%)
Mutual labels:  neural-networks
Torchgan
Research Framework for easy and efficient training of GANs based on Pytorch
Stars: ✭ 1,156 (+1551.43%)
Mutual labels:  neural-networks
Entity embeddings categorical
Discover relevant information about categorical data with entity embeddings using Neural Networks (powered by Keras)
Stars: ✭ 67 (-4.29%)
Mutual labels:  neural-networks
Speedrun
Research code need not be ugly.
Stars: ✭ 65 (-7.14%)
Mutual labels:  neural-networks
Gorse
An open source recommender system service written in Go
Stars: ✭ 1,148 (+1540%)
Mutual labels:  recommender-system
Tensorrec
A TensorFlow recommendation algorithm and framework in Python.
Stars: ✭ 1,130 (+1514.29%)
Mutual labels:  recommender-system
Ai Residency List
List of AI Residency & Research programs, Ph.D Fellowships, Research Internships
Stars: ✭ 69 (-1.43%)
Mutual labels:  neural-networks
Aorun
Deep Learning over PyTorch
Stars: ✭ 61 (-12.86%)
Mutual labels:  neural-networks
Deep Review
A collaboratively written review paper on deep learning, genomics, and precision medicine
Stars: ✭ 1,141 (+1530%)
Mutual labels:  neural-networks
Deeplearning4j
All DeepLearning4j projects go here.
Stars: ✭ 68 (-2.86%)
Mutual labels:  neural-networks
Outlace.github.io
Machine learning and data science blog.
Stars: ✭ 65 (-7.14%)
Mutual labels:  neural-networks
Torch Models
Stars: ✭ 65 (-7.14%)
Mutual labels:  neural

EHCF

This is our implementation of the paper:

Chong Chen, Min Zhang, Weizhi Ma, Yongfeng Zhang, Yiqun Liu and Shaoping Ma. 2020. Efficient Heterogeneous Collaborative Filtering without Negative Sampling for Recommendation. In AAAI'20.

Please cite our AAAI'20 paper if you use our codes. Thanks!

@inproceedings{chen2020efficient,
  title={Efficient Heterogeneous Collaborative Filtering without Negative Sampling for Recommendation},
  author={Chen, Chong and Zhang, Min and Ma, Weizhi and Zhang, Yongfeng and Liu, Yiqun and Ma, Shaoping},
  booktitle={Thirty-Fourth AAAI Conference on Artificial Intelligence},
  year={2020},
}

Author: Chong Chen ([email protected])

Environments

  • python
  • Tensorflow
  • numpy
  • pandas

Parameter settings

The parameters for Beibei datasets is:

self.weight = [0.1, 0.1, 0.1]

self.coefficient = [0.05, 0.8, 0.15]

The parameters for Taobao datasets is:

self.weight = [0.01, 0.01, 0.01]

self.coefficient = [1.0/6, 4.0/6, 1.0/6]

Corrections

We would like to correct one typo error of the paper. In table 2, the [email protected] and [email protected] results of our EHCF on Beibei dataset should be 0.1551 and 0.0831, which are much better than baseline methods.

Example to run the codes

Train and evaluate the model:

python EHCF.py

Suggestions for parameters

Three important parameters need to be tuned for different datasets, which are:

self.weight = [0.1, 0.1, 0.1]
self.coefficient = [0.05, 0.8, 0.15]
deep.dropout_keep_prob: 0.5

Specifically, we suggest to tune "self.weight" among [0.001,0.005,0.01,0.02,0.05,0.1,0.2,0.5]. It's also acceptable to simply make the three weights the same, e.g., self.weight = [0.1, 0.1, 0.1] or self.weight = [0.01, 0.01, 0.01]. Generally, this parameter is related to the sparsity of dataset. If the dataset is more sparse, then a small value of negative_weight may lead to a better performance.

The coefficient parameter determines the importance of different tasks in multi-task learning. In our datasets, there are three loss coefficients λ 1 , λ 2 , and λ 3 . As λ 1 + λ 2 + λ 3 = 1, when λ 1 and λ 2 are given, the value of λ 3 is determined. We suggest to tune the three coefficients in [0, 1/6, 2/6, 3/6, 4/6, 5/6, 1].

The performance of our EHCF is much better than existing multi-behavior models like CMF, NMTR, and MBGCN (SIGIR2020). You can also contact us if you can not tune the parameters properly.

Statement

For some reasons, we do not recognize MBGCN (Multi-behavior Recommendation with Graph Convolution Networks, SIGIR 2020) as a state-of-the-art method for multi-behavior recommendation. We also call on researchers to not only compared with MBGCN in future research, so as to avoid getting an inaccurate conclusion.

First Update Date: May 27, 2020

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].