Skip to content

saisrivatsan/deep-opt-auctions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • Python 2.7
  • Tensorflow
  • Numpy and Matplotlib packages
  • Easydict - pip install easydict

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_no setting_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_no setting_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_no setting_name
(a) exponential
(b) uniform
(c) asymmetric_uniform
(d) irregular

Settings

Single Bidder

  • additive_1x2_uniform: A single bidder with additive valuations over two items, where the items is drawn from U[0, 1].

  • unit_1x2_uniform_23: A single bidder with unit-demand valuations over two items, where the item values are drawn from U[2, 3].

  • additive_1x2_uniform_416_47: Single additive bidder with preferences over two non-identically distributed items, where v1 ∼ U[4, 16]and v2 ∼ U[4, 7].

  • additive_1x2_uniform_triangle: A single additive bidder with preferences over two items, where (v1, v2) are drawn jointly and uniformly from a unit-triangle with vertices (0, 0), (0, 1) and (1, 0).

  • unit_1x2_uniform: A single unit-demand bidder with preferences over two items, where the item values from U[0, 1]

  • additive_1x2_uniform_04_03: A Single additive bidder with preferences over two items, where the item values v1 ∼ U[0, 4], v2 ∼ U[0, 3]

  • additive_1x10_uniform: A single additive bidder and 10 items, where bidders draw their value for each item from U[0, 1].

Multiple Bidders

  • additive_2x2_uniform: Two additive bidders and two items, where bidders draw their value for each item from U[0, 1].

  • unit_2x2_uniform: Two unit-demand bidders and two items, where the bidders draw their value for each item from identical U[0, 1].

  • additive_2x3_uniform: Two additive bidders and three items, where bidders draw their value for each item from U[0, 1].

  • CA_sym_uniform_12: Two bidders and two items, with v1,1, v1,2, v2,1, v2,2 ∼ U[1, 2], v1,{1,2} = v1,1 + v1,2 + C1 and v2,{1,2} = v2,1 + v2,2 + C2, where C1, C2 ∼ U[−1, 1].

  • CA_asym_uniform_12_15: Two bidders and two items, with v1,1, v1,2 ∼ U[1, 2], v2,1, v2,2 ∼ U[1, 5], v1,{1,2} = v1,1 + v1,2 + C1 and v2,{1,2} = v2,1 + v2,2 + C2, where C1, C2 ∼ U[−1, 1].

  • additive_3x10_uniform: 3 additive bidders and 10 items, where bidders draw their value for each item from U[0, 1].

  • additive_5x10_uniform: 5 additive bidders and 10 items, where bidders draw their value for each item from U[0, 1].

Visualization

Allocation Probabilty plots for unit_1x2_uniform_23 setting learnt by regretNet:

Allocation Probabilty plots for additive_1x2_uniform_416_47 setting learnt by rochetNet:

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},
}

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •