All Projects → 0411tony → Yue

0411tony / Yue

Licence: other
A python library for music recommendation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Yue

Deep Learning For Recommendation Systems
This repository contains Deep Learning based articles , paper and repositories for Recommender Systems
Stars: ✭ 2,493 (+2732.95%)
Mutual labels:  music-recommendation, recommender-system
STACP
Joint Geographical and Temporal Modeling based on Matrix Factorization for Point-of-Interest Recommendation - ECIR 2020
Stars: ✭ 19 (-78.41%)
Mutual labels:  recommender-system
recommender system with Python
recommender system tutorial with Python
Stars: ✭ 106 (+20.45%)
Mutual labels:  recommender-system
nowplaying-RS-Music-Reco-FM
#nowplaying-RS: Music Recommendation using Factorization Machines
Stars: ✭ 23 (-73.86%)
Mutual labels:  music-recommendation
RecSys PyTorch
PyTorch implementations of Top-N recommendation, collaborative filtering recommenders.
Stars: ✭ 125 (+42.05%)
Mutual labels:  recommender-system
chainRec
Mengting Wan, Julian McAuley, "Item Recommendation on Monotonic Behavior Chains", in Proc. of 2018 ACM Conference on Recommender Systems (RecSys'18), Vancouver, Canada, Oct. 2018.
Stars: ✭ 52 (-40.91%)
Mutual labels:  recommender-system
NVTabular
NVTabular is a feature engineering and preprocessing library for tabular data designed to quickly and easily manipulate terabyte scale datasets used to train deep learning based recommender systems.
Stars: ✭ 797 (+805.68%)
Mutual labels:  recommender-system
Causal Reading Group
We will keep updating the paper list about machine learning + causal theory. We also internally discuss related papers between NExT++ (NUS) and LDS (USTC) by week.
Stars: ✭ 339 (+285.23%)
Mutual labels:  recommender-system
KG4Rec
Knowledge-aware recommendation papers.
Stars: ✭ 76 (-13.64%)
Mutual labels:  recommender-system
recsim ng
RecSim NG: Toward Principled Uncertainty Modeling for Recommender Ecosystems
Stars: ✭ 106 (+20.45%)
Mutual labels:  recommender-system
Tf-Rec
Tf-Rec is a python💻 package for building⚒ Recommender Systems. It is built on top of Keras and Tensorflow 2 to utilize GPU Acceleration during training.
Stars: ✭ 18 (-79.55%)
Mutual labels:  recommender-system
SASRec.pytorch
PyTorch(1.6+) implementation of https://github.com/kang205/SASRec
Stars: ✭ 137 (+55.68%)
Mutual labels:  recommender-system
Neural Bayesian Personalized Ranking
Representation Learning and Pairwise Ranking for Implicit Feedback in Top-N Item Recommendation
Stars: ✭ 23 (-73.86%)
Mutual labels:  recommender-system
auction-website
🏷️ An e-commerce marketplace template. An online auction and shopping website for buying and selling a wide variety of goods and services worldwide.
Stars: ✭ 44 (-50%)
Mutual labels:  recommender-system
EATNN
This is our implementation of EATNN: Efficient Adaptive Transfer Neural Network (SIGIR 2019)
Stars: ✭ 23 (-73.86%)
Mutual labels:  recommender-system
SAMN
This is our implementation of SAMN: Social Attentional Memory Network
Stars: ✭ 45 (-48.86%)
Mutual labels:  recommender-system
recoreco
Fast item-to-item recommendations on the command line.
Stars: ✭ 33 (-62.5%)
Mutual labels:  recommender-system
adversarial-recommender-systems-survey
The goal of this survey is two-fold: (i) to present recent advances on adversarial machine learning (AML) for the security of RS (i.e., attacking and defense recommendation models), (ii) to show another successful application of AML in generative adversarial networks (GANs) for generative applications, thanks to their ability for learning (high-…
Stars: ✭ 110 (+25%)
Mutual labels:  recommender-system
TIFUKNN
kNN-based next-basket recommendation
Stars: ✭ 38 (-56.82%)
Mutual labels:  recommender-system
online-course-recommendation-system
Built on data from Pluralsight's course API fetched results. Works with model trained with K-means unsupervised clustering algorithm.
Stars: ✭ 31 (-64.77%)
Mutual labels:  recommender-system

Yue

Founder: @Coder-Yu
More implementations of generic recommenders can be found in RecQ

Introduction

Yue is a Python library for Music Recommendation (Python 3.5.x). It implements a suit of state-of-the-art music recommenders. To run Yue easily (no need to setup dendencies used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher.

Features

  • Cross-platform: as a Python software, Yue can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: Yue is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it run much faster than other libraries based on Python.
  • Easy configuration: Yue configs recommenders using a configuration file.
  • Easy expansion: Yue provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

How to Run it

  • 1. Download the dataset. (links can be found at the end)
  • 1. Configure the **xx.conf** file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2. Run the **main.py** in the project, and then input following the prompt.

How to Configure it

Essential Options

Entry Example Description
record D:/xiami/100K.txt Set the path to input dataset.
record.setup -columns user:0,track:1,artist:2,album:3 -delim , -columns: this option specifies what colums in the dataset mean. Four types of entities supported. If some types of information are missing, just skip the corresponding type;
-delim: this option specifies which symbol separates the columns.
recommender UserKNN/ItemKNN/MostPop/etc. the name of the recommender
evaluation.setup -testSet ../dataset/testset.txt Main option: -testSet, -ap, -cv -byTime
-testSet path/to/test/file (need to specify the test set manually)
-ap ratio (ap means that the ratings are automatically partitioned into training set and test set, the number is the ratio of test set. e.g. -ap 0.2)
-cv k (-cv means cross validation, k is the number of the fold. e.g. -cv 5)
-byTime ratio (sort the user record in order of the time. ratio decides the percentage of test set(recently played).
Secondary option:-b, -p, -cold
-target track (This option decides which type of object will be recommended (artist, track, album). Only available for some general recommenders like MostPop)
-b val (binarizing the rating values. Ratings equal or greater than val will be changed into 1, and ratings lower than val will be changed into 0. e.g. -b 3.0)
-p (if this option is added, the cross validation wll be excuted parallelly, otherwise excuted one by one)
-cold threshold (evaluation on cold-start users, users in training set with ratings more than threshold will be removed from the test set)
item.ranking off -topN 5,10,20 -topN N1,N2,N3...: the length of the recommendation list. *Yue can generate multiple evaluation results for different N at the same time
output.setup on -dir ./Results/ Main option: whether to output recommendation results
-dir path: the directory path of output results.

Model-based Options

num.factors 5/10/20/number Set the number of latent factors
num.max.iter 100/200/number Set the maximum number of iterations for iterative recommendation algorithms.
learnRate -init 0.01 -max 1 -init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda -u 0.05 -i 0.05 -b 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton;

How to extend it

  • 1.Make your new algorithm generalize the proper base class.
  • 2.Rewrite some of the following functions as needed.
          - readConfiguration()
          - printAlgorConfig()
          - initModel()
          - buildModel()
          - saveModel()
          - loadModel()
          - predict()

Algorithms Implemented

Note: We use SGD to obtain the local minimum. So, there have some differences between the original papers and the code in terms of fomula presentation. If you have problems in understanding the code, please open an issue to ask for help. We can guarantee that all the implementations are carefully reviewed and tested.

Item Ranking Paper
Rand Recommend tracks, artists or albums randomly
MostPop Recommend most popular tracks, artists or albums
UserKNN A common user-based collaborative filtering method
BPR Rendle et al., BPR: Bayesian Personalized Ranking from Implicit Feedback, UAI 2009.
WRMF Hu et al., Collaborative Filtering for Implicit Feedback Datasets, KDD 2009.
IPF Xiang et al., Temporal Recommendation on Graphs via Long- and Short-term Preference Fusion, KDD 2010.
FISM Kabbur et al., FISM: Factored Item Similarity Models for Top-N Recommender Systems, KDD 2013.
ExpoMF Liang et al., Modeling User Exposure in Recommendation, WWW 2016.
CDAE Wu et al., Collaborative Denoising Auto-Encoders for Top-N Recommender Systems, WSDM 2016.
CUNE Zhang et al., Collaborative User Network Embedding for Social Recommender Systems, SDM 2017.
Song2vec Cheng et al., Exploiting Music Play Sequence for Music Recommendation, IJCAI 2017
APR He et al., Adversarial Personalized Ranking for Recommendation, SIGIR 2018.

Dataset

Data Set Basic Meta Context
Users Tracks Artists Albums Record Tag User Profile Artist Profile
NowPlaying [1] 1,744 16,864 2,108 N/A 1,117,335 N/A N/A N/A
Xiami [2] 4,270 177,289 25,844 68,479 1,337,948 N/A N/A N/A
LastFM [3] 1,892 N/A 17,632 N/A 92,834 Yes N/A N/A
Yahoo Music [source] 1,800,000 136,000 many many 717,000,000 Yes N/A N/A
30 Music [source][4] 45,167 5,023,108 595,049 217,337 many Yes Yes N/A
Ali Music 349,946 10,278 50 N/A 5,652,232 N/A N/A Yes

Dataset Reference

[1]. Eva Zangerle, Martin Pichl, Wolfgang Gassler, and Günther Specht. 2014. #nowplaying Music Dataset: Extracting Listening Behavior from Twitter. In Proceedings of the First International Workshop on Internet-Scale Multimedia Management (WISMM '14). ACM, New York, NY, USA, 21-26

[2]. Wang, Dongjing, et al. "Learning music embedding with metadata for context aware recommendation." Proceedings of the 2016 ACM on International Conference on Multimedia Retrieval. ACM, 2016.

[3]. Iván Cantador, Peter Brusilovsky, and Tsvi Kuflik. 2011. 2nd Workshop on Information Heterogeneity and Fusion in Recom- mender Systems (HetRec 2011). In Proceedings of the 5th ACM conference on Recommender systems (RecSys 2011). ACM, New York, NY, USA

[4]. Turrin R, Quadrana M, Condorelli A, et al. 30Music Listening and Playlists Dataset[C]//RecSys Posters. 2015.

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