KR102415220B1 - Time series data processing device and operating method thereof - Google Patents

Time series data processing device and operating method thereof Download PDF

Info

Publication number
KR102415220B1
KR102415220B1 KR1020180147862A KR20180147862A KR102415220B1 KR 102415220 B1 KR102415220 B1 KR 102415220B1 KR 1020180147862 A KR1020180147862 A KR 1020180147862A KR 20180147862 A KR20180147862 A KR 20180147862A KR 102415220 B1 KR102415220 B1 KR 102415220B1
Authority
KR
South Korea
Prior art keywords
time
data
time series
series data
generating
Prior art date
Application number
KR1020180147862A
Other languages
Korean (ko)
Other versions
KR20200061968A (en
Inventor
박흰돌
최재훈
한영웅
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020180147862A priority Critical patent/KR102415220B1/en
Publication of KR20200061968A publication Critical patent/KR20200061968A/en
Application granted granted Critical
Publication of KR102415220B1 publication Critical patent/KR102415220B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 시계열 데이터 처리 장치 및 이의 동작 방법에 관한 것이다. 본 발명의 실시예에 따른 시계열 데이터 처리 장치는 네트워크 인터페이스, 전처리부, 및 데이터 분석부, 및 프로세서를 포함한다. 네트워크 인터페이스는 시계열 데이터 및 예측 시간을 수신한다. 전처리부는 시계열 데이터를 전처리하고, 예측 시간에 기초하여 시계열 데이터의 복수의 시간들 각각에 대응되는 시차 데이터를 생성한다. 데이터 분석부는 전처리된 시계열 데이터 및 시차 데이터에 기초하여, 예측 시간에 대응되는 결과 데이터를 생성한다. 본 발명에 따르면, 시계열 데이터의 불규칙한 시간 간격을 보정함으로써 예측 결과의 정확성 및 신뢰성을 향상시킬 수 있다.The present invention relates to a time series data processing apparatus and an operating method thereof. A time series data processing apparatus according to an embodiment of the present invention includes a network interface, a preprocessor, a data analysis unit, and a processor. The network interface receives time series data and predicted times. The preprocessor preprocesses the time series data and generates disparity data corresponding to each of a plurality of times of the time series data based on the predicted time. The data analysis unit generates result data corresponding to the predicted time based on the preprocessed time series data and disparity data. According to the present invention, accuracy and reliability of prediction results can be improved by correcting irregular time intervals of time series data.

Description

시계열 데이터 처리 장치 및 이의 동작 방법{TIME SERIES DATA PROCESSING DEVICE AND OPERATING METHOD THEREOF}TIME SERIES DATA PROCESSING DEVICE AND OPERATING METHOD THEREOF

본 발명은 시계열 데이터의 처리 및 이를 위한 예측 모델의 구축에 관한 것으로, 좀 더 구체적으로 시계열 데이터 처리 장치 및 예측 모델을 학습 또는 이용하는 시계열 데이터 처리 장치의 동작 방법에 관한 것이다.The present invention relates to the processing of time series data and the construction of a prediction model therefor, and more particularly, to a time series data processing apparatus and an operating method of the time series data processing apparatus learning or using the prediction model.

의료 기술을 비롯한 각종 기술의 발달은 인간의 생활 수준을 향상시키고, 인간의 수명을 늘리고 있다. 다만, 기술 발달에 따른, 생활 양식의 변화와 잘못된 식습관 등은 다양한 질병 등을 유발시키고 있다. 건강한 삶을 영위하기 위하여, 현재의 질병을 치료하는 것에서 나아가 미래의 건강 상태를 예측하기 위한 요구가 제기되고 있다. 시간의 흐름에 따른 시계열 의료 데이터의 추이를 분석함으로써, 미래 시점의 건강 상태를 예측하는 방안이 제기되고 있다.BACKGROUND ART The development of various technologies, including medical technology, is improving the standard of living of humans and extending the lifespan of humans. However, changes in lifestyle and wrong eating habits due to technological development are causing various diseases. In order to lead a healthy life, there is a demand for predicting future health conditions in addition to treating current diseases. By analyzing the trend of time series medical data according to the passage of time, a method of predicting a health status at a future point in time has been proposed.

산업 기술과 정보 통신 기술의 발달은 상당한 규모의 정보 및 데이터를 생성하게 만들고 있다. 최근에는, 이러한 수많은 정보 및 데이터를 이용하여, 컴퓨터와 같은 전자 장치를 학습시켜, 다양한 서비스를 제공하는 인공 지능과 같은 기술이 대두되고 있다. 특히, 미래의 건강 상태를 예측하기 위하여, 다양한 시계열 의료 데이터를 이용한 예측 모델을 구축하는 방안이 제기되고 있다. 예를 들어, 시계열 의료 데이터는 사용자의 불규칙한 방문에 따라 불규칙한 시간 간격을 갖는 점에서, 다른 분야에서 수집되는 데이터와 차이점을 갖는다. 따라서, 미래의 건강 상태를 예측하기 위하여, 시계열 의료 데이터를 효과적으로 처리하고 분석하기 위한 요구가 제기되고 있다.The development of industrial technology and information and communication technology is creating a significant amount of information and data. Recently, a technology such as artificial intelligence that provides various services by learning an electronic device such as a computer by using such a large amount of information and data has emerged. In particular, in order to predict a future health state, a method of constructing a predictive model using various time series medical data has been proposed. For example, time series medical data differs from data collected in other fields in that it has irregular time intervals according to irregular visits of users. Accordingly, there is a demand for effectively processing and analyzing time-series medical data in order to predict future health conditions.

본 발명은 불규칙한 시간 간격을 갖는 시계열 데이터에 의한 예측 결과의 정확성 및 신뢰성을 향상시키는 시계열 데이터 처리 장치 및 이의 동작 방법을 제공할 수 있다.The present invention may provide a time series data processing apparatus and an operating method thereof for improving the accuracy and reliability of prediction results based on time series data having irregular time intervals.

본 발명의 실시예에 따른 시계열 데이터 처리 장치는 네트워크 인터페이스, 전처리부, 데이터 분석부, 및 프로세서를 포함한다. 네트워크 인터페이스는 시계열 데이터 및 예측 시간을 수신한다. 전처리부는 시계열 데이터를 전처리하고, 예측 시간에 기초하여 시계열 데이터의 복수의 시간들 각각에 대응되는 시차 데이터를 생성한다. 데이터 분석부는 전처리된 시계열 데이터 및 시차 데이터에 기초하여 예측 시간에 대응되는 결과 데이터를 생성한다. 프로세서는 전처리부 및 데이터 분석부를 제어한다.A time series data processing apparatus according to an embodiment of the present invention includes a network interface, a preprocessor, a data analysis unit, and a processor. The network interface receives time series data and predicted times. The preprocessor preprocesses the time series data and generates disparity data corresponding to each of a plurality of times of the time series data based on the predicted time. The data analyzer generates result data corresponding to the predicted time based on the preprocessed time series data and the disparity data. The processor controls the preprocessor and the data analysis unit.

일례로, 전처리부는 복수의 시간들 중 최초 시간과 예측 시간의 차이에 기초하여 시계열 데이터의 복수의 기준 시간들을 계산하고, 복수의 기준 시간들과 복수의 시간들 사이의 차이에 기초하여 시차 데이터를 생성할 수 있다. 복수의 기준 시간들 사이의 시간 간격은 서로 동일할 수 있다. For example, the preprocessor calculates a plurality of reference times of the time series data based on the difference between the initial time and the predicted time among the plurality of times, and calculates the time difference data based on the difference between the plurality of reference times and the plurality of times. can create Time intervals between the plurality of reference times may be equal to each other.

일례로, 전처리부는 데이터 추출기, 시간 간격 계산기, 및 데이터 보간기를 포함할 수 있다. 데이터 추출기는 시계열 데이터에서 정상 시계열 데이터를 추출할 수 있다. 시간 간격 계산기는 예측 시간 및 정상 시계열 데이터의 복수의 시간들에 기초하여, 시차 데이터를 생성할 수 있다. 데이터 보간기는 정상 시계열 데이터에 포함된 특징들에 대한 결측 값을 보간할 수 있다.As an example, the preprocessor may include a data extractor, a time interval calculator, and a data interpolator. The data extractor may extract normal time series data from time series data. The time interval calculator may generate disparity data based on the predicted time and the plurality of times of the normal time series data. The data interpolator may interpolate missing values for features included in the normal time series data.

일례로, 데이터 분석부는 전처리된 시계열 데이터 및 시차 데이터를 입력 받는 예측 모델에 의하여, 전처리된 시계열 데이터에 대응되는 가중치를 생성하고, 가중치에 기초하여 결과 데이터를 계산할 수 있다. For example, the data analyzer may generate a weight corresponding to the preprocessed time series data by a prediction model receiving the preprocessed time series data and the disparity data, and calculate the result data based on the weight.

일례로, 예측 모델은 전처리된 시계열 데이터를 복수의 시간들에 대응되는 복수의 벡터 값들로 변환하는 제1 레이어, 복수의 시간들에 대응되는 시차 데이터의 값들 및 복수의 벡터 값들을 모델링하여, 복수의 벡터 값들에 대응되는 복수의 가중치들을 생성하고, 복수의 가중치들을 복수의 벡터 값들에 적용하여, 분석 값을 생성하는 제2 레이어, 및 복수의 시간들 중 최종 시간에 대응되는 벡터 값 및 분석 값에 기초하여, 결과 데이터를 생성하는 제3 레이어를 포함할 수 있다.As an example, the predictive model is a first layer that converts preprocessed time series data into a plurality of vector values corresponding to a plurality of times, values of disparity data corresponding to a plurality of times, and a plurality of vector values, A second layer that generates a plurality of weights corresponding to vector values of , and applies the plurality of weights to the plurality of vector values to generate an analysis value, and a vector value and analysis value corresponding to a final time among the plurality of times Based on the , a third layer generating result data may be included.

일례로, 예측 모델은 전처리된 시계열 데이터를 복수의 시간들에 대응되는 복수의 벡터 값들로 변환하는 제1 레이어, 시차 데이터를 모델링하여 복수의 벡터 값들에 대응되는 복수의 시간 보정 값들을 생성하는 제2 레이어, 복수의 벡터 값들 및 복수의 시간 보정 값들에 기초하여 복수의 벡터 값들에 대응되는 복수의 가중치들을 생성하는 제3 레이어, 및 복수의 가중치들 및 상기 복수의 벡터 값들에 기초하여 결과 데이터를 생성하는 제4 레이어를 포함할 수 있다.For example, the predictive model includes a first layer that converts preprocessed time series data into a plurality of vector values corresponding to a plurality of times, and a first layer that models disparity data to generate a plurality of time correction values corresponding to a plurality of vector values 2 layers, a third layer that generates a plurality of weights corresponding to a plurality of vector values based on a plurality of vector values and a plurality of time correction values, and a plurality of weights and result data based on the plurality of vector values A fourth layer to be generated may be included.

본 발명의 실시예에 따른 시계열 데이터 처리 장치의 동작 방법은 복수의 시간들에 대응되는 시계열 데이터를 획득하는 단계, 설정된 예측 시간으로부터 생성된 복수의 기준 시간들과 복수의 시간들 사이의 차이에 기초하여 시차 데이터를 생성하는 단계, 및 시계열 데이터 및 시차 데이터에 기초하여 예측 모델을 학습하는 단계를 포함할 수 있다. 예측 시간은 복수의 시간들 중 최종 시간을 포함할 수 있다.A method of operating a time series data processing apparatus according to an embodiment of the present invention includes obtaining time series data corresponding to a plurality of times, based on a difference between a plurality of reference times and a plurality of times generated from a set prediction time to generate disparity data, and learning a predictive model based on time series data and disparity data. The prediction time may include a last time among a plurality of times.

본 발명의 실시예에 따른 시계열 데이터 처리 장치의 동작 방법은 복수의 시간들에 대응되는 시계열 데이터를 획득하는 단계, 복수의 시간들 이후의 예측 시간을 획득하는 단계, 예측 시간 및 복수의 시간들 중 적어도 하나 사이의 시간 간격에 기초하여, 복수의 시간들 각각에 대응되는 시차 데이터를 생성하는 단계, 및 시계열 데이터 및 시차 데이터에 기초하여, 예측 시간에 대응되는 결과 데이터를 생성하는 단계를 포함할 수 있다.A method of operating a time series data processing apparatus according to an embodiment of the present invention includes obtaining time series data corresponding to a plurality of times, obtaining a predicted time after a plurality of times, a predicted time and a plurality of times based on the time interval between at least one, generating disparity data corresponding to each of a plurality of times, and generating result data corresponding to the predicted time based on the time series data and disparity data. have.

본 발명의 실시예에 따른 시계열 데이터 처리 장치 및 이의 동작 방법은 예측 시간을 고려하여 시계열 데이터의 불규칙한 시간 간격을 보정함으로써, 원하는 시간의 예측 결과를 생성할 수 있고, 예측 결과의 정확성 및 신뢰성을 향상시킬 수 있다.A time series data processing apparatus and an operating method thereof according to an embodiment of the present invention can generate a prediction result of a desired time by correcting an irregular time interval of the time series data in consideration of the prediction time, and improve the accuracy and reliability of the prediction result can do it

또한, 본 발명의 실시예에 따른 시계열 데이터 처리 장치 및 이의 동작 방법은 시계열 데이터의 불규칙한 시간 간격을 보정하는 어텐션 매커니즘(attention mechanism) 기반의 예측 모델을 구축함으로써, 예측 결과의 정확성 및 신뢰성을 향상시킬 수 있다.In addition, the time series data processing apparatus and the method of operation thereof according to an embodiment of the present invention build a prediction model based on an attention mechanism that corrects irregular time intervals of time series data, thereby improving the accuracy and reliability of the prediction result. can

도 1은 본 발명의 실시예에 따른 건강 상태 예측 시스템을 도시한 도면이다.
도 2는 도 1의 시계열 의료 데이터 처리 장치의 예시적인 블록도이다.
도 3은 도 2의 전처리부의 예시적인 블록도이다.
도 4는 도 3의 시간 간격 계산기에서 시차 데이터를 생성하는 과정을 설명하기 위한 도면이다.
도 5는 도 2의 데이터 분석부의 예시적인 블록도이다.
도 6은 도 5에서 학습된 예측 모델의 예시적인 도면이다.
도 7은 도 5에서 학습된 예측 모델의 예시적인 도면이다.
도 8은 도 1의 시계열 의료 데이터 처리 장치에 의한 예측 모델을 학습하는 방법의 순서도이다.
도 9는 도 1의 시계열 의료 데이터 처리 장치에 의한 미래 건강 상태를 예측하는 방법의 순서도이다.
도 10은 도 9의 S230 단계를 구체화한 순서도이다.
1 is a diagram illustrating a health state prediction system according to an embodiment of the present invention.
FIG. 2 is an exemplary block diagram of the time-series medical data processing apparatus of FIG. 1 .
3 is an exemplary block diagram of the preprocessor of FIG. 2 .
FIG. 4 is a view for explaining a process of generating disparity data in the time interval calculator of FIG. 3 .
FIG. 5 is an exemplary block diagram of the data analysis unit of FIG. 2 .
6 is an exemplary diagram of a predictive model trained in FIG. 5 .
7 is an exemplary diagram of a predictive model trained in FIG. 5 .
8 is a flowchart of a method for learning a predictive model by the time series medical data processing apparatus of FIG. 1 .
9 is a flowchart of a method of predicting a future health state by the time-series medical data processing apparatus of FIG. 1 .
10 is a flowchart illustrating step S230 of FIG. 9 .

아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다. 아래에서는, 불규칙한 시간 간격을 갖는 시계열 데이터의 대표적인 예시로, 의료 데이터가 언급되고 있다. 다만, 이에 제한되지 않고, 본 발명의 기술적 사상이 불규칙한 시간 간격을 갖는 다양한 시계열 데이터를 처리하는 장치에 적용될 수 있음이 이해될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail to the extent that those skilled in the art can easily practice the present invention. Below, medical data is mentioned as a representative example of time series data having irregular time intervals. However, the present invention is not limited thereto, and it will be understood that the technical spirit of the present invention may be applied to an apparatus for processing various time series data having irregular time intervals.

도 1은 본 발명의 실시예에 따른 건강 상태 예측 시스템을 도시한 도면이다. 도 1을 참조하면, 건강 상태 예측 시스템(100)은 단말기(110), 의료 데이터베이스(120), 시계열 의료 데이터 처리 장치(130), 전처리 모델 데이터베이스(140), 예측 모델 데이터 베이스(150), 및 네트워크(160)를 포함한다. 1 is a diagram illustrating a health state prediction system according to an embodiment of the present invention. Referring to FIG. 1 , the health state prediction system 100 includes a terminal 110 , a medical database 120 , a time series medical data processing device 130 , a preprocessing model database 140 , a predictive model database 150 , and network 160 .

단말기(110)는 사용자로부터 시계열 데이터를 수집하여 시계열 의료 데이터 처리 장치(130)에 제공한다. 시계열 데이터는 전자 의무 기록(Electronic Medical Record, EMR)과 같이, 의료 기관에서 진단, 치료, 또는 투약 처방 등에 의하여 생성된 사용자의 건강 상태를 나타내는 시계열 의료 데이터를 포함할 수 있다. 시계열 데이터는 진단, 치료, 또는 투약 처방 등을 위하여 의료 기관에 방문할 때 생성될 수 있다. 시계열 데이터는 의료 기관의 방문에 따라, 시계열적으로 나열된 데이터일 수 있다. 시계열 데이터는 진단, 치료, 또는 투약 처방된 특징에 기초하여 생성된 복수의 특징들을 포함할 수 있다. 예를 들어, 특징은 혈압과 같은 검사로 측정된 데이터 또는 동맥 경화와 같은 질환의 정도를 나타내는 데이터를 포함할 수 있다.The terminal 110 collects time series data from the user and provides it to the time series medical data processing apparatus 130 . The time series data may include time series medical data representing a user's health status generated by diagnosis, treatment, or medication prescription at a medical institution, such as an Electronic Medical Record (EMR). The time series data may be generated when a medical institution is visited for diagnosis, treatment, or medication prescription. The time series data may be data listed in time series according to a visit of a medical institution. The time series data may include a plurality of features generated based on a diagnosed, treated, or prescribed feature. For example, the characteristic may include data measured by a test, such as blood pressure, or data indicating the degree of a disease, such as arteriosclerosis.

단말기(110)는 사용자로부터 예측 시간 데이터를 입력받아 시계열 의료 데이터 처리 장치(130)에 더 제공할 수 있다. 예측 시간 데이터는 사용자가 원하는 미래 건강 상태의 예측 시간에 대한 정보를 포함할 수 있다. 예측 시간 데이터를 통하여, 시계열 의료 데이터 처리 장치(130)는 사용자가 원하는 예측 시간에 대한 결과를 분석할 수 있고, 예측 시간 데이터를 시계열 데이터의 불규칙한 시간 간격을 보정하는데 사용할 수 있다.The terminal 110 may further provide the time-series medical data processing apparatus 130 by receiving the predicted time data from the user. The prediction time data may include information on the prediction time of the future health state desired by the user. Through the predicted time data, the time-series medical data processing apparatus 130 may analyze a result of the predicted time desired by the user, and use the predicted time data to correct irregular time intervals of the time-series data.

단말기(110)는 스마트폰, 데스크탑, 랩탑, 웨어러블 장치 등 사용자로부터 시계열 데이터를 입력 받을 수 있는 다양한 전자 장치 중 하나일 수 있다. 단말기(110)는 네트워크(160)를 통하여 시계열 데이터를 전송하도록 통신 모듈 또는 네트워크 인터페이스를 포함할 수 있다. 도 1은 하나의 단말기(110)를 도시하였으나, 이에 제한되지 않고, 복수의 단말기들로부터 시계열 데이터가 시계열 의료 데이터 처리 장치(130)에 제공될 수 있다.The terminal 110 may be one of various electronic devices capable of receiving time series data from a user, such as a smart phone, a desktop, a laptop, and a wearable device. The terminal 110 may include a communication module or a network interface to transmit time series data through the network 160 . Although FIG. 1 illustrates one terminal 110 , the present invention is not limited thereto, and time series data from a plurality of terminals may be provided to the time series medical data processing apparatus 130 .

의료 데이터베이스(120)는 다양한 사용자들에 대한 의료 데이터가 통합 관리되도록 구성된다. 예를 들어, 의료 데이터베이스(120)는 공공기관, 병원, 사용자 등으로부터 의료 데이터를 제공 받을 수 있다. 의료 데이터베이스(120)는 서버 또는 저장 매체에 구현될 수 있다. 의료 데이터는 의료 데이터베이스(120)에 시계열적으로 관리되고, 그룹핑되어 저장될 수 있다. 의료 데이터베이스(120)는 네트워크(160)를 통하여 시계열 의료 데이터 처리 장치(130)에 주기적으로 시계열 데이터를 제공할 수 있다.The medical database 120 is configured to integrate and manage medical data for various users. For example, the medical database 120 may receive medical data from public institutions, hospitals, users, and the like. The medical database 120 may be implemented in a server or a storage medium. Medical data may be time-series managed, grouped, and stored in the medical database 120 . The medical database 120 may periodically provide time series data to the time series medical data processing apparatus 130 through the network 160 .

시계열 의료 데이터 처리 장치(130)는 의료 데이터베이스(120) (또는 단말기(110))로부터 수신된 시계열 데이터를 통하여 학습 모델을 구축할 수 있다. 예를 들어, 학습 모델은 시계열 데이터를 바탕으로 미래 건강 상태를 예측하기 위한 예측 모델을 포함할 수 있다. 예를 들어, 학습 모델은 시계열 데이터를 전처리하기 위한 전처리 모델을 포함할 수 있다. 시계열 의료 데이터 처리 장치(130)는 의료 데이터베이스(120)로부터 수신된 시계열 데이터를 학습하여, 학습 모델을 생성할 수 있다.The time series medical data processing apparatus 130 may build a learning model through time series data received from the medical database 120 (or the terminal 110 ). For example, the learning model may include a predictive model for predicting a future health state based on time series data. For example, the learning model may include a preprocessing model for preprocessing time series data. The time series medical data processing apparatus 130 may learn the time series data received from the medical database 120 to generate a learning model.

시계열 의료 데이터 처리 장치(130)는 구축된 학습 모델에 기초하여 단말기(110) 또는 의료 데이터베이스(120)로부터 수신된 시계열 데이터를 처리할 수 있다. 시계열 의료 데이터 처리 장치(130)는 학습 결과 구축된 전처리 모델에 기초하여 시계열 의료 데이터를 전처리할 수 있다. 시계열 의료 데이터 처리 장치(130)는 학습 결과 구축된 예측 모델에 기초하여 전처리된 시계열 데이터를 분석할 수 있다. 분석 결과, 시계열 의료 데이터 처리 장치(130)는 예측 시간에 대응되는 결과 데이터(의료 데이터)를 계산할 수 있다.The time series medical data processing apparatus 130 may process time series data received from the terminal 110 or the medical database 120 based on the built learning model. The time-series medical data processing apparatus 130 may pre-process the time-series medical data based on the pre-processing model constructed as a result of the learning. The time series medical data processing apparatus 130 may analyze the preprocessed time series data based on the prediction model constructed as a result of the learning. As a result of the analysis, the time series medical data processing apparatus 130 may calculate result data (medical data) corresponding to the predicted time.

시계열 의료 데이터 처리 장치(130)는 단말기(110)로부터 수신된 예측 시간 데이터에 기초하여, 시계열 데이터의 불규칙한 시간 간격을 보정할 수 있다. 시계열 의료 데이터 처리 장치(130)는 예측 시간 데이터에 기초하여, 이상적인 시간 간격을 갖는 복수의 기준 시간들을 계산할 수 있다. 시계열 의료 데이터 처리 장치(130)는 복수의 기준 시간들과 시계열 데이터의 복수의 실제 시간들을 비교함으로써, 시차 데이터를 생성할 수 있다. 시차 데이터는 시계열 데이터와 함께 결과 데이터를 계산하는데 이용될 수 있다. 시차 데이터의 생성 및 활용의 구체적인 내용은 후술된다.The time series medical data processing apparatus 130 may correct an irregular time interval of the time series data based on the predicted time data received from the terminal 110 . The time series medical data processing apparatus 130 may calculate a plurality of reference times having an ideal time interval based on the predicted time data. The time series medical data processing apparatus 130 may generate disparity data by comparing a plurality of reference times and a plurality of real times of the time series data. The disparity data may be used together with the time series data to calculate result data. Specific details of generation and utilization of disparity data will be described later.

시계열 의료 데이터 처리 장치(130)는 계산된 결과 데이터에 기초하여, 예측 시간에 대응되는 사용자의 미래 건강 상태를 예측할 수 있다. 예측된 미래 건강 상태는 단말기(110)의 요청에 따라, 네트워크(160)를 통하여 단말기(110)에 제공될 수 있다. 다만, 이에 제한되지 않고, 시계열 의료 데이터 처리 장치(130)는 예측 모델에 기초하여 미래 방문 데이터를 예측하고, 별도의 전자 장치에서, 해당 사용자의 미래 건강 상태를 예측할 수 있다. The time series medical data processing apparatus 130 may predict the user's future health state corresponding to the predicted time based on the calculated result data. The predicted future health state may be provided to the terminal 110 through the network 160 at the request of the terminal 110 . However, the present invention is not limited thereto, and the time series medical data processing apparatus 130 may predict future visit data based on the prediction model and may predict the future health state of the corresponding user in a separate electronic device.

전처리 모델 데이터베이스(140)는 시계열 의료 데이터 처리 장치(130)에서 학습되어 생성된 전처리 모델이 통합 관리되도록 구성된다. 전처리 모델 데이터베이스(140)는 별도의 서버 또는 저장 매체에 구현될 수 있다. 다만, 이에 제한되지 않고, 전처리 모델은 시계열 의료 데이터 처리 장치(130) 내부의 프로세서에 의하여 관리되고, 시계열 의료 데이터 처리 장치(130) 내부의 스토리지 등에 의하여 저장될 수 있다. 예를 들어, 전처리 모델은 시계열 데이터에서 정상 시계열 데이터와 비정상 시계열 데이터를 판단하여, 정상 시계열 데이터를 추출하기 위한 모델을 포함할 수 있다. 예를 들어, 전처리 모델은 시계열 데이터에 포함된 특징들에 대한 결측 값(missing value)을 보간하기 위한 모델을 포함할 수 있다.The pre-processing model database 140 is configured to integrate and manage the pre-processing model that is learned and generated by the time-series medical data processing device 130 . The preprocessing model database 140 may be implemented in a separate server or storage medium. However, the present invention is not limited thereto, and the pre-processing model may be managed by a processor inside the time-series medical data processing device 130 , and may be stored by storage inside the time-series medical data processing device 130 . For example, the preprocessing model may include a model for extracting normal time series data by determining normal time series data and abnormal time series data from time series data. For example, the preprocessing model may include a model for interpolating missing values for features included in time series data.

예측 모델 데이터베이스(150)는 시계열 의료 데이터 처리 장치(130)에서 학습되어 생성된 예측 모델이 통합 관리되도록 구성된다. 예측 모델 데이터베이스(150)는 별도의 서버 또는 저장 매체에 구현될 수 있다. 다만, 이에 제한되지 않고, 예측 모델은 시계열 의료 데이터 처리 장치(130) 내부에서 통합 관리될 수 있다. 예측 모델은 전처리된 시계열 데이터를 분석하여 예측 시점에 대응되는 결과 데이터를 생성하기 위한 모델을 포함할 수 있다. 이러한 예측 모델의 구체적인 예시는 후술된다.The predictive model database 150 is configured to integrate and manage predictive models that are learned and generated by the time series medical data processing device 130 . The predictive model database 150 may be implemented in a separate server or storage medium. However, the present invention is not limited thereto, and the prediction model may be integrated and managed within the time-series medical data processing apparatus 130 . The prediction model may include a model for generating result data corresponding to the prediction time by analyzing the preprocessed time series data. A specific example of such a predictive model will be described later.

네트워크(160)는 단말기(110), 의료 데이터베이스(120), 및 시계열 의료 데이터 처리 장치(130) 사이의 데이터 통신이 수행되도록 구성될 수 있다. 단말기(110), 의료 데이터베이스(120), 및 시계열 의료 데이터 처리 장치(130)는 네트워크(160)를 통하여 유선 또는 무선으로 데이터를 주고 받을 수 있다.The network 160 may be configured to perform data communication between the terminal 110 , the medical database 120 , and the time-series medical data processing device 130 . The terminal 110 , the medical database 120 , and the time-series medical data processing apparatus 130 may transmit and receive data through the network 160 by wire or wirelessly.

도 2는 도 1의 시계열 의료 데이터 처리 장치의 예시적인 블록도이다. 도 2의 블록도는 시계열 데이터를 전처리하고, 분석하기 위한 예시적인 구성으로 이해될 것이고, 시계열 의료 데이터 처리 장치의 구조가 이에 제한되지 않을 것이다. 도 2를 참조하면, 시계열 의료 데이터 처리 장치(130)는 네트워크 인터페이스(131), 프로세서(132), 메모리(133), 스토리지(136), 및 버스(137)를 포함할 수 있다. 예시적으로, 시계열 의료 데이터 처리 장치(130)는 서버로 구현될 수 있으나, 이에 제한되지 않는다.FIG. 2 is an exemplary block diagram of the time-series medical data processing apparatus of FIG. 1 . The block diagram of FIG. 2 will be understood as an exemplary configuration for preprocessing and analyzing time series data, and the structure of the time series medical data processing apparatus will not be limited thereto. Referring to FIG. 2 , the time series medical data processing apparatus 130 may include a network interface 131 , a processor 132 , a memory 133 , a storage 136 , and a bus 137 . For example, the time-series medical data processing apparatus 130 may be implemented as a server, but is not limited thereto.

네트워크 인터페이스(131)는 도 1의 네트워크(160)를 통하여 단말기(110) 또는 의료 데이터베이스(120)로부터 제공되는 시계열 데이터를 입력 받도록 구성된다. 네트워크 인터페이스(131)는 도 1의 단말기(110)로부터 제공되는 예측 시간 (데이터)을 입력 받도록 구성된다. 네트워크 인터페이스(131)는 수신된 시계열 데이터 및 예측 시간을 버스(137)를 통하여 프로세서(132), 메모리(133) 또는 스토리지(136)에 제공할 수 있다. 또한, 네트워크 인터페이스(131)는 수신된 시계열 데이터 및 예측 시간에 응답하여 예측된 미래 건강 상태의 결과 데이터를 도 1의 네트워크(160)를 통하여 단말기(110) 등에 제공하도록 구성될 수 있다.The network interface 131 is configured to receive time series data provided from the terminal 110 or the medical database 120 through the network 160 of FIG. 1 . The network interface 131 is configured to receive the predicted time (data) provided from the terminal 110 of FIG. 1 . The network interface 131 may provide the received time series data and the predicted time to the processor 132 , the memory 133 , or the storage 136 through the bus 137 . In addition, the network interface 131 may be configured to provide the result data of the future health state predicted in response to the received time series data and the predicted time to the terminal 110 or the like through the network 160 of FIG. 1 .

프로세서(132)는 시계열 의료 데이터 처리 장치(130)의 중앙 처리 장치로의 기능을 수행할 수 있다. 프로세서(132)는 시계열 의료 데이터 처리 장치(130)의 전처리 및 데이터 분석 등을 구현하기 위하여 요구되는 제어 동작 및 연산 동작을 수행할 수 있다. 예를 들어, 프로세서(132)의 제어에 따라, 네트워크 인터페이스(131)는 시계열 데이터 및 예측 시간을 외부로부터 수신할 수 있다. 프로세서(132)의 제어에 따라, 예측 모델을 생성하기 위한 연산 동작이 수행될 수 있고, 예측 모델을 이용하여 결과 데이터가 계산될 수 있다. 프로세서(132)는 메모리(133)의 연산 공간을 활용하여 동작할 수 있고, 스토리지(136)로부터 운영체제를 구동하기 위한 파일들 및 어플리케이션의 실행 파일들을 읽을 수 있다. 프로세서(132)는 운영 체제 및 다양한 어플리케이션들을 실행할 수 있다.The processor 132 may function as a central processing unit of the time series medical data processing unit 130 . The processor 132 may perform control operations and calculation operations required to implement preprocessing and data analysis of the time series medical data processing apparatus 130 . For example, under the control of the processor 132 , the network interface 131 may receive the time series data and the predicted time from the outside. Under the control of the processor 132 , a calculation operation for generating a predictive model may be performed, and result data may be calculated using the predictive model. The processor 132 may operate by utilizing the operation space of the memory 133 , and may read files for driving an operating system and executable files of applications from the storage 136 . The processor 132 may execute an operating system and various applications.

메모리(133)는 프로세서(132)에 의하여 처리되거나 처리될 예정인 데이터 및 프로세스 코드들을 저장할 수 있다. 예를 들어, 메모리(133)는 네트워크 인터페이스(131)로부터 제공된 시계열 데이터, 예측 시간 데이터, 시계열 데이터의 전처리 동작을 수행하기 위한 정보들, 시계열 데이터의 불규칙한 시간 간격을 보정하기 위한 정보들, 결과 데이터의 연산을 위한 정보들, 및 예측 모델을 구축하기 위한 정보들을 저장할 수 있다. 메모리(133)는 시계열 의료 데이터 처리 장치(130)의 주기억 장치로 이용될 수 있다. 메모리(133)는 DRAM (Dynamic RAM), SRAM (Static RAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등을 포함할 수 있다.The memory 133 may store data and process codes to be processed or to be processed by the processor 132 . For example, the memory 133 may include time series data provided from the network interface 131 , predicted time data, information for performing a preprocessing operation of time series data, information for correcting irregular time intervals of time series data, and result data It is possible to store information for the operation of , and information for constructing a predictive model. The memory 133 may be used as a main memory device of the time-series medical data processing apparatus 130 . The memory 133 may include a dynamic RAM (DRAM), a static RAM (SRAM), a phase-change RAM (PRAM), a magnetic RAM (MRAM), a ferroelectric RAM (FeRAM), and a resistive RAM (RRAM).

메모리(133)는 전처리부(134) 및 데이터 분석부(135)를 포함할 수 있다. 전처리부(134) 및 데이터 분석부(135)는 메모리(133)의 연산 공간의 일부일 수 있다. 이 경우, 전처리부(134) 및 데이터 분석부(135)는 펌웨어 또는 소프트웨어로 구현될 수 있다. 예를 들어, 펌웨어는 스토리지(136)에 저장되고, 펌웨어를 실행 시에 메모리(133)에 로딩될 수 있다. 프로세서(132)는 메모리(133)에 로딩된 펌웨어를 실행할 수 있다. 전처리부(134)는 프로세서(132)의 제어 하에 시계열 데이터를 전처리하고, 예측 시간 데이터 및 시계열 데이터에서 나열된 실제 시간들에 기초하여 시차 데이터를 생성하도록 동작될 수 있다. 데이터 분석부(135)는 프로세서(132)의 제어 하에 전처리된 시계열 데이터를 분석하여 예측 모델을 구축하도록 동작될 수 있다. 데이터 분석부(135)는 프로세서(132)의 제어 하에 전처리된 시차 데이터를 반영하여 시계열 데이터를 분석하고, 결과 데이터를 생성하도록 동작될 수 있다.The memory 133 may include a preprocessor 134 and a data analyzer 135 . The preprocessor 134 and the data analyzer 135 may be a part of an operation space of the memory 133 . In this case, the preprocessor 134 and the data analyzer 135 may be implemented as firmware or software. For example, the firmware may be stored in the storage 136 and loaded into the memory 133 when the firmware is executed. The processor 132 may execute firmware loaded into the memory 133 . The preprocessor 134 may be operable to preprocess the time series data under the control of the processor 132 and generate disparity data based on the predicted time data and the actual times listed in the time series data. The data analysis unit 135 may be operated to analyze preprocessed time series data under the control of the processor 132 to construct a predictive model. The data analysis unit 135 may be operated to analyze the time series data by reflecting the disparity data preprocessed under the control of the processor 132 , and to generate result data.

도 2에 도시된 바와 달리, 전처리부(134) 및 데이터 분석부(135)는 시계열 데이터를 전처리하고, 시차 데이터를 생성하고, 시차 데이터를 반영하여 시계열 데이터를 분석하기 위한 별도의 하드웨어로 구현될 수 있다. 예를 들어, 전처리부(134) 및 데이터 분석부(135)는 인공 신경망을 통한 학습을 수행하여 학습 모델을 구축하기 위한 뉴로모픽 칩 등으로 구현되거나, FPGA(Field Programmable Gate Aray) 또는 ASIC(Application Specific Integrated Circuit)와 같은 전용 논리 회로 등으로 구현될 수 있다. 예를 들어, 전처리부(134)는 전용 논리 회로로 구현되고, 데이터 분석부(135)는 예측 모델을 구축하기 위한 별도의 서버로 구현될 수 있다.2, the preprocessor 134 and the data analysis unit 135 preprocess the time series data, generate disparity data, and reflect disparity data to analyze the time series data. can For example, the preprocessing unit 134 and the data analyzing unit 135 may be implemented as a neuromorphic chip or the like for building a learning model by performing learning through an artificial neural network, or may be implemented as a field programmable gate array (FPGA) or ASIC (Field Programmable Gate Array) (FPGA). It may be implemented as a dedicated logic circuit such as an Application Specific Integrated Circuit). For example, the preprocessor 134 may be implemented as a dedicated logic circuit, and the data analyzer 135 may be implemented as a separate server for building a predictive model.

전처리부(134)는 프로세서(132)의 제어에 따라, 시계열 데이터를 전처리할 수 있다. 예를 들어, 전처리부(134)는 시계열 데이터에서 오타와 같은 비정상 데이터를 제거하고, 정상 시계열 데이터를 추출할 수 있다. 전처리부(134)는 정상 시계열 데이터에 대응되는 복수의 시간들 및 예측 시간에 기초하여, 복수의 기준 시간들을 생성하고, 복수의 기준 시간들에 기초하여, 시차 데이터를 생성할 수 있다. 전처리부(134)는 정상 시계열 데이터에 포함된 특징들에 대한 결측 값을 보간할 수 있다. 전처리부(134)에 대한 구체적인 내용은 후술된다.The preprocessor 134 may preprocess the time series data under the control of the processor 132 . For example, the preprocessor 134 may remove abnormal data such as typos from time series data and extract normal time series data. The preprocessor 134 may generate a plurality of reference times based on a plurality of times and predicted times corresponding to the normal time series data, and may generate disparity data based on the plurality of reference times. The preprocessor 134 may interpolate missing values for features included in the normal time series data. Details of the preprocessor 134 will be described later.

데이터 분석부(135)는 프로세서(132)의 제어에 따라, 예측 모델을 이용하여 전처리된 시계열 데이터를 분석할 수 있다. 예를 들어, 데이터 분석부(135)는 시차 데이터를 반영하여 전처리된 시계열 데이터를 분석할 수 있다. 시차 데이터는 시계열 데이터의 불규칙한 시간 간격을 보정하는데 이용된다. 데이터 분석부(135)는 전처리된 시계열 데이터의 분석에 기초하여, 예측 시간에 대응되는 결과 데이터를 예측할 수 있다. 결과 데이터는 예측 시간에 대응되는 전자 의무 기록의 예측 값일 수 있다. 또한, 결과 데이터를 생성하기 위하여, 예측 모델은 학습될 수 있다. 데이터 분석부(135)에 대한 구체적인 내용은 후술된다.The data analysis unit 135 may analyze the preprocessed time series data using the prediction model under the control of the processor 132 . For example, the data analysis unit 135 may analyze the preprocessed time series data by reflecting the disparity data. The disparity data is used to correct irregular time intervals of the time series data. The data analysis unit 135 may predict the result data corresponding to the predicted time based on the analysis of the preprocessed time series data. The result data may be a predicted value of the electronic medical record corresponding to the predicted time. Also, a predictive model may be trained to generate the resulting data. Details of the data analysis unit 135 will be described later.

스토리지(136)는 운영 체제 또는 어플리케이션들에 의해 장기적인 저장을 목적으로 생성되는 데이터, 운영 체제를 구동하기 위한 파일, 또는 어플리케이션들의 실행 파일 등을 저장할 수 있다. 예를 들어, 스토리지(136)는 전처리부(134) 및 데이터 분석부(135)의 실행을 위한 파일들을 저장할 수 있다. 스토리지(136)는 시계열 의료 데이터 처리 장치(130)의 보조 기억 장치로 이용될 수 있다. 스토리지(136)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등을 포함할 수 있다.The storage 136 may store data generated for long-term storage by the operating system or applications, a file for driving the operating system, or executable files of applications. For example, the storage 136 may store files for execution of the preprocessor 134 and the data analyzer 135 . The storage 136 may be used as an auxiliary storage device of the time-series medical data processing device 130 . The storage 136 may include a flash memory, a phase-change RAM (PRAM), a magnetic RAM (MRAM), a ferroelectric RAM (FeRAM), a resistive RAM (RRAM), or the like.

버스(137)는 시계열 의료 데이터 처리 장치(130)의 구성 요소들 사이에서 통신 경로를 제공할 수 있다. 네트워크 인터페이스(131), 프로세서(132), 메모리(133), 및 스토리지(136) 는 버스(137)를 통해 서로 데이터를 교환할 수 있다. 버스(137)는 시계열 의료 데이터 처리 장치(130)에서 이용되는 다양한 유형의 통신 포맷을 지원하도록 구성될 수 있다.The bus 137 may provide a communication path between components of the time-series medical data processing device 130 . The network interface 131 , the processor 132 , the memory 133 , and the storage 136 may exchange data with each other through the bus 137 . The bus 137 may be configured to support various types of communication formats used in the time-series medical data processing device 130 .

도 3은 도 2의 전처리부의 예시적인 블록도이다. 도 3의 블록도는 시계열 데이터(TSD)를 전처리하고, 시차 데이터(DD)를 생성하기 위한 예시적인 구성으로 이해될 것이고, 전처리부(134)의 구조가 이에 제한되지 않을 것이다. 도 3을 참조하면, 전처리부(134)는 데이터 추출기(134_1), 시간 간격 계산기(134_2), 및 데이터 보간기(134_3)를 포함할 수 있다. 도 2에서 설명된 바와 같이, 데이터 추출기(134_1), 시간 간격 계산기(134_2), 및 데이터 보간기(134_3)는 도 2의 메모리(133)의 연산 공간의 일부일 수 있고, 펌웨어 또는 소프트웨어로 구현될 수 있다. 또는, 데이터 추출기(134_1), 시간 간격 계산기(134_2), 및 데이터 보간기(134_3)는 FPGA 또는 ASIC와 같은 전용 논리 회로 또는 뉴로모픽 칩 등으로 구현될 수 있다3 is an exemplary block diagram of the preprocessor of FIG. 2 . The block diagram of FIG. 3 will be understood as an exemplary configuration for preprocessing the time series data TSD and generating the disparity data DD, and the structure of the preprocessor 134 is not limited thereto. Referring to FIG. 3 , the preprocessor 134 may include a data extractor 134_1 , a time interval calculator 134_2 , and a data interpolator 134_3 . As described in FIG. 2 , the data extractor 134_1 , the time interval calculator 134_2 , and the data interpolator 134_3 may be part of the computational space of the memory 133 of FIG. 2 , and may be implemented in firmware or software. can Alternatively, the data extractor 134_1 , the time interval calculator 134_2 , and the data interpolator 134_3 may be implemented with a dedicated logic circuit such as FPGA or ASIC or a neuromorphic chip.

데이터 추출기(134_1)는 시계열 데이터(TSD)에서 정상 시계열 데이터를 추출할 수 있다. 데이터 추출기(134_1)는 도 2의 네트워크 인터페이스(131)를 통하여 수신된 시계열 데이터(TSD)에서 비정상 데이터를 검출할 수 있다. 비정상 데이터는 시계열 데이터(TSD)에 포함된 특징들에서 나타날 수 없는 값을 가질 수 있다. 예를 들어, 데이터 값이 특정된 특징에 대응되는 타입(예를 들어, 범주 형식(Categorical type)의 정보(-, +, ++ 등) 또는 수치 형식의 정보)이 아니거나, 데이터 값이 특정된 특징에 존재할 수 없는 범주, 수치, 또는 차원인 경우, 데이터 추출기(134_1)는 해당 특징을 비정상 데이터로 판단할 수 있다. The data extractor 134_1 may extract normal time series data from the time series data TSD. The data extractor 134_1 may detect abnormal data from the time series data TSD received through the network interface 131 of FIG. 2 . Abnormal data may have values that cannot appear in features included in the time series data TSD. For example, if the data value is not of a type corresponding to the specified characteristic (eg, categorical type information (-, +, ++, etc.) or numeric type information), or the data value is specific In the case of a category, numerical value, or dimension that cannot exist in the specified feature, the data extractor 134_1 may determine the corresponding feature as abnormal data.

데이터 추출기(134_1)는 검출된 비정상 데이터를 제거함으로써, 정상 시계열 데이터를 추출할 수 있다. 다만, 이에 제한되지 않고, 데이터 추출기(134_1)는 검출된 비정상 데이터의 에러를 정정함으로써, 비정상 데이터를 정상 데이터로 변환할 수 있다. 데이터 추출기(134_1)는 뉴럴 네트워크 모델과 같이, 기계 학습이 가능한 전처리 모델을 통하여 정상 시계열 데이터를 추출할 수 있다. 또는, 데이터 추출기(134_1)는 비정상 데이터를 검출하기 위한 기준 데이터와의 비교를 통하여 정상 시계열 데이터를 추출할 수 있다.The data extractor 134_1 may extract the normal time series data by removing the detected abnormal data. However, the present invention is not limited thereto, and the data extractor 134_1 may convert the abnormal data into normal data by correcting an error of the detected abnormal data. The data extractor 134_1 may extract normal time series data through a preprocessing model capable of machine learning, such as a neural network model. Alternatively, the data extractor 134_1 may extract normal time series data through comparison with reference data for detecting abnormal data.

시간 간격 계산기(134_2)는 예측 시간 데이터(PTD)에 기초하여, 정상 시계열 데이터의 복수의 시간들 각각에 대응되는 시차 데이터(DD)를 생성할 수 있다. 도 3에서, 시간 간격 계산기(134_2)는 데이터 추출기(134_1)를 통하여 예측 시간 데이터(PTD)를 수신하는 것으로 도시되나, 시간 간격 계산기(134_2)는 네트워크 인터페이스(131)를 통하여 직접 예측 시간 데이터(PTD)를 수신할 수 있다. 시간 간격 계산기(134_2)는 복수의 시간들 중 최초 시간과 예측 시간 사이의 차이에 기초하여, 복수의 기준 시간들을 계산할 수 있다. 시간 간격 계산기(134_2)는 복수의 기준 시간들과 이에 대응되는 정상 시계열 데이터의 복수의 시간들 사이의 차이에 기초하여, 시차 데이터(DD)를 생성할 수 있다. 복수의 기준 시간들 및 시차 데이터(DD)에 대한 구체적인 내용은 도 4에서 후술된다.The time interval calculator 134_2 may generate disparity data DD corresponding to each of a plurality of times of the normal time series data based on the predicted time data PTD. In FIG. 3 , the time interval calculator 134_2 is shown to receive the predicted time data PTD through the data extractor 134_1 , but the time interval calculator 134_2 directly receives the predicted time data (PTD) through the network interface 131 . PTD) can be received. The time interval calculator 134_2 may calculate a plurality of reference times based on a difference between an initial time and a predicted time among the plurality of times. The time interval calculator 134_2 may generate disparity data DD based on a difference between a plurality of reference times and a plurality of times of normal time series data corresponding thereto. Details of the plurality of reference times and disparity data DD will be described later with reference to FIG. 4 .

시간 간격 계산기(134_2)는 예측 모델을 학습할 때, 예측 시간 데이터(PTD)를 수신하지 않을 수 있다. 이 경우, 시간 간격 계산기(134_2)는 기설정된 예측 시간에 기초하여, 시차 데이터(DD)를 생성할 수 있다. 기설정된 예측 시간은 정상 시계열 데이터의 복수의 시간들 중 최종 시간일 수 있다. 즉, 시간 간격 계산기(134_2)는 복수의 시간들 중 최초 시간과 최종 시간 사이의 차이에 기초하여, 복수의 기준 시간들을 계산할 수 있다. 다만, 이에 제한되지 않고, 기설정된 예측 시간은 예측 모델의 학습의 효율성 향상을 위하여, 특정된 시간 또는 가변적인 시간일 수 있다.The time interval calculator 134_2 may not receive the prediction time data PTD when learning the prediction model. In this case, the time interval calculator 134_2 may generate disparity data DD based on a preset prediction time. The preset prediction time may be a final time among a plurality of times of normal time series data. That is, the time interval calculator 134_2 may calculate a plurality of reference times based on a difference between the first time and the last time among the plurality of times. However, the present invention is not limited thereto, and the preset prediction time may be a specific time or a variable time in order to improve the learning efficiency of the prediction model.

데이터 보간기(134_3)는 정상 시계열 데이터에 포함된 특징들에 대한 결측 값을 보간할 수 있다. 시계열 데이터에 포함된 복수의 특징들 중 특정 시간에 대응되는 특징 값은 존재하지 않을 수 있다. 예를 들어, 전자 의무 기록과 같은 시계열 의료 데이터에 대하여, 사용자는 의료 기관에 방문시에 동일한 진단, 처방, 또는 검사를 받지 않을 수 있다. 사용자의 회복 경과 등에 따라, 특정 진단, 처방, 또는 검사가 생략되거나 추가될 수 있다. 또는, 사용자가 특정 진단, 처방, 또는 검사가 수행되었으나, 전자 의무 기록에 실수로 특징 값이 누락될 수 있다. 데이터 보간기(134_3)는 이러한 결측 값을 생성할 수 있다.The data interpolator 134_3 may interpolate missing values for features included in the normal time series data. Among the plurality of features included in the time series data, a feature value corresponding to a specific time may not exist. For example, for time series medical data such as an electronic medical record, a user may not receive the same diagnosis, prescription, or examination when visiting a medical institution. Depending on the user's recovery progress, etc., a specific diagnosis, prescription, or test may be omitted or added. Alternatively, the user may have performed a specific diagnosis, prescription, or examination, but a feature value may be mistakenly omitted from the electronic medical record. The data interpolator 134_3 may generate such a missing value.

데이터 보간기(134_3)는 통계적인 방식으로 결측 값을 보간할 수 있다. 예를 들어, 데이터 보간기(134_3)는 결측 값과 인접한 시간의 특징 값을 결측 값으로 결정하거나, 결측된 특징에 대응되는 다른 값들의 평균 값을 결측 값으로 결정할 수 있다. 또는, 데이터 보간기(134_3)는 뉴럴 네트워크 모델과 같이, 기계 학습이 가능한 전처리 모델을 통하여 결측 값을 보간할 수 있다. 다만, 이에 제한되지 않고, 결측 값이 존재하는 경우, 기설정된 값으로 결측 값을 결정할 수 있다. 결측 값의 보간 결과, 최종적으로 전처리된 시계열 데이터(TMD)가 생성되며, 전처리된 시계열 데이터(TMD)는 데이터 분석부(135)의 예측 모델에 입력될 수 있다. 경우에 따라, 데이터 보간기(134_3)는 시차 데이터(DD)를 보간하여 출력할 수 있으나, 도 3과 달리, 시차 데이터(DD)는 데이터 보간기(134_3)를 경유하지 않고 출력될 수 있다.The data interpolator 134_3 may interpolate missing values in a statistical manner. For example, the data interpolator 134_3 may determine a feature value at a time adjacent to the missing value as the missing value, or determine an average value of other values corresponding to the missing feature as the missing value. Alternatively, the data interpolator 134_3 may interpolate missing values through a preprocessing model capable of machine learning, such as a neural network model. However, the present invention is not limited thereto, and when a missing value exists, the missing value may be determined as a preset value. As a result of interpolation of the missing values, finally preprocessed time series data TMD is generated, and the preprocessed time series data TMD may be input to a predictive model of the data analysis unit 135 . In some cases, the data interpolator 134_3 may interpolate and output the disparity data DD, but unlike FIG. 3 , the disparity data DD may be output without passing through the data interpolator 134_3 .

도 3에 설명되지 않은 다양한 전처리 동작이 전처리부(134)에서 수행될 수 있다. 예를 들어, 전처리부(134)는 시계열 데이터(TSD)에 포함된 특징들을 동일한 타입을 갖도록 변환할 수 있다. 전처리부(134)는 시계열 데이터(TSD) 또는 예측 시간 데이터(PTD)의 차원을 변환하거나, 정규화할 수 있다. 전처리부(134)에서 출력되는 전처리된 시계열 데이터(TMD) 및 시차 데이터(DD)는 다양한 전처리 동작이 모두 수행되어, 데이터 분석부(135)에 입력되는 데이터로 이해될 것이다. Various pre-processing operations not described in FIG. 3 may be performed by the pre-processing unit 134 . For example, the preprocessor 134 may convert features included in the time series data TSD to have the same type. The preprocessor 134 may transform or normalize the dimension of the time series data TSD or the predicted time data PTD. The preprocessed time series data TMD and disparity data DD output from the preprocessor 134 may be understood as data input to the data analyzer 135 after various preprocessing operations are performed.

도 3에서, 전처리된 시계열 데이터(TMD)와 시차 데이터(DD)는 분리되어 출력되는 것으로 도시되나, 전처리된 시계열 데이터(TMD)에 시차 데이터(DD)가 포함되어 출력될 수 있다. 예를 들어, 전처리된 시계열 데이터(TMD)의 제1 시간에 대응되는 제1 데이터는 제1 시차 데이터를 포함하고, 제2 시간에 대응되는 제2 데이터는 제2 시차 데이터를 포함할 수 있다. In FIG. 3 , the preprocessed time series data TMD and the disparity data DD are shown to be output separately, but the disparity data DD may be included in the preprocessed time series data TMD and may be output. For example, first data corresponding to the first time of the preprocessed time series data TMD may include first disparity data, and second data corresponding to the second time may include second disparity data.

도 4는 도 3의 시간 간격 계산기에서 시차 데이터를 생성하는 과정을 설명하기 위한 도면이다. 도 4의 가로축은 시간으로 정의된다. 도 4를 참조하면, 시계열 데이터는 제1 내지 제n 시간들(V1~Vn)에 대응되는 데이터가 그룹화된 것일 수 있다. 설명의 편의상, 시계열 데이터는 제1 내지 제n 시간들(V1~Vn)에 대응되는 제1 내지 제n 데이터를 포함하는 것으로 가정한다. 제n+1 시간(Vn+1)은 제n 시간(Vn) 이후의 시간을 나타내며, 상술된 예측 시간에 대응된다.FIG. 4 is a diagram for explaining a process of generating disparity data in the time interval calculator of FIG. 3 . The horizontal axis of FIG. 4 is defined as time. Referring to FIG. 4 , time series data may be grouped data corresponding to first to nth times V1 to Vn. For convenience of description, it is assumed that the time series data includes first to nth data corresponding to the first to nth times V1 to Vn. The n+1th time (Vn+1) indicates a time after the nth time (Vn) and corresponds to the above-described predicted time.

제1 내지 제n 시간들(V1~Vn)은 진단, 치료, 또는 투약 처방 등을 위하여 의료 기관에 실제 방문한 시간에 대응될 수 있다. 예를 들어, 제1 내지 제n 시간들(V1~Vn)은 사용자가 병원에 방문하여, 혈액 등을 채취한 시간, 또는 의사에 의하여 진단, 치료, 또는 투약 처방을 받은 시간일 수 있다. 상술한 바와 같이, 제1 내지 제n 시간들(V1~Vn) 사이의 시간 간격은 불규칙할 수 있다. 또한, 제n 시간(Vn)과 제n+1 시간(Vn+1) 사이의 시간 간격은 제1 내지 제n 시간들(V1~Vn) 사이의 시간 간격과 연관성을 갖지 않는다. 제1 내지 제n 시간 간격들(r1~rn)은 제1 내지 제n+1 시간들(V1~Vn+1) 중 서로 인접한 시간들 사이의 간격으로 정의된다. 예를 들어, 제1 시간(V1)과 제2 시간(V2) 사이의 간격은 제1 시간 간격(r1)으로 정의된다.The first to nth times V1 to Vn may correspond to times of actual visits to a medical institution for diagnosis, treatment, or medication prescription. For example, the first to nth times V1 to Vn may be a time when a user visits a hospital and collects blood, or a time when a diagnosis, treatment, or medication prescription is received by a doctor. As described above, a time interval between the first to nth times V1 to Vn may be irregular. Also, the time interval between the nth time Vn and the n+1th time Vn+1 has no correlation with the time interval between the first to nth times V1 to Vn. The first to n-th time intervals r1 to rn are defined as intervals between adjacent times among the first to n+1 times V1 to Vn+1. For example, the interval between the first time V1 and the second time V2 is defined as the first time interval r1.

제1 내지 제n+1 기준 시간들(t1~tn+1)은 시차 데이터(DD)를 생성하기 위하여, 도 3의 시간 간격 계산기(134_2)에서 계산된 시간들일 수 있다. 시간 간격 계산기(134_2)는 시계열 데이터의 최초 시간인 제1 시간(V1)과 예측 시간인 제n+1 시간(Vn+1)의 차이에 기초하여 제1 내지 제n+1 기준 시간들(t1~tn+1)을 설정할 수 있다. 제1 기준 시간(t1)은 제1 시간(V1)과 동일할 수 있고, 제n+1 기준 시간(tn+1)은 제n+1 시간(Vn+1)과 동일할 수 있다. 제1 내지 제n 기준 시간 간격들(i1~in)은 제1 내지 제n+1 기준 시간들(t1~tn+1) 중 서로 인접한 시간들 사이의 간격으로 정의된다. 예를 들어, 제1 기준 시간(t1)과 제2 기준 시간(t2) 사이의 간격은 제1 기준 시간 간격(i1)으로 정의된다. 제1 내지 제n 기준 시간 간격들(i1~in)은 서로 동일할 수 있다.The first to n+1th reference times t1 to tn+1 may be times calculated by the time interval calculator 134_2 of FIG. 3 to generate the disparity data DD. The time interval calculator 134_2 calculates the first to n+1th reference times t1 based on the difference between the first time V1 which is the initial time of the time series data and the n+1th time Vn+1 which is the predicted time. ~tn+1) can be set. The first reference time t1 may be the same as the first time V1, and the n+1th reference time tn+1 may be the same as the n+1th time Vn+1. The first to nth reference time intervals i1 to in are defined as intervals between adjacent times among the first to n+1th reference times t1 to tn+1. For example, the interval between the first reference time t1 and the second reference time t2 is defined as the first reference time interval i1. The first to nth reference time intervals i1 to in may be identical to each other.

제1 내지 제n 차이 값들(d1~dn)은 시차 데이터(DD)에 포함된 데이터 값일 수 있다. 제1 내지 제n 차이 값들(d1~dn)은 제1 내지 제n 시간들(V1~Vn)과 이에 대응되는 제1 내지 제n 기준 시간들(t1~tn) 사이의 차이일 수 있다. 예를 들어, 제2 차이 값(d2)은 제2 시간(V2)과 제2 기준 시간(t2)의 차이일 수 있다. 제1 내지 제n 차이 값들(d1~dn) 각각은 수학식 1과 같이 계산될 수 있다.The first to nth difference values d1 to dn may be data values included in the disparity data DD. The first to nth difference values d1 to dn may be differences between the first to nth times V1 to Vn and the corresponding first to nth reference times t1 to tn. For example, the second difference value d2 may be a difference between the second time V2 and the second reference time t2. Each of the first to nth difference values d1 to dn may be calculated as in Equation 1.

Figure 112018117958105-pat00001
Figure 112018117958105-pat00001

수학식 1을 참조하면, k는 인덱스, N은 총 방문 회수와 같은 시계열 데이터에 대응되는 시간들의 개수, rn은 n번째 시간 간격, dk는 k번째 차이 값으로 정의된다. 제1 내지 제n 차이 값들(d1~dn)은 이상적인 시간 간격의 추이(우변의 좌항)와 실제의 시간 간격의 추이(우변의 우항)의 차이를 나타내는 값일 수 있다. 수학식 1의 시그마를 통하여, 제1 내지 제n 차이 값들(d1~dn) 각각은 이전의 방문에 따른 시간들의 추이를 모두 반영한 결과 값임을 나타낸다. 제1 내지 제n 차이 값들(d1~dn)은 시계열 데이터의 불규칙한 시간 간격을 보정하고, 시간적인 추이에 따른 시계열 데이터의 가중치를 결정하기 위하여 생성될 수 있다.Referring to Equation 1, k is an index, N is the number of times corresponding to time series data such as the total number of visits, rn is an n-th time interval, and dk is a k-th difference value. The first to nth difference values d1 to dn may be values representing the difference between the transition of an ideal time interval (left term of the right side) and the transition of the actual time interval (the right term of the right side). Through the sigma of Equation 1, each of the first to n-th difference values d1 to dn represents a result value reflecting all changes in times according to previous visits. The first to nth difference values d1 to dn may be generated to correct an irregular time interval of the time series data and to determine a weight of the time series data according to a time transition.

도 5는 도 2의 데이터 분석부의 예시적인 블록도이다. 도 5의 블록도는 전처리된 시계열 데이터(TMD) 및 시차 데이터(DD)를 이용하여, 예측 시간에 대응되는 결과 데이터(RD)를 생성하기 위한 예시적인 구성으로 이해될 것이고, 데이터 분석부(135)의 구조가 이에 제한되지 않을 것이다. 도 5를 참조하면, 데이터 분석부(135)는 예측 모델 관리기(135_1) 및 건강 예측기(135_2)를 포함할 수 있다. 도 2에서 설명된 바와 같이, 예측 모델 관리기(135_1) 및 건강 예측기(135_2)는 도 2의 메모리(133)의 연산 공간의 일부일 수 있고, 펌웨어 또는 소프트웨어로 구현될 수 있다. 또는, 예측 모델 관리기(135_1) 및 건강 예측기(135_2)는 FPGA 또는 ASIC와 같은 전용 논리 회로 또는 뉴로모픽 칩 등으로 구현될 수 있다.FIG. 5 is an exemplary block diagram of the data analysis unit of FIG. 2 . The block diagram of FIG. 5 will be understood as an exemplary configuration for generating the result data RD corresponding to the predicted time using the preprocessed time series data TMD and the disparity data DD, and the data analysis unit 135 ) will not be limited thereto. Referring to FIG. 5 , the data analysis unit 135 may include a predictive model manager 135_1 and a health predictor 135_2 . As described in FIG. 2 , the predictive model manager 135_1 and the health predictor 135_2 may be a part of the computation space of the memory 133 of FIG. 2 , and may be implemented in firmware or software. Alternatively, the predictive model manager 135_1 and the health predictor 135_2 may be implemented with a dedicated logic circuit such as FPGA or ASIC or a neuromorphic chip.

예측 모델 관리기(135_1)는 프로세서(132)의 제어에 따라, 예측 시간에 대응되는 결과 데이터를 생성하기 위한 예측 모델을 관리할 수 있다. 예측 모델 관리기(135_1)는 예측 모델을 학습시키고, 학습된 예측 모델을 스토리지(136) 또는 도 1의 예측 모델 데이터베이스(150)와 같은 별도의 서버나 저장 매체에 전달할 수 있다. 예측 모델을 학습하거나 예측 모델을 통하여 미래의 건강 상태를 예측할 때, 예측 모델 관리기(135_1)는 스토리지(136) 또는 예측 모델 데이터베이스(150)에 저장된 예측 모델이 예측 모델 관리기(135_1)에 로딩될 수 있다.The prediction model manager 135_1 may manage a prediction model for generating result data corresponding to a prediction time under the control of the processor 132 . The predictive model manager 135_1 may train the predictive model, and transfer the learned predictive model to a separate server or storage medium such as the storage 136 or the predictive model database 150 of FIG. 1 . When learning a predictive model or predicting a future health state through a predictive model, the predictive model manager 135_1 may load the predictive model stored in the storage 136 or the predictive model database 150 into the predictive model manager 135_1. have.

예측 모델을 학습하기 위하여, 예측 모델 관리기(135_1)는 전처리된 시계열 데이터(TMD) 및 시차 데이터(DD)를 입력 받을 수 있다. 여기에서, 전처리된 시계열 데이터(TMD)는 도 1의 의료 데이터베이스(120)에 저장된 다양한 환자들에 대한 시계열 의료 데이터를 포함할 수 있다. 여기에서, 시차 데이터(DD)는 시계열 데이터의 최초 시간 및 최종 시간 사이의 차이에 기초하여 생성될 수 있다. 예측 모델 관리기(135_1)는 전처리된 시계열 데이터(TMD)의 불규칙한 시간 간격을 시차 데이터(DD)로 보정하여 학습 결과 데이터를 생성할 수 있다. 학습 결과 데이터는 예상되는 결과 데이터, 예를 들어 최종 시간에 대응되는 시계열 데이터와 비교될 수 있고, 비교 결과에 기초하여 예측 모델에 설정된 가중치가 조절될 수 있다. 여기에서, 가중치는 전처리된 시계열 데이터(TMD)에 부여되는 가중치 및 시차 데이터(DD)에 부여되는 가중치를 포함할 수 있다.In order to learn the predictive model, the predictive model manager 135_1 may receive preprocessed time series data TMD and disparity data DD. Here, the preprocessed time series data TMD may include time series medical data for various patients stored in the medical database 120 of FIG. 1 . Here, the disparity data DD may be generated based on a difference between the first time and the last time of the time series data. The predictive model manager 135_1 may generate learning result data by correcting an irregular time interval of the preprocessed time series data TMD with the disparity data DD. The learning result data may be compared with expected result data, for example, time series data corresponding to the final time, and a weight set in the prediction model may be adjusted based on the comparison result. Here, the weight may include a weight applied to the preprocessed time series data TMD and a weight applied to the disparity data DD.

건강 예측기(135_2)는 프로세서(132)의 제어에 따라, 예측 모델 관리기(135_1)에서 학습된 예측 모델을 이용하여, 예측 시간에 대응되는 미래 건강 상태를 예측할 수 있다. 미래 건강 상태를 예측하기 위하여, 건강 예측기(135_2)는 예측 모델 관리기(135_1)로부터 예측 모델이 저장된 경로를 전달 받을 수 있다. 예측 모델은 전처리된 시계열 데이터(TMD) 및 시차 데이터(DD)를 입력 받을 수 있다. 여기에서, 전처리된 시계열 데이터(TMD)는 사용자(환자)에 대한 시계열 의료 데이터를 포함할 수 있다. 여기에서, 시차 데이터(DD)는 시계열 데이터의 최초 시간 및 수신된 예측 시간 사이의 차이에 기초하여 생성될 수 있다. 건강 예측기(135_2)는 예측 모델을 통하여, 전처리된 시계열 데이터(TMD)의 불규칙한 시간 간격을 보정하여 예측 시간에 대응되는 결과 데이터(RD)를 생성할 수 있다.The health predictor 135_2 may predict a future health state corresponding to a predicted time by using the predictive model learned by the predictive model manager 135_1 under the control of the processor 132 . In order to predict a future health state, the health predictor 135_2 may receive a path in which the predictive model is stored from the predictive model manager 135_1 . The predictive model may receive preprocessed time series data (TMD) and disparity data (DD). Here, the preprocessed time series data TMD may include time series medical data for a user (patient). Here, the disparity data DD may be generated based on a difference between an initial time of the time series data and a received predicted time. The health predictor 135_2 may generate the result data RD corresponding to the predicted time by correcting the irregular time interval of the preprocessed time series data TMD through the prediction model.

도 6은 도 5에서 학습된 예측 모델의 예시적인 도면이다. 도 6은 예측 모델(PM1)의 예시적인 구성으로 이해될 것이고, 본 발명의 실시예는 도 6에 제한되지 않는다. 도 6을 참조하면, 예측 모델(PM1)은 제1 내지 제4 레이어들(L1~L4)을 포함할 수 있다. 예측 모델(PM1)은 도 5의 데이터 분석부(135)에서 생성 및 학습될 수 있다. 예측 모델(PM1)은 전처리된 시계열 데이터(TMD)를 수신할 것이나, 아래에서 설명의 편의상 시계열 데이터로 지칭될 것이다.6 is an exemplary diagram of a predictive model trained in FIG. 5 . 6 will be understood as an exemplary configuration of the predictive model PM1, and the embodiment of the present invention is not limited to FIG. Referring to FIG. 6 , the prediction model PM1 may include first to fourth layers L1 to L4 . The predictive model PM1 may be generated and learned by the data analyzer 135 of FIG. 5 . The predictive model PM1 will receive the preprocessed time series data TMD, but will be referred to as time series data for convenience of description below.

제1 레이어(L1)는 시간의 순서에 따라 시계열 데이터를 수신하여 벡터화할 수 있다. 시계열 데이터는 제1 내지 제n 시간들에 대응되는 제1 내지 제n 데이터(TMD1~TMDn)를 포함할 수 있다. 제1 내지 제n 데이터(TMD1~TMDn)는 순차적으로 입력될 수 있다. 예를 들어, 제1 데이터(TMD1)가 제1 레이어(L1)에 의하여 벡터화된 후, 제2 데이터(TMD2)가 제1 레이어(L1)에 의하여 벡터화될 수 있다. 제1 레이어(L1)는 제1 내지 제n 데이터(TMD1~TMDn)을 제1 내지 제n 벡터 값들(h1~hn)로 변환할 수 있다.The first layer L1 may receive and vectorize time series data according to the order of time. The time series data may include first to n-th data TMD1 to TMDn corresponding to the first to n-th times. The first to nth data TMD1 to TMDn may be sequentially input. For example, after the first data TMD1 is vectorized by the first layer L1 , the second data TMD2 may be vectorized by the first layer L1 . The first layer L1 may convert the first to n-th data TMD1 to TMDn into first to n-th vector values h1 to hn.

제1 레이어(L1)는 이전에 생성된 벡터 값에 기초하여, 다음의 벡터 값을 생성하는 순환 신경망으로 구현될 수 있다. 예를 들어, 제1 레이어(L1)는 제1 벡터 값(h1)을 반영하여 제2 데이터(TMD2)를 제2 벡터 값(h2)으로 변환할 수 있다. 예시적으로, 제1 레이어(L1)는 LSTM(Long-Short Term Memory), GRU(Gated Recurrent Unit), ARIMA(Auto-regressive Integrated Moving Average), 또는 선형 회귀(Linear Regression) 모델로 구현될 수 있다.The first layer L1 may be implemented as a recurrent neural network that generates a next vector value based on a previously generated vector value. For example, the first layer L1 may convert the second data TMD2 into the second vector value h2 by reflecting the first vector value h1 . For example, the first layer L1 may be implemented as a Long-Short Term Memory (LSTM), a Gated Recurrent Unit (GRU), an Auto-regressive Integrated Moving Average (ARIMA), or a Linear Regression model. .

제2 레이어(L2)는 시간의 순서에 따라 시차 데이터를 수신하여 모델링할 수 있다. 시차 데이터는 제1 내지 제n 시간들에 대응되는 제1 내지 제n 시차 데이터(DD1~DDn)를 포함할 수 있다. 제1 내지 제n 데이터(TMD1~TMDn)와 마찬가지로, 제1 내지 제n 시차 데이터(DD1~DDn)는 순차적으로 입력될 수 있다. 제1 내지 제n 시차 데이터(DD1~DDn)는 제1 내지 제n 시간 보정 값들(T1~Tn)로 모델링될 수 있다. 제1 내지 제n 시차 데이터(DD1~DDn)는 예시적으로 수학식 2와 같이 모델링될 수 있다.The second layer L2 may receive and model the disparity data according to the order of time. The disparity data may include first to n-th disparity data DD1 to DDn corresponding to the first to n-th times. Like the first to n-th data TMD1 to TMDn, the first to n-th disparity data DD1 to DDn may be sequentially input. The first to n-th disparity data DD1 to DDn may be modeled as first to n-th time correction values T1 to Tn. The first to nth disparity data DD1 to DDn may be modeled as Equation 2 for example.

Figure 112018117958105-pat00002
Figure 112018117958105-pat00002

수학식 2를 참조하면, dd는 시차 데이터의 값, WT는 시차 데이터에 대응되는 가중치 (매트릭스), b는 인덕티브 바이어스(inductive bias), T는 시간 보정 값으로 정의된다. 시차 데이터는 tanh와 같은 비선형 함수를 이용하여 모델링될 수 있다.Referring to Equation 2, dd is a value of disparity data, W T is a weight (matrix) corresponding to disparity data, b is an inductive bias, and T is a time correction value. Parallax data can be modeled using a non-linear function such as tanh.

제3 레이어(L3)는 시간의 순서에 따라 벡터 값 및 시간 보정 값을 수신하여 가중치를 생성할 수 있다. 여기에서, 가중치는 결과 데이터(RD)를 생성하기 위하여, 벡터 값에 부여되는 최종 가중치를 나타낼 수 있다. 제3 레이어(L3)는 어텐션 메커니즘(attention mechanism)으로 구현되는 어텐션 레이어를 포함할 수 있다. 제3 레이어(L3)는 제1 내지 제n 시간 보정 값들(T1~Tn)을 제1 내지 제n 벡터 값들(h1~hn)에 반영하여 불규칙한 시간 간격을 보정함으로써, 제1 내지 제n 가중치들(o1~on)을 생성할 수 있다. 제1 내지 제n 가중치들(o1~on)은 예시적으로 수학식 3과 같이 어텐션 메커니즘을 이용하고 불규칙한 시간 간격을 보정할 수 있다.The third layer L3 may generate a weight by receiving a vector value and a time correction value according to an order of time. Here, the weight may indicate a final weight applied to the vector value in order to generate the result data RD. The third layer L3 may include an attention layer implemented as an attention mechanism. The third layer L3 applies the first to n-th time correction values T1 to Tn to the first to n-th vector values h1 to hn to correct the irregular time interval, thereby forming the first to n-th weights. (o1~on) can be created. The first to nth weights o1 to on may exemplarily use an attention mechanism as in Equation 3 and correct irregular time intervals.

Figure 112018117958105-pat00003
Figure 112018117958105-pat00003

수학식 3을 참조하면, h는 벡터 값, We는 벡터 값에 대응되는 가중치 (매트릭스), Ue는 가중치 벡터, T는 시간 보정 값, o는 벡터 값에 부여하기 위하여 생성되는 (최종) 가중치로 정의된다. 벡터 값은 tanh와 같은 비선형 함수를 이용하여 모델링될 수 있다. 모델링된 벡터 값은 불규칙한 시간 간격을 보정하도록 시간 보정 값과 함께 softmax 함수에 입력될 수 있다. 제1 내지 제n 가중치들(o1~on)은 softmax 함수의 계산에 의하여 생성될 수 있다.Referring to Equation 3, h is a vector value, W e is a weight (matrix) corresponding to the vector value, U e is a weight vector, T is a time correction value, o is a vector value generated (final) defined as weights. Vector values can be modeled using non-linear functions such as tanh. The modeled vector values can be input into the softmax function along with the time correction values to correct for irregular time intervals. The first to nth weights o1 to on may be generated by calculation of the softmax function.

제3 레이어(L3)는 제1 내지 제n 가중치들(o1~on)을 제1 내지 제n 벡터 값들(h1~hn)에 부여할 수 있다. 예를 들어, 제1 벡터 값(h1)과 제1 가중치(o1)는 곱하여질 수 있다. 가중치의 크기에 의존하여, 벡터 값이 결과 데이터(RD)에 영향을 미치는 정도가 결정될 수 있다. 예를 들어, 가중치의 크기가 클수록, 가중치에 대응되는 데이터 또는 벡터 값은 결과 데이터(RD)를 생성하는데 유의미한 정보일 수 있다. 도 6과 달리, 제3 레이어(L3)는 가중치가 부여된 제1 내지 제n 벡터 값들(o1h1~onhn)을 모두 분석하여 생성된 하나의 분석 값을 제4 레이어(L4)에 출력할 수 있다. 예를 들어, 분석 값은 가중치가 부여된 제1 내지 제n 벡터 값들(o1h1~onhn)의 합에 기초하여 생성될 수 있다.The third layer L3 may assign the first to n-th weights o1 to on to the first to n-th vector values h1 to hn. For example, the first vector value h1 and the first weight o1 may be multiplied. Depending on the size of the weight, the degree to which the vector value affects the result data RD may be determined. For example, as the size of the weight increases, data or a vector value corresponding to the weight may be meaningful information in generating the result data RD. Unlike FIG. 6 , the third layer L3 may output one analysis value generated by analyzing all of the weighted first to nth vector values o1h1 to onhn to the fourth layer L4 . . For example, the analysis value may be generated based on the sum of weighted first to nth vector values o1h1 to onhn.

제4 레이어(L4)는 가중치가 부여된 제1 내지 제n 벡터 값들(o1h1~onhn)에 기초하여 결과 데이터(RD)를 계산할 수 있다. 결과 데이터(RD)는 예측 시간에 대응되는 제n+1 데이터(TMDn+1)일 수 있다. 제n+1 데이터(TMDn+1)는 예측 시간에 대응되는 전자 의무 기록의 예측 데이터일 수 있다. 제4 레이어(L4)는 제1 레이어(L1)와 같은 순환 신경망으로 구현될 수 있다. 예를 들어, 제4 레이어(L4)는 가중치가 부여된 제1 내지 제n 벡터 값들(o1h1~onhn)을 순차적으로 처리하여, 이전의 벡터 값을 반영한 데이터를 순차적으로 생성할 수 있다. 순차적인 처리 결과, 제4 레이어(L4)는 가중치가 부여된 제1 내지 제n 벡터 값들(o1h1~onhn) 모두를 반영한 결과 데이터(RD)를 생성할 수 있다. 다만, 이에 제한되지 않고, 제4 레이어(L4)는 예시적으로 행렬 곱셈 연산 등을 수행하여 결과 데이터(RD)를 출력하는 것과 같이 다양한 방식으로 구현될 수 있다. The fourth layer L4 may calculate the result data RD based on the weighted first to nth vector values o1h1 to onhn. The result data RD may be the n+1th data TMDn+1 corresponding to the prediction time. The n+1th data TMDn+1 may be prediction data of the electronic medical record corresponding to the predicted time. The fourth layer L4 may be implemented with the same recurrent neural network as the first layer L1 . For example, the fourth layer L4 may sequentially process the weighted first to nth vector values o1h1 to onhn to sequentially generate data reflecting the previous vector value. As a result of the sequential processing, the fourth layer L4 may generate result data RD reflecting all of the weighted first to n-th vector values o1h1 to onhn. However, the present invention is not limited thereto, and the fourth layer L4 may be implemented in various ways, for example, by performing a matrix multiplication operation and the like to output the result data RD.

도 7은 도 5에서 학습된 예측 모델의 예시적인 도면이다. 도 7은 예측 모델(PM2)의 예시적인 구성으로 이해될 것이고, 본 발명의 실시예는 도 7에 제한되지 않는다. 도 7을 참조하면, 예측 모델(PM2)은 입력 레이어(Li), 어텐션 레이어(La), 및 출력 레이어(Lo)를 포함할 수 있다. 예측 모델(PM2)은 도 5의 데이터 분석부(135)에서 생성 및 학습될 수 있다.7 is an exemplary diagram of a predictive model trained in FIG. 5 . 7 will be understood as an exemplary configuration of the predictive model PM2, and the embodiment of the present invention is not limited to FIG. Referring to FIG. 7 , the prediction model PM2 may include an input layer Li, an attention layer La, and an output layer Lo. The predictive model PM2 may be generated and learned by the data analyzer 135 of FIG. 5 .

입력 레이어(Li)는 순차적으로 제1 내지 제n 데이터(TMD1~TMDn)를 벡터화할 수 있다. 입력 레이어(Li)는 도 6의 제1 레이어(L1)와 같이, 제1 내지 제n 데이터(TMD1~TMDn)을 제1 내지 제n 벡터 값들(h1~hn)로 변환할 수 있다. 입력 레이어(Li)는 이전에 생성된 벡터 값에 기초하여 다음의 벡터 값을 생성하는 순환 신경망으로 구현될 수 있다.The input layer Li may sequentially vectorize the first to n-th data TMD1 to TMDn. Like the first layer L1 of FIG. 6 , the input layer Li may convert the first to n-th data TMD1 to TMDn into first to n-th vector values h1 to hn. The input layer Li may be implemented as a recurrent neural network that generates a next vector value based on a previously generated vector value.

어텐션 레이어(La)는 어텐션 메커니즘에 따라 제1 내지 제n 벡터 값들(h1~hn) 및 제1 내지 제n 차이 값들(d1~dn)을 순차적으로 모델링하고, 이를 종합하여 제1 내지 제n 가중치들(o1~on)을 생성할 수 있다. 제1 내지 제n 차이 값들(d1~dn)은 도 4에서 상술된 바와 같이, 시차 데이터에 포함된 데이터 값들을 나타낼 수 있다. 예시적으로, 어텐션 레이어(La)는 제1 내지 제n 벡터 값들(h1~hn) 및 제1 내지 제n 차이 값들(d1~dn)을 수학식 2 및 수학식 3과 같이, tanh 함수를 이용하여 모델링할 수 있다. 이후, 어텐션 레이어(La)는 수학식 3과 같이, softmax 함수를 적용하여, 불규칙한 시간 간격이 보정된 제1 내지 제n 가중치들(o1~on)을 생성할 수 있다. 제1 내지 제n 가중치들(o1~on)은 제1 내지 제n 벡터 값들(h1~hn)에 부여되고, 서로 합산될 수 있다. 그 결과, 분석 값(CC)이 생성될 수 있다.The attention layer La sequentially models the first to n-th vector values h1 to hn and the first to n-th difference values d1 to dn according to the attention mechanism, and synthesizes the first to n-th weights. You can create fields (o1~on). The first to nth difference values d1 to dn may represent data values included in disparity data, as described above with reference to FIG. 4 . Exemplarily, the attention layer La uses the tanh function for the first to nth vector values h1 to hn and the first to nth difference values d1 to dn as in Equations 2 and 3, can be modeled. Thereafter, as shown in Equation 3, the attention layer La may generate first to n-th weights o1 to on with irregular time intervals corrected by applying the softmax function. The first to n-th weights o1 to on are given to the first to n-th vector values h1 to hn, and may be added to each other. As a result, an analysis value CC may be generated.

출력 레이어(Lo)는 분석 값(CC) 및 제n 벡터 값(hn)에 기초하여, 예측 시간에 대응되는 결과 데이터(RD)를 생성할 수 있다. 결과 데이터(RD)는 예측 시간에 대응되는 제n+1 데이터(TMDn+1)일 수 있고, 전자 의무 기록의 예측 데이터일 수 있다. 출력 레이어(Lo)는 입력 레이어(Li)와 같이, 이전에 생성된 벡터 값인 제n 벡터 값에 기초하여, 다음의 벡터 값에 대응되는 결과 데이터(RD)를 생성할 수 있다.The output layer Lo may generate result data RD corresponding to the prediction time based on the analysis value CC and the n-th vector value hn. The result data RD may be the n+1-th data TMDn+1 corresponding to the prediction time, or may be the prediction data of the electronic medical record. Like the input layer Li, the output layer Lo may generate result data RD corresponding to the next vector value based on an n-th vector value that is a previously generated vector value.

도 8은 도 1의 시계열 의료 데이터 처리 장치에 의한 예측 모델을 학습하는 방법의 순서도이다. 도 8을 참조하면, 예측 모델을 학습하는 방법은 도 2의 시계열 의료 데이터 처리 장치(130)의 프로세서(132)에 의하여 실행될 수 있다. 도 8의 각 단계들은 프로세서(132)의 제어 하에, 전처리부(134) 및 데이터 분석부(135)에서 처리될 수 있다. 설명의 편의상 도 2의 도면 부호를 참조하여, 도 8이 설명된다.FIG. 8 is a flowchart of a method of learning a predictive model by the time series medical data processing apparatus of FIG. 1 . Referring to FIG. 8 , the method of learning the predictive model may be executed by the processor 132 of the time series medical data processing apparatus 130 of FIG. 2 . Each step of FIG. 8 may be processed by the preprocessor 134 and the data analyzer 135 under the control of the processor 132 . For convenience of description, FIG. 8 will be described with reference to the reference numerals of FIG. 2 .

S110 단계에서, 시계열 데이터는 네트워크 인터페이스(131)를 통하여 획득된다. 시계열 데이터는 도 1의 의료 데이터베이스(120) 또는 단말기(110)로부터 제공될 수 있다. 학습된 예측 모델을 이용하여 미래의 건강 상태를 예측할 때와 달리, 네트워크 인터페이스(131)는 별도의 예측 시간 데이터를 수신하지 않을 수 있다.In step S110 , time series data is acquired through the network interface 131 . The time series data may be provided from the medical database 120 or the terminal 110 of FIG. 1 . Unlike when predicting a future health state using the learned prediction model, the network interface 131 may not receive separate prediction time data.

S120 단계에서, 시계열 데이터의 전처리가 수행된다. S120 단계는 프로세서(132)의 제어 하에, 전처리부(134)에서 수행될 수 있다. 전처리부(134)는 S121 내지 S123 단계를 수행할 수 있다.In step S120, preprocessing of the time series data is performed. Step S120 may be performed by the preprocessor 134 under the control of the processor 132 . The preprocessor 134 may perform steps S121 to S123.

S121 단계에서, 전처리부(134)는 정상 시계열 데이터를 추출할 수 있다. 예시적으로, 전처리부(134)는 시계열 데이터에서 노이즈 등에 의하여 손상되거나, 해당 특징에서 나타날 수 없는 잘못된 값으로 기록된 비정상 시계열 데이터를 제거하거나 정상 시계열 데이터로 보정할 수 있다.In step S121 , the preprocessor 134 may extract normal time series data. Exemplarily, the preprocessor 134 may remove abnormal time series data that is damaged by noise, etc. from the time series data, or that is recorded as an erroneous value that cannot appear in a corresponding characteristic, or corrects the time series data with normal time series data.

S122 단계에서, 전처리부(134)는 시차 데이터를 생성한다. 학습 단계에서, 별도의 예측 시간을 수신하지 않으므로, 시차 데이터는 기설정된 예측 시간을 이용하거나, 수신된 시계열 데이터의 최종 시간을 예측 시간으로 설정함으로써 생성될 수 있다. 예를 들어, 전처리부(134)는 시계열 데이터의 최초 시간과 최종 시간 사이에 일정한 시간 간격을 갖는 기준 시간들을 계산할 수 있다. 전처리부(134)는 기준 시간들과 실제 시계열 데이터의 시간들의 차이에 기초하여, 시차 데이터를 생성할 수 있다.In step S122 , the preprocessor 134 generates disparity data. In the learning step, since a separate prediction time is not received, the disparity data may be generated by using a preset prediction time or by setting the final time of the received time series data as the prediction time. For example, the preprocessor 134 may calculate reference times having a constant time interval between the first time and the last time of the time series data. The preprocessor 134 may generate disparity data based on a difference between reference times and times of actual time series data.

S123 단계에서, 전처리부(134)는 정상 시계열 데이터를 보간할 수 있다. 예시적으로, 전처리부(134)는 정상 시계열 데이터에 포함된 특징들 중 특정 시간에 존재하지 않는 결측 값들을 보간할 수 있다. 예시적으로, 결측 값은 평균 값 또는 인접한 특징 값 등을 활용하는 통계적인 방식으로 보간되거나, 전처리 모델과 같은 기계 학습을 통하여, 보간될 수 있다.In step S123 , the preprocessor 134 may interpolate the normal time series data. For example, the preprocessor 134 may interpolate missing values that do not exist at a specific time among features included in the normal time series data. Exemplarily, the missing values may be interpolated in a statistical manner using an average value or an adjacent feature value, or may be interpolated through machine learning such as a preprocessing model.

S130 단계에서, 데이터 분석부(135)는 전처리된 시계열 데이터 및 시차 데이터에 기초하여, 예측 모델을 학습한다. 데이터 분석부(135)는 전처리된 시계열 데이터의 불규칙한 시간 간격을 시차 데이터로 보정함으로써, 학습 결과 데이터를 생성할 수 있다. 학습 결과 데이터는 예상되는 결과 데이터, 예를 들어 최종 시간에 대응되는 시계열 데이터와 비교될 수 있다. 비교 결과에 기초하여 예측 모델에 설정된 가중치가 조절됨으로써, 예측 모델이 학습될 수 있다. 예측 모델을 다양한 표본들에 대한 시계열 데이터를 이용하여 학습될 수 있다.In step S130 , the data analysis unit 135 learns a predictive model based on the preprocessed time series data and disparity data. The data analysis unit 135 may generate the learning result data by correcting the irregular time interval of the preprocessed time series data with the disparity data. The learning result data may be compared with expected result data, for example, time series data corresponding to the last time. By adjusting a weight set in the predictive model based on the comparison result, the predictive model may be learned. A predictive model can be trained using time series data for various samples.

도 9는 도 1의 시계열 의료 데이터 처리 장치에 의한 미래 건강 상태를 예측하는 방법의 순서도이다. 도 9를 참조하면, 미래 건강 상태를 예측하는 방법은 도 2의 시계열 의료 데이터 처리 장치(130)의 프로세서(132)에 의하여 실행될 수 있다. 도 8의 각 단계들은 프로세서(132)의 제어 하에, 전처리부(134) 및 데이터 분석부(135)에서 처리될 수 있다. 설명의 편의상 도 2의 도면 부호를 참조하여, 도 9가 설명된다.9 is a flowchart of a method of predicting a future health state by the time-series medical data processing apparatus of FIG. 1 . Referring to FIG. 9 , a method of predicting a future health state may be executed by the processor 132 of the time series medical data processing apparatus 130 of FIG. 2 . Each step of FIG. 8 may be processed by the preprocessor 134 and the data analyzer 135 under the control of the processor 132 . For convenience of explanation, FIG. 9 will be described with reference to the reference numerals of FIG. 2 .

S210 단계에서, 네트워크 인터페이스(131)를 통하여, 데이터가 수집된다. S211 단계에서, 미래 건강 상태를 예측하고자 하는 사용자에 대한 시계열 데이터가 네트워크 인터페이스(131)를 통하여 획득된다. 또한, S212 단계에서, 예측 시간 데이터가 네트워크 인터페이스(131)를 통하여 더 획득된다. 예측 시간은 미래 건강 상태를 예측하고자 하는 시점일 수 있다.In step S210 , data is collected through the network interface 131 . In step S211 , time series data for a user who wants to predict a future health state is acquired through the network interface 131 . Also, in step S212 , the predicted time data is further obtained through the network interface 131 . The prediction time may be a time point at which a future health state is to be predicted.

S220 단계에서, 시계열 데이터의 전처리가 수행된다. S221 단계 및 S223 단계는 도 8의 S121 단계 및 S123 단계에 대응되며, 실질적으로 동일한 동작이 수행될 수 있다. S222 단계에서, 전처리부(134)는 예측 시간 데이터에 기초하여 시차 데이터를 생성한다. 예를 들어, 전처리부(134)는 시계열 데이터의 최초 시간과 예측 시간 사이에 일정한 시간 간격을 갖는 기준 시간들을 계산할 수 있다. 전처리부(134)는 기준 시간들과 실제 시계열 데이터의 시간들의 차이에 기초하여, 시차 데이터를 생성할 수 있다.In step S220, pre-processing of the time series data is performed. Steps S221 and S223 correspond to steps S121 and S123 of FIG. 8 , and substantially the same operation may be performed. In step S222 , the preprocessor 134 generates disparity data based on the predicted time data. For example, the preprocessor 134 may calculate reference times having a constant time interval between the initial time and the predicted time of the time series data. The preprocessor 134 may generate disparity data based on a difference between reference times and times of actual time series data.

S230 단계에서, 데이터 분석부(135)는 전처리된 시계열 데이터 및 시차 데이터에 기초하여, 예측 시간에 대응되는 미래 건강 상태를 예측한다. 데이터 분석부(135)는 전처리된 시계열 데이터의 불규칙한 시간 간격을 시차 데이터로 보정함으로써, 시계열 데이터의 시간들 각각에 대응되는 가중치를 생성할 수 있다. 데이터 분석부(135)는 생성된 가중치에 기초하여, 예측 시간에 대응되는 결과 데이터를 생성할 수 있다.In step S230 , the data analysis unit 135 predicts a future health state corresponding to the predicted time based on the preprocessed time series data and disparity data. The data analyzer 135 may generate a weight corresponding to each time of the time series data by correcting the irregular time interval of the preprocessed time series data with the disparity data. The data analyzer 135 may generate result data corresponding to the prediction time based on the generated weight.

도 10은 도 9의 S230 단계를 구체화한 순서도이다. 도 10을 참조하면, 예측 모델을 이용하여 예측 시간에 대응되는 미래 건강 상태를 예측하는 방법이 수행된다. 미래 건강 상태의 결과를 예측하는 방법은 도 2의 시계열 의료 데이터 처리 장치(130)의 프로세서(132)에 의하여 실행될 수 있다. 도 10의 각 단계들은 데이터 분석부(135)에 의하여 학습된 예측 모델에서 수행될 수 있다. 설명의 편의상 도 6의 도면 부호를 참조하여, 도 10이 설명된다.10 is a flowchart illustrating step S230 of FIG. 9 . Referring to FIG. 10 , a method of predicting a future health state corresponding to a prediction time using a prediction model is performed. The method of predicting a result of a future health state may be executed by the processor 132 of the time series medical data processing apparatus 130 of FIG. 2 . Each of the steps of FIG. 10 may be performed on the prediction model learned by the data analysis unit 135 . For convenience of description, FIG. 10 will be described with reference to the reference numerals of FIG. 6 .

S231 단계에서, 데이터 분석부(135)는 전처리된 시계열 데이터를 벡터화한다. S231 단계는 제1 레이어(L1)에서 수행될 수 있다. 제1 레이어(L1)는 시간의 순서에 따라 시계열 데이터를 수신하여 벡터 값으로 변환할 수 있다. 제1 레이어(L1)는 이전에 생성된 벡터 값에 기초하여, 다음의 벡터 값을 생성할 수 있다.In step S231, the data analysis unit 135 vectorizes the preprocessed time series data. Step S231 may be performed in the first layer L1. The first layer L1 may receive time series data according to the order of time and convert it into a vector value. The first layer L1 may generate the next vector value based on the previously generated vector value.

S232 단계에서, 데이터 분석부(135)는 시차 데이터에 기초하여 시계열 데이터의 불규칙한 시간 간격을 보정할 수 있다. S232 단계는 제3 레이어(L3)에서 수행될 수 있다. S232 단계 이전에, 제2 레이어(L2)는 시차 데이터를 상술된 수학식 3과 같이 모델링 할 수 있다. 예를 들어, 제3 레이어(L3)는 상술된 수학식 2와 같이, 벡터 값을 모델링하고, 모델링된 벡터 값과 모델링된 시차 데이터에 어텐션 메커니즘을 적용할 수 있다.In step S232 , the data analysis unit 135 may correct an irregular time interval of the time series data based on the disparity data. Step S232 may be performed in the third layer L3. Before step S232, the second layer L2 may model the disparity data as in Equation 3 above. For example, as in Equation 2, the third layer L3 may model a vector value and apply an attention mechanism to the modeled vector value and the modeled disparity data.

S233 단계에서, 데이터 분석부(135)는 모델링된 벡터 값과 모델링된 시차 데이터에 어텐션 메커니즘을 적용함으로써, 벡터 값에 부여되는 가중치를 생성할 수 있다. S233 단계는 제3 레이어(L3)에서 수행될 수 있다. 예를 들어, 모델링된 벡터 값 및 모델링된 시차 데이터에 softmax 함수가 적용될 수 있다. 가중치는 결과 데이터를 생성하는데 이용되는 벡터 값의 중요도와 연관될 수 있다.In step S233 , the data analysis unit 135 may generate a weight assigned to the vector value by applying an attention mechanism to the modeled vector value and the modeled disparity data. Step S233 may be performed in the third layer L3. For example, a softmax function may be applied to the modeled vector value and the modeled disparity data. The weight may be associated with the importance of the vector value used to generate the resulting data.

S234 단계에서, 데이터 분석부(135)는 예측 시간에 대응되는 결과 데이터를 생성한다. S234 단계는 제4 레이어(L4)에서 수행될 수 있다. 예를 들어, S234 단계에서 생성된 가중치는 벡터 값에 부여될 수 있다. 벡터 값 및 가중치는 전처리된 시계열 데이터에 대응되는 시간들의 개수만큼 생성될 수 있고, 가중치가 부여된 벡터 값들 전체가 반영되어 결과 데이터가 생성될 수 있다.In step S234 , the data analysis unit 135 generates result data corresponding to the prediction time. Step S234 may be performed in the fourth layer L4. For example, the weight generated in step S234 may be assigned to the vector value. Vector values and weights may be generated as much as the number of times corresponding to the preprocessed time series data, and all weighted vector values may be reflected to generate result data.

위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.The contents described above are specific examples for carrying out the present invention. The present invention will include not only the above-described embodiments, but also simple design changes or easily changeable embodiments. In addition, the present invention will include techniques that can be easily modified and implemented in the future using the above-described embodiments.

100: 건강 상태 예측 시스템
130: 시계열 의료 데이터 처리 장치
134: 전처리부
135: 데이터 분석부
100: health condition prediction system
130: time series medical data processing unit
134: preprocessor
135: data analysis unit

Claims (20)

시계열 데이터 및 예측 시간을 수신하는 네트워크 인터페이스;
상기 시계열 데이터를 전처리하고, 상기 예측 시간에 기초하여 상기 시계열 데이터의 복수의 시간들 각각에 대응되는 시차 데이터를 생성하는 전처리부;
상기 전처리된 시계열 데이터 및 상기 시차 데이터에 기초하여, 상기 예측 시간에 대응되는 결과 데이터를 생성하는 데이터 분석부; 및
상기 전처리부 및 상기 데이터 분석부를 제어하는 프로세서를 포함하는 시계열 데이터 처리 장치.
a network interface for receiving time series data and predicted times;
a preprocessing unit preprocessing the time series data and generating disparity data corresponding to each of a plurality of times of the time series data based on the predicted time;
a data analysis unit generating result data corresponding to the predicted time based on the preprocessed time series data and the disparity data; and
A time series data processing apparatus comprising a processor controlling the preprocessor and the data analysis unit.
제1 항에 있어서,
상기 전처리부는,
상기 복수의 시간들 중 최초 시간과 상기 예측 시간의 차이에 기초하여, 상기 시계열 데이터의 복수의 기준 시간들을 계산하고, 상기 복수의 기준 시간들과 상기 복수의 시간들 사이의 차이에 기초하여, 상기 시차 데이터를 생성하는 시계열 데이터 처리 장치.
According to claim 1,
The preprocessor is
Calculate a plurality of reference times of the time series data based on a difference between an initial time of the plurality of times and the predicted time, and based on a difference between the plurality of reference times and the plurality of times, A time series data processing unit that generates disparity data.
제2 항에 있어서,
상기 복수의 기준 시간들 사이의 시간 간격은 서로 동일한 시계열 데이터 처리 장치.
3. The method of claim 2,
A time series data processing apparatus in which time intervals between the plurality of reference times are equal to each other.
제1 항에 있어서,
상기 시계열 데이터는 제1 시간에 대응되는 제1 데이터, 상기 제1 시간 이후의 제2 시간에 대응되는 제2 데이터, 및 상기 제2 시간 이후의 제3 시간에 대응되는 제3 데이터를 포함하고,
상기 전처리부는,
상기 예측 시간에 기초하여 상기 제1 내지 제3 데이터에 대응되는 제1 내지 제3 기준 시간들을 계산하고, 상기 제1 시간과 상기 제1 기준 시간의 차이에 기초하여 제1 시차 데이터를 생성하고, 상기 제2 시간과 상기 제2 기준 시간 사이의 차이에 기초하여 제2 시차 데이터를 생성하고, 상기 제3 시간과 상기 제3 기준 시간 사이의 차이에 기초하여 제3 시차 데이터를 생성하는 시계열 데이터 처리 장치.
According to claim 1,
The time series data includes first data corresponding to a first time, second data corresponding to a second time after the first time, and third data corresponding to a third time after the second time,
The preprocessor is
calculating first to third reference times corresponding to the first to third data based on the predicted time, and generating first disparity data based on a difference between the first time and the first reference time, Time series data processing for generating second disparity data based on a difference between the second time and the second reference time, and generating third disparity data based on the difference between the third time and the third reference time Device.
제4 항에 있어서,
상기 제1 시간과 상기 제2 시간의 차이는 상기 제2 시간과 상기 제3 시간의 차이와 다르고, 상기 제1 기준 시간과 상기 제2 기준 시간의 차이는 상기 제2 기준 시간과 상기 제3 기준 시간의 차이와 동일한 시계열 데이터 처리 장치.
5. The method of claim 4,
The difference between the first time and the second time is different from the difference between the second time and the third time, and the difference between the first reference time and the second reference time is the second reference time and the third reference time. A time series data processing unit equal to the difference in time.
제1 항에 있어서,
상기 전처리부는,
상기 시계열 데이터에서 정상 시계열 데이터를 추출하는 데이터 추출기;
상기 예측 시간 및 상기 정상 시계열 데이터의 복수의 시간들에 기초하여, 상기 시차 데이터를 생성하는 시간 간격 계산기; 및
상기 정상 시계열 데이터에 포함된 특징들에 대한 결측 값을 보간하는 데이터 보간기를 포함하는 시계열 데이터 처리 장치.
According to claim 1,
The preprocessor is
a data extractor for extracting normal time series data from the time series data;
a time interval calculator that generates the disparity data based on the predicted time and a plurality of times of the normal time series data; and
and a data interpolator for interpolating missing values for features included in the normal time series data.
제1 항에 있어서,
상기 데이터 분석부는,
상기 전처리된 시계열 데이터 및 상기 시차 데이터를 입력 받는 예측 모델에 의하여, 상기 전처리된 시계열 데이터에 대응되는 가중치를 생성하고, 상기 가중치에 기초하여 상기 결과 데이터를 계산하는 시계열 데이터 처리 장치.
According to claim 1,
The data analysis unit,
A time series data processing apparatus for generating a weight corresponding to the preprocessed time series data by a prediction model receiving the preprocessed time series data and the disparity data, and calculating the result data based on the weights.
제7 항에 있어서,
상기 예측 모델은,
상기 전처리된 시계열 데이터를 상기 복수의 시간들에 대응되는 복수의 벡터 값들로 변환하는 제1 레이어;
상기 복수의 시간들에 대응되는 상기 시차 데이터의 값들 및 상기 복수의 벡터 값들을 모델링하여, 상기 복수의 벡터 값들에 대응되는 복수의 가중치들을 생성하고, 상기 복수의 가중치들을 상기 복수의 벡터 값들에 적용하여, 분석 값을 생성하는 제2 레이어; 및
상기 복수의 시간들 중 최종 시간에 대응되는 벡터 값 및 상기 분석 값에 기초하여, 상기 결과 데이터를 생성하는 제3 레이어를 포함하는 시계열 데이터 처리 장치.
8. The method of claim 7,
The predictive model is
a first layer converting the preprocessed time series data into a plurality of vector values corresponding to the plurality of times;
By modeling the values of the disparity data corresponding to the plurality of times and the plurality of vector values, a plurality of weights corresponding to the plurality of vector values are generated, and the plurality of weights are applied to the plurality of vector values. a second layer to generate an analysis value; and
and a third layer generating the result data based on a vector value corresponding to a final time among the plurality of times and the analysis value.
제7 항에 있어서,
상기 예측 모델은,
상기 전처리된 시계열 데이터를 상기 복수의 시간들에 대응되는 복수의 벡터 값들로 변환하는 제1 레이어;
상기 시차 데이터를 모델링하여, 상기 복수의 벡터 값들에 대응되는 복수의 시간 보정 값들을 생성하는 제2 레이어;
상기 복수의 벡터 값들 및 상기 복수의 시간 보정 값들에 기초하여, 상기 복수의 벡터 값들에 대응되는 복수의 가중치들을 생성하는 제3 레이어; 및
상기 복수의 가중치들 및 상기 복수의 벡터 값들에 기초하여, 상기 결과 데이터를 생성하는 제4 레이어를 포함하는 시계열 데이터 처리 장치.
8. The method of claim 7,
The predictive model is
a first layer converting the preprocessed time series data into a plurality of vector values corresponding to the plurality of times;
a second layer that models the disparity data to generate a plurality of time correction values corresponding to the plurality of vector values;
a third layer generating a plurality of weights corresponding to the plurality of vector values based on the plurality of vector values and the plurality of time correction values; and
and a fourth layer generating the result data based on the plurality of weights and the plurality of vector values.
제1 항에 있어서,
상기 시계열 데이터는 상기 복수의 시간들에 대응되는 복수의 전자 의무 기록들을 포함하는 시계열 데이터 처리 장치.
According to claim 1,
The time series data is a time series data processing apparatus including a plurality of electronic medical records corresponding to the plurality of times.
프로세서에 의하여 수행되는 시계열 데이터 처리 장치의 동작 방법에 있어서,
복수의 시간들에 대응되는 시계열 데이터를 획득하는 단계;
설정된 예측 시간으로부터 생성된 복수의 기준 시간들과 상기 복수의 시간들 사이의 차이에 기초하여, 시차 데이터를 생성하는 단계; 및
상기 시계열 데이터 및 상기 시차 데이터에 기초하여, 예측 모델을 학습하는 단계를 포함하는 방법.
A method of operating a time series data processing apparatus performed by a processor, the method comprising:
obtaining time series data corresponding to a plurality of times;
generating disparity data based on a plurality of reference times generated from a set prediction time and a difference between the plurality of times; and
and learning a predictive model based on the time series data and the disparity data.
제11 항에 있어서,
상기 예측 시간은 상기 복수의 시간들 중 최종 시간을 포함하는 방법.
12. The method of claim 11,
wherein the predicted time includes a last time of the plurality of times.
제11 항에 있어서,
상기 시차 데이터를 생성하는 단계는,
상기 예측 시간과 상기 복수의 시간들 중 최초 시간의 차이에 기초하여, 일정한 시간 간격을 갖는 상기 복수의 기준 시간들을 계산하는 단계를 포함하는 방법.
12. The method of claim 11,
The step of generating the disparity data includes:
and calculating the plurality of reference times having a constant time interval based on a difference between the predicted time and an initial time among the plurality of times.
제11 항에 있어서,
상기 예측 모델을 학습하는 단계는,
상기 시계열 데이터의 시간 간격을 상기 시차 데이터로 보정하여 상기 예측 시간에 대응되는 학습 결과 데이터를 생성하는 단계를 포함하는 방법.
12. The method of claim 11,
Learning the predictive model comprises:
and generating learning result data corresponding to the predicted time by correcting the time interval of the time series data with the disparity data.
제14 항에 있어서,
상기 학습 결과 데이터를 생성하는 단계는,
상기 시계열 데이터를 벡터화하여, 복수의 시간들에 대응되는 복수의 벡터 값들을 생성하는 단계;
상기 시차 데이터를 모델링하여, 상기 복수의 벡터 값들에 대응되는 복수의 시간 보정 값들을 생성하는 단계;
상기 복수의 벡터 값들 및 상기 복수의 시간 보정 값들에 기초하여, 상기 복수의 벡터 값들에 대응되는 복수의 가중치들을 생성하는 단계; 및
상기 복수의 가중치들 및 상기 복수의 벡터 값들에 기초하여, 상기 학습 결과 데이터를 계산하는 단계를 포함하는 방법.
15. The method of claim 14,
The step of generating the learning result data comprises:
generating a plurality of vector values corresponding to a plurality of times by vectorizing the time series data;
generating a plurality of time correction values corresponding to the plurality of vector values by modeling the disparity data;
generating a plurality of weights corresponding to the plurality of vector values based on the plurality of vector values and the plurality of time correction values; and
and calculating the learning result data based on the plurality of weights and the plurality of vector values.
프로세서에 의하여 수행되는 시계열 데이터 처리 장치의 동작 방법에 있어서,
복수의 시간들에 대응되는 시계열 데이터를 획득하는 단계;
상기 복수의 시간들 이후의 예측 시간을 획득하는 단계;
상기 예측 시간 및 상기 복수의 시간들 중 적어도 하나 사이의 시간 간격에 기초하여, 상기 복수의 시간들 각각에 대응되는 시차 데이터를 생성하는 단계; 및
상기 시계열 데이터 및 상기 시차 데이터에 기초하여, 상기 예측 시간에 대응되는 결과 데이터를 생성하는 단계를 포함하는 방법.
A method of operating a time series data processing apparatus performed by a processor, the method comprising:
obtaining time series data corresponding to a plurality of times;
obtaining a predicted time after the plurality of times;
generating disparity data corresponding to each of the plurality of times based on the predicted time and a time interval between at least one of the plurality of times; and
and generating result data corresponding to the predicted time based on the time series data and the disparity data.
제16 항에 있어서,
상기 시계열 데이터를 획득하는 단계 이후에, 상기 시계열 데이터를 전처리하는 단계를 더 포함하고,
상기 시계열 데이터를 전처리하는 단계는,
상기 시계열 데이터에서 정상 시계열 데이터를 추출하는 단계; 및
상기 정상 시계열 데이터에 포함된 특징들에 대한 결측 값을 보간하는 단계를 포함하는 단계를 포함하는 방법.
17. The method of claim 16,
After obtaining the time series data, further comprising the step of pre-processing the time series data,
The pre-processing of the time series data comprises:
extracting normal time series data from the time series data; and
and interpolating missing values for features included in the stationary time series data.
제16 항에 있어서,
상기 결과 데이터를 생성하는 단계는,
상기 시계열 데이터를 상기 복수의 시간들에 대응되는 복수의 벡터 값들로 변환하는 단계;
상기 복수의 시간들에 대응되는 상기 시차 데이터의 값들을 모델링하여, 복수의 시간 보정 값들을 생성하는 단계;
상기 복수의 벡터 값들 및 상기 복수의 시간 보정 값들에 기초하여, 상기 복수의 벡터 값들에 대응되는 복수의 가중치들을 생성하는 단계를 포함하는 단계; 및
상기 복수의 가중치들을 상기 복수의 벡터 값들에 적용하는 단계를 포함하는 방법.
17. The method of claim 16,
The step of generating the result data includes:
converting the time series data into a plurality of vector values corresponding to the plurality of times;
generating a plurality of time correction values by modeling the values of the disparity data corresponding to the plurality of times;
generating a plurality of weights corresponding to the plurality of vector values based on the plurality of vector values and the plurality of time correction values; and
and applying the plurality of weights to the plurality of vector values.
제16 항에 있어서,
상기 시계열 데이터는 제1 시간에 대응되는 제1 데이터 및 상기 제1 시간 이후의 제2 시간에 대응되는 제2 데이터를 포함하고,
상기 결과 데이터를 생성하는 단계는,
상기 제1 데이터를 제1 벡터 값으로 변환하는 단계;
상기 제1 시간에 대응되는 제1 시차 데이터를 제1 시간 보정 값으로 모델링하는 단계;
상기 제1 시간 보정 값을 상기 제1 벡터 값에 반영하여, 제1 가중치를 생성하는 단계;
상기 제1 벡터 값에 기초하여, 상기 제2 데이터를 제2 벡터 값으로 변환하는 단계;
상기 제2 시간에 대응되는 제2 시차 데이터를 제2 시간 보정 값으로 모델링하는 단계; 및
상기 제2 시간 보정 값을 및 상기 제2 벡터 값에 반영하여, 제2 가중치를 생성하는 단계를 포함하는 방법.
17. The method of claim 16,
The time series data includes first data corresponding to a first time and second data corresponding to a second time after the first time,
The step of generating the result data includes:
converting the first data into a first vector value;
modeling the first disparity data corresponding to the first time as a first time correction value;
generating a first weight by reflecting the first time correction value to the first vector value;
converting the second data into a second vector value based on the first vector value;
modeling second disparity data corresponding to the second time as a second time correction value; and
and generating a second weight by reflecting the second time correction value and the second vector value.
제19 항에 있어서,
상기 결과 데이터를 생성하는 단계는,
상기 제1 벡터 값에 상기 제1 가중치를 부여하여 제1 분석 값을 생성하는 단계;
상기 제2 벡터 값에 상기 제2 가중치를 부여하여 제2 분석 값을 생성하는 단계; 및
상기 제2 벡터 값, 상기 제1 분석 값, 및 상기 제2 분석 값에 기초하여, 상기 결과 데이터를 출력하는 단계를 더 포함하는 방법.
20. The method of claim 19,
The step of generating the result data includes:
generating a first analysis value by giving the first weight to the first vector value;
generating a second analysis value by giving the second weight to the second vector value; and
The method further comprising outputting the result data based on the second vector value, the first analysis value, and the second analysis value.
KR1020180147862A 2018-11-26 2018-11-26 Time series data processing device and operating method thereof KR102415220B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180147862A KR102415220B1 (en) 2018-11-26 2018-11-26 Time series data processing device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180147862A KR102415220B1 (en) 2018-11-26 2018-11-26 Time series data processing device and operating method thereof

Publications (2)

Publication Number Publication Date
KR20200061968A KR20200061968A (en) 2020-06-03
KR102415220B1 true KR102415220B1 (en) 2022-07-01

Family

ID=71087458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180147862A KR102415220B1 (en) 2018-11-26 2018-11-26 Time series data processing device and operating method thereof

Country Status (1)

Country Link
KR (1) KR102415220B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102481497B1 (en) 2020-12-18 2022-12-23 숭실대학교 산학협력단 Method for detecting machine failure using a convolutional neural network model, recording medium and device for performing the method
KR102574244B1 (en) * 2021-02-10 2023-09-06 주식회사 티라유텍 A method and apparatus for generating future demand forecast data based on attention mechanism
KR20230017113A (en) 2021-07-27 2023-02-03 경북대학교 산학협력단 Method and apparatus for analyzing time series data based on time delayed plot, and recording media recorded program realizing the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101856170B1 (en) 2017-09-20 2018-05-10 주식회사 모비젠 Apparatus for predicting error generation time of system based on time-series data and method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140107714A (en) * 2013-02-25 2014-09-05 한국전자통신연구원 Health management system and method for providing health information thereof
KR101940807B1 (en) * 2015-11-23 2019-01-23 한국전자통신연구원 Apparatus and method for predicting future health
KR20170061222A (en) * 2015-11-25 2017-06-05 한국전자통신연구원 The method for prediction health data value through generation of health data pattern and the apparatus thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101856170B1 (en) 2017-09-20 2018-05-10 주식회사 모비젠 Apparatus for predicting error generation time of system based on time-series data and method thereof

Also Published As

Publication number Publication date
KR20200061968A (en) 2020-06-03

Similar Documents

Publication Publication Date Title
KR102501530B1 (en) Time series data processing device and operating method thereof
KR102216689B1 (en) Method and system for visualizing classification result of deep neural network for prediction of disease prognosis through time series medical data
KR102460442B1 (en) Time series data processing device, health predicting system including the same, and method for operating time series data processing device
KR102501525B1 (en) Time series data processing device and operating method thereof
KR102415220B1 (en) Time series data processing device and operating method thereof
US20190180882A1 (en) Device and method of processing multi-dimensional time series medical data
KR102532909B1 (en) Apparatus and method of processing multi-dimensional time series medical data
KR20190101043A (en) A joint learning framework for active feature acquisition and classification
US20200111575A1 (en) Producing a multidimensional space data structure to perform survival analysis
JP2023538188A (en) Robust prediction system for irregular time series in dialysis medical records
US20210174229A1 (en) Device for ensembling data received from prediction devices and operating method thereof
US11972443B2 (en) Prediction model preparation and use for socioeconomic data and missing value prediction
Turgut et al. A framework proposal for machine learning-driven agent-based models through a case study analysis
JP2020042645A (en) Time series data analysis apparatus, time series data analysis method, and time series data analysis program
US11651289B2 (en) System to identify and explore relevant predictive analytics tasks of clinical value and calibrate predictive model outputs to a prescribed minimum level of predictive accuracy
US20210319341A1 (en) Device for processing time series data having irregular time interval and operating method thereof
US20220343160A1 (en) Time series data processing device configured to process time series data with irregularity
JP2021149423A (en) Prediction apparatus, prediction method, and prediction program for patient state
KR102557001B1 (en) Device for ensembling data received from prediction devices and operating method thereof
US11941513B2 (en) Device for ensembling data received from prediction devices and operating method thereof
KR20190092217A (en) Device for ensembling data and operating method thereof
CN111276248B (en) State determination system and electronic device
Gadewadikar et al. A methodology for parameter estimation in system dynamics models using artificial intelligence
US20220207297A1 (en) Device for processing unbalanced data and operation method thereof
US20220359082A1 (en) Health state prediction system including ensemble prediction model and operation method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant