이번에는 강화학습과 금융이 어떻게 결합될 수 있는지 보여줄 수 있는 하나의 사례로써, 강화학습을 이용하여 주문집행전략을 어떻게 짤 수 있는지 소개하고자 한다.
해당 포스트는 2019년 9월 9일(월) 여의도 글래드호텔에서 '인공지능을 활용한 자산운용'을 주제로 개최한 세미나 중 크래프트 테크놀로지스(Qraft Technologies, Inc)에서 김성민님께서 발표해주신 "강화학습을 이용한 최적 주문 집행 전략(Optimized Order Execution with Reinforcement Learning)"을 바탕으로 정리하여 내용을 재구성했다. 필자의 개인적인 생각이 들어갔을 수 있으므로 보다 정확한 내용은 영상을 직접 참고하길 바란다.
주문진행이란 무엇일까?
가장 먼저 주문 집행(Order Execution)이란 단어 그대로 주문을 내고 체결시키는 일련의 과정을 말한다. 그래서 주문집행은 사실상 모든 투자 결정에 있어서 한 공통 분모라고 할 수 있다. 예를 들어, 만약 당신이 ETF를 운용하거나, 주식을 사고 팔거나 혹은 리스크를 헤징을 할 때조차 이러한 주문집행은 필요하다.
그럼에도 불구하고 전략을 디자인할 때나 시뮬레이션을 돌릴 때, 많은 경우 이러한 주문집행을 고려하지 않는다. 주문집행이란게 앞서 말했듯이 단순히 주문을 내고 체결시키는 일련의 과정이라고 해서 그리 간단한 과정은 아니다. 왜냐하면 현재 어떤 가격에 주문이 체결될지 안다는 것은 결국 미래에 시장이 어떻게 흘러갈지 안다는 것과 같은 말이기 때문이다. 보통 투자 전략을 가정할 때, 종가로 매수한다고 가정하거나 조금 더 보수적인 경우 손해를 보더라도 오더북(Order book)을 보고 시장가로 매수한다고 가정할 수 있다. 하지만 일 단위정도의 거래할 때, 단순히 오더북을 보고 시장가로 매수한다는 것은 말도 안될 수 있다. 그래서 실제로 주문할 때와 시뮬레이션/백테스팅할 때와 같은 가정과 다를 수 있기 때문에, 원하는 가격과 실제로 체결된 가격사이의 차이, 즉 슬리피지(Slippage)가 발생하고 그 차이로 인해서 비용이 발생하게 된다. 하지만 이러한 주문집행을 최적화함으로써 비용을 줄일 수 있다면 그만큼 이익을 더 늘릴 수 있다는 결론에 이른다.
인공지능을 통해서 효율적인 주문집행을 하므로써 비용을 줄이고 이익을 늘릴 수 있지 않을까라는 의문에 대한 답이 바로 크래프트의 AXE라는 강화학습 알고리즘이다. 이러한 강화학습 알고리즘을 이용하여 분할주문집행하면 시장에 영향도 줄여서 슬리피지로 인한 손실도 최소화할 수 있다. 이에 자세한 설명과 관련 그래프 비교는 링크를 걸어둔 참고영상에서 3분 10초부터 확인하면 된다.
크래프트의 AXE와 JP모건의 LOXM과 관련된 내용도 추후 포스팅할 예정이다.
그럼 왜 강화학습을 사용해야할까?
이전에도 이러한 문제점을 해결하고자 규칙기반(Rule-based) 방식과 지도학습(Supervised Learning) 방식이 존재했었다. 하지만 하나의 주문에 대해서 주문집행과정은 여러번에 나뉘어 집행되게 된다. 사실 한번에 모든 걸 주문할 때, 가격이 떨어졌을 때 리스크가 크고 시장에 물량이 적을 경우 앞서 언급한 슬리피지가 발생하여 큰 손해를 보기 때문이다. 그렇기 때문에 주문집행과정을 다이어그램으로 나타내어보면 아래와 같이 나타낼 수 있다. 현재 시점에서의 상태를 보고 주문을 보고 체결을 하고, 다시 주문을 하는 식으로 나타낼 수 있다.
이러한 요소들만 적절하게 바꿔주면 앞서 말한 강화학습으로 모델링할 수 있다. 즉 위 다이어그램은 결국 강화학습에서의 상태 전이 다이어그램(State transition diagram)으로 볼 수 있다. 이렇게 하면 여러번의 행동(주문)을 통해서 얻어지는 보상(이익)을 최대화하는 강화학습 매커니즘과 동일하게 생각할 수 있다.
이러한 강화학습이 아닌 규칙기반방식이나 지도학습방식를 바탕으로 주문집행을 할 경우, 아래와 같이 3가지 문제점이 생긴다.
- 지연보상(Deferred Reward)
- 무한한 상태공간(Infinite State)
- 경로 의존성(Path Dependent)
그럼 크래프트가 제시한 각각에 대한 문제점과 그들이 제시한 해결책들을 조금더 구체적으로 하나씩 살펴보자.
Deferred Reward
문제점1: 현재 진행하는 주문이 일반적인 바로 체결되지 않을 수 있다. 지금 주문이 얼마나 효과적이었는지 그렇지 않은지 바로 판단할 수 없다는 점 때문에 결국 지도학습에서 사용하는 가장 중요한 라벨링(Labeling)을 사용하게 된다.
해결책1: 상태 모델링(State Modeling): 시장데이터(Market data)와 계좌데이터(Account data)를 적절하게 조합해서 강화학습에 알맞는 좋은 입력 데이터로 만들 수 있다.
강화학습에서는 흔히 모델링할 때 있어서, 마르코프 결정 과정(Markov Decision Process, MDP)을 따른다고 가정한다. 이러한 MDP의 가장 큰 특징 중 하나는 현재 상태에서의 취한 행동은 오로지 현재 상태에서 근거하고, 결코 과거의 상태와는 상관이 없다는 것이다. 하지만 주문집행 과정을 생각하면 이런 특징과는 조금 상이하다. 이러한 가정와 유사하게 만들기 위해서, LSTM(Long Short-Term Memory)을 사용해서 입력을 인코딩하여 과거의 정보를 가져올 수 있게 한다.
강화학습에서 사용되는 LSTM과 지도학습에서 사용되는 LSTM은 약간 차이가 있다. 지도학습에서는 한번의 학습에서 여러 개의 데이터들의 순서에 따라 인코딩하기위해서 사용되는 반면에, 강화학습에서는 한번의 에피소드(주문집행)에서 각가의 주문마다의 상태를 인코딩해서 현재 상태로 만들기 위해서 사용된다는 점입니다. 여기서 즉 강화학습에서 사용한 LSTM은 하나의 주문집행이라는 행위를 LSTM에 차례대로 넣어서, 주문집행이 진행되며 발생한 관측치별로 상태를 만드는 것이다. 이렇게 스텝마다의 상태 정보를 버리지 않고 LSTM으로 인코딩해주므로써, 과거의 관측치들을 현재 상태에 반영할 수 있고, 결과적으로 강화학습 과정에 어느정도 근사할 수 있다고 볼 수 있다. 물론 크래프트에서는 이뿐만이 아니라 추가적으로 다른 방법들도 결합하여 진행하고 있다.
Infinite State
문제점2: 주문할 때 시장에서 존재할 수 있는 상태(State)가 무한에 가깝도록 많고, 기술적 지표 또한 상당히 많아서 규칙기반 방식처럼 선형적으로 결합해서 사용하는 방식은 옳지 못하다.
해결책2: 모방학습(Imitation Learning): 인공지능에게 주문집행을 할 때, 어떻게 해야 보상을 극대화하는지 이에 대한 가이드라인을 정해줄 수 있게 도와줄 수 있다.
일반적으로 강화학습은 모델이 스스로 여러번 탐색/탐험하면서 최적의 정답을 찾습니다. 가능한 모든 상태에 대해서 찾아가다보면 점점 보상을 더 많이 주는 방법을 찾아가게 되고, 계속 보상을 더 많이 주는 행동을 선택하면서 이상적인 상태에 도달하게 된다. 이때 발생하는 문제점 중 하나는 만약 목표로 하는 상태가 너무 복잡하면 모델이 학습이 제대로 되지 않는 경우가 발생하게 된다. 이 때, 사용할 수 있는 기법 중 하나가 모방학습이다. 모방학습이란 정답에 해당하는 행동을 알려주고, 정답과 최대한 유사하게 행동하도록 학습시키는 방식을 말한다. 일반적인 경우, 모델이 감도 잡지 못하고 학습이 제대로 되지 않을 수 있지만 이렇게 모방학습을 하게 되면 정답과 유사하게 행동할 수 있도록 가이드라인을 제시하기 때문에 일반적인 강화학습보다 효율적으로 학습할 수 있다. 이러한 점을 살려서 모델이 주문집행을 효율적으로 할 수 있도록 초기 학습시에는 모방학습을 진행하여 감을 잡게 해준다.
모방학습에는 여러가지 종류가 있는데, 그 중에서도 크래프트에서는 미래 데이터를 이용해서 주어진 환경에서 최적의 행동을 찾을 수 있는 별도의 알고리즘을 만들었다. 조금 더 구체적으로 설명하자면, 정답 데이터가 많을 때 이용하기 좋은 알고리즘인 Behavioral cloning를 이용해서 앞서 말한 네트워크를 사전 학습(Pre-trained)하여 사용했다.
Path Dependent
문제점3: 여러 번의 주문을 순차적으로 주문을 하면서 최종 단계에서 보상을 결정한다. 이러한 일련의 주문들이 어떠한 하나의 경로가 되는데 이 때 최선의 경로를 결정하는 문제는 기존의 지도학습 방식이나 규칙기반 방식으로는 해결이 사실상 불가능하다.
해결책3: 주문집행 특화된 모델 구조(Dedicated Structure Modeling): 주문집행에 최적화된 네트워크 구조를 설계하여 이를 해결할 수 있다.
크래프트에서는 여러번의 시도 끝에, 일반적인 네크워크 구성보다 행동을 판단하기 위해 학습할 때 조금 더 효율적인 구조를 찾아서 구성했다. 초기 실험단계에서는 일반적인 네트워크와 똑같이 네트워크에서 행동을 여러 개 출력하고 그 결과대로 주문하게 했었다. 이렇게 되면 예측하는 행동들이 과도하게 편향되면서, 주문을 전부 집행해버리거나 아예 하지 않는 결과를 나타냈다. 이는 앞서 말했듯이 분할하여 매수/매도하는 가정과는 완전히 상반되게 행동한 것이다. 이러한 문제점을 해결하기 위해서 네트워크가 행동을 판단하는 부분을 아래와 같이 수정했다.
기본 네트워크를 공유하는 3개의 Actor가 1)각각 어느정도 주문을 할지, 2)얼마만큼 취소를 얼마나 할지 그리고 3)현재각각의 주문에 얼마만큼 할당할지를 결정하는 방식으로 구성했다. 주문이 체결됨에 따라서 추가 주문을 결정하는 네트워크(1)와 주문 취소를 결정하는 네트워크(2)가 각각 어느 하나는 긍정적인(Postive), 남은 하나는 부정적인(Negative) 보상를 받게 된다. 이는 두 네트워크(1,2)를 상호 적대적으로 학습되게 만든다. 또한 최종적으로 각각의 주문에 얼마만큼 할당할지 결정하는 네트워크(3)가 현 시점에서 유효한 주문량을 결정합니다. 이러한 방식으로 행동을 결정하므로써, 주문을 한번에 다하거나 혹은 아예 하지 않는 것과 같은 행동은 더이상 하지 않게 되며 적절한 양을 주문하도록 네트워크가 학습됩니다.
아래는 발표가 아니라, 실제 크래프트 테크놀로지의 홈페이지로 들어가서 AXE에 대한 세부적인 모델 구조를 가져왔다. 혹시 구체적으로 궁금한 사람은 여기로 들어가서 확인하길 바란다.
실제로도 주문집행할 때, 강화학습이 잘 동작할까?
2018년 말, 크래프트에서는 현직 딜러 상대로 하나의 트레이딩 대회를 개최하였다. 실제로 이 대회에서 AXE은 우승을 하면서, 인간 딜러들보다 VWAP 대비 5bp 정도 더 성능이 좋은 것을 확인할 수 있었다. AXE는 이 대회에서 트레이딩에 사용된 금액도 10억 이상이었음에도 불구하고, 실제로 시장에 영향을 최소화하는데 성공했다고 판단된다.
앞으로 나아갈 길은?
해당 내용은 간단하게 발표자의 키워드만 정리하여 넣어뒀다. 구체적으로 궁금한 사람은 직접 참고하길 바란다.
- Cloud Based Distributed Learning
- 강화학습을 클라우드 컴퓨팅을 활용하여 장점을 극대화할 수 있음
- 클라우드 컴퓨팅의 장점: 1) Scalable, 2) Cost Efficient
- 크래프트는 이러한 장점을 잘 살려서 아래 3가지를 개발 중
- Scalable RL Framework
- Fault Tolerant Design
- Hyperparameter Search
- NLP Based Media Analysis
- OpenAI GPT-2 (현재에는 GPT-3 나왔음)
- Sentiment 정보를 빼내오자!
참고자료
https://www.qraftec.com/execution
www.qraftec.com/s/QRAFT-OPTIMIZED-ORDER-EXECUTION-WITH-REINFORCEMENT-LEARNING_SEONGMINKIM.pdf
'강화학습(Reinforcement Learning)' 카테고리의 다른 글
[리뷰] 심층 강화학습 인 액션 (1) | 2020.11.23 |
---|---|
강화학습(Reinforcement Learning)이란 무엇일까? (0) | 2020.06.22 |