auction-gym

AuctionGym is a simulation environment that enables reproducible evaluation of bandit and reinforcement learning methods for online advertising auctions.

https://github.com/amazon-science/auction-gym

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary

Keywords

advertising machine-learning real-time-bidding reinforcement-learning

Keywords from Contributors

interactive packaging network-simulation hacking autograding embedded optim standardization projection generic
Last synced: 6 months ago · JSON representation ·

Repository

AuctionGym is a simulation environment that enables reproducible evaluation of bandit and reinforcement learning methods for online advertising auctions.

Basic Info
  • Host: GitHub
  • Owner: amazon-science
  • License: apache-2.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 123 KB
Statistics
  • Stars: 176
  • Watchers: 7
  • Forks: 42
  • Open Issues: 4
  • Releases: 0
Topics
advertising machine-learning real-time-bidding reinforcement-learning
Created over 3 years ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

AuctionGym: Simulating Online Advertising Auctions

This repository contains the source code for AuctionGym: a simulation environment that enables reproducible offline evaluation of bandit and reinforcement learning approaches to ad allocation and bidding in online advertising auctions.

AuctionGym was released in the context of our "Off-Policy Learning to Bid with AuctionGym" publication in the Applied Data Science Track of the 2023 ACM SIGKDD Conference. An earlier version of our work was presented at the AdKDD '22 workshop, where it received a Best Paper Award.

Offline evaluation of "learning to bid" approaches is not straightforward, because of multiple reasons: (1) observational data suffers from unobserved confounding and experimental data with broad interventions is costly to obtain, (2) offline experiments suffer from Goodhart's Law: " when a measure becomes a target, it ceases to be a good measure ", and (3) at the time of writing and to the best of our knowledge -- there are no publicly available datasets to researchers that can be used for this purpose. As a result, reliable and reproducible validation of novel "learning to bid" methods is hindered, and so is open scientific progress in this field.

AuctionGym aims to mitigate this problem, by providing a unified framework that practitioners and research can use to benchmark novel methods and gain insights into their inner workings.

Getting Started

We provide two introductory and exploratory notebooks. To open them, run jupyter notebook in the main directory and navigate to src.

" Getting Started with AuctionGym (1. Effects of Competition) " simulates second-price auctions with varying levels of competition, visualising the effects on advertiser welfare and surplus, and revenue for the auctioneer. Analogosuly, " Getting Started with AuctionGym (2. Effects of Bid Shading) " simulates first-price auctions where bidders bid truthfully vs. when they shade their bids in a value-based manner.

Reproducing Research Results

This section provides instructions to reproduce the results reported in our paper.

We provide a script that takes as input a configuration file detailing the environment and bidders (in JSON format), and outputs raw logged metrics over repeated auction rounds in .csv-files, along with visualisations. To reproduce the results for truthful bidders in a second-price auction reported in Fig. 1 in the paper, run:

python src/main.py config/SP_Oracle.json

A results-directory will be created, with a subdirectory per configuration file that was ran. This subdirectory will contain .csv-files with raw metrics, and .pdf-files with general visualisations. Other configuration files will generate results for other environments, and other bidder behaviour. See configuration for more detail on the structure of the configuration files.

Citing

Please cite the accompanying research paper if you use AuctionGym in your work:

BibTeX @inproceedings{10.1145/3580305.3599877, author = {Jeunen, Olivier and Murphy, Sean and Allison, Ben}, title = {Off-Policy Learning-to-Bid with AuctionGym}, year = {2023}, isbn = {9798400701030}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3580305.3599877}, doi = {10.1145/3580305.3599877}, booktitle = {Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery and Data Mining}, pages = {4219–4228}, numpages = {10}, keywords = {online advertising, counterfactual inference, off-policy learning}, location = {Long Beach, CA, USA}, series = {KDD '23} }

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

Owner

  • Name: Amazon Science
  • Login: amazon-science
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use AuctionGym, please consider citing our paper"
authors:
- family-names: "Jeunen"
  given-names: "Olivier"
  orcid: "https://orcid.org/0000-0001-6256-5814"
- family-names: "Murphy"
  given-names: "Sean"
- family-names: "Allison"
  given-names: "Ben"
title: "Off-Policy Learning to Bid with AuctionGym"
url: "https://github.com/amzn/auction-gym"
preferred-citation:
  type: conference-paper
  authors:
  - family-names: "Jeunen"
    given-names: "Olivier"
    orcid: "https://orcid.org/0000-0001-6256-5814"
  - family-names: "Murphy"
    given-names: "Sean"
  - family-names: "Allison"
    given-names: "Ben"
  collection-title: "Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery & Data Mining"
  title: "Off-Policy Learning to Bid with AuctionGym"
  year: 2023

GitHub Events

Total
  • Watch event: 8
  • Delete event: 1
  • Push event: 1
  • Pull request event: 2
  • Pull request review event: 1
  • Fork event: 2
  • Create event: 1
Last Year
  • Watch event: 8
  • Delete event: 1
  • Push event: 1
  • Pull request event: 2
  • Pull request review event: 1
  • Fork event: 2
  • Create event: 1

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 26
  • Total Committers: 5
  • Avg Commits per committer: 5.2
  • Development Distribution Score (DDS): 0.538
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
dependabot[bot] 4****] 12
Olivier Jeunen o****n@g****m 6
lastavro 1****o 4
Olivier Jeunen j****n@a****m 3
Amazon GitHub Automation 5****o 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 16
  • Average time to close issues: N/A
  • Average time to close pull requests: 23 days
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 12
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 6 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • L0Z1K (1)
Pull Request Authors
  • dependabot[bot] (12)
  • MBonalumi (1)
  • lastavro (1)
  • MrHuff (1)
  • roykoand (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (12) python (2)

Dependencies

requirements.txt pypi
  • Pillow ==9.1.1
  • cycler ==0.11.0
  • fonttools ==4.33.1
  • joblib ==1.1.0
  • kiwisolver ==1.4.2
  • llvmlite ==0.38.0
  • matplotlib ==3.5.1
  • numba ==0.55.1
  • numpy ==1.22.0
  • packaging ==21.3
  • pandas ==1.3.5
  • pyparsing ==3.0.8
  • python-dateutil ==2.8.2
  • pytz ==2022.1
  • scikit-learn ==1.0.2
  • scipy ==1.7.3
  • seaborn ==0.11.2
  • six ==1.16.0
  • threadpoolctl ==3.1.0
  • torch ==1.11.0
  • tqdm ==4.64.0
  • typing_extensions ==4.2.0