Home

Awesome

Optimal Auctions through Deep Learning

Implementation of "Optimal Auctions through Deep Learning" (https://arxiv.org/pdf/1706.03459.pdf)

Getting Started

Install the following packages:

Running the experiments

RegretNet

For Gradient-Based approach:

Default hyperparameters are specified in regretNet/cfgs/.

For Sample-Based approach:

Modify the following hyperparameters in the config file specified in regretNet/cfg/.

cfg.train.gd_iter = 0
cfg.train.num_misreports = 100
cfg.val.num_misreports = 100 # Number of val-misreports is always equal to the number of train-misreports

For training the network, testing the mechanism learnt and computing the baselines, run:

cd regretNet
python run_train.py [setting_name]
python run_test.py [setting_name]
python run_baseline.py [setting_name]
setting_nosetting_name
(a)additive_1x2_uniform
(b)unit_1x2_uniform_23
(c)additive_2x2_uniform
(d)CA_sym_uniform_12
(e)CA_asym_uniform_12_15
(f)additive_3x10_uniform
(g)additive_5x10_uniform
(h)additive_1x2_uniform_416_47
(i)additive_1x2_uniform_triangle
(j)unit_1x2_uniform
(k)additive_1x10_uniform
(l)additive_1x2_uniform_04_03
(m)unit_2x2_uniform

RochetNet (Single Bidder Auctions)

Default hyperparameters are specified in rochetNet/cfgs/.
For training the network, testing the mechanism learnt and computing the baselines, run:

cd rochetNet
python run_train.py [setting_name]
python run_test.py [setting_name]
python run_baseline.py [setting_name]
setting_nosetting_name
(a)additive_1x2_uniform
(b)additive_1x2_uniform_416_47
(c)additive_1x2_uniform_triangle
(d)additive_1x2_uniform_04_03
(e)additive_1x10_uniform
(f)unit_1x2_uniform
(g)unit_1x2_uniform_23

MyersonNet (Single Item Auctions)

Default hyperparameters are specified in utils/cfg.py.
For training the network, testing the mechanism learnt and computing the baselines, run:

cd myersonNet
python main.py -distr [setting_name] or
bash myerson.sh
setting_nosetting_name
(a)exponential
(b)uniform
(c)asymmetric_uniform
(d)irregular

Settings

Single Bidder

Multiple Bidders

Visualization

Allocation Probabilty plots for unit_1x2_uniform_23 setting learnt by regretNet:

<img src="https://github.com/saisrivatsan/deep-opt-auctions/blob/master/regretNet/plots/visualization/unit_1x2_uniform_23_alloc1.png" width="300"> <img src="https://github.com/saisrivatsan/deep-opt-auctions/blob/master/regretNet/plots/visualization/unit_1x2_uniform_23_alloc2.png" width="300">

Allocation Probabilty plots for additive_1x2_uniform_416_47 setting learnt by rochetNet:

<img src="https://github.com/saisrivatsan/deep-opt-auctions/blob/master/rochetNet/plots/visualization/additive_1x2_uniform_416_47_alloc1.png" width="300"> <img src="https://github.com/saisrivatsan/deep-opt-auctions/blob/master/rochetNet/plots/visualization/additive_1x2_uniform_416_47_alloc2.png" width="300">

For other allocation probability plots, check-out the ipython notebooks in regretNet or rochetNet folder.

Reference

Please cite our work if you find our code/paper is useful to your work.

@article{DFNP19,
  author    = {Paul D{\"{u}}tting and Zhe Feng and Harikrishna Narasimhan and David C. Parkes and Sai Srivatsa Ravindranath},
  title     = {Optimal Auctions through Deep Learning},
  journal   = {arXiv preprint arXiv:1706.03459},
  year      = {2019},
}