Skip to main content

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:

  1. Show the Top 5 News Articles among 200 articles every day
  2. Recommend the Top 10 Trending Products every week
  3. Rank components on websites to drive more engagement (Whole Page Optimization)

Installation

Prerequisites

mab-ranking requires the following:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mab-ranking-0.0.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

mab_ranking-0.0.1-py2.py3-none-any.whl (7.1 kB view details)

Uploaded Python 2 Python 3

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

Hashes for mab-ranking-0.0.1.tar.gz
Algorithm Hash digest
SHA256 cc2816306c28624f0be77cc9a99d685f376ea602134160d733c164721ad0baa6
MD5 28eeb0f8d063e687769ea8c876f6c4a4
BLAKE2b-256 368ddb95733eb2654a2692226ba40cfaed07c66e4463952464ed0acca95ed587

See more details on using hashes here.

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

Hashes for mab_ranking-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 65911758f10b6e58956fafeb226b0c9c32fcf91648ea468ddd516945006c7e9e
MD5 f52a97c6beab20528e34104ded7717d0
BLAKE2b-256 b691d73c7f14b74d5fb8b3196e8ba75a8e7aa0fbbcec977ab60095edcf7aaef0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page