Online Ranking with Multi-Armed-Bandits
Project description
mab-ranking
A library for Online Ranking with Multi-Armed-Bandits. This library is useful to find the best Top N items among a relatively small candidate set.
For example:
- Show the Top 5 News Articles among 200 articles every day
- Recommend the Top 10 Trending Products every week
- Rank components on websites to drive more engagement (Whole Page Optimization)
Installation
Prerequisites
mab-ranking requires the following:
- Python (3.6, 3.7, 3.8)
Install mab-ranking
At the command line:
pip install mab-ranking
Getting started
Let's say that you want to recommend the top 5 trending products to your website visitors every week among the 300 most selling products. Every Monday at some time T you'll define a new RankBandit
implementation. For example:
num_ranks = 5
num_arms = 300
rank_bandit = IndependentBandits(num_ranks, BetaThompsonSampling, num_arms=num_arms)
Then, every time a visitor X is landed on your home page for the rest of the week, you need to select which 5 products to show them in section Top Trending Products
. So, you'll do the following:
selected_arms = rank_bandit.choose()
Let's say that the selected_arms
equals [30, 2, 200, 42]
. That means that you need to show products, 30, 2, 200 and 42 in this order. You can keep your own mapping from product UUIDS to integer arm ids in your app's business logic.
The visitor X viewed this selected order. Let's say that (s)he clicked on products 2 and 42. Then the rewards
list will be [0.0, 1.0, 0.0, 1.0]
. So:
rewards = [0.0, 1.0, 0.0, 1.0]
rank_bandit.choose(selected_arms, rewards)
Implementation Details
Implementations of RankBandit
:
IndependentBandits
: from Microsoft Paper, "A Fast Bandit Algorithm for Recommendations to Users with Heterogeneous"
Implementations of Bandit
:
BetaThompsonSampling
: Beta Thompson Sampling MAB
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mab-ranking-0.0.1.tar.gz
.
File metadata
- Download URL: mab-ranking-0.0.1.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc2816306c28624f0be77cc9a99d685f376ea602134160d733c164721ad0baa6 |
|
MD5 | 28eeb0f8d063e687769ea8c876f6c4a4 |
|
BLAKE2b-256 | 368ddb95733eb2654a2692226ba40cfaed07c66e4463952464ed0acca95ed587 |
File details
Details for the file mab_ranking-0.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: mab_ranking-0.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65911758f10b6e58956fafeb226b0c9c32fcf91648ea468ddd516945006c7e9e |
|
MD5 | f52a97c6beab20528e34104ded7717d0 |
|
BLAKE2b-256 | b691d73c7f14b74d5fb8b3196e8ba75a8e7aa0fbbcec977ab60095edcf7aaef0 |