Skip to main content

8 posts tagged with "paper-review"

View All Tags

· 17 min read
Minsuk Kim

KDD Workshop on Machine Learning in Finance

Minsuk Kim, Gyeongmin Kim, Byungchul Kim, Junyeong Yong, Jeongwoo Park. "BIRP: Bitcoin Information Retrieval Prediction Model Based on Multimodal Pattern Matching"

KDD Workshop

BIRP: Bitcoin Information Retrieval Prediction Model Based on Multimodal Pattern Matching

안녕하세요, 마인즈랩 BRAIN NLP팀에서 근무하고 있는 김민석입니다. 이번에 KDD workshop에 제출한 작업물에 대해서 이 블로그 포스트를 통해 간략하게 설명해보려합니다. 이전의 제 블로그 포스트 CBITS처럼 논문의 모든 부분을 설명한다기보다 중요한 부분만 간략하게 설명할 예정이니 자세한 내용은 논문을 통해 확인해주시면 감사하겠습니다. 이번 포스트는 이전 CBITS에서 소개한 한글 크립토 언어모델과 트레이딩 봇 프레임워크를 활용해서 이전 블로그 포스트 내용을 아시면 이 포스트도 읽는데 도움이 될 것 같습니다. 추가적으로 CBITS를 최근에 거의 한달간 (대략 3월 18일 ~ 4월 18) 실전투자를 돌리면서 수익률을 기록해둔 페이지가 있는데 여기서 확인해보실 수 있습니다. 실투를 진행하면서 어떻게 봇을 고도화 시킬 수 있는지에 대한 많은 아이디어들을 얻었습니다. 그리고 한글 크립토 언어모델들은 제 huggingface organization 에 전부 공개해놔서 여기서 다운받아서 사용해보실 수 있습니다. 모델들은 추가적인 사전학습이나 파인튜닝이 진행되면서 계속 업데이트를 할 예정입니다.

이번 논문은 short paper, 그리고 industry쪽에 초점을 맞추는 방향으로 작성을해서 내용이 짧고 가볍습니다. 주식이나 코인쪽에서 다양한 패턴매칭 툴이 존재합니다. 대부분 패턴매칭 툴은 현재 차트 구간이 주어지면 과거 유사한 차트 구간을 포착해서 트레이더에게 보여주는 방식으로 동작합니다. 그럼 트레이더는 해당 과거 유사한 구간을 보고 그 당시에 가격이 어떤식으로 흘러갔는지 참고해서 현재 투자에 있어서 가장 좋은 행동은 무엇일지 결정합니다. 코인쪽에서 이러한 패턴매칭 툴의 예시는 trendspider 아니면 miningcalc.kr 정도가 먼저 생각납니다. 하지만 이러한 대중적으로 공개된 패턴 매칭 지표들은 크게 두가지 한계점이 있다고 생각했습니다. (1) 일차원적으로 차트 데이터만 고려해서 패턴 매칭을 진행합니다. (2) 유사 차트 구간을 추천하고 이후의 행동은 모두 트레이더에게 맡깁니다. 이 두가지 문제점을 address하기 위해서, 저희는 차트 데이터와 텍스트 데이터 (코인니스 뉴스 속보)를 둘 다 활용해서 패턴 매칭을 하는 방법을 제시했고 이러한 유사 차트 구간 정보를 어떻게 모델링에 활용하면 좋을지에 대한 아이디어와 실제로 구현했을때 이러한 방법이 투자에 있어서 도움이 될지를 보여줬습니다. 논문 제목에서 볼 수 있듯이 비트코인 가격에 대한 패턴 매칭을 진행했지만, 여기에서 제시하는 방법론은 적절한 데이터만 구할 수 있다면 다른 종목으로도 충분히 확장이 가능해보입니다.

Contributions

  • 차트 데이터와 코인니스 속보 텍스트 데이터를 활용한 멀티모덜 비트코인 가격의 패턴매칭 방법을 제시합니다.
  • 멀티모덜 패턴매칭 방법으로 얻은 정보를 비트코인 방향성 예측 모델링에 활용하는 방안을 제시하고, 이 방법이 패턴매칭 정보를 활용하지 않을때보다 더 유용하다는걸 실험적으로 보여줍니다.

비트코인 방향성 분류 프레임워크에 멀티모덜 패턴매칭 정보 사용하기

전체적인 비트코인 방향성 분류 프레임워크는 이전 CBITS와 매우 유사합니다. Ternary classification으로 4시간 단위로 접근하되, 이전 CBITS에서는 뉴스 데이터의 감성 점수를 차트 데이터와 활용했다면, 이번 BIRP는 특정 방식으로 랭크된 과거 차트 구간들의 voting 정보를 피처로 활용합니다 (정확히는 normalize된 voting 정보를 활용합니다). 아래 Figure 1에 전체적인 프레임워크를 묘사했습니다.

BIRP Architecture
BIRP Architecture

저희는 네가지 랭킹 방식을 제시했는데 다음과 같습니다:

  • random
    • 현재 차트 구간이 주어지면 과거 차트 구간 중 랜덤하게 30개를 샘플해서 가져옵니다.
  • euclidean
    • 현재 차트 구간이 주어지면 과거 차트 구간 중 현재 차트 구간과의 L2-distance가 가장 가까운 구간 top 30개를 랭크해서 가져옵니다.
  • TS2Vec
    • 비지도 방식으로 시계열 데이터의 특성들을 학습해서 다양한 downstream task에 대해 효율적으로 임베딩을 뽑는 방식인 TS2Vec 모델을 사용해서 시계열 임베딩을 계산합니다. 현재 차트 구간의 임베딩을 계산하고, 현재 구간의 임베딩과 코사인 거리가 가장 가까운 과거 차트 구간들의 임베딩들 top 30개를 랭크해서 가져옵니다.
  • Multimodal
    • CryptoRoBERTa를 이용해서 해당 차트 구간동안 나온 모든 뉴스 데이터의 평균 임베딩을 계산하고, 해당 차트 구간의 시계열 데이터의 임베딩을 TS2Vec으로 계산합니다. 이후에 평균 뉴스 임베딩과 시게열 데이터 임베딩의 합해서 멀티모덜 임베딩을 구합니다. 그리고 이러한 멀티모덜 임베딩들의 코사인 유사도가 가장 가까운 순으로 top 30개를 랭크해서 가져옵니다.
    • 뉴스 임베딩과 차트 임베딩을 더할때 둘의 차원을 맞추기 위해서 뉴스 임베딩의 차원을 UMAP으로 줄여주는 과정을 거쳤습니다.

실험 데이터

데이터는 이전 CBITS와 비슷하게 바이낸스에서 긁어온 비트코인 차트 데이터와 코인니스에서 얻은 속보형 뉴스 데이터 입니다. 전체 차트와 뉴스 기간은 2017-08-23 16:00:00부터 2023-01-15 20:00:00 까지였고 (11,812개의 데이터 포인트), 차트 데이터는 4시간봉으로 긁어왔습니다. 과거 유사한 구간을 랭킹하는 작업이 필요하기 때문에 풍부한 양의 candidate data가 필요해서 첫 80%의 데이터를 candidate로 나머지 20%의 데이터를 train/validation/test set으로 나눠서 실험을 진행했습니다. train/validation/test set의 기간은 2021-12-18 04:00 부터 2023-01-15 20:00:00까지였고 총 2,363개의 데이터 포인트로 구성이 되어 있었습니다. train/validation/test의 비율은 8:1:1로 진행되었고 각 2,363개의 데이터포인트는 candidate 데이터와 특정 랭킹 방법 (multimodal, euclidean, ts2vec, random)으로 비교되어 해당 데이터포인트와 가장 유사한 30개 데이터포인트들을 미리 계산해뒀습니다.

다른 패턴매칭 방법들과 멀티모덜 패턴매칭 방법의 성능 비교와 Backtest 결과

CBITS와 비슷한 프레임워크와 모델링 방식을 사용했지만 사용하는 모델 자체는 XGBoost하나로만 제한시키고 다양한 랭킹 방법을 비교하는 방식으로 실험을 진행했습니다. 만약 시간적 여유가 더 있었다면, 다른 모델들도 활용해서 여러가지 조합을 실험해 볼 수 있었을 것 같습니다.

Table1

voting 정보를 top 5, 10, 15, 20, 25, 30를 활용하는 방법으로 진행했는데 보다시피 multimodal 방식의 랭킹을 이용해서 voting feature를 사용하는게 이러한 정보를 사용하지 않는것과 비교해서 가장 높은 성능 향상을 보였습니다.

그리고 top 5, 혹은 top 10을 활용하는게 대부분의 경우 결과가 가장 좋아보입니다. 추측이지만 너무 많은 과거 유사 구간들로부터 voting 정보를 계산하면 noise가 데이터에 너무 많이 추가되는 경향이 있는 것 같습니다.

정확도나 F1 수치 자체로만 본다면 아직 개선해야할점이 많지만 유사도 기반 랭킹으로 얻은 voting 정보를 활용하는게 유용하단걸 보여주기에는 충분해 보입니다.

Backtest 결과
backtest

multimodal top 5 방식의 랭킹으로 voting 정보를 계산해서 backtest를 진행했을때 test set에서 buy and hold를 이기는 모습을 보여주면서 이 방식을 고도화시키면 수익률이 뛰어난 모델을 만들 수 있을 것 같습니다 (이전 CBITS와는 다르게 논문 제출 당시 아쉽게도 실투 결과를 포함할 시간은 없었습니다).

Conclusion

차트 데이터뿐만 아니라 뉴스 데이터도 활용해서 멀티모덜한 방법으로 유사한 과거 차트 구간을 랭킹하는 방법을 제시했습니다. 차트, 뉴스외에도 더 많은 정보를 포함한 랭킹 방식도 미래에 개발할 수 있을 것 같습니다 (비트코인의 경우 BTC dominance, Dollar index, on chain data같은 정보도 포함해서 유사도 랭킹에 활용). 그리고 이렇게 랭크해서 얻은 과거 유사 차트 구간정보를 활용해서 비트코인 방향성 예측에 도움이 되는 피처로서 활용할 수 있다는것도 실험적으로 보여줬습니다.

트레이딩 봇 뿐만 아니라 이러한 임베딩 정보를 활용한 유사 코인 뉴스 검색기나 패턴 매칭 툴도 만들어서 빠른시일내에 서비스를 진행할 계획도 있습니다. 아래 예시는 유저가 쿼리 뉴스를 입력하면, 해당 쿼리 뉴스와 유사하다고 판단된 과거 뉴스를 랭킹해서 보여주고 해당 뉴스가 나온 시점의 비트코인 차트 움직임도 보여줘서 (30분봉 기준으로) 투자자가 참고할 수 있게 합니다. 이 논문 작업을 진행하면서 매우 다양한 비트코인 투자 지표 아이디어가 떠올라서 이러한 아이디어들들 구현해보고 서비스해보는 목표가 생겼습니다.

임베딩을 활용한 랭킹 지표 예시
backtest

트레이딩 관련 논문을 하나 더 준비중인데, 완성이 되면 블로그에 또 업데이트하도록 하겠습니다. 글 읽어주셔서 감사합니다!

References

Tianqi Chen and Carlos Guestrin. 2016. XGBoost: A Scalable Tree Boosting System. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (San Francisco, California, USA) (KDD ’16). ACM, New York, NY, USA, 785–794. https://doi.org/10.1145/2939672.2939785

Ting Chen, Simon Kornblith, Mohammad Norouzi, and Geoffrey Hinton. 2020. A simple framework for contrastive learning of visual representations. In International conference on machine learning. PMLR, 1597–1607.

Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Association for Computational Linguistics, Minneapolis, Minnesota, 4171–4186. https://doi.org/10.18653/v1/N19-1423

Guozhu Dong and Vahid Taslimitehrani. 2016. Pattern-aided regression modeling and prediction model analysis. In 2016 IEEE 32nd International Conference on Data Engineering (ICDE). 1508–1509. https://doi.org/10.1109/ICDE.2016.7498398

Tianyu Gao, Xingcheng Yao, and Danqi Chen. 2021. SimCSE: Simple Contrastive Learning of Sentence Embeddings. In Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing. Association for Computational Linguistics, Online and Punta Cana, Dominican Republic, 6894–6910. https://doi.org/10.18653/v1/2021.emnlp-main.552

Xueyuan Gong and Yain-Whar Si. 2013. Comparison of subsequence pattern matching methods for financial time series. In 2013 Ninth International Conference on Computational Intelligence and Security. IEEE, 154–158.

Pengcheng He, Xiaodong Liu, Jianfeng Gao, and Weizhu Chen. 2021. DEBERTA: DECODING-ENHANCED BERT WITH DISENTANGLED ATTENTION. In International Conference on Learning Representations. 1–21. https://openreview.net/forum?id=XPZIaotutsD

Gyeongmin Kim, Minsuk Kim, Byungchul Kim, and Heuiseok Lim. 2023. CBITS: Crypto BERT Incorporated Trading System. IEEE Access 11 (2023), 6912–6921. https://doi.org/10.1109/ACCESS.2023.3236032

Leland McInnes, John Healy, and James Melville. 2018. Umap: Uniform manifold approximation and projection for dimension reduction. arXiv preprint arXiv:1802.03426 (2018).

Satoshi Nakamoto. 2008. Bitcoin: A peer-to-peer electronic cash system. Decentralized Business Review (2008), 21260.

Marc Velay and Fabrice Daniel. 2018. Stock chart pattern recognition with deep learning. arXiv preprint arXiv:1808.00418 (2018)

Zhihan Yue, Yujing Wang, Juanyong Duan, Tianmeng Yang, Congrui Huang, Yunhai Tong, and Bixiong Xu. 2022. Ts2vec: Towards universal representation of time series. In Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 36. 8980–8987.

· 19 min read
Minsuk Kim

IEEE Early Access

Gyeongmin Kim, Minsuk Kim, Byungchul Kim, Heuiseok Lim. "CBITS: CryptoBERT Incorporated Trading System"

IEEE Access

CBITS: CryptoBERT Incorporated Trading System

안녕하세요, 마인즈랩 BRAIN NLP팀에서 근무하고 있는 김민석입니다. 이번에 IEEE Access에 accept를 받은 작업물에 대해서 이 블로그 포스트를 통해 간략하게 설명해보려합니다. 논문의 모든 부분을 설명한다기보다 중요한 부분만 간략하게 설명할 예정이니 자세한 내용은 논문을 통해 확인해주시면 감사하겠습니다.

평소에도 자연어 데이터를 사용한 금융 상품 가격 예측에 관심이 많은 편이고 특히 뉴스, 속보, 트윗등에 매우 민감한 자산인 암호화폐, 그리고 그중에서도 대장격인 비트코인의 추세 예측에 관심이 많았습니다. 따라서 암호화폐 분야에 domain-specific 언어모델을 사전학습 시켜봐야겠다고 생각했고, 공개된 한국어 언어모델이 많이 없는 상황이니 아예 한국어 사전학습된 암호화폐 language model (LM)을 만들어보자는 취지에서 시작하게 된 프로젝트입니다 (한국어 언어모델에 고집한 이유는 사실 더 있고 아래 추가로 설명하겠습니다). 현재는 huggingface에 공개된 영문 cryptobert 모델이 존재하긴하지만, 저희가 작업했을 당시에는 암호화폐쪽의 domain specific한 언어모델이 존재하지 않았습니다. 저희가 진행한 프로젝트가 거의 최초의 암호화폐 domain-specific한 언어모델을 만드려는 시도가 아니었을까 생각합니다. 만들어진 암호화폐 언어모델들을 활용해서 비트코인 선물시장 (BTC USDT Perpetual)에서 거래를 하는 투자봇을 만들어봤고 실전투자에도 투입시켜서 수익을 달성하는걸 확인했습니다. 매우 간단한 시도라서 사실 만들어진 언어모델로 훨씬 고도화된 시스템도 만들 수 있고, 단순 투자봇뿐만 아니라 암호화폐 관련 텍스트 유사도 측정등의 다양한 테스크에도 사용될 수 있다고 생각합니다. 이번 작업물이 accept를 받음으로써 crypto LM을 활용한 후속 연구를 추가로 더 하고싶은 motivation도 생겼습니다. 저희 한국어 crypto 언어모델들의 체크포인트는 huggingface에 공개되어 있습니다.

Contributions

  • 코인니스 뉴스로 구성된 비트코인 가격에 대해서 해당 뉴스가 호재성인지, 악재성인지, 중립인지 레이블된 파인튜닝 데이터셋을 제작했습니다.
  • 암호화폐 사전학습용 corpus를 구축하고 세가지 언어모델 (BERT, RoBERTa, DeBERTa)를 사전학습 시키고, 위에서 언급한 파인튜닝 데이터셋으로 비트코인 감성분류 테스크에 대해서 학습시켰습니다.
  • 비트코인 선물시장에서 동작하는 간단한 분류기반 트레이딩 프레임워크를 제시했습니다.
  • 해당 트레이딩 프레임워크에 crypto 언어모델을 사용하여 전처리된 정보를 추가로 사용하면 성능이 향상된다는걸 증명했습니다.

한국어 crypto 언어모델을 만든 이유

논문에서는 한국어 모델을 만든 여러가지 이유에 대해서 설명하지만 가장 결정적인 두가지 이유는:

  • 코인니스라는 뉴스 소스에서 나오는 정보를 실시간으로 해석하는 언어모델을 만들고 싶었고 이 소스는 한국어로된 소스입니다
  • 이렇게 만들어진 한국어 암호화폐 언어모델로 다양한 암호화폐 관련된 지표, 툴 혹은 투자봇을 만들어서 나중에 한국 시장을 상대로 서비스를 해보고 싶었습니다.

이 코인니스라는 뉴스 소스에 대해서 설명을 덧붙이자면 24시간, 365일동안 속보형식으로 구독자에게 텔레그램을 통해서 전달해주고 내용은 다양한 뉴스 소스들, 트위터, 그리고 온체인 모니터링 사이트 (e.g. whale alert) 같은 소스들을 계속 모니터링하여 정보를 정리해서 전달해줍니다. 하루에 평균 100-150개 정도의 속보가 올라옵니다. 텍스트 형식의 속보뿐만 아니라 다양한 지표 (RSI, fear-greed index 등등)과 같은 정보들도 정리해서 올라옵니다. 거기에 구독자들이 직접 참여해서 해당 뉴스가 bullish한 내용을 담고 있는지 bearish한 내용을 담고 있는지 투표를 하는 기능도 있습니다.

데이터 제작과정

Pre-training용 corpus의 경우, general text + crypto domain specific text로 진행되었고, crypto domain specific text는 다양한 한글 뉴스 소스 (파인튜닝에 사용된 코인니스 뉴스들은 제외), 해시넷같은 암호화폐 위키 관련 글들, 한국어로된 암호화폐 관련 논문, 암호화폐 관련 블로그글, 거래소에 실려있는 암호화폐 관련 설명글, 커뮤니티 사이등 다양한 소스에서 웹 크롤링을 실시해서 대략 1GB의 텍스트로 구성이 되었습니다. 시간적 여유가 많지 않아서 매우 큰 사전학습 corpus를 구축하지는 못했지만 그래도 아래 보이는 결과표처럼 암호화폐 domain에 사전학습 되지 않은 모델들보다 감성분류 테스크에서 성능이 더 좋은 모습을 보였습니다.

Fine-tuning 데이터의 경우, 코인니스에서 2018-01-19 부터 2022-04-16기간동안의 뉴스를 긁어와서 해당 뉴스들이 비트코인 가격에 대해서 호재, 악재, 중립인지 레이블링을 진행했습니다. 레이블링은 저와 다른 한명의 전업투자자가 진행을 했고, 시중에 나와있는 FinBERT모델 (그당시에는 영문 cryptobert도 존재하지 않았습니다)이 계산한 해당 뉴스의 감성점수, 코인니스의 bull/bear vote, 그리고 해당 뉴스가 나온 시점에 비트코인 가격이 어떻게 변동했는지등의 정보도 고려해서 레이블링이 진행되었습니다. 레이블링을 할때 비트코인 가격에 어떻게 영향을 끼칠지 위주로 레이블링을 해야했기 때문에 기준표를 만들어서 레이블러들이 기준표를 참고해서 레이블링을 진행하기로 합의를 봤었습니다. 총 18가지 기준이 있었고 해당 기준은 논문의 annotation guidelines에서 찾아보실 수 있습니다.

비트코인 감성 분류 태스크 성능

Table0

총 3개의 언어모델을 사전학습 시키고 fine-tuning 시켰습니다. CryptoBERT, CryptoDeBERTa는 마인즈랩 BRAIN-NLP에 근무하시는 용준영 선임님이 사전학습을 진행하셨고, CryptoRoBERTa는 고려대학교 박사과정이신 김경민님이 진행했습니다. Fine-tuning후에 downstream task에서의 성능을 저희 crypto LM들과 공개된 다국어 모델 (mBERT, XLM-RoBERTa)와 비교했을때 저희 crypto LM들의 성능 (F1 Score)가 더 우수한걸 확인했습니다. Crypto LM중에서 CryptoRoBERTa가 fine-tuning후에 가장 성능이 좋아서 이후에 언급된 실험들에는 CryptoRoBERTa가 사용되었습니다.

간단한 분류기반 트레이딩 프레임워크

만들어진 crypto LM을 가지고 매우 다양한 태스크를 수행할 수 있지만, 저희는 우선 이 모델들을 활용한 간단한 자동 투자봇을 제안했습니다. 투자봇은 naive하게 4시간마다 거래를 하게끔 만들었고, 수행할 수 있는 액션이 3개중 한개입니다: Long, Short, Hold. 현재시간부터 이후 4시간동안 가격이 0.75% 이상 오를 것 같으면 레이블 0 (Long), 0.75% 이상 내릴 것 같으면 레이블 1 (Short), 0.75% 미만으로 변동할 것 같으면 레이블 2 (Hold)로 설정하고 모델 학습을 진행했습니다.

Labeling Rule
Labeling Rule

이렇게 학습해서 모델의 예측 성능이 좋다면, 비트코인의 상승장, 하락장, 횡보장 상관없이 모델이 대응할 수 있고 수익을 낼 수 있다고 생각했습니다. 이런 프레임워크에서 crypto LM을 통해서 계산된 감성점수를 추가로 활용하면 투자봇의 예측성능이 더 좋아질까?가 저희가 실험하고 싶었던 부분이었습니다.

CBITS Architecture
CBITS Architecture

감성점수를 모델에 사용하는 방법이 여러가지가 있는데 해당 논문에서는 매우 간단한 접근법을 실험해봤습니다. 4시간동안 나온 뉴스들의 평균 감성점수를 계산하고, 이 감성점수와 차트 입력 피처들을 모델에 입력으로 넣어서 학습해주는 방법을 사용했습니다. 차트 입력 피처들은 단순히 open, high, low, close, volume뿐만 아니라 다양한 지표들 (주로 volatility와 관련된)을 사용했고, 학습에 사용한 모델들은 LSTM, XGBoost, TabNet 이렇게 3가지였습니다. 입력 데이터를 tabular 형식으로 전처리해서 접근했기 때문에 tabular 데이터에 강한 XGBoost 그리고 XGBoost보다 다양한 benchmark task에서 성능이 더 좋았다는 TabNet을 사용해서 실험하기로 했었고 결과는 TabNet이 가장 우수했습니다.

Table1

뉴스 감성점수를 추가하니 모든 모델의 accuracy와 F1 score이 더 좋아진걸 볼 수 있습니다. 추가적으로 다른 재밌는 실험도 진행했는데 가끔 매우 긴 코인니스 뉴스/속보의 경우 BERT계열 모델의 512 토큰 제한때문에 truncation이 이루어집니다. 뉴스 제목과 가장 유사한 본문 문장 top k (k = 5, 10)개를 이용해서 감성점수를 뽑았을때 몇몇 모델의 경우 추가 성능 향상이 있다는걸 확인했습니다.

Table2

Backtest 성능비교

Test set에 대해서 단순 accuracy와 F1 점수보다는 실제로 이 트레이딩 프레임워크가 얼마만큼의 수익률을 내는지가 더 유용한 지표일거라고 생각해서 백테스트도 진행했습니다. 저희 모델의 경우 가장 성능이 좋았던 TabNet 모델들과 다른 트레이딩 기법들 (랜덤하게 투자하는 Monkey Trader, 단순 Buy and Hold, OLMAR)와 비교를 했고, 저희 모델의 경우 take profit 0.75%, 기존 거래소의 수수료의 두배를 고려해서 (실제 거래에서는 bid-ask spread, slippage등 요소가 많기 때문) 수익률을 계산해봤습니다. 결과적으로 다른 방법들보다 수익률이 압도적으로 좋은 모습을 보였습니다.

Backtest 결과
backtest

Live Run 성능, 그리고 한계점들

백테스트 성능만으로 실제 투자 수익률에 대해서 판단하기에 한계가 있다고 생각해서 논문에서 제시한 프레임워크와 모델 체크포인트를 활용해서 실제로 투자를 해보면서 수익률을 관찰해봤습니다. 약 $100 정도의 초기 시드를 가지고 Bybit라는 선물 거래소에서 BTC/USDT 투자를 시작했고 거의 2주정도의 기간동안 돌려놓은 결과 단순 buy and hold (장기투자)보다 우수한 수익률을 기록했습니다. 더 오래동안 돌려서 관찰해보고 싶었지만 논문 제출일정때문에 추가적인 관찰결과는 논문에 실을 수 없었습니다.

Liverun 결과
liverun

몇가지 limitation들도 보였는데 일단은 take profit이 0.75%이기 때문에 게속 상승만 하는 구간에서는 단순 long이나 buy and hold 전략보다 수익률이 작을 수 있습니다. 반대로 계속 하락하는 구간에서는 단순 short 전략보다 수익률이 적을 수 있습니다. 그리고 마땅한 stop loss mechanism도 없다는게 큰 단점입니다. Secretary problem 같은 방식을 응용한 exit 기법이나 언제 exit하는게 최적인지 판단하는 강화학습 기반 stop loss전략을 도입해봐도 좋을 것 같습니다.

Future Work

  • 단순하게 sentiment score를 활용하는 모델보다는 text들의 임베딩을 뽑아서 차트 피처의 임베딩과 모델 내부에서 결합되고, text와 chart의 임베딩을 뽑는 인코더들을 전부 end-to-end로 학습시키는 모델을 생각해볼 수 있습니다.
  • Sentiment classification 이외에도 crypto text semantic similarity search, crypto text NER, crypto pump and dump classification등 다양한 테스크에도 저희의 LM이 적용가능합니다. 특히 유사한 암호화폐 뉴스 서치 시스템을 현재 개발중이고 관련해서 후속 논문 작업도 진행해보고 있습니다.

References

  1. J. Abraham, D. Higdon, J. Nelson, and J. Ibarra. Cryp-tocurrency price prediction using tweet volumes and sentiment analysis. SMU Data Science Review, 1(3):1, 2018.
  1. D. Araci. Finbert: Financial sentiment analysis with pre-trained language models. arXiv preprint arXiv:1908.10063, 2019
  1. S.. Arik and T. Pfister. Tabnet: Attentive interpretable tabular learning. Proceedings of the AAAI Conference on Artificial Intelligence, 35(8):6679–6687, May 2021. URL https://ojs.aaai.org/index.php/AAAI/article/view/16826
  1. . Barnwal, H. P. Bharti, A. Ali, and V. Singh. Stacking with neural network for cryptocurrency investment. In 2019 New York scientific data summit (NYSDS), pages 1–5. IEEE, 2019
  1. Z. Boukhers, A. Bouabdallah, M. Lohr, and J. Jürjens. Ensemble and multimodal approach for forecasting cryptocurrency price, 2022. URL https://arxiv.org/abs/2202.08967
  1. I.Chalkiadakis, A. Zaremba, G. W. Peters, and M. J.Chantler. On-chain analytics for sentiment-driven sta-tistical causality in cryptocurrencies. Blockchain: Research and Applications, 3(2):100063, 2022. ISSN 2096-7209. . URL https://www.sciencedirect.com/science/article/pii/S2096720922000033.
  1. Q. Chen. Stock movement prediction with financial news using contextualized embedding from bert, 2021.URL https://arxiv.org/abs/2107.08721.

· 16 min read
Seungu Han
Junhyeok Lee

arXiv GitHub Repo stars githubio

Seungu Han and Junhyeok Lee. "NU-Wave 2: A General Neural Audio Upsampling Model for Various Sampling Rates"

INTERSPEECH 2022

NU-Wave 2: A General Neural Audio Upsampling Model for Various Sampling Rates

안녕하세요. MINDs Lab Brain에서 Audio 연구를 하고 있는 한승우입니다. 작년에 소개해드렸던 "NU-Wave: A Diffusion Probabilistic Model for Neural Audio Upsampling"[1]의 후속 연구인 NU-Wave 2를 소개하려합니다. 앞서 현재님이 소개해주신 "SANE-TTS: Stable And Natural End-to-End Multilingual Text-to-Speech"와 함께 Interspeech 2022에 accept 되어 9월 18일부터 22일까지 인천 송도에서 열린 Interspeech 2022에서 구두 발표를 마치고 왔습니다. 코로나 19로 인해 처음으로 대면으로 참석한 국제학회이면서도 많은 사람들 앞에서 발표까지 하게 되어 긴장되면서도 설레었는데 다행히 무사히 발표를 마치고 왔습니다. 또한 다른 연구자분들의 발표도 듣고 질문도 하며 많은 국내외 연구자분들과 소통할 수 있는 소중한 경험이었습니다. 그럼 이제 연구를 같이 진행해주신 준혁님과 연구 및 발표에 도움을 주신 모든 MINDs Lab Brain 팀원분들께 감사 인사 전하며 NU-Wave 2 소개를 시작하겠습니다.

Motivations

NU-Wave 2의 베이스가 되는 NU-Wave는 Diffusion Model을 적용해 최초로 오디오를 48 kHz로 upsampling 하는데 성공한 모델입니다. 더 자세한 내용은 NU-Wave(Interspeech):를 참고해주세요. 하지만 NU-Wave는 몇 가지 문제를 지니고 있는데 첫번째 문제는 'ㅅ, ㅆ, ㅊ'와 같은 치찰음이나 마찰음은 고역대에서 잘 생성해내는 반면에 harmonic 성분은 잘 만들어내지 못한다는 점입니다. 또한 몇몇 논문들에서 NU-Wave가 다른 다양한 음역대를 생성하는데에는 성능이 좋지 않다는 결과를 보여줬습니다. 그리고 두번째 문제는 NU-Wave만의 문제는 아니지만 이전 오디오 Upsampling 모델들은 input과 output의 sampling rate가 고정되어있다는 점입니다. 이렇게 input, output sampling rate 쌍을 고정해버리면 새로운 쌍에 대해서 upsampling을 하고 싶을 때는 매번 모델을 새로 학습시켜야한다는 문제가 있습니다. 이를 해결하기 위해서 저희는 어떠한 sampling rate의 input이 들어와도 원하는 하나의 sampling rate의 오디오로 upsampling해주는 문제를 의논하고 이를 'General Neural Audio Upsampling'이라고 불렀습니다. 이 문제를 해결하게 되면 만약 원하는 결과의 sampling rate가 48 kHz라면 모델을 한 번만 학습시켜도 8 kHz든 12 kHz든 혹은 16 kHz든 어떤 sampling rate의 오디오도 48 kHz로 upsampling할 수 있게 되는겁니다.

· 23 min read
Hyunjae Cho
Wonbin Jung
Junhyeok Lee
Sang Hoon Woo

arXiv githubio

Hyunjae Cho, Wonbin Jung, Junhyeok Lee, and Sang Hoon Woo. "SANE-TTS: Stable And Natural End-to-End Multilingual Text-to-Speech."

INTERSPEECH 2022

SANE-TTS: Stable And Natural End-to-End Multilingual Text-to-Speech

안녕하세요. MINDsLab Brain팀에서 음성합성 연구를 하고 있는 조현재입니다.

오늘은 저희 Brain팀에서 같이 쓴 SANE-TTS paper가 INTERSPEECH 2022에 accept되었다는 좋은 소식과 함께 소개해드리는 시간을 가지려 합니다.

Contributions

  • SANE-TTS는 안정적이고 자연스러운 다국어 음성을 합성합니다.
  • 이 논문에서 제안한 speaker regularization loss는 기존 다국어 TTS 모델에서도 사용된 방법인 domain adversarial training과 비슷한 수준의 퀄리티 향상을 이끌어냅니다.

· 32 min read
Wonbin Jung

arXiv githubio githubio

Kim, Jaehyeon, Jungil Kong, and Juhee Son. "Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech."

International Conference on Machine Learning (ICML) 2021

Variational Inference with adversarial learning for end-to-end Text-to-Speech

안녕하세요! MINDs Lab Brain에서 text-to-speech (TTS) 연구를 하고 있는 정원빈입니다. 오늘은 지난 여름에 발표된 end-to-end TTS인 Variational Inference with adversarial learning for end-to-end Text-to-Speech, VITS에 대해 소개하고, 리뷰를 진행하고자 합니다.

Contributions

  • 1단계 합성 및 병렬 트레이닝이 가능하며 성능이 기존 모델에 견줄 수 있는 end-to-end TTS를 제안했습니다.
  • Variational Auto-Encoder (VAE)의 구조를 적용하여 2단계 합성을 하나로 연결시켰습니다.
  • Variational inference에 normalizing flow와 generative adversarial network (GAN)의 adversarial training을 결합시켜 표현력을 높였습니다.
  • Stochastic duration predictor (SDP)를 사용하여 랜덤하게 음성의 길이를 예측하므로 음성의 다양성이 향상되었습니다.

· 15 min read
Hyoung-Kyu Song

arXiv githubio

Ma, Ningning, et al. "Activate or Not: Learning Customized Activation."
Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021.

먼저 알면 좋은 것들

Swish Activation Function [1]

swish(x):=x×σ(βx)=x1+eβx\operatorname{swish}(x):=x \times \sigma(\beta x)=\frac{x}{1+e^{-\beta x}}
figure1_swish
  • Linear Function과 ReLU 사이에서의 non-linearly interpolated activation을 보여줍니다.
    • β=0β = 0 일 경우, Linear function f(x)=x/2f(x) = x/2 처럼 작용하게 됩니다.
    • 반대로 ββ → ∞일 경우, Sigmoid에 해당하는 부분이 0-1 activation처럼 작용하게 되어, Swish가 ReLU처럼 작용하게 됩니다.
    • β=1β = 1일 경우, 강화학습에서 사용되는 Sigmoid-weighted Linear Unit (SiL) function처럼 작용할 수 있습니다.
    • ββ는 위에서 보신 것처럼 어떤 상수일 수도 있고, 모델에 따라서는 훈련 가능한 파라미터가 될 수도 있습니다.
  • 브레인팀 AI Scientist분들이 자주 사용하시는 Activation Function이기도 하죠 🙂
  • Generative Model에서도 ReLU 대신 사용하는 경우가 많이 있습니다.
  • 최근에는 Implicit Representation Network 상에서도 Swish가 다시금 주목을 받고 있습니다.
    • SIREN에서 언급하는 periodic function activation (Sine 함수 등) 보다 Swish가 더 나은 성능을 보이는 Task가 있습니다.

· 16 min read
Junhyeok Lee
Seungu Han

arXiv GitHub Repo stars githubio

A Diffusion Probabilistic Model for Neural Audio Upsampling

안녕하세요 MINDs Lab Brain에서 Audio와 Speech 연구를 하고 있는 이준혁입니다. Audio domain의 딥러닝 연구는 대부분 Sampling Rate 16kHz인 경우에 대해서 진행되었습니다. 생성모델 (TTS) 같은 경우 22.05kHz인 경우도 있었지만 음악이나 영화 쪽에서 많이 쓰이는 44.1kHz나 48kHz에 비해서는 절반밖에 안 되는 sampling rate이었기 때문에 high sampling rate TTS에 대한 수요가 꾸준히 있었습니다. 저희가 개발한 TTS에 대해서 더 높은 퀄리티로 서비스를 제공하기 위해서 Neural Audio Upsampling에 대한 연구를 진행하게 되었습니다. 48kHz라는 높은 sampling rate를 목표로 하는 연구를 진행하다 보니 자연스럽게 최근에 핫한 생성모델인 diffusion model을 적용하게 되었고 최초로 48kHz를 target으로 upsampling 하는데 성공하였습니다. 이렇게 진행한 연구로 승우님과 같이 쓴 paper가 세계 최고의 음성신호처리학회인 INTERSPEECH 2021에 Accept🎉 되어 소개해 드리고자 합니다!