16
SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Embed Size (px)

Citation preview

Page 1: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

SADNA – Ad Auction

Session #2

Yishay MansourMariano Schain

Page 2: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Last Week:Overview and Theoretical Background

Today:Software Infrastructure

•System Elements (Reminder)

•Agent Execution

• Software Architecture

• A Sample Agent

Page 3: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Reminder

Page 4: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

System ElementsUser

Publisher/Auctioneer

Query

Advertiser

Auction

Impression Page ViewClick Conversion

Bid, Ad, Limit

Query Reports

Sales Reports

3

32a

2b

2c

1

Page 5: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Execution• Server

– Manages agents– Schedules games – Simulates Users and Publisher– Sends reports to agents– Publish simulation logs

• Agent (Client)– Register at server web page– Joins games– Implements Advertiser– Sends bids to server– May use logs to learn

Server

Agent

Agent

Agent

WebBrowser

RegistrationGame ViewerLogs Access

Game

Page 6: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Agent Execution - Steps

1. Files and Directories• config• lib• logs

2. Agent Configuration File• Name and Password• Server name• Auto join• Logging levels

3. Register Agent At Server • http://server:8080• Name And Password

4. Run Jar• run-agent.sh• Or… from IDE (e.g. eclipse)• Or… java -server -cp $CLASSPATH

edu.umich.eecs.tac.aa.agentware.Main

Page 7: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Agent Execution - Demo

• Setup IDE (Eclipse)

• Run Agent from IDE

• Server: Game Viewer

• Post game: Log Viewer

Page 8: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Software Architecture - Motivation• Modeling:

– User populations dynamics– Competing Advertisers strategy– cpc and #Impressions for a given (bid, query)– Note: Bursts

• Estimation– Click and Conversion rates– Profit and #sales for a given bid bundle– Note: Promoted Slots

• Optimization– Find bid bundle that maximizes profits– Next day, Until end of game– Note: Capacity Window

Page 9: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Agent Software ArchitectureModel

competitors

users

Estimation

clickRate

convRate

Optimization

singleDay multiDay

Control

Game instance parameters:Capacity, Specialty

Daily Reports:Server, Self

Profit, Sales (bids, day, used_capacity)

Bid

singleGame

multiGame

Optimal Bid (cap,#s)

Train (Past Games)

Cpc, Position (q,bid)

Cpc, #Impr, Pos (q,bid)

#Conv #Click #Impr (query, bid, ad, limit, day, used_capacity)

Page 10: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Agent Software Architecture

Agent

TauAgent

AgentComponent

Optimizer

IAgent

IAgentComponent

IOptimizer

YourOptimizer

TauAgent

YourOptimizer

YourEstimator

YourModeler

Class Diagram Object Diagram

Page 11: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Agent Software ArchitectureConfiguration

• All configuration files in config directory• Top level configuration:

– Name and password, logging, etc’

• Architecture configuration– Name of class implementing each component – Name of config file for each component

• Component configuration file– Any specific parameters (e.g. algorithm constants)– Accessed using the ConfigManager class interface

(implemented by the aaConfig member of AgentComponent)

Page 12: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Agent Software ArchitectureTraining

LogHandler

TauTrainer TauParser

YourParser

TauTrainer

YourParser

Class Diagram Object Diagram

• Logs contain ALL messages to/from server to/from ALL agents!!• LogHandler called by logtool.Main• Single/Multiple simulation log files (sim.slg)• YourParser updates component database (to be used at game)• Reset/Incremental training

Parser

Page 13: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Sample Agent• Illustrate usage of interfaces

– Passing server messages– Configuration parameters

• Almost trivial Modeler and Estimator– Simple daily update of parameters’ estimate

based on past day results

• Optimizer:– Capacity quota: based on capacity window

usage level– Quota fractionally allocated to queries based on

past performance (profits per unit sold)

Page 14: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Create Your Own Agent - Steps

1. Files and Directories• Start with sample agent• Update config files:

• arch.conf• Component config files

2. Implement your own Components

• Replace: SampleModeler, SampleEstimator, SampleOptimizer

• Stick to Interfaces

3. Compete and Analyze • Dummies are Dummies..• Use log viewer• Train using game logs from

server

4. Repeat..

Page 15: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Sample Agent - Demo• Arrange files and populate IDE

– src, lib, config– Create IDE project

• Update configuration files

• Configure execution– Run/debug, Main, etc’

• Run Agent– Fetch simulation logs

Page 16: SADNA – Ad Auction Session #2 Yishay Mansour Mariano Schain

Appendix: Run your own Server

1. Files and Directories• lib• Config• logs

2. Server Configuration Files• server.conf: Admin Password,

Ports, Logging levels• Name of game settings

configuration• Game_settings.conf

3. runserver.sh

4. Register Agents At Server