Algorithm: Auction for Dummy
세 번째는 가볍게 경매에 대해서 적으려 합니다. 경매는 과금과 연결되지만 과금은 다음으로 미룹니다.
흔히 경매라 하면 소더비나 크리스티 경매에서 미술품을 판매하는 것을 떠올릴 겁니다. 대략 시나리오를 적으면 다음과 같습니다.
경매 진행자: 작품 번호 ABC는 피카소가 XXXX년에 그린 작품으로 시작가는 100만 달러고, 10만 만덜씩 올리겠습니다. 100만 달러 계십니까?
경매 참여자 1: (손을 들어 경매에 참여한다.)
경매 진행자: 100만 달러 나왔습니다. 110만 달러 있을까요?
경매 참여자 2: (손을 들어 경매에 참여한다.)
경매 진행자: 110만 달러 나왔습니다. 120만 달러 있을까요?
...
경매 진행자: 200만 달러 나왔습니다. 이제부턴 20만 달러씩 올리겠습니다. 220만 달러 있을까요?
경매 참여자 1: (손을 들어 경매에 참여한다.)
...
경매 진행자: 350만 달러 나왔습니다. 400만 달러 있을까요?
참여자들: (조용히 있는다)
경매 진행자: 400만 달러 없으신가요? 세 번 부를 때까지 입찰자가 없으면 350만 달러로 낙찰하겠습니다. 350만 (쾅) 350만 (쾅) 350만 (쾅). 이상으로 작품번호 ABC는 여자 3이 350만 달러에 낙찰받았습니다. 다음 경매로 넘어갑니다.
대략 이런 시나리오가 가능하고 대부분 이 정도 수준에서 경매를 이해하고 있을 거라고 봅니다.. 이 예시는 아래 설명에서 계속 사용하겠습니다.
경매의 종류/구분
공개 Open vs 비공개 Sealed: 공개와 비공개 경매의 차이는 입찰자가 제시한 가격을 상대가 알 수 있느냐에 따라서 나뉩니다. 위의 미술품 경매에서는 진행자가 현재 입찰자의 가격을 모두에게 알려줬기 때문에 공개 경매의 형태를 띱니다. 가끔 TV에서 대형 토목공사 사업권이나 통신 주파수를 따낼 때도 경매 방식을 많이 사용하는데, 경쟁자 간의 치열한 눈치 싸움하는 걸 소재로 시용합니다. 상대가 얼마의 가격으로 경매에 참여할지 모르기 때문입니다. 상대보다 높게 제시하면 사업을 따내지만, 지나치게 높은 가격을 제시하면 터무니없는 비용이 발생합니다. 최근 현대자동차가 한전 부지를 살 때 경쟁자들보다 3배가량 높은 10조를 제시해서 낙찰은 받았지만 경제적으로 손해를 본 사례가 있습니다. 이렇게 상대의 입찰액을 비밀로 붙이는 것이 비공개 경매입니다.
English vs Dutch: 다음으로 잉글리시 옥션과 더치 옥션이 있습니다. 이름에서 알 수 있듯이 영국과 네덜란드에서 시작한 또는 주로 사용하는 경매 방식임을 알 수 있습니다. 더치 옥션은 아래의 다른 개념과 결합해서 생각해야 하지만, 일단 이 항목에서 짧게 설명하면 잉글리시 옥션은 위의 미술품 경매에서처럼 낮은 가격에서 시작해서 높은 가격으로 올려가면서 경매하는 것이고, 더치 옥션은 높은 가격에서 시작해서 낮은 가격으로 내려가는 것이라고 보면 됩니다. 가끔 (아래 참조) '세컨드 프라이스 옥션 = 더치 옥션'으로 알려졌지만, 최종 결정액 산정 방식보다는 가격을 올릴 거냐 내릴 거냐에 따라서 잉글리시/더치 방식이 나뉩니다. 예를 들어, 피카소의 ABC 작품을 1,000만 달러에서 시작해서 입찰자가 없으면 9000만 달러로 내려서 다시 확인하고, 또 없으면 더 내려서… 미술품 경매에서 더치 옥션은 살짝 와 닿지 않을 텐데, (추측컨대) 튤립 구근 경매를 생각하면 이해가 더 쉽습니다. 그래서 다음으로
단일 아이템 vs 복수 아이템: 위의 그림 경매는 하나의 작품만을 판매하지만, 튤립 구근 경매라거나 항구에서 이뤄지는 수산물 경매는 다수의 아이템들을 동시에 판매합니다. 예를 들어, 1,000 상자의 감자가 있습니다. 그런데 규모가 커서 한 공장에서 1,000 상자를 모두 구입할 수 없습니다. 이때 A공장에서는 500 상자만 사고 싶고, B공장에서는 800 상자를 사고 싶고 또 다른 공장에서는 또 필요한 만큼만 사고 싶습니다. 이 경우 A는 각각 5,000원씩 500 상자를 사고 싶다고 주문하고, B는 4,000원에 800 상자를, C는 6,000원에 300 상자를, … 로 경매에 참여합니다. C보다 높은 입찰이 없다고 가정하면, C에게 6,000원에 300 상자를, A에게 5,000원에 500 상자를 배당하고 남은 200 상자를 B에게 4,000원에 할당합니다. B는 800 상자가 필요했지만 더 높은 가격을 제시한 경쟁자들에게 우선 할당되고 남은 200 상자만 받을 수 있습니다. 이렇게 복수개의 아이템을 함께 경매할 수도 있고, 이런 식으로 상위 입찰자부터 아이템을 할당하는 것이 더치 옥션이라 보면 됩니다.
First Price vs Second Price: 이는 과금 방식과 관련 있습니다. First Price는 말 그대로 입찰가 그대로 과금하고, Second Price는 후순위 입찰가만큼을 과금하는 겁니다. FP가 단순해서 좋을 것 같지만 실제 SP가 시장의 왜곡도 적고 경쟁이 더 활발해서 이득이 됩니다. SP에서는 입찰자가 생각하는 아이템에 대한 실제 가치(가격)만큼 그대로 입찰에 참여하는데, 이를 Truthful telling이라 합니다. A가 생각하는 가치가 1,000원이어서 1,000원으로 입찰해서 낙찰받았는데, 후순위 입찰자가 700원에 입찰했다면 낙찰자는 1,000원이 아니라 700원만 지불하면 됩니다. 그래서 300원만큼의 이득을 얻습니다. 그런데 FP에서는 1,000원으로 입찰해서 낙찰받았으면 1,000원을 그대로 지불해야 합니다. 그런데 만약 후순위가 700원이었다는 것을 알았다면 300원을 손해 본 느낌입니다. 그래서 다름 경매에서는 1,000원짜리지만 다른 경쟁자들이 이보다 낮은 가격을 제시할 것으로 고려해서 800원에 입찰합니다. 만약 상대가 800원보다 높게 입찰하면 낙찰받지 못하게 되고, 역으로 700원에 입찰했다면 300원이 아니라 100원의 손해를 보는 셈입니다. 그래서 FP가 오히려 진실을 말하지 않음으로써 시장, 가격을 왜곡시켜서 참여자들의 모두에게 오히려 손해를 끼치는 현상이 발생할 수 있습니다. 그리고 흔히 SP를 Vickery 옥션이라 부릅니다. 그리고 SP 할 때 margin을 조금 붙이는 경우도 있습니다.
GSP vs VCG: GSP와 VCG는 둘 다 SP를 확장한 개념으로 아래에서 자세히 다루겠습니다. 보통 하나의 inventory에 하나의 광고만 노출하는데, 간혹 여러 개의 광고/아이템들을 순차적으로 노출하는 경우가 있습니다. 이때 노출 순위에 따라서 과금액을 정하는 방식으로 GSP와 VCG가 있습니다.
Reserve Price vs Bid Floor: 위의 미술품 경매에서 시작가를 100만 달러로 정했습니다. 이는 100만 달러 미만의 입찰은 받지 않겠다는 의미입니다. 이렇게 입찰가의 최소액을 정할 수 있는데, 이를 Reserve Price라 합니다. 반면 Bid Floor라는 개념도 있는데 역할은 RP와 거의 같지만 RP는 보통 공개/공표되고, BF는 비공개라는 차이가 있습니다. BF는 Hard BF와 Soft BF로 나뉘는데 이는 아래에서 다시 다룹니다.
현재 제가 알고 있는 경매 방식과 개념은 이 정도인데, 혹시 다른 방식이 있다면 댓글로 알려주세요. (경매가 전문 분야가 아니어서 일부 틀린 내용이 있을 수 있습니다. 직접 더블 체크하셔서 받아들이시고, 혹시 틀린 부분은 바로 지적해주세요.)
아이템이 하나만 노출될 때의 Second Price 옥션은 그냥 Vickery 옥션이라고 합니다. 그런데 여러 개의 아이템을 동시에 노출하고 또 노출 순위에 따라서 가치가 다르다면 어떻게 과금할 것인가에 대한 고민으로 GSP와 VCG가 나왔다고 보면 됩니다. 단순히 생각하면 노출 순위별로 모두 개별 경매를 붙이면 끝나지만 이는 다소 비효율적입니다. 그래서 한 번의 연산에서 여러 위치에 노출될 아이템들을 동시에 정하고, 각 위치별로 다른 가치/가격을 매기는 겁니다. GSP는 Generalized라는 용어에서 알 수 있듯이 SP를 일반화한 것입니다. 그냥 1순위는 2 순위 입찰액으로, 2순위는 3순위의 입찰액으로, 3순위는 다시 4순위의 입찰액으로, 계속 자기보다 바로 후순위의 입찰액으로 과금액을 정하는 방식입니다. 반면 VCG는 Socia Welfare를 최적화해서 후순위자가 잃어버린 welfare만큼 과금한다는 다소 이해하기 어렵습니다. 그래서 GSP와 VCG를 찾아보면 가장 자주 등장하는 예시로 설명합니다. GSP와 VCG의 수식은 따로 적지 않습니다. 궁금하신 분은 "VCG in Theory and Practice”라는 논문을 찾아보면 됩니다.
광고주 A, B, C 세명이 있습니다. 각각 광고주가 광고를 통해서 얻을 수 있는 이득 (즉, 광고를 클릭해서 방문할 때마다 얻는 가치)를 $10, $4, $2라고 가정하고, Truthful telling에 의해서 이 가격으로 입찰한다고 가정합니다. 그리고 광고는 2개만 노출되고 1순위에 노출되면 200회의 클릭이 발생하고, 2순위에 노출되면 100회의 클릭이 발생합니다.
GSP는 간단합니다. A는 $10로 입찰하지만 후순위 입찰액이 $4이므로 과금액은 $4가 됩니다. 그래서 A가 1순위에 노출돼서 총 200회의 클릭을 받기 때문에 최종적으로 A가 지불할 금액은 $800 (= $4 * 200)이 됩니다. 비슷하게 B의 과금액은 $2가 되고 2순위에 노출되어 100회의 클릭을 받습니다. 그래서 B의 최종 지불금액은 $200 (= $2 * 100)이 됩니다. 당연히 C는 입찰액이 3위 밖이어서 노출 기회를 얻지 못해서 지불금액도 $0이 됩니다.
VCG는 살짝 더 복잡합니다. 만약 A가 입찰하지 않았다면 B가 1순위에 노출돼서 200 클릭을 받고, C는 2순위에 노출돼서 100 클릭을 받습니다. 그러므로 B와 C의 총 가치 (welfare)는 (FP로 계산해서) $1,000 ( = $4 * 200 + $2 * 100)입니다. 그러데 만약 A가 $10으로 입찰하게 되면 B는 2순위로 밀려나고 100 클릭만 받게 되고, C는 노출 기회를 완전히 상실합니다. 이때 B와 C의 총 welfare는 $400 (= $4 * 100 + $2 * 0)이 됩니다. 그래서 A의 총 지불금액은 A가 등장함으로써 B와 C가 상실하는 welfare $600, 즉 $1,000 - $400이 됩니다. 비슷하게 (A는 이미 1순위에 노출됐다고 가정) B가 없을 때 C의 welfare는 $200인데, B가 중간에 끼어듬으로써 $200만큼 상실하게 됩니다. 그래서 B의 총 지불금액은 $200 (= $200 - $0)이 됩니다.
정리하면 GSP를 통해서 A는 $800, B는 $200을 지불해야 하고, VCG를 통하면 A는 $600, B는 $200을 지불해야 합니다. SP를 Truthful telling이라 했는데, 이렇게 복수 개의 아이템을 동시에 보여줄 때는 GSP는 Truthful telling 원칙이 깨지고 VCG는 여전히 Truthful telling입니다. 금액에서도 보듯이 VCG의 총 지불금액이 GSP보다 적어서 광고주 (입찰자)들에게 유리하고 또 Truthful telling도 되기 때문에 VCG가 더 낫다고 주장합니다. 맞는 주장이지만 꼭 그렇다고 단정하지는 못합니다. 대부분의 광고 인벤토리는 하나의 광고만 노출하는 single slot이고 이때 GSP와 VCG는 동일하게 Vickery Auction입니다. 그리고 예시에서는 총지불액에 큰 차이가 있지만, 실제 광고 경매에서는 가치의 갭이 별로 크지 않아서 실질적으로 GSP와 VCG의 차이는 거의 없(을 가능성이 큽) 니다. 결정적으로 GSP가 VCG보다 계산이 편해서 보통은 GSP를 많이 사용합니다. (구글은 GSP, 페이스북은 VCG)
RP/HBF/SBF를 설명하기 위해서 iF카카오2019의 발표자료에서 발췌했습니다. 아래 그림에서 각각은 독립적인 2번의 비딩을 그렸습니다. 먼저 RP는 경매에서 입찰 최소선을 지정하고 그 밑으로는 입찰을 받지 않겠다는 의미입니다. RP보다 높은 입찰 중에서 2nd price를 계산합니다. 만약 RP보다 큰 입찰이 하나밖에 없다면 이때 RP가 2nd price 역할을 합니다. 보통 SSP에서 DSP에 광고를 요청할 때 (eCPM기준) RP를 함께 제시하고 그 이상의 eCPM을 갖는 광고가 있을 때만 입찰에 참여하라는 의미로 많이 사용됩니다. DSP 서빙에서는 명시적으로 RP라는 개념은 없지만 내부적으로 저품질의 광고를 걸러내기 위해서 여러 기준의 cut-off를 설정하기도 합니다.
반면 BF는 보통 외부에 공개되지 않고 내부적으로 설정돼서 광고의 품질을 관리하거나 매출을 극대화하기 위해서 활용됩니다. BF를 사용한다 또는 어떤 방식을 사용한다 정도는 (선의의 원칙 상) 공개할 수도 있지만, 어떤 값으로 BF를 설정하는지는 공개되지 않습니다. 공개된다면 RP와 차이가 없어집니다. 트래픽의 가치(를 평가해서)에 따라서 동적인 BF를 갖기도 하고 그냥 글로벌한 값으로 설정되기도 합니다. BF는 운영 방식에 따라서 Hard BF와 Soft BF가 있습니다. 우선 HBF는 여러 측면에서 RP와 비슷하게 작동합니다. RP보다 큰 입찰을 받았더라도 HBF보다 낮은 입찰은 무시합니다. 만약 최고 입찰가가 HBF보다 낮다면 이 때는 경매가 유찰되어 그냥 No AD 상태가 됩니다. 그리고 HBF보다 큰 입찰이 하나밖에 없다면 RP처럼 HBF가 2nd price가 됩니다. 반면 SBF는 최고가 입찰액이 비록 SBF보다 낮더라도 유찰시키지 않고 대신 과금액을 2nd price가 아닌 1st price로 정합니다. 참고로, 2개 이상의 입찰이 HBF/SBF보다 높다면 이때는 정상적인 2nd price로 과금합니다. (참고로, 실제 SSP에서 HBF를 설정했을 때 매출이 조금 상승하는 것은 실험으로 확인했습니다.)
광고에서 경매는 SSP에서 DSP들 간에 이뤄지기도 하고, DSP에서 광고주들 간에 이뤄지기도 합니다. 그런데 조금만 깊이 생각해보면 이상한 현상이 발생합니다. 앞에서 1st price보다는 2nd price가 낫다고 계속 주장했기에 SSP와 DSP도 2nd price를 따릅니다. 그런데 2nd price가 SSP와 DSP에 동시에 사용된다면 과금액이 2번 할인되는 현상이 발생합니다. 그래서 DSP에서는 2nd price로 eCPM을 정하고, SSP에서는 1st price로 최종 과금액을 정하거나, 그 역으로 DSP에서 1st, SSP에서 2nd를 취하기도 합니다. 이는 SSP의 정책에 따라서 결정됩니다. 전혀 없지는 확언할 수는 없지만 두 곳 모두 1st로 과금액을 정하지는 않을 겁니다.