KR102453549B1 - 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 이의 동작 방법 - Google Patents
인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR102453549B1 KR102453549B1 KR1020220001105A KR20220001105A KR102453549B1 KR 102453549 B1 KR102453549 B1 KR 102453549B1 KR 1020220001105 A KR1020220001105 A KR 1020220001105A KR 20220001105 A KR20220001105 A KR 20220001105A KR 102453549 B1 KR102453549 B1 KR 102453549B1
- Authority
- KR
- South Korea
- Prior art keywords
- stock
- news
- vector
- trading
- information
- Prior art date
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 13
- 238000011017 operating method Methods 0.000 title abstract description 6
- 238000013528 artificial neural network Methods 0.000 claims abstract description 34
- 239000013598 vector Substances 0.000 claims description 160
- 238000011156 evaluation Methods 0.000 claims description 32
- 230000007935 neutral effect Effects 0.000 claims description 19
- 238000007781 pre-processing Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 16
- 230000007423 decrease Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 23
- 238000012549 training Methods 0.000 description 22
- 210000002569 neuron Anatomy 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Human Resources & Organizations (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Biomedical Technology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Technology Law (AREA)
- Entrepreneurship & Innovation (AREA)
- Primary Health Care (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 그 동작방법이 개시된다. 상기 주식 거래 플랫폼 서버는, 외부 서버와 연동하여 다수의 주식들 각각과 대응하는 주식 정보를 수집하는 주식 정보 수집부; 사용자의 사용자 단말과 연동하여 상기 사용자 단말로부터 주식 계좌 정보를 수신하고, 수신된 주식 계좌 정보를 기반으로 주식 실시간 거래를 실행하거나, 상기 사용자 단말에게 상기 다수의 주식들 각각에 대한 거래 정보 및 온라인 뉴스 기사들을 제공하는 주식 거래 지원부; 미리 구축된 뉴스 DB에 저장된 뉴스 기사들과 미리 구축된 SNS DB에 저장된 SNS 데이터들, 및 상기 거래 정보를 참조하여 특정 주식과 관련이 있는 연관 정보를 선정하는 연관 정보 선정부; 선정된 상기 연관 정보를 기반으로 미리 지도학습된 인공신경망과 연동하여 특정 주식과 대응하는 예측 주가를 결정하는 주가 예측부; 및 상기 사용자의 주식 계좌 정보를 기반으로 상기 다수의 주식들을 대상으로, 상기 주가 예측부에 의해 결정된 예측 주가를 획득하고, 획득된 예측 주가에 따라 상기 다수의 주식들 중 매매 대상 주식을 선정하고, 선정된 매매 대상 주식에 대한 거래를 자동으로 수행하는 자동 트레이딩 봇 지원부;를 포함한다.
Description
본 발명은 주식 거래 플랫폼 기술에 관한 것으로, 더욱 상세하게는 인공지능과 빅데이터를 이용한 주식 거래 플랫폼 서버 및 이의 동작 방법에 관한 것이다.
현재의 주식 거래 플랫폼은 사용자가 주식을 트레이딩하기 위한 기초적인 뉴스를 스스로 찾아보고, 검색할 수 있도록 편의성을 제공하고 있지만, 사용자에게 모든 뉴스 검색과 트레이딩 판단 여부를 맡기고 있기 때문에 트레이딩 결과가 좋지 못한 경우가 많다.
이러한 문제를 극복하기 위하여 일부에서는 일정 루틴화된 차트 분석에 따라 자동으로 주식 트레이딩을 수행하는 주식 거래 프로그램을 개발하여 각자 사용 또는 일부 사용자들에게 배포되어 사용되는 실정이지만, 차트 분석에만 의존하기 때문에 시장의 변화에 대해 신속하게 반응하기 어렵다.
한국등록특허 제10-1805420호(주식 투자 성과에 기반한 주식 투자 신뢰성 평가 시스템 및 그 방법, 이하 ‘문헌 1’라 약칭)는 투자 분석가에 대한 평가에 있어 신뢰성 있는 평가 방법 및 그를 수행하기 위한 시스템을 개시한다. 문헌 1은 투자 분석가에 대한 신뢰성에 대한 평가 등급을 산출하고, 평가 등급에 따라 주식 담보 대출이나 금융 거래 한도를 결정한다.
문헌 1에서 개시한 신뢰성 평가의 과제해결 수단은 평가 대상자의 주식 매매 정보를 토대로 산출된 절대 수익 기반의 투자 성과와, 종합지수, 업종별 지수 등을 연관하여 산출된 상대 수익 기반의 투자 성과를 고려한다. 문헌 1은 투자 성과 고려의 실시예로서, 평가 대상자가 매매한 직접 수익에 해당하는 절대수익율과, 종합지수를 고려한 합산수익율의 차이값으로 계산한 상대수익율을 개시한다. 문헌 1은 ‘종목’에 대한 평가가 아닌 종목들을 거래한 최종적인 수익에 시장의 수익률을 고려함으로써 보다 객관적인 투자자의 신뢰성 평가 수단을 제안한다.
상술한 문헌 1은 각종 투자 지표과 주가 지수들을 고려해 투자 성과를 평가하고 있지만, 일정한 기준식에 의한 단순 연산으로 평가하는 데 그치고 있기 때문에 평가 지표의 유의미성이 다소 떨어진다.
한편, 최근에는 최근에는 사람의 지능을 모방하여 복잡한 일을 수행하는 인공지능(artificial intelligence)에 대한 연구가 활발히 진행되고 있으며, 인공지능은 기계학습 알고리즘을 이용하여 학습되어 동작하는 형태의 머신 러닝(machine learning)을 포함하는 넓은 개념이며, 머신 러닝 분야에서도 사람의 뉴런들을 모방하여 구현된 딥 러닝(deep learning)이 조금 더 진보된 개념으로 알려져 있다.
딥 러닝에 따른 심층 신경망(Deep Neural Network, DNN)은, 다중의 은닉층을 포함하여 다양한 비선형적 관계를 학습하고, 학습 결과를 기반으로 예측 결과를 제공하는 인공신경망(ANN, Artificial Neural Network)으로서, 이에 대한 많은 관심과 연구가 이루어지고 있다.
심층 신경망은 알고리즘에 따라 비지도 학습(unsupervised learning)을 기반으로 하는 심층 신뢰 신경망(DBN, Deep Belief Network), 심층 오토인코더(Deep Autoencoder) 등이 있으며, 이미지와 같은 2차원 데이터를 처리하기 위한 합성곱 신경망(CNN, Convolutional Neural Network), 시계열 데이터를 처리하는 데 유용한 순환 신경망(RNN, Recurrent Neural Network) 등이 알려져 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 그 동작 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버를 제공한다.
상기 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버는, 외부 서버와 연동하여 다수의 주식들 각각과 대응하는 주식 정보를 수집하는 주식 정보 수집부; 사용자의 사용자 단말과 연동하여 상기 사용자 단말로부터 주식 계좌 정보를 수신하고, 수신된 주식 계좌 정보를 기반으로 주식 실시간 거래를 실행하거나, 상기 사용자 단말에게 상기 다수의 주식들 각각에 대한 거래 정보 및 온라인 뉴스 기사들을 제공하는 주식 거래 지원부; 미리 구축된 뉴스 DB에 저장된 뉴스 기사들과 미리 구축된 SNS DB에 저장된 SNS 데이터들, 및 상기 거래 정보를 참조하여 특정 주식과 관련이 있는 연관 정보를 선정하는 연관 정보 선정부; 선정된 상기 연관 정보를 기반으로 미리 지도학습된 인공신경망과 연동하여 특정 주식과 대응하는 예측 주가를 결정하는 주가 예측부; 및 상기 사용자의 주식 계좌 정보를 기반으로 상기 다수의 주식들을 대상으로, 상기 주가 예측부에 의해 결정된 예측 주가를 획득하고, 획득된 예측 주가에 따라 상기 다수의 주식들 중 매매 대상 주식을 선정하고, 선정된 매매 대상 주식에 대한 거래를 자동으로 수행하는 자동 트레이딩 봇 지원부;를 포함한다.
상기 자동 트레이딩 봇 지원부는, 상기 예측 주가에서 주가가 상승하는 것으로 지시되는 주식을 상기 매매 대상 주식으로 선정하여 매수 거래를 수행하고, 상기 주식 계좌 정보에 따른 보유 주식들 중에서, 상기 예측 주가에서 주가가 하락하는 것으로 지시되는 주식을 상기 매매 대상 주식으로 선정하여 매도 거래를 수행한다.
상기 자동 트레이딩 봇 지원부는, 선정된 매매 대상 주식에 대한 알림 메시지를 상기 사용자 단말에 전송하고, 상기 사용자 단말로부터 수신되는 상기 사용자의 입력에 따라 상기 매매 대상 주식의 거래량을 결정한다.
상기 연관 정보는, 상기 뉴스 DB에 저장된 뉴스 기사들 중에서 상기 특정 주식과 관련성이 있는 연관 뉴스, 상기 SNS DB에 저장된 SNS 데이터들 중에서 상기 특정 주식과 관련성이 있는 연관 SNS 데이터, 및 상기 거래 정보에서 상기 특정 주식에 대응하는 차트 정보를 포함한다.
상기 주가 예측부는, 상기 연관 뉴스를 전처리하여 제1 초기 벡터를 생성하는 연관 뉴스 전처리부; 상기 연관 SNS 데이터를 전처리하여 제2 초기 벡터를 생성하는 연관 SNS 데이터 전처리부; 상기 특정 주식에 대응하는 차트 정보를 전처리하여 제3 초기 벡터를 생성하는 차트 전처리부; 상기 제1 내지 제3 초기 벡터를 이용하여 입력 벡터를 생성하는 입력 벡터 생성부; 및 상기 입력 벡터를 미리 지도학습된 상기 인공신경망에 입력하고, 상기 인공 신경망의 출력값에 기초하여 상기 특정 주식에 대응하는 예측 주가를 결정하는 주가 결정부;를 포함한다.
상기와 같은 본 발명에 따른 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 그 동작 방법을 이용할 경우에는 인공지능과 빅데이터를 이용하여 주가를 예측하고, 예측 주가에 따라 자동 트레이딩을 수행하는 봇을 사용자에게 제공할 수 있어, 사용자의 주식 거래 편의성을 높이고, 수익성을 개선할 수 있다.
도 1은 일 실시예에 따른 인공지능과 빅데이터를 이용한 주식 거래 플랫폼 서버 및 이의 동작 방법을 설명하기 위한 개념도이다.
도 2는 도 1에 따른 주식 거래 플랫폼 서버의 기능적 구성요소들을 나타낸 도면이다.
도 3은 도 2에 따른 주가 예측부의 기능적 구성요소들을 나타낸 도면이다.
도 4는 도 3에 따른 입력벡터 생성부의 동작을 설명하기 위한 개념도이다.
도 5는 일 실시예에 따른 인공신경망(10)의 구조를 나타낸 도면이다.
도 6은 도 3에 따른 연관뉴스 전처리부의 일 실시예에 따른 동작을 설명하기 위한 도면이다.
도 7은 도 3에 따른 연관뉴스 전처리부의 다른 실시예에 따른 동작을 설명하기 위한 도면이다.
도 8은 도 3에 따른 연관 SNS 데이터 전처리부의 동작을 설명하기 위한 도면이다.
도 9는 도 3에 따른 차트 전처리부의 동작을 설명하기 위한 도면이다.
도 10은 도 1에 따른 주식 거래 플랫폼 서버의 하드웨어 구성을 나타낸 도면이다.
도 2는 도 1에 따른 주식 거래 플랫폼 서버의 기능적 구성요소들을 나타낸 도면이다.
도 3은 도 2에 따른 주가 예측부의 기능적 구성요소들을 나타낸 도면이다.
도 4는 도 3에 따른 입력벡터 생성부의 동작을 설명하기 위한 개념도이다.
도 5는 일 실시예에 따른 인공신경망(10)의 구조를 나타낸 도면이다.
도 6은 도 3에 따른 연관뉴스 전처리부의 일 실시예에 따른 동작을 설명하기 위한 도면이다.
도 7은 도 3에 따른 연관뉴스 전처리부의 다른 실시예에 따른 동작을 설명하기 위한 도면이다.
도 8은 도 3에 따른 연관 SNS 데이터 전처리부의 동작을 설명하기 위한 도면이다.
도 9는 도 3에 따른 차트 전처리부의 동작을 설명하기 위한 도면이다.
도 10은 도 1에 따른 주식 거래 플랫폼 서버의 하드웨어 구성을 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 인공지능과 빅데이터를 이용한 주식 거래 플랫폼 서버 및 이의 동작 방법을 설명하기 위한 개념도이다.
도 1을 참조하면, 인공지능과 빅데이터를 이용한 주식 거래 플랫폼 서버(100, 이하, 주식 거래 플랫폼 서버로 약칭될 수 있음)는 다수의 사용자 단말들(200a~200n)의 요청에 따른 주식 거래 서비스를 제공하도록 구성된다.
다수의 사용자 단말들(200a~200n, 200)은 주식 거래 서비스를 제공받는 사용자들 각자의 단말(terminal)로서 미리 지정된 애플리케이션이 설치되고, 설치된 애플리케이션이 구동됨에 따라 각종 주식 거래 서비스를 제공받도록 구성될 수 있다.
일 실시예에서, 사용자 단말(200)은 주식 거래 플랫폼 서버(100)로부터 주식 실시간 정보 서비스를 제공받을 수 있다. 예를 들어, 사용자 단말(200)은, 주식 거래 플랫폼 서버(100)에 접속하여, 다수의 상장된 주식들 각각에 대한 거래 정보를 열람하고, 상장된 주식들 각각과 관련된 온라인 뉴스 기사들을 제공받을 수 있다.
여기서 거래 정보는, 주식들 각각의 실시간 주가, 매수량, 매도량, 매수 주체별 매매동향 등을 포함할 수 있다.
일 실시예에서, 사용자 단말(200)은 주식 거래 플랫폼 서버(100)로부터 주식 실시간 거래 서비스를 제공받을 수 있다. 예를 들어, 사용자 단말(200)은, 주식 거래 플랫폼 서버(100)에 접속하여, 매매 대상 주식을 선정하고, 선정된 매매 대상 주식에 대한 주식 거래를 요청하는 메시지를 주식 거래 플랫폼 서버(100)에 전송할 수 있다. 주식 거래 플랫폼 서버(100)는, 해당 요청 메시지를 수신하고, 사용자 단말(200)의 사용자를 인증하고, 인증된 사용자의 계좌 정보를 참조하여 매매 대상 주식에 대한 매매를 실행하고, 실행된 매매 결과를 사용자 단말(200)에 제공할 수 있다. 이때, 매매의 실행은 외부의 공공 서버등과 연계하여 수행될 수 있다.
일 실시예에서, 사용자 단말(200)은 주식 거래 플랫폼 서버(100)로부터 주가 예측 서비스를 제공받을 수 있다. 예를들어, 사용자 단말(200)은, 거래 정보를 기초로 열람된 주식들 중 하나를 매매 대상 주식으로 선정하고, 선정된 매매 대상 주식에 대한 예측 주가를 주식 거래 플랫폼 서버(100)에 요청하고, 주식 거래 플랫폼 서버(100)로부터 예측 주가를 제공받을 수 있다.
여기서, 예측 주가는 선정된 매매 대상 주식에 대한 주가의 상승 또는 하락 여부를 지시하는 값일 수 있다. 예를 들어, 사용자 단말(200)은, 선정된 매매 대상 주식에 대하여 '상승할 것으로 예상' 또는 '하락할 것으로 예상'이라는 텍스트 형태의 예측 주가를 제공받을 수 있다.
또 다른 실시예에서, 예측 주가는 서정된 매매 대상 주식에 대한 미래 적정 주가를 나타낼 수 있다. 예를 들어, 사용자 단말(200)은, 선정된 매매 대상 주식에 대하여 '적정 주가가 현재가보다 높은 xxx 원 입니다' 또는 '적정 주가가 현재가보다 낮은 xxx원 입니다' 이라는 텍스트 형태의 예측 주가를 제공받을 수 있다.
일 실시예에서 사용자 단말(200)은, 주식 거래 플랫폼 서버(100)로부터 자동 트레이딩 봇에 의한 자동 주식 거래 서비스를 제공받을 수도 있다. 예를 들어, 사용자 단말(200)은, 사용자의 주식 계좌 정보를 주식 거래 플랫폼 서버(100)에 제공하고, 주식 거래 플랫폼 서버(100)에 의해 구동되는 자동 트레이딩 봇에 의해 자동으로 수행되는 주식 매매 결과를 실시간으로 제공받을 수 있다. 이때, 자동 트레이딩 봇은, 다수의 주식들을 대상으로 예측 주가를 확인하고, 확인된 예측 주가에 따라 실제로 매매할 매매 대상 주식을 선정하고, 선정된 매매 대상 주식에 대한 주식 거래를 수행하도록 구성되며, 예측 주가는 앞선 주가 예측 서비스에 따른 예측 주가와 동일한 데이터로서 자동 트레이딩 봇에 의해 열람될 수 있다.
자동 트레이딩 봇이란, 주식 거래 플랫폼 서버(100)의 내부에서(또는 구현에 따라 사용자 단말(200) 내부에서 구동) 미리 설정된 루틴(routine) 작업(job)에 따라 순차적으로 특정 작업들을 자동적으로 수행하도록 프로그래밍된 소스코드가 기계어 형태로 컴파일(compile)된 후 구동되는 것을 의미할 수 있다.
사용자 단말(200)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.
주식 거래 플랫폼 서버(100)는, 사용자 단말(200)에 주식 거래 서비스를 제공할 수 있다. 여기서, 주식 거래 서비스는 전술한 주식 실시간 정보 서비스, 주식 실시간 거래 서비스, 주가 예측 서비스, 자동 주식 거래 서비스 등을 포함할 수 있다.
주식 거래 플랫폼 서버(100)는, 주식 거래 서비스를 사용자 단말(200)에 제공하기 위하여, 뉴스 DB(20) 및 SNS DB(30)와 연동할 수 있고, 뉴스 DB(20)와 SNS DB(30)에 기록된 데이터를 외부 서버를 통한 크롤링(craling)을 통해 주기적으로 업데이트(update)할 수 있다.
뉴스 DB(20)는 각종 온라인상의 언론 서버들과 연동하여 뉴스 기사들을 실시간으로 수집하고 수집된 뉴스 기사들을 저장할 수 있다. 여기서 뉴스 기사들은 단어들로 구성된 문장을 복수개 포함하는 텍스트(text)로 구성되되, 이미지(image)가 더 포함될 수 있다.
SNS DB(30)는 각종 온라인상의 SNS 서버들과 연동하여 SNS 관련 텍스트들을 수집하고, 수집된 SNS 관련 텍스트들을 저장할 수 있다. 여기서 SNS 서버들은 구글(Google), 네이버(Naver), 인스타그램(Instagram), 카카오톡(Kakaotalk), 트위터(Twitter), 페이스북(facebook) 등의 운영 서버일 수 있다. SNS 관련 텍스트들이란, 해당 SNS 서버에 가입된 사용자가 남긴 트윗(tweet), 댓글, 게시글 등일 수 있다.
일 실시예에서, 뉴스 DB(20)와 SNS DB(30)는 구현례에 따라 주식 거래 플랫폼 서버(100)의 내부 저장소 형태로 구현되거나, 외부의 다른 서버에서 인증을 통해 열람 가능한 형태의 클라우드 저장소나 분산 데이터베이스(Distributed Database)로서 구현될 수 있다.
주식 거래 플랫폼 서버(100)는, 특정 주식에 대한 예측 주가를 결정하기 위하여, 뉴스 DB(20)에 저장된 뉴스 기사들 중에서 특정 주식과 관련성이 높은 연관 뉴스를 선정하고, SNS DB(30)에 저장된 SNS 데이터들 중에서 특정 주식과 관련성이 높은 연관 SNS 데이터를 선정할 수 있다. 또한, 주식 거래 플랫폼 서버(100)는, 거래 정보에서 특정 주식에 대응하는 차트 정보를 선정할 수 있다. 여기서, 차트 정보는 해당 특정 주식의 과거 주가 변동을 나타내는 데이터일 수 있다.
주식 거래 플랫폼 서버(100)는, 선정된 연관 뉴스와 연관 SNS 데이터 및 차트 정보를 기반으로 미리 지도학습된(supervised learning) 인공신경망(10)을 이용하여 특정 주식에 대응하는 예측 주가를 결정할 수 있다.
예를 들어, 주식 거래 플랫폼 서버(100)는, 연관 뉴스와 연관 SNS 데이터 및 차트 정보를 이용하여 입력 벡터를 생성하고, 생성된 입력 벡터를 인공신경망(10)에 입력하고, 인공신경망(10)의 출력값에 기초하여 예측 주가를 결정할 수 있다.
주식 거래 플랫폼 서버(100)는, 결정된 예측 주가를 사용자 단말(200)에 제공하거나, 자동 트레이딩 봇에 제공할 수 있다.
주식 거래 플랫폼 서버(100)는, 경우에 따라, 푸쉬 서버(push server), 게이트웨이(gateway), 네임 서버(DNS server) 등으로서의 역할을 동시에 수행할 수도 있다.
도 2는 도 1에 따른 주식 거래 플랫폼 서버의 기능적 구성요소들을 나타낸 도면이다.
도 2를 참조하면, 주식 거래 플랫폼 서버(100)는, 외부 서버와 연동하여 다수의 주식들 각각과 대응하는 주식 정보를 수집하는 주식 정보 수집부(101); 사용자의 사용자 단말(200)과 연동하여 사용자 단말(200)로부터 주식 계좌 정보를 수신하고, 수신된 주식 계좌 정보를 기반으로 주식 실시간 거래를 실행하거나, 사용자 단말(200)에게 주식들 각각에 대한 거래 정보 및/또는 온라인 뉴스 기사들을 제공하는 주식 거래 지원부(102); 뉴스 DB(20)에 저장된 뉴스 기사들과 SNS DB(30)에 저장된 SNS 데이터들, 및 상기 거래 정보를 참조하여 특정 주식과 관련성이 있는 연관 정보를 선정하는 연관 정보 선정부(103); 및 선정된 연관 정보를 기반으로 미리 지도학습된 인공신경망(10)과 연동하여 특정 주식과 대응하는 예측 주가를 결정하는 주가 예측부(104);를 포함할 수 있다.
주식 정보 수집부(101)는, 각종 언론사나 SNS 등의 운영 서버를 주기적으로 접근하여 뉴스 기사들이나 SNS 데이터들을 수집하고, 수집된 뉴스 기사들을 뉴스 DB(20)에 저장하고, 수집된 SNS 데이터들을 SNS DB(30)에 저장할 수 있다. 또한, 연관 정보 수집부(101)는, 외부의 공공기관 서버(예를 들어, 한국거래소 등)와 연동하여 각종 주식들에 대한 거래 정보를 수집하여 내부 저장소에 저장할 수 있다. 즉, 주식 정보는, 뉴스 기사들, SNS 데이터들, 및 거래 정보를 포함할 수 있다.
연관 정보 선정부(103)는, 특정 주식과 대응하는 키워드들을 기반으로 연관 정보를 선정할 수 있다. 예를 들어, 연관 정보 선정부(103)는 주식들 각각과 대응하는 키워드들을 지시하는 키워드 테이블을 참조하여 특정 주식과 대응하는 키워드들을 선정하고, 선정된 키워드들을 기반으로 뉴스 기사들과 SNS 데이터들, 및 거래 정보를 검색함으로써, 특정 주식과 관련성이 있는 연관 정보를 선정할 수 있다.
여기서, 연관 정보는, 뉴스 DB(20)에 저장된 뉴스 기사들 중에서 특정 주식과 관련성이 있는 연관 뉴스, SNS DB(30)에 저장된 SNS 데이터들 중에서 특정 주식과 관련성이 있는 연관 SNS 데이터, 및 거래 정보에서 특정 주식에 대응하는 차트 정보를 포함할 수 있다.
구체적으로, 연관 정보 선정부(103)는, 키워드 테이블을 참조하여 특정 주식과 대응하는 키워드들을 선정하고, 선정된 키워드들 또는 선정된 키워드들의 유의어가 포함되어 있는 뉴스 기사들을 연관 뉴스로 선정할 수 있다. 이때, 키워드들에 대한 유의어를 확인하기 위하여, 연관 정보 선정부(103)는 미리 구축되어 있거나 외부 서버에 접근하여 열람 가능한 유의어 사전을 참조할 수 있다. 유의어 사전은 다수의 키워드들 각각에 대응하는 유의어를 지시하는 데이터일 수 있다.
연관 정보 선정부(103)는, 선정된 키워드들 또는 선정된 키워드들의 유의어가 포함되어 있는 SNS 데이터들을 연관 SNS 데이터로 선정할 수 있다.
연관 정보 선정부(103)는, 특정 주식과 대응하도록 미리 저장된 거래 정보를 연관 거래 정보로서 선정할 수 있다. 예를 들어, '삼성전자'주식인 경우, '삼성전자'주식과 대응하도록 미리 삼성전자의 주가, 매매량 등이 미리 내부 저장소 또는 외부의 공공기관 서버에 저장되어 있을 수 있다.
주식 거래 플랫폼 서버(100)는, 사용자의 주식 계좌 정보를 기반으로 다수의 주식들을 대상으로, 주가 예측부(104)에 의해 결정된 예측 주가를 획득하고, 획득된 예측 주가에 따라 주식들 중 매매 대상 주식을 선정하고, 선정된 매매 대상 주식에 대한 거래를 자동으로 수행하는 자동 트레이딩 봇 지원부(105)를 더 포함할 수 있다. 여기서 자동 트레이딩 봇 지원부(105)는, 자동 트레이딩 봇으로도 혼용하여 지칭될 수 있다.
예를 들어, 자동 트레이딩 봇 지원부(105)는, 예측 주가에서 주가가 상승하는 것으로 지시되는 주식을 상기 매매 대상 주식으로 선정하여 매수 거래를 수행할 수 있다.
또한, 자동 트레이딩 봇 지원부(105)는, 주식 계좌 정보에 따른 보유 주식들 중에서, 예측 주가에서 주가가 하락하는 것으로 지시되는 주식을 상기 매매 대상 주식으로 선정하여 매도 거래를 수행할 수 있다.
또한, 자동 트레이딩 봇 지원부(105)는, 선정된 매매 대상 주식에 대한 알림 메시지를 상기 사용자 단말에 전송하고, 상기 사용자 단말로부터 수신되는 상기 사용자의 입력에 따라 상기 매매 대상 주식의 거래량을 결정할 수 있다. 다만 필요에 따라 사용자 입력에 관계없이 자동으로 결정하는 것도 가능하다.
도 3은 도 2에 따른 주가 예측부의 기능적 구성요소들을 나타낸 도면이다. 도 4는 도 3에 따른 입력벡터 생성부의 동작을 설명하기 위한 개념도이다.
도 3을 참조하면, 주가 예측부(104)는, 연관 뉴스를 전처리하여 제1 초기 벡터를 생성하는 연관 뉴스 전처리부(104a); 연관 SNS 데이터를 전처리하여 제2 초기 벡터를 생성하는 연관 SNS 데이터 전처리부(104b); 특정 주식에 대응하는 차트 정보를 전처리하여 제3 초기 벡터를 생성하는 차트 전처리부(104c); 제1 내지 제3 초기 벡터를 이용하여 입력 벡터를 생성하는 입력 벡터 생성부(104d); 및 입력 벡터를 미리 지도학습된 인공신경망(10)에 입력하고, 인공 신경망(10)의 출력값에 기초하여 특정 주식에 대응하는 예측 주가를 결정하는 주가 결정부(104e);를 포함할 수 있다.
연관 뉴스 전처리부(104a )는, 연관 뉴스에 대한 긍정, 부정, 및 중립을 평가하고, 평가 결과에 기초하여 제1 초기 벡터를 생성할 수 있다.
연관 SNS 데이터 전처리부(104b)는, 연관 SNS 데이터에 대한 긍정, 부정 및 중립을 평가하고, 평가 결과에 기초하여 제2 초기 벡터를 생성할 수 있다.
특히, 연관 SNS 데이터 전처리부(104b)는, 연관 SNS 데이터의 출처로서 지시되는 유명인의 명칭과 작성 시기에 기초하여, 가중치를 결정하고, 결정된 가중치를 평가 결과에 반영하여 제2 초기 벡터를 생성할 수 있다.
예를 들어, 유명인별로 해당 SNS 데이터의 파급력이 상이하고, 작성 시기가 경과할수록 그 파급력이 낮아지는 점을 고려하여, 유명인의 명칭과 작성 시기에 따라 가중치를 결정하고 이를 평가 결과에 반영함으로써, 누가 SNS 데이터를 언제 남겼는지에 따라 파급력이 동적으로 결정되도록 설정할 수 있다.
차트 전처리부(104c)는, 차트 정보에 의해 지시되는 특정 주식에 대한 주가 변동을 나타내는 지표들에 기초하여 제3 초기 벡터를 생성할 수 있다.
이하, 도 4를 참조하여 입력 벡터 생성부(104d)의 동작을 구체적으로 설명한다.
이때, 제1 내지 제3 초기 벡터는 평가 결과에 따른 결과 데이터의 크기나 종류가 상이하기 때문에, 그 차원이 서로 다르게 나타나는 경우가 많다.
입력 벡터 생성부(104d)는, 제1 내지 제3 초기 벡터들 각각에 대한 표준화 연산을 수행할 수 있다. 예를 들어, 제1 내지 제3 초기 벡터들 각각의 성분값들을 미리 정의된 평균과 분산값을 이용하여 표준화 연산을 수행할 수 있다. 표준화 연산을 통해 제1 내지 제3 초기 벡터들 각각의 성분값들이 동일한 범위값 이내로 조정될 수 있다.
입력 벡터 생성부(104d)는, 표준화 연산된 제1 내지 제3 초기 벡터들 중에서, 차원의 수(성분값의 개수)가 상대적으로 적은 2개의 초기 벡터들에 대한 패딩 연산을 수행함으로써, 2개의 초기 벡터들 각각의 차원의 수가 가장 많은 초기 벡터의 차원의 수와 동일한 차원을 갖도록 보정할 수 있다.
여기서, 패딩 연산이란, 2개의 초기 벡터들 각각에 대하여 미리 정의된 패딩값을 성분값으로 추가하는 연산을 의미할 수 있다. 예를 들어, 패딩값은 '0'으로 설정될 수 있으나 이에 한정되는 것은 아니다. 예를 들어, 패딩값은 각 초기 벡터의 성분값들의 평균값이 적용될 수도 있다.
입력 벡터 생성부(104d)는, 패딩 연산 후에, 제1 내지 제3 초기 벡터를 순차적으로 연접(concatenate)함으로써, 하나의 단일한 연접 벡터를 생성할 수 있다. 여기서, 연접한다는 의미는 제1 내지 제3 초기 벡터의 성분값들을 순차적으로 연결한다는 의미일 수 있다.
입력 벡터 생성부(104d)는, 연접 벡터를 대상으로 미리 정의된 마스크 벡터를 이용한 쉬프트(shift) 내적 연산을 수행함으로써, 입력 벡터를 생성할 수 있다.
마스크 벡터는, 연산 대상이 되는 성분값들에 대한 데이터 평활화(data smoothing)을 수행하는 벡터로서, 다양한 형태의 스무딩용 벡터들이 존재하므로 통상의 기술자는 주지된 스무딩 벡터들 중 하나를 선택적으로 마스크 벡터로 사용할 수 있다.
일반적으로 데이터 평활화는 영상 처리 분야에서 영상의 일부 경계를 흐리게 처리하거나 일부 영역을 필터링하는 목적으로 사용되나, 위와 같이 연접 벡터에 대하여 마스크 벡터를 이용하여 데이터 평활화를 응용한 연산을 수행함으로써 뉴스와 SNS 데이터, 차트에 대한 영향력이 골고루 반영되도록 하거나, 특정 데이터(예를 들어, 뉴스)가 다른 데이터들(SNS 데이터와 차트)보다 더 많이 반영되도록 할 수 있는 장점이 있다.
특히 이러한 방식은 특정 데이터에 대하여 가중치를 개별적으로 부여하는 어려움을 해소할 수 있어, 예측 주가의 평가 결과에 따라 특정 데이터의 반영 정도를 관리자가 재조정하는데 더 유리하게 활용할 수 있다.
여기서, 쉬프트 내적 연산이란, 연접 벡터의 성분값들 중 제일 앞에 있는 k개(k는 마스크 벡터의 차원의 수로서 제1 내지 제3 초기 벡터들 각각의 차원의 수들 중에서 가장 큰 값과 동일하게 설정됨.)의 성분값들부터 순차적으로 한칸씩 이동시켜 마스크 벡터를 구성하는 k개의 성분값들과 내적(dot)하고 그 결과값들을 연접 벡터의 대응하는 위치의 성분값으로서 갱신시키는 과정을 반복하는 연산을 의미할 수 있다. 이때, 쉬프트 내적 연산은, 마스크 벡터가 연접 벡터의 마지막 성분값에 도달할 때까지 반복해서 수행된다.
주가 결정부(104e)는, 생성된 입력 벡터를 미리 지도학습된 딥러닝 기반의 인공신경망(10)에 입력하고, 인공신경망(10)의 출력에 기초하여 예측 주가를 결정할 수 있다.
도 5는 일 실시예에 따른 인공신경망(10)의 구조를 나타낸 도면이다.
일 실시예에 따른 딥러닝 기반의 인공신경망(10)은, 미리 수집된 훈련 데이터를 이용하여 지도학습된다. 이때, 훈련 데이터는, 특정 주식의 과거 특정 시점에서 수집한 연관 뉴스, 연관 SNS 데이터, 및 차트 정보를 기반으로 생성된 입력 벡터를 훈련 입력값으로 하고, 특정 주식의 과거 특정 시점의 주가와 비교할 때 현재 시점(또는 과거 특정 시점 이후의 시점들 중 하나)에서 특정 주식의 상승이나 하락 여부(또는 상승량이나 하락량을 지시하는 비율)를 지시하는 데이터를 훈련 출력값으로 할 수 있다. 여기서 훈련 출력값은 과거 특정 시정 이후의 다수의 시점들 각각에 대응하는 상승량이나 하락량을 지시하는 비율들을 벡터 변환한 훈련출력벡터이거나, 현재 시점(또는 과거 특정 시점 이후의 시점들 중 하나)에서 특정 주식의 상승이나 하락 여부를 지시하는 이진(binary) 값일 수도 있다.
즉, 딥러닝 기반의 인공신경망(10)은, 훈련 입력값을 입력받았을 때 얻어지는 출력값을 훈련 출력값과 비교하고, 비교 결과에 따라 인공신경망(10)을 구성하는 파라미터들을 조정(tuning)하는 방식으로 지도학습될 수 있다.
구체적으로, 딥러닝 기반의 인공신경망(10)은, 인공신경망(10)의 출력값과 훈련 출력값을 이용하여 미리 정의된 손실함수(loss function)를 연산하고, 연산된 손실함수의 결과값이 최소화되도록 인공신경망(10)을 구성하는 파라미터들을 조정할 수 있다.
이때, 손실함수는 크로스 엔트로피(Cross Entropy) 함수일 수 있다.
도 5를 참조하면, 인공 신경망(10)은, 입력 벡터(X)를 입력받고, 입력받은 입력 벡터의 성분값 개수(차원의 수)와 동일한 개수(N)의 입력 노드들로 구성되는 입력층(11), 입력층(11)으로부터 전달받은 출력값들을 이용하여 산출된 출력 벡터(Y`)를 출력층(13)에 전달하는 은닉층(12), 및 출력 벡터(Y`)에 활성화 함수를 적용하여 출력 벡터(Y`)에 대응하는 확률(p)을 결정하고, 결정된 확률(p)이 가장 높은 출력 벡터(Y`)를 출력하는 출력층(13)을 포함할 수 있다. 본 발명에서 인공 신경망(10)을 구성하는 노드들 각각은 본 발명이 속하는 기술분야에서 흔히 사용하는 표현인 뉴런(neuron)이라는 용어로도 혼용하여 지칭될 수 있다.
구체적으로, 인공 신경망(10)은, 훈련 입력값으로 제공된 입력 벡터(X)를 입력받으면, 은닉층(12)의 출력으로서 획득되는 출력 벡터(Y`)와 훈련 출력값 사이의 손실함수(loss function)를 연산하고, 연산된 손실함수의 결과값이 최소화되도록 지도학습된다.
예를 들어, 손실 함수(H(Y,Y`))는, 크로스 엔트로피(Cross Entropy) 함수일 수 있다. 출력 벡터(Y`)와 훈련출력값(Y) 사이의 크로스 엔트로피(H(Y,Y`))는 다음의 수학식 3과 같이 정의될 수 있다.
수학식 1에서 Ym은 훈련출력값(Y)의 m(m은 1 이상의 자연수)번째 성분이고, Y`m은 출력 벡터(Y`)의 m번째 성분일 수 있으며, Q는 출력벡터의 차원 수이다.
입력층(11)은 입력 벡터(X)를 입력받고, 입력받은 입력 벡터(X)의 성분들 각각에 대하여, 입력 노드들과 대응하는 하나 이상의 연결 강도값들을 적용하여 은닉층(12)에 전달할 수 있다.
예를 들어, 입력 노드들 각각에 대응하는 하나 이상의 연결 강도값들은 N×M의 크기를 갖는 제1 연결강도 행렬(WN×M)로 표현할 수 있다. 이때, N은 입력노드들과 동일한 개수일 수 있고, M은 N보다 1/10 배 이하로 충분히 작게 설정된다. 제1 연결강도 행렬(WN×M)은 임의의 초기값으로 설정된 후 지도학습을 통해 지속적으로 갱신되는 파라미터일 수 있다.
종합하면, 입력층(11)은 입력받은 입력 벡터(X)에 제1 연결강도 행렬(WN×M)을 행렬곱 연산하여 얻어진 중간 연산 벡터(X`)을 은닉층(12)에 전달할 수 있다.
은닉층(12)은, 입력층(11)으로부터 전달받은 중간 연산 벡터(X`)에서 획득되는 특징 벡터(feature vector, F)에 은닉 노드들 각각에 대응하는 하나 이상의 연결 강도를 적용하여 출력 벡터(Y`)를 생성하고, 생성된 출력 벡터(Y`)를 출력층(13)에 전달할 수 있다.
예를 들어, 은닉층(12)은, 중간 연산 벡터(X`)로부터 아래 수학식 2를 만족하는 대각 행렬(diagonal matrix)인 특징 벡터(F)를 획득할 수 있다.
수학식 2에서, R는 대각 행렬인 특징 벡터(F)와 중간 연산 벡터(X) 사이에 수학식2에 따른 관계를 가역적으로 만족시키는 행렬로서, 좌표변환행렬에 해당한다. 수학식 2에 따른 연산은 대각화 연산의 하나로 지칭될 수 있으며, 통상의 기술자에게 쉽게 이해될 수 있으므로 구체적인 설명은 생략한다.
이때, 은닉 노드들 각각에 대응하는 하나 이상의 연결 강도값들은 M×Q의 크기를 갖는 제2 연결강도 행렬(UM×Q)로 표현할 수 있다. 즉, 제2 연결강도 행렬(UM×Q)은 M개의 차원으로 사상된 특징 벡터(F)를 다시 Q개의 차원으로 늘린다. Q는 M보다 10배 이상 충분히 큰 값으로 설정된다.
한편, 제2 연결강도 행렬(UM×Q)의 초기값은 임의의 값으로 설정된 후, 특징 벡터(F)와 제2 연결강도 행렬(UM×Q) 사이의 행렬곱 연산하여 생성된 출력 벡터(Y`)가 훈련출력값(Y)이 되도록 지속적으로 갱신될 수 있다. 즉, 제2 연결강도 행렬(UM×Q)도 훈련 데이터를 지속적으로 지도학습함에 따라 갱신되는 파라미터일 수 있다.
즉, 은닉층(12)은, 입력층(11)으로부터 전달받은 중간 연산 벡터(X`)를 특징 벡터(F)로 변환하고, 특징 벡터(F)에 대하여 연결강도를 적용하여 출력 벡터(Y`)를 생성하므로, 마치 CNN(convolutional neural network)의 특징 추출을 담당하는 컨볼루셔널 레이어와 유사한 기능을 은닉층(12)에서 수행하도록 구성할 수 있다.
출력층(13)은, 은닉층(12)으로부터 전달받은 출력 벡터(Y`)에 활성화 함수를 적용함으로써 출력 벡터(Y`)에 대응하는 확률(p)을 결정하고, 결정된 확률(p)이 가장 높은 출력 벡터(Y`)를 출력할 수 있다. 활성화 함수는 다양한 범위를 가지는 값들을 0과 1 사이의 값으로 확대 또는 축소함으로써 확률로 변환하는 효과가 있다. 예를 들어, 활성화 함수는, ReLU 함수 또는 Softmax 함수일 수 있으나 이에 한정되는 것은 아니다.
본 발명의 일 실시예에서 은닉층(12)은, 동일한 개수의 뉴런들을 가지며, 서로 다르고 순차적으로 연결된 복수의 은닉층들로 구성될 수 있다. 예를 들어, 은닉층(12)은 서로 다르고 순차적으로 연결된 제1 은닉층, 제2 은닉층, 제3 은닉층, 및 제4 은닉층으로 구성될 수 있다. 이때, 제1 내지 제4 은닉층은 선형 레이어(linear layer)일 수 있으며, 제1 내지 제4 은닉층들 중에서 적어도 하나는 밀집 레이어(dense layer)일 수 있다. 여기서 선형 레이어 또는 밀집 레이어의 지정은 구글의 텐서플로우(Tensorflow)에서 미리 정의된 함수를 통해 간단하게 설정될 수 있으므로 설명은 생략한다.
또한, 제1 내지 제4 은닉층들 중에서 적어도 하나는 은닉층들의 개수와 은닉층들 각각이 갖는 뉴런들의 수에 따라 결정되는 확률(p)에 따라 드랍아웃(drop out)이 적용될 수 있다.
본 발명의 일 실시예에서, 드랍아웃이란, 해당 계층을 구성하는 뉴런들 중에서 확률(p)에 따라 무작위로 선택된 적어도 일부의 뉴런들의 가중치를 0 또는 미리 정의된 상수로 설정함으로써 해당 일부의 뉴런들을 비활성화하거나 방해하도록 구성하는 것을 의미할 수 있다.
예를 들어, 제1 은닉층이 768개의 뉴런들로 구성되고, 확률(p)이 0.2인 경우, 768개의 뉴런들 중 무작위로 선택된 20%의 뉴런들(즉, 768/5 개의 뉴런들)에 대한 가중치가 0 또는 미리 정의된 상수로 설정될 수 있다.
예를 들어, 확률(p)는 다음의 수학식 3과 같이 정의될 수 있다.
수학식 3에서 NRn은 제1 내지 제4 은닉층들에 포함된 뉴런들의 평균 개수일 수 있고, HDn은 은닉층들의 전체 개수로서 제1 내지 제4 은닉층들로 구성될 경우 4일 수 있다.
이처럼, 제1 내지 제4 은닉층들 중에서 적어도 하나에 대하여 드랍아웃을 적용할 경우, 은닉층들의 수와 각 뉴런들의 수가 증가함에 따라 발생할 수 있는 과적합 경향성을 보상하거나 상쇄할 수 있어 더 높은 예측 효과를 가져오는 데 도움이 될 수 있다.
일 실시예에서, 제1 내지 제4 은닉층들 중에서 제1 은닉층 및 제3 은닉층 내지 제4 은닉층 각각은 서로 동일한 뉴런들의 수로 구성될 수 있다. 예를 들어, 각각 768개의 뉴런들로 구성될 수 있다.
이때, 제1 은닉층 뒤에 연결되는 제2 은닉층을 구성하는 뉴런들의 수는 다른 은닉층들 각각이 갖는 뉴런들의 수보다 적어도 4 배이상 클 수 있다. 제2 은닉층을 구성하는 뉴런들의 수를 다른 은닉층들 각각이 갖는 뉴런들의 수보다 기준치 이상 크게 설정할 경우, 인공 신경망(10)이 과적합되는 경향성이 줄어들 수 있는 장점이 있다.
한편, 훈련출력값으로 현재 시점(또는 과거 특정 시점 이후의 시점들 중 하나)에서 특정 주식의 상승이나 하락 여부를 지시하는 이진(binary) 값을 사용하는 경우, 다수의 훈련데이터들을 이용해 상승이나 하락 중 하나를 판정하도록 구성하기 때문에, 크로스-엔트로피 기반의 손실함수를 사용하는 경우 연산 부하가 증가하고 정확도가 낮아질 수 있다.
이러한 문제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 손실 함수는, 다음의 수학식 4와 같이 정의될 수도 있다.
수학식 4에서, N은 입력층(11)에 입력된 훈련 데이터의 개수이고, ti 는 i번째로 사용된 훈련 데이터의 훈련출력값이고, hj는 은닉층(12)의 제2 연결강도 행렬(UM×Q)을 구성하는 파라미터들 중 j번째 파라미터이고, wji는 i번째로 사용된 훈련 데이터의 훈련입력값이 입력층(11)에 입력되었을 때, 입력층(11)의 출력값으로서 은닉층(12)의 j번째 파라미터와 연산되는 출력값일 수 있다.
위의 수학식 4에 따른 실시예에 따르면, 손실함수에 시그모이드 함수(where 이하 식)에 확률 변환을 반영하여 2진 기반 크로스 엔트로피 함수로 재구성함으로써 2진 기반 분류(classification)에 더욱 유리하게 파라미터 보정을 수행할 수 있는 장점이 있다.
도 6은 도 3에 따른 연관뉴스 전처리부의 일 실시예에 따른 동작을 설명하기 위한 도면이다. 도 7은 도 3에 따른 연관뉴스 전처리부의 다른 실시예에 따른 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 연관뉴스 전처리부(104a)는, 연관 뉴스에 대한 긍정, 부정, 및 중립을 평가하고, 평가 결과에 기초하여 제1 초기 벡터를 생성할 수 있다.
이를 위해, 연관뉴스 전처리부(104a)는, 미리 구축된 긍정, 부정, 및 중립과 관련된 뉴스 키워드들을 나타내는 제1 평가 테이블(21)을 참조하여, 연관 뉴스에 대한 긍정, 부정 및 중립을 평가할 수 있다.
예를 들어, 도 6에 도시된 것과 같이, 제1 평가 테이블(21)은, 긍정에 대응하는 뉴스 키워드로서, 상승, 회복, 낙폭이 낮은, 순매수 등을 지시할 수 있고, 부정에 대응하는 뉴스 키워드로서 하락, 폭락, 낙폭이 큰, 순매도 등을 지시할 수 있고, 중립에 대응하는 뉴스 키워드로서, 보합, 유지, 평이, 정상 등을 지시할 수 있다.
또한, 제1 평가 테이블(21)은 각 뉴스 키워드와 대응하는 가중치 값을 지시할 수 있다. 따라서, 연관뉴스 전처리부(104a)는, 후술하는 방식으로 선정된 뉴스 키워드들과 대응하는 가중치 값들 각각을 성분값으로 하는 제1 초기 벡터를 생성할 수 있다.
한편, 위와 같이 뉴스 키워드를 3개의 경우(부정, 긍정, 중립) 중 하나로 분류하여 지시할 경우, 긍정적인 키워드에 가깝지만 다소 중립적인 경향이 있는 키워드와 같이 어느 한 곳으로 분류하기 어려운 일이 발생할 수 있고, 이는 판단 오류를 크게 증가시키는 요인으로 작용한다.
이러한 문제를 해결하기 위한 수단으로, 제1 평가 테이블(21)은 긍정, 부정, 중립 중 하나로 뉴스 키워드를 대응시키는 대신에, 뉴스 키워드들 각각에 대응하는 가중치 벡터들을 지시할 수 있다(도면 미도시). 여기서 가중치 벡터들 각각의 크기(A)는 뉴스 키워드들 각각의 긍정, 부정, 또는 중립을 나타내는 표현의 강도에 따라 미리 설정된다. 예를 들어, 문맥상 어조나 설득을 위한 표현이 강한 뉴스 키워드일수록, 큰 크기를 갖도록 설정된다.
또한, 가중치 벡터들 각각의 방향각(θ)은 긍정에 가까운 뉴스 키워드일수록, 0도에 가깝게 설정될 수 있고, 부정에 가까운 뉴스 키워드일수록 180도에 가깝게 설정될 수 있으며, 중립에 가까운 뉴스 키워드일수록 90도 또는 270도에 가깝게 설정될 수 있다.
이처럼, 긍정, 부정, 중립의 3개로 분류하는 대신에 가중치 벡터들로서 표현하는 경우, 각 단어가 갖는 표현의 강도나 긍정이나 부정 및 중립 중 어디에 가까운지에 따라서 각 뉴스 키워드들을 개별적인 값으로 표현할 수 있는 장점이 있다.
연관 뉴스를 평가하기 위하여, 연관뉴스 전처리부(104a)는, 먼저 연관 뉴스에서 다수의 단어들을 추출할 수 있다.
다음으로, 연관뉴스 전처리부(104a)는, 추출된 다수의 단어들 각각에 대응하는 임베딩 값을 산출할 수 있다. 예를 들어, 임베딩 값은 하기 수학식에 따라 산출될 수 있다.
수학식 5에서 βj는 임의의 j번째 단어에 대응하는 임베딩 값이고, Wj는 단어들 각각에 대하여 미리 결정된 가중치 상수로서, 주식의 등락과 관련성이 깊은 단어일수록 높은 값으로 설정될 수 있다. 또한, yj는 j번째 단어를 임베딩 벡터로 변환했을 때, 변환된 임베딩 벡터의 크기를 의미할 수 있고, bs는 해당 단어가 속하는 문장의 길이에 따라 결정되는 바이어스 값일 수 있다.
이때, 단어를 임베딩 벡터로 변환하는 방법으로는 널리 알려진 워드투벡터(Word2Vec)나 그밖에 다양한 임베딩 기법이 적용될 수 있으므로, 자세한 설명은 생략한다.
다음으로, 연관뉴스 전처리부(104a)는, 산출된 임베딩 값과 제1 평가 테이블(21)에 저장된 뉴스 키워드들 각각에 대응하는 임베딩 값(수학식 4를 이용하여 뉴스 키워드들 각각에 대해 산출될 수 있음)을 서로 비교하고, 비교 결과에 따라 추출된 단어들 중 적어도 일부와 대응하는 뉴스 키워드들을 선정할 수 있다.
예를 들어, 연관뉴스 전처리부(104a)는, 단어들 중 제1 단어에 대하여 산출된 임베딩 값과 뉴스 키워드들 각각에 대응하는 임베딩 값 사이의 차분값들을 산출하고, 산출된 차분값들 중 가장 작은 차분값과 대응하는 뉴스 키워드를 제1 단어와 대응하는 것으로 선정할 수 있다.
이때, 차분값들 중 가장 작은 차분값의 크기가 미리 설정된 크기를 초과하는 경우, 해당하는 단어와 대응하는 뉴스 키워드는 선정하지 않도록 설정된다. 이를 통해, 제1 평가 테이블(21)에 정의된 뉴스 키워드와 관련성이 낮은 단어는 판단에 활용하지 않도록 한다. 예를 들어, 도 6에서 코스피, 한국 거래소 등은 주식과 관련성은 있으나, 주식의 등락에 관련성이 낮기 때문에 대응하는 뉴스 키워드가 선정되지 않는다.
다음으로, 연관뉴스 전처리부(104a)는, 추출된 단어들 중 적어도 일부와 대응하는 뉴스 키워드들 각각에 대하여 정의된 가중치 벡터들 각각을 아래 수학식 5에 따른 원소값으로 변환하고, 변환된 원소값들을 성분으로 갖는 제1 초기 벡터를 생성할 수 있다.
수학식 6에서 WTi는 추출된 단어들 중 적어도 일부와 대응하는 뉴스 키워드들 중 i번째 뉴스 키워드에 대하여 정의된 가중치 벡터가 변환된 원소값이고, A는 해당 가중치 벡터의 크기이고, θ는 해당 가중치 벡터의 방향각일 수 있다.
한편, 앞에서는 추출된 단어들 각각에 대한 임베딩 값을 결정하고, 결정된 임베딩 값을 제1 평가 테이블(21)에 정의된 뉴스 키워드의 임베딩 값과 비교하는 방식으로 단어들 중 적어도 일부에 대응하는 뉴스 키워드들을 선정하였으나, 단어 단위로 뉴스 키워드를 선정하는 것보다는 문장 단위로 뉴스 키워드를 선정하는 것이 유리한 경우가 있을 수 있다.
예를 들어, 뉴스 기사에서 주식의 등락과 관련된 단어가 제1 기준 개수를 초과하는 경우라면, 너무 많은 뉴스 키워드들이 선정되기 때문에 제1 초기 벡터를 구성하는 차원의 수가 크게 증가할 수 있어 많은 연산 부하를 초래할 수 있다.
또한, 뉴스 기사에서 주식의 등락과 관련된 단어가 제2 기준 개수 미만이라면, 너무 적은 뉴스 키워드들이 선정되어 판단 지표가 되는 뉴스 키워드들의 수가 너무 적어지기 때문에 예측 오류가 높아질 수 있다.
이러한 경우를 고려하여, 연관뉴스 전처리부(104a)는, 추출된 단어와 대응하는 뉴스 키워드를 선정하는 대신에, 문장과 대응하는 임베딩 값을 산출하고, 산출된 임베딩 값을 뉴스 키워드들 각각의 임베딩 값과 비교하여 차분값을 산출할 수 있다.
이때, 문장과 대응하는 임베딩 값은 하기 수학식에 따라 결정될 수 있다.
상기 수학식 7에서, V는 연관 뉴스의 특정 문장과 대응하는 임베딩 값이고, βj는 해당 특정 문장에 속하는 단어들 중에서 j번째 단어에 대하여 산출된 임베딩 값으로서 앞선 수학식 5에 따라 산출될 수 있으며, n은 해당 특정 문장에 속하는 단어들의 개수를 의미할 수 있다.
예를 들어, 연관뉴스 전처리부(104a)는, 제1 문장에 대응하는 임베딩 값과 뉴스 키워드들 각각에 대응하는 임베딩 값 사이의 차분값들을 산출하고, 산출된 차분값들 중 가장 작은 차분값과 대응하는 뉴스 키워드를 제1 문장과 대응하는 것으로 선정할 수 있다.
같은 방식으로, 연관뉴스 전처리부(104a)는, 연관 뉴스를 구성하는 문장들 각각과 대응하는 뉴스 키워드들을 선정하면, 선정된 뉴스 키워드들 각각에 대하여 정의된 가중치 벡터들을 이용하여 앞선 설명과 같은 방식으로 제1 초기 벡터를 생성할 수 있다.
도 8은 도 3에 따른 연관 SNS 데이터 전처리부의 동작을 설명하기 위한 도면이다.
도 8을 참조하면, 연관 SNS 데이터 전처리부(104b)는, 연관 SNS 데이터에 대한 긍정, 부정, 및 중립을 평가하고, 평가 결과에 기초하여 제2 초기 벡터를 생성할 수 있다.
이를 위해, 연관 SNS 데이터 전처리부(104b)는, 미리 구축된 긍정, 부정, 및 중립과 관련되고 주가 변동에 영향을 주는 SNS 키워드들을 나타내는 제2 평가 테이블(31)을 참조하여, 연관 SNS 데이터에 대한 긍정, 부정 및 중립을 평가할 수 있다.
예를 들어, 도 8에 도시된 것과 같이, 제2 평가 테이블(31)은, 긍정에 대응하는 SNS 키워드로서, 출시, 계약, 발매, 체결 등을 지시할 수 있고, 부정에 대응하는 SNS 키워드로서 연기, 불발, 포기, 실패 등을 지시할 수 있고, 중립에 대응하는 SNS 키워드로서, 고려, 보합, 불명, 결정 등을 지시할 수 있다.
또한, 제2 평가 테이블(31)도 제1 평가 테이블(21)과 마찬가지로 각 SNS 키워드와 대응하는 가중치 값을 지시할 수 있다. 따라서, 연관 SNS 데이터 전처리부(104b)는, 전술한 뉴스 키워드 선정과 같은 방식으로 선정된 SNS 키워드들과 대응하는 가중치 값들 각각을 성분값으로 하는 제2 초기 벡터를 생성할 수 있다. 즉, 연관뉴스 대신에 연관 SNS 데이터를 대상으로 하여 수행하는 점에서 차이가 있으나, 뉴스 키워드 선정과 같은 방식으로 SNS 키워드들을 선정할 수 있다.
또 다른 실시예에서, 제1 평가 테이블(21)과 마찬가지로, 제2 평가 테이블(31)은 긍정, 부정, 중립 중 하나로 SNS 키워드를 대응시키는 대신에, SNS 키워드들 각각에 대응하는 가중치 벡터들을 지시할 수 있으며, 이에 대한 설명은 앞선 제1 평가 테이블(21)과 동일하게 적용될 수 있으므로 자세한 설명은 생략한다.
한편, 제1 초기 벡터를 생성하는 것과 또 다른 차이점으로서, SNS 키워드들 각각에 대응하는 가중치 벡터들의 크기는, SNS 키워드들 각각의 긍정, 부정, 또는 중립을 나타내는 표현의 강도 뿐만 아니라 해당 SNS 데이터에 의해 지시되는 유명인 명칭과 시기를 고려하여 결정된다.
예를 들어, 유명인 명칭에 의해 지시되는 계정과 SNS 관계가 맺어진 사용자들의 수(팔로워 수 또는 구독자 수, 친구 수 등)가 클수록 가중치 벡터의 크기가 크게 설정될 수 있으며, 유명인의 SNS 데이터가 게시된 시기와 현재 시점 사이의 경과 기간이 작을수록 가중치 벡터의 크기가 크게 설정될 수 있다.
구체적으로, 가중치 벡터의 크기는, 다음의 수학식 8에 따라 설정될 수 있다.
수학식 8에서 Ao는 긍정, 부정, 또는 중립을 나타내는 표현의 강도에 따라 미리 정의되는 가중치 벡터의 크기(또는 전술한 일 실시예에 따른 가중치 값)이고, P는 해당 계정과 SNS 관계가 맺어진 사용자들의 수이고, Pavg는 해당 계정이 속하는 SNS 서비스에 가입된 사용자들의 평균 관계 사용자의 수이고, to는 SNS 데이터가 게시된 시기(365일로 환산된 일)이고, tc는 현재시점(365일로 환산된 일)이고, τ는 미리 정의되는 시간 상수이다.
이처럼, 유명인이 누구인지 및 게시된 시기에 따라 가중치 벡터의 크기를 달리함으로써 유명인의 SNS 게시글에 따른 파급력이 충분히 반영될 수 있도록 구성할 수 있다.
도 9는 도 3에 따른 차트 전처리부의 동작을 설명하기 위한 도면이다.
일 실시예에 따른 차트 전처리부(104c)는, 차트 정보에 의해 지시되는 특정 주식에 대한 주가 변동을 나타내는 지표들에 기초하여 제3 초기 벡터를 생성할 수 있다.
도 9를 참조하면, 차트 정보에는 특정 주식에 대한 주가의 일별, 월별, 년별 변화량이 포함되며, 이를 통해 각종 지표들을 산출할 수 있다.
예를 들어, 도 9에 도시된 것과 같이 5일 이동평균선, 20일 이동평균선, 60일 이동평균선, 120일 이동평균선 등을 산출할 수 있고, 그 밖에도 미리 지정된 기간 내 최저점이나 최고점, 변곡점 등을 산출할 수 있다.
차트 전처리부(104c)는 위와 같이 산출되는 각종 지표들을 기반으로 제3 초기 벡터를 생성할 수 있다.
여기서, 차트 전처리부(104c)는, 현재 시점을 기준으로 지표들의 발생 시기가 최근일수록, 더 높은 가중치를 갖도록 지표들을 보정하고, 보정된 지표들을 이용하여 제3 초기 벡터를 생성할 수도 있다.
일 실시예에서, 차트 전처리부(104c)는, 현재 시점부터 미리 설정된 과거 기간 이내에 속하는 차트 정보를 대상으로 회귀분석(regression analysis)을 수행하여 추세선을 산출하고, 산출된 추세선을 기반으로 제3 초기 벡터를 생성할 수 있다.
구체적으로, 차트 전처리부(104c)는, 추세선에 따른 주가와 실제 주가 사이의 차분값을 일별로 산출하고, 산출된 차분값들 각각을 성분값으로 하는 제3 초기 벡터를 생성할 수 있다.
다만, 앞선 차트 정보에 대한 처리는 예시적인 것이고, 주식 차트 분석에 대해서는 다양한 기법들이 연구되고 있으므로, 이러한 기법들을 적용해서 차트 정보로부터 지표들을 선정하고, 선정된 지표들을 변환하여 제3 초기 벡터를 생성할 수도 있는 것으로 해석될 수 있다.
도 10은 도 1에 따른 주식 거래 플랫폼 서버의 하드웨어 구성을 나타낸 도면이다.
도 10을 참조하면, 주식 거래 플랫폼 서버(100)는, 적어도 하나의 프로세서(110); 및 적어도 하나의 프로세서(110)가 적어도 하나의 동작(operation)을 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.
적어도 하나의 동작은, 전술한 주식 거래 플랫폼 서버(100)의 동작이나 기능들 중 적어도 일부를 포함하는 것으로 해석되어야 하며, 중복 설명을 방지하기 위하여 구체적인 설명은 생략된다.
적어도 하나의 프로세서(110)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(120)는 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(120)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중 하나일 수 있다.
또한, 주식 거래 플랫폼 서버(100)는, 적어도 하나의 동작을 처리하는 과정에서 요구되는 입력 데이터, 중간 처리 데이터, 임시 데이터, 처리 결과 데이터, 각종 참조 데이터들을 저장할 수 있는 저장 장치(160)를 더 포함할 수 있다. 저장 장치(160)는, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), 또는 각종 메모리 카드(예를 들어, micro SD 카드) 등일 수 있다.
또한, 주식 거래 플랫폼 서버(100)는, 무선 네트워크를 통해 통신을 수행하는 송수신 장치(transceiver)(130)를 포함할 수 있다. 또한, 주식 거래 플랫폼 서버(100)는 입력 인터페이스 장치(140), 출력 인터페이스 장치(150), 저장 장치(160) 등을 더 포함할 수 있다. 주식 거래 플랫폼 서버(100)에 포함된 각각의 구성 요소들은 버스(bus)(170)에 의해 연결되어 서로 통신을 수행할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 인공신경망
20: 뉴스 DB
30: SNS DB
100: 주식 거래 플랫폼 서버
200: 사용자 단말
20: 뉴스 DB
30: SNS DB
100: 주식 거래 플랫폼 서버
200: 사용자 단말
Claims (5)
- 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버로서,
외부 서버와 연동하여 다수의 주식들 각각과 대응하는 주식 정보를 수집하는 주식 정보 수집부;
사용자의 사용자 단말과 연동하여 상기 사용자 단말로부터 주식 계좌 정보를 수신하고, 수신된 주식 계좌 정보를 기반으로 주식 실시간 거래를 실행하거나, 상기 사용자 단말에게 상기 다수의 주식들 각각에 대한 거래 정보 및 온라인 뉴스 기사들을 제공하는 주식 거래 지원부;
미리 구축된 뉴스 DB에 저장된 뉴스 기사들과 미리 구축된 SNS DB에 저장된 SNS 데이터들, 및 상기 거래 정보를 참조하여 특정 주식과 관련이 있는 연관 정보를 선정하는 연관 정보 선정부;
선정된 상기 연관 정보를 기반으로 미리 지도학습된 인공신경망과 연동하여 특정 주식과 대응하는 예측 주가를 결정하는 주가 예측부; 및
상기 사용자의 주식 계좌 정보를 기반으로 상기 다수의 주식들을 대상으로, 상기 주가 예측부에 의해 결정된 예측 주가를 획득하고, 획득된 예측 주가에 따라 상기 다수의 주식들 중 매매 대상 주식을 선정하고, 선정된 매매 대상 주식에 대한 거래를 자동으로 수행하는 자동 트레이딩 봇 지원부;를 포함하고,
상기 연관 정보는, 상기 뉴스 DB에 저장된 뉴스 기사들 중에서 상기 특정 주식과 관련성이 있는 연관 뉴스, 상기 SNS DB에 저장된 SNS 데이터들 중에서 상기 특정 주식과 관련성이 있는 연관 SNS 데이터, 및 상기 거래 정보에서 상기 특정 주식에 대응하는 차트 정보를 포함하고,
상기 주가 예측부는,
상기 연관 뉴스를 전처리하여 제1 초기 벡터를 생성하는 연관 뉴스 전처리부;
상기 연관 SNS 데이터를 전처리하여 제2 초기 벡터를 생성하는 연관 SNS 데이터 전처리부;
상기 특정 주식에 대응하는 차트 정보를 전처리하여 제3 초기 벡터를 생성하는 차트 전처리부;
상기 제1 내지 제3 초기 벡터를 이용하여 입력 벡터를 생성하는 입력 벡터 생성부; 및
상기 입력 벡터를 미리 지도학습된 상기 인공신경망에 입력하고, 상기 인공 신경망의 출력값에 기초하여 상기 특정 주식에 대응하는 예측 주가를 결정하는 주가 결정부;를 포함하고,
상기 입력 벡터 생성부는,
상기 제1 초기 벡터, 상기 제2 초기 벡터, 및 상기 제3 초기 벡터 각각의 성분값들에 대한 표준화 연산을 수행하고, 표준화 연산된 상기 제1 초기 벡터, 상기 제2 초기 벡터, 및 상기 제3 초기 벡터 중에서 차원의 수가 상대적으로 적은 2개의 초기 벡터들 각각에 대하여 미리 정의된 패딩값을 성분값으로 추가하는 패딩 연산을 수행하여 상기 제1 내지 제3 초기 벡터의 차원 수가 서로 동일하도록 보정하고, 상기 패딩 연산 후에 상기 제1 초기 벡터, 상기 제2 초기 벡터, 및 상기 제3 초기 벡터를 순차적으로 연접(concatenate)하여 하나의 연접 벡터를 생성하고,
생성된 상기 연접 벡터의 성분값들 중 제일 앞에 있는 k개의 성분값들부터 순차적으로 이동시켜 미리 정의된 마스크 벡터를 구성하는 k개의 성분값들과 내적(dot)하고, 내적한 결과값들을 상기 연접 벡터에서 대응하는 위치의 성분값으로 갱신시키는 과정을 반복하는 쉬프트 내적 연산을 수행하여 상기 입력 벡터를 생성하되,
상기 k는 상기 마스크 벡터의 차원의 수로서 상기 제1 초기 벡터, 상기 제2 초기 벡터, 및 상기 제3 초기 벡터 각각의 차원의 수들 중에서 가장 큰 값과 동일하게 설정되고,
상기 주가 예측부는,
미리 구축된 긍정, 부정, 및 중립과 관련된 뉴스 키워드들을 나타내는 제1 평가 테이블을 참조하여, 상기 연관 뉴스에 대한 긍정, 부정 및 중립을 평가하고, 평가 결과에 기초하여 상기 예측 주가를 결정하는 연관뉴스 전처리부를 포함하되,
상기 연관뉴스 전처리부는,
상기 연관 뉴스에서 다수의 단어들을 추출하고, 추출된 단어들 각각에 대응하는 임베딩 값을 산출하고, 산출된 임베딩 값과 상기 뉴스 키워드들 각각에 대응하는 임베딩 값을 서로 비교하고, 비교 결과에 따라 상기 추출된 단어들 중 적어도 일부와 대응하는 뉴스 키워드들을 선정하되, 하기 수학식 1에 따라 상기 추출된 단어들 각각에 대응하는 임베딩 값 및 상기 뉴스 키워드들 각각에 대응하는 임베딩 값을 산출하고,
[수학식 1]
상기 수학식 1에서, βj는 임의의 j번째 단어(또는 뉴스 키워드)에 대응하는 임베딩 값이고, Wj는 단어들(또는 뉴스 키워드들) 각각에 대하여 미리 결정된 가중치 상수로서, 주식의 등락과 관련성이 깊은 단어일수록 높은 값으로 설정되고, yj는 j번째 단어(또는 뉴스 키워드)를 임베딩 벡터로 변환했을 때, 변환된 임베딩 벡터의 크기이고, bs는 해당 단어(또는 뉴스 키워드)가 속하는 문장의 길이에 따라 결정되는 바이어스 값이며,
상기 연관뉴스 전처리부는,
상기 추출된 단어들의 수가 미리 정의된 제1 기준 개수를 초과하거나, 제2 기준 개수 미만인 경우, 상기 연관 뉴스에서 상기 추출된 단어들 중 적어도 일부와 대응하는 뉴스 키워드들을 선정하는 대신에,
상기 연관 뉴스에서 다수의 문장들을 추출하고, 추출된 문장들 각각에 대응하는 임베딩 값을 하기 수학식 2에 따라 산출하고, 산출된 임베딩 값과 상기 뉴스 키워드들 각각에 대응하는 임베딩 값을 서로 비교하고, 비교 결과에 따라 상기 추출된 문장들 중 적어도 일부와 대응하는 뉴스 키워드들을 선정하고,
[수학식 2]
상기 수학식 2에서, V는 상기 연관 뉴스에서 추출된 문장과 대응하는 임베딩 값이고, Bj는 상기 연관 뉴스에서 추출된 문장에 속하는 단어들 중에서 j번째 단어에 대하여 상기 수학식 1에 따라 산출된 임베딩 값이고, n은 상기 연관 뉴스에서 추출된 문장에 속하는 단어들의 개수이며,
상기 연관뉴스 전처리부는,
선정된 뉴스 키워드들 각각에 대하여 정의된 가중치 벡터들 각각을 하기 수학식 3에 따른 원소값으로 변환하고, 변환된 원소값을 성분값으로 갖는 상기 제1 초기 벡터를 생성하는,
[수학식 3]
상기 수학식 3에서 WTi는 선정된 뉴스 키워드들 중 i번째 뉴스 키워드에 대하여 정의된 가중치 벡터가 변환된 원소값이고, A는 해당 가중치 벡터의 크기이고, θ는 해당 가중치 벡터의 방향각인, 주식 거래 플랫폼 서버. - 청구항 1에서,
상기 자동 트레이딩 봇 지원부는,
상기 예측 주가에서 주가가 상승하는 것으로 지시되는 주식을 상기 매매 대상 주식으로 선정하여 매수 거래를 수행하고,
상기 주식 계좌 정보에 따른 보유 주식들 중에서, 상기 예측 주가에서 주가가 하락하는 것으로 지시되는 주식을 상기 매매 대상 주식으로 선정하여 매도 거래를 수행하는, 주식 거래 플랫폼 서버. - 청구항 2에서,
상기 자동 트레이딩 봇 지원부는,
선정된 매매 대상 주식에 대한 알림 메시지를 상기 사용자 단말에 전송하고, 상기 사용자 단말로부터 수신되는 상기 사용자의 입력에 따라 상기 매매 대상 주식의 거래량을 결정하는, 주식 거래 플랫폼 서버. - 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220001105A KR102453549B1 (ko) | 2022-01-04 | 2022-01-04 | 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 이의 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220001105A KR102453549B1 (ko) | 2022-01-04 | 2022-01-04 | 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 이의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102453549B1 true KR102453549B1 (ko) | 2022-10-14 |
Family
ID=83600046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220001105A KR102453549B1 (ko) | 2022-01-04 | 2022-01-04 | 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 이의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102453549B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102547584B1 (ko) * | 2023-01-02 | 2023-06-26 | 딥트레이드테크놀로지스 주식회사 | 연금 투자를 위한 변동성 최소화 기반 포트폴리오 관리 방법 및 장치 |
KR102593556B1 (ko) * | 2022-12-12 | 2023-10-26 | 주식회사 에이치에스88 | 트레이딩 봇을 운영하기 위한 방법 및 이를 수행하는 운영 서버 |
CN117495564A (zh) * | 2023-11-14 | 2024-02-02 | 杭州卡方分布信息科技有限公司 | 基于逻辑驱动的股票交易策略构建方法、系统及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200064198A (ko) * | 2018-11-23 | 2020-06-08 | 디비디스커버코리아 주식회사 | 인공신경망 모델을 이용한 뉴스 기사 분석에 의한 주가지수 예측 방법 및 장치 |
KR20210062838A (ko) * | 2019-11-22 | 2021-06-01 | 엘지전자 주식회사 | 인공지능 기반의 음성처리 방법 |
KR20210086817A (ko) * | 2019-12-30 | 2021-07-09 | 주식회사 씽크풀 | 인공지능 기반의 투자지표 결정방법 및 그 시스템 |
KR20210137939A (ko) * | 2020-05-08 | 2021-11-18 | 호라이존테크놀로지 주식회사 | 주식 자동 거래 방법 및 시스템 |
-
2022
- 2022-01-04 KR KR1020220001105A patent/KR102453549B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200064198A (ko) * | 2018-11-23 | 2020-06-08 | 디비디스커버코리아 주식회사 | 인공신경망 모델을 이용한 뉴스 기사 분석에 의한 주가지수 예측 방법 및 장치 |
KR20210062838A (ko) * | 2019-11-22 | 2021-06-01 | 엘지전자 주식회사 | 인공지능 기반의 음성처리 방법 |
KR20210086817A (ko) * | 2019-12-30 | 2021-07-09 | 주식회사 씽크풀 | 인공지능 기반의 투자지표 결정방법 및 그 시스템 |
KR20210137939A (ko) * | 2020-05-08 | 2021-11-18 | 호라이존테크놀로지 주식회사 | 주식 자동 거래 방법 및 시스템 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102593556B1 (ko) * | 2022-12-12 | 2023-10-26 | 주식회사 에이치에스88 | 트레이딩 봇을 운영하기 위한 방법 및 이를 수행하는 운영 서버 |
KR102547584B1 (ko) * | 2023-01-02 | 2023-06-26 | 딥트레이드테크놀로지스 주식회사 | 연금 투자를 위한 변동성 최소화 기반 포트폴리오 관리 방법 및 장치 |
CN117495564A (zh) * | 2023-11-14 | 2024-02-02 | 杭州卡方分布信息科技有限公司 | 基于逻辑驱动的股票交易策略构建方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102453549B1 (ko) | 인공지능과 빅데이터를 이용하여 자동 트레이딩 봇을 지원하는 주식 거래 플랫폼 서버 및 이의 동작 방법 | |
Souma et al. | Enhanced news sentiment analysis using deep learning methods | |
EP4145308A1 (en) | Search recommendation model training method, and search result sorting method and device | |
Mukherjee et al. | Stock market prediction using deep learning algorithms | |
CN109101537B (zh) | 基于深度学习的多轮对话数据分类方法、装置和电子设备 | |
US11107250B2 (en) | Computer architecture for artificial image generation using auto-encoder | |
US20200098353A1 (en) | Adversarial learning framework for persona-based dialogue modeling | |
WO2021204269A1 (zh) | 分类模型的训练、对象分类 | |
CN111221944B (zh) | 文本意图识别方法、装置、设备和存储介质 | |
CN114556443A (zh) | 使用基于注意力的融合网络的多媒体数据语义分析系统和方法 | |
US11126660B1 (en) | High dimensional time series forecasting | |
Ebiaredoh-Mienye et al. | Artificial neural network technique for improving prediction of credit card default: A stacked sparse autoencoder approach | |
Shetu et al. | Predicting satisfaction of online banking system in Bangladesh by machine learning | |
US11195053B2 (en) | Computer architecture for artificial image generation | |
US11538029B2 (en) | Integrated machine learning and blockchain systems and methods for implementing an online platform for accelerating online transacting | |
Chen et al. | Research on credit card default prediction based on k-means SMOTE and BP neural network | |
CN112364236A (zh) | 目标对象推荐系统、方法、装置、数据处理方法及装置 | |
KR102453557B1 (ko) | 뉴스 기사에 대한 긍정, 부정 또는 중립 여부를 평가한 결과에 따라 예측 주가를 제공하는 주식 거래 플랫폼 서버 및 이의 동작 방법 | |
CN113887214B (zh) | 基于人工智能的意愿推测方法、及其相关设备 | |
CN113869068A (zh) | 场景服务推荐方法、装置、设备及存储介质 | |
Qasem et al. | Extreme learning machine for credit risk analysis | |
KR102453562B1 (ko) | 인공신경망을 이용하여 바이너리 기반의 예측 주가를 제공하는 주식 거래 플랫폼 서버 및 이의 동작 방법 | |
KR102453555B1 (ko) | Sns 데이터를 기반으로 유명인 가중치에 따른 예측 주가를 제공하는 주식 거래 플랫폼 서버 및 이의 동작 방법 | |
CN111445032A (zh) | 利用业务决策模型进行决策处理的方法及装置 | |
CN115879958A (zh) | 一种基于大数据的涉外销售话术决策方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
N231 | Notification of change of applicant | ||
GRNT | Written decision to grant |