├── Deep_Learning_for_Recommender_Systems_MarcelKurovski.pdf ├── README.md └── img ├── architecture.png ├── networks.png └── results.png /Deep_Learning_for_Recommender_Systems_MarcelKurovski.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mkurovski/deep_learning_recsys/82a9089c7d219db92733127d9df33bdfb06b1eb0/Deep_Learning_for_Recommender_Systems_MarcelKurovski.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # deep_learning_recsys 2 | Deep Learning for Recommender Systems - Master Thesis, Current Results and Architecture 3 | 4 | For details see also [my blogpost on Medium](https://ebaytech.berlin/deep-learning-for-recommender-systems-48c786a20e1a) 5 | 6 | # Deep Learning for Recommender Systems 7 | This repository contains the proof-of-concept for a Recommender System that learns 8 | user and item (vehicle) representations in a nonlinear fashion using Deep Learning. 9 | It was proven that it beats traditional matrix factorization for collaborative filtering 10 | and collaborative-content-based (hybrid) filtering by a large margin. The evaluation was 11 | conducted offline on an experimental subset of 100'000 subscribed users and roughly 1.7 million 12 | items. 13 | 14 | ## Proof-of-Concept 15 | The PoC was established in the master thesis "Deep Learning for Recommender Systems: 16 | Joint Learning of Similarity and Preference" which is linked here. 17 | The diagram below summarizes the newest results which beat the preliminary results shown in the thesis. It shows the mean average precision (MAP) across different k (number of provided recommendations). There are different techniques compared with each other: collaborative filtering (CF) and hybrid collaborative-content-based filtering (CF-CBF) as well as a Deep Learning solution that trains for two objectives: 18 | * Predict the probability of a user to prefer a specific item (vehicle) 19 | * Create dense user/item representations that can be used for an efficient candidate generation using a novel regularization technique 20 | ![Results of the Study on a Deep Learning based Recommender System](img/results.png?raw=true "DL Recommender PoC Results") 21 | 22 | ## Big Picture of the DLRS prototype 23 | The prototype is based on a trained deep neural network that is split into three components: 24 | * UserNet: Network to generate a dense user representation from sparse user features 25 | * ItemNet: Network to generate a dense item representation from sparse item features 26 | * RankNet: Network to estimate a probability based on dense user and item representations 27 | 28 | The Big Picture also illustrates the two-step process for generating recommendations: 29 | 1. **Candidate Generation**: Reduce item corpus (all items) to a few potentially relevant items (candidates) using simpler, but faster models (focus on recall). 30 | For the first step approximate nearest neighbor search on embeddings turns out to be efficient and provide good results: 31 | * [Approximate Nearest Neighbors Oh Yeah (ANNOY)](https://github.com/spotify/annoy) 32 | * [Locally Optimized Product Quantization (LOPQ)](https://github.com/yahoo/lopq) 33 | * KMeans Clustering 34 | * Minimal Euclidean Distances 35 | 36 | 2. **Ranking**: (Re-)Rank the candidates using a more accurate, but computationally more expensive model (focus on precision). 37 | This second step uses the RankNet only based on a given user representation and the provided candidate representations. 38 | 39 | ![](img/networks.png?raw=true "DL Network Composition") 40 | 41 | ## Architecture for Production 42 | 43 | ![](img/architecture.png?raw=true "DL Recommender Architecture") 44 | 45 | ## Outlook 46 | * Apply work to RecSys Challenge 2017 47 | * Apply work to RecSys Challenge 2018 48 | * For more information, visit my Medium blogpost in the ebay Tech Berlin 49 | 50 | > We can only see a short distance ahead, but we can see plenty there that needs to be done. (Alan Turing) 51 | -------------------------------------------------------------------------------- /img/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mkurovski/deep_learning_recsys/82a9089c7d219db92733127d9df33bdfb06b1eb0/img/architecture.png -------------------------------------------------------------------------------- /img/networks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mkurovski/deep_learning_recsys/82a9089c7d219db92733127d9df33bdfb06b1eb0/img/networks.png -------------------------------------------------------------------------------- /img/results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mkurovski/deep_learning_recsys/82a9089c7d219db92733127d9df33bdfb06b1eb0/img/results.png --------------------------------------------------------------------------------