Giter Site home page Giter Site logo

preferencenet's Introduction

PreferenceNet: Encoding Human Preferences in Auction Design with Deep Learning [PDF]

Neehar Peri*, Michael J. Curry*, Samuel Dooley, and John P. Dickerson

The design of optimal auctions is a problem of interest in economics, game theory and computer science. Despite decades of effort, strategyproof, revenue-maximizing auction designs are still not known outside of restricted settings. However, recent methods using deep learning have shown some success in approximating optimal auctions, recovering several known solutions and outperforming strong baselines when optimal auctions are not known. In addition to maximizing revenue, auction mechanisms may also seek to encourage socially desirable constraints such as allocation fairness or diversity. However, these philosophical notions neither have standardization nor do they have widely accepted formal definitions. In this paper, we propose PreferenceNet, an extension of existing neural-network-based auction mechanisms to encode constraints using (potentially human-provided) exemplars of desirable allocations. In addition, we introduce a new metric to evaluate an auction allocations' adherence to such socially desirable constraints and demonstrate that our proposed method is competitive with current state-of-the-art neural-network based auction designs. We validate our approach through human subject research and show that we are able to effectively capture real human preferences.

Using this Code Base

diversity/ - RegretNet + Entropy Loss

python train.py --diversity entropy 1.0  --dataset {n}x{m}-{pv|mv} 1 {--no_lagrange}

fairness/ - RegretNet + TVF Loss

python train.py --fairness tvf 0.0  --dataset {n}x{m}-{pv|mv} 1 {--no_lagrange}

quota/ - RegretNet + Quota Loss

python train.py --quota quota 1.0  --dataset {n}x{m}-{pv|mv} 1 {--no_lagrange}

learnable_preferences/ - RegretNet + PreferenceLoss

python train.py --preference entropy_ranking {a} tvf_ranking {b} quota_quota {c} human_preference {d} \
--dataset {n}x{m}-{pv|mv} 1 {--preference-file ../path/to/preference/file.pth} {--preference-label-noise 1.0} {--lagrange}

compare_mechanism/ - Evaluation Code

python evaluate.py --preference entropy_ranking {a} tvf_ranking {b} quota_quota {c} human_preference {d} \ 
--dataset {n}x{m}-{pv|mv} 1 {--preference-file ../path/to/preference/file.pth} {--preference-label-noise 1.0} {--lagrange}

survey/ - Survey Data and Analysis

Parameters

{n} - Number of Agents

{m} - Number of Items

{pv|mv} - Pavlov Auction or Manelli-Vincent Auction

{--no_lagrange} - Train RegretNet + Constraint without Lagrange Multipliers

{a} {b} {c} {d} - Floating point values such that a + b + c + d = 1.0

{--preference-file ../path/to/preference/file.pth} - Training Labels from Human Survey (Only Necessary if d > 0)

{--preference-label-noise 1.0} - Add Training Noise according to Probit Model

{--lagrange} - Train PreferenceNet with Lagrangian Multipliers

Acknowledgements

This research was supported in part by NSF CAREER Award IIS-1846237, NSF D-ISN Award #2039862, NSF Award CCF-1852352, NIH R01 Award NLM-013039-01, NIST MSE Award #20126334, DARPA GARD #HR00112020007, DoD WHS Award #HQ003420F0035, and a Google Faculty Research Award. The code for the original RegretNet, in TensorFlow, is available here. We thank the authors of ProportionNet for sharing their codebase and Kevin Kuo and Uro Lyi for their feedback in writing this paper.

preferencenet's People

Contributors

currymj avatar neeharperi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

violabook

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.