WO2020085567A1 - 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법 - Google Patents
순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법 Download PDFInfo
- Publication number
- WO2020085567A1 WO2020085567A1 PCT/KR2018/014463 KR2018014463W WO2020085567A1 WO 2020085567 A1 WO2020085567 A1 WO 2020085567A1 KR 2018014463 W KR2018014463 W KR 2018014463W WO 2020085567 A1 WO2020085567 A1 WO 2020085567A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- prediction
- prediction result
- result
- calculated
- character
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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
Definitions
- the technical idea of the present invention relates to an apparatus and method for analyzing a communication message using a circular neural network, and more particularly, to an apparatus for analyzing a communication message and a method for analyzing a communication message transmitted from various devices.
- each user application has a message structure defined for each program, so that messages written by each application can be transmitted and interpreted by different protocols.
- the receiving device or the central server system that receives the message must have a receiving unit written for each protocol, and the receiving application must also have a message interpreter for each protocol.
- An apparatus and method for analyzing a communication message using a circular neural network have an object to analyze communication messages of various protocols by combining a circular neural network model and a text mining model.
- an object of the present invention is to improve reliability of communication message interpretation by using fork prediction in a word prediction process.
- the present invention has an object to effectively remove noise in a communication message in a message reconstruction process.
- a message interpretation method of a communication message includes 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 the second character of the stream; Based on a result of comparison with the first prediction result, if the calculated first prediction result and the second character are not the same, a second prediction result that branches from an unequal point is calculated, and the first prediction result is calculated.
- the method may further include storing the same prediction result as a completed word.
- the method may further include deleting a stack of prediction results stored as the completed word.
- deleting the excess number of stacks may further include.
- deleting the stack of the excess number may include deleting the stack of the excess number based on a waiting time among stacks of the plurality of prediction results. have.
- the step of deleting the excess number of stacks may include deleting a stack in which the result of comparison with the input character among the stacks of the plurality of prediction results does not match more than a predetermined number of times.
- the method may further include adjusting the number of stems, which are continuous characters used as input.
- Message interpretation apparatus is at least one processor; And a memory electrically connected to the processor, the memory receiving a stream including a plurality of input characters, included in a transmitted communication message, when the processor is executing, according to the first character of the stream.
- the first prediction result which is the predicted result
- the calculated first prediction result is compared with the 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 that branches 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.
- the second may store instructions for to store second predicted results in the second stack.
- the memory when the processor executes, when 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 your instructions.
- the memory may store instructions that, when executed by the processor, delete a stack of prediction results stored as the completed word.
- the memory when executed by the processor, for a prediction result calculated for the input character, the number of stacks of a plurality of prediction results branched at the same point exceeds a reference value If you do, you can save instructions to delete the excess number of stacks.
- the memory may store instructions that, when executed, cause the excess number of stacks to be deleted based on a waiting time among stacks of the plurality of prediction results. have.
- the memory may store instructions that, when executed by the processor, deletes a stack in which the result of comparison with the input character among the stacks of the plurality of prediction results does not match more than a predetermined number of times.
- the memory when executed by the processor, calculates 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 the Based on the calculated minimum branch prediction level, instructions for calculating a plurality of prediction results that are prediction results according to the input character may be stored.
- the memory may store instructions that, when the processor is executing, use the calculated minimum branch prediction level to adjust the number of stems, which are consecutive characters used as input. have.
- a communication message analysis apparatus and method using a circular neural network may analyze a communication message of various protocols by combining a circular neural network model and a text mining model.
- the present invention can improve reliability of interpretation of a communication message by using fork prediction in a word prediction process.
- the present invention can effectively remove noise in a communication message in a message reconstruction process.
- FIG. 1 is a conceptual diagram of a communication message analysis apparatus and method using a circulatory neural network according to various embodiments of the present invention.
- FIG. 2 is a block diagram showing the configuration of a communication message analysis apparatus according to various embodiments of the present invention.
- 3 is a conceptual diagram for stacking predicted results according to various embodiments of the present invention.
- FIG. 4 is a conceptual diagram of a branch lamination method according to various embodiments of the present invention.
- 5 is an exemplary diagram of deletion of an old prediction value according to various embodiments of the present invention.
- FIG. 6 is a conceptual diagram for predicted branch level according to various embodiments of the present invention.
- FIG. 7 is an exemplary view for adjusting stem size according to various embodiments of the present invention.
- one component when one component is referred to as “connected” or “connected” with another component, the one component may be directly connected to the other component, or may be directly connected, but in particular, It should be understood that, as long as there is no objection to the contrary, it may or may be connected via another component in the middle.
- ⁇ unit means a unit that processes at least one function or operation, which is a processor or microprocessor.
- 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 ASIC
- FPGA application specific integrated circuit
- FPGA field programmable gate array
- each of the components to be described below may additionally perform some or all of the functions of other components in addition to the main functions in charge of the components, and some of the main functions of each of the components are different. Needless to say, it may also be carried out in a dedicated manner.
- FIG. 1 is a conceptual diagram of a communication message analysis apparatus and method using a circulatory neural network according to various embodiments of the present invention.
- the apparatus 100 for interpreting communication messages may receive communication messages conforming to various protocols, and interpret and output the input communication messages.
- the present invention can perform prediction on the received communication message and interpret the communication message through a process and configuration that combines a cyclic neural network model and a text mining element without a protocol interpreter for the received communication message.
- the communication message analysis apparatus 100 may receive a stream including a plurality of input characters, which are included in a communication message transmitted from a plurality of devices, for example, IoT devices.
- the communication message analysis apparatus 100 may receive an input stream in units of characters.
- the communication message analysis apparatus 100 may calculate a predicted result according to an input character, and compare the calculated result with characters according to an input stream. In addition, if the prediction result and the input characters are the same based on the comparison result, the communication message analysis apparatus 100 may store the prediction word and output the result as the analyzed result.
- the communication message analysis apparatus 100 may store a prediction result in a stack and calculate a new prediction result branching from an unequal point if the prediction word and the input characters are not the same. have.
- the communication message analysis apparatus 100 may repeat the above-described process within the defined branch prediction level, and may interpret the communication message without a protocol interpreter for the communication message input through this process.
- FIG. 2 is a block diagram showing the configuration of a communication message analysis apparatus 100 according to various embodiments of the present invention.
- the message interpretation device 100 may include a processor 110 and a memory 130.
- the processor 110 may include at least one processor.
- the processor 110 may calculate a predicted result for characters included in the input communication message, and compare the calculated predicted result with input characters. In addition, the processor 110 may calculate a new prediction result that branches from a point that is not the same as the input character, for the predicted result, by comparing the prediction result with the input character.
- the processor 110 may store prediction results in a stack and delete prediction results stored in the stack according to a set criterion.
- the processor 110 may calculate and apply the minimum prediction fork level and the number of iterative predictions, which are the levels of the branch prediction described above.
- the processor 110 may output a matching word.
- the memory 130 may store various data related to the operation of the communication message analysis device 100 described above.
- the memory 130 may include storage.
- the communication message interpretation device 100 may be implemented as a single device, or may be implemented as a plurality of devices.
- the communication message analysis device 100 may include various configurations.
- the communication message analysis device 100 may be various devices.
- the communication message analysis device 100 may be a device that receives data from various IoT devices or may be a server.
- the basic model of the present invention is a many-to-many recurrent neural network.
- the apparatus 100 may obtain output letters by using message circulation data for communication messages as input letters.
- the input character can use a value such as byte or ASCII.
- the device 100 may store the predicted result according to the input character in a stack.
- the device 100 may store a predicted letter, which is a result predicted according to an input letter, in a stack.
- the device 100 may check whether the stored prediction character matches the next input character. In addition, when the stored prediction character and the next input character match, the apparatus 100 may sequentially check whether it matches the next input character.
- the device 100 may check whether the second character of the predicted character predicted as the first character matches the input second character.
- the apparatus 100 may progress the learning process of the circulatory neural network.
- the apparatus 100 may divide the branch at the corresponding point and proceed.
- the apparatus 100 may divide the branch at a point that does not match, without updating or overwriting the corresponding prediction character.
- the apparatus 100 may stack new prediction results at a corresponding branch if they are not the same, by comparing the prediction results with input characters.
- the apparatus 100 may add a new predicted character predicted through the second input character to the stack while the previously predicted predicted character is left on the stack. So, when the first branch is divided, there can be a total of two prediction characters on the stack.
- the device 100 may compare the third input character with the two predicted characters in a state in which the branch is divided, and check whether they match.
- the apparatus 100 may create a new prediction result corresponding to the prediction result and store it in the stack. If there is no prediction result matching the input character among the prediction characters stored in the stack, the apparatus 100 may add a branch at the corresponding point. Through this process, the device 100 may receive a letter and predict a word.
- the device 100 may output a predefined symbol, and the completed word may be stored and removed from the stack. In addition, the device 100 may make new predictions.
- the model training process is considered to be insufficient or the test data is interpreted as an outlier.
- an effective model can also be created by the analysis according to the general circular neural network model described above.
- a general circulatory neural network model In the case of a highly reliable network, an effective model can also be created by the analysis according to the general circular neural network model described above.
- a general circulatory neural network model if the structure of a message is not known in a communication environment with low reliability such as an IoT network and various protocols are mixed, there is a limitation as a general circulatory neural network model.
- the words that make up the word are similar, but words that have no meaning at all can be guessed by noise, and when there are two or more protocols, there is a restriction that it must be interpreted and used.
- the predicted value can be stored in the branch stack to perform prediction repeatedly in the next step for each quarter and compared with the input data, so communication with low reliability It can filter out noise or unnecessary information generated in the environment.
- the present invention may increase the number of prediction gadgets through a method called branch prediction, and may include a process of selecting a useful branch among branches from subsequent prediction values.
- the present invention does not infinitely store the prediction results stored in the stack in the cyclic neural network model, and the stored prediction results are reviewed for consistency with input data within a predefined prediction number, and input data within the prediction number If the consistency with is not confirmed, the prediction result can be deleted from the stack. Accordingly, the present invention can prevent unnecessary prediction results from remaining on the stack for a long time due to noise.
- the apparatus 100 may discard the prediction result when the prediction result stored in the stack does not match more than a predetermined number of times. For example, if the prediction result stored in the stack does not match more than a predetermined number of times according to the communication reliability of the network, the device 100 may discard the prediction result.
- the device 100 may delete the prediction result according to a time stored in the stack, for example, a waiting time. Accordingly, the device 100 may delete the old prediction value.
- a word can be made by comparing the prediction result stored in the stack every time an input letter is entered through the above-described structure and adding the result to the match. Therefore, the present invention can obtain information desired by a user regardless of protocol or noise of a device (for example, an IoT device) transmitting a communication message.
- 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, the present invention can guarantee performance even if the model components are configured in the form of GRU (Gated Recurrent Unit) or LSTM (Long-Short Term Memory). This is because the core components of the model according to the present invention consist of a relatively simple mechanism.
- the apparatus 100 may determine a minimum level at which branching occurs. This can be referred to as a minimum prediction fork level.
- the minimum branch prediction level may be related to the size of a keyword dictionary constructed through the interpretation of the message, and the keyword dictionary refers to a collection of words that can be obtained as a result of prediction in the present invention.
- the keyword dictionary constitutes the initial dictionary with high keywords that appear well in the message and have meaning before training the interpretation model according to the present invention, and the size of the dictionary can be variably changed by adding keywords found during training.
- Some of the keywords in the keyword dictionary consist of completely different letters, but there may be words composed of a sequence of similar letters.
- prediction results may be output as t, v, and f according to an input of con.
- the device 100 may allow the prediction value to have at least three branches after con is input.
- the determination of the minimum branch prediction level may be determined according to a prediction model, that is, an input input to the apparatus 100 according to the present invention.
- a prediction model that is, an input input to the apparatus 100 according to the present invention.
- the continuous character using the minimum branch prediction level as input can be defined as a stem.
- the apparatus 100 may generate branch prediction when the stem size is 2. For example, when in is a stem, the device 100 may output prediction results as c, I, and d, and branch the stack.
- the apparatus 100 may calculate the number of iterative predictions from the branch prediction level. For example, the apparatus 100 may calculate the number of iteration predictions using Equation 1 below. Through this, the device 100 may calculate the number of iteration predictions that can sufficiently derive keywords having stems through iterative prediction.
- Equation 1 can ensure that at least 90% of keywords having the same stem, included in the keyword dictionary, can be obtained according to the branch prediction level.
- the size of the stem is a determinant that determines the number of branch predictions.
- the apparatus 100 may increase the size of the stem to maintain an appropriate level of branch predictions.
- the device 100 may change the length and stem of the input continuous characters.
- the apparatus 100 may change the stem length from the case where the stem length is 2 to the case where the stem length is 3, or vice versa. And, according to the change, the apparatus 100 may perform branch prediction for each set stem length.
- the size of the stem is set large, vulnerability to noise may occur. For example, when data of an unstable IoT communication environment is received, noise may be included in finer detail than the length of the stem, and the prediction accuracy of the present invention may be deteriorated.
- FIG. 8 it is possible to confirm an experimental result for prediction accuracy of an analysis model according to a branch prediction level for the apparatus 100 of the present invention.
- the experiment defined the number of words as 100.
- the branch prediction level of the device 100 can be applied from 1 to 10
- the present invention can remove information other than desired information from the communication message, thereby eliminating unnecessary information and unnecessary noise.
- unnecessary information may mean a header or the like of the protocol structure. This unnecessary information is not the result desired by the user, and may make it difficult to interpret the communication message. Therefore, the present invention can obtain necessary information without additional interpretation of this even if there are sensors having different protocols.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명의 기술적 사상에 의한 일 양태에 따른 통신 메시지의 메시지 해석 방법은, 전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받는 단계; 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하는 단계; 산출된 제1 예측 결과를 스트림의 두번째 문자와 비교하는 단계; 제1 예측 결과와의 비교 결과를 기초로, 산출된 제1 예측 결과와 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 제1 예측 결과를 제1 스택(stack)으로 저장하는 단계; 산출된 제2 예측 결과를 두번째 문자와 비교하는 단계; 및 제2 예측 결과와의 비교 결과를 기초로, 산출된 제2 예측 결과와 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 제2 예측 결과를 제2 스택으로 저장하는 단계를 포함할 수 있다.
Description
본 발명의 기술적 사상은 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법에 관한 것으로, 보다 상세하게는, 다양한 장치들로부터 전송되는 통신 메시지를 해석하는 통신 메시지 해석 장치 및 그 방법에 관한 것이다.
IoT(Internet of Things) 환경에서는 다양한 사용자 어플리케이션과 통신 프로토콜이 사용된다.
그리고 각각의 사용자 어플리케이션은 프로그램마다 정의된 메시지 구성(structure)을 가져서, 각 어플리케이션이 작성한 메시지는 서로 다른 프로토콜에 의해 전송되고 해석될 수 있다.
그래서 메시지를 수신하는 수신 측 장치 또는 중앙 서버 시스템은 각 프로토콜마다 작성된 수신부를 갖추고, 수신 측 어플리케이션도 각 프로토콜에 맞는 메시지 해석기를 갖춰야 한다.
서로 다른 어플리케이션과 프로토콜을 위해, 개발자는 각 어플리케이션과 프로토콜에서 정의한 규정을 해석해야 하며 해석된 결과를 바탕으로 다양한 수의 수신측 혹은 송신측 소프트웨어 모듈을 제작하여야 한다. 이는 IoT 환경과 같이 매우 다양한 디바이스들이 존재하는 상황에서 매우 큰 부담으로 작용한다.
한편, IoT에 대한 관심이 증가하면서 IoT 산업의 규모는 점차 커지고 있으며, 실생활에서 IoT가 접목된 제품 또는 센서를 쉽게 찾아볼 수 있게 되었다.
그리고 IoT 장치 또는 센서의 수가 증가함에 따라 데이터 해석을 위한 프로세스는 점차 복잡해지고 있으며, 위에서 말한 프로토콜 간 해석 문제는 오히려 증가하고 있다.
본 발명의 기술적 사상에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법은, 순환신경망 모델과 텍스트 마이닝 모델을 결합하여 다양한 프로토콜의 통신 메시지를 해석하는데 목적이 있다.
또한, 본 발명은 단어 예측 과정에서 분기 예측(fork prediction)을 이용하여 통신 메시지 해석의 신뢰성을 향상시키는데 목적이 있다.
또한, 본 발명은 메시지 재구성 과정에서, 통신 메시지 내의 잡음을 효과적으로 제거하는데 목적이 있다.
본 발명의 기술적 사상에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 기술적 사상에 의한 일 양태에 따른 통신 메시지의 메시지 해석 방법은 전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받는 단계; 상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하는 단계; 상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하는 단계; 상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하는 단계; 상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하는 단계; 및 상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 초과된 수의 스택을 삭제하는 단계는 상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 초과된 수의 스택을 삭제하는 단계는 상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하는 단계; 및 상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하는 단계를 더 포함할 수 있다.
본 발명의 기술적 사상에 의한 다른 양태에 따른 메시지 해석 장치는 적어도 하나의 프로세서; 및 상기 프로세서에 전기적으로 연결된 메모리를 포함하고, 상기 메모리는, 상기 프로세서가 실행 시에, 전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받고, 상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하고, 상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하고, 상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하고, 상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하고, 상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하고, 상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하도록 하는 인스트럭션들을 저장할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 프로세서가 실행 시에, 상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하도록 하는 인스트럭션들을 저장할 수 있다.
본 발명의 기술적 사상에 의한 실시예들에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법은 순환신경망 모델과 텍스트 마이닝 모델을 결합하여 다양한 프로토콜의 통신 메시지를 해석할 수 있다.
본 발명은 단어 예측 과정에서 분기 예측(fork prediction)을 이용하여 통신 메시지 해석의 신뢰성을 향상시킬 수 있다.
또한, 본 발명은 메시지 재구성 과정에서, 통신 메시지 내의 잡음을 효과적으로 제거할 수 있다.
본 발명의 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 다양한 실시예에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법에 대한 개념도이다.
도 2는 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 예측된 결과의 적층에 대한 개념도이다.
도 4는 본 발명의 다양한 실시예에 따른 분기 적층 방법에 대한 개념도이다.
도 5는 본 발명의 다양한 실시예에 따른 오래된 예측 값의 삭제에 대한 예시도이다.
도 6은 본 발명의 다양한 실시예에 따른 예측 분기 레벨에 대한 개념도이다.
도 7은 본 발명의 다양한 실시예에 따른 어간 크기 조절에 대한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 예측 정확도에 대한 그래프이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 기술적 사상의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(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) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.
도 1은 본 발명의 다양한 실시예에 따른 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법에 대한 개념도이다.
도 1을 참조하면, 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치(100)는 다양한 프로토콜을 따르는 통신 메시지들을 입력받을 수 있고, 입력된 통신 메시지들을 해석하여 출력할 수 있다. 특히, 본원 발명은 수신되는 통신 메시지에 대한 프로토콜 해석기 없이, 순환신경망 모델과 텍스트 마이닝 요소를 결합한 과정 및 구성을 통해, 수신된 통신 메시지에 대한 예측을 수행할 수 있고 통신 메시지를 해석할 수 있다.
구체적으로, 통신 메시지 해석 장치(100)는 복수의 기기들, 예를 들면 IoT 기기들로부터 전송되는 통신 메시지에 포함된, 복수의 입력 문자(letter)를 포함하는 스트림을 입력받을 수 있다. 통신 메시지 해석 장치(100)는 입력되는 스트림을 문자 단위로 입력받을 수 있다.
통신 메시지 해석 장치(100)는 입력 문자에 따라 예측되는 결과를 산출하고, 산출된 결과를 입력되는 스트림에 따른 문자들과 비교할 수 있다. 그리고 통신 메시지 해석 장치(100)는 비교 결과를 기초로 예측 결과와 입력된 문자들이 동일하면 예측 단어를 저장하고, 해석된 결과로 출력할 수 있다.
통신 메시지 해석 장치(100)는 비교 결과를 기초로, 예측 단어와 입력된 문자들이 동일하지 않으면, 예측 결과는 스택(stack)에 저장하고, 동일하지 않은 지점에서부터 분기되는 새로운 예측 결과를 산출할 수 있다.
통신 메시지 해석 장치(100)는 정의된 분기 예측 수준 내에서 상술한 과정을 반복할 수 있고, 이 과정을 통해 입력된 통신 메시지에 대한 프로토콜 해석기 없이, 통신 메시지를 해석할 수 있다.
도 2는 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치(100)의 구성을 나타내는 블록도이다.
도 2를 참조하면, 메시지 해석 장치(100)는 프로세서(110) 및 메모리(130)를 포함할 수 있다.
프로세서(110)은 적어도 하나의 프로세서를 포함할 수 있다.
프로세서(110)는 입력된 통신 메시지에 포함된 문자들에 대해 예측되는 결과를 산출할 수 있고, 산출된 예측 결과를 입력되는 문자들과 비교할 수 있다. 그리고 프로세서(110)는 예측 결과와 입력되는 문자와의 비교를 통해, 예측되는 결과에 대해, 입력되는 문자와 동일하지 않은 지점에서부터 분기되는 새로운 예측 결과를 산출할 수 있다.
프로세서(110)는 예측 결과들을 스택(stack)에 저장할 수 있고, 설정된 기준에 따라 스택에 저장된 예측 결과를 삭제할 수 있다.
프로세서(110)는 상술한 분기 예측의 수준인 최소 분기 예측 수준(minimum prediction fork level), 반복 예측 횟수를 계산하고 적용할 수 있다.
프로세서(110)는 예측된 결과가 입력되는 문자와 일치하면, 일치하는 단어를 출력할 수 있다.
메모리(130)는 상술한 통신 메시지 해석 장치(100)의 동작과 관련된 다양한 데이터를 저장할 수 있다.
메모리(130)는 스토리지(storage)를 포함할 수 있다.
통신 메시지 해석 장치(100)는 하나의 장치로 구현될 수 있고, 복수의 장치로도 구현될 수 있다.
상술한 구성 이외에도, 통신 메시지 해석 장치(100)는 다양한 구성을 포함할 수 있다.
통신 메시지 해석 장치(100)는 다양한 장치일 수 있다. 예를 들면, 통신 메시지 해석 장치(100)는 다양한 IoT 장치들로부터 데이터를 수신하는 장치일 수 있고, 서버일 수도 있다.
설명의 용이함을 위해, 상술한 통신 메시지 해석 장치(100)에 대해, 이하 장치(100)로 설명하기로 한다.
이하, 본 발명의 다양한 실시예에 따른 통신 메시지 해석 장치 및 그 방법에 대해 자세히 설명한다.
본 발명의 기본이 되는 모델은 다 대 다(many-to-many) 방식의 순환신경망(Recurrent Neural Network)이다.
본 발명의 다양한 실시예에 따른 장치(100)는 통신 메시지에 대한 메시지순환데이터를 입력 문자(input letters)로 사용하여, 출력 문자(output letters)를 얻을 수 있다. 여기서 입력 문자는 byte나 ASCII와 같은 값을 사용할 수 있다.
장치(100)는 입력 문자에 따라 예측한 결과를 스택(stack)에 저장할 수 있다.
도 3을 참조하면, 장치(100)는 입력 문자에 따라 예측한 결과인 예측한 문자(letter)를 스택(stack)에 저장할 수 있다.
장치(100)는 저장된 예측 문자가 다음 입력 문자와 일치하는지 확인할 수 있다. 그리고 장치(100)는 저장된 예측 문자와 다음 입력 문자가 일치하면, 순차적으로 다음에 입력되는 문자와 일치하는지 확인할 수 있다.
구체적인 일 실시예로, 장치(100)는 첫번째 문자로 예측된 예측 문자의 두번째 문자가, 입력된 두번째 문자와 일치하는지 확인할 수 있다.
장치(100)는 예측 문자와 다음 입력 문자가 일치하면, 순환신경망의 학습 과정을 진행할 수 있다.
장치(100)는 예측 문자와 다음 입력 문자가 일치하지 않으면, 해당 지점에서 분기를 나누어서 진행할 수 있다.
구체적으로, 장치(100)는 예측 문자와 다음 입력 문자가 일치하지 않으면, 해당 예측 문자를 다른 예측 문자로 갱신하거나 덮어쓰지 않고, 일치하지 않은 지점에서 분기를 나누어서 진행할 수 있다.
도 4를 참조하면, 장치(100)는 예측 결과와 입력 문자의 비교를 통해, 동일하지 않으면 해당 분기에서 새로운 예측 결과를 적층할 수 있다.
예를 들어, 장치(100)는 두번째 입력 문자가 일치하지 않은 경우, 이전에 예측된 예측 문자를 스택에 남겨둔 상태로, 두번째 입력 문자를 통해 예측되는 새로운 예측 문자를 스택에 추가할 수 있다. 그래서 처음 분기가 나누어진 경우에는, 스택에는 총 2개의 예측 문자가 존재할 수 있다. 장치(100)는 분기가 나누어진 상태에서, 세번째 입력 문자를 2개의 예측 문자와 비교할 수 있고, 일치하는지 확인할 수 있다. 장치(100)는 스택에 저장된 예측 문자 중 입력되는 문자와 일치하는 예측 결과를 확인하면, 이에 해당하는 새로운 예측 결과를 만들어서 스택에 저장할 수 있다. 장치(100)는 스택에 저장된 예측 문자 중 입력되는 문자와 일치하는 예측 결과가 없으면, 해당 지점에서 분기를 추가할 수 있다. 장치(100)는 이와 같은 과정을 통해, 문자(letter)를 입력받아 단어(word)를 예측할 수 있다. 그리고 장치(100)는 단어(word)가 완성되면 미리 정의된 기호를 출력할 수 있고, 완성된 단어를 저장하고 스택에서 제거할 수 있다. 그리고 장치(100)는 새로운 예측을 진행할 수 있다.
일반적인 순환신경망 모델은 예측 결과와 다음 입력 데이터(input data)가 일치하지 않은 경우에는 모델 트레이닝 과정에서 학습이 충분히 이루어지지 않았다고 보거나, 테스트 데이터가 특이치(outlier)인 것으로 해석하였다.
신뢰도가 높은 네트워크인 경우에는 상술한 일반적인 순환신경망 모델에 따른 해석으로도 효과적인 모델을 만들 수 있다. 하지만 IoT 네트워크처럼 신뢰도가 낮은 통신 환경, 다양한 프로토콜이 혼재되어 있는 상황에서 메시지의 구조를 모르는 경우에는 일반적인 순환신경망 모델로는 한계가 존재한다.
예를 들면, 단어를 구성하는 문자들(letters)은 유사하지만 뜻이 전혀 관련 없는 단어도 잡음에 의해 추측될 수 있고, 프로토콜이 2개 이상인 경우에는 반드시 이를 해석해서 사용해야만 한다는 제약이 있다.
다양한 실시예에 따른 본 발명은, 예측 값이 입력 데이터와 일치하지 않아도, 예측 값을 분기 스택에 저장하여 분기마다 다음 스텝에서 예측을 반복 수행할 수 있고 입력 데이터와 비교할 수 있어서, 신뢰도가 낮은 통신 환경에서 발생하는 잡음이나 불필요한 정보들을 걸러낼 수 있다.
이와 같이, 본 발명은 분기 예측이라는 방법을 통해, 예측 가짓수를 늘릴 수 있고, 이후의 예측 값으로부터 분기 중 유용한 분기를 선택하는 과정을 포함할 수 있다.
한편, 본 발명은 순환신경망 모델에서, 스택에 저장되는 예측 결과들을 무한하게 저장하지 않으며, 저장한 예측 결과는 미리 정의된 예측 횟수 내에서 입력 데이터와의 정합성을 검토하고, 예측 횟수 내에서 입력 데이터와의 정합성이 확인되지 않으면 해당 예측 결과를 스택에서 삭제할 수 있다. 이에 따라 본 발명은 잡음으로 인해, 불필요한 예측 결과가 스택에 오래 남아 있는 것을 방지할 수 있다.
구체적으로, 본 발명의 다양한 실시예에 따른 장치(100)는 스택에 저장된 예측 결과가 일정 횟수 이상 일치하지 않는 경우에는 해당 예측 결과를 버릴 수 있다. 예를 들면, 장치(100)는 네트워크의 통신 신뢰도에 따라, 스택에 저장된 예측 결과가 일정 횟수 이상 일치하지 않는 경우에는 해당 예측 결과를 버릴 수 있다.
다른 예로, 도 5에 도시된 것과 같이, 장치(100)는 스택에 저장된 시간, 예를 들면 대기 시간(waiting time)에 따라 예측 결과를 삭제할 수 있다. 이에 따라 장치(100)는 오래된 예측 값을 삭제할 수 있다.
본 발명은 상술한 구조를 통해 입력 문자(input letter)가 들어올 때마다 스택에 저장된 예측 결과와 비교하고, 일치하는 결과에 더해가는 방식으로 단어를 만들 수 있다. 그래서 본 발명은 통신 메시지를 전송하는 장치(예를 들면, IoT 장치)의 프로토콜이나 잡음에 상관없이, 사용자가 원하는 정보를 얻을 수 있다. 그리고 본 발명에서 예측되는 각 예측 결과들은 스택에 저장된 다른 예측 결과들에 영향을 미치지 않는 병렬 구조를 가질 수 있다. 그래서 본 발명은 모델 구성 요소를 GRU(Gated Recurrent Unit)이나 LSTM(Long-Short Term Memory)의 형태로 구성하더라도 스택의 형태를 지켜준다면 성능을 보장할 수 있다. 이는 본 발명에 따른 모델의 핵심 구성 요소가 비교적 단순한 메커니즘으로 구성되었기 때문이다.
본 발명에 따른 해석 모델에서, 다중 스택이 발생하는 경우는 분기 예측이 일어날 때이다. 통신 메시지에는 다양한 키워드들이 존재할 수 있으며, 예측 값의 다양성을 보장하기 위해서는 분기의 수를 일정 수 이상 보장하여야 한다. 이에 따라 본 발명의 다양한 실시예에 따른 장치(100)는 분기가 일어나는 최소 수준을 정할 수 있다. 이를 최소 분기 예측 수준(minimum prediction fork level)이라고 할 수 있다. 최소 분기 예측 수준은 메시지의 해석을 통해 구축하는 키워드 사전 (keyword dictionary)의 크기와 관련 있을 수 있고, 키워드 사전은 키워드 사전은 본 발명에서 예측의 결과로 얻어낼 수 있는 단어들의 모음을 말한다. 키워드 사전은 본 발명에 따른 해석 모델을 학습시키기 전에 메시지에 잘 나타나고 의미를 가진 높은 키워드로 초기 사전을 구성하며, 학습 중에 발견된 키워드를 추가하여 사전의 크기가 가변적으로 변할 수 있다. 키워드 사전 안의 키워드들 중 전혀 다른 문자들(letters)로 구성된 단어도 있지만, 유사한 문자(letter)의 순서로 구성된 단어도 있을 수 있다.
한편, 순환신경망 모델의 특성상 입력이 전부 동일한 패턴을 가지지만 출력이 전혀 다른 값이 있다면 예측하기 어려운 문제가 있다.
예를 들면, 'contact', 'convert', 'confirm'과 같은 단어가 있는 경우, con이라는 입력(input)에 따라 예측 결과가 t, v, f로 출력될 수 있다. 이 경우, 장치(100)는 스택에 분기시킬 수 있는 가능성이 3가지가 된다. 그러므로, 장치(100)는 con이 입력되면, 이후 예측 값이 최소 3개의 분기를 가질 수 있도록 허용할 수 있다. 그래서, 상술한 t, v, f의 가능성을 본 발명에 따른 예측 모델이 모두 받아들일 수 있다.
여기서 최소 분기 예측 수준의 결정은 예측 모델, 즉 본 발명에 따른 장치(100)에 입력되는 입력(input)에 따라 결정될 수 있다. 입력되는 연속 문자가 길수록 최소 분기 예측 수준은 줄어들 수 있고, 연속 문자가 짧을수록 최소 분기 예측 수준은 커질 수 있다. 여기서 최소 분기 예측 수준을 입력으로 사용하는 연속 문자를 어간(stem)이라고 정의할 수 있다.
도 6을 참조하면, 장치(100)는 어간의 사이즈가 2인 경우의 분기 예측을 생성할 수 있다. 예를 들면, 장치(100)는 in을 어간으로 할 경우, 예측 결과를 c, I, d로 출력할 수 있고, 스택에 분기시킬 수 있다.
장치(100)는 분기 예측 수준으로부터 반복 예측 횟수를 산출할 수 있다. 예를 들면, 장치(100)는 아래 수학식 1을 이용하여, 반복 예측 횟수를 산출할 수 있다. 이를 통해, 장치(100)는 어간을 가지는 키워드를 반복 예측을 통해 충분히 도출할 수 있는 반복 예측 횟수를 계산할 수 있다.
본 발명에 따른 수학식 1은 분기 예측 수준에 따라 키워드 사전에 포함된, 같은 어간을 가지는 키워드들을 90% 이상 얻을 수 있도록 보장할 수 있다. 어간의 크기는 분기 예측 횟수를 결정하는 결정자이다.
장치(100)는 수학식 1에 의해 분기 예측 수가 많아질 것으로 예상되면, 어간의 크기를 늘려서 적절한 수준의 분기 예측을 유지하도록 할 수 있다.
예를 들어 도 7을 참조하면, 장치(100)는 입력되는 연속 문자의 길이, 어간을 변경할 수 있다. 예를 들면, 장치(100)는 어간의 길이가 2인 경우에서 어간의 길이가 3인 경우로, 또는 반대로 어간 길이를 변경할 수 있다. 그리고 장치(100)는 변경에 따라, 설정된 어간 길이 각각에 대해 분기 예측을 수행할 수 있다.
분기 예측 수준을 줄이기 위해, 어간의 크기를 크게 설정하면 잡음에 대해 취약함이 발생할 수 있다. 예를 들면, 불안정한 IoT 통신 환경의 데이터를 수신하면, 어간의 길이보다 세밀하게 노이즈가 포함되어 있을 수 있어서, 본 발명의 예측 정확도가 떨어질 수 있다.
한편, 상술한 것과 같이, 장치(100)의 스택에 예측 결과를 유지하는 정도가 중요하다. 본 발명을 적용한 실험에 따르면, 스택에 유지되는 예측 결과는 네트워크(예를 들면, IoT 네트워크)의 통신 신뢰도에 따라 정의하는 것이 바람직하다. 실험 결과로는 1~3 스텝 (1스텝은 입력 문자(input letter) 하나에 예측 값이 한번 발생하는 단위) 사이에서, 스택 유지 수를 정하면 대부분의 잡음을 제거할 수 있었다. 만약 통신이 이루어지는 환경이 간섭이 자주 발생하거나, 동일 주파수 대역을 사용하는 센서나 전자기기가 많이 섞여 있는 경우에는 장치(100)의 스택에 대기하는 시간을 늘려주는 것이 바람직하다. 하지만 스택 유지 정도를 너무 길게 하면, 스택에 많은 예측 결과들이 쌓이게 된다. 이는 메모리적인 손실을 발생시키며, 새로운 입력 문자(input letter)를 매번 비교하도록 해서, 불필요한 컴퓨팅 파워를 소모하게 만든다. 따라서 본 발명의 장치(100)에 입력되는 통신 메시지의 통신 환경 알맞은 스택의 대기 시간을 정의하는 것이 중요할 수 있다.
도 8을 참조하면, 본 발명의 장치(100)에 대한 분기 예측 수준에 따른 해석 모델의 예측 정확도에 대한 실험 결과를 확인할 수 있다. 해당 실험은 단어의 숫자를 100개로 정의하였다. 장치(100)의 분기 예측 수준을 1에서 10까지 적용해 볼 수 있도록 키워드 사전을 구성하여 실험한 결과, 분기 예측 수준이 높아져도 90% 이상의 정확도를 가지고 단어를 추출하였다는 결과를 얻을 수 있었다. 이에 따라, 키워드 사전에 분기 예측 수준이 높아지더라도, 본 발명은 효과적으로 통신 메시지의 키워드들을 검출할 수 있다는 것을 확인할 수 있다.
본 발명은 복수의 프로토콜이 함께 사용되는 경우에도, 각 프로토콜에 대한 메시지 구조를 파악하지 않아도 통신이 가능한 장점이 있다.
또한, 본 발명은 통신 메시지에서 원하는 정보 이외의 다른 정보를 제거할 수 있어서, 불필요한 정보, 불필요한 잡음을 제거할 수 있다. 여기서 불필요한 정보는 프로토콜의 구조가 가지고 있는 헤더 등을 의미할 수 있다. 이러한 불필요한 정보는 사용자가 원하는 결과가 아니며, 통신 메시지를 해석하는 것을 어렵게 할 수 있다. 따라서, 본 발명은 다른 프로토콜을 가지는 센서가 있더라도, 이에 대한 부가적인 해석 없이 필요한 정보를 얻을 수 있다.
이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
Claims (16)
- 통신 메시지의 메시지 해석 방법에 있어서,전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받는 단계;상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하는 단계;상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하는 단계;상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하는 단계;상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하는 단계; 및상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하는 단계를 포함하는메시지 해석 방법.
- 제1항에 있어서,상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하는 단계를 더 포함하는메시지 해석 방법.
- 제2항에 있어서,상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하는 단계를 더 포함하는메시지 해석 방법.
- 제1항에 있어서,상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하는 단계를 더 포함하는메시지 해석 방법.
- 제4항에 있어서,상기 초과된 수의 스택을 삭제하는 단계는상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하는 단계를 포함하는메시지 해석 방법.
- 제4항에 있어서,상기 초과된 수의 스택을 삭제하는 단계는상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하는 단계를 포함하는메시지 해석 방법.
- 제1항에 있어서,상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하는 단계; 및상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하는 단계를 더 포함하는메시지 해석 방법.
- 제7항에 있어서,상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하는 단계를 더 포함하는메시지 해석 방법.
- 적어도 하나의 프로세서; 및상기 프로세서에 전기적으로 연결된 메모리를 포함하고,상기 메모리는, 상기 프로세서가 실행 시에,전송된 통신 메시지에 포함된, 복수의 입력 문자를 포함하는 스트림을 입력받고,상기 스트림의 첫번째 문자에 따라 예측되는 결과인 제1 예측 결과를 산출하고,상기 산출된 제1 예측 결과를 상기 스트림의 두번째 문자와 비교하고,상기 제1 예측 결과와의 비교 결과를 기초로, 상기 산출된 제1 예측 결과와 상기 두번째 문자가 동일하지 않으면, 동일하지 않은 지점에서부터 분기되는 제2 예측 결과를 산출하고, 상기 제1 예측 결과를 제1 스택(stack)으로 저장하고,상기 산출된 제2 예측 결과를 상기 두번째 문자와 비교하고,상기 제2 예측 결과와의 비교 결과를 기초로, 상기 산출된 제2 예측 결과와 상기 두번째 문자가 동일하지 않으면, 상기 동일하지 않은 지점에서부터 분기되는 제3 예측 결과를 산출하고, 상기 제2 예측 결과를 제2 스택으로 저장하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제9항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 제1 예측 결과 또는 상기 제2 예측 결과가 상기 복수의 입력 문자와 동일하면, 동일한 예측 결과를 완성된 단어로 저장하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제10항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 완성된 단어로 저장된 예측 결과의 스택을 삭제하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제9항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 입력 문자에 대해 산출되는 예측 결과에 대해, 동일한 지점에서 분기된, 복수의 예측 결과의 스택(stack) 수가 기준 값을 초과하면, 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제12항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 복수의 예측 결과의 스택 중 대기 시간(waiting time)을 기준으로, 상기 초과된 수의 스택을 삭제하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제12항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 복수의 예측 결과의 스택 중 상기 입력 문자와의 비교 결과가 일정 횟수 이상 일치하지 않는 스택을 삭제하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제9항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 입력 문자에 따라 예측되는 예측 결과에 대해 하나의 지점에서 분기되는 예측 결과의 수에 대한 최소 분기 예측 레벨을 산출하고,상기 산출된 최소 분기 예측 레벨을 기초로, 상기 입력되는 문자에 따라 예측되는 결과인 복수의 예측 결과를 산출하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
- 제15항에 있어서,상기 메모리는, 상기 프로세서가 실행 시에,상기 산출된 최소 분기 예측 레벨을 이용하여, 입력으로 사용하는 연속 문자인 어간(stem)의 수를 조절하도록 하는 인스트럭션들을 저장하는메시지 해석 장치.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020180129185A KR102177741B1 (ko) | 2018-10-26 | 2018-10-26 | 순환신경망 및 분기예측에 기반한 통신 메시지 해석 장치 및 그 방법 |
| KR10-2018-0129185 | 2018-10-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020085567A1 true WO2020085567A1 (ko) | 2020-04-30 |
Family
ID=70330627
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2018/014463 Ceased WO2020085567A1 (ko) | 2018-10-26 | 2018-11-22 | 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR102177741B1 (ko) |
| WO (1) | WO2020085567A1 (ko) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003076392A (ja) * | 2001-08-24 | 2003-03-14 | Internatl Business Mach Corp <Ibm> | 単語予測方法、音声認識方法、その方法を用いた音声認識装置及びプログラム |
| KR100891358B1 (ko) * | 2005-10-20 | 2009-04-01 | (주)트루시스템 | 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법 |
| JP5447373B2 (ja) * | 2008-05-16 | 2014-03-19 | 日本電気株式会社 | 言語モデルスコア先読み値付与装置およびその方法ならびにプログラム記録媒体 |
| KR20150036671A (ko) * | 2012-07-20 | 2015-04-07 | 마이크로소프트 코포레이션 | 버퍼로부터의 문자열 예측들 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006181173A (ja) * | 2004-12-28 | 2006-07-13 | Konica Minolta Medical & Graphic Inc | 患者情報分類装置及びプログラム |
| KR101127267B1 (ko) * | 2007-05-01 | 2012-07-10 | 인터내셔널 비지네스 머신즈 코포레이션 | 유사 스트링 정합을 위한 방법 및 시스템 |
| KR101922795B1 (ko) * | 2017-02-17 | 2019-02-20 | 박상준 | 사물인터넷 서비스 제공 장치 및 그 방법 |
-
2018
- 2018-10-26 KR KR1020180129185A patent/KR102177741B1/ko active Active
- 2018-11-22 WO PCT/KR2018/014463 patent/WO2020085567A1/ko not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003076392A (ja) * | 2001-08-24 | 2003-03-14 | Internatl Business Mach Corp <Ibm> | 単語予測方法、音声認識方法、その方法を用いた音声認識装置及びプログラム |
| KR100891358B1 (ko) * | 2005-10-20 | 2009-04-01 | (주)트루시스템 | 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법 |
| JP5447373B2 (ja) * | 2008-05-16 | 2014-03-19 | 日本電気株式会社 | 言語モデルスコア先読み値付与装置およびその方法ならびにプログラム記録媒体 |
| KR20150036671A (ko) * | 2012-07-20 | 2015-04-07 | 마이크로소프트 코포레이션 | 버퍼로부터의 문자열 예측들 |
Non-Patent Citations (1)
| Title |
|---|
| BANG, SUNG HYU K ET AL.: "Approach for Learning Intention Prediction Model based on Recurrent Neural Network", TRANSACTIONS OF INFORMATION SCIENTISTS AND ENGINEERS, vol. 45, no. 4, April 2018 (2018-04-01), pages 360 - 369, Retrieved from the Internet <URL:http://kiise.or.kr/e_Journal/2018/4/JOK/pdf/05.pdf> * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102177741B1 (ko) | 2020-11-11 |
| KR20200047124A (ko) | 2020-05-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11899786B2 (en) | Detecting security-violation-associated event data | |
| US20090119399A1 (en) | Intelligent graph walking | |
| Abbasi et al. | Deep learning-based feature extraction and optimizing pattern matching for intrusion detection using finite state machine | |
| EP3796599B1 (en) | Evaluation device and evaluation method | |
| WO2020096102A1 (ko) | 인공지능 실행가속을 위한 인공지능 실행모델 설정방법 및 인공지능 실행가속시스템 | |
| WO2018088664A1 (ko) | 러프 셋을 이용한 형태소 품사 태깅 코퍼스 오류 자동 검출 장치 및 그 방법 | |
| WO2018195289A1 (en) | An ultra-fast pattern generation algorithm for heterogeneous logs | |
| WO2021112344A1 (ko) | 트래픽 분류 방법 및 장치 | |
| CN106161098A (zh) | 一种网络行为检测方法及装置 | |
| CN117014198A (zh) | 游戏平台网络安全检测方法及其系统 | |
| Le et al. | A proactive method of the webshell detection and prevention based on deep traffic analysis | |
| CN114024701A (zh) | 域名检测方法、装置及通信系统 | |
| WO2020085567A1 (ko) | 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법 | |
| JP7239016B2 (ja) | 振り分け装置、振り分け方法、振り分けプログラム | |
| CN110601909B (zh) | 网络维护方法、装置、计算机设备和存储介质 | |
| Leira et al. | Multimedia flow classification at 10 Gbps using acceleration techniques on commodity hardware | |
| CN116523045B (zh) | 一种面向多芯粒芯片的深度学习推理模拟器 | |
| Clark et al. | An FPGA-based network intrusion detection system with on-chip network interfaces | |
| JP7220814B1 (ja) | データ取得装置及びデータ取得方法 | |
| Mahdinia et al. | Attack signature matching using graphics processors in high-performance intrusion detection systems | |
| CN112688897A (zh) | 一种流量识别的方法、装置、存储介质及电子设备 | |
| Rosay et al. | Study of Network IDS in IoT devices | |
| US10798227B2 (en) | Centralized chromatic pluralizing of internet of things (IOT) communication | |
| US9875045B2 (en) | Regular expression matching with back-references using backtracking | |
| Wang et al. | Kangaroo: Accelerating string matching by running multiple collaborative finite state machines |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18937784 Country of ref document: EP Kind code of ref document: A1 |
