slot: 광고가 게재되는 영역
advertiser: 광고를 싣고 싶은 광고주
search engine: 광고 slot을 파는 seller
search engine 회사들이 거는 광고들
- 내가 검색한 검색어에 따라 광고를 보여주는 keyoword-based advertising
-> 이러한 광고의 가격 어떻게 결정되는지 볼 것임.
광고 slot이 여러 개가 존재하는데, 그중 선호도가 높은 슬럿이 존재함.
광고를 원하는 광고주들이 있고, 광고를 넣는 공간, slot이 여러 개 존재.
누가 어떤 광고 슬럿을 가져갈까?
-> auction을 통해서
-> matching market
paying per click
광고 가격 중에는 클릭 횟수당 받는 가격이 있다. -> paying per click.
사람들이 클릭을 한다는 것은 해당 컨텐츠에 대해 강한 관심을 가지고 있다는 것을 뜻함.
단순히 검색을 한 것에 비해서.
-> 그래서 광고주들은 기꺼이 클릭에 대해서 비용을 지불함.
각각의 query에 일일이 클릭 당 가격 정하기? 😡
-> 어려움
- 검색 가능한 키워드나, 키워드들의 조합의 수가 너어어어무 많음.
- 키워드 개수가 엄청나게 많은 것에 비해, 광고를 걸만한 키워드는 적음. (광고 시장이 작고, 광고회사가 적다)
- 광고주들의 요구는 계속 변함. 거기에 맞춰 계속 가격이 달라지는데 이런 걸 유지하는 게 힘듦.
-> 그래서 대신, auction을 통해 가격을 정함
Designing an Auction
- 만약 search engine 회사가 광고주들이 click당 가지는 valuations을 알고 있다면, 바로 matching market 만들면 된다.
- 모른다면, 그들이 truthful bidding(or untruthful bidding)을 하도록 하는 방법을 생각해야 함.
- 서치 엔진 회사 입장에서는, 광고주들이 truthful bidding을 하게 하고 싶음 (돈 많이 벌려고)
- 이를 위한 방법 - VCG
- untruthful bidding을 하게 하는 방법 - GSP
- Vickery-Clarke-Groves (VCG) mechanism
- second-price auction 을 일반화한 거임
- 원래 하나의 아이템에 대해 하는 second price auction을 여러 item(slot)에 대해서 진행하도록!
- Generalized Second-Price Auction (GSP)
- VCG보다 이론적으로는 덜 탄탄함. 아직 연구가 진행 중.
- 하지만 실제 서치 엔진에서는 이거 사용함. - 기대 수익이 더 높을 것이라 예상되어서
- 방법은 간단함, 결과는 complex. - untrithful bidding, socially non-optimal outcomes
광고주들이 광고로 인한 기대 수익을 계산하기 위해 알아야 하는 것들
-> 각 slot의 특성 - clickthrough rate
-> 광고주들의 특성 - revenue per click
clickthrough rate
: 해당 slot에 대한 시간당 클릭 수
- 클릭 수가 slot에 대해 완전히 의존적인 특성인지 의문이 들 수 있다. 어떤 광고인지, 주변에 무엇이 있는지에 달라지는 거 아닌가 할 수 있지만 여기서는 고려하지 않음. slot에 의해 결정되는 특성이라고 가정한다.
revenue per click
: 해당 slot에 대해 클릭 당 기대 수익
- 광고를 클릭한 이후에 생기는 수익은 광고주에게 달려있는 특성이다. 광고를 보고 구매로 이어졌을 때 얻는 수익은 광고주마다 다름. ex. 연필 광고와 비행기 표 광고 중 클릭 후 구매로 이어졌을 때, 수익이 더 큰 건 비행기 광고
-> 두 값을 곱하면 슬럿에 대해 시간 당 기대 수익을 알 수 있다.
constructing a matching market for a particular keyword
키워드 별로 광고를 달아줌
- 키워드 별로 slot에 대한 광고 가격을 결정해야 함
- 가격은 auction을 통해 결정함
- matching market을 구성함!
matching market으로 따지자면
sellers (item): slots
buyers: advertisers
& perfect matching - 모두 다른 slot을 하나씩 할당받음
& slot 개수와 advertiser 개수가 같다고 가정하자
(안맞으면 가상으로 그냥 채움 - clickthrough rate = 0 or valuation = 0 for all slots)
pi: slot i의 가격
vij : buyer j 가 seller i에 대해 가지는 valuation.
ri : slot i 가 가지는 clickthrough rate
vj : advertiser j가 가지는 revenue per click
=> advertiser j 가 slot i를 할당받았을 때의 얻는 이익은 = ri * vj
=> 이 값이 valuation vij = ri * vj
payoff는 내가 생각한 가치보다 얼마나 싸게 샀는지
= vij - pi
Obtaining Market-Clearing Prices
matching market 구조로 만들었으니까, MCP 구하자
1. 슬럿 가격 pi 초기화하고
2. 광고주들 자신들의 payoff 계산하고 (true value - price = vij - pi)
3. preferred-seller garph 그리고
4. perfect matching 될 때까지 가격 조정하고
5. perfect matchign 되면 MCP 결정된다.
market-clearing price
=> total payoff, total valuation을 극대화한다!
=> advertising market에서, MCP는 바람직한 특성을 보여줌
- 광고주들은 각기 다른 slot을 선호함. 결과적으로 할당받은 광고 슬럿은 전체 valuation을 극대화함
- valuation = clickthrough rate * revenue per click 이것들의 합이 극대화되려면 큰 애들은 큰 애들끼리 !
-> 그럼 가장 clickthrough rate가 높은 슬럿은 revenue per click 을 가지는 광고주에게 할당되어야 최대가 되고,
-> 두 번째 clickthrough rate - 두번째 revenue per click 광고주와 매칭되고, ...
=> 결국 sorting 된 순서대로 matching 되게 됨.
그러나 이러한 구조는 서치 엔진 회사가 광고주들의 valuation을 알고 있어야 MCP를 찾을 수 있음.
현실적으로는 이걸 모르는 경우가 더 많음.
광고주들이 제시한 자신들의 valuation이 사실인지 아닌지 서치 엔진 회사 입장에서 알 수 없음.
이런 경우에는 어떻게 ?
초기 검색 산업에서 사용된 방법은 first price auction
문제점
- 광고주들이 실제 생각하는 truth value보다 낮게 적어서 냄.
- 가격도 깨작깨작 올림
- 조금만 가격을 올리면 1등이 됨 - 계속 무한 반복
- 1등이 계속 바뀌면서 광고도 계속 바뀌게 됨
-> truth bidding 하게 하고 싶음
-> second-price auction for a single-item의 경우, dominant strategy = truthful bidding
-> 광고 마켓에서는 slot이 여러 개, 즉 multiple-items
-> second-price auction을 일반화해서 사용하자.
The VCG Principle
item 수가 많기 때문에, 곧장 일반화시키기는 어려움.
1. second-price auction -> miximizes social welfare
2. the winner of the auction -> 그가 아이템을 낙찰받음으로써 다른 비더들에게 "harm"을 끼치는 만큼의 금액을 낸다.
갑자기 "harm"??
single-item auction에서 봐보자.
- bidders' values를 v1 부터 큰 순서대로 나열해 놓은 상태에서
- bidder 1이 없다면, bidder 2가 아이템을 낙찰받게 됨. 이 외에 비더들은 달라지는 게 없음.
- bidder 2의 harm은 v2. 정확히 bidder 1이 내야 하는 금액이다.
=> 기존에 알고 있던 second-price 에도 적용이 되는 개념임!
=> item 개수가 많이 지면, bidder2 뿐만이 아니라 bidder3, 4,... 모두 줄줄이 harm을 가지게 됨.
광고주들로 하여금 truthful bidding을 장려하는 법칙
- 각각의 개인들은 그들이 나머지에게 야기하는 harm 만큼을 내야 한다.
-각각의 개인들은 본인이 없었을 때, 다른 모두가 더 얻을 수 있는 이익의 전체 양만큼을 내야 한다.
-> 이게 Vickrey-Clarke-Groves(VCG) principle
Applying to matching markets
가정: 바이어들은 독립적이고 본인만 아는 value를 가짐
- 각각의 바이어들은 본인의 valuations은 알지만 다른 바이어와 셀러는 알지 못 함.
- 각각의 바이어들은 그가 받는 아이템에만 관심이 있음. 다른 바이어들이 할당받은 것들에 관심 ㄴ
VCG 법칙에서
1. 바이어한테 아이템을 할당하는 것은 total valuation을 극대화하기 위함임
2. 바이어 j가 아이템 i를 사기 위해 지불해야 하는 금액은 그가 아이템 i를 가져감으로써 나머지 바이어들에게 야기하는 harm의 크기임.
= total boost - 바어어 j가 없다고 가정했을 때, optimal matching을 했을 때의 다른 모든 이들의 valuation 합
이 상태에서 market matching -> 결과적으로
x -> a
y -> b
z -> c
이렇게 매칭됨. (정렬된 순서대로 매칭) 여기서 x가 없다고 해보면,
y -> a
z -> b
이렇게 매칭이 된다.
y는 b를 할당받을 경우에 비해 a를 할당받는 경우 20 - 10 = 10 만큼의 valuation 이득이 있고,
z는 c를 할당 받을 경우에 비해 b를 할당 받는 경우 5 - 2 = 3 만큼의 valuation 이득이 있다.
합은 10 + 3 = 13.
x가 없음으로 인해 y와 z는 total 13 만큼의 이득을 보는 것
x가 있음으로써 item a를 가져가게 됨으로써 y와 z는 total 13만큼의 harm을 가지는 것
=> x는 이 그래프에 끼어들고 싶으면 13을 내라 !
이번엔 y를 없애보자.
x -> a
z -> b
이렇게 매칭이 된다.
x는 y가 있든 없든 a에 매칭이 되기 때문에, valuation의 이득이나 손해가 없다.
그러나 z의 경우 c를 할당받을 때에 비하여 b를 할당 받을 경우 5 -2 = 3 만큼의 이득을 본다.
y가 없어지면 얻는 나머지 (x, z)의 총 이득은 3
y가 있음으로 인해 item b를 가져가게 되면서 나머지가 가지는 harm = 3
-> y는 3을 내라!
정리하면,
buyer j 가 item i에 대해 내야 하는 가격은,
j가 빠졌을 때, 나머지 바이어들이 가질 수 있는 최대 total valuation 과
j가 item i를 가짐으로써, 나머지 바이어들이 가질 수 있는 최대 total valuation의 차이만큼이다.
= j가 i를 가져감으로써 나머지 바이어들이 가지는 harm의 총합만큼이다!
가격이 물건에 의해서만 정해지는 것이 아닌, 누가 사느냐에 의해서도 달라질 수 있다.
VCG Price-Setting procedure for Matching Markets
single agent가 컨트롤한다고 가정. 여기서는 서치엔진 회사.
순서
1. 바어이들에게 아이템들에 대한 valuation을 물어봄.
2. 그 값을 토대로 socially optimal assignment 하게 매칭 (전체 valuation을 극대화하는 perfect matching을 한다.)
3. 바이어들은 책정된 VCG 가격만큼 지불.
바이어의 입장에서 valuation 어떻게 대답할까?
Game으로 보자.
buyer들을 strategy를 선택해야 함. payoff = valuation - price
지금 이 상황은 truth-telling이 dominant strategy!
VCG prices vs. market-clearing prices
가장 큰 차이점
- market-clearing price are posted prices : 누가 봐도 같은 가격임. 어떤 바이어가 사느냐에 따라 가격이 달라지지 않음.
- VCG prices are personalized prices : 누가 뭘 사느냐에 따라 가격이 달라짐.
-> market-clearing price는 ascending auction을 일반화한 거
가격이 step-by-step으로 증가함.
-> VCG prices는 sealed-bid second auction을 일반화 한 거
harm-done-to-others 가 적용됨. second-price auction은 VCG procedure의 특별한 케이스임
위에서, VCG에서는 truth telling = dominant strategy라고 함.
왜일까?
만약에 buyer j 가 자신의 true value를 솔직하게 말하면, item i를 할당받는다고 하자.
그럼 buyer j의 payoff = vij - pij
그런데 j가 거짓으로 valuation을 말한다고 해보자.
두 가지 경우가 있을 수 있음
1. j가 할당받는 item이 변하지 않는 경우.
- j의 payoff가 변하지 않음.
- 가격 pij는 j를 제외한 나머지 buyer들에 의하여 결정되는 값이기 때문
- vij(그대로) - pij(그대로) = 그대로
2. j가 i가 아닌 다른 아이템 h를 할당받는 경우
- 새로운 payoff = vhj - phj
- if (vij - pij) > (vhj - phj) 라면, j는 strategy를 바꿀 incentive가 없다!
proving ( vij - pij ) > ( vhj - phj )
앞서 가격 pij 는 다음과 같이 구해진다고 함
그런데 왼쪽의 경우 아래 그림에서 (a) 이고
(a)는 optimal matching
- 전체 Slot, Buyer에 대해 total valuation이 최대
오른쪽 식은 (b)에 해당하는데, V^{S-h}_{B-j}의 경우는 j가 i를 할당받은 조건을 가지고
maximum total valuation 을 가지는 매칭을 정해지게 됨.
-> 이건 전체 모든 가능한 경우 중 optimal 한 결과인 (a) 보다 작거나 같을 수밖에 없음.
-> 결국 j는 i가 아닌 다른 아이템 h로 바뀔 인센티브가 없음.
-> truth value가 아닌 다른 어떤 값을 낼 인센티브가 없음
결국 모든 buyer들이 truty value를 내게 됨
정리하자면,
여러 개의 광고 slot(item)을 여러 advertiser(buyer)에게 할당하고 싶음.
market matching 방법대로 적용해서 Market Clearingn Price를 구하자.
그럼 optimal perfect matching -> total valuation도 최대가 됨.
그런데 이 방법은 광고주들의 valuation을 알아야 가능.
하지만 일반적으로 그걸 다 알고 있을 수 없음.
그래서 광고주들로 하여금 truth telling을 하게 하는 방법을 생각해냄. 그게 VCG.
어떻게 VCG는 truth telling을 하게 할까
1. matching은 중앙관리자, 즉 search engine (회사)이 함.
2. 가격은 각 buyer가 matching에 참여함으로써 다른 바이어들에게 끼치는 harm의 크기로 정함
=> 이렇게 했더니 buyer들의 dominant strategy = truth bidding이 되더라.
3. 그럼 그 valuation 가지고 search engine 은 total valuation이 최대가 되도록 매칭함. (sorting 해놓고 매 칭하면 됨)
가격 정하는 방법은, second-price auction에서 dominant strategy = truth bidding인 걸 이용해서 이걸 일반화해서 정한 거.
Generalized Second Price Auction (GSP)
대부분의 서치 엔진에서 적용한 방법은 VCG가 아니라 GSP
GSP는 특정 부분에 대해서만 일반화됨. 근데 걍 씀
- 각 광고주 j는 각자 본인들의 bid b_j를 제시함.
- b_j: 기꺼이 지불할 클릭 당 가격
- slot i 는 i번째로 높은 가격을 제시한 bidder에게 할당하고, 이때 가격은 i+1번째로 높은 가격으로 책정함.
GSP and VCG
- slot이 하나일 땐, 둘 다 second-price auction이랑 같은 결과임
- slot이 여러 개 일 땐, 각각 다른 결과가 나오게 됨.
가격 결정 방법
VCG
바이어 j가 아이템 i를 가져감으로써 다른 바이어가 가지는 harm의 크기로 결정
GSP
bids per click - b1, b2, ... 큰 것부터 정렬시키고, i에 대한 다음 사람의 가격 bi+1을 가지고 결정함.
price = ri * b(i+1)
ri : i가 가지는 클릭당 revenue
GSP 특징
- 구글이 개발함
- advertiser -> player
- bid -> strategy
- payoff -> revenue - price
- Nash equilibira -> 어떤 광고주도 본인의 bid를 바꿀 인센티브가 없는 상황! 을 추구함
- truth-telling이 nash equilibria를 구성하는 건 아님
- 여러 개의 equilibria가 존재 가능. 그중에는 total valuation을 최대화하지 않는 것도 있음
- 반드시 적어도 하나의 nash equlibrium set 존재
- 여러 equlibria 중 total advertiser valuation을 극대화시키는 것이 하나 있음
- GSP는 Nash equilibria를 구성하지만, VCG의 몇 가지 좋은 특징들은 없음.
- 서치 엔진 회사가 관심 있는 것은 결국 그들의 revenue를 극대화하는 것
- 어떤 GSP가 좋고 나쁜지는 명확하지 않음 - open question
Truth-telling may not be an equilibrium for GSP
- 만약 각 광고주들이 true value를 bid로 제시한다고 해보자.
sorting -> 순서대로 가져간다.
x는 a는 두 번째로 큰 y의 revenue per click에 해당하는 가격 10*6에 사간다.
x에게 a의 true valuation = 10*7 = 70이기 때문에, payoff = 70-60 = 10
만약, x가 거짓으로 bid=5로 제시한다고 해보자.
x는 그럼 두번째 슬럿인 b를 가져가게 되고, 이때 가격은 z의 가격 4*1 = 4이다.
x가 b에 대해 가지는 valuation = 4*7 = 28이기 때문에 payoff = 28-4 = 24이다.
-> x는 거짓으로 bid를 제시하는 것이 더 이득이다!
-> truth telling != nash equilibrium
Multiple and Non-Optimal Equilibria
- 하나 이상의 equilibrium set of bid 존재 가능함.
- 일부는 socially non-optimal assignment한 결과를 내기도 함.
Revenue of GSP and VCG
- GSP는 여러 가지의 equilibria 존재 가능
- GSP 가격은 VCG 가격(고정)보다 높을 수도 있고, 낮을 수도 있음
- 서치 엔진은 최대치가 더 높으니까 GSP 씀
x, y, z의 bid가 각각 5, 4, 2 일 때 - 각자 내는 금액은 10*4, 4*2, 0, 합치면 48 = 서치 엔진이 버는 돈
만약 bid가 각각 3, 5, 1일 때 - 각자 내는 금액은 4*1, 10*3, 0, 합하면 34 = 서치 엔진이 버는 돈
advertiser들의 true valuation이 저렇게 될 때, VCG 가격
x가 없으면, y=60-24=36만큼, z=4-0=4만큼 이득을 봄. x의 가격은 40
y가 없으면, z = 4-0만큼 이득을 봄. y의 가격은 4
총 합 44가 서치 엔진이 버는 돈.
GSP는 48 또는 34
VCG는 44
-> 48을 벌 수도 있기 때문에 서치 엔진은 GSP를 쓴다~
GSP에서 socially optimal assignment를 보장할 수 없을까 ?
market-clearing price를 생각해 보자.
MCP가 결정되면 그때의 매칭 결과는 socially optimal 하다.
maket clearing price (40, 4, 0)를 계산하고, 이 가격을 클릭 당 가격으로 바꿔줌.
각 슬럿의 시간당 클릭 수는 10, 4, 0 이므로 나눠주면 (4, 1, 0) 0은 걍 0.
그리고 4, 1은 y와 z의 bid가 됨. x는 4 이상만 내면 된다.
정리하면,
GSP는 buyer들로부터 하나의 bid 를 받고, 가격 순으로 매칭시킴.
그리고 낙찰가는 second price, 즉 하나 더 낮은 가격으로 매김.
valuation이 고정된 상태에서, 여러 bid가격 집합에 의해 nash equilibria 만들어질 수 있음.
적어도 하나의 equilibrium은 존재함.
그리고 그중 하나는 반드시 socially optimal 한 결과를 가짐.
GSP 가격은 VCG 가격보다 높을 수도 있고, 낮을 수도 있음. 높을 수도 있기 때문에 GSP를 쓴다.
'Computer Science > Software Application' 카테고리의 다른 글
[소프트웨어 응용] Matching Markets (1) | 2023.12.17 |
---|---|
[소프트웨어 응용] Auctions (3) | 2023.12.17 |
[소프트웨어 응용] Network Community & Community Detection (0) | 2023.10.20 |
[소프트웨어 응용] Structural Holes (0) | 2023.10.20 |
[소프트웨어 응용] 네트워크의 커뮤니티 구조 (1) | 2023.10.20 |