All Projects → Leavingseason → Rnn_recsys

Leavingseason / Rnn_recsys

Our implementation of the paper "Embedding-based News Recommendation for Millions of Users"

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rnn recsys

ML2017FALL
Machine Learning (EE 5184) in NTU
Stars: ✭ 66 (-51.11%)
Mutual labels:  rnn, recommender-system
Gru4rec tensorflow
TensorFlow implemenation of GRu4Rec model
Stars: ✭ 192 (+42.22%)
Mutual labels:  rnn, recommender-system
Collaborative Rnn
A TensorFlow implementation of the collaborative RNN (Ko et al, 2016).
Stars: ✭ 60 (-55.56%)
Mutual labels:  rnn, recommender-system
Chameleon recsys
Source code of CHAMELEON - A Deep Learning Meta-Architecture for News Recommender Systems
Stars: ✭ 202 (+49.63%)
Mutual labels:  rnn, recommender-system
Dream
rnn based model for recommendations
Stars: ✭ 77 (-42.96%)
Mutual labels:  rnn, recommender-system
Torchsketch
Stars: ✭ 113 (-16.3%)
Mutual labels:  rnn
A Convolutional Recurrent Neural Network For Real Time Speech Enhancement
A minimum unofficial implementation of the "A Convolutional Recurrent Neural Network for Real-Time Speech Enhancement" (CRN) using PyTorch
Stars: ✭ 123 (-8.89%)
Mutual labels:  rnn
Lstms.pth
PyTorch implementations of LSTM Variants (Dropout + Layer Norm)
Stars: ✭ 111 (-17.78%)
Mutual labels:  rnn
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (+962.96%)
Mutual labels:  recommender-system
Movielens Recommender
A pure Python implement of Collaborative Filtering based on MovieLens' dataset.
Stars: ✭ 131 (-2.96%)
Mutual labels:  recommender-system
Elasticctr
ElasticCTR,即飞桨弹性计算推荐系统,是基于Kubernetes的企业级推荐系统开源解决方案。该方案融合了百度业务场景下持续打磨的高精度CTR模型、飞桨开源框架的大规模分布式训练能力、工业级稀疏参数弹性调度服务,帮助用户在Kubernetes环境中一键完成推荐系统部署,具备高性能、工业级部署、端到端体验的特点,并且作为开源套件,满足二次深度开发的需求。
Stars: ✭ 123 (-8.89%)
Mutual labels:  recommender-system
Rectorch
rectorch is a pytorch-based framework for state-of-the-art top-N recommendation
Stars: ✭ 121 (-10.37%)
Mutual labels:  recommender-system
Tagrec
Towards A Standardized Tag Recommender Benchmarking Framework
Stars: ✭ 113 (-16.3%)
Mutual labels:  recommender-system
Rnn From Scratch
Use tensorflow's tf.scan to build vanilla, GRU and LSTM RNNs
Stars: ✭ 123 (-8.89%)
Mutual labels:  rnn
Pytorch Rnn Text Classification
Word Embedding + LSTM + FC
Stars: ✭ 112 (-17.04%)
Mutual labels:  rnn
Midi Rnn
Generate monophonic melodies with machine learning using a basic LSTM RNN
Stars: ✭ 124 (-8.15%)
Mutual labels:  rnn
Mnist Classification
Pytorch、Scikit-learn实现多种分类方法,包括逻辑回归(Logistic Regression)、多层感知机(MLP)、支持向量机(SVM)、K近邻(KNN)、CNN、RNN,极简代码适合新手小白入门,附英文实验报告(ACM模板)
Stars: ✭ 109 (-19.26%)
Mutual labels:  rnn
Linear Attention Recurrent Neural Network
A recurrent attention module consisting of an LSTM cell which can query its own past cell states by the means of windowed multi-head attention. The formulas are derived from the BN-LSTM and the Transformer Network. The LARNN cell with attention can be easily used inside a loop on the cell state, just like any other RNN. (LARNN)
Stars: ✭ 119 (-11.85%)
Mutual labels:  rnn
Comirec
Source code and dataset for KDD 2020 paper "Controllable Multi-Interest Framework for Recommendation"
Stars: ✭ 123 (-8.89%)
Mutual labels:  recommender-system
Kddcup 2020
6th Solution for 2020-KDDCUP Debiasing Challenge
Stars: ✭ 118 (-12.59%)
Mutual labels:  recommender-system

rnn_recsys

Our implementation of one research paper "Embedding-based News Recommendation for Millions of Users" https://dl.acm.org/citation.cfm?id=3098108 Shumpei Okura, Yukihiro Tagami, Shingo Ono, and Akira Tajima. 2017. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD '17).

I provide a toy demo dataset to demonstrate the file format. On this dataset, model AVG has an AUC of 0.76, and model RNN has an AUC of 0.92. You can reproduce this simply by running 'python train.py' . Sorry that I cannot upload my own real-world dataset (Bing News).

Overall, this recommender system has two steps: (1) train an autoencoder for articles ; (2) train RNN base on user-item interactions.

training autoencoder

The raw article has a format of "article_id \t category \t title". I will first build a word dictionary to hash the word to ids and count the TF-IDF statistics. The input for training autoencoder is the TF-IDF values of each article (title). Below is a result of my trained CDAE. (scripts can be found in helper/demo.py): alt text Analysis: I am really surprised by the great power of autoencoder. News titles are usually very short, but autoencoder can recover their intent. For example, for the first news, the input content is 'Travel tips for thanksgiving', our decoded words are (ordered by importance) 'tips, travel, holidays, thanksgiving, enjoy, shopping, period'. Note that the words 'holidays' and 'shopping' do not appear in the original title, but there are captured as strongly related words.

training curve of error:

alt text

training curve of loss:

alt text

training RNN recsys

After training the autoencoder, you need to encode each raw article to get their embeddings:

encode_articles(...)

Finally, train your RNN recsys:

train_RS()

data description:

data/articles.txt: each line is an article, in the form of word_id:word_tf_idf_value

data/articles_CDAE.txt: each line is 3 articles, splited by tab, article_01 and article_02 belong to a same category, while article_03 belongs to a different category

data/RS/articles_embeddings.txt: each line is an article, in the form of article_ID \t embedding_vector (D float numbers, where D denotes the dimension of embedding)

data/RS/train.txt: each line is a training instance, in the form of user_history \t target_item_id \t label. user_history is a sequence of item_id, splited by space.

articles_TFIDF_norm_3w.txt format: each line is one document, such as 14 17513:1.00 27510:0.81 , representing article_id \TAB word_id01:value \ SPACE word_id02:value \SPACE ....

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].