KR20220056633A - Machine reading comprehension method and apparatus - Google Patents

Machine reading comprehension method and apparatus Download PDF

Info

Publication number
KR20220056633A
KR20220056633A KR1020200141388A KR20200141388A KR20220056633A KR 20220056633 A KR20220056633 A KR 20220056633A KR 1020200141388 A KR1020200141388 A KR 1020200141388A KR 20200141388 A KR20200141388 A KR 20200141388A KR 20220056633 A KR20220056633 A KR 20220056633A
Authority
KR
South Korea
Prior art keywords
embedding vector
question
processor
context
correct answer
Prior art date
Application number
KR1020200141388A
Other languages
Korean (ko)
Inventor
김광인
강청웅
Original Assignee
울산과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 울산과학기술원 filed Critical 울산과학기술원
Priority to KR1020200141388A priority Critical patent/KR20220056633A/en
Publication of KR20220056633A publication Critical patent/KR20220056633A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Machine Translation (AREA)

Abstract

Disclosed are a machine reading comprehension method and apparatus. According to one embodiment of the present invention, the machine reading comprehension method comprises: a step of receiving a context and question consisting of a natural language; a step of generating an embedding vector based on the context and question; a step of performing encoding at least one time based on the embedding vector; and a step of predicting a right answer for the question based on the encoded embedding vector.

Description

기계 독해 방법 및 장치{MACHINE READING COMPREHENSION METHOD AND APPARATUS}MACHINE READING COMPREHENSION METHOD AND APPARATUS

실시예들은 기계 독해 방법 및 장치에 관한 것이다.Embodiments relate to a machine reading method and apparatus.

기계 독해(machine reading comprehension)이란 사용자의 자연어 질의에 대한 정답을 문맥에서 찾아 반환하는 기술이다. 기계 독해 방식을 이용하면 사람이 텍스트를 읽고 질문 답변을 추론하듯이 기계 독해 알고리즘이 문장 속에서 의미를 찾고 답변할 수 있다.Machine reading comprehension is a technology that finds and returns the correct answer to a user's natural language query in context. With machine reading, a machine reading algorithm can find meaning in a sentence and answer it, just as a human reads a text and infers an answer to a question.

종래의 기계 독해 방식은 시작 단어와 끝 단어의 확률이 독립적으로 분석될 뿐만 아니라, 문장들 사이의 경계가 명시적이지 않아, 정답의 첫 단어와 마지막 단어가 같은 문장에서 추출되지 않아 모델의 성능이 저하되는 문제가 있다.In the conventional machine reading method, not only the probabilities of the starting and ending words are analyzed independently, but also the boundary between sentences is not explicit, so the first and last words of the correct answer are not extracted from the same sentence, so the performance of the model is poor. There is a problem with degradation.

실시예들은 기계 독해 기술을 제공할 수 있다. 다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.Embodiments may provide machine reading techniques. However, the technical tasks are not limited to the above-described technical tasks, and other technical tasks may exist.

일 실시예에 따른 기계 독해 방법은, 자연어로 이루어진 컨텍스트 및 질문을 수신하는 단계와, 상기 컨텍스트 및 질문에 기초하여 임베딩 벡터를 생성하는 단계와, 상기 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행하는 단계와, 인코딩된 임베딩 벡터에 기초하여 상기 질문에 대한 정답을 예측하는 단계를 포함한다.A machine reading method according to an embodiment includes the steps of receiving a context and a question made of a natural language, generating an embedding vector based on the context and the question, and performing at least one encoding based on the embedding vector. and predicting a correct answer to the question based on the encoded embedding vector.

상기 임베딩 벡터를 생성하는 단계는, 상기 컨텍스트에 기초하여 제1 임베딩 벡터를 생성하는 단계와, 상기 질문에 기초하여 제2 임베딩 벡터를 생성하는 단계를 포함할 수 있다.The generating of the embedding vector may include generating a first embedding vector based on the context and generating a second embedding vector based on the question.

상기 기계 독해 방법은, 상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 상기 컨텍스트와 상기 질문에 포함된 단어들을 매칭하는 단계를 더 포함할 수 있다.The machine reading method may further include matching the context with the words included in the question by performing an attention based on the first embedding vector and the second embedding vector.

상기 인코딩을 수행하는 단계는, 상기 임베딩 벡터에 포지셔널 인코딩(positional encoding)을 수행하는 단계와, 포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징(local feature)를 추출하는 단계와, 상기 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징(global feature)을 추출하는 단계를 포함할 수 있다.The performing of the encoding includes: performing positional encoding on the embedding vector; and extracting a local feature by performing a convolution operation on the embedding vector on which the positional encoding has been performed. and extracting a global feature by performing self-attention based on the local feature.

상기 적어도 한 번의 인코딩을 수행하는 단계는, 잔차 블록(residual block)을 포함하는 뉴럴 네트워크에 의해 수행될 수 있다.The performing of the at least one encoding may be performed by a neural network including a residual block.

상기 기계 독해 방법은, 상기 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수를 계산하는 단계를 더 포함할 수 있다.The machine reading method may further include calculating a score for the sentence included in the context and the question by performing encoding based on the encoded embedding vector.

상기 정답을 예측하는 단계는, 상기 정답의 시작 단어의 확률을 계산하는 단계와, 상기 정답의 끝 단어의 확률을 계산하는 단계와, 상기 시작 단어의 확률 및 상기 끝 단어의 확률에 기초하여 상기 정답을 예측하는 단계를 포함할 수 있다.The predicting of the correct answer may include calculating a probability of the start word of the correct answer, calculating the probability of the end word of the correct answer, and the correct answer based on the probability of the start word and the probability of the end word It may include the step of predicting.

상기 정답을 예측하는 단계는, 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정하는 단계를 더 포함할 수 있다.The predicting of the correct answer may further include correcting the predicted correct answer based on the context and scores for the sentences included in the question.

일 실시예에 따른 기계 독해 장치는, 자연어로 이루어진 컨텍스트 및 질문을 수신하는 수신기와, 상기 컨텍스트 및 질문에 기초하여 임베딩 벡터를 생성하고, 상기 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행하고, 인코딩된 임베딩 벡터에 기초하여 상기 질문에 대한 정답을 예측하는 프로세서를 포함한다.A machine reading apparatus according to an embodiment includes a receiver that receives a context and a question made of a natural language, generates an embedding vector based on the context and the question, performs at least one encoding based on the embedding vector, and encodes and a processor for predicting a correct answer to the question based on the embedded vector.

상기 프로세서는, 상기 컨텍스트에 기초하여 제1 임베딩 벡터를 생성하고, 상기 질문에 기초하여 제2 임베딩 벡터를 생성할 수 있다.The processor may generate a first embedding vector based on the context, and generate a second embedding vector based on the question.

상기 프로세서는, 상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 상기 컨텍스트와 상기 질문에 포함된 단어들을 매칭할 수 있다.The processor may match the context with the words included in the question by performing an attention based on the first embedding vector and the second embedding vector.

상기 프로세서는, 상기 임베딩 벡터에 포지셔널 인코딩(positional encoding)을 수행하고, 포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징(local feature)를 추출하고, 상기 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징(global feature)을 추출할 수 있다.The processor performs positional encoding on the embedding vector, and extracts a local feature by performing a convolution operation on the embedding vector on which the positional encoding is performed, and based on the local feature A global feature can be extracted by performing self-attention.

상기 프로세서는, 잔차 블록(residual block)을 포함하는 뉴럴 네트워크를 이용하여 상기 적어도 한 번의 인코딩을 수행할 수 있다.The processor may perform the at least one encoding by using a neural network including a residual block.

상기 프로세서는, 상기 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수를 계산할 수 있다.The processor may calculate a score for the context and the sentence included in the question by performing encoding based on the encoded embedding vector.

상기 프로세서는, 상기 정답의 시작 단어의 확률을 계산하고, 상기 정답의 끝 단어의 확률을 계산하고, 상기 시작 단어의 확률 및 상기 끝 단어의 확률에 기초하여 상기 정답을 예측할 수 있다.The processor may calculate a probability of a start word of the correct answer, calculate a probability of an end word of the correct answer, and predict the correct answer based on the probability of the start word and the probability of the end word.

상기 프로세서는, 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정할 수 있다.The processor may correct the predicted correct answer based on the score for the context and the sentence included in the question.

도 1은 일 실시예에 따른 기계 독해 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 기계 독해 장치의 동작을 나타낸다.
도 3은 도 2에 도시된 인코딩 블록의 구조를 나타낸다.
도 4는 셀프 어텐션의 예를 나타낸다.
도 5는 도 1에 도시된 기계 독해 장치의 동작의 순서도를 나타낸다.
1 is a schematic block diagram of a machine reading apparatus according to an embodiment.
FIG. 2 shows the operation of the machine reading apparatus shown in FIG. 1 .
FIG. 3 shows the structure of the encoding block shown in FIG. 2 .
4 shows an example of self-attention.
FIG. 5 is a flowchart of an operation of the machine reading apparatus shown in FIG. 1 .

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for purposes of illustration only, and may be changed and implemented in various forms. Accordingly, the actual implementation form is not limited to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical spirit described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various elements, these terms should be interpreted only for the purpose of distinguishing one element from another. For example, a first component may be termed a second component, and similarly, a second component may also be termed a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being “connected to” another component, it may be directly connected or connected to the other component, but it should be understood that another component may exist in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, and includes one or more other features or numbers, It should be understood that the possibility of the presence or addition of steps, operations, components, parts or combinations thereof is not precluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same components are assigned the same reference numerals regardless of the reference numerals, and overlapping descriptions thereof will be omitted.

본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in the present specification may mean hardware capable of performing functions and operations according to each name described in this specification, or may mean computer program code capable of performing specific functions and operations, , or an electronic recording medium on which a computer program code capable of performing specific functions and operations is loaded, for example, may refer to a processor or a microprocessor.

다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and/or structural combination of hardware for carrying out the technical idea of the present invention and/or software for driving the hardware.

도 1은 일 실시예에 따른 기계 독해 장치의 개략적인 블록도를 나타낸다.1 is a schematic block diagram of a machine reading apparatus according to an embodiment.

도 1을 참조하면, 기계 독해 장치(10)는 자연어로 이루어진 텍스트를 분석하여 주어진 질문 또는 질의에 대한 정답을 예측할 수 있다. 기계 독해 장치(10)는 뉴럴 네트워크(neural network)를 이용하여 자연어를 분석하고, 질문에 대한 정답을 예측할 수 있다.Referring to FIG. 1 , the machine reading apparatus 10 may predict a correct answer to a given question or query by analyzing text made in natural language. The machine reading apparatus 10 may analyze a natural language using a neural network and predict a correct answer to a question.

기계 독해 장치(10)는 사용자 질문에 대한 정답을 관련된 문서에서 찾아서 반환하거나 질문에 대한 적절한 해답이 없는 경우 이를 사용자에게 알릴 수 있다. 기계 독해 장치(10)는 적어도 하나의 인코더 블록을 이용하여 질문에 대한 정답을 예측할 수 있다.The machine reading device 10 may find and return the correct answer to the user's question in a related document, or notify the user if there is no proper answer to the question. The machine reading apparatus 10 may predict a correct answer to a question using at least one encoder block.

기계 독해 장치(10)는 기존의 정보검색, 질의-응답 기술과는 달리, 자연어로 이루어진 질의를 입력 받아 질의문에 형식에 관계없이 정답을 예측할 수 있다. 기계 독해 장치(10)는 질의 관련 문서를 제공하는 대신, 질의에 대한 정답을 직접적으로 사용자에게 반환하기 때문에 사용자에게 큰 편의성을 제공할 수 있다.Unlike the existing information search and question-and-answer technology, the machine reading apparatus 10 may receive a query made in natural language and predict the correct answer regardless of the format of the question. Since the machine reading apparatus 10 directly returns the correct answer to the query to the user instead of providing a document related to the query, it is possible to provide great convenience to the user.

뉴럴 네트워크(또는 인공 신경망)는 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.Neural networks (or artificial neural networks) can include statistical learning algorithms that mimic the neurons of biology in machine learning and cognitive science. A neural network may refer to an overall model having problem-solving ability by changing the bonding strength of synapses through learning in which artificial neurons (nodes) formed a network by bonding of synapses.

뉴럴 네트워크는 심층 뉴럴 네트워크 (Deep Neural Network)를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), 퍼셉트론(perceptron), FF(Feed Forward), RBF(Radial Basis Network), DFF(Deep Feed Forward), LSTM(Long Short Term Memory), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network), LSM(Liquid State Machine), ELM(Extreme Learning Machine), ESN(Echo State Network), DRN(Deep Residual Network), DNC(Differentiable Neural Computer), NTM(Neural Turning Machine), CN(Capsule Network), KN(Kohonen Network) 및 AN(Attention Network)를 포함할 수 있다.The neural network may include a deep neural network. Neural networks include Convolutional Neural Network (CNN), Recurrent Neural Network (RNN), Perceptron, Feed Forward (FF), Radial Basis Network (RBF), Deep Feed Forward (DFF), Long Short Term Memory (LSTM), Gated Recurrent Unit (GRU), Auto Encoder (AE), Variational Auto Encoder (VAE), Denoising Auto Encoder (DAE), Sparse Auto Encoder (SAE), Markov Chain (MC), Hopfield Network (HN), Boltzmann Machine (BM) ), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Deep Convolutional Network (DCN), Deconvolutional Network (DN), Deep Convolutional Inverse Graphics Network (DCIGN), Generative Adversarial Network (GAN), Liquid State Machine (LSM) ), Extreme Learning Machine (ELM), Echo State Network (ESN), Deep Residual Network (DRN), Differential Neural Computer (DNC), Neural Turning Machine (NTM), Capsule Network (CN), Kohonen Network (KN), and AN (Attention Network) may be included.

기계 독해 장치(10)는 모바일 단말(mobile terminal)의 형태로 구현될 수 있다. 예를 들어, 기계 독해 장치(10)는 IoT 장치, Machine-type 통신 장치 또는 휴대용 전자 장치 등으로 구현될 수 있다.The machine reading apparatus 10 may be implemented in the form of a mobile terminal. For example, the machine reading device 10 may be implemented as an IoT device, a machine-type communication device, or a portable electronic device.

휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)로 구현될 수 있다. 예를 들어, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.Portable electronic devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), and enterprise digital assistants (EDAs). ), digital still camera, digital video camera, PMP (portable multimedia player), PND (personal navigation device or portable navigation device), handheld game console, e-book (e-book), may be implemented as a smart device. For example, the smart device may be implemented as a smart watch or a smart band.

기계 독해 장치(10)는 수신기(100), 프로세서(200)를 포함한다. 기계 독해 장치(10)는 메모리(300)를 더 포함할 수 있다.The machine reading apparatus 10 includes a receiver 100 and a processor 200 . The machine reading apparatus 10 may further include a memory 300 .

수신기(100)는 수신 인터페이스를 포함할 수 있다. 수신기(100)는 자연어로 이루어진 컨텍스트(context) 및 질문(question)(또는, 질의(query))을 수신할 수 있다. 컨텍스트 및 질문은 텍스트의 형태로 이루어질 수 있다. 수신기(100)는 수신한 컨텍스트 및 질문을 프로세서(200)로 출력할 수 있다.The receiver 100 may include a receiving interface. The receiver 100 may receive a context and a question (or a query) made of natural language. Context and questions may be in the form of text. The receiver 100 may output the received context and question to the processor 200 .

프로세서(200)는 메모리(300)에 저장된 데이터를 처리할 수 있다. 프로세서(200)는 메모리(300)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 200 may process data stored in the memory 300 . The processor 200 may execute computer readable codes (eg, software) stored in the memory 300 and instructions induced by the processor 200 .

"프로세서(200)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The “processor 200” may be a data processing device implemented in hardware having circuitry having a physical structure for performing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(200)는 컨텍스트 및 질문에 기초하여 임베딩(embedding) 벡터를 생성할 수 있다. 프로세서(200)는 컨텍스트에 기초하여 제1 임베딩 벡터를 생성할 수 있다. 프로세서(200)는 질문에 기초하여 제2 임베딩 벡터를 생성할 수 있다.The processor 200 may generate an embedding vector based on the context and the question. The processor 200 may generate the first embedding vector based on the context. The processor 200 may generate a second embedding vector based on the question.

프로세서(200)는 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행할 수 있다. 프로세서(200)는 잔차 블록을 포함하는 뉴럴 네트워크를 이용하여 적어도 한 번의 인코딩을 수행할 수 있다.The processor 200 may perform encoding at least once based on the embedding vector. The processor 200 may perform encoding at least once by using the neural network including the residual block.

프로세서(200)는 임베딩 벡터에 포지셔널 인코딩(positional encoding)을 수행할 수 있다. 프로세서(200)는 포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징(local feature)를 추출할 수 있다. 프로세서(200)는 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징(global feature)을 추출할 수 있다.The processor 200 may perform positional encoding on the embedding vector. The processor 200 may extract a local feature by performing a convolution operation on the embedding vector on which the positional encoding has been performed. The processor 200 may extract a global feature by performing self-attention based on the local feature.

프로세서(200)는 생성한 임베딩 벡터에 기초하여 컨텍스트 및 질문에 포함된 단어에 대한 매칭을 수행할 수 있다. 예를 들어, 프로세서(200)는 제1 임베딩 벡터 및 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 컨텍스트와 질문에 포함된 단어들을 매칭할 수 있다.The processor 200 may match the words included in the context and the question based on the generated embedding vector. For example, the processor 200 may match the context and words included in the question by performing an attention based on the first embedding vector and the second embedding vector.

프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 컨텍스트 및 질문에 포함된 문장에 대한 점수를 계산할 수 있다. 프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 상기 질문에 대한 정답을 예측할 수 있다.The processor 200 may calculate a score for a sentence included in a context and a question by performing encoding based on the encoded embedding vector. The processor 200 may predict a correct answer to the question based on the encoded embedding vector.

프로세서(200)는 정답의 시작 단어의 확률을 계산하고, 정답의 끝 단어의 확률을 계산할 수 있다. 프로세서(200)는 시작 단어의 확률 및 끝 단어의 확률에 기초하여 정답을 예측할 수 있다.The processor 200 may calculate the probability of the start word of the correct answer and calculate the probability of the end word of the correct answer. The processor 200 may predict the correct answer based on the probability of the start word and the probability of the end word.

프로세서(200)는 컨텍스트 및 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정할 수 있다.The processor 200 may correct the predicted correct answer based on the context and the score for the sentence included in the question.

메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 300 may store instructions (or programs) executable by the processor 200 . For example, the instructions may include instructions for executing an operation of a processor and/or an operation of each component of the processor.

메모리(300)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The memory 300 may be implemented as a volatile memory device or a nonvolatile memory device.

휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The volatile memory device may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).

불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Eelectronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Nonvolatile memory devices include EEPROM (Electrically Erasable Programmable Read-Only Memory), Flash memory, MRAM (Magnetic RAM), Spin-Transfer Torque (STT)-MRAM (Spin-Transfer Torque (STT)-MRAM), Conductive Bridging RAM (CBRAM) , FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), Resistive RAM(RRAM), Nanotube RRAM(Nanotube RRAM), Polymer RAM(Polymer RAM(PoRAM)), Nano Floating Gate Memory (NFGM)), a holographic memory, a molecular electronic memory device, or an Insulator Resistance Change Memory.

도 2는 도 1에 도시된 기계 독해 장치의 동작을 나타낸다.FIG. 2 shows the operation of the machine reading apparatus shown in FIG. 1 .

도 2를 참조하면, 프로세서(200)는 뉴럴 네트워크 또는, 뉴럴 네트워크 모델(210)(이하, 모델(210)이라 함)을 이용하여 질문에 대한 정답을 예측할 수 있다.Referring to FIG. 2 , the processor 200 may predict a correct answer to a question using a neural network or a neural network model 210 (hereinafter, referred to as a model 210 ).

프로세서(200)는 문장 단위로 정보를 인코딩하여 각 문장이 정답을 포함하고 있을 확률을 계산하는 모듈과 정답 구문의 위치를 찾는 두 개의 모듈을 이용하여 질문에 대한 정답을 예측할 수 있다.The processor 200 may predict the correct answer to the question using two modules: a module that encodes information in units of sentences to calculate a probability that each sentence contains a correct answer, and a module that finds the position of a correct sentence.

프로세서(200)는 최종적으로 각 구문이 정답이 될 확률에 정답 문장의 확률을 곱하는 방식으로 정답을 예측할 수 있다. 이를 통해, 프로세서(200)는 실제 정답 구문의 확률을 매우 정확하게 예측할 수 있다.The processor 200 may predict the correct answer by multiplying the probability that each sentence is finally the correct answer by the probability of the correct sentence. Through this, the processor 200 can predict the probability of the actual correct phrase very accurately.

또한, 상술한 두 개의 모듈은 일부 자유 변수(free-parameters)를 공유하여 최적화함으로써 뉴럴 네트워크에 대한 결합 학습을 수행할 수 있다. 프로세서(200)는 결합 학습을 통해 각 모듈의 일반화 (Generalization) 효과를 극대화할 수 있다.In addition, the two modules described above can perform joint learning on a neural network by sharing and optimizing some free-parameters. The processor 200 may maximize the generalization effect of each module through joint learning.

모델(210)은 베이스라인(211) 및 센텐스 스코어러(sentence scorer)(213)을 포함할 수 있다. 다시 말해, 상술한 두 개의 모듈은 베이스라인(211) 및 센텐스 스코어러(213)일 수 있다.The model 210 may include a baseline 211 and a sentiment scorer 213 . In other words, the two modules described above may be the baseline 211 and the intensity scorer 213 .

베이스라인(211)은 정답 구문의 위치를 찾을 수 있다. 센텐스 스코어러(213)는 각 문장이 정답을 포함하고 있을 확률을 계산할 수 있다.The baseline 211 may find the position of the correct answer phrase. The sense scorer 213 may calculate a probability that each sentence includes a correct answer.

센텐스 스코어러(213)는 임의의 문장이 정답을 포함하는 경우에는 1의 확률을 아닌 경우는 0의 확률을 출력할 수 있다. 프로세서(200)는 센텐스 스코어러(213)의 출력을 이용하여 예측된 정답을 보정할 수 있다.The sense scorer 213 may output a probability of 0 when an arbitrary sentence includes a correct answer, and a probability of 1 when not. The processor 200 may correct the predicted correct answer using the output of the sense scorer 213 .

프로세서(200)는 컨텍스트 및 질문에 포함된 단어에 대하여 임베딩을 수행함으로써 임베딩 벡터를 생성할 수 있다. 프로세서(200)는 입력된 단어에 대한 임베딩을 수행함으로써 단어를 연속 벡터 공간(continuous vector space)에 매핑할 수 있다.The processor 200 may generate an embedding vector by performing embedding on the words included in the context and the question. The processor 200 may map the word to a continuous vector space by performing embedding on the input word.

프로세서(200)는 벡터와 1:1 매핑하는 단어 임베딩과 입력된 단어의 문자들을 CNN(convolutional neural network)로 인코딩한 문자 기반 단어 임베딩의 결합을 이용하여 컨텍스트 및 질문에 포함된 단어를 벡터화하여 임베딩 벡터를 생성할 수 있다. 이때, 컨텍스트 및 질문을 벡터화하는 신경망은 똑 같은 파라미터를 공유할 수 있다.The processor 200 vectorizes and embeds words included in contexts and questions using a combination of word embedding that maps 1:1 with vectors and text-based word embedding that encodes the characters of the input word with a convolutional neural network (CNN). You can create vectors. In this case, the neural network that vectorizes the context and the question may share the same parameters.

임베딩 인코더 블록은 입력된 입베딩 벡터로 변환된 문서와 질문의 문맥을 인코딩할 수 있다. 임베딩 인코더 블록은 동일한 신경망을 사용하고, 파라미터를 공유할 수 있다. 즉, 컨텍스트에 대응하는 임베딩 인코더 블록 및 질문에 대응하는 임베딩 인코더 블록은 파라미터를 공유할 수 있다.The embedding encoder block may encode the context of the document and question transformed into the input embedding vector. The embedding encoder blocks may use the same neural network and share parameters. That is, the embedding encoder block corresponding to the context and the embedding encoder block corresponding to the question may share a parameter.

프로세서(200)는 컨텍스트-질의 어텐션 구조를 사용하여 임베딩 인코딩된 문서와 질의에 대응하는 임베딩 벡터로부터 질의에 대한 컨텍스트의 단어와 컨텍스트에 대한 질문의 단어의 비중을 계산할 수 있다.The processor 200 may calculate the weight of the word of the context for the query and the word of the question about the context from the embedding-encoded document and the embedding vector corresponding to the query using the context-query attention structure.

프로세서(200)는 제1 임베딩 벡터 및 제2 임베딩 벡터에 기초하여 컨텍스트-질의 어텐션을 수행함으로써 컨텍스트와 질문에 포함된 단어들을 매칭할 수 있다. 다시 말해, 프로세서(200)는 컨텍스트의 단어들과 질문의 단어들이 서로 어떤 단어에 매칭될지를 결정할 수 있다.The processor 200 may match the context and words included in the question by performing a context-query attention based on the first embedding vector and the second embedding vector. In other words, the processor 200 may determine to which words the words of the context and the words of the question are matched with each other.

프로세서(200)는 컨텍스트의 히든 매트릭스(hidden matrix)를 문장별로 분리할 수 있다. 프로세서(200)는 맥스 풀링을 이용하여 문장에 속한 단어들로부터 특징을 추출하는 방식으로 문장에 대한 벡터 표현인 문장 임베딩을 구축할 수 있다.The processor 200 may separate a hidden matrix of a context for each sentence. The processor 200 may construct sentence embedding, which is a vector expression for a sentence, by extracting features from words belonging to the sentence using max pooling.

프로세서(200)는 최종적인 인코더 블록을 통해 문장들 사이의 상관관계를 분석하고, 각 문장이 정답이 될 확률을 시그모이드 함수를 통해 0 내지 1 사이로 나타낼 수 있다.The processor 200 may analyze the correlation between sentences through the final encoder block, and represent the probability that each sentence becomes a correct answer as between 0 and 1 through a sigmoid function.

프로세서(200)는 계산한 비중 결과를 결합하여, 컨텍스트에 포함된 단어들과 질문에 포함된 단어들과 이루고 있는 구조를 추출할 수 있다. 프로세서(200)는 추출한 구조를 인코더 블록을 이용하여 다시 인코딩할 수 있다. The processor 200 may combine the calculated weight results to extract the words included in the context and the words included in the question and a structure. The processor 200 may re-encode the extracted structure using the encoder block.

프로세서(200)는 단어별 인코딩뿐만 아니라, 센텐스-와이즈 맥스-풀링을 수행하여 각 문장 벡터를 생성하고, 문장 별 적합도를 나타내는 센텐스 스코어를 계산할 수 있다.The processor 200 may generate each sentence vector by performing sentence-wise max-pooling as well as encoding for each word, and may calculate a sense score indicating fitness for each sentence.

센텐스 스코어는 질문에 대한 문장의 관련도를 나타내고, 시그모이드(sigmoid) 함수를 이용하여 0 내지 1사이의 값을 나타낼 수 있다. 프로세서(200)는 계산된 센텐스 스코어에 기초하여 예측된 정답을 보정할 수 있다.The sense score indicates the degree of relevance of a sentence to a question, and may indicate a value between 0 and 1 using a sigmoid function. The processor 200 may correct the predicted correct answer based on the calculated sense score.

프로세서(200)는 최종적으로 각 단어는 FFNN(Feed Forward Neural network)으로 각 단어의 정답 확률을 계산하고, 이전에 계산한 센텐스 스코어를 각 단어에 곱하여 최종 확률을 계산하여 정답을 예측할 수 있다.The processor 200 may finally calculate a correct answer probability of each word using a feed forward neural network (FFNN) for each word, and calculate a final probability by multiplying each word by a previously calculated sense score to predict a correct answer.

프로세서(200)는 정답 구문의 시작 단어의 확률과 끝 단어의 확률 분포를 계산하여 컨텍스트의 어떤 구문이 질문에 대한 정답이 될지를 예측할 수 있다. 예를 들어, 프로세서(200)는 각 문장에 정답이 존재할 확률과 각 문단이 정답이 될 확률을 곱하는 방식으로 질문에 대한 정답을 예측할 수 있다.The processor 200 may predict which phrase in the context will be the correct answer to the question by calculating the probability distribution of the start word and the end word of the correct phrase. For example, the processor 200 may predict the correct answer to the question by multiplying the probability that each sentence has a correct answer and the probability that each paragraph is the correct answer.

인코더 블록(encoder block)은 패시지(passage) 인코더 블록 및 센텐스(sentence) 인코더 블록을 포함할 수 있다. 패시지 인코더 블록은 관련된 문단을 인코딩하여 정답을 찾을 수 있다. 센텐스 인코더 블록은 관련 문장을 인코딩하여 정답이 존재하는 문장의 위치를 독립적으로 분석할 수 있다. 인코더 블록은 도 3을 참조하여 자세하게 설명한다.The encoder block may include a passage encoder block and a sentence encoder block. The passage encoder block can find the correct answer by encoding the relevant paragraph. The sense encoder block can independently analyze the position of the sentence in which the correct answer exists by encoding the related sentence. The encoder block will be described in detail with reference to FIG. 3 .

프로세서(200)는 기계 독해를 위해 뉴럴 네트워크를 학습시킬 수 있다. 프로세서(200)는 정답의 구문 예측 결과와 정답 문장 예측 결과에 대한 손실 함수를 동시에 학습할 수 있다. 이를 통해, 프로세서(200)는 정답 구문의 문장의 경계를 정확하게 알 수 있다.The processor 200 may train a neural network for machine reading. The processor 200 may simultaneously learn the syntax prediction result of the correct answer and the loss function for the correct sentence sentence prediction result. Through this, the processor 200 may accurately know the boundary of the sentence of the correct sentence.

프로세서(200)는 정답 후보 구문 추출과 정답 문장 예측을 위해 뉴럴 네트워크를 학습시키는 과정에서 자유 변수를 공유하고, 손실함수를 결함함으로써 기계 독해 성능을 향상시킬 수 있다.The processor 200 may improve machine reading performance by sharing free variables in the process of training the neural network for extracting correct answer candidate phrases and predicting correct answer sentences, and flawing the loss function.

프로세서(200)는 다음 스크립트를 이용하여 기계 독해 또는 뉴럴 네트워크의 학습을 수행할 수 있다.The processor 200 may perform machine reading or learning of a neural network using the following script.

1. Main.py: train, test 코드를 정의1. Main.py: define train and test codes

2. Config.py: 모델 구성에 필요한 하이퍼 파라미터를 정의2. Config.py: Defines hyperparameters required for model configuration

3. Layer.py: 신경망 구성에 필요한 모듈들을 정의3. Layer.py: Defines the modules required to construct a neural network

4. Model.py: MRC 신경망 모델을 정의4. Model.py: define MRC neural network model

5. Prepro.py: Tokenize, 임베딩과 같이 텍스트 분석 및 학습, 추론에 필요한 데이터 처리5. Prepro.py: Tokenize, data processing necessary for text analysis, training, and inference such as embedding

6. Util.py: Evaluation, batch와 같이 학습 추론에 필요한 기타 모듈들을 정의6. Util.py: Defines other modules necessary for learning inference such as Evaluation and batch

프로세서(200)는 학습을 위해, 우선 Prepro.py를 기반으로 전처리(preprocessing)를 진행하여, 학습 데이터를 학습 및 추론에 필요한 입출력 형태로 가공할 수 있다.For learning, the processor 200 may first perform preprocessing based on Prepro.py to process the learning data into an input/output form required for learning and inference.

프로세서(200)는 main.py의 내용을 기반으로 학습과 테스트를 수행할 수 있고, 뉴럴 네트워크 모델 및 구성은 model.py와 config.py을 통해 변경할 수 있다.The processor 200 may perform learning and testing based on the contents of main.py, and the neural network model and configuration may be changed through model.py and config.py.

도 3은 도 2에 도시된 인코딩 블록의 구조를 나타내고, 도 4는 셀프 어텐션의 예를 나타낸다.3 shows the structure of the encoding block shown in FIG. 2, and FIG. 4 shows an example of self-attention.

도 3 및 도 4를 참조하면, 모델(210)은 적어도 하나의 인코더 블록(215)을 포함할 수 있다. 도 3의 예시에 따르면, 모델(210)은 임베딩 인코더 블록, 패시지 인코더 블록 및 센텐스 인코더 블록을 포함할 수 있다.3 and 4 , the model 210 may include at least one encoder block 215 . According to the example of FIG. 3 , the model 210 may include an embedding encoder block, a passage encoder block, and a sense encoder block.

인코더 블록(215)는 입력에 대한 인코딩을 수행할 수 있다. 인코더 블록(215)은 포지셔널 인코딩(positional encoding) 블록, CNN, 셀프 어텐션(self-attention) 블록 및 FFNN를 포함할 수 있다.The encoder block 215 may perform encoding on the input. The encoder block 215 may include a positional encoding block, a CNN, a self-attention block, and an FFNN.

포지셔널 인코딩 블록은 입력된 임베딩 벡터의 절대 위치에 따라 신호를 부여할 수 있다. 포지셔널 인코딩 블록은 임베딩 벡터로 변환된 단어의 상대적 위치를 각 단어의 절대 위치로 변활할 수 있다.The positional encoding block may give a signal according to the absolute position of the input embedding vector. The positional encoding block may transform the relative position of the word converted into the embedding vector into the absolute position of each word.

예를 들어, 포지셔널 인코딩 블록은 sin 또는 cos 함수를 이용하여 각 단어의 절대 위치를 정규화한 값을 나타낼 수 있다. 포지셔널 인코딩 블록은 sin(x+y)를 sin(x)와 sin(y)의 선형 결합으로 변환하는 과정을 통해 포지셔널 인코딩을 수행할 수 있다.For example, the positional encoding block may indicate a value obtained by normalizing the absolute position of each word using a sin or cos function. The positional encoding block may perform positional encoding through a process of converting sin(x+y) into a linear combination of sin(x) and sin(y).

포지셔널 인코딩 블록은 각 단어의 절대 위치를 정규화한 값을 입력된 임베딩 벡터에 더하는 방식으로 각 단어의 의미와 위치를 표현할 수 있다.The positional encoding block may express the meaning and position of each word by adding a value obtained by normalizing the absolute position of each word to the input embedding vector.

CNN은 포지셔널 인코딩이 수행된 임베딩 벡터에 적어도 한 번의 컨볼루션 연산을 수행함으로써 임베딩 벡터에 대응되는 단어의 지역 특징(local feature)을 추출할 수 있다.The CNN may extract a local feature of a word corresponding to the embedding vector by performing at least one convolution operation on the embedding vector on which the positional encoding has been performed.

도 4의 예시와 같이, 셀프 어텐션 블록은 문맥에서 각 단어들을 그래프 구조로 나타내고, 입력 임베딩 벡터로부터 전역 특징(global feature)을 추출할 수 있다.As in the example of FIG. 4 , the self-attention block may represent each word in a context in a graph structure, and extract global features from the input embedding vector.

FFNN은 CNN과 셀프 어텐션 블록으로부터 추출한 지역 특징 및 전역 특징에 비선형 변환을 수행할 수 있다.FFNN can perform nonlinear transformation on local and global features extracted from CNN and self-attention blocks.

프로세서(200)는 CNN, 셀프 어텐션 블록 및 FFNN에서 출력을 입력과 더하는 잔차 블록(residual block)을 적용함으로써 심층 학습의 효율을 향상시킬 수 있다.The processor 200 may improve the efficiency of deep learning by applying a residual block that adds an output to an input in a CNN, a self-attention block, and an FFNN.

도 5는 도 1에 도시된 기계 독해 장치의 동작의 순서도를 나타낸다.FIG. 5 is a flowchart of an operation of the machine reading apparatus shown in FIG. 1 .

도 5를 참조하면, 수신기(100)는 자연어로 이루어진 컨텍스트 및 질문을 수신할 수 있다(510).Referring to FIG. 5 , the receiver 100 may receive a context and a question made of natural language ( 510 ).

프로세서(200)는 컨텍스트 및 질문에 기초하여 임베딩 벡터를 생성할 수 있다(530). 프로세서(200)는 컨텍스트에 기초하여 제1 임베딩 벡터를 생성할 수 있다. 프로세서(200)는 질문에 기초하여 제2 임베딩 벡터를 생성할 수 있다.The processor 200 may generate an embedding vector based on the context and the question ( 530 ). The processor 200 may generate the first embedding vector based on the context. The processor 200 may generate a second embedding vector based on the question.

프로세서(200)는 제1 임베딩 벡터 및 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 컨텍스트와 질문에 포함된 단어들을 매칭할 수 있다.The processor 200 may match the context and words included in the question by performing an attention based on the first embedding vector and the second embedding vector.

프로세서(200)는 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행할 수 있다. 프로세서(200)는 잔차 블록을 포함하는 뉴럴 네트워크를 이용하여 적어도 한번의 인코딩을 수행할 수 있다.The processor 200 may perform encoding at least once based on the embedding vector. The processor 200 may perform encoding at least once using a neural network including the residual block.

프로세서(200)는 임베딩 벡터에 포지셔널 인코딩을 수행할 수 있다. 프로세서(200)는 포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징을 추출할 수 있다. 프로세서(200)는 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징을 추출할 수 있다.The processor 200 may perform positional encoding on the embedding vector. The processor 200 may extract a local feature by performing a convolution operation on the embedding vector on which the positional encoding has been performed. The processor 200 may extract the global feature by performing self-attention based on the local feature.

프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 질문에 대한 정답을 예측할 수 있다. 프로세서(200)는 정답의 시작 단어의 확률을 계산할 수 있다. 프로세서(200)는 정답의 끝 단어의 확률을 계산할 수 있다. 프로세서(200)는 시작 단어의 확률 및 끝 단어의 확률에 기초하여 정답을 예측할 수 있다.The processor 200 may predict a correct answer to the question based on the encoded embedding vector. The processor 200 may calculate the probability of the starting word of the correct answer. The processor 200 may calculate the probability of the last word of the correct answer. The processor 200 may predict the correct answer based on the probability of the start word and the probability of the end word.

프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 컨텍스트 및 질문에 포함된 문장에 대한 점수를 계산할 수 있다. 프로세서(200)는 컨텍스트 및 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정할 수 있다.The processor 200 may calculate a score for a sentence included in a context and a question by performing encoding based on the encoded embedding vector. The processor 200 may correct the predicted correct answer based on the context and the score for the sentence included in the question.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented by a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the apparatus, methods, and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA) array), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using a general purpose computer or special purpose computer. The processing device may execute an operating system (OS) and a software application running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in a computer-readable recording medium.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination, and the program instructions recorded on the medium are specially designed and configured for the embodiment, or are known and available to those skilled in the art of computer software. may be Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those of ordinary skill in the art may apply various technical modifications and variations based thereon. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (17)

자연어로 이루어진 컨텍스트 및 질문을 수신하는 단계;
상기 컨텍스트 및 질문에 기초하여 임베딩 벡터를 생성하는 단계;
상기 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행하는 단계; 및
인코딩된 임베딩 벡터에 기초하여 상기 질문에 대한 정답을 예측하는 단계
를 포함하는 기계 독해 방법.
receiving a context and a question in natural language;
generating an embedding vector based on the context and question;
performing at least one encoding based on the embedding vector; and
predicting the correct answer to the question based on the encoded embedding vector
A machine reading method comprising:
제1항에 있어서,
상기 임베딩 벡터를 생성하는 단계는,
상기 컨텍스트에 기초하여 제1 임베딩 벡터를 생성하는 단계; 및
상기 질문에 기초하여 제2 임베딩 벡터를 생성하는 단계
를 포함하는 기계 독해 방법
According to claim 1,
The step of generating the embedding vector comprises:
generating a first embedding vector based on the context; and
generating a second embedding vector based on the question
machine reading method comprising
제2항에 있어서,
상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 상기 컨텍스트와 상기 질문에 포함된 단어들을 매칭하는 단계
를 더 포함하는 기계 독해 방법.
3. The method of claim 2,
matching the context with the words included in the question by performing an attention based on the first embedding vector and the second embedding vector
A machine reading comprehension method further comprising a.
제1항에 있어서,
상기 인코딩을 수행하는 단계는,
상기 임베딩 벡터에 포지셔널 인코딩(positional encoding)을 수행하는 단계;
포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징(local feature)를 추출하는 단계; 및
상기 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징(global feature)을 추출하는 단계
를 포함하는 기계 독해 방법.
According to claim 1,
The encoding step includes:
performing positional encoding on the embedding vector;
extracting a local feature by performing a convolution operation on the embedding vector on which the positional encoding has been performed; and
extracting a global feature by performing self-attention based on the local feature
A machine reading method comprising:
제1항에 있어서,
상기 적어도 한 번의 인코딩을 수행하는 단계는,
잔차 블록(residual block)을 포함하는 뉴럴 네트워크에 의해 수행되는
기계 독해 방법.
According to claim 1,
The at least one encoding step comprises:
performed by a neural network including a residual block
machine reading method.
제1항에 있어서,
상기 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수를 계산하는 단계
를 더 포함하는 기계 독해 방법.
According to claim 1,
calculating a score for the sentence included in the context and the question by performing encoding based on the encoded embedding vector
A machine reading comprehension method further comprising a.
제1항에 있어서,
상기 정답을 예측하는 단계는,
상기 정답의 시작 단어의 확률을 계산하는 단계;
상기 정답의 끝 단어의 확률을 계산하는 단계; 및
상기 시작 단어의 확률 및 상기 끝 단어의 확률에 기초하여 상기 정답을 예측하는 단계
를 포함하는 기계 독해 방법.
The method of claim 1,
The step of predicting the correct answer is,
calculating a probability of the starting word of the correct answer;
calculating the probability of the end word of the correct answer; and
predicting the correct answer based on the probability of the start word and the probability of the end word
A machine reading method comprising:
제7항에 있어서,
상기 정답을 예측하는 단계는,
상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정하는 단계
를 더 포함하는 기계 독해 방법.
8. The method of claim 7,
The step of predicting the correct answer is,
correcting the predicted correct answer based on the score for the sentence included in the context and the question
A machine reading comprehension method further comprising a.
하드웨어와 결합되어 제1항 내지 제8항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium for executing the method of any one of claims 1 to 8 in combination with hardware.
자연어로 이루어진 컨텍스트 및 질문을 수신하는 수신기; 및
상기 컨텍스트 및 질문에 기초하여 임베딩 벡터를 생성하고, 상기 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행하고, 인코딩된 임베딩 벡터에 기초하여 상기 질문에 대한 정답을 예측하는 프로세서
를 포함하는 기계 독해 장치.
a receiver for receiving context and questions in natural language; and
A processor that generates an embedding vector based on the context and the question, performs encoding at least once based on the embedding vector, and predicts a correct answer to the question based on the encoded embedding vector
A machine reading device comprising a.
제10항에 있어서,
상기 프로세서는,
상기 컨텍스트에 기초하여 제1 임베딩 벡터를 생성하고,
상기 질문에 기초하여 제2 임베딩 벡터를 생성하는
기계 독해 장치.
11. The method of claim 10,
The processor is
generate a first embedding vector based on the context;
generating a second embedding vector based on the question
mechanical reading device.
제11항에 있어서,
상기 프로세서는,
상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 상기 컨텍스트와 상기 질문에 포함된 단어들을 매칭하는
기계 독해 장치.
12. The method of claim 11,
The processor is
matching the context and words included in the question by performing an attention based on the first embedding vector and the second embedding vector
mechanical reading device.
제10항에 있어서,
상기 프로세서는,
상기 임베딩 벡터에 포지셔널 인코딩(positional encoding)을 수행하고,
포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징(local feature)를 추출하고,
상기 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징(global feature)을 추출하는
기계 독해 장치.
11. The method of claim 10,
The processor is
performing positional encoding on the embedding vector,
Extracting a local feature by performing a convolution operation on the embedding vector on which the positional encoding has been performed,
Extracting global features by performing self-attention based on the local features
mechanical reading device.
제10항에 있어서,
상기 프로세서는,
잔차 블록(residual block)을 포함하는 뉴럴 네트워크를 이용하여 상기 적어도 한 번의 인코딩을 수행하는
기계 독해 장치.
11. The method of claim 10,
The processor is
Performing the at least one encoding using a neural network including a residual block
mechanical reading device.
제10항에 있어서,
상기 프로세서는,
상기 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수를 계산하는
기계 독해 장치.
11. The method of claim 10,
The processor is
calculating a score for the sentence included in the context and the question by performing encoding based on the encoded embedding vector
mechanical reading device.
제10항에 있어서,
상기 프로세서는,
상기 정답의 시작 단어의 확률을 계산하고,
상기 정답의 끝 단어의 확률을 계산하고,
상기 시작 단어의 확률 및 상기 끝 단어의 확률에 기초하여 상기 정답을 예측하는
기계 독해 장치.
11. The method of claim 10,
The processor is
Calculate the probability of the starting word of the correct answer,
Calculate the probability of the end word of the correct answer,
predicting the correct answer based on the probability of the start word and the probability of the end word
mechanical reading device.
제10항에 있어서,
상기 프로세서는,
상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정하는
기계 독해 장치.
11. The method of claim 10,
The processor is
Correcting the predicted correct answer based on the score for the sentence included in the context and the question
mechanical reading device.
KR1020200141388A 2020-10-28 2020-10-28 Machine reading comprehension method and apparatus KR20220056633A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200141388A KR20220056633A (en) 2020-10-28 2020-10-28 Machine reading comprehension method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200141388A KR20220056633A (en) 2020-10-28 2020-10-28 Machine reading comprehension method and apparatus

Publications (1)

Publication Number Publication Date
KR20220056633A true KR20220056633A (en) 2022-05-06

Family

ID=81584819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200141388A KR20220056633A (en) 2020-10-28 2020-10-28 Machine reading comprehension method and apparatus

Country Status (1)

Country Link
KR (1) KR20220056633A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102582003B1 (en) * 2022-09-28 2023-09-25 국방과학연구소 Information processing method for systematic generalization and electric device for performing the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102582003B1 (en) * 2022-09-28 2023-09-25 국방과학연구소 Information processing method for systematic generalization and electric device for performing the same

Similar Documents

Publication Publication Date Title
CN111782838B (en) Image question-answering method, device, computer equipment and medium
US11113479B2 (en) Utilizing a gated self-attention memory network model for predicting a candidate answer match to a query
CN109376222B (en) Question-answer matching degree calculation method, question-answer automatic matching method and device
CN111782840B (en) Image question-answering method, device, computer equipment and medium
US20210383228A1 (en) Generating prediction outputs using dynamic graphs
US20220383119A1 (en) Granular neural network architecture search over low-level primitives
KR102607993B1 (en) Neural network operation appratus and method using quantization
US20220261644A1 (en) Method and apparatus for generating task plan based on neural network
CN114064852A (en) Method and device for extracting relation of natural language, electronic equipment and storage medium
Chen et al. Highly parallelized memristive binary neural network
CN114492661B (en) Text data classification method and device, computer equipment and storage medium
CN111611796A (en) Hypernym determination method and device for hyponym, electronic device and storage medium
KR20220056633A (en) Machine reading comprehension method and apparatus
CN113326383B (en) Short text entity linking method, device, computing equipment and storage medium
KR20220077709A (en) Neural network operation method, apparatus and keyword spotting methd using the same neural network operation
Jha et al. Analyzing effect of multi-modality in predicting protein-protein interactions
US20230145129A1 (en) Generating neural network outputs by enriching latent embeddings using self-attention and cross-attention operations
CN115470327A (en) Medical question-answering method based on knowledge graph and related equipment
US20240347049A1 (en) Electronic device that performs a neural network based faq classification and a neural network training
KR102671436B1 (en) Device, method and program for evaluating security reports based on artificial intelligence
KR20230085529A (en) Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same
US20240290065A1 (en) Method for multimodal embedding and system therefor
KR102666670B1 (en) Label prediction method, appratus based neural network and training method for group-labeling-learning using effective embedding vector generation
KR102668317B1 (en) System for object recognition using radar signal processing
US20230118505A1 (en) Method and apparatus for neural network operation

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
E601 Decision to refuse application
E801 Decision on dismissal of amendment