Simulation of Commission Design: 커미션 시스템 설계 Part 1

Luke Park
DECON
Published in
9 min readMar 15, 2019

Simulation of Commission Design

Part 0: Why Simulation?
Part 1: 커미션 시스템 설계 및 시뮬레이션 환경 소개
Part 2: 시뮬레이션 결과 분석

Commision System Design

디콘 시뮬레이션 시리즈의 이번 주제는 구매대행환경에서의 ‘커미션 시스템 설계(Commission System Design)’ 문제입니다.

어떤 도매상으로부터 신발 1,000켤레를 켤레당 만 원에, 3일간 판매하는 딜(Deal)이 올라왔다고 합시다. 이 제품을 매력적으로 생각한 소매상은 주문과 함께 해당하는 금액을 예치합니다.

만일 구매자(소매상)들이 충분히 모여 딜이 체결되면, 구매자들은 주문의 양과 시점으로부터 산정된 적정량의 커미션 포인트를 받습니다. 만일 딜이 실패하면 주문은 취소되고 동시에 예치금은 반환됩니다.

구매자들은 매력적인 제품을 취득함과 동시에 커미션 포인트로부터 얻는 이익을 극대화하고자 할 것입니다. 이 커미션 포인트를 어떻게 제공하는가에 따라 딜의 성사를 촉진할 수도, 혹은 커미션 포인트를 주지 않으니만 못한 결과가 나타날 수도 있습니다.

구매자 개개인이 최대의 이익을 달성하고자 전략적으로 행동하는 상황에서, 딜을 성사시키기 위해서는 어떻게 커미션 포인트를 분배해야 할까요?

커미션 시스템 설계 문제

가장 쉽게 생각할 수 있는 커미션 포인트 분배 방법론은 구매 수량에 비례하는 보상을 제공하는 것입니다. 구매 시점과는 상관없이, 물품을 많이 구매한 사람은 그에 비례하는 커미션 포인트를 분배받습니다.

x축을 딜이 성사될 때까지 남은 물품의 수량(이하 재고)으로, y축을 커미션 포인트로 보면 다음과 같은 함수로 표현됩니다.

균일형

함수의 모양이 y=t의 꼴로 나타나는바, 균일(uniform)하다고 칭하겠습니다.

커미션 포인트를 분배하는 방법들

균일형에서 구매자들은 많은 커미션 포인트를 받기 위하여 가능한 많은 물품을 구매합니다. 얼핏 이상적으로 보입니다.

하지만 균일형에서는 구매 시점에 따른 커미션 포인트의 차등이 없습니다. 주문과 동시에 구매 금액만큼의 예치금이 묶이게 되므로, 해당 금액만큼의 이자 소득이나 유동성 비용 등의 기회비용이 발생합니다. 따라서 최대한 딜에 늦게 참여하는 것이 이득입니다.

다른 관점에서, 구매 시점에 따라 커미션 포인트를 달리하면 구매자들의 딜 참여 시점을 적절히 조율할 수 있습니다. 도매상 입장에서는 최대한 일찍 딜이 성사되기를 원할 것입니다.

(좌) 체감형, (우) 체증형

체감형(decreasing)에서는 딜이 진행될수록 구매자가 받는 커미션 포인트가 줄어듭니다. 달리 말하자면 재고가 많이 남아 있을수록 구매자가 받는 커미션 포인트가 커집니다. 따라서 구매자들은 가능한 한 빨리 딜에 참여하고자 할 것으로 예상됩니다. 또한, 구매 시점을 앞당길 수 있을 것으로 기대됩니다.

반대로 체증형(increasing)은 어떨까요? 이 경우, 최대한 늦게 딜에 참여할수록 받는 커미션 포인트가 커집니다. 체증형의 결과로 두가지의 가능성을 생각해 볼 수 있습니다.

  • 모두가 눈치를 보다가 딜이 성사되지 않은 채로 타임아웃(timeout)이 되어, 딜을 성사시키는 것에 도움이 되지 않을 것이다.
  • 딜의 마지막 순간에 구매할 요인을 줌으로써, 많은 사람들이 마무리 되지 않은 딜에 참여한다. 즉, 딜을 성사시키는 것에 도움이 될 것이다. 또한, 공정성 측면에서도 딜을 성사시킨 사람에게 더 많은 인센티브를 주는 것이 합리적이다.
(좌) 볼록형, (우) 오목형

혹은 볼록(convex)하거나 오목(concave)한 이차함수의 꼴이면 어떨까요?

디콘의 이번 시뮬레이션 리포트에서는 다양한 커미션 포인트 분배 방법론을 시뮬레이션을 통해 평가하고, 가장 적합한 시스템이 무엇인지 알아보고자 합니다.

시뮬레이션 환경 세팅

다음은 시뮬레이션을 위해 설정한 환경입니다.

  • 에이전트 수: 네트워크의 참여자 수입니다. 즉, 구매자의 수입니다.
  • 에피소드: 각 에피소드는 딜의 시작에서 부터, 에이전트들이 행동을 결정하고, 커미션 포인트를 분배받고, 딜이 성사되거나 타임아웃되어 끝나기 까지의 일련의 과정입니다.
  • 메커니즘: 커미션 포인트 분배 방법론을 달리하여 시뮬레이션합니다. 무작위(random)형, 균일형, 체감형, 체증형, 볼록형, 그리고 오목형의 방법론을 평가합니다.
  • 커미션 풀(commission pool): 구매자들의 참여를 유도하고자 주어지는 커미션 포인트의 총량입니다.
  • 물품 판매 수량: 물품의 총량입니다. 초기 재고의 값으로 간주할 수 있습니다.
  • 물품의 가격: 각 물품이 가지는 금액입니다.
  • 구매 단위: 물품을 구매하는 단위입니다. 가령 구매 단위가 5라면 구매자는 0, 5, 10, 15 등으로 물품을 구매할 수 있습니다.
  • 최대 구매 수량: 한 구매자가 구매할 수 있는 최대 구매 가능 수량입니다. 또한, 본 시뮬레이션에서 각 구매자는 특정 딜에 대하여 단 한 번만 구매할 수 있습니다. 즉, 20개를 구매하고자 한다면 한 번에 20개를 구매해야 합니다. 10개씩 나누어 두 번에 걸쳐 구매할 수 없습니다.
  • 딜 진행 시간: 딜이 진행되는 시간으로, 본 시간이 다 소진되면 타임아웃되어 딜이 종료됩니다.

구매자들은 얻을 수 있는 커미션 포인트에서부터 예치금이 묶이면서 발생하는 기회비용을 제한 만큼의 이익을 극대화하고자 합니다. 에피소드를 거침에 따라 어느 시점에 몇 개의 물품을 구매할지를 학습해갑니다.

커미션 포인트 분배 방법론

커미션 포인트 분배 방법론으로 상기 언급했던 무작위형, 균일형, 체감형, 체증형, 볼록형, 그리고 오목형의 경우를 실험해보았습니다. 각각의 상세는 다음과 같습니다.

무작위형

특정 재고에서 받을 수 있는 커미션 포인트의 비율이 시뮬레이션이 시작할 때 무작위로 배정됩니다.

가령 물품 판매 수량 N이 10이며 [0.1, 0.2, 0.4, 0.5, 0.9, 0.3, 0.3, 0.3, 0.8, 0.2]와 같이 커미션 포인트 비율이 할당되었다고 합시다. 재고 10에서 3개의 물품을 구매한 경우, 다음과 같이 받을 커미션 포인트를 계산합니다.

균일형

물품 구매 개수와 받는 커미션 포인트가 비례합니다. 물품 판매 수량이 N이고 어느 에이전트가 M개를 구매한 경우의 이익은 다음과 같습니다.

체감형, 체증형

체감형은 x축을 재고의 양으로 간주한 증가함수에 기반해 커미션 포인트를 분배합니다. 선형적인 증가 형태는 일차함수 꼴로 간주할 수 있습니다. 이 경우 이익은 다음과 같이 계산됩니다. 현재 남은 재고의 양이 S, 물품 구매 개수는 M입니다.

기울기 a와 y절편 b는 모두 양의 값을 가집니다. 재고의 양이 많을수록 받을 수 있는 커미션 포인트도 커집니다. 딜이 진행됨에 따라, 즉 물품이 팔림에 따라 받을 수 있는 커미션 포인트가 점차 줄어듭니다.

체증형은 감소함수로 간주할 수 있습니다. 기본적으로 증가함수의 경우와 동일하나, 기울기 a가 음수입니다. 또한, 0에서 물품 판매 수량 N 사이의 x에 대하여 모든 y값은 0보다 커야 합니다.

볼록형, 오목형

볼록하거나 오목한 경우 모두 물품 판매 수량 N의 절반인 N/2를 기준으로 대칭을 이루는 이차함수 꼴로 나타납니다. 단, convex의 경우 곡률 a가 0보다 크며, concave의 경우 a가 0보다 작습니다. 또한, 가능한 모든 x에 대하여 대응되는 모든 y의 값은 0보다 커야 합니다.

이익은 다음과 같이 계산됩니다.

Cost

기회비용은 이자 산정의 형태에 기반하여 계산됩니다. 일찍 딜에 참여하여 토큰을 오래 예치하고 있을수록 더 많은 비용을 지불하는 셈입니다. 또한, 에이전트 각각의 이자율은 조금씩 차이가 있습니다.

신용등급의 분포
신용등급에 따른 이자율 (출처: 전국은행연합회)

각 에이전트는 2018년 12월 개인신용평가 관련 통계자료를 기반으로 한 분포에 따라 신용등급이 1등급에서 10등급까지 배정되고, 해당 신용등급에 따라 이자율에 차등을 두었습니다. 2018년 9월 금감원 금융정보통계시스템을 기준으로 총자산 기준 상위 5개 은행을 선정하였고, 이들의 대출 이자율의 평균 수치를 이자율로 채택하였습니다. 신용등급에 따른 이자율 차등을 반영하기 위해 대출 이자율에 기준하였습니다.

Reward

에이전트가 받을 보상은 이익과 비용의 차입니다. 각 에이전트들은 탐색을 통해 이 보상이 최대가 되도록 학습합니다.

마무리

이번 글에서는 ‘커미션 시스템 설계 문제’를 살펴보고, 커미션 포인트를 분배하는 여러 방법론을 소개하였습니다. 또한, 이들을 실험하기 위한 시뮬레이터의 설정값과 에이전트 및 환경 등을 소개하였습니다.

다음 글에서는 실제 시뮬레이션을 수행하고 도출한 결과를 분석하도록 하겠습니다.

Part 0: Why Simulation?
Part 1: 커미션 시스템 설계 및 시뮬레이션 환경 소개
Part 2: 시뮬레이션 결과 분석

디콘 공식 홈페이지: https://deconlab.io

--

--