KR102177741B1 - Apparatus and method for interpreting communication message based on recurrent neural network and fork prediction - Google Patents
Apparatus and method for interpreting communication message based on recurrent neural network and fork prediction Download PDFInfo
- Publication number
- KR102177741B1 KR102177741B1 KR1020180129185A KR20180129185A KR102177741B1 KR 102177741 B1 KR102177741 B1 KR 102177741B1 KR 1020180129185 A KR1020180129185 A KR 1020180129185A KR 20180129185 A KR20180129185 A KR 20180129185A KR 102177741 B1 KR102177741 B1 KR 102177741B1
- Authority
- KR
- South Korea
- Prior art keywords
- prediction
- prediction result
- calculated
- result
- character
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H04L29/06006—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/02—Protocol performance
Abstract
본 발명의 기술적 사상에 의한 일 양태에 따른 통신 메시지의 메시지 해석 방법은 전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받는 단계; 상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하는 단계; 상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하는 단계; 상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하는 단계; 상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하는 단계; 및 상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하는 단계를 포함할 수 있다. A message analysis method for a communication message according to an aspect of the present invention includes the steps of receiving a stream including a plurality of input characters included in a transmitted communication message; Calculating a first prediction result that is a result predicted according to the first character of the stream; Comparing the calculated first prediction result with a second character of the stream; Based on the comparison result with the first prediction result, if the calculated first prediction result and the second character are not the same, a second prediction result branching from a point that is not identical is calculated, and the first prediction result is Storing in a first stack; Comparing the calculated second prediction result with the second character; And if the calculated second prediction result and the second character are not the same based on the comparison result with the second prediction result, a third prediction result branching from the non-identical point is calculated, and the second prediction And storing the result as a second stack.
Description
본 발명의 기술적 사상은 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법에 관한 것으로, 보다 상세하게는, 다양한 장치들로부터 전송되는 통신 메시지를 해석하는 통신 메시지 해석 장치 및 그 방법에 관한 것이다. The technical idea of the present invention relates to a communication message analysis apparatus and method using a circulatory neural network, and more particularly, to a communication message analysis apparatus and method for interpreting communication messages transmitted from various devices.
IoT(Internet of Things) 환경에서는 다양한 사용자 어플리케이션과 통신 프로토콜이 사용된다. In the Internet of Things (IoT) environment, various user applications and communication protocols are used.
그리고 각각의 사용자 어플리케이션은 프로그램마다 정의된 메시지 구성(structure)를 가져서, 각 어플리케이션이 작성한 메시지는 서로 다른 프로토콜에 의해 전송되고 해석될 수 있다. In addition, each user application has a message structure defined for each program, so that messages created by each application can be transmitted and interpreted by different protocols.
그래서 메시지를 수신하는 수신 측 장치 또는 중앙 서버 시스템은 각 프로토콜마다 작성된 수신부를 갖추고, 수신 측 어플리케이션도 각 프로토콜에 맞는 메시지 해석기를 갖춰야 한다. Therefore, a receiving device or a central server system that receives a message must have a receiving unit created for each protocol, and a receiving application must also have a message interpreter suitable for each protocol.
서로 다른 어플리케이션과 프로토콜을 위해, 개발자는 각 어플리케이션과 프로토콜에서 정의한 규정을 해석해야 하며 해석된 결과를 바탕으로 다양한 수의 수신측 혹은 송신측 소프트웨어 모듈을 제작하여야 한다. 이는 IoT 환경과 같이 매우 다양한 디바이스들이 존재하는 상황에서 매우 큰 부담으로 작용한다. For different applications and protocols, the developer must interpret the rules defined by each application and protocol, and produce various number of receiving or transmitting software modules based on the analyzed results. This acts as a very heavy burden in the presence of a wide variety of devices such as an IoT environment.
한편, IoT에 대한 관심이 증가하면서 IoT 산업의 규모는 점차 커지고 있으며, 실생활에서 IoT가 접목된 제품 또는 센서를 쉽게 찾아볼 수 있게 되었다.On the other hand, as interest in IoT increases, the scale of the IoT industry is gradually increasing, and it is possible to easily find products or sensors incorporating IoT in real life.
그리고 IoT 장치 또는 센서의 수가 증가함에 따라 데이터 해석을 위한 프로세스는 점차 복잡해지고 있으며, 위에서 말한 프로토콜 간 해석 문제는 오히려 증가하고 있다.In addition, as the number of IoT devices or sensors increases, the process for data interpretation is becoming increasingly complex, and the problem of interpretation between protocols mentioned above is rather increasing.
본 발명의 기술적 사상에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법은 순환신경망 모델과 텍스트 마이닝 모델을 결합하여 다양한 프로토콜의 통신 메시지를 해석하는데 목적이 있다.An apparatus and method for analyzing communication messages using a circulatory neural network according to the technical idea of the present invention aims to interpret communication messages of various protocols by combining a cyclic neural network model and a text mining model.
또한, 본 발명은 단어 예측 과정에서 분기 예측(fork prediction)을 이용하여 통신 메시지 해석의 신뢰성을 향상시키는데 목적이 있다.In addition, an object of the present invention is to improve the reliability of communication message interpretation by using fork prediction in a word prediction process.
또한, 본 발명은 메시지 재구성 과정에서, 통신 메시지 내의 잡음을 효과적으로 제거하는데 목적이 있다.In addition, an object of the present invention is to effectively remove noise in a communication message during a message reconfiguration process.
본 발명의 기술적 사상에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problem to be achieved by the apparatus and method for analyzing a communication message using a circulatory neural network according to the technical idea of the present invention is not limited to the problem(s) mentioned above, and another problem(s) not mentioned is described below. From will be able to be clearly understood by those skilled in the art.
본 발명의 기술적 사상에 의한 일 양태에 따른 통신 메시지의 메시지 해석 방법은 전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받는 단계; 상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하는 단계; 상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하는 단계; 상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하는 단계; 상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하는 단계; 및 상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하는 단계를 포함할 수 있다. A message analysis method for a communication message according to an aspect of the present invention includes the steps of receiving a stream including a plurality of input characters included in a transmitted communication message; Calculating a first prediction result that is a result predicted according to the first character of the stream; Comparing the calculated first prediction result with a second character of the stream; Based on the comparison result with the first prediction result, if the calculated first prediction result and the second character are not the same, a second prediction result branching from a point that is not identical is calculated, and the first prediction result is Storing in a first stack; Comparing the calculated second prediction result with the second character; And if the calculated second prediction result and the second character are not the same based on the comparison result with the second prediction result, a third prediction result branching from the non-identical point is calculated, and the second prediction And storing the result as a second stack.
예시적인 실시예에 따르면, 상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, if the first prediction result or the second prediction result is the same as the plurality of input characters, storing the same prediction result as a completed word may be further included.
예시적인 실시예에 따르면, 상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method may further include deleting the stack of prediction results stored as the completed word.
예시적인 실시예에 따르면, 상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하는 단계를 더 포함할 수 있다. According to an exemplary embodiment, when the number of stacks of a plurality of prediction results branched at the same point exceeds a reference value for the prediction result calculated for the input character, deleting the excess number of stacks. It may further include.
예시적인 실시예에 따르면, 상기 초과된 수의 스택을 삭제하는 단계는 상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하는 단계를 포함할 수 있다.According to an exemplary embodiment, deleting the excess number of stacks may include deleting the excess number of stacks based on a waiting time among stacks of the plurality of prediction results. have.
예시적인 실시예에 따르면, 상기 초과된 수의 스택을 삭제하는 단계는 상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하는 단계를 포함할 수 있다.According to an exemplary embodiment, the deleting of the excess number of stacks may include deleting a stack of the plurality of prediction results in which a comparison result with the input character does not match a predetermined number or more. .
예시적인 실시예에 따르면, 상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하는 단계; 및 상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method includes: calculating a minimum branch prediction level for the number of prediction results branched at one point for a prediction result predicted according to the input character; And calculating a plurality of prediction results, which are results predicted according to the input characters, based on the calculated minimum branch prediction level.
예시적인 실시예에 따르면, 상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하는 단계를 더 포함할 수 있다. According to an exemplary embodiment, using the calculated minimum branch prediction level, the step of adjusting the number of stems, which are consecutive characters used as inputs, may be further included.
본 발명의 기술적 사상에 의한 다른 양태에 따른 메시지 해석 장치는 적어도 하나의 프로세서; 및 상기 프로세서에 전기적으로 연결된 메모리를 포함하고, 상기 메모리는, 상기 프로세서가 실행 시에, 전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받고, 상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하고, 상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하고, 상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하고, 상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하고, 상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하도록 하는 인스트럭션들을 저장할 수 있다.According to another aspect of the inventive concept, an apparatus for analyzing a message includes at least one processor; And a memory electrically connected to the processor, wherein the memory receives a stream including a plurality of input characters included in the transmitted communication message when the processor is executed, and according to the first character of the stream A first prediction result which is a predicted result is calculated, the calculated first prediction result is compared with a second character of the stream, and based on the comparison result with the first prediction result, the calculated first prediction result and If the second character is not the same, a second prediction result branching from an unequal point is calculated, the first prediction result is stored as a first stack, and the calculated second prediction result is the second character And, based on the comparison result with the second prediction result, if the calculated second prediction result and the second character are not identical, a third prediction result branching from the non-identical point is calculated, and the Instructions for storing the second prediction result as a second stack may be stored.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하도록 하는 인스트럭션들을 저장할 수 있다.According to an exemplary embodiment, when the processor is executed, if the first prediction result or the second prediction result is the same as the plurality of input characters, the memory stores the same prediction result as a completed word. You can save instructions.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.According to an exemplary embodiment, the memory may store instructions for causing the processor to delete a stack of prediction results stored as the completed word when the processor is executed.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.According to an exemplary embodiment, when the processor is executed, the number of stacks of a plurality of prediction results branched at the same point with respect to a prediction result calculated for the input character exceeds a reference value. If so, you can store instructions that cause you to delete an excess number of stacks.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다. According to an exemplary embodiment, the memory may store instructions for deleting the excess number of stacks based on a waiting time among stacks of the plurality of prediction results when the processor is executed. have.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.According to an exemplary embodiment, when the processor is executed, the memory may store instructions for deleting a stack in which the comparison result with the input character does not match a predetermined number or more among the stacks of the plurality of prediction results. .
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하고, 상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하도록 하는 인스트럭션들을 저장할 수 있다.According to an exemplary embodiment, when the processor is executed, the memory calculates a minimum branch prediction level for the number of prediction results branched at one point with respect to a prediction result predicted according to the input character, and the Based on the calculated minimum branch prediction level, instructions for calculating a plurality of prediction results, which are results predicted according to the input character, may be stored.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하도록 하는 인스트럭션들을 저장할 수 있다. According to an exemplary embodiment, the memory may store instructions for adjusting the number of stems, which are consecutive characters used as inputs, by using the calculated minimum branch prediction level when the processor is executed. have.
본 발명의 기술적 사상에 의한 실시예들에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법은 순환신경망 모델과 텍스트 마이닝 모델을 결합하여 다양한 프로토콜의 통신 메시지를 해석할 수 있다. The apparatus and method for analyzing a communication message using a circulatory neural network according to embodiments of the inventive concept may analyze communication messages of various protocols by combining a cyclic neural network model and a text mining model.
본 발명은 단어 예측 과정에서 분기 예측(fork prediction)을 이용하여 통신 메시지 해석의 신뢰성을 향상시킬 수 있다. The present invention can improve the reliability of communication message interpretation by using fork prediction in the word prediction process.
또한, 본 발명은 메시지 재구성 과정에서, 통신 메시지 내의 잡음을 효과적으로 제거할 수 있다.In addition, the present invention can effectively remove noise in a communication message during a message reconfiguration process.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 다양한 실시예에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법에 대한 개념도이다.
도 2는 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 예측된 결과의 적층에 대한 개념도이다.
도 4는 본 발명의 다양한 실시예에 따른 분기 적층 방법에 대한 개념도이다.
도 5는 본 발명의 다양한 실시예에 따른 오래된 예측 값의 삭제에 대한 예시도이다.
도 6은 본 발명의 다양한 실시예에 따른 예측 분기 레벨에 대한 개념도이다.
도 7은 본 발명의 다양한 실시예에 따른 어간 크기 조절에 대한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 예측 정확도에 대한 그래프이다.In order to more fully understand the drawings cited in the present specification, a brief description of each drawing is provided.
1 is a conceptual diagram of an apparatus and method for analyzing communication messages using a circulatory neural network according to various embodiments of the present invention.
2 is a block diagram showing a configuration of an apparatus for analyzing a communication message according to various embodiments of the present disclosure.
3 is a conceptual diagram of stacking of predicted results according to various embodiments of the present disclosure.
4 is a conceptual diagram of a branch stacking method according to various embodiments of the present disclosure.
5 is an exemplary diagram for deletion of old prediction values according to various embodiments of the present disclosure.
6 is a conceptual diagram of a prediction branch level according to various embodiments of the present disclosure.
7 is an exemplary diagram for adjusting the size of a stem according to various embodiments of the present disclosure.
8 is a graph of prediction accuracy according to an embodiment of the present invention.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The technical idea of the present invention is that various changes may be made and various embodiments may be provided. Specific embodiments are illustrated in the drawings and will be described in detail through detailed description. However, this is not intended to limit the technical idea of the present invention to a specific embodiment, it should be understood to include all changes, equivalents, and substitutes included in the scope of the technical idea of the present invention.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 기술적 사상의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the technical idea of the present invention, when it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, numbers (eg, first, second, etc.) used in the description of the present specification are merely identification symbols for distinguishing one component from another component.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present specification, when one component is referred to as "connected" or "connected" to another component, the one component may be directly connected or directly connected to the other component, but specially It should be understood that as long as there is no opposing substrate, it may be connected or may be connected via another component in the middle.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processor), 어플리케이션 프로세서(Application Processor), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. In addition, terms such as "~ unit", "~ group", "~ character", and "~ module" described in the present specification mean a unit that processes at least one function or operation, which is a processor or microcomputer. Processor (Micro Processor), Application Processor (Application Processor), Micro Controller (Micro Controller), CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerate Processor Unit), DSP (Digital Signal Processor), ASIC ( Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), etc. may be implemented in hardware or software, or a combination of hardware and software.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, it is intended to clarify that the division of the constituent parts in the present specification is merely divided by the main function that each constituent part is responsible for. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more according to more subdivided functions. In addition, each of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to its own main function, and some of the main functions of each constituent unit are different. It goes without saying that it may be performed exclusively by.
이하, 본 발명의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.Hereinafter, embodiments according to the technical idea of the present invention will be sequentially described in detail.
도 1은 본 발명의 다양한 실시예에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법에 대한 개념도이다.1 is a conceptual diagram of an apparatus and method for analyzing communication messages using a circulatory neural network according to various embodiments of the present invention.
도 1을 참조하면, 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치(100)는 다양한 프로토콜을 따르는 통신 메시지들을 입력받을 수 있고, 입력된 통신 메시지들을 해석하여 출력할 수 있다. 특히, 본원 발명은 수신되는 통신 메시지에 대한 프로토콜 해석기 없이, 순환신경망 모델과 텍스트 마이닝 요소를 결합한 과정 및 구성을 통해, 수신된 통신 메시지에 대한 예측을 수행할 수 있고 통신 메시지를 해석할 수 있다.Referring to FIG. 1, the
구체적으로, 통신 메시지 해석 장치(100)는 복수의 기기들, 예를 들면 IoT 기기들로부터 전송되는 통신 메시지에 포함된, 복수의 입력 문자(letter)를 포함하는 스트림을 입력받을 수 있다. 통신 메시지 해석 장치(100)는 입력되는 스트림을 문자 단위로 입력받을 수 있다.Specifically, the communication
통신 메시지 해석 장치(100)는 입력 문자에 따라 예측되는 결과를 산출하고, 산출된 결과를 입력되는 스트림에 따른 문자들과 비교할 수 있다. 그리고 통신 메시지 해석 장치(100)는 비교 결과를 기초로 예측 결과와 입력된 문자들이 동일하면 예측 단어를 저장하고, 해석된 결과로 출력할 수 있다.The communication
통신 메시지 해석 장치(100)는 비교 결과를 기초로, 예측 단어와 입력된 문자들이 동일하지 않으면, 예측 결과는 스택(stack)에 저장하고, 동일하지 않은 지점에서부터 분기되는 새로운 예측 결과를 산출할 수 있다.The communication
통신 메시지 해석 장치(100)는 정의된 분기 예측 수준 내에서 상술한 과정을 반복할 수 있고, 이 과정을 통해 입력된 통신 메시지에 대한 프로토콜 해석기 없이, 통신 메시지를 해석할 수 있다. The communication
도 2는 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치(100)의 구성을 나타내는 블록도이다.2 is a block diagram showing the configuration of a communication
도 2를 참조하면, 메시지 해석 장치(100)는 프로세서(110) 및 메모리(130)를 포함할 수 있다. Referring to FIG. 2, the
프로세서(110)은 적어도 하나의 프로세서를 포함할 수 있다. The
프로세서(110)는 입력된 통신 메시지에 포함된 문자들에 대해 예측되는 결과를 산출할 수 있고, 산출된 예측 결과를 입력되는 문자들과 비교할 수 있다. 그리고 프로세서(110)는 예측 결과와 입력되는 문자와의 비교를 통해, 예측되는 결과에 대해, 입력되는 문자와 동일하지 않은 지점에서부터 분기되는 새로운 예측 결과를 산출할 수 있다.The
프로세서(110)는 예측 결과들을 스택(stack)에 저장할 수 있고, 설정된 기준에 따라 스택에 저장된 예측 결과를 삭제할 수 있다.The
프로세서(110)는 상술한 분기 예측의 수준인 최소 분기 예측 수준(minimum prediction fork level), 반복 예측 횟수를 계산하고 적용할 수 있다. The
프로세서(110)는 예측된 결과가 입력되는 문자와 일치하면, 일치하는 단어를 출력할 수 있다.When the predicted result matches an input character, the
메모리(130)는 상술한 통신 메시지 해석 장치(100)의 동작과 관련된 다양한 데이터를 저장할 수 있다. The
메모리(130)는 스토리지(storage)를 포함할 수 있다.The
통신 메시지 해석 장치(100)는 하나의 장치로 구현될 수 있고, 복수의 장치로도 구현될 수 있다. The
상술한 구성 이외에도, 통신 메시지 해석 장치(100)는 다양한 구성을 포함할 수 있다.In addition to the above-described configuration, the communication
통신 메시지 해석 장치(100)는 다양한 장치일 수 있다. 예를 들면, 통신 메시지 해석 장치(100)는 다양한 IoT 장치들로부터 데이터를 수신하는 장치일 수 있고, 서버일 수도 있다.The communication
설명의 용이함을 위해, 상술한 통신 메시지 해석 장치(100)에 대해, 이하 장치(100)로 설명하기로 한다. For ease of explanation, the above-described communication
이하, 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치 및 그 방법에 대해 자세히 설명한다.Hereinafter, an apparatus and method for analyzing a communication message according to various embodiments of the present invention will be described in detail.
본 발명의 기본이 되는 모델은 다 대 다(many-to-many) 방식의 순환신경망(Recurrent Neural Network)이다. The basic model of the present invention is a many-to-many recurrent neural network.
본 발명의 다양한 실시예에 따른 장치(100)는 통신 메시지에 대한 메시지순환데이터를 입력 문자(input letters)로 사용하여, 출력 문자(output letters)를 얻을 수 있다. 여기서 입력 문자는 byte나 ASCII와 같은 값을 사용할 수 있다.The
장치(100)는 입력 문자에 따라 예측한 결과를 스택(stack)에 저장할 수 있다.The
도 3을 참조하면, 장치(100)는 입력 문자에 따라 예측한 결과인 예측한 문자(letter)를 스택(stack)에 저장할 수 있다. Referring to FIG. 3, the
장치(100)는 저장된 예측 문자가 다음 입력 문자와 일치하는지 확인할 수 있다. 그리고 장치(100)는 저장된 예측 문자와 다음 입력 문자가 일치하면, 순차적으로 다음에 입력되는 문자와 일치하는지 확인할 수 있다.The
구체적인 일 실시예로, 장치(100)는 첫번째 문자로 예측된 예측 문자의 두번째 문자가, 입력된 두번째 문자와 일치하는지 확인할 수 있다. In a specific embodiment, the
장치(100)는 예측 문자와 다음 입력 문자가 일치하면, 순환신경망의 학습 과정을 진행할 수 있다.When the predicted character and the next input character match, the
장치(100)는 예측 문자와 다음 입력 문자가 일치하지 않으면, 해당 지점에서 분기를 나누어서 진행할 수 있다.If the predicted character and the next input character do not match, the
구체적으로, 장치(100)는 예측 문자와 다음 입력 문자가 일치하지 않으면, 해당 예측 문자를 다른 예측 문자로 갱신하거나 덮어쓰지 않고, 일치하지 않은 지점에서 분기를 나누어서 진행할 수 있다.Specifically, if the predicted character and the next input character do not match, the
도 4를 참조하면, 장치(100)는 예측 결과와 입력 문자의 비교를 통해, 동일하지 않으면 해당 분기에서 새로운 예측 결과를 적층할 수 있다.Referring to FIG. 4, the
예를 들어, 장치(100)는 두번째 입력 문자가 일치하지 않은 경우, 이전에 예측된 예측 문자를 스택에 남겨둔 상태로, 두번째 입력 문자를 통해 예측되는 새로운 예측 문자를 스택에 추가할 수 있다. 그래서 처음 분기가 나누어진 경우에는, 스택에는 총 2개의 예측 문자가 존재할 수 있다. 장치(100)는 분기가 나누어진 상태에서, 세번째 입력 문자를 2개의 예측 문자와 비교할 수 있고, 일치하는지 확인할 수 있다. 장치(100)는 스택에 저장된 예측 문자 중 입력되는 문자와 일치하는 예측 결과를 확인하면, 이에 해당하는 새로운 예측 결과를 만들어서 스택에 저장할 수 있다. 장치(100)는 스택에 저장된 예측 문자 중 입력되는 문자와 일치하는 예측 결과가 없으면, 해당 지점에서 분기를 추가할 수 있다. 장치(100)는 이와 같은 과정을 통해, 문자(letter)를 입력받아 단어(word)를 예측할 수 있다. 그리고 장치(100)는 단어(word)가 완성되면 미리 정의된 기호를 출력할 수 있고, 완성된 단어를 저장하고 스택에서 제거할 수 있다. 그리고 장치(100)는 새로운 예측을 진행할 수 있다.For example, if the second input characters do not match, the
일반적인 순환신경망 모델은 예측 결과와 다음 입력 데이터(input data)가 일치하지 않은 경우에는 모델 트레이닝 과정에서 학습이 충분히 이루어지지 않았다고 보거나, 테스트 데이터가 특이치(outlier)인 것으로 해석하였다. In a general circulatory neural network model, if the prediction result and the next input data did not match, it was considered that the training was not sufficiently performed during the model training process, or the test data were interpreted as outliers.
신뢰도가 높은 네트워크인 경우에는 상술한 일반적인 순환신경망 모델에 따른 해석으로도 효과적인 모델을 만들 수 있다. 하지만 IoT 네트워크처럼 신뢰도가 낮은 통신 환경, 다양한 프로토콜이 혼재되어 있는 상황에서 메시지의 구조를 모르는 경우에는 일반적인 순환신경망 모델로는 한계가 존재한다.In the case of a network with high reliability, an effective model can be created even by an analysis according to the general circulatory neural network model described above. However, when the structure of a message is unknown in a low-reliability communication environment such as an IoT network or a situation where various protocols are mixed, there is a limitation with a general cyclic neural network model.
예를 들면, 단어를 구성하는 문자들(letters)은 유사하지만 뜻이 전혀 관련 없는 단어도 잡음에 의해 추측될 수 있고, 프로토콜이 2개 이상인 경우에는 반드시 이를 해석해서 사용해야만 한다는 제약이 있다.For example, a word that has similar letters (letters) but has no meaning at all can be guessed by noise, and if there are two or more protocols, there is a limitation that it must be interpreted and used.
다양한 실시예에 따른 본 발명은, 예측 값이 입력 데이터와 일치하지 않아도, 예측 값을 분기 스택에 저장하여 분기마다 다음 스텝에서 예측을 반복 수행할 수 있고 입력 데이터와 비교할 수 있어서, 신뢰도가 낮은 통신 환경에서 발생하는 잡음이나 불필요한 정보들을 걸러낼 수 있다. According to various embodiments of the present invention, even if the predicted value does not match the input data, the predicted value can be stored in a branch stack to repeat the prediction in the next step for each quarter and compared with the input data. Noise or unnecessary information generated in the environment can be filtered out.
이와 같이, 본 발명은 분기 예측이라는 방법을 통해, 예측 가짓수를 늘릴 수 있고, 이후의 예측 값으로부터 분기 중 유용한 분기를 선택하는 과정을 포함할 수 있다. As described above, the present invention may increase the number of predicted gadgets through a method called branch prediction, and may include a process of selecting a useful branch among branches from a later predicted value.
한편, 본 발명은 순환신경망 모델에서, 스택에 저장되는 예측 결과들을 무한하게 저장하지 않으며, 저장한 예측 결과는 미리 정의된 예측 횟수 내에서 입력 데이터와의 정합성을 검토하고, 예측 횟수 내에서 입력 데이터와의 정합성이 확인되지 않으면 해당 예측 결과를 스택에서 삭제할 수 있다. 이에 따라 본 발명은 잡음으로 인해, 불필요한 예측 결과가 스택에 오래 남아 있는 것을 방지할 수 있다. Meanwhile, the present invention does not infinitely store the prediction results stored in the stack in the circulatory neural network model, and the stored prediction results are reviewed for consistency with input data within a predefined number of predictions, and input data within the number of predictions. If the match is not confirmed, the prediction result can be deleted from the stack. Accordingly, the present invention can prevent unnecessary prediction results from remaining in the stack for a long time due to noise.
구체적으로, 본 발명의 다양한 실시예에 따른 장치(100)는 스택에 저장된 예측 결과가 일정 횟수 이상 일치하지 않는 경우에는 해당 예측 결과를 버릴 수 있다. 예를 들면, 장치(100)는 네트워크의 통신 신뢰도에 따라, 스택에 저장된 예측 결과가 일정 횟수 이상 일치하지 않는 경우에는 해당 예측 결과를 버릴 수 있다. Specifically, the
다른 예로, 도 5에 도시된 것과 같이, 장치(100)는 스택에 저장된 시간, 예를 들면 대기 시간(waiting time)에 따라 예측 결과를 삭제할 수 있다. 이에 따라 장치(100)는 오래된 예측 값을 삭제할 수 있다.As another example, as illustrated in FIG. 5, the
본 발명은 상술한 구조를 통해 입력 문자(input letter)가 들어올 때마다 스택에 저장된 예측 결과와 비교하고, 일치하는 결과에 더해가는 방식으로 단어를 만들 수 있다. 그래서 본 발명은 통신 메시지를 전송하는 장치(예를 들면, IoT 장치)의 프로토콜이나 잡음에 상관없이, 사용자가 원하는 정보를 얻을 수 있다. 그리고 본 발명에서 예측되는 각 예측 결과들은 스택에 저장된 다른 예측 결과들에 영향을 미치지 않는 병렬 구조를 가질 수 있다. 그래서 본 발명은 모델 구성 요소를 GRU(Gated Recurrent Unit)이나 LSTM(Long-Short Term Memory)의 형태로 구성하더라도 스택의 형태를 지켜준다면 성능을 보장할 수 있다. 이는 본 발명에 따른 모델의 핵심 구성 요소가 비교적 단순한 메커니즘으로 구성되었기 때문이다.According to the present invention, each time an input letter comes in, a word can be created by comparing the prediction result stored in the stack and adding to the matching result through the above-described structure. Therefore, in the present invention, regardless of the protocol or noise of a device (eg, an IoT device) transmitting a communication message, the user can obtain desired information. In addition, each prediction result predicted in the present invention may have a parallel structure that does not affect other prediction results stored in the stack. Therefore, in the present invention, even if the model component is configured in the form of a GRU (Gated Recurrent Unit) or LSTM (Long-Short Term Memory), performance can be guaranteed if the form of the stack is maintained. This is because the core components of the model according to the present invention are composed of a relatively simple mechanism.
본 발명에 따른 해석 모델에서, 다중 스택이 발생하는 경우는 분기 예측이 일어날 때이다. 통신 메시지에는 다양한 키워드들이 존재할 수 있으며, 예측 값의 다양성을 보장하기 위해서는 분기의 수를 일정 수 이상 보장하여야 한다. 이에 따라 본 발명의 다양한 실시예에 따른 장치(100)는 분기가 일어나는 최소 수준을 정할 수 있다. 이를 최소 분기 예측 수준(minimum prediction fork level)이라고 할 수 있다. 최소 분기 예측 수준은 메시지의 해석을 통해 구축하는 키워드 사전 (keyword dictionary)의 크기와 관련 있을 수 있고, 키워드 사전은 키워드 사전은 본 발명에서 예측의 결과로 얻어낼 수 있는 단어들의 모음을 말한다. 키워드 사전은 본 발명에 따른 해석 모델을 학습시키기 전에 메시지에 잘 나타나고 의미를 가진 높은 키워드로 초기 사전을 구성하며, 학습 중에 발견된 키워드를 추가하여 사전의 크기가 가변적으로 변할 수 있다. 키워드 사전 안의 키워드들 중 전혀 다른 문자들(letters)로 구성된 단어도 있지만, 유사한 문자(letter)의 순서로 구성된 단어도 있을 수 있다. In the analysis model according to the present invention, the occurrence of multiple stacks is when branch prediction occurs. Various keywords can exist in the communication message, and the number of branches must be guaranteed over a certain number to ensure diversity of predicted values. Accordingly, the
한편, 순환신경망 모델의 특성상 입력이 전부 동일한 패턴을 가지지만 출력이 전혀 다른 값이 있다면 예측하기 어려운 문제가 있다. On the other hand, due to the characteristics of the circulatory neural network model, if all inputs have the same pattern but outputs have completely different values, it is difficult to predict.
예를 들면, contact', 'convert', 'confirm'과 같은 단어가 있는 경우, con이라는 입력(input)에 따라 예측 결과가 t, v, f로 출력될 수 있다. 이 경우, 장치(100)는 스택에 분기시킬 수 있는 가능성이 3가지가 된다. 그러므로, 장치(100)는 con이 입력되면, 이후 예측 값이 최소 3개의 분기를 가질 수 있도록 허용할 수 있다. 그래서, 상술한 t, v, f의 가능성을 본 발명에 따른 예측 모델이 모두 받아들일 수 있다.For example, when there are words such as contact','convert', and'confirm', prediction results may be output as t, v, and f according to an input of con. In this case, there are three possibilities that the
여기서 최소 분기 예측 수준의 결정은 예측 모델, 즉 본 발명에 따른 장치(100)에 입력되는 입력(input)에 따라 결정될 수 있다. 입력되는 연속 문자가 길수록 최소 분기 예측 수준을 줄어들 수 있고, 연속 문자가 짧을수록 최소 분기 예측 수준이 커질 수 있다. 여기서 최소 분기 예측 수준을 입력으로 사용하는 연속 문자를 어간(stem)이라고 정의할 수 있다.Here, the determination of the minimum branch prediction level may be determined according to a prediction model, that is, an input input to the
도 6을 참조하면, 장치(100)는 어간의 사이즈가 2인 경우의 분기 예측을 생성할 수 있다. 예를 들면, 장치(100)는 in을 어간으로 할 경우, 예측 결과가 c, I, d로 출력할 수 있고, 스택에 분기시킬 수 있다.Referring to FIG. 6, the
장치(100)는 분기 예측 수준으로부터 반복 예측 횟수를 산출할 수 있다. 예를 들면, 장치(100)는 아래 수학식 1을 이용하여, 반복 예측 횟수를 산출할 수 있다. 이를 통해, 장치(100)는 어간을 가지는 키워드를 반복 예측을 통해 충분히 도출할 수 있는 반복 예측 횟수를 계산할 수 있다.The
본 발명에 따른 수학식 1은 분기 예측 수준에 따라 키워드 사전에 포함된, 같은 어간을 가지는 키워드들을 90% 이상 얻을 수 있도록 보장할 수 있다. 어간의 크기는 분기 예측 횟수를 결정하는 결정자이다.
장치(100)는 수학식 1에 의해 분기 예측 수가 많아질 것으로 예상되면, 어간의 크기를 늘려서 적절한 수준의 분기 예측을 유지하도록 할 수 있다. When the number of branch predictions is expected to increase by
예를 들어 도 7을 참조하면, 장치(100)는 입력되는 연속 문자의 길이, 어간을 변경할 수 있다. 예를 들면, 장치(100)는 어간의 길이가 2인 경우에서 어간의 길이가 3인 경우로, 또는 반대로 어간 길이를 변경할 수 있다. 그리고 장치(100)는 변경에 따라, 설정된 어간 길이 각각에 대해 분기 예측을 수행할 수 있다. For example, referring to FIG. 7, the
분기 예측 수준을 줄이기 위해, 어간의 크기를 크게 설정하면 잡음에 대해 취약함이 발생할 수 있다. 예를 들면, 불안정한 IoT 통신 환경의 데이터를 수신하면, 어간의 길이보다 세밀하게 노이즈가 포함되어 있을 수 있어서, 본 발명의 예측 정확도가 떨어질 수 있다.In order to reduce the level of branch prediction, if the stem size is set to be large, vulnerability to noise may occur. For example, when data of an unstable IoT communication environment is received, noise may be contained more precisely than the length of a stem, and thus the prediction accuracy of the present invention may be degraded.
한편, 상술한 것과 같이, 장치(100)의 스택에 예측 결과를 유지하는 정도가 중요하다. 본 발명을 적용한 실험에 따르면, 스택에 유지되는 예측 결과는 네트워크(예를 들면, IoT 네트워크)의 통신 신뢰도에 따라 정의하는 것이 바람직하다. 실험 결과로는 1~3 스텝 (1스텝은 입력 문자(input letter) 하나에 예측 값이 한번 발생하는 단위) 사이에서, 스택 유지 수를 정하면 대부분의 잡음을 제거할 수 있었다. 만약 통신이 이루어지는 환경이 간섭이 자주 발생하거나, 동일 주파수 대역을 사용하는 센서나 전자기기가 많이 섞여 있는 경우에는 장치(100)의 스택에 대기하는 시간을 늘려주는 것이 바람직하다. 하지만 스택 유지 정도를 너무 길게 하면, 스택에 많은 예측 결과들이 쌓이게 된다. 이는 메모리적인 손실을 발생시키며, 새로운 입력 문자(input letter)를 매번 비교하도록 해서, 불필요한 컴퓨팅 파워를 소모하게 만든다. 따라서 본 발명의 장치(100)에 입력되는 통신 메시지의 통신 환경 알맞은 스택의 대기 시간을 정의하는 것이 중요할 수 있다.Meanwhile, as described above, the degree to which the prediction result is maintained in the stack of the
도 8을 참조하면, 본 발명의 장치(100)에 대한 분기 예측 수준에 따른 해석 모델의 예측 정확도에 대한 실험 결과를 확인할 수 있다. 해당 실험은 단어의 숫자를 100개로 정의하였다. 장치(100)의 분기 예측 수준을 1에서 10까지 적용해 볼 수 있도록 키워드 사전을 구성하여 실험한 결과, 분기 예측 수준이 높아져도 90% 이상의 정확도를 가지고 단어를 추출하였다는 결과를 얻을 수 있었다. 이에 따라, 키워드 사전에 분기 예측 수준이 높아지더라도, 본 발명은 효과적으로 통신 메시지의 키워드들을 검출할 수 있다는 것을 확인할 수 있다.Referring to FIG. 8, an experiment result of prediction accuracy of an analysis model according to a branch prediction level for the
본 발명은 복수의 프로토콜이 함께 사용되는 경우에도, 각 프로토콜에 대한 메시지 구조를 파악하지 않아도 통신이 가능한 장점이 있다. In the present invention, even when a plurality of protocols are used together, communication is possible without knowing a message structure for each protocol.
또한, 본 발명은 통신 메시지에서 원하는 정보 이외의 다른 정보를 제거할 수 있어서, 불필요한 정보, 불필요한 잡음을 제거할 수 있다. 여기서 불필요한 정보는 프로토콜의 구조가 가지고 있는 헤더 등을 의미할 수 있다. 이러한 불필요한 정보는 사용자가 원하는 결과가 아니며, 통신 메시지를 해석하는 것을 어렵게 할 수 있다. 따라서, 본 발명은 다른 프로토콜을 가지는 센서가 있더라도, 이에 대한 부가적인 해석 없이 필요한 정보를 얻을 수 있다. In addition, since the present invention can remove information other than desired information from a communication message, unnecessary information and unnecessary noise can be removed. In this case, unnecessary information may refer to a header of the protocol structure. Such unnecessary information is not a result desired by the user and may make it difficult to interpret the communication message. Accordingly, in the present invention, even if there is a sensor having a different protocol, necessary information can be obtained without additional interpretation.
이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.In the above, the technical idea of the present invention has been described in detail with reference to various embodiments, but the technical idea of the present invention is not limited to the above embodiments, and those of ordinary skill in the art within the scope of the technical idea of the present invention Various modifications and changes are possible by this.
Claims (16)
전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받는 단계;
상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하는 단계;
상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하는 단계;
상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하는 단계;
상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하는 단계; 및
상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하는 단계를 포함하는
통신 메시지 해석 방법.
In the communication message interpretation method performed by at least one processor,
Receiving a stream including a plurality of input characters included in the transmitted communication message;
Calculating a first prediction result that is a result predicted according to the first character of the stream;
Comparing the calculated first prediction result with a second character of the stream;
Based on the comparison result with the first prediction result, if the calculated first prediction result and the second character are not the same, a second prediction result branching from a point that is not identical is calculated, and the first prediction result is Storing in a first stack;
Comparing the calculated second prediction result with the second character; And
Based on the comparison result with the second prediction result, if the calculated second prediction result and the second character are not identical, a third prediction result branching from the non-identical point is calculated, and the second prediction result Storing as a second stack
How to interpret communication messages.
상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하는 단계를 더 포함하는
통신 메시지 해석 방법.
The method of claim 1,
If the first prediction result or the second prediction result is the same as the plurality of input characters, storing the same prediction result as a completed word.
How to interpret communication messages.
상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하는 단계를 더 포함하는
통신 메시지 해석 방법.
The method of claim 2,
Further comprising the step of deleting the stack of prediction results stored as the completed word
How to interpret communication messages.
상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하는 단계를 더 포함하는
통신 메시지 해석 방법.
The method of claim 1,
With respect to the prediction result calculated for the input character, if the number of stacks of a plurality of prediction results branched at the same point exceeds a reference value, deleting the excess number of stacks.
How to interpret communication messages.
상기 초과된 수의 스택을 삭제하는 단계는
상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하는 단계를 포함하는
통신 메시지 해석 방법.
The method of claim 4,
The step of deleting the excess number of stacks
Including the step of deleting the excess number of stacks based on a waiting time (waiting time) of the stacks of the plurality of prediction results
How to interpret communication messages.
상기 초과된 수의 스택을 삭제하는 단계는
상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하는 단계를 포함하는
통신 메시지 해석 방법.
The method of claim 4,
The step of deleting the excess number of stacks
Including the step of deleting the stack of the plurality of prediction results in which the comparison result with the input character does not match more than a predetermined number of times.
How to interpret communication messages.
상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하는 단계; 및
상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하는 단계를 더 포함하는
통신 메시지 해석 방법.
The method of claim 1,
Calculating a minimum branch prediction level for the number of prediction results branched at one point with respect to the prediction result predicted according to the input character; And
Based on the calculated minimum branch prediction level, the step of calculating a plurality of prediction results that are results predicted according to the input character
How to interpret communication messages.
상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하는 단계를 더 포함하는
통신 메시지 해석 방법.
The method of claim 7,
Using the calculated minimum branch prediction level, the step of adjusting the number of stems, which are consecutive characters used as inputs, is further included.
How to interpret communication messages.
상기 프로세서에 전기적으로 연결된 메모리를 포함하고,
상기 메모리는, 상기 프로세서가 실행 시에,
전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받고,
상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하고,
상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하고,
상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하고,
상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하고,
상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
At least one processor; And
Comprising a memory electrically connected to the processor,
The memory, when the processor is executed,
Receives a stream including a plurality of input characters included in the transmitted communication message,
Calculate a first prediction result that is a result predicted according to the first character of the stream,
Compare the calculated first prediction result with a second character of the stream,
Based on the comparison result with the first prediction result, if the calculated first prediction result and the second character are not the same, a second prediction result branching from a point that is not identical is calculated, and the first prediction result is Save as the first stack,
Comparing the calculated second prediction result with the second character,
Based on the comparison result with the second prediction result, if the calculated second prediction result and the second character are not identical, a third prediction result branching from the non-identical point is calculated, and the second prediction result To store instructions that cause it to be stored as a second stack
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 9,
The memory, when the processor is executed,
If the first prediction result or the second prediction result is the same as the plurality of input characters, storing instructions for storing the same prediction result as a completed word
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 10,
The memory, when the processor is executed,
Storing instructions for deleting the stack of prediction results stored in the completed word
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 9,
The memory, when the processor is executed,
For the prediction result calculated for the input character, if the number of stacks of a plurality of prediction results branched at the same point exceeds a reference value, storing instructions for deleting the excess number of stacks
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 12,
The memory, when the processor is executed,
Storing instructions for deleting the excess number of stacks based on a waiting time among the stacks of the plurality of prediction results
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 12,
The memory, when the processor is executed,
Storing instructions for deleting a stack in which the comparison result with the input character does not match more than a predetermined number of stacks of the plurality of prediction results
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하고,
상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 9,
The memory, when the processor is executed,
For the prediction result predicted according to the input character, a minimum branch prediction level is calculated for the number of prediction results branched at one point,
Storing instructions for calculating a plurality of prediction results, which are results predicted according to the input character, based on the calculated minimum branch prediction level.
Message interpretation device.
상기 메모리는, 상기 프로세서가 실행 시에,
상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하도록 하는 인스트럭션들을 저장하는
메시지 해석 장치.
The method of claim 15,
The memory, when the processor is executed,
Using the calculated minimum branch prediction level, storing instructions for adjusting the number of stems that are consecutive characters used as inputs
Message interpretation device.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180129185A KR102177741B1 (en) | 2018-10-26 | 2018-10-26 | Apparatus and method for interpreting communication message based on recurrent neural network and fork prediction |
PCT/KR2018/014463 WO2020085567A1 (en) | 2018-10-26 | 2018-11-22 | Apparatus for understanding communication message by using recurrent neural network, and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180129185A KR102177741B1 (en) | 2018-10-26 | 2018-10-26 | Apparatus and method for interpreting communication message based on recurrent neural network and fork prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200047124A KR20200047124A (en) | 2020-05-07 |
KR102177741B1 true KR102177741B1 (en) | 2020-11-11 |
Family
ID=70330627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180129185A KR102177741B1 (en) | 2018-10-26 | 2018-10-26 | Apparatus and method for interpreting communication message based on recurrent neural network and fork prediction |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102177741B1 (en) |
WO (1) | WO2020085567A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006181173A (en) | 2004-12-28 | 2006-07-13 | Konica Minolta Medical & Graphic Inc | Patient information sorting device and program |
US20080275837A1 (en) | 2007-05-01 | 2008-11-06 | Lambov Branimir Z | Method and system for approximate string matching |
KR100891358B1 (en) | 2005-10-20 | 2009-04-01 | (주)트루시스템 | System and its method for inputting character by predicting character sequence of user's next input |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4215418B2 (en) * | 2001-08-24 | 2009-01-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Word prediction method, speech recognition method, speech recognition apparatus and program using the method |
CN102027534B (en) * | 2008-05-16 | 2013-07-31 | 日本电气株式会社 | Language model score lookahead value imparting device and method for the same |
US9298274B2 (en) * | 2012-07-20 | 2016-03-29 | Microsoft Technology Licensing, Llc | String predictions from buffer |
KR101922795B1 (en) * | 2017-02-17 | 2019-02-20 | 박상준 | Apparatus and method for providing of IoT service |
-
2018
- 2018-10-26 KR KR1020180129185A patent/KR102177741B1/en active IP Right Grant
- 2018-11-22 WO PCT/KR2018/014463 patent/WO2020085567A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006181173A (en) | 2004-12-28 | 2006-07-13 | Konica Minolta Medical & Graphic Inc | Patient information sorting device and program |
KR100891358B1 (en) | 2005-10-20 | 2009-04-01 | (주)트루시스템 | System and its method for inputting character by predicting character sequence of user's next input |
US20080275837A1 (en) | 2007-05-01 | 2008-11-06 | Lambov Branimir Z | Method and system for approximate string matching |
Non-Patent Citations (1)
Title |
---|
방성혁 외, 순환신경망 기반의 사용자 의도 예측 모델, 정보과학회논문지 V.45 no.4 pp.360-369 (2018.04) |
Also Published As
Publication number | Publication date |
---|---|
WO2020085567A1 (en) | 2020-04-30 |
KR20200047124A (en) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754105B (en) | Prediction method, terminal and server | |
US10496924B1 (en) | Dictionary DGA detector model | |
EP3534283A1 (en) | Classification of source data by neural network processing | |
EP3534284A1 (en) | Classification of source data by neural network processing | |
US10268679B2 (en) | Joint language understanding and dialogue management using binary classification based on forward and backward recurrent neural network | |
US10846611B2 (en) | Data processing | |
US11694094B2 (en) | Inferring digital twins from captured data | |
US11379723B2 (en) | Method and apparatus for compressing neural network | |
US9177253B2 (en) | System and method for DFA-NFA splitting | |
CN112491643B (en) | Deep packet inspection method, device, equipment and storage medium | |
US10977313B2 (en) | Search method, computer-readable recording medium, and search device | |
CN112154420B (en) | Automatic intelligent cloud service testing tool | |
WO2019199769A1 (en) | Cyber chaff using spatial voting | |
CN112765324B (en) | Concept drift detection method and device | |
KR20210118073A (en) | Techniques for updating files | |
CN113726545B (en) | Network traffic generation method and device for generating countermeasure network based on knowledge enhancement | |
KR102177741B1 (en) | Apparatus and method for interpreting communication message based on recurrent neural network and fork prediction | |
WO2018135515A1 (en) | Information processing device, neural network design method, and recording medium | |
CN110601909A (en) | Network maintenance method and device, computer equipment and storage medium | |
US9197243B2 (en) | Compression ratio for a compression engine | |
CN114742035B (en) | Text processing method and network model training method based on attention mechanism optimization | |
CN114726823B (en) | Domain name generation method, device and equipment based on generation countermeasure network | |
US20190349390A1 (en) | Packet format inference apparatus and computer readable medium | |
US20220272125A1 (en) | Systems and methods for malicious url pattern detection | |
CN113792804A (en) | Training method of image recognition model, image recognition method, device and equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |