KR101842362B1 - 인공 신경망 기반의 문단 생성 방법 및 장치 - Google Patents
인공 신경망 기반의 문단 생성 방법 및 장치 Download PDFInfo
- Publication number
- KR101842362B1 KR101842362B1 KR1020160112691A KR20160112691A KR101842362B1 KR 101842362 B1 KR101842362 B1 KR 101842362B1 KR 1020160112691 A KR1020160112691 A KR 1020160112691A KR 20160112691 A KR20160112691 A KR 20160112691A KR 101842362 B1 KR101842362 B1 KR 101842362B1
- Authority
- KR
- South Korea
- Prior art keywords
- sentence
- vector
- data
- subsequent
- sentence vector
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000013598 vector Substances 0.000 claims abstract description 318
- 238000006243 chemical reaction Methods 0.000 claims abstract description 85
- 238000010801 machine learning Methods 0.000 claims abstract description 18
- 125000004122 cyclic group Chemical group 0.000 claims description 18
- 230000000306 recurrent effect Effects 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000015654 memory Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
-
- G06F17/276—
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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
-
- G06N99/005—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
인공 신경망 기반의 문단 생성 방법이 제공된다. 상기 방법은 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하는 단계, 상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하는 단계 및 상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 이용하여 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하는 단계를 포함할 수 있다. 따라서, 앞뒤 문맥을 고려하여 문장을 생성하여, 올바른 문법과 일정한 스토리의 흐름을 고려한 문장을 생성하도록 함으로써 스토리의 질을 향상시킬 수 있다.
Description
본 발명은 인공 신경망 기반의 자연어 처리에 관한 것으로서, 보다 구체적으로는 인공 신경망 기반의 문단 생성 방법 및 장치에 관한 것이다.
텍스트 마이닝 분야에서 단어, 문장, 단락을 벡터로 표현하는 연구가 진행되면서 벡터를 이용한 텍스트 분류, 텍스트 생성이 가능해졌다. 기존의 순환 신경망 (Recurrent Neural Network, RNN) (비특허문헌 1 참조) 기반으로 다음 단어를 예측하도록 학습하면서 다음 단어를 임베딩 (embedding) 하여, 비슷한 속성, 의미를 갖는 벡터를 이용해 텍스트 분류를 하거나, 텍스트 생성하는 연구가 수행되고 있다. 기존의 RNN 기법과 기울기 사라짐 (gradient vanishing) 문제를 해결하기 위해 노드 (node) 에 게이트 (gate) 개념을 추가하여 장기 경향성 (long term dependency)를 잘 학습할 수 있는 LSTM (Long-Short Term Memory) RNN (비특허문헌 2 참조) 으로 문장을 생성하는 연구가 진행되어왔다.
그러나 종래에는 임의의 단어 다음에 가장 높은 확률로 나올 단어를 예측할 뿐이므로 하나의 문장을 생성하기에는 적절하지만 여러 문장을 생성할 시 앞뒤 문맥이 맞는 문장을 생성하기 어려운 문제점이 있었다.
전술한 문제점을 해결하기 위한 본 발명의 목적은 문서 세트에 포함된 복수의 문장들을 벡터로 표현하여 임의의 벡터가 하나의 문장에 대응되도록 하고, 문장 벡터를 이용하여 단락 내의 문장에 대해 다음 벡터를 예측할 수 있도록 함으로써, 하나의 입력 문장에 대해서 문단을 생성할 수 있는 인공 신경망 기반의 문단 생성 방법을 제공하는 것이다.
전술한 문제점을 해결하기 위한 본 발명의 다른 목적은 문서 세트에 포함된 복수의 문장들을 벡터로 표현하여 임의의 벡터가 하나의 문장에 대응되도록 하고, 문장 벡터를 이용하여 단락 내의 문장에 대해 다음 벡터를 예측할 수 있도록 함으로써, 하나의 입력 문장에 대해서 문단을 생성할 수 있는 인공 신경망 기반의 문단 생성 장치를 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법은 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하는 단계와, 상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하는 단계 및 상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 이용하여 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 문장 벡터 변환 모델을 생성하는 단계는, 제 1 순환 신경망을 이용하여 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하는 단계; 및 제 2 순환 신경망을 이용하여 상기 문장 벡터를 변환한 출력 값이 상기 문장 데이터와 동일해지도록 상기 문장 벡터 변환 모델을 학습시키는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 제 1 순환 신경망은 하기 수학식을 기반으로 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환할 수 있다.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 단어, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치를 나타내고, 상기 문장 벡터는 마지막 은닉 상태 으로 표현될 수 있다.
일 측면에 따르면, 상기 제 2 순환 신경망은 하기 수학식을 기반으로 상기 문장 벡터를 변환한 출력 값을 도출할 수 있다.
단, 여기서 는 i 번째 노드에서의 은닉 상태, c 는 상기 문장 벡터, 는 i 번째 노드에서 확률이 가장 높은 단어, 는 출력 레이어와 은닉 레이어 사이의 가중치, 는 상기 문장 벡터와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치, 는 출력 레이어와 은닉 레이어 사이의 가중치를 나타낼 수 있다.
일 측면에 따르면, 상기 후속 문장 예측 모델을 생성하는 단계는, 상기 문서 데이터 세트에 포함된 복수의 문장 데이터를 상기 문장 벡터 변환 모델을 이용하여 복수의 문장 벡터로 변환하는 단계; 및 상기 후속 문장 예측 모델에 의한 현재 문장 벡터에 대한 출력 값이 상기 문서 데이터 세트 내에서 현재 문장 데이터에 후속하는 문장 데이터에 대응하는 문장 벡터와 동일해지도록 상기 후속 문장 예측 모델을 학습시키는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 후속 문장 예측 모델은 하기의 수학식을 기반으로 후속 문장 벡터를 예측할 수 있다.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 문장에 대한 벡터, 는 i 번째 다음 문장으로 예측될 벡터, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치, 는 출력 레이어와 은닉 레이어 사이의 가중치를 나타낼 수 있다.
일 측면에 따르면, 상기 출력 문단 데이터를 생성하는 단계는, 상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 데이터를 입력 문장 벡터로 변환하는 단계; 상기 후속 문장 예측 모델을 이용하여 상기 입력 문장 벡터의 후속 문장 벡터를 예측하는 단계; 및 상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 벡터 및 후속 문장 벡터를 문장 데이터로 변환함으로써 상기 출력 문단 데이터를 생성하는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 후속 문장 벡터를 예측하는 단계는 미리 입력된 개수의 후속 문장 벡터를 예측할 수 있다.
일 측면에 따르면, 상기 후속 문장 벡터를 예측하는 단계는 후속 문장 벡터가 없는 것으로 예측될 때까지 상기 후속 문장 벡터의 예측을 반복할 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 인공 신경망 기반의 문단 생성 장치는 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하는 문장 벡터 변환 모델 생성부; 상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하는 후속 문장 예측 모델 생성부; 및 상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 이용하여 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하는 출력부를 포함할 수 있다.
일 측면에 따르면, 상기 문장 벡터 변환 모델 생성부는, 제 1 순환 신경망을 이용하여 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하고; 그리고 제 2 순환 신경망을 이용하여 상기 문장 벡터를 변환한 출력 값이 상기 문장 데이터와 동일해지도록 상기 문장 벡터 변환 모델을 학습시킬 수 있다.
일 측면에 따르면, 상기 제 1 순환 신경망은 하기 수학식을 기반으로 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환할 수 있다.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 단어, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치를 나타내고, 상기 문장 벡터는 마지막 은닉 상태 으로 표현될 수 있다.
일 측면에 따르면, 상기 제 2 순환 신경망은 하기 수학식을 기반으로 상기 문장 벡터를 변환한 출력 값을 도출할 수 있다.
단, 여기서 는 i 번째 노드에서의 은닉 상태, c 는 상기 문장 벡터, 는 i 번째 노드에서 확률이 가장 높은 단어, 는 출력 레이어와 은닉 레이어 사이의 가중치, 는 상기 문장 벡터와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치, 는 출력 레이어와 은닉 레이어 사이의 가중치를 나타낼 수 있다.
일 측면에 따르면, 상기 후속 문장 예측 모델 생성부는, 상기 문서 데이터 세트에 포함된 복수의 문장 데이터를 상기 문장 벡터 변환 모델을 이용하여 복수의 문장 벡터로 변환하고; 그리고 상기 후속 문장 예측 모델에 의한 현재 문장 벡터에 대한 출력 값이 상기 문서 데이터 세트 내에서 현재 문장 데이터에 후속하는 문장 데이터에 대응하는 문장 벡터와 동일해지도록 상기 후속 문장 예측 모델을 학습시킬 수 있다.
일 측면에 따르면, 상기 후속 문장 예측 모델은 하기의 수학식을 기반으로 후속 문장 벡터를 예측할 수 있다.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 문장에 대한 벡터, 는 i 번째 다음 문장으로 예측될 벡터, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치, 는 출력 레이어와 은닉 레이어 사이의 가중치를 나타낼 수 있다.
일 측면에 따르면, 상기 출력부는, 상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 데이터를 입력 문장 벡터로 변환하고; 상기 후속 문장 예측 모델을 이용하여 상기 입력 문장 벡터의 후속 문장 벡터를 예측하고; 그리고 상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 벡터 및 후속 문장 벡터를 문장 데이터로 변환함으로써 상기 출력 문단 데이터를 생성할 수 있다.
일 측면에 따르면, 상기 인공 신경망 기반의 문단 생성 장치는 사용자로부터 예측할 후속 문장 벡터의 개수를 입력받는 입력부를 더 포함하고, 상기 출력부는 상기 입력부를 통해 입력된 개수의 후속 문장 벡터를 예측할 수 있다.
일 측면에 따르면, 상기 출력부는 후속 문장 벡터가 없는 것으로 예측될 때까지 상기 후속 문장 벡터의 예측을 반복할 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 컴퓨터 판독 가능한 저장 매체는, 상기 컴퓨터에 포함된 프로세서로 하여금, 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하도록 하기 위한 명렁어; 상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하도록 하기 위한 명령어; 및 상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 기반으로 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하도록 하기 위한 명령어를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
전술한 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법에 따르면, 문서 세트에 포함된 복수의 문장들을 벡터로 표현하여 임의의 벡터가 하나의 문장에 대응되도록 하고, 문장 벡터를 이용하여 단락 내의 문장에 대해 다음 벡터를 예측할 수 있도록 함으로써, 하나의 입력 문장에 대해서 문단을 생성할 수 있다.
따라서, 하나의 입력 문장에 대해서 단어와 단어 사이의 관계 뿐만 아니라 문장과 문장 사이의 관계도 고려하여 문단을 생성함으로써 스토리텔링을 수행할 수 있다. 즉, 문장을 벡터로 표현한 후 벡터를 이용하여 다음 벡터를 예측하는 하나의 스토리를 학습하기 때문에 앞뒤 문맥을 고려하여 문장을 생성하여, 올바른 문법과 일정한 스토리의 흐름을 고려한 문장을 생성하도록 함으로써 스토리의 질을 향상시킬 수 있다.
도 1 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치의 개념도이다.
도 2 는 순환 신경망 모델의 예시도이다.
도 3 은 순환 신경망을 이용한 인코더 디코더를 이용한 기계 번역의 예시도이다.
도 4 는 본 발명의 일 실시예에 따른 문장 벡터 변환 모델의 개념도이다.
도 5 는 본 발명의 일 실시예에 따른 후속 문장 예측 모델의 개념도이다.
도 6 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법의 흐름도이다.
도 7 은 도 6 의 문장 벡터 변환 모델 생성 단계의 상세 흐름도이다.
도 8 은 도 6 의 후속 문장 예측 모델 생성 단계의 상세 흐름도이다.
도 9 는 도 6 의 출력 문단 데이터 생성 단계의 상세 흐름도이다.
도 10 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치의 구성을 나타내는 블록도이다.
도 2 는 순환 신경망 모델의 예시도이다.
도 3 은 순환 신경망을 이용한 인코더 디코더를 이용한 기계 번역의 예시도이다.
도 4 는 본 발명의 일 실시예에 따른 문장 벡터 변환 모델의 개념도이다.
도 5 는 본 발명의 일 실시예에 따른 후속 문장 예측 모델의 개념도이다.
도 6 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법의 흐름도이다.
도 7 은 도 6 의 문장 벡터 변환 모델 생성 단계의 상세 흐름도이다.
도 8 은 도 6 의 후속 문장 예측 모델 생성 단계의 상세 흐름도이다.
도 9 는 도 6 의 출력 문단 데이터 생성 단계의 상세 흐름도이다.
도 10 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치의 구성을 나타내는 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명은 입력되는 문장을 기반으로 문단을 형성하는 인공 신경망 기반의 문단 생성 방법을 통한 스토리텔링에 관한 것이다. 스토리텔링이란 상대방에게 알리고자 하는 바를 재미있고 생생한 이야기로 설득력 있게 전달하는 행위이다. 텍스트 마이닝 분야에서 단어, 문장, 단락을 벡터로 표현하는 연구가 진행되면서 벡터를 이용한 텍스트 분류, 텍스트 생성이 가능해졌다. 하지만, 앞뒤 문맥이 맞는 텍스트를 생성하거나 문법이 올바른 텍스트를 생성하는 연구는 많이 진행되지 않았다. 종래의 순환 신경망 방법은 순환 신경망을 이용하여 임의의 단어 다음에 가장 높은 확률로 나올 단어를 예측할 뿐이어서, 단어와 단어 사이의 관계만 고려하기 때문에 여러 문장을 생성할 시 앞뒤 문맥이 맞는 문장을 생성하기 어려운 문제점이 있었다.
이러한 문제점을 해결하기 위한 본 발명은 단어와 단어 사이의 관계뿐만 아니라 문장과 문장 사이의 관계도 고려하여 문장을 생성하는 방법 및 장치에 관한 것으로서, 본 발명에서는 두 개의 순환 신경망으로 구성된 순환 신경망 인코더 디코더를 이용하여 문장을 벡터로 표현하도록 학습하여 임의의 벡터가 하나의 문장으로 맵핑될 수 있는 신경망 모델이 개시된다. 그리고 단락 내 문장들을 벡터로 표현한 후 벡터를 이용하여 다음 벡터를 예측하여 하나의 스토리를 학습하는 순환 신경망 모델이 개시된다.
도 1 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치의 개념도이다. 도 1 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치는 문장 데이터를 문장 벡터로 변환하기 위한 RNN 인코더 (1), 문장 벡터를 다시 문장 데이터로 변환하기 위한 RNN 디코더 (3) 를 포함함으로써, 임의의 문장에 대해서 하나의 벡터가 대응될 수 있는 순환 신경망 인코더 디코더 모델 (이하, '문장 벡터 변환 모델'로 지칭될 수 있음) 을 구현할 수 있다. 아울러, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법은 도 1 에 도시된 바와 같이 스토리텔링을 위한 순환 신경망 (2) 을 포함함으로써, 문장 데이터가 변환된 문장 벡터들 간의 관계를 학습하여 소정의 입력 문장 벡터에 후속하는 다음 문장 벡터를 예측하기 위한 순환 신경망 모델 (이하, '후속 문장 예측 모델'로 지칭될 수 있음) 을 구현할 수 있다. 이하, 도면을 참조하여 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법 및 장치에 대해서 보다 구체적으로 설명한다.
도 2 는 순환 신경망 모델의 예시도이다. 도 2 를 참조하여 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법에 이용될 수 있는 순환 신경망에 대해서 설명한다. 순환 신경망 (recurrent neural network, RNN)은 순차적인 데이터 속에서의 정보를 파악할 수 있는 순환 신경망이다. 종래의 신경망 구조에서는 모든 입력과 출력이 각각 독립적이라고 가정했지만, 음성 인식, 자연어 처리 등 시계열 데이터에서는 옳지 않은 방법이다. 예를 들어, 자연어의 처리에 있어서는 한 문장을 이루기 위한 단어의 종류, 단어의 위치, 단어의 쓰임 등이 다르다. 문장 내 단어와 단어의 관계, 문장과 문장의 관계 등에 따라서 문맥의 의미가 달라지기 때문이다. 순환 신경망은 모든 시퀀스마다 동일한 태스크를 적용하고 출력 결과는 이전의 계산 결과에 영향을 받는다. 일반적인 순환 신경망의 구조는 도 2 에 도시된 바와 같다. 즉, 순환 신경망은 시계열 데이터를 처리하기 위해, 매 시간 t 마다 은닉 상태 h 에 하기의 수학식 1을 이용하여 t 번째 나온 단어에서의 정보를 담을 수 있다.
여기서 f 함수는 비선형 구동 함수 (non-linear activation function) 이다. 비선형 구동 함수 f 는 보통 tanh 나 ReLU (Rectified Linear Unit) 가 사용된다. 은닉 상태 h 는 네트워크의 “메모리” 부분으로서 이전 시간 스텝의 은닉 상태와 현재 시간 스텝의 입력 값에 의해 계산이 될 수 있다.
현재까지의 정보를 담은 은닉 상태 h 를 이용하여 하기의 수학식 2 를 기반으로 출력 값 ot를 산출할 수 있다.
ot 는 시간 스텝 t 에서의 출력 값이다. 예를 들면 문장에서 다음 단어를 추측하고 싶다면 ot의 차원은 총 단어 수만큼의 차원의 확률 벡터가 될 것이다.
도 3 은 순환 신경망을 이용한 인코더 디코더를 이용한 기계 번역의 예시도이다. 도 3 을 참조하여, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법에 적용될 수 있는 순환 신경망 인코더 디코더에 대해서 설명한다. 순환 신경망 인코더 디코더는 기계 번역을 위해 두 개의 순환 신경망을 이용한 모델이다. 기계 번역이란 기계를 이용하여 임의의 언어의 문장을 다른 언어의 문장으로 번역해주는 것이다. 하지만, 기존의 순환 신경망은 어떤 입력 시퀀스를 다른 출력 시퀀스로 바꿔줄 수 있지만, 입력 시퀀스와 출력 시퀀스의 길이가 다르면 안된다는 문제점이 있다. 이를 해결한 방법이 순환 신경망 인코더-디코더이다. T 길이의 문장을 n 차원의 벡터로 인코딩하고, n차원의 백터를 T' 길이의 문장으로 디코딩하여 입력 시퀀스의 길이와 출력 시퀀스의 길이에 영향을 받지 않는다. 순환 신경망 ㅇ인코더-디코더의 구조는 도 3 에 도시된 바와 같다. 도 3 의 예시는 영어 문장 (20) 을 불어 문장 (24) 으로 바꾸기 위한 순환 신경망 인코더-디코더 구조이다. "The cat sat on the bed“ 라는 문장 (20) 을 d 차원의 백터 c (22) 로 인코딩하는 과정은 하기의 수학식 3 에 따를 수 있다.
ht는 인코더에서의 은닉 상태이다. 입력 문장의 길이가 T 일 경우, 시간 스텝 T 에서 d 차원의 백터인 c = hT 로 인코딩된다. 벡터 c (22) 는 입력 문장의 정보를 담는다. 다음으로, 백터 c (22) 를 “le chat assis sur le lit."으로 디코딩하는 과정은 하기의 수학식 4 에 따를 수 있다.
zt는 디코더에서의 은닉 상태이다. 디코더에서 이전 은닉 상태 zt -1과 백터 c (22) 를 이용하여 다음 zt를 출력한다. 이렇게 함으로써 입력 문장 길이는 출력 문장 길이에 영향을 미치지 않는다.
도 4 는 본 발명의 일 실시예에 따른 문장 벡터 변환 모델의 개념도이다. 도 4 를 참조하여, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법에 적용될 수 있는 문장 벡터 변환 모델에 대해서 설명한다.
본 발명의 일 실시예에 따른 문장 벡터 변환 모델은 전술한 순환 신경망 인코더-디코더 모델을 개선함으로써 구현될 수 있다. 순환 신경망 인코더-디코더는 가변 길이의 시퀀스를 고정된 길이의 벡터 표현으로 인코딩하고, 주어진 고정된 길이의 벡터 표현을 가변 길이의 시퀀스로 디코딩하기 위해 사용될 수 있다. 본 발명에 따른 문장 벡터 변환 모델은 문장 데이터와 문장 벡터를 서로 맵핑하기 위해 문장 데이터 (34) 를 입력으로 받아 문장 벡터 c (36) 를 생성하고, 이러한 문장 벡터 c (36) 을 이용하여 입력 문장 데이터 (34) 와 같은 문장 데이터 (38) 가 출력될 수 있도록 순환 신경망 인코더-디코더 모델을 학습시킴으로써 달성될 수 있다. 도 4 에 도시된 바와 같이, 본 발명에 따른 문장 벡터 변환 모델은 인코더 (30) 를 통해 입력된 문장 데이터 (34) 를 문장 벡터 (36) 으로 인코딩 할 수 있고, 이러한 문장 벡터 (36) 을 디코더 (32) 를 통해 다시 문장 데이터 (38) 로 디코딩할 수 있다.
먼저, 인코더 (30) 가 문장 데이터 (34) 를 문장 벡터 (36) 로 표현하기 위한 인코딩 과정은 하기의 수학식 5 에 따를 수 있다.
여기서, si 는 i 번째 노드에서의 은닉 상태를 나타내며, xi 는 i번째 단어를 나타내고, Ue 와 We 는 각각 입력 레이어와 은닉 레이어 사이의 가중치 (weight), 은닉 레이어와 은닉 레이어 사이의 가중치를 나타낸다. 또한, 문장 데이터 (34) 에 대한 문장 벡터 c (36) 는 하기의 수학식 6 과 같이 마지막 은닉 상태, 즉 n 번째 은닉 상태 sn 으로서 표현될 수 있다.
다음으로 문장 벡터 (36) 를 다시 문장 데이터 (38) 로 표현하는 디코딩 과정은 하기의 수학식 7 에 따를 수 있다.
여기서, zi 는 i 번째 노드에서의 은닉 상태를 나타내며, oi 는 i 번째 노드에서 확률이 가장 높은 단어를 나타내고, 는 출력 레이어와 은닉 레이어 사이의 가중치, 는 상기 문장 벡터와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치, 는 출력 레이어와 은닉 레이어 사이의 가중치를 나타낼 수 있다. 입력 문장 데이터 (34) 가 들어왔을 때 인코더 (30) 를 이용하여 벡터 c (36) 를 생성하고 디코더 (32) 를 이용하여 입력 문장 데이터 (34) 와 같은 문장 데이터 (38) 로 출력하도록 순환 신경망 인코더-디코더 모델을 학습시킴으로써 문장 벡터 변환 모델이 생성될 수 있다.
도 5 는 본 발명의 일 실시예에 따른 후속 문장 예측 모델의 개념도이다. 도 5 를 참조하여, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법에 적용될 수 있는 후속 문장 예측 모델에 대해서 설명한다.
본 발명의 일 실시예에 따른 후속 문장 예측 모델은 순환 신경망으로 하여금 문서 데이터 세트에 포함된 복수의 문장 데이터들에 각각 대응되는 문장 벡터들 간의 관계를 학습하도록 함으로써, 입력되는 문장 벡터에 대해서 다음 문장 벡터를 예측할 수 있도록 하는 것에 의해 구현될 수 있다. 즉, 본 발명의 일 실시예에 따른 후속 문장 예측 모델은 전술한 문장 벡터 변환 모델에 의해 변환된 문장 벡터들을 이용하여, 소정 문장 벡터에 대한 다음 문장 벡터를 예측하도록 학습하여 스토리에 맞게 문장을 생성할 수 있는 순환 신경망 모델이다. 도 5 에 도시된 바와 같이, 예를 들어 문서 데이터 세트에 포함되어 하나의 스토리를 이루는 단락 내의 문장들을 학습하는 것에 의해, 임의의 문장 벡터 (50) 가 입력되면 같은 스토리를 가지는 다음 문장 벡터 (51) 를 출력할 수 있다.
이러한 후속 문장 예측 모델을 형성하기 위해, 전술한 문장 벡터 변환 모델을 이용하여 복수의 문장 데이터들을 각각 대응하는 문장 벡터로 표현한 후 하나의 스토리를 갖는 단락 내의 임의의 문장 벡터가 입력으로 들어왔을 때 다음 문장 벡터를 예측할 수 있도록 학습할 수 있다. 스토리 생성 과정은 하기의 수학식 8 에 따를 수 있다.
여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 문장에 대한 벡터, 는 i 번째 다음 문장으로 예측될 벡터, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치, 는 출력 레이어와 은닉 레이어 사이의 가중치를 나타낼 수 있다.
상기와 같이 문장 데이터를 문장 벡터로 바꾼 후, 하나의 스토리를 갖는 문장 벡터의 집합 v1, v2, v3, … , vn 이 존재하는 경우, vi이 입력으로 들어왔을 때 다음 벡터를 vi+1 로 예측하도록 학습시킬 수 있다.
도 6 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법의 흐름도이다. 도 6을 참조하여, 전술한 문장 벡터 변환 모델 및 후속 문장 예측 모델을 기반으로 하는 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법에 대해서 보다 구체적으로 설명한다.
도 6 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 방법은 먼저 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 그 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성할 수 있다 (S610). 문서 데이터 세트는 적어도 하나의 스토리를 구성하는 복수의 문장 데이터들을 포함할 수 있고, 각각의 문장 데이터들은 소정의 스토리에 포함되어 순서를 가질 수 있다. 문서 데이터 세트는 메모리에 저장된 것일 수 있으며 원격지에 위치한 서버로부터 무선 통신을 통해 수신될 수도 있다.
문장 벡터 변환 모델의 생성 이후, 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성할 수 있다 (S620). 전술한 문서 데이터 세트에 포함된 복수의 문장 데이터들은 소정의 스토리에 포함되어 순서를 가질수 있으며, 후속 문장 예측 모델은 이러한 문장 데이터들간의 관계를 학습함으로써, 단어와 단어 사이의 관계 뿐만 아니라 문장과 문장 간의 관계를 고려하여 문맥에 맞는 문단을 형성하는 것에 의해, 더욱 자연스러운 스토리 텔링을 구현할 수 있다.
이후, 생성된 문장 벡터 변환 모델 및 후속 문장 예측 모델을 이용함으로써, 소정의 문장 데이터가 입력되는 경우에 이러한 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성 (S630) 함으로써, 하나의 입력 문장에 기초하여 보다 생생하고 자연스러운 문단이 생성될 수 있다.
도 7 은 도 6 의 문장 벡터 변환 모델 생성 단계의 상세 흐름도이다. 도 7 을 참조하여, 본 발명의 일 실시예에 따른 문장 벡터 변환 모델 생성 단계 (S610) 를 보다 구체적으로 설명한다. 전술한 바와 같이 문장 벡터 변환 모델 생성 단계에서는 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 그 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성할 수 있다.
도 7 및 앞서 예시한 도 4 를 참조하면, 문장 벡터 변환 모델은 먼저 제 1 순환 신경망 (예를 들어, 전술한 순환 신경망 인코더-디코더 모델의 인코더, 30) 를 이용하여 문장 데이터 (34) 를 그 문장 데이터 (34) 에 대응하는 문장 벡터 (36) 로 변환할 수 있다 (S611). 이후, 제 2 순환 신경망 (예를 들어, 전술한 순환 신경망 인코더-디코더 모델의 디코더, 32) 을 이용하여 앞서 변환된 문장 벡터 (36) 를 다시 변환한 출력 값 (38) 이 인코더 (32) 에 입력되었던 문장 데이터 (34) 와 동일해지도록 문장 벡터 변환 모델을 학습시킬 수 있다 (S613). 전술한 바와 같이, 문서 데이터 세트에는 복수의 문장 데이터들이 포함되어 있으므로, 복수의 문장 데이터들에 대해서 상기 S611 내지 S613을 반복 수행함으로써, 문장 벡터 변환 모델의 정확성을 보다 향상시킬 수 있다.
한편, 제 1 순환 신경망이 문장 데이터 (34) 를 문장 데이터 (34) 에 대응하는 문장 벡터 (36) 로 변환함에 있어서는 전술한 수학식 5 가 적용될 수도 있으며, 제 2 순환 신경망이 문장 벡터 (36) 를 변환하여 출력 값 (38) 을 도출함에 있어서는 전술한 수학식 7 이 적용될 수도 있다.
도 8 은 도 6 의 후속 문장 예측 모델 생성 단계의 상세 흐름도이다. 도 8 을 참조하여, 본 발명의 일 실시예에 따른 후속 문장 예측 모델 생성 단계를 보다 구체적으로 설명한다. 전술한 바와 같이, 후속 문장 예측 모델 생성 단계 (S620) 에서는 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성할 수 있다.
도 8 및 앞서 예시한 도 5 를 참조하면, 후속 문장 예측 모델은 먼저 문서 데이터 세트에 포함된 복수의 문장 데이터를 문장 벡터 변환 모델을 이용하여 복수의 문장 벡터로 변환할 수 있다 (S621). 이후, 후속 문장 예측 모델에 의한 현재 문장 벡터 (50) 에 대한 출력 값 (51) 이 문서 데이터 세트 내에서 현재 문장 데이터에 후속하는 문장 데이터에 대응하는 문장 벡터와 동일해지도록 후속 문장 예측 모델을 학습시킬 수 있다 (S623). 즉, 문서 데이터 세트 내에서 동일한 스토리에 포함되어 있던 제 1 문장 데이터, 제 2 문장 데이터 및 제 3 문장 데이터가 그 순서대로 위치하고 있던 경우에, 제 1 문장 데이터에 대응하는 제 1 문장 벡터를 후속 문장 벡터 예측 모델에 입력할 경우 그 출력으로서 제 2 문장 데이터에 대응하는 제 2 문장 벡터가 출력 값으로 산출될 수 있도록 상기 후속 문장 예측 모델을 학습시킬 수 있다. 여기서, 후속 문장 예측 모델은 전술한 수학식 8 을 기반으로 후속 문장 벡터를 예측할 수도 있다.
도 9 는 도 6 의 출력 문단 데이터 생성 단계의 상세 흐름도이다. 앞서 생성된 문장 벡터 변환 모델 및 후속 문장 예측 모델을 이용함으로써, 소정의 문장 데이터가 입력되는 경우에 이러한 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성 (S630) 할 수 있다. 도 9 에 도시된 바와 같이, 소정의 문장 데이터가 입력되면, 문장 벡터 변환 모델을 이용하여 입력 문장 데이터를 입력 문장 벡터로 변환할 수 있다 (S631). 이후, 후속 문장 예측 모델을 이용하여 입력 문장 벡터의 후속 문장 벡터를 예측할 수 있으며 (S633), 문장 벡터 변환 모델을 이용하여 입력 문장 벡터 및 후속 문장 벡터를 문장 데이터로 다시 변환함으로써, 출력 문단 데이터를 생성할 수 있다 (S635). 예를 들어, 전술한 바와 같이 문서 데이터 세트의 소정 스토리에 제 1 문장 데이터, 제 2 문장 데이터, 제 3 문장 데이터가 포함되어 있었고, 이러한 스토리가 문장 벡터 변환 모델 및 후속 문장 예측 모델에 의해 학습된 경우라면, 입력 문장 데이터로서 제 1 문장 데이터가 입력된 경우 제 1 문장 벡터로 변환되고, 후속 문장 벡터로서 제 2 문장 벡터가 예측되며, 제 1 문장 벡터 및 제 2 문장 벡터가 제 1 문장 데이터 및 제 2 문장 데이터로 다시 변환되는 것에 의해 문단이 생성될 수 있다.
한편, 후속 문장 벡터를 예측 (S620) 함에 있어서는 사용자로부터 미리 입력된 개수만큼의 후속 문장 벡터를 예측하도록 할 수 있다. 예를 들어, 사용자가 5 개의 문장을 예측 하도록 입력한 경우, 입력 문장 데이터가 변환된 입력 문장 벡터 및 그에 후속하는 제 1 예측 문장 벡터를 예측하고, 제 1 예측 문장 벡터에 대한 제 2 예측 문장 벡터를 예측하는 것을 반복하는 것에 의해 제 1 내지 제 5 예측 문장 벡터를 예측함으로써 6 개의 문장으로 이루어진 문단을 생성할 수 있다.
일 측면에 따르면, 후속 문장 벡터를 예측 (S620) 함에 있어서는 후속 문장 벡터가 없는 것으로 예측될 때까지 상기 후속 문장 벡터의 예측을 반복할 수 있다. 예를 들어, 전술한 바와 같이 문서 데이터 세트에 포함된 소정의 스토리를 구성하는 문장 데이터로서 제 1 문장 데이터, 제 2 문장 데이터 및 제 3 문장 데이터가 포함되어 있고, 문장 벡터 변환 모델 및 후속 문장 예측 모델이 이를 미리 학습해둔 경우라면, 제 2 문장 데이터에 대응하는 제 3 문장 벡터에 대해서는 후속 문장이 없는 것으로 예측될 수 있으며, 제 1 문장 데이터가 입력되는 경우라면 제 1 문장 벡터, 제 2 문장 벡터, 제 3 문장 벡터가 예측되어 3 개의 문장으로 이루어진 문단이 형성되도록 할 수 있다.
상기와 같은 방법을 통해 임의의 문장을 벡터로 표현하도록 학습시키고, 문장들을 벡터로 표현한 후 벡터를 이용하여 다음 벡터를 예측하도록 학습시킬 수 있으며, 그에 따라 단어와 단어 사이의 관계 뿐만 아니라 문장과 문장 사이의 관계 및 문맥이 반영된 자연스러운 문단의 생성을 통한 스토리텔링이 구현될 수 있다.
도 10 은 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치의 구성을 나타내는 블록도이다. 도 10 을 참조하여, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치를 보다 구체적으로 설명한다.
도 10 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치 (1000) 는 먼저 문장 벡터 변환 모델 생성부 (1020), 후속 문장 예측 모델 생성부 (1030) 및 출력부 (1040) 를 포함할 수 있다.
문장 벡터 변환 모델 생성부 (1020) 는 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성할 수 있다. 또한, 후속 문장 예측 모델 생성부 (1030) 는 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성할 수 있다. 또한, 출력부 (1040) 는 문장 벡터 변환 모델 및 후속 문장 예측 모델을 이용하여 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성할 수 있다. 문장 벡터 변환 모델 생성부 (1020), 후속 문장 예측 모델 생성부 (1030) 및 출력부 (1040) 는 통합되어 하나의 프로세서로서 구현될 수 있으며, 각각 별개의 프로세서로서 구현될 수 있고, 일부 구성들 간의 병합을 통해 구현될 수도 있다.
한편, 문서 DB (1010) 는 문서 데이터 세트를 저장할 수 있으며, 본 발명의 일 실시예에 따른 인공 신경망 기반의 문단 생성 장치 (1000) 에 포함될 수도 있고 물리적으로 분리되어 유선 케이블 또는 무선 통신망을 통해 문서 데이터 세트를 문장 벡터 변환 모델 생성부 (1020) 또는 후속 문장 예측 모델 생성부 (1030) 에 제공할 수 있다.
일 측면에 따르면, 문장 벡터 변환 모델 생성부 (1020) 는, 제 1 순환 신경망 (1050) 을 이용하여 문서 DB (1010) 로부터 수신한 문서 데이터 세트에 포함된 문장 데이터를 상기 문장 데이터에 대응하는 문장 벡터로 변환하고, 제 2 순환 신경망 (1060) 을 이용하여 문장 벡터를 변환한 출력 값이 입력된 문장 데이터와 동일해지도록 문장 벡터 변환 모델을 학습시킬 수 있다. 제 1 순환 신경망이 문장 데이터를 그 문장 데이터에 대응하는 문장 벡터로 변환함에 있어서는 전술한 수학식 5 가 적용될 수 있으며, 제 2 순환 신경망이 문장 벡터를 변환한 출력 값을 도출함에 있어서는 전술한 수학식 7 이 적용될 수도 있다.
일 측면에 따르면, 후속 문장 예측 모델 생성부 (1030) 는, 문서 DB (1010) 로부터 수신한 문서 데이터 세트에 포함된 복수의 문장 데이터를 문장 벡터 변환 모델을 이용하여 복수의 문장 벡터로 변환하고 후속 문장 예측 모델에 의한 현재 문장 벡터에 대한 출력 값이 상기 문서 데이터 세트 내에서 현재 문장 데이터에 후속하는 문장 데이터에 대응하는 문장 벡터와 동일해지도록 후속 문장 예측 모델을 학습시킬 수 있다. 여기서, 전술한 수학식 8 을 기반으로 후속 문장 벡터를 예측할 수 있다. 한편, 후속 문장 예측 모델은 제 3 순환 신경망 (1070) 을 학습시키는 것에 의해 구현될 수도 있다.
도 10 에는 제 1 순환 신경망 (1050), 제 2 순환 신경망 (1060) 및 제 3 순환 신경망 (1070) 이 인공 신경망 기반의 문단 생성 장치 (1000) 에 포함되는 것으로 예시적으로 도시되었으나, 인공 신경망 분야의 통상의 지식을 가진 자에게 상기와 같은 제 1 순환 신경망 (1050), 제 2 순환 신경망 (1060) 및 제 3 순환 신경망 (1070) 은 인공 신경망 기반의 문단 생성 장치 (1000) 와 물리적으로 분리되어 별도의 엔티티로서 존재할 수 있으며, 유선 또는 무선 통신을 통해 인공 신경망 기반의 문단 생성 장치 (1000) 와 데이터의 송수신을 통해 학습될 수 있음은 자명할 것이다.
일 측면에 따르면, 출력부 (1040) 는, 소정의 문장 데이터가 입력될 경우에 문장 벡터 변환 모델을 이용하여 상기 소정의 입력 문장 데이터를 입력 문장 벡터로 변환하고, 후속 문장 예측 모델을 이용하여 입력 문장 벡터의 후속 문장 벡터를 예측한 뒤, 문장 벡터 변환 모델을 이용하여 입력 문장 벡터 및 후속 문장 벡터를 문장 데이터로 변환함으로써 출력 문단 데이터를 생성할 수 있다. 인공 신경망 기반의 문단 생성 장치 (1000) 는 사용자로부터 예측할 후속 문장 벡터의 개수를 입력받는 입력부 (1080) 를 더 포함할 수 있으며, 출력부 (1040) 는 입력부 (1080) 를 통해 입력된 개수의 후속 문장 벡터를 예측할 수 있다. 또는, 출력부 (1040) 는 후속 문장 벡터가 없는 것으로 예측될 때까지 후속 문장 벡터의 예측을 반복할 수도 있다.
한편, 인공 신경망 기반의 문단 생성 장치 (1000) 는 표시부 (1090) 을 더 포함할 수도 있고, 표시부 (1090) 를 통해 생성된 문단을 표시함으로써 사용자에게 생성된 문단을 전달할 수 있다. 표시부 (1090) 는 디스플레이 장치에 국한되지 않으며 예를 들어 TTS 기능을 통해 스피커로 생성된 문단을 읽어주는 방식이 적용될 수도 있다.
상술한 본 발명에 따른 인공 신경망 기반의 문단 생성 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM (Read Only Memory), RAM (Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1000 : 인공 신경망 기반의 문단 생성 장치
1010 : 문서 DB
1020 : 문장 벡터 변환 모델 생성부
1030 : 후속 문장 예측 모델 생성부
1040 : 출력부
1050 : 제 1 순환 신경망
1060 : 제 2 순환 신경망
1070 : 제 3 순환 신경망
1080 : 입력부
1090 : 표시부
1010 : 문서 DB
1020 : 문장 벡터 변환 모델 생성부
1030 : 후속 문장 예측 모델 생성부
1040 : 출력부
1050 : 제 1 순환 신경망
1060 : 제 2 순환 신경망
1070 : 제 3 순환 신경망
1080 : 입력부
1090 : 표시부
Claims (19)
- 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하는 단계;
상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하는 단계; 및
상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 이용하여 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하는 단계를 포함하고,
상기 문장 벡터 변환 모델을 생성하는 단계는,
제 1 순환 신경망을 이용하여 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하는 단계; 및
제 2 순환 신경망을 이용하여 상기 문장 벡터를 변환한 출력 값이 상기 문장 데이터와 동일해지도록 상기 문장 벡터 변환 모델을 학습시키는 단계를 포함하며,
상기 제 1 순환 신경망은 하기 수학식을 기반으로 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하는, 컴퓨터에 의한 인공 신경망 기반의 문단 생성 방법.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 단어, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치를 나타내고, 상기 문장 벡터는 마지막 은닉 상태 으로 표현됨. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 후속 문장 예측 모델을 생성하는 단계는,
상기 문서 데이터 세트에 포함된 복수의 문장 데이터를 상기 문장 벡터 변환 모델을 이용하여 복수의 문장 벡터로 변환하는 단계; 및
상기 후속 문장 예측 모델에 의한 현재 문장 벡터에 대한 출력 값이 상기 문서 데이터 세트 내에서 현재 문장 데이터에 후속하는 문장 데이터에 대응하는 문장 벡터와 동일해지도록 상기 후속 문장 예측 모델을 학습시키는 단계를 포함하는, 컴퓨터에 의한 인공 신경망 기반의 문단 생성 방법. - 제 1 항에 있어서,
상기 출력 문단 데이터를 생성하는 단계는,
상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 데이터를 입력 문장 벡터로 변환하는 단계;
상기 후속 문장 예측 모델을 이용하여 상기 입력 문장 벡터의 후속 문장 벡터를 예측하는 단계; 및
상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 벡터 및 후속 문장 벡터를 문장 데이터로 변환함으로써 상기 출력 문단 데이터를 생성하는 단계를 포함하는, 컴퓨터에 의한 인공 신경망 기반의 문단 생성 방법. - 제 7 항에 있어서,
상기 후속 문장 벡터를 예측하는 단계는 미리 입력된 개수의 후속 문장 벡터를 예측하는, 컴퓨터에 의한 인공 신경망 기반의 문단 생성 방법. - 제 7 항에 있어서,
상기 후속 문장 벡터를 예측하는 단계는 후속 문장 벡터가 없는 것으로 예측될 때까지 상기 후속 문장 벡터의 예측을 반복하는, 컴퓨터에 의한 인공 신경망 기반의 문단 생성 방법. - 문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하는 문장 벡터 변환 모델 생성부;
상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하는 후속 문장 예측 모델 생성부; 및
상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 이용하여 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하는 출력부를 포함하고,
상기 문장 벡터 변환 모델 생성부는,
제 1 순환 신경망을 이용하여 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하고; 그리고
제 2 순환 신경망을 이용하여 상기 문장 벡터를 변환한 출력 값이 상기 문장 데이터와 동일해지도록 상기 문장 벡터 변환 모델을 학습시키며,
상기 제 1 순환 신경망은 하기 수학식을 기반으로 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하는, 인공 신경망 기반의 문단 생성 장치.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 단어, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치를 나타내고, 상기 문장 벡터는 마지막 은닉 상태 으로 표현됨. - 삭제
- 삭제
- 제 10 항에 있어서,
상기 후속 문장 예측 모델 생성부는,
상기 문서 데이터 세트에 포함된 복수의 문장 데이터를 상기 문장 벡터 변환 모델을 이용하여 복수의 문장 벡터로 변환하고; 그리고
상기 후속 문장 예측 모델에 의한 현재 문장 벡터에 대한 출력 값이 상기 문서 데이터 세트 내에서 현재 문장 데이터에 후속하는 문장 데이터에 대응하는 문장 벡터와 동일해지도록 상기 후속 문장 예측 모델을 학습시키는, 인공 신경망 기반의 문단 생성 장치. - 제 10 항에 있어서,
상기 출력부는,
상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 데이터를 입력 문장 벡터로 변환하고;
상기 후속 문장 예측 모델을 이용하여 상기 입력 문장 벡터의 후속 문장 벡터를 예측하고; 그리고
상기 문장 벡터 변환 모델을 이용하여 상기 입력 문장 벡터 및 후속 문장 벡터를 문장 데이터로 변환함으로써 상기 출력 문단 데이터를 생성하는, 인공 신경망 기반의 문단 생성 장치. - 제 16 항에 있어서,
상기 인공 신경망 기반의 문단 생성 장치는 사용자로부터 예측할 후속 문장 벡터의 개수를 입력받는 입력부를 더 포함하고,
상기 출력부는 상기 입력부를 통해 입력된 개수의 후속 문장 벡터를 예측하는, 인공 신경망 기반의 문단 생성 장치. - 제 16 항에 있어서,
상기 출력부는 후속 문장 벡터가 없는 것으로 예측될 때까지 상기 후속 문장 벡터의 예측을 반복하는, 인공 신경망 기반의 문단 생성 장치. - 컴퓨터 판독 가능한 저장 매체로서, 상기 컴퓨터에 포함된 프로세서로 하여금,
문서 데이터 세트에 포함된 복수의 문장 데이터를 기반으로 머신 러닝을 통해 문장 데이터와 상기 문장 데이터에 대응하는 문장 벡터 간의 상호 변환을 위한 문장 벡터 변환 모델을 생성하도록 하기 위한 명렁어;
상기 복수의 문장 데이터에 각각 대응하는 복수의 문장 벡터를 기반으로 머신 러닝을 통해 현재 문장 벡터에 대한 후속 문장 벡터를 예측하기 위한 후속 문장 예측 모델을 생성하도록 하기 위한 명령어; 및
상기 문장 벡터 변환 모델 및 상기 후속 문장 예측 모델을 기반으로 하나의 입력 문장 데이터에 대응하는 출력 문단 데이터를 생성하도록 하기 위한 명령어를 포함하고,
상기 문장 벡터 변환 모델을 생성하는 것은,
제 1 순환 신경망을 이용하여 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하는 것; 및
제 2 순환 신경망을 이용하여 상기 문장 벡터를 변환한 출력 값이 상기 문장 데이터와 동일해지도록 상기 문장 벡터 변환 모델을 학습시키는 것을 포함하며,
상기 제 1 순환 신경망은 하기 수학식을 기반으로 상기 문장 데이터를 상기 문장 데이터에 대응하는 상기 문장 벡터로 변환하는, 컴퓨터 판독 가능한 저장 매체.
단, 여기서 는 i 번째 노드에서의 은닉 상태, 는 i 번째 단어, 는 입력 레이어와 은닉 레이어 사이의 가중치, 는 은닉 레이어와 은닉 레이어 사이의 가중치를 나타내고, 상기 문장 벡터는 마지막 은닉 상태 으로 표현됨.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160112691A KR101842362B1 (ko) | 2016-09-01 | 2016-09-01 | 인공 신경망 기반의 문단 생성 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160112691A KR101842362B1 (ko) | 2016-09-01 | 2016-09-01 | 인공 신경망 기반의 문단 생성 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180025691A KR20180025691A (ko) | 2018-03-09 |
KR101842362B1 true KR101842362B1 (ko) | 2018-03-26 |
Family
ID=61728189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160112691A KR101842362B1 (ko) | 2016-09-01 | 2016-09-01 | 인공 신경망 기반의 문단 생성 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101842362B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11822768B2 (en) | 2019-03-13 | 2023-11-21 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for controlling machine reading comprehension based guide user interface |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102232642B1 (ko) * | 2018-05-03 | 2021-03-26 | 주식회사 케이티 | 스토리 컨텐츠에 대한 음향 효과를 제공하는 미디어 재생 장치 및 음성 인식 서버 |
KR102352251B1 (ko) * | 2018-06-20 | 2022-01-17 | 강원대학교 산학협력단 | 자질 선별을 통한 고성능 기계독해 방법 |
KR102194200B1 (ko) * | 2018-11-23 | 2020-12-24 | 디비디스커버코리아 주식회사 | 인공신경망 모델을 이용한 뉴스 기사 분석에 의한 주가지수 예측 방법 및 장치 |
KR102326473B1 (ko) * | 2019-05-29 | 2021-11-15 | 서울시립대학교 산학협력단 | 텍스트 감성 분석 장치 및 방법 |
KR102494585B1 (ko) * | 2019-12-27 | 2023-02-03 | 주식회사 투블럭에이아이 | 휴먼 인터랙티브 ai를 사용한 반자동 작문 방법 및 장치 |
CN113627135B (zh) | 2020-05-08 | 2023-09-29 | 百度在线网络技术(北京)有限公司 | 一种招聘岗位描述文本的生成方法、装置、设备及介质 |
KR102550753B1 (ko) * | 2021-11-12 | 2023-07-04 | 주식회사 솔트룩스 | 개체명 교정 시스템 및 이를 훈련시키는 방법 |
KR102627819B1 (ko) * | 2023-03-09 | 2024-01-23 | 주식회사 스파이스웨어 | 인공지능을 이용한 문맥 내 개인정보 판단 장치, 방법 및 컴퓨터 프로그램 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101400636B1 (ko) * | 2013-10-12 | 2014-05-30 | 김대수 | 사람처럼 생각하는 인공지능 알고리즘 |
US20150220833A1 (en) | 2014-01-31 | 2015-08-06 | Google Inc. | Generating vector representations of documents |
-
2016
- 2016-09-01 KR KR1020160112691A patent/KR101842362B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101400636B1 (ko) * | 2013-10-12 | 2014-05-30 | 김대수 | 사람처럼 생각하는 인공지능 알고리즘 |
US20150220833A1 (en) | 2014-01-31 | 2015-08-06 | Google Inc. | Generating vector representations of documents |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11822768B2 (en) | 2019-03-13 | 2023-11-21 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for controlling machine reading comprehension based guide user interface |
Also Published As
Publication number | Publication date |
---|---|
KR20180025691A (ko) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101842362B1 (ko) | 인공 신경망 기반의 문단 생성 방법 및 장치 | |
JP7504188B2 (ja) | エンドツーエンド音声合成システムにおける表現度の制御 | |
CN112735373B (zh) | 语音合成方法、装置、设备及存储介质 | |
CN109785824B (zh) | 一种语音翻译模型的训练方法及装置 | |
US10049106B2 (en) | Natural language generation through character-based recurrent neural networks with finite-state prior knowledge | |
CN106910497B (zh) | 一种中文词语发音预测方法及装置 | |
CN111143535B (zh) | 用于生成对话模型的方法和装置 | |
Arisoy et al. | Bidirectional recurrent neural network language models for automatic speech recognition | |
CN110326002B (zh) | 使用在线注意的序列处理 | |
CN110795552B (zh) | 一种训练样本生成方法、装置、电子设备及存储介质 | |
CN110782870A (zh) | 语音合成方法、装置、电子设备及存储介质 | |
JP2018026127A (ja) | 翻訳方法、翻訳装置及びコンピュータプログラム | |
CN111899716B (zh) | 一种语音合成方法和系统 | |
KR20180001889A (ko) | 언어 처리 방법 및 장치 | |
CN111382584A (zh) | 文本翻译方法、装置、可读存储介质和计算机设备 | |
CN111081230B (zh) | 语音识别方法和设备 | |
KR20200091797A (ko) | 음성 인식 장치 및 방법 | |
JP2021125217A (ja) | マルチホップ機械読み取りのための潜在質問再定式化および情報蓄積 | |
US11501168B2 (en) | Learning longer-term dependencies in neural network using auxiliary losses | |
US11322133B2 (en) | Expressive text-to-speech utilizing contextual word-level style tokens | |
KR20210083986A (ko) | 반지도 학습 기반 단어 단위 감정 임베딩과 lstm 모델을 이용한 대화 내에서 발화의 감정 분류 방법 | |
CN112863489B (zh) | 语音识别方法、装置、设备及介质 | |
KR20190053028A (ko) | 제약조건 영향력 제어 계층을 이용한 신경망 학습 기반의 신경망 기계 번역 장치 및 그 동작방법 | |
CN113240115A (zh) | 一种生成人脸变化图像模型的训练方法及相关装置 | |
CN117316140A (zh) | 语音合成方法、装置、设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |