{"id":13483744,"url":"https://github.com/saisrivatsan/deep-opt-auctions","last_synced_at":"2025-03-27T15:30:30.948Z","repository":{"id":49409096,"uuid":"166264886","full_name":"saisrivatsan/deep-opt-auctions","owner":"saisrivatsan","description":"Implementation of Optimal Auctions through Deep Learning","archived":false,"fork":false,"pushed_at":"2019-11-24T22:06:15.000Z","size":4084,"stargazers_count":110,"open_issues_count":1,"forks_count":37,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-30T16:29:37.121Z","etag":null,"topics":["auctions","deep-learning","economics","economics-and-computation","machine-learning","mechanism-design","multi-agent-systems"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saisrivatsan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-17T17:11:24.000Z","updated_at":"2024-10-23T08:53:48.000Z","dependencies_parsed_at":"2022-08-30T01:31:01.428Z","dependency_job_id":null,"html_url":"https://github.com/saisrivatsan/deep-opt-auctions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saisrivatsan%2Fdeep-opt-auctions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saisrivatsan%2Fdeep-opt-auctions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saisrivatsan%2Fdeep-opt-auctions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saisrivatsan%2Fdeep-opt-auctions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saisrivatsan","download_url":"https://codeload.github.com/saisrivatsan/deep-opt-auctions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245871682,"owners_count":20686246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auctions","deep-learning","economics","economics-and-computation","machine-learning","mechanism-design","multi-agent-systems"],"created_at":"2024-07-31T17:01:14.823Z","updated_at":"2025-03-27T15:30:29.984Z","avatar_url":"https://github.com/saisrivatsan.png","language":"Jupyter Notebook","funding_links":[],"categories":["Software"],"sub_categories":["Blogs"],"readme":"# Optimal Auctions through Deep Learning\r\nImplementation of \"Optimal Auctions through Deep Learning\" (https://arxiv.org/pdf/1706.03459.pdf)\r\n\r\n## Getting Started\r\n\r\nInstall the following packages:\r\n- Python 2.7 \r\n- Tensorflow\r\n- Numpy and Matplotlib packages\r\n- Easydict - `pip install easydict`\r\n\r\n## Running the experiments\r\n\r\n### RegretNet\r\n\r\n#### For Gradient-Based approach:\r\nDefault hyperparameters are specified in regretNet/cfgs/.  \r\n\r\n#### For Sample-Based approach:\r\nModify the following hyperparameters in the config file specified in regretNet/cfg/.\r\n```\r\ncfg.train.gd_iter = 0\r\ncfg.train.num_misreports = 100\r\ncfg.val.num_misreports = 100 # Number of val-misreports is always equal to the number of train-misreports\r\n```\r\n\r\nFor training the network, testing the mechanism learnt and computing the baselines, run:\r\n```\r\ncd regretNet\r\npython run_train.py [setting_name]\r\npython run_test.py [setting_name]\r\npython run_baseline.py [setting_name]\r\n```\r\n\r\nsetting\\_no  |      setting\\_name |\r\n :---:   | :---: |\r\n  (a)    |  additive\\_1x2\\_uniform |\r\n  (b)   | unit\\_1x2\\_uniform\\_23 |\r\n  (c\\)  | additive\\_2x2\\_uniform |\r\n  (d)   | CA\\_sym\\_uniform\\_12 |\r\n  (e)    | CA\\_asym\\_uniform\\_12\\_15 |\r\n  (f)   | additive\\_3x10\\_uniform |\r\n  (g)  | additive\\_5x10\\_uniform |\r\n  (h) |   additive\\_1x2\\_uniform\\_416\\_47\r\n  (i) |   additive\\_1x2\\_uniform\\_triangle\r\n  (j) |   unit\\_1x2\\_uniform\r\n  (k) |  additive\\_1x10\\_uniform\r\n  (l) |   additive\\_1x2\\_uniform\\_04\\_03\r\n  (m) |   unit\\_2x2\\_uniform\r\n\r\n\r\n### RochetNet (Single Bidder Auctions)\r\n\r\nDefault hyperparameters are specified in rochetNet/cfgs/.  \r\nFor training the network, testing the mechanism learnt and computing the baselines, run:\r\n```\r\ncd rochetNet\r\npython run_train.py [setting_name]\r\npython run_test.py [setting_name]\r\npython run_baseline.py [setting_name]\r\n```\r\nsetting\\_no  |      setting\\_name |\r\n :---:  | :---: |\r\n  (a)   |  additive\\_1x2\\_uniform |\r\n  (b)   |   additive\\_1x2\\_uniform\\_416\\_47\r\n  \\(c\\) |   additive\\_1x2\\_uniform\\_triangle\r\n  (d)   |   additive\\_1x2\\_uniform\\_04\\_03\r\n  (e)   |  additive\\_1x10\\_uniform\r\n  (f)   |   unit\\_1x2\\_uniform\r\n  (g)   |   unit\\_1x2\\_uniform\\_23\r\n  \r\n### MyersonNet (Single Item Auctions)\r\n  \r\nDefault hyperparameters are specified in utils/cfg.py.  \r\nFor training the network, testing the mechanism learnt and computing the baselines, run:\r\n```\r\ncd myersonNet\r\npython main.py -distr [setting_name] or\r\nbash myerson.sh\r\n```\r\nsetting\\_no  |      setting\\_name |\r\n :---:  | :---: |\r\n  (a)   |  exponential \r\n  (b)   |   uniform\r\n  \\(c\\) |   asymmetric\\_uniform \r\n  (d)   |   irregular\r\n\r\n \r\n## Settings\r\n\r\n### Single Bidder\r\n- **additive\\_1x2\\_uniform**: A single bidder with additive valuations over two items, where the items is drawn from U\\[0, 1\\].\r\n\r\n- **unit\\_1x2\\_uniform\\_23**: A single bidder with unit-demand valuations over two items, where the item values are drawn from U\\[2, 3\\].\r\n\r\n- **additive\\_1x2\\_uniform\\_416\\_47**: Single additive bidder with preferences over two non-identically distributed items, where v\u003csub\u003e1\u003c/sub\u003e ∼ U\\[4, 16\\]and v\u003csub\u003e2\u003c/sub\u003e ∼ U\\[4, 7\\].\r\n\r\n- **additive\\_1x2\\_uniform\\_triangle**: A single additive bidder with preferences over two items, where (v\u003csub\u003e1\u003c/sub\u003e, v\u003csub\u003e2\u003c/sub\u003e) are drawn jointly and uniformly from a unit-triangle with vertices (0, 0), (0, 1) and (1, 0).\r\n\r\n- **unit\\_1x2\\_uniform**: A single unit-demand bidder with preferences over two items, where the item values from U\\[0, 1\\]\r\n\r\n- **additive\\_1x2\\_uniform\\_04\\_03**: A Single additive bidder with preferences over two items, where the item values v\u003csub\u003e1\u003c/sub\u003e ∼ U\\[0, 4], v\u003csub\u003e2\u003c/sub\u003e ∼ U\\[0, 3]\r\n\r\n- **additive\\_1x10\\_uniform**: A single additive bidder and 10 items, where bidders draw their value for each item from U\\[0, 1\\].\r\n\r\n### Multiple Bidders\r\n- **additive\\_2x2\\_uniform**: Two additive bidders and two items, where bidders draw their value for each item from U\\[0, 1\\]. \r\n\r\n- **unit\\_2x2\\_uniform**: Two unit-demand bidders and two items, where the bidders draw their value for each item from identical U\\[0, 1\\].\r\n\r\n- **additive\\_2x3\\_uniform**: Two additive bidders and three items, where bidders draw their value for each item from U\\[0, 1\\]. \r\n\r\n- **CA\\_sym\\_uniform\\_12**: Two bidders and two items, with v\u003csub\u003e1,1\u003c/sub\u003e, v\u003csub\u003e1,2\u003c/sub\u003e, v\u003csub\u003e2,1\u003c/sub\u003e, v\u003csub\u003e2,2\u003c/sub\u003e ∼ U\\[1, 2\\], v\u003csub\u003e1,{1,2}\u003c/sub\u003e = v\u003csub\u003e1,1\u003c/sub\u003e + v\u003csub\u003e1,2\u003c/sub\u003e + C\u003csub\u003e1\u003c/sub\u003e and v\u003csub\u003e2,{1,2}\u003c/sub\u003e = v\u003csub\u003e2,1\u003c/sub\u003e + v\u003csub\u003e2,2\u003c/sub\u003e + C\u003csub\u003e2\u003c/sub\u003e, where C\u003csub\u003e1\u003c/sub\u003e, C\u003csub\u003e2\u003c/sub\u003e ∼ U\\[−1, 1\\].\r\n\r\n- **CA\\_asym\\_uniform\\_12\\_15**: Two bidders and two items, with v\u003csub\u003e1,1\u003c/sub\u003e, v\u003csub\u003e1,2\u003c/sub\u003e ∼ U\\[1, 2\\], v\u003csub\u003e2,1\u003c/sub\u003e, v\u003csub\u003e2,2\u003c/sub\u003e ∼ U\\[1, 5\\], v\u003csub\u003e1,{1,2}\u003c/sub\u003e = v\u003csub\u003e1,1\u003c/sub\u003e + v\u003csub\u003e1,2\u003c/sub\u003e + C\u003csub\u003e1\u003c/sub\u003e and v\u003csub\u003e2,{1,2}\u003c/sub\u003e = v\u003csub\u003e2,1\u003c/sub\u003e + v\u003csub\u003e2,2\u003c/sub\u003e + C\u003csub\u003e2\u003c/sub\u003e, where C\u003csub\u003e1\u003c/sub\u003e, C\u003csub\u003e2\u003c/sub\u003e ∼ U\\[−1, 1].\r\n\r\n- **additive\\_3x10\\_uniform**: 3 additive bidders and 10 items, where bidders draw their value for each item from U\\[0, 1\\].\r\n\r\n- **additive\\_5x10\\_uniform**: 5 additive bidders and 10 items, where bidders draw their value for each item from U\\[0, 1\\].\r\n\r\n\r\n## Visualization\r\n\r\nAllocation Probabilty plots for **unit\\_1x2\\_uniform_23** setting learnt by **regretNet**:\r\n\r\n\u003cimg src=\"https://github.com/saisrivatsan/deep-opt-auctions/blob/master/regretNet/plots/visualization/unit_1x2_uniform_23_alloc1.png\" width=\"300\"\u003e \u003cimg src=\"https://github.com/saisrivatsan/deep-opt-auctions/blob/master/regretNet/plots/visualization/unit_1x2_uniform_23_alloc2.png\" width=\"300\"\u003e\r\n\r\nAllocation Probabilty plots for **additive\\_1x2\\_uniform\\_416\\_47** setting learnt by **rochetNet**:\r\n\r\n\u003cimg src=\"https://github.com/saisrivatsan/deep-opt-auctions/blob/master/rochetNet/plots/visualization/additive_1x2_uniform_416_47_alloc1.png\" width=\"300\"\u003e \u003cimg src=\"https://github.com/saisrivatsan/deep-opt-auctions/blob/master/rochetNet/plots/visualization/additive_1x2_uniform_416_47_alloc2.png\" width=\"300\"\u003e\r\n\r\nFor other allocation probability plots, check-out the ipython notebooks in `regretNet` or `rochetNet` folder.\r\n\r\n\r\n## Reference\r\n\r\nPlease cite our work if you find our code/paper is useful to your work.\r\n```\r\n@article{DFNP19,\r\n  author    = {Paul D{\\\"{u}}tting and Zhe Feng and Harikrishna Narasimhan and David C. Parkes and Sai Srivatsa Ravindranath},\r\n  title     = {Optimal Auctions through Deep Learning},\r\n  journal   = {arXiv preprint arXiv:1706.03459},\r\n  year      = {2019},\r\n}\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaisrivatsan%2Fdeep-opt-auctions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaisrivatsan%2Fdeep-opt-auctions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaisrivatsan%2Fdeep-opt-auctions/lists"}