호돌찌의 AI 연구소
article thumbnail

퀀트 전략 관련하여 간접적으로 도움이 될 만한 논문들을 여유가 될 때마다 리뷰하고자 합니다. 하지만 그냥 일반적으로 유명하다고 알려진 논문보다는 필자가 직무는 AI 쪽에 조금 더 가깝고 퀀트는 취미이기 때문에 조금 색다른 내용들 위주로 소개할 예정입니다. 이전에 대안 데이터 관련 글을 작성하였는데, 이와 NLP를 결합한 컨텐츠를 하고자 합니다. 

 

첫 번째 리뷰 Paper는 "FinBERT—A Large Language Model for Extracting Information from Financial Text"입니다. 제목 그대로 Financial Text를 바탕으로 언어 모델을 만든 것인데, 2020년 7월에 첫 버전이 나오고 올해 final revised 된 paper입니다. 참고로 FinBERT라는 이름 자체로는 같은 이름은 많고 정말 다양한 모델이 있음을 먼저 알려드립니다. (사람으로 치면 동명이인과 같은 개념입니다.) 내용은 호흡도 길고 재미없게 서술이 되어있는 Paper임을 우선 알려드립니다. 

 

해당 Paper는 아래에 있습니다.

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3910214 

 

FinBERT - A Large Language Model for Extracting Information from Financial Text

74 Pages Posted: 27 Aug 2021 Last revised: 26 Sep 2022 Abstract We develop FinBERT, a state-of-the-art large language model that adapts to the finance domain. We show that FinBERT incorporates finance knowledge and can better summarize contextual informati

papers.ssrn.com

 

Appendix : 사전학습 모델(Pre-trained Model, PLM) & 전이 학습(Transfer Learning) 배경지식


이번 글에서 소개할 논문을 이해하기 위해서는 AI에서 주로 언급되는 용어인 사전학습 모델(Pre-trained model, PLM)전이 학습(Transfer Learning)이라는 두 개념을 선수 지식으로 알면 좋습니다.

- PLM 은 보통 사전학습 모델이라고 부르고 개인이 수집하기 힘든 정도 많은 양의 텍스트 데이터를 긁어 모아 거대한 언어 모델을 만드는 작업입니다.(편의상 이 글에서는 이미지 분야의 이야기는 전부 제외하겠습니다.)

- 전이 학습은 PLM을 활용하여 사용자가 적용하려고 하는 Task에 맞게 가져다 사용하는 것 입니다. PLM의 Output은 수많은 양의 가중치의 의미를 갖는 숫자들(Embedding이라고 표현하는데 편의상 숫자라고 표현하겠습니다.)이고 이를 조금씩 변화시켜 목적에 맞게끔 활용하는 것이 전이 학습이라고 이해하면 좋을 것 같습니다. 즉, 전이 학습은 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용되는 것을 의미합니다. 

아래 그림에서 좌측은 Pre-train을 뜻하며, 우측은 원하는 Task에 조정하여 학습하는 전이 학습 부분을 뜻합니다. 

 

https://en.wikipedia.org/wiki/Transfer_learning, 좌측은 전통적인 머신러닝 학습 방법을 뜻하며 우측은 전이학습의 방식을 뜻함

 

AI에서 세부분야인 자연어처리(Natural Language Processing, 쉽게 말하면 컴퓨터에게 언어를 가르치는 분야)에서는 PLM과 전이 학습 조합은 2018년 ELMo, BERT라는 PLM이 나타나면서부터 유행하기 시작했고 감성 분석, 기계 독해(문단이 주어지고 질문을 하면 바로 대답하는 Task), 개체명인식(문장이나 문서 입력을 받아 인명, 지명, 기관명 등 개체명 범주에 속하는지 확률 값 반환), 문장 생성 등 기존의 방법론의 성능을 다 갈아치울 만큼 다양한 분야에서 최고 성능을 뽑아내기 시작했습니다. NLP에서 주로 사용되는 대표 과제와 예시는 아래와 같습니다.

 

https://hryang06.github.io/nlp/NLP (생성 Task를 제외한 NLU Task 예시)

 

하지만 데이터는 무한대에 가깝지만 PLM을 만들기 위한 데이터는 어떻게 따지고 보면 유한합니다. 즉, 완전히 General하지는 않다는 뜻인데 일반적인 위키피디아 데이터로 만든 PLM과 의학 및 생명 공학과 같이 과학적 분야 데이터로 만든 PLM은 성격과 데이터 분포가 다르다는 뜻 입니다.

만약에 전이학습하기 이전에 본인이 매우 Specific 한 특정 산업에 종사하고 있다고 가정했을 때 일반적인 PLM 보다 Domain-Specific 한 데이터로 학습한 PLM을 활용한다면 더욱 좋은 퀄리티의 활용이 가능합니다. 마치 대한민국에서 태어나면 한국어를 배우고 한국어를 잘하고 한국어를 이용한 활동을 잘할 수 있듯이, 미국에서 태어나면 영어를 배우고 영어를 잘하게 되는 이치와 일맥상통합니다. 

 

 

FinBERT 리뷰


1. 학습 방식

PLM에서 BERT라는 모델이 나온 이후에는 RoBERTa나 T5 등 정말 다양한 PLM들이 무수히 많이 나왔습니다. 기존 BERT 성능을 뛰어넘는 파생된 PLM들에 대해 필자의 생각은 대략적인 트렌드(경량화 모델 제외)들은 다음과 같이 느끼고 있습니다..

1) 언어 말뭉치에 빈칸을 뚫는, 즉 마스킹을 뚫는 방식을 조금 더 어렵거나 색다른 방식으로 수행. 즉 조금 더 언어라는 것을 더 복잡하게 학습하는 방식을 연구

2) 더 많은 텍스트 데이터를 모아서 학습

3) 더 좋은 GPU를 바탕으로 오랫동안 학습

 

여기서 FinBERT는 위에서 1번 방식은 고려하지 않고 2번 방식을 적용한 금융 도메인에 Specific 한 모델을 만든 것입니다.

 

2. 학습에 사용된 데이터

활용된 데이터들은 다음과 같습니다.

1) 10-K, 10-Q 보고서에서의 2.5B tokens

2) 어닝콜 Transcripts에서의 1.3B tokens

3) 애널리스트들의 보고서 1.1B tokens 

위의 1~3의 Tokens을 합하여 총 말뭉치의 크기는 4.9B Tokens입니다. (Billion개의 Token의 크기가 어느정도일 지 감이 안 오실 수 있는데, 기존 BERT(2018)에서 활용된 영어 위키피디아 Words의 수는 약 2,500M 개입니다.) 아래 그림은 Pretrain 한 방식과 Finanacial 감성 분류 데이터셋에 대하여 Fine Tuning(위에서 이야기한 Transfer Learning)을 도식화한 것입니다.

 

 

3. 감성 분석 Performance 비교

 논문에서는 금융 텍스트에 대해서 감정분석을 실시하였을 때 실험군인 FinBERT와 벤치마킹인 BERT, 그리고 기존에 많이 활용되었던 ML Algorithm(SVM, Naive Bayes, RandomForest), 그리고 RNN, CNN을 비교하였을 때 가장 높은 퍼포먼스를 보임을 알려줍니다. 테스팅 샘플에 관한 설명도 Notes에 있습니다. 

 

4. ESG-Classification Performance 비교

금융 관련 텍스트를 input으로 하여 환경, 사회, 거버넌스, 그 외 관련 텍스트인지 분류하는 Performance를 비교한 결과입니다. 이 또한 다른 모델들에 비하여 FinBERT가 높게 나타남을 알 수 있습니다. 

 

5. 활용 방법

FinBERT Pretrain Model을 사용하는 방법은 아래 README.md를 읽어보시면 충분히 활용이 가능합니다. 

https://github.com/yya518/FinBERT

 

GitHub - yya518/FinBERT: A Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097

A Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097 - GitHub - yya518/FinBERT: A Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097

github.com

 

https://github.com/yya518/FinBERT/blob/master/FinBERT-demo.ipynb

 

GitHub - yya518/FinBERT: A Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097

A Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097 - GitHub - yya518/FinBERT: A Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097

github.com

 

 

이 글을 마치며


솔직히 Paper 리뷰 글만 보아서는 큰 특징이라고는 구하기 어려운 여러 stock 관련 보고서나 어닝콜 등의 데이터를 바탕으로 Pretrain을 시켰을 때 Finance 관련 데이터를 바탕으로 General 한 BERT 방식이나 다른 알고리즘에 비해 더 좋은 성능을 보인다는 것을 보여주었습니다. 이러한 모델이 있으니 사용하는 User가 어떻게 활용하느냐에 누군가보다 더 다른 매매방식에 있어 Edge를 가져볼 수 있습니다. 그렇다면 독자 분들이 돈을 조금이라도 더 벌 수 있을 것만 같은 꿈같은 상상을 매우 조금이나마 해보실 수 있을 것입니다. 하지만 이러한 방식에 대한 허점을 소개하는 논문들을 한번 다음 글에 소개하고자 합니다. 

 

 

** 번외)

- BERT에 대해서 조금 기술적으로 이해하고 싶으신 분들은 아래 글을 추천합니다. 

https://wikidocs.net/115055

- BERT Paper는 여기를 참고하시면 됩니다.

https://arxiv.org/pdf/1810.04805.pdf

- NLP 관련된 기술은 매우 간단하게 요약한 글은 제 블로그 AI/NLP 카테고리를 참고하시면 됩니다. 아래 URL은 Pretrain Language Model과 전이 학습을 다룬 글입니다. 

2021.09.12 - [AI/NLP] - Pretrained Language Model - 1. Self-supervised Learning

2021.09.12 - [AI/NLP] - Pretrained Language Model - 2. Transfer Learning

2021.09.14 - [AI/NLP] - Pretrained Language Model - 3. PLM

2021.09.17 - [AI/NLP] - Pretrained Language Model - 4. Downstream Task

 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!