KR20220056633A - Machine reading comprehension method and apparatus - Google Patents
Machine reading comprehension method and apparatus Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 239000013598 vector Substances 0.000 claims abstract description 82
- 238000013528 artificial neural network Methods 0.000 claims description 23
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000002071 nanotube Substances 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005442 molecular electronic Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3347—Query execution using vector based model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference 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
Description
실시예들은 기계 독해 방법 및 장치에 관한 것이다.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
기계 독해 장치(10)는 사용자 질문에 대한 정답을 관련된 문서에서 찾아서 반환하거나 질문에 대한 적절한 해답이 없는 경우 이를 사용자에게 알릴 수 있다. 기계 독해 장치(10)는 적어도 하나의 인코더 블록을 이용하여 질문에 대한 정답을 예측할 수 있다.The
기계 독해 장치(10)는 기존의 정보검색, 질의-응답 기술과는 달리, 자연어로 이루어진 질의를 입력 받아 질의문에 형식에 관계없이 정답을 예측할 수 있다. 기계 독해 장치(10)는 질의 관련 문서를 제공하는 대신, 질의에 대한 정답을 직접적으로 사용자에게 반환하기 때문에 사용자에게 큰 편의성을 제공할 수 있다.Unlike the existing information search and question-and-answer technology, the
뉴럴 네트워크(또는 인공 신경망)는 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.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
휴대용 전자 장치는 랩탑(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
수신기(100)는 수신 인터페이스를 포함할 수 있다. 수신기(100)는 자연어로 이루어진 컨텍스트(context) 및 질문(question)(또는, 질의(query))을 수신할 수 있다. 컨텍스트 및 질문은 텍스트의 형태로 이루어질 수 있다. 수신기(100)는 수신한 컨텍스트 및 질문을 프로세서(200)로 출력할 수 있다.The
프로세서(200)는 메모리(300)에 저장된 데이터를 처리할 수 있다. 프로세서(200)는 메모리(300)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The
"프로세서(200)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The “
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(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
프로세서(200)는 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행할 수 있다. 프로세서(200)는 잔차 블록을 포함하는 뉴럴 네트워크를 이용하여 적어도 한 번의 인코딩을 수행할 수 있다.The
프로세서(200)는 임베딩 벡터에 포지셔널 인코딩(positional encoding)을 수행할 수 있다. 프로세서(200)는 포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징(local feature)를 추출할 수 있다. 프로세서(200)는 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징(global feature)을 추출할 수 있다.The
프로세서(200)는 생성한 임베딩 벡터에 기초하여 컨텍스트 및 질문에 포함된 단어에 대한 매칭을 수행할 수 있다. 예를 들어, 프로세서(200)는 제1 임베딩 벡터 및 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 컨텍스트와 질문에 포함된 단어들을 매칭할 수 있다.The
프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 컨텍스트 및 질문에 포함된 문장에 대한 점수를 계산할 수 있다. 프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 상기 질문에 대한 정답을 예측할 수 있다.The
프로세서(200)는 정답의 시작 단어의 확률을 계산하고, 정답의 끝 단어의 확률을 계산할 수 있다. 프로세서(200)는 시작 단어의 확률 및 끝 단어의 확률에 기초하여 정답을 예측할 수 있다.The
프로세서(200)는 컨텍스트 및 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정할 수 있다.The
메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The
메모리(300)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The
휘발성 메모리 장치는 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
프로세서(200)는 문장 단위로 정보를 인코딩하여 각 문장이 정답을 포함하고 있을 확률을 계산하는 모듈과 정답 구문의 위치를 찾는 두 개의 모듈을 이용하여 질문에 대한 정답을 예측할 수 있다.The
프로세서(200)는 최종적으로 각 구문이 정답이 될 확률에 정답 문장의 확률을 곱하는 방식으로 정답을 예측할 수 있다. 이를 통해, 프로세서(200)는 실제 정답 구문의 확률을 매우 정확하게 예측할 수 있다.The
또한, 상술한 두 개의 모듈은 일부 자유 변수(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
모델(210)은 베이스라인(211) 및 센텐스 스코어러(sentence scorer)(213)을 포함할 수 있다. 다시 말해, 상술한 두 개의 모듈은 베이스라인(211) 및 센텐스 스코어러(213)일 수 있다.The model 210 may include a
베이스라인(211)은 정답 구문의 위치를 찾을 수 있다. 센텐스 스코어러(213)는 각 문장이 정답을 포함하고 있을 확률을 계산할 수 있다.The
센텐스 스코어러(213)는 임의의 문장이 정답을 포함하는 경우에는 1의 확률을 아닌 경우는 0의 확률을 출력할 수 있다. 프로세서(200)는 센텐스 스코어러(213)의 출력을 이용하여 예측된 정답을 보정할 수 있다.The
프로세서(200)는 컨텍스트 및 질문에 포함된 단어에 대하여 임베딩을 수행함으로써 임베딩 벡터를 생성할 수 있다. 프로세서(200)는 입력된 단어에 대한 임베딩을 수행함으로써 단어를 연속 벡터 공간(continuous vector space)에 매핑할 수 있다.The
프로세서(200)는 벡터와 1:1 매핑하는 단어 임베딩과 입력된 단어의 문자들을 CNN(convolutional neural network)로 인코딩한 문자 기반 단어 임베딩의 결합을 이용하여 컨텍스트 및 질문에 포함된 단어를 벡터화하여 임베딩 벡터를 생성할 수 있다. 이때, 컨텍스트 및 질문을 벡터화하는 신경망은 똑 같은 파라미터를 공유할 수 있다.The
임베딩 인코더 블록은 입력된 입베딩 벡터로 변환된 문서와 질문의 문맥을 인코딩할 수 있다. 임베딩 인코더 블록은 동일한 신경망을 사용하고, 파라미터를 공유할 수 있다. 즉, 컨텍스트에 대응하는 임베딩 인코더 블록 및 질문에 대응하는 임베딩 인코더 블록은 파라미터를 공유할 수 있다.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
프로세서(200)는 제1 임베딩 벡터 및 제2 임베딩 벡터에 기초하여 컨텍스트-질의 어텐션을 수행함으로써 컨텍스트와 질문에 포함된 단어들을 매칭할 수 있다. 다시 말해, 프로세서(200)는 컨텍스트의 단어들과 질문의 단어들이 서로 어떤 단어에 매칭될지를 결정할 수 있다.The
프로세서(200)는 컨텍스트의 히든 매트릭스(hidden matrix)를 문장별로 분리할 수 있다. 프로세서(200)는 맥스 풀링을 이용하여 문장에 속한 단어들로부터 특징을 추출하는 방식으로 문장에 대한 벡터 표현인 문장 임베딩을 구축할 수 있다.The
프로세서(200)는 최종적인 인코더 블록을 통해 문장들 사이의 상관관계를 분석하고, 각 문장이 정답이 될 확률을 시그모이드 함수를 통해 0 내지 1 사이로 나타낼 수 있다.The
프로세서(200)는 계산한 비중 결과를 결합하여, 컨텍스트에 포함된 단어들과 질문에 포함된 단어들과 이루고 있는 구조를 추출할 수 있다. 프로세서(200)는 추출한 구조를 인코더 블록을 이용하여 다시 인코딩할 수 있다. The
프로세서(200)는 단어별 인코딩뿐만 아니라, 센텐스-와이즈 맥스-풀링을 수행하여 각 문장 벡터를 생성하고, 문장 별 적합도를 나타내는 센텐스 스코어를 계산할 수 있다.The
센텐스 스코어는 질문에 대한 문장의 관련도를 나타내고, 시그모이드(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
프로세서(200)는 최종적으로 각 단어는 FFNN(Feed Forward Neural network)으로 각 단어의 정답 확률을 계산하고, 이전에 계산한 센텐스 스코어를 각 단어에 곱하여 최종 확률을 계산하여 정답을 예측할 수 있다.The
프로세서(200)는 정답 구문의 시작 단어의 확률과 끝 단어의 확률 분포를 계산하여 컨텍스트의 어떤 구문이 질문에 대한 정답이 될지를 예측할 수 있다. 예를 들어, 프로세서(200)는 각 문장에 정답이 존재할 확률과 각 문단이 정답이 될 확률을 곱하는 방식으로 질문에 대한 정답을 예측할 수 있다.The
인코더 블록(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
프로세서(200)는 정답 후보 구문 추출과 정답 문장 예측을 위해 뉴럴 네트워크를 학습시키는 과정에서 자유 변수를 공유하고, 손실함수를 결함함으로써 기계 독해 성능을 향상시킬 수 있다.The
프로세서(200)는 다음 스크립트를 이용하여 기계 독해 또는 뉴럴 네트워크의 학습을 수행할 수 있다.The
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
프로세서(200)는 main.py의 내용을 기반으로 학습과 테스트를 수행할 수 있고, 뉴럴 네트워크 모델 및 구성은 model.py와 config.py을 통해 변경할 수 있다.The
도 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
도 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
프로세서(200)는 컨텍스트 및 질문에 기초하여 임베딩 벡터를 생성할 수 있다(530). 프로세서(200)는 컨텍스트에 기초하여 제1 임베딩 벡터를 생성할 수 있다. 프로세서(200)는 질문에 기초하여 제2 임베딩 벡터를 생성할 수 있다.The
프로세서(200)는 제1 임베딩 벡터 및 제2 임베딩 벡터에 기초하여 어텐션을 수행함으로써 컨텍스트와 질문에 포함된 단어들을 매칭할 수 있다.The
프로세서(200)는 임베딩 벡터에 기초하여 적어도 한 번의 인코딩을 수행할 수 있다. 프로세서(200)는 잔차 블록을 포함하는 뉴럴 네트워크를 이용하여 적어도 한번의 인코딩을 수행할 수 있다.The
프로세서(200)는 임베딩 벡터에 포지셔널 인코딩을 수행할 수 있다. 프로세서(200)는 포지셔널 인코딩이 수행된 임베딩 벡터에 컨볼루션 연산을 수행함으로써 지역 특징을 추출할 수 있다. 프로세서(200)는 지역 특징에 기초하여 셀프 어텐션을 수행함으로써 전역 특징을 추출할 수 있다.The
프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 질문에 대한 정답을 예측할 수 있다. 프로세서(200)는 정답의 시작 단어의 확률을 계산할 수 있다. 프로세서(200)는 정답의 끝 단어의 확률을 계산할 수 있다. 프로세서(200)는 시작 단어의 확률 및 끝 단어의 확률에 기초하여 정답을 예측할 수 있다.The
프로세서(200)는 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 컨텍스트 및 질문에 포함된 문장에 대한 점수를 계산할 수 있다. 프로세서(200)는 컨텍스트 및 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정할 수 있다.The
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 임베딩 벡터를 생성하는 단계; 및
상기 질문에 기초하여 제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
상기 제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.
상기 인코딩을 수행하는 단계는,
상기 임베딩 벡터에 포지셔널 인코딩(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:
상기 적어도 한 번의 인코딩을 수행하는 단계는,
잔차 블록(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.
상기 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수를 계산하는 단계
를 더 포함하는 기계 독해 방법.
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.
상기 정답을 예측하는 단계는,
상기 정답의 시작 단어의 확률을 계산하는 단계;
상기 정답의 끝 단어의 확률을 계산하는 단계; 및
상기 시작 단어의 확률 및 상기 끝 단어의 확률에 기초하여 상기 정답을 예측하는 단계
를 포함하는 기계 독해 방법.
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:
상기 정답을 예측하는 단계는,
상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정하는 단계
를 더 포함하는 기계 독해 방법.
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.
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.
상기 프로세서는,
상기 컨텍스트에 기초하여 제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.
상기 프로세서는,
상기 제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.
상기 프로세서는,
상기 임베딩 벡터에 포지셔널 인코딩(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.
상기 프로세서는,
잔차 블록(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.
상기 프로세서는,
상기 인코딩된 임베딩 벡터에 기초하여 인코딩을 수행함으로써 상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수를 계산하는
기계 독해 장치.
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.
상기 프로세서는,
상기 정답의 시작 단어의 확률을 계산하고,
상기 정답의 끝 단어의 확률을 계산하고,
상기 시작 단어의 확률 및 상기 끝 단어의 확률에 기초하여 상기 정답을 예측하는
기계 독해 장치.
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.
상기 프로세서는,
상기 컨텍스트 및 상기 질문에 포함된 문장에 대한 점수에 기초하여 예측된 정답을 보정하는
기계 독해 장치.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.
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)
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 |
-
2020
- 2020-10-28 KR KR1020200141388A patent/KR20220056633A/en not_active Application Discontinuation
Cited By (1)
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 |