All Projects → xue-pai → TwoTowers

xue-pai / TwoTowers

Licence: Apache-2.0 license
A configurable, tunable, and reproducible library for deep matching models

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to TwoTowers

Book recommend
基于协同过滤的书籍推荐系统
Stars: ✭ 149 (+125.76%)
Mutual labels:  collaborative-filtering
Recommendationsystem
Book recommender system using collaborative filtering based on Spark
Stars: ✭ 244 (+269.7%)
Mutual labels:  collaborative-filtering
siamese dssm
siamese dssm sentence_similarity sentece_similarity_rank tensorflow
Stars: ✭ 59 (-10.61%)
Mutual labels:  dssm
Implicit
Fast Python Collaborative Filtering for Implicit Feedback Datasets
Stars: ✭ 2,569 (+3792.42%)
Mutual labels:  collaborative-filtering
Recommender System
A developing recommender system in tensorflow2. Algorithm: UserCF, ItemCF, LFM, SLIM, GMF, MLP, NeuMF, FM, DeepFM, MKR, RippleNet, KGCN and so on.
Stars: ✭ 227 (+243.94%)
Mutual labels:  collaborative-filtering
LR-GCCF
Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network Approach, AAAI2020
Stars: ✭ 99 (+50%)
Mutual labels:  collaborative-filtering
Recotour
A tour through recommendation algorithms in python [IN PROGRESS]
Stars: ✭ 140 (+112.12%)
Mutual labels:  collaborative-filtering
tf-recsys
tf-recsys contains collaborative filtering (CF) model based on famous SVD and SVD++ algorithm. Both of them are implemented by tensorflow in order to utilize GPU acceleration.
Stars: ✭ 91 (+37.88%)
Mutual labels:  collaborative-filtering
Recommender
A C library for product recommendations/suggestions using collaborative filtering (CF)
Stars: ✭ 238 (+260.61%)
Mutual labels:  collaborative-filtering
RecommendationEngine
Source code and dataset for paper "CBMR: An optimized MapReduce for item‐based collaborative filtering recommendation algorithm with empirical analysis"
Stars: ✭ 43 (-34.85%)
Mutual labels:  collaborative-filtering
Polara
Recommender system and evaluation framework for top-n recommendations tasks that respects polarity of feedbacks. Fast, flexible and easy to use. Written in python, boosted by scientific python stack.
Stars: ✭ 205 (+210.61%)
Mutual labels:  collaborative-filtering
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (+209.09%)
Mutual labels:  collaborative-filtering
slopeone
PHP implementation of the Weighted Slope One rating-based collaborative filtering scheme.
Stars: ✭ 85 (+28.79%)
Mutual labels:  collaborative-filtering
Collaborativememorynetwork
Collaborative Memory Network for Recommendation Systems, SIGIR 2018
Stars: ✭ 170 (+157.58%)
Mutual labels:  collaborative-filtering
oboe
An AutoML pipeline selection system to quickly select a promising pipeline for a new dataset.
Stars: ✭ 76 (+15.15%)
Mutual labels:  collaborative-filtering
Rsparse
Fast and accurate machine learning on sparse matrices - matrix factorizations, regression, classification, top-N recommendations.
Stars: ✭ 145 (+119.7%)
Mutual labels:  collaborative-filtering
matrix-completion
Lightweight Python library for in-memory matrix completion.
Stars: ✭ 94 (+42.42%)
Mutual labels:  collaborative-filtering
raptor
A lightweight product recommendation system (Item Based Collaborative Filtering) developed in Haskell.
Stars: ✭ 34 (-48.48%)
Mutual labels:  collaborative-filtering
svae cf
[ WSDM '19 ] Sequential Variational Autoencoders for Collaborative Filtering
Stars: ✭ 38 (-42.42%)
Mutual labels:  collaborative-filtering
disentangled graph collaborative filtering
Disentagnled Graph Collaborative Filtering, SIGIR2020
Stars: ✭ 118 (+78.79%)
Mutual labels:  collaborative-filtering

TwinModels

TwinModels is an open source library of two-tower matching models, built with stunning features in configurability, tunability, and reproducibility.

Model List

Publication Model Paper
UAI'09 MF-BPR BPR: Bayesian Personalized Ranking from Implicit Feedback
RecSys'16 YoutubeDNN Deep Neural Networks for YouTube Recommendations
CIKM'21 MF-CCL/SimpleX SimpleX: A Simple and Strong Baseline for Collaborative Filtering

Get Started

Run the demo

The code workflow is structured as follows:

# Set the data config and model config
feature_cols = [{...}] # define feature columns
label_col = {...} # define label column
params = {...} # set data params and model params

# Set the feature encoding specs
feature_encoder = FeatureEncoder(feature_cols, label_col, ...) # define the feature encoder
datasets.build_dataset(feature_encoder, ...) # fit feature_encoder and build dataset 

# Load data generators
train_gen, valid_gen, test_gen = h5_generator(feature_encoder, ...)

# Define a model
model = SimpleX(...)

# Train the model
model.fit(train_gen, valid_gen, ...)

# Evaluation
model.evaluate(test_gen)

Run the benchmark

For reproducing the experiment result, you can run the benchmarking script with the corresponding config file as follows.

  • --config: The config file that defines the hyper-parameter space.
  • --gpu: The gpu index used for experiment, and -1 for CPU.
cd benchmarks
python run_param_tuner.py --config Yelp18/SimpleX_yelp18_x0/SimpleX_yelp18_x0_tuner_config.yaml --gpu 0
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].