욱이의 냉철한 공부

[논문 요약] RCNK : Recurrent Convolutional Neural Kernel Model for Stock Price Movemoent Prediction, 2019 본문

데이터과학/논문 : Finance, 연구분야

[논문 요약] RCNK : Recurrent Convolutional Neural Kernel Model for Stock Price Movemoent Prediction, 2019

냉철한 욱 2020. 4. 19. 04:13

* 논문 

Recurrent Convolutional Neural Kernel Model for Stock Price Movemoent Prediction, 2019


* 목차

1. 입력데이터

2. 출력데이터

3. 모델링

4. Trading simulation

5. 평가

6. contribution

7. 한계점


1. 입력 데이터

- 입력 데이터 대상

기업(7개) : Randomly select, by Chinese A-share market

=> 각각 독립적인 모델링 설계

 

- 입력 데이터 종류 : 일 단위

1. 정량적데이터(거래데이터 및 기술지표) : 시가, 종가, 고가, 저가, 거래량, 기술지표(10개)

2. 텍스트데이터 : 사용자 생각이 담긴 Comment

 

- 입력 데이터 기간 

1. 정량적데이터 : 2018-01-01 ~ 2019-03-31, 약 300일 (빨간 날 제외)

2. 텍스트데이터 : 2018-01-01 ~ 2019-03-31, 약 300일 (빨간 날 제외)

 

- 입력 데이터 구체화 

1. 정량적데이터 : 300 * 15

    => 15는 차원 수 즉 시가, 종가, 고가, 저가, 거래량, 기술지표(10개)

2. 텍스트데이터 : 300 * 20 * 10

    => 20은 post된 comment 수 (가장 읽은 양이 많은 순서대로 선택된 comment)

    => 10은 comment당 처음 나열된 word 수 

 

- 입력 데이터 벡터화 과정

=> 수집된 Posts의 Comment data를 전처리한다. 

1. word로 나눈다. 

2-1. trigger dictionary를 사용해서 기술적 용어를 사용한 comment의 word를 가져온다.

2-2. stop-word를 사용하여 극단적으로 부정적인 감정이 드러난 comment는 차단한다.

       (왜냐하면 행사 그리고 종목 성과의 객관적 분석이 주가 변동 예측의 정확성에 더 큰 영향을 준다.)

3. 구독이 많은 comment를 우선순위 하여 20개를 가져온다. 

4. 수집된 Posts의 Comment data를 Word2Vec하여 Word embedding한다. 

- 입력 데이터 벡터화

1. 정량적데이터 : (300, 15)

2. 텍스트데이터 : (300, 20, 10) 

=> 10은 comment 처음 단어 10개의 word embedding 값의 평균

 

- 입력 데이터 표현

1. 정량적데이터 : Input_1

2. 텍스트데이터 : Input_2

 

- 입력 데이터 출저

1. 정량적데이터(거래데이터 및 기술지표)  :  http://guba.eastmoney.com

2. 텍스트데이터 :  http://guba.eastmoney.com

 

 

 

2. 출력 데이터

- 출력 데이터 종류

등락

- 출력 데이터 기간 : Delay

등락 : 1일 후

 

- 학습(최적화) : 손실함수 

등락예측하는 모델 : Categorical cross entropy

N : 종목, T : 일

 

 

 

3. 모델링

 

1.  워드임베딩된 input_2의 word representation은

     Convolutional Neural Networks를 통해 high-level feature로 변환되어진다.

   =>  CNN을 쓰는 이유는 가볍고 속도빠르다. (파라미터 적음) 더불어 지역적 특징들 추출 가능하다.  

   =>  Different type of filters(different window size)를 사용한다.

         이것은 하루에 수집된 다양한 투자자들의 감정이 담긴 posts(20개)들에서 종합적이고, 조합적인 feature들

         을 추출하게 도와준다. (필터의 가중치는 Input_2의 S사이에서 공유되어진다.)

   =>  max-pooling은 feature map에서 최대값을 가져오면서 가장 중요한 feature들을 가져온다. 

 

 

2. CNN으로 추출된 1차원 배열 high-level-feature(input_2)은 LSTM의 input으로 투입된다.

    (input_1 matirx도 다른 LSTM 모델의 input으로 투입된다.)

    각각 2개의 LSTM에서 추출된 feature는 concatenate된다. 

   =>  LSTM을 쓰는 이유는 input의 순서적 features들의 정보의 영향을 보존하기 위해서이다. 

 

3. Explicit kernel mapping layer를 통해 고차원의 선형적 맵핑 가능하게 한다. 

   => 기존의 fully-connected layers를 사용하지 않는다. 이를 통해 parameters를 줄이면서, 복잡한 연산량과 과 

        적합 문제를 해결한다. 

 

 

 

 

 

4. Trading simulation

- Trading 기간

test data 기간

 

- Trading 초기값

10000 RMB(위안)

 

- Trading 방법

다음 날 close price(종가) 상승 : 현재 날짜의 open price에서 보류 or 구매

다음 날 close price(종가) 하락 : 현재 날짜의 open price에서 판매

 

 

 

5. 평가

- 모델링 평가 : 결국 RCNK가 좋다는 의미 

- 전략 A, B 평가 및 Window length 평가

 

 

- 실혐 결과 요약

1. RCNK 모델 결과는 RCNK-T 모델과 RCNK-S 모델보다 성능이 우수했다.
이는 재무 시계열 데이터와 메시지 보드의 게시물의 두 데이터가 서로 보완하고, 두 데이터를 입력하는 모델은 주가 이동 예측에서 더 나은 결과를 얻을 수 있음을 나타냈다. 

 

2. 결과는 RCNK 모델이 CNK 모델보다 우수하다는 것을 보여주었다.

RCNK 모델과 CNK 모델의 차이점은 전자는 여러 거래일의 감정 데이터를 순차 데이터로 간주하고 후자는 그것들을 함께 축적할 뿐이다. 이것은 감정정보의 시간적 특성이 존재했고 모델의 성능을 효과적으로 향상시킬 수 있음을 나타냈다.

 

3. RCNK 모델의 결과는 커널 매핑 계층이 없는 RCNN 모델의 결과보다 뛰어나 명시적 커널 매핑 기법의 효과를 입증했다.

 

 

 

 

6. Contribution

1. 재무 시계열 데이터와 주식 메시지 보드의 게시물은 보완적 특징을 추출하기 위한 두 가지 데이터를 사용하였다.
즉 제안된 모델은 기술 분석과 심리 분석의 장점을 결합했다.
주식 게시판의 게시물에서 시간적 특징을 가진 감성 임베딩과 금융 시계열 데이터에서 금융 임베딩을 학습했다.
문자 데이터의 구조적 특징뿐만 아니라 의미적 특징을 고려한 단어 임베딩을 데이터 표현 방법으로 활용하였다.

2. 대중적 분위기가 주가에 미치는 영향은 일정 기간 지속되다가 시간이 지나면서 점차 물러날 것으로 추정됐다.
따라서, post는 순차적인 텍스트 데이터로 스톡 메시지 보드에서 처리되었고, 시간적 특징을 추출하기 LSTM 모델을 사용하였다. 이것은 주가 움직임의 예측 정확도를 향상시키는 데 도움이 된다.

 

3. 명시적 커널 매핑 계층은 전통적인 딥러닝 모델에서 fully-connected layer을 대체하기 위해 사용되었다.
Random Fourier features은 입력을 고차원 공간에 투영할 수 있는 명시적 매핑 기능을 구성하기 위해 사용됨
그것은 모델의 parameter를 줄이고 과적합의 위험을 줄였다.
이렇게 해서 제안된 모델은 딥러닝 모델과 커널 방식을 결합시켰다.
이것은 같은 데이터셋의 다른 딥러닝 모델에 비해 예측 정확도와 누적 수익률에서 더 좋은 성능을 보였다.

 

 

 

7. 한계점

모델의 하이퍼 파라미터를 선택할 때 누적 수익률이 확인되며, 모델의 정확성은 일관성이 없었다.
이것은 그 모델의 높은 정확도가 높은 이익을 의미하는 것은 아니었다.
따라서 모델의 성과를 어떻게 종합적으로 평가할 것인가가 앞으로의 작업에 대한 흥미로운 연구 방향이다.
이외에도 금융 데이터와 감성 데이터를 제외하고, 여전히 주가 움직임에 영향을 미치는 요인들이 많다.
더 많은 데이터를 통합하고 주가 이동 예측을 위한 다양한 Feature들을 추출하는 것은 좀 더 연구할 가치가 있다.