Multi-Attribute Exchange Market: Search for Optimal Matches Eugene Fink Jianli Gong John Hershberger Motivation • Build an automated exchange for trading goods and services • Combine the speed of the stock exchange with the flexibility of eBay + Previous work • Combinatorial auctions - Complex goods • Standardized - Asymmetry exchanges between buyers and sellers - Illiquid • Standardized exchanges - Simple goods - Symmetry between buyers and sellers - Liquid Research goals Build an automated exchange for non-standardized goods. • Support fast-paced trading for markets with millions of orders • Include optimization techniques to maximize traders’ satisfaction Outline • Multi-attribute orders • Best-price matches • Quality functions • Experimental results Market A market is a set of items that can be traded, defined by a list of attributes. Example A used-car market is a set of all conceivable vehicles, defined by model, year, and mileage. Orders A trader specifies a buy or sell order by attribute values and a price limit. A value specification may include lists of values and numeric ranges. Example Sell order Model: Mustang Year: 2004 Mileage: 1K Price: $30,000 Buy order Model: Mustang or Corvette Year: 2002..2004 Mileage: 0..10K Price: $32,000 Matching Sell order Mustang, made in 2004, $30,000 Trade Price Year $32,000 $30,000 04 03 02 01 Camaro Mustang Corvette Mustang, made in 2004, $31,000 Buy order Mustang, made after 2001, $32,000 Model Outline • Multi-attribute orders • Best-price matches • Quality functions • Experimental results Main structures • Tree of fully specified orders • Unordered list of the other orders Depth-first search Buy Order: Any car made after 1990 Model Mustang Year Camry Corvette Year Year 1996 1999 2000 1988 Mileage Mileage Mileage Mileage 50K 10K 180K 20K 1996 Mustang, 50K miles, $7,000 1999 Camry, 10K miles, $18,000 2000 Camry, 180K miles, $5,000 Best price 1988 Corvette, 20K miles, $4,000 Depth-first search Drawback: If there are many matching leaves, the search takes a long time. Solution: Apply best-first search: • Store the best price for each subtree • Use these prices to guide the search Best prices for subtrees Model $4,000 Mustang $7,000 Year Mileage 50K 1996 Mustang, 50K miles, $7,000 Corvette Year $5,000 1996 $7,000 Camry $18,000 1999 2000 Mileage Mileage 10K 180K 1999 Camry, 10K miles, $18,000 Year $4,000 1988 $5,000 2000 Camry, 180K miles, $5,000 Mileage $4,000 20K 1988 Corvette, 20K miles, $4,000 Search for the best price Buy Order: Any car made after 1990 Model $4,000 Mustang $7,000 Year Mileage 50K 1996 Mustang, 50K miles, $7,000 Corvette Year $5,000 1996 $7,000 Camry $18,000 1999 2000 Mileage Mileage 10K 180K 1999 Camry, 10K miles, $18,000 Year $4,000 1988 $5,000 2000 Camry, 180K miles, $5,000 Best price Mileage $4,000 20K 1988 Corvette, 20K miles, $4,000 Outline • Multi-attribute orders • Best-price matches • Quality functions • Experimental results Quality functions A trader can specify a quality function that ranks the acceptable transactions. The transaction quality may depend on an item and its price. Example: Quality of a car purchase +4 for each year after 1970 –5 for each 10K miles –6 for each $1,000 Quality functions A trader can specify a quality function that ranks the acceptable transactions. The transaction quality may depend on an item and its price. The system searches for the matches with the highest quality. Depth-first search Buy Order: Any car made after 1990 Model Mustang Year Camry Corvette Year Year 1996 1999 2000 1988 Mileage Mileage Mileage Mileage 50K 10K 180K 20K 1996 Mustang, 50K miles, $7,000 1999 Camry, 10K miles, $18,000 2000 Camry, 180K miles, $5,000 Highest37 Quality: quality: 37 Quality: 3 Quality: 0 1988 Corvette, 20K miles, $4,000 Monotonic attributes • The quality monotonically changes with the price • Usually, it is also monotonic on several other attributes Example: Car quality • Increases with the year • Decreases with the mileage Best-first search • For every subtree, store the best value of each monotonic attribute • Use these values to estimate the quality of the best match in every subtree Best values for subtrees Model Mustang 1996, 50K, $7,000 Year 1996 50K, $7,000 Mileage 50K 1996 Mustang, 50K miles, $7,000 2000, 10K, $4,000 Camry Year 1999 10K, $18,000 Mileage 10K 1999 Camry, 10K miles, $18,000 Corvette 2000, 10K, $5,000 Year 1988, 20K, $4,000 2000 1988 180K, Mileage $5,000 20K, Mileage $4,000 180K 2000 Camry, 180K miles, $5,000 20K 1988 Corvette, 20K miles, $4,000 Search for the best match Buy Order: Model Mustang 1996, 50K, 37 $7,000 Year 1996 50K, 37 Mileage $7,000 50K 1996 Mustang, 50K miles, $7,000 Highest quality: 37 2000, 10K, 91 $4,000 Camry Year 1999 10K, $18,000 Mileage 10K 1999 Camry, 10K miles, $18,000 Any car made after 1990 Corvette 2000, 10K, 85 $5,000 Year 1988, 38 20K, $4,000 2000 1988 180K, Mileage $5,000 20K, Mileage $4,000 180K 2000 Camry, 180K miles, $5,000 20K 1988 Corvette, 20K miles, $4,000 Outline • Multi-attribute orders • Search for matches • Quality functions • Experimental results Performance Experiments using a Pentium computer : • 2 GHz CPU • 1 Gbyte memory • 166 MHz bus Cars and bonds orders per second • Car market with eight attributes: 200 to 20,000 orders per second • Bond market with two attributes: 500 to 50,000 orders per second 105 bonds 104 103 cars 102 101 103 104 102 number of orders 105 Artificial markets Synthetic market data: • 1 to 100 attributes • 300,000 orders orders per second 105 Best-First 104 103 Depth-First 102 101 1 3 30 10 number of attributes 100 Summary • General model for trading of multi-attribute goods • Fast identification of matches between buy and sell orders