KR102608469B1 - 자연어 생성 방법 및 장치 - Google Patents

자연어 생성 방법 및 장치 Download PDF

Info

Publication number
KR102608469B1
KR102608469B1 KR1020170178261A KR20170178261A KR102608469B1 KR 102608469 B1 KR102608469 B1 KR 102608469B1 KR 1020170178261 A KR1020170178261 A KR 1020170178261A KR 20170178261 A KR20170178261 A KR 20170178261A KR 102608469 B1 KR102608469 B1 KR 102608469B1
Authority
KR
South Korea
Prior art keywords
natural language
latent variable
word
input utterance
embedding vector
Prior art date
Application number
KR1020170178261A
Other languages
English (en)
Other versions
KR20190076452A (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 KR1020170178261A priority Critical patent/KR102608469B1/ko
Priority to US16/036,076 priority patent/US11100296B2/en
Publication of KR20190076452A publication Critical patent/KR20190076452A/ko
Application granted granted Critical
Publication of KR102608469B1 publication Critical patent/KR102608469B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/027Concept to speech synthesisers; Generation of natural phrases from machine-based concepts
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Abstract

입력 발화(utterance)에 대응하는 임베딩 벡터로부터 잠재변수(latent variable)를 생성하는 단계, 상기 생성된 잠재변수를 어텐션 모델(attention model)에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하는 단계 및 상기 계산된 어텐션 정보를 이용하여 입력 발화에 상응하는 자연어 응답(response)을 출력하는 단계를 포함하는 자연어 생성 방법이 제공된다.

Description

자연어 생성 방법 및 장치{METHOD AND APPARATUS FOR GENERATING NATURAL LANGUAGE}
아래의 설명은 자연어를 생성하는 방법 및 장치에 관한 것이다.
최근에 뉴럴 네트워크(neural network)를 이용하여 자연어를 생성하고, 기기 단말과 사용자 사이의 대화를 지원하는 다양한 어플리케이션에 자연어 생성 기술이 적용되고 있다. 위와 같은 기술 분야에 이용되는 뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현으로 모델링한 모델로서, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 뉴럴 네트워크는 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가진다.
일측에 따르면, 자연어 생성 방법이 제공된다. 상기 자연어 생성 방법은 입력 발화(utterance)에 대응하는 임베딩 벡터로부터 잠재변수(latent variable)를 생성하는 단계, 상기 생성된 잠재변수를 어텐션 모델(attention model)에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하는 단계 및 상기 계산된 어텐션 정보를 이용하여 입력 발화에 상응하는 자연어 응답(response)을 출력하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 잠재변수를 생성하는 단계는 입력 발화에 포함되는 각각의 단어의 임베딩 벡터로부터 단어 레벨의 잠재변수를 생성하는 단계를 포함할 수 있다.
다른 일실시예에 따르면, 상기 잠재변수를 생성하는 단계는 상기 각각의 단어의 임베딩 벡터를 미리 정의된 벡터 공간 내에서 소정 범위로 확장하여 생성된 확률 분포를 상기 단어 레벨의 잠재변수로서 생성하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 어텐션 정보를 계산하는 단계는 상기 단어 레벨의 잠재변수를 상기 어텐션 모델에 전달하여 상기 각각의 단어에 대응하는 어텐션 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 어텐션 정보를 계산하는 단계는 상기 입력 발화에 포함되는 복수의 단어들의 잠재변수들을 상기 어텐션 모델에 입력하여 상기 입력 발화 전체에 대응하는 어텐션 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 잠재변수를 생성하는 단계는 상기 입력 발화 전체에 대응하는 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 자연어 생성 방법은 상기 문장 레벨의 잠재변수에 대응하는 확률 분포로부터 미리 지정된 조건에 따라 샘플링된 임베딩 벡터를 디코딩 모델로 전달하는 단계를 더 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 자연어 응답을 출력하는 단계는 상기 문장 레벨의 잠재변수에 대응하여 샘플링된 임베딩 벡터 및 상기 단어 레벨의 잠재변수들로부터 계산된 어텐션 정보를 이용하여 상기 입력 발화에 상응하는 자연어 응답을 출력하는 단계를 더 포함할 수 있다.
다른 일측에 따르면, 자연어 생성 장치가 제공된다. 상기 자연어 생성 장치는 적어도 하나의 프로세서 및 상기 프로세서에 의해 실행될 인스트럭션들(instructions)을 저장하는 적어도 하나의 메모리를 포함할 수 있다. 상기 인스트럭션들을 수행하는 것에 의해 상기 프로세서는, 입력 발화에 대응하는 임베딩 벡터로부터 잠재변수를 생성하고, 상기 생성된 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하고, 상기 계산된 어텐션 정보를 이용하여 입력 발화에 상응하는 자연어 응답을 출력할 수 있다.
또 다른 일측에 따르면, 자연어 생성 방법은 입력 발화 전체에 대응하는 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성하는 단계, 상기 문장 레벨의 잠재변수와 상기 입력 발화에 포함되는 각각의 단어의 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성하는 단계, 상기 생성된 단어 레벨의 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하는 단계 및 상기 계산된 어텐션 정보를 이용하여 입력 발화에 대응하는 자연어 응답을 출력하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 단어 레벨의 잠재변수를 생성하는 단계는 상기 각각의 단어의 제2 임베딩 벡터와 상기 문장 레벨의 잠재변수에 기초하여, 상기 제2 임베딩 벡터를 미리 정의된 벡터 공간에서 소정 범위로 확장한 확률 분포를 상기 단어 레벨의 잠재변수로서 생성하는 단계를 포함할 수 있다.
다른 일실시예에 따르면, 상기 어텐션 정보를 계산하는 단계는 상기 단어 레벨의 잠재변수를 상기 어텐션 모델에 전달하여 상기 각각의 단어에 대응하는 어텐션 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 자연어 생성 방법은 상기 문장 레벨의 잠재변수에 대응하는 확률 분포로부터 미리 지정된 조건에 따라 샘플링된 제3 임베딩 벡터를 디코딩 모델로 전달하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계는 상기 제3 임베딩 벡터와 상기 어텐션 정보를 상기 디코딩 모델에 적용하여 상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계는 상기 어텐션 정보에 의해 정의되는 키워드(keyword)의 벡터 공간 내에서 상기 제3 임베딩 벡터를 디코딩하여 상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 자연어 생성 장치가 제공된다. 상기 자연어 생성 장치는 적어도 하나의 프로세서 및 상기 프로세서에 의해 실행될 인스트럭션들(instructions)을 저장하는 적어도 하나의 메모리를 포함할 수 있다. 상기 인스트럭션들을 수행하는 것에 의해 상기 프로세서는, 입력 발화 전체에 대응하는 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성하고, 상기 문장 레벨의 잠재변수와 상기 입력 발화에 포함되는 각각의 단어의 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성하고, 상기 생성된 단어 레벨의 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하고, 상기 계산된 어텐션 정보를 이용하여 입력 발화에 대응하는 자연어 응답을 출력할 수 있다.
도 1은 일실시예에 따른 자연어 생성 장치의 동작을 설명하는 예시도이다.
도 2a 및 도 2b는 일실시예에 따른 자연어 생성 장치를 도시하는 블록도이다.
도 3은 도 2a의 자연어 생성 장치가 자연어를 생성하는 과정을 설명하는 흐름도이다.
도 4는 일실시예에 따라 잠재변수를 생성하는 과정을 설명하는 예시도이다.
도 5a 및 도 5b는 다른 일실시예에 따른 자연어 생성 장치를 도시하는 블록도이다.
도 6은 도 5a의 자연어 생성 장치가 자연어를 생성하는 과정을 설명하는 흐름도이다.
도 7은 다른 일실시예에 따라 잠재변수를 생성하는 과정을 설명하는 예시도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일실시예에 따른 자연어 생성 장치의 동작을 설명하는 예시도이다. 도 1을 참조하면, 사용자(110)의 발화(utterance)(130)에 대응하여 자연어 응답(response)(140)을 생성하는 자연어 생성 장치(120)가 도시된다. 이하의 설명에서, 자연어(natural language)는 인간이 일상적으로 사용하는 언어로서, 모스 부호나 컴퓨터 프로그래밍 코드와 같은 인공언어와 대비되는 개념을 나타낸다. 사용자(110)는 일상에서 사용하는 자연어를 이용하여 "A"라는 발화(130)를 수행함으로써 자연어 생성 장치(120)와 대화를 수행할 수 있다. 또한, 자연어 생성 장치(120)는 사용자(110)의 동일한 입력 발화(130) "A"에 반응하여 다양한 자연어 응답(140)(B1, B2, B3 등)을 생성할 수 있다. 구체적으로, 자연어 생성 장치(120)는 발화가 이뤄진 시간, 조건, 환경과 같은 컨텍스트(context) 정보 등을 고려하여 "A"라는 입력 발화(130)에 대해 B1, B2, B3 등과 같은 복수의 자연어 응답(140)을 생성해낼 수 있다.
자연어 생성 장치(120)에 관한 실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 텔레비전, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다. 예를 들어, 실시예들은 스마트 폰, 모바일 기기, 스마트 홈 시스템 등에서 사용자를 인식하는데 적용될 수 있다. 실시예들은 사용자 인식을 통한 결제 서비스에 적용될 수 있다. 또한, 실시예들은 사용자를 인식하여 자동으로 시동을 거는 지능형 자동차 시스템 등에도 적용될 수 있다. 앞서 기재된 자연어 생성 장치(120)의 이용에 관한 실시예들은 이해를 돕기 위한 예시적 기재일 뿐 다른 실시예를 제한하거나 한정하는 것으로 해석하여서는 안될 것이다.
자연어 생성 장치(120)는 학습 과정을 통해 미리 학습된 내부의 뉴럴 네트워크 모델을 이용하여 사용자(110)의 발화(130)에 대응하는 자연어 응답(140)을 생성할 수 있다. 구체적으로, 자연어 생성 장치(120)는 사용자의 입력 발화(130)를 인코딩하여 임베딩 벡터를 생성하는 인코더 및 생성된 임베딩 벡터를 디코딩하여 자연어 응답(140)을 생성하는 디코더를 뉴럴 네트워크 모델을 이용하여 구현할 수 있다. 이를테면, 뉴럴 네트워크 모델에는 이전 시간의 히든 레이어(hidden layer) 출력값이 현재 시간의 히든 레이어에 다시 입력되는 리커런트 뉴럴 네트워크(RNN: recurrent neural network)나 심층 신경망(DNN: deep neural network) 또는 콘볼루셔널 신경망(CNN: convolutional neural network)과 같은 다양한 형태의 뉴럴 네트워크가 이용될 수 있을 것이다.
도 2a 및 도 2b는 일실시예에 따른 자연어 생성 장치를 도시하는 블록도이다. 도 2a를 참조하면, 자연어 생성 장치(200)는 인코더(210), 제1 잠재변수 생성부(220), 제2 잠재변수 생성부(230), 어텐션 정보 계산부(240) 및 디코더(250)를 포함할 수 있다. 인코더(210)는 입력된 사용자의 발화에 대응하는 임베딩 벡터(embedding vector)를 생성할 수 있다. 상기 임베딩 벡터는 사용자 발화의 의미와 구조를 나타내는 벡터를 나타낼 수 있다. 구체적으로, 인코더(210)는 다양한 형태의 뉴럴 네트워크 모델로 구현될 수 있다. 인코더(210)는 사용자의 발화에 대응하여 생성된 임베딩 벡터를 제1 잠재변수 생성부(220) 및 제2 잠재변수 생성부(230) 각각으로 전달할 수 있다.
제1 잠재변수 생성부(220)는 인코더(210)로부터 전달되는 임베딩 벡터를 이용하여 문장 레벨의 잠재변수를 생성할 수 있다. 구체적으로, 제1 잠재변수 생성부(220)는 인코더(210)로부터 사용자의 입력 발화 전체에 대응하는 제1 임베딩 벡터를 전달 받을 수 있다. 예시적으로, 제1 임베딩 벡터는 사용자 발화의 문장의 시작(begin of sentence)에서부터 문장의 끝(end of sentence)에 상응하는 정보를 포함할 수 있다. 제1 잠재변수 생성부(220)는 전달된 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성할 수 있다. 예시적으로, 문장 레벨의 잠재변수는 미리 정의된 벡터 공간 내에서 지정된 포인트를 중심으로 가우시안 정규 분포의 확률 분포를 따르는 변수를 나타낼 수 있다. 상기 지정된 포인트는 상기 제1 임베딩 벡터에 대응하는 포인트를 나타낼 수 있다.
제1 잠재변수 생성부(220)는 생성된 문장 레벨의 잠재변수에 대응하는 확률 분포로부터 미리 지정된 조건에 따라 샘플링된 임베딩 벡터를 생성할 수 있다. 일실시예로서, 제1 잠재변수 생성부(220)는 계산된 확률 분포 범위 내에서 임의적으로(randomly) 하나의 임베딩 벡터를 샘플링할 수 있다. 다른 일실시예로서, 제1 잠재변수 생성부(220)는 계산된 확률 분포 범위 내에서 미리 지정된 키워드(keyword)에 상응하는 범위 내의 임베딩 벡터를 샘플링할 수 있다. 제1 잠재변수 생성부(220)는 샘플링된 임베딩 벡터를 디코더(250)로 전달할 수 있다.
제2 잠재변수 생성부(230)는 인코더(210)로부터 전달되는 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성할 수 있다. 그러나 제1 잠재변수 생성부(220)와는 상이하게, 제2 잠재변수 생성부(230)는 입력 발화에 포함되는 각각의 단어에 대한 임베딩 벡터로부터 단어 레벨의 잠재 변수를 생성할 수 있다. 구체적으로, 제2 잠재변수 생성부(230)는 각각의 단어에 대응하는 제2 임베딩 벡터로부터 단어 레벨의 잠재변수를 생성할 수 있다. 제2 잠재변수 생성부(230)는 미리 지정된 벡터 공간 내에서 각각의 단어에 대응하는 포인트를 소정 범위로 확장할 수 있다. 보다 구체적으로, 상기 포인트는 제2 임베딩 벡터로 정의될 수 있다. 또한, 제2 잠재변수 생성부(230)는 상기 제2 임베딩 벡터를 이용하여 생성된 확률 분포를 단어 레벨의 잠재변수로서 생성할 수 있다. 제2 잠재변수 생성부(230)는 생성된 단어 레벨의 잠재변수를 어텐션 정보 계산부(240)로 전달할 수 있다.
어텐션 정보 계산부(240)는 제2 잠재변수 생성부(230)로부터 전달된 단어 레벨의 잠재변수를 미리 정의된 어텐션 모델에 적용하여 입력 발화에 대한 어텐션 정보를 계산할 수 있다. 어텐션 모델은 미리 학습된 뉴럴 네트워크를 이용하여 입력 발화에 상응하는 어텐션 정보를 생성하는 모델을 나타낼 수 있다. 또한, 어텐션 정보(attention information)는 디코딩 과정에서 자연어 응답을 생성하기 위해 입력 발화의 어떤 정보에 가중치를 두어야 하는지를 나타내는 정보일 수 있다. 어텐션 정보 계산부(240)는 계산된 어텐션 정보를 디코더(250)로 출력할 수 있다.
디코더(250)는 전달된 어텐션 정보 및 샘플링된 임베딩 벡터를 이용하여 사용자에게 자연어 응답을 출력할 수 있다. 본 실시예의 자연어 생성 장치(200)는 문장 레벨의 임베딩 벡터뿐만 아니고 어텐션 정보를 생성하는데 있어서도 잠재변수를 이용할 수 있다. 그에 따라, 디코딩 과정에서 중요도를 갖는 단어라 할지라도 동일한 의미 범위 내에서 다양한 표현의 응답을 생성할 수 있는 자연어 생성 장치(200)가 구현될 수 있다.
또한, 자연어 생성 장치(200)는 도 2b와 같이 프로세서(261) 및 메모리(262)로 구성될 수도 있다. 메모리(262)는 자연어 생성 방법의 동작을 수행하는 프로그램을 기록할 수 있다. 프로세서(261)는 메모리(262)에 기록된 프로그램을 로딩하여 자연어 생성 방법의 동작을 수행할 수 있다. 또한, 메모리(262)는 인코더(210), 제1 잠재변수 생성부(220), 제2 잠재변수 생성부(230), 어텐션 정보 계산부(240) 및 디코더(250) 각각의 학습된 뉴럴 네트워크를 저장할 수 있다. 프로세서(261)는 사용자로부터 전달된 입력 발화와 메모리(262)에 저장된 정보를 이용하여 입력 발화에 상응하는 다양한 자연어 응답을 생성하고 출력할 수 있다.
도 3은 도 2a의 자연어 생성 장치가 자연어를 생성하는 과정을 설명하는 흐름도이다. 도 3을 참조하면, 자연어 생성 장치(200)가 자연어를 생성하는 방법은 입력 발화에 대응하는 임베딩 벡터로부터 잠재변수를 생성하는 단계(310), 상기 생성된 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하는 단계(320) 및 상기 계산된 어텐션 정보를 이용하여 입력 발화에 상응하는 자연어 응답을 출력하는 단계(330)를 포함할 수 있다.
단계(310)에서 자연어 생성 장치(200)는 입력 발화에 포함되는 각각의 단어의 임베딩 벡터로부터 단어 레벨의 잠재변수를 생성할 수 있다. 단어 레벨의 잠재변수는 특정 시점에서 인코더로 입력되는 단어가 동일한 의미 범위 내에서 다양한 표현으로 변화할 수 있도록 하는 확률 분포를 나타낼 수 있다. 구체적으로, 자연어 생성 장치(200)는 인코더로 특정 시점에 입력된 단어에 상응하는 단어 레벨의 잠재변수를 생성할 수 있다. 이를테면, 사용자로부터 자연어 생성 장치(200)로 "오늘 날씨 어때"라는 발화가 입력될 수 있다. 이 경우에, 자연어 생성 장치(200)는 제1 단어인 "오늘"에 대응하는 단어 레벨의 잠재변수, 제2 단어인 "날씨"에 대응하는 단어 레벨의 잠재변수 및 제3 단어인 "어때"에 대응하는 단어 레벨의 잠재변수를 각각 생성할 수 있다. 또한, 자연어 생성 장치(200)는 입력된 단어의 임베딩 벡터를 미리 정의된 벡터 공간 내에서 소정 범위로 확장한 확률 분포를 단어 레벨의 잠재변수로서 생성할 수 있다.
다른 일실시예로서, 자연어 생성 장치(200)는 입력 발화 전체에 대응하는 임베딩 벡터를 이용하여 문장 레벨의 잠재변수를 생성할 수도 있다. 앞선 실시예와 같이, 자연어 생성 장치(200) 내의 인코더로 "오늘 날씨 어때"라는 발화가 전달되는 경우가 존재할 수 있다. 이 경우에, 자연어 생성 장치(200)는 "오늘 날씨 어때"라는 입력 발화 전체에 대응하는 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성할 수 있다.
단계(320)에서 자연어 생성 장치(200)는 생성된 잠재변수를 어텐션 모델에 적용하여 입력 발화에 대한 어텐션 정보를 계산할 수 있다. 어텐션 모델은 입력 발화에 대한 어텐션 정보를 생성하는 뉴럴 네트워크 모델을 나타낼 수 있다. 어텐션 정보는 입력 발화에 대응하는 적절한 자연어 응답을 출력하기 위해, 상기 입력 발화의 어떤 정보를 확인해야 하는지를 나타내는 정보를 나타낸다. 예를 들면, 어텐션 정보는 입력 발화에 따라 뉴럴 네트워크 내의 연결 가중치(weight)를 조정하는 컨텍스트 벡터(context vector)를 포함할 수 있다. 구체적으로, 자연어 생성 장치(200)는 단어 레벨의 잠재변수를 어텐션 모델에 전달하여 각각의 단어에 대응하는 어텐션 정보를 계산할 수 있다. 본 실시예의 자연어 생성 장치(200)는 입력 발화의 단어 수준에서 적절한 응답을 생성하기 위해 어텐션 모델을 활용하면서도, 어텐션 정보를 생성하는 과정에서 단어 레벨의 잠재변수를 이용할 수 있도록 하여 다양한 응답 표현이 생성되도록 하는 효과를 제공할 수 있다.
다른 일실시예로서, 자연어 생성 장치(200)는 입력 발화에 포함되는 복수의 단어들의 잠재변수들을 어텐션 모델에 입력하여 상기 입력 발화 전체에 대응하는 어텐션 정보를 계산할 수도 있다.
단계(330)에서 자연어 생성 장치(200)는 상기 계산된 어텐션 정보를 이용하여 입력 발화에 상응하는 자연어 응답을 출력할 수 있다. 또한, 도 3에서 도시되지는 않았지만, 자연어 생성 장치(200)는 상기 문장 레벨의 잠재변수에 대응하는 확률 분포를 이용하여 샘플링된 임베딩 벡터를 디코딩 모델로 출력할 수 있다.
자연어 생성 장치(200)는 문장 레벨의 잠재변수에 대응하여 샘플링된 임베딩 벡터 및 단어 레벨의 잠재변수들로부터 계산된 어텐션 정보를 이용하여 상기 입력 발화에 상응하는 자연어 응답을 출력할 수 있다. 본 실시예의 자연어 생성 장치(200)는 어텐션 모델을 이용하면서도 단어 레벨의 잠재변수를 활용할 수 있어 어텐션 매카니즘(attention mechanism)과 잠재변수(latent variable) 사이에 존재할 수 있는 정확도와 다양성 사이의 불균형을 해소할 수 있다.
도 4는 일실시예에 따라 잠재변수를 생성하는 과정을 설명하는 예시도이다. 도 4를 참조하면, 자연어 생성 장치(200)에 포함되는 뉴럴 네트워크의 구조가 도시된다. 구체적으로, 도 4에는 입력 발화(410)를 전달 받아 임베딩 벡터를 생성하는 인코더(420)와 어텐션 정보 및 입력 발화 전체에 대응하여 샘플링된 임베딩 벡터를 이용하여 자연어 응답을 생성하는 디코더(460)의 뉴럴 네트워크 구조가 도시된다. 이하에서는 인코더(420)와 디코더(460) 각각이 리커런트 뉴럴 네트워크로 구현되는 실시예가 설명되나, 이는 이해를 돕기 위한 예시적 기재일 뿐, 다른 실시예를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다.
인코더(420)는 복수의 단어(W1, W2, … , Wn)를 포함하는 입력 발화(410)를 전달 받을 수 있다. 또한, 인코더(420)는 각각의 시간 구간에 대응하는 단어와 이전 시간의 히든 레이어 출력값을 이용하여 각각의 단어에 대응하는 임베딩 벡터를 출력할 수 있다. 다만, 첫 번째 단어 W1가 인코더(420)로 입력되는 시간 구간에서는 이전 시간의 히든 레이어 출력값으로서 미리 설정된 초기값이 입력될 수 있다.
제2 잠재변수 생성부(430)는 인코더(420)가 출력하는 각각의 단어에 대한 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성할 수 있다. 또한, 제2 잠재변수 생성부(430)는 생성된 단어 레벨의 잠재변수를 어텐션 정보 계산부(440)로 전달할 수 있다. 일실시예로서, 도 4와 같이 제2 잠재변수 생성부(430)는 인코더(420)의 출력 레이어의 출력값을 전달받도록 구현되는 뉴럴 네트워크 내의 하나의 레이어로서 구현될 수 있다. 이를테면, 제2 잠재변수 생성부(430)는 인코더(420)의 뉴럴 네트워크 구조와 연결되어 존재하는 어텐션 레이턴트 레이어(attention latent layer) 구조를 가질 수 있다.
어텐션 정보 계산부(440)는 제2 잠재변수 생성부(430)로부터 전달 받은 단어 레벨의 잠재변수를 이용하여 입력 발화에 대한 어텐션 정보를 계산할 수 있다. 어텐션 정보 계산부(440)가 어텐션 정보를 생성하는 과정에 대한 구체적인 설명은 앞서 도 3과 함께 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
제1 잠재변수 생성부(450)는 인코더(420)가 출력하는 입력 발화 전체에 대한 임베딩 벡터를 전달 받을 수 있다. 또한, 제1 잠재변수 생성부(450)는 입력 발화 전체에 대한 임베딩 벡터를 이용하여 문장 레벨의 잠재변수를 생성할 수 있다. 제1 잠재변수 생성부(450)는 문장 레벨의 잠재변수로 정의되는 확률 분포를 이용하여 하나의 임베딩 벡터를 샘플링할 수 있다. 또한, 제1 잠재변수 생성부(450)는 샘플링된 임베딩 벡터를 디코더(460)로 출력할 수 있다.
디코더(460)는 어텐션 정보 계산부(440)로부터 전달 받은 어텐션 정보와 제1 잠재변수 생성부(450)로부터 전달 받은 샘플링된 임베딩 벡터를 이용하여 입력 발화에 상응하는 자연어 응답(470)을 출력할 수 있다. 구체적으로, 자연어 응답(470) 역시 복수의 단어(R1, R2, … , Rm)를 포함할 수 있다. 자연어 응답(470)에 포함되는 복수의 단어(R1, R2, … , Rm)는 단어 레벨의 잠재변수를 이용한 어텐션 정보에 따라 생성되고, 동일한 입력 발화(W1, W2, … , Wn)가 전달되는 경우에도 잠재변수의 확률 분포에 따라 동일한 의미 범위 내에서 다양하게 변경될 수 있다.
도 5a 및 도 5b는 다른 일실시예에 따른 자연어 생성 장치를 도시하는 블록도이다. 도 5a를 참조하면, 자연어 생성 장치(500)는 인코더(510), 제1 잠재변수 생성부(520), 제2 잠재변수 생성부(530), 어텐션 정보 계산부(540) 및 디코더(550)를 포함할 수 있다. 인코더(510)는 사용자의 발화를 입력 받고, 입력된 사용자의 발화에 대응하는 임베딩 벡터를 생성할 수 있다. 일실시예로서, 인코더(510)는 사용자의 입력 발화 전체에 대응하는 제1 임베딩 벡터를 생성할 수 있다. 다른 일실시예로서, 인코더(510)는 사용자의 입력 발화 내의 각각의 단어에 대응하는 복수의 제2 임베딩 벡터를 생성할 수 있다. 어텐션 정보 계산부(540)는 제2 잠재변수 생성부(530)로부터 전달된 단어 레벨의 잠재변수를 미리 정의된 어텐션 모델에 적용하여 입력 발화에 대한 어텐션 정보를 계산할 수 있다. 어텐션 정보 계산부(540)는 계산된 어텐션 정보를 디코더(550)로 출력할 수 있다. 디코더(550)는 전달된 어텐션 정보 및 샘플링된 임베딩 벡터를 이용하여 사용자에게 자연어 응답을 출력할 수 있다. 인코더(510), 어텐션 정보 계산부(540) 및 디코더(550)에 대해서는 도 2a와 함께 기재된 설명이 그대로 적용될 수 있어, 중복되는 설명은 생략하기로 한다.
제1 잠재변수 생성부(520)는 인코더(510)로부터 전달되는 제1 임베딩 벡터를 이용하여 문장 레벨의 잠재변수를 생성할 수 있다. 그러나 도 5a의 실시예의 경우, 도 2a의 실시예와는 다르게, 생성된 문장 레벨의 잠재변수가 디코더(550) 및 제2 잠재변수 생성부(530)로 전달될 수 있다. 이 경우에, 제2 잠재변수 생성부(530)는 제1 잠재변수 생성부(520)로부터 전달된 문장 레벨의 잠재변수와 인코더(510)로부터 전달된 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성할 수 있다.
일실시예로서, 제2 잠재변수 생성부(530)는 제2 임베딩 벡터 각각이 나타내는 포인트를 미리 정의된 벡터 공간에서 소정 범위로 확장함으로써 확률 분포를 생성할 수 있다. 제2 잠재변수 생성부(530)가 입력된 제2 임베딩 벡터를 이용하여 상기 확률 분포를 생성하는 모델은 미리 학습될 수 있다. 또한, 제2 잠재변수 생성부(530)는 뉴럴 네트워크 내에 존재하는 하나의 레이어 형태로 구현될 수 있다.
또한, 제2 잠재변수 생성부(530)는 생성된 확률 분포 및 상기 문장 레벨의 잠재변수를 이용하여 각각의 단어 레벨의 잠재변수를 생성할 수 있다. 제2 잠재변수 생성부(530)는 단어 레벨의 잠재변수를 어텐션 정보 계산부(540)로 전달할 수 있다. 어텐션 정보 계산부(540)는 전달된 단어 레벨의 잠재변수를 이용하여 각각의 단어에 대응하는 어텐션 정보를 계산할 수 있다. 본 실시예에서, 자연어 생성 장치(500)는 각각의 단어의 의미에 상응하는 임베딩 벡터의 확률 분포와 사용자의 발화의 문장 전체의 임베딩 벡터를 함께 이용함으로써, 출력되는 자연어 응답이 동일한 의미를 가지면서 다양한 표현으로 변형되도록 하는 어텐션 정보를 제공할 수 있다.
또한, 도 2b와 같이 자연어 생성 장치(500)는 프로세서(561) 및 메모리(562)로 구성될 수도 있다. 메모리(562)는 자연어 생성 장치(500)가 자연어를 생성하는 방법의 동작을 수행하는 프로그램을 기록할 수 있다. 프로세서(561)는 메모리(562)에 기록된 프로그램을 로딩하여 자연어 생성 방법의 동작을 수행할 수 있다. 또한, 메모리(562)는 인코더(510), 제1 잠재변수 생성부(520), 제2 잠재변수 생성부(530), 어텐션 정보 계산부(540) 및 디코더(550) 각각의 학습된 뉴럴 네트워크를 저장할 수 있다. 프로세서(561)는 사용자로부터 전달된 입력 발화와 메모리(562)에 저장된 정보를 이용하여 입력 발화에 상응하는 다양한 자연어 응답을 생성하고 출력할 수 있다.
도 6은 도 5a의 자연어 생성 장치가 자연어를 생성하는 과정을 설명하는 흐름도이다. 도 6를 참조하면, 자연어 생성 장치(500)가 자연어를 생성하는 방법은 입력 발화 전체에 대응하는 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성하는 단계(610), 상기 문장 레벨의 잠재변수와 상기 입력 발화에 포함되는 각각의 단어의 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성하는 단계(620), 상기 생성된 단어 레벨의 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하는 단계(630) 및 상기 계산된 어텐션 정보를 이용하여 입력 발화에 대응하는 자연어 응답을 출력하는 단계(640)를 포함할 수 있다.
단계(610)에서 자연어 생성 장치(500)는 입력 발화 전체에 대응하는 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성할 수 있다. 예시적으로, 제1 임베딩 벡터는 입력 발화 중 문장의 시작(start of sentence)에서부터 문장의 종료(end of sentence)까지의 의미 및 구조를 나타낼 수 있다.
단계(620)에서 자연어 생성 장치(500)는 단계(610)에서 생성된 문장 레벨의 잠재변수와 입력 발화에 포함되는 각각의 단어의 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성할 수 있다. 단어 레벨의 잠재변수가 생성되는 구체적인 과정에 대해서는 도 5a의 제2 잠재변수 생성부(530)의 설명이 그대로 적용될 수 있어 중복되는 설명은 생략 하기로 한다.
단계(630)에서 자연어 생성 장치(500)는 생성된 단어 레벨의 잠재변수를 어텐션 모델에 적용하여 입력발화에 대한 어텐션 정보를 계산할 수 있다.
또한, 단계(640)에서 자연어 생성 장치(500)는 계산된 어텐션 정보를 이용하여 입력 발화에 대응하는 자연어 응답을 출력할 수 있다. 도 6에 도시되지는 않았지만, 자연어 생성 장치(500)는 문장 레벨의 잠재변수에 대응하는 확률 분포로부터 미리 지정된 조건에 따라 샘플링된 제3 임베딩 벡터를 디코더로 전달할 수 있다. 이 경우에, 자연어 생성 장치(500)의 디코더는 제3 임베딩 벡터와 어텐션 정보를 미리 학습된 디코딩 모델에 적용하여 입력 발화에 대응하는 자연어 응답을 출력할 수 있다.
일실시예로서, 단계(640)에서 자연어 생성 장치(500)는 어텐션 정보에 의해 정의되는 키워드(keyword)의 벡터 공간 내에서 제3 임베딩 벡터를 디코딩하여 입력 발화 대응하는 자연어 응답을 출력할 수 있다. 상기 키워드의 벡터 공간은 단어 레벨의 잠재변수가 반영된 어텐션 정보에 의해 정의될 수 있다. 이에 따라 자연어 생성 장치(500)는 다양성을 가지며 동일한 의미를 나타내는 키워드의 벡터 공간을 정의할 수 있다.
도 7은 다른 일실시예에 따라 잠재변수를 생성하는 과정을 설명하는 예시도이다. 도 7을 참조하면, 자연어 생성 장치(500)에 포함되는 뉴럴 네트워크의 구조가 도시된다. 도 4와 마찬가지로, 자연어 생성 장치(500)는 입력 발화(710)를 전달 받아 임베딩 벡터를 생성하는 인코더(720)와 어텐션 정보 및 입력 발화 전체에 대응하여 샘플링된 임베딩 벡터를 이용하여 자연어 응답(770)을 생성하는 디코더(760)의 뉴럴 네트워크 구조가 도시된다. 인코더(720), 어텐션 정보 계산부(740) 및 디코더(760)에 대해서는 도 4와 함께 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
도 7의 제2 잠재변수 생성부(730)는 인코더(720)와 연결된 뉴럴 네트워크 내의 하나의 레이어 형태로 구현될 수 있다. 제2 잠재변수 생성부(730)는 어텐션 레이턴트 레이어로서 지칭될 수 있다. 제2 잠재변수 생성부(730)는 입력 발화에 포함되는 각각의 단어(W1, W2, … , Wn)에 대응하는 임베딩 벡터와 함께 제1 잠재변수 생성부(750)에 의해 생성된 문장 레벨의 잠재변수를 입력값으로서 전달 받을 수 있다. 이 경우에, 제2 잠재변수 생성부(730)는 각각의 단어에 대응하는 임베딩 벡터 및 문장 레벨의 잠재변수를 이용하여 생성된 단어 레벨의 잠재변수를 어텐션 정보 계산부(740)로 전달할 수 있다. 예를 들어, "김철수한테 전화 걸어줘"라는 입력 발화(710)가 인코더(720)로 전달되는 경우가 존재할 수 있다. 이 경우에, 제2 잠재변수 생성부(730)는 "김철수한테"라는 제1 단어에 대응하는 임베딩 벡터와 "김철수한테 전화 걸어줘"에 대응하는 문장 레벨의 잠재변수를 이용하여 "김철수한테"에 대응하는 단어 레벨의 잠재변수를 생성할 수 있다. 이러한 원리로, 제2 잠재변수 생성부(730)는 "전화"라는 제2 단어에 대응하는 임베딩 벡터 및 "걸어줘"라는 제3 단어에 대응하는 임베딩 벡터 각각과 "김철수한테 전화 걸어줘"에 대응하는 문장 레벨의 잠재변수를 이용하여 상기 제2 단어에 대응하는 단어 레벨의 잠재변수와 상기 제3 단어에 대응하는 단어 레벨의 잠재변수를 생성할 수 있다.
디코더(760)는 입력 발화에 포함되는 각각의 단어(W1, W2, … , Wn) 레벨의 잠재변수가 반영된 어텐션 정보와 문장 레벨의 잠재변수를 이용하여 자연어 응답(770)을 출력할 수 있다. 이에 따라, 자연어 생성 장치(500)는 어텐션 정보에도 동일한 의미 범위 내의 다양성을 확보할 수 있어, 다양한 변화를 갖는 자연어 응답을 생성하는 효과를 제공할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (16)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 프로세서에 의해 수행되는 자연어 생성 방법에 있어서,
    입력 발화 전체에 대응하는 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성하는 단계;
    상기 문장 레벨의 잠재변수와 상기 입력 발화에 포함되는 각각의 단어의 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성하는 단계;
    상기 생성된 단어 레벨의 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하는 단계; 및
    상기 계산된 어텐션 정보를 이용하여 입력 발화에 대응하는 자연어 응답을 출력하는 단계
    를 포함하는 자연어 생성 방법.
  11. 제10항에 있어서,
    상기 단어 레벨의 잠재변수를 생성하는 단계는,
    상기 각각의 단어의 제2 임베딩 벡터를 미리 정의된 벡터 공간에서 소정 범위로 확장한 확률 분포와 상기 문장 레벨의 잠재변수를 비교하여, 상기 단어 레벨의 잠재변수를 생성하는 단계
    를 포함하는 자연어 생성 방법.
  12. 제10항에 있어서,
    상기 어텐션 정보를 계산하는 단계는,
    상기 단어 레벨의 잠재변수를 상기 어텐션 모델에 전달하여 상기 각각의 단어에 대응하는 어텐션 정보를 계산하는 단계
    를 포함하는 자연어 생성 방법.
  13. 제12항에 있어서,
    상기 문장 레벨의 잠재변수에 대응하는 확률 분포로부터 미리 지정된 조건에 따라 샘플링된 제3 임베딩 벡터를 디코딩 모델로 출력하는 단계
    를 더 포함하는 자연어 생성 방법.
  14. 제13항에 있어서,
    상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계는,
    상기 제3 임베딩 벡터와 상기 어텐션 정보를 상기 디코딩 모델에 적용하여 상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계
    를 포함하는 자연어 생성 방법.
  15. 제14항에 있어서,
    상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계는,
    상기 어텐션 정보에 의해 정의되는 키워드(keyword)의 벡터 공간 내에서 상기 제3 임베딩 벡터를 디코딩하여 상기 입력 발화에 대응하는 자연어 응답을 출력하는 단계
    를 포함하는 자연어 생성 방법.
  16. 적어도 하나의 프로세서;
    상기 프로세서에 의해 실행될 인스트럭션들(instructions)을 저장하는 적어도 하나의 메모리를 포함하고,
    상기 인스트럭션들을 수행하는 것에 의해 상기 프로세서는,
    입력 발화 전체에 대응하는 제1 임베딩 벡터로부터 문장 레벨의 잠재변수를 생성하고,
    상기 문장 레벨의 잠재변수와 상기 입력 발화에 포함되는 각각의 단어의 제2 임베딩 벡터를 이용하여 단어 레벨의 잠재변수를 생성하고,
    상기 생성된 단어 레벨의 잠재변수를 어텐션 모델에 적용하여 상기 입력 발화에 대한 어텐션 정보를 계산하고,
    상기 계산된 어텐션 정보를 이용하여 입력 발화에 대응하는 자연어 응답을 출력하는 자연어 생성 장치.
KR1020170178261A 2017-12-22 2017-12-22 자연어 생성 방법 및 장치 KR102608469B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170178261A KR102608469B1 (ko) 2017-12-22 2017-12-22 자연어 생성 방법 및 장치
US16/036,076 US11100296B2 (en) 2017-12-22 2018-07-16 Method and apparatus with natural language generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170178261A KR102608469B1 (ko) 2017-12-22 2017-12-22 자연어 생성 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190076452A KR20190076452A (ko) 2019-07-02
KR102608469B1 true KR102608469B1 (ko) 2023-12-01

Family

ID=66950352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170178261A KR102608469B1 (ko) 2017-12-22 2017-12-22 자연어 생성 방법 및 장치

Country Status (2)

Country Link
US (1) US11100296B2 (ko)
KR (1) KR102608469B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6894534B2 (ja) * 2017-10-31 2021-06-30 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 情報処理方法及び端末、コンピュータ記憶媒体
US10891951B2 (en) * 2018-10-17 2021-01-12 Ford Global Technologies, Llc Vehicle language processing
US11625573B2 (en) * 2018-10-29 2023-04-11 International Business Machines Corporation Relation extraction from text using machine learning
CN109582956B (zh) * 2018-11-15 2022-11-11 中国人民解放军国防科技大学 应用于句子嵌入的文本表示方法和装置
WO2020241070A1 (ja) * 2019-05-24 2020-12-03 日本電信電話株式会社 音響信号検索装置、音響信号検索方法、データ検索装置、データ検索方法、プログラム
CN112257434B (zh) * 2019-07-02 2023-09-08 Tcl科技集团股份有限公司 一种无人机控制方法、系统、移动终端及存储介质
US11355134B2 (en) 2019-08-02 2022-06-07 Audioshake, Inc. Deep learning segmentation of audio using magnitude spectrogram
US11521630B2 (en) 2020-10-02 2022-12-06 Audioshake, Inc. Deep learning segmentation of audio using magnitude spectrogram
CN110457457B (zh) * 2019-08-02 2023-09-22 腾讯科技(深圳)有限公司 对话生成模型的训练方法、对话生成方法及装置
KR102329738B1 (ko) * 2019-10-30 2021-11-19 연세대학교 산학협력단 토픽 기반의 일관성 모델링을 통한 문장 순서 재구성 방법 및 장치
KR102483927B1 (ko) * 2019-11-28 2023-01-04 한국과학기술원 계층적 단어 정보를 이용한 문장 인코딩 방법 및 장치
EP3828781A1 (en) * 2019-11-28 2021-06-02 42 Maru Inc. Method and apparatus for generating question and answer dataset based on input paragraph
US11710046B2 (en) * 2019-11-29 2023-07-25 42Maru Inc. Method and apparatus for generating Q and A model by using adversarial learning
KR102355591B1 (ko) * 2019-12-27 2022-01-26 주식회사 포티투마루 강화 학습을 통한 질의응답 학습모델의 생성 방법 및 장치
KR102173382B1 (ko) * 2020-02-25 2020-11-03 휴멜로 주식회사 텍스트 생성 장치 및 방법
US11367431B2 (en) * 2020-03-13 2022-06-21 Amazon Technologies, Inc. Synthetic speech processing
WO2021234838A1 (ja) * 2020-05-20 2021-11-25 日本電信電話株式会社 応答文生成装置、応答文生成モデル学習装置、それらの方法、およびプログラム
US11830476B1 (en) * 2021-06-08 2023-11-28 Amazon Technologies, Inc. Learned condition text-to-speech synthesis
US11669681B2 (en) * 2021-08-04 2023-06-06 Hrb Innovations, Inc. Automated calculation predictions with explanations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180137854A1 (en) 2016-11-14 2018-05-17 Xerox Corporation Machine reading method for dialog state tracking
US20180329884A1 (en) 2017-05-12 2018-11-15 Rsvp Technologies Inc. Neural contextual conversation learning

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1262954A1 (en) * 2001-05-30 2002-12-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for verbal entry of digits or commands
US20040162724A1 (en) 2003-02-11 2004-08-19 Jeffrey Hill Management of conversations
JP2011150450A (ja) 2010-01-20 2011-08-04 Sony Corp 情報処理装置、情報処理方法、およびプログラム
US9634855B2 (en) * 2010-05-13 2017-04-25 Alexander Poltorak Electronic personal interactive device that determines topics of interest using a conversational agent
US9135241B2 (en) * 2010-12-08 2015-09-15 At&T Intellectual Property I, L.P. System and method for learning latent representations for natural language tasks
US10438581B2 (en) * 2013-07-31 2019-10-08 Google Llc Speech recognition using neural networks
US20150310862A1 (en) * 2014-04-24 2015-10-29 Microsoft Corporation Deep learning for semantic parsing including semantic utterance classification
KR102396983B1 (ko) * 2015-01-02 2022-05-12 삼성전자주식회사 문법 교정 방법 및 장치
US11113598B2 (en) * 2015-06-01 2021-09-07 Salesforce.Com, Inc. Dynamic memory network
KR102386854B1 (ko) 2015-08-20 2022-04-13 삼성전자주식회사 통합 모델 기반의 음성 인식 장치 및 방법
US10614361B2 (en) * 2015-09-09 2020-04-07 Intel Corporation Cost-sensitive classification with deep learning using cost-aware pre-training
US9811519B2 (en) * 2015-09-24 2017-11-07 Conduent Business Services, Llc Generative discriminative approach for transactional dialog state tracking via collective matrix factorization
US11010550B2 (en) * 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11263514B2 (en) 2016-01-13 2022-03-01 Google Llc Processing and generating sets using recurrent neural networks
JP6876061B2 (ja) * 2016-01-26 2021-05-26 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. ニューラル臨床パラフレーズ生成のためのシステム及び方法
US9799327B1 (en) * 2016-02-26 2017-10-24 Google Inc. Speech recognition with attention-based recurrent neural networks
EP3438972B1 (en) * 2016-03-28 2022-01-26 Sony Group Corporation Information processing system and method for generating speech
US10431205B2 (en) * 2016-04-27 2019-10-01 Conduent Business Services, Llc Dialog device with dialog support generated using a mixture of language models combined using a recurrent neural network
US10546066B2 (en) * 2016-08-31 2020-01-28 Microsoft Technology Licensing, Llc End-to-end learning of dialogue agents for information access
CN109690577A (zh) * 2016-09-07 2019-04-26 皇家飞利浦有限公司 利用堆叠式自动编码器进行的半监督式分类
US10366163B2 (en) * 2016-09-07 2019-07-30 Microsoft Technology Licensing, Llc Knowledge-guided structural attention processing
EP3516566A1 (en) * 2016-09-22 2019-07-31 nference, inc. Systems, methods, and computer readable media for visualization of semantic information and inference of temporal signals indicating salient associations between life science entities
US11128579B2 (en) * 2016-09-29 2021-09-21 Admithub Pbc Systems and processes for operating and training a text-based chatbot
KR102589638B1 (ko) * 2016-10-31 2023-10-16 삼성전자주식회사 문장 생성 장치 및 방법
US10654380B2 (en) * 2016-11-18 2020-05-19 Microsoft Technology Licensing, Llc Query rewriting and interactive inquiry framework
US10268679B2 (en) * 2016-12-02 2019-04-23 Microsoft Technology Licensing, Llc Joint language understanding and dialogue management using binary classification based on forward and backward recurrent neural network
KR20180077689A (ko) * 2016-12-29 2018-07-09 주식회사 엔씨소프트 자연어 생성 장치 및 방법
US10049106B2 (en) * 2017-01-18 2018-08-14 Xerox Corporation Natural language generation through character-based recurrent neural networks with finite-state prior knowledge
US10347244B2 (en) * 2017-04-21 2019-07-09 Go-Vivace Inc. Dialogue system incorporating unique speech to text conversion method for meaningful dialogue response
US20180330718A1 (en) * 2017-05-11 2018-11-15 Mitsubishi Electric Research Laboratories, Inc. System and Method for End-to-End speech recognition
US10817650B2 (en) * 2017-05-19 2020-10-27 Salesforce.Com, Inc. Natural language processing using context specific word vectors
US20180349794A1 (en) * 2017-06-01 2018-12-06 Intel IP Corporation Query rejection for language understanding
US10268646B2 (en) * 2017-06-06 2019-04-23 Facebook, Inc. Tensor-based deep relevance model for search on online social networks
US9892414B1 (en) * 2017-08-16 2018-02-13 Asapp, Inc. Method, medium, and system for responding to customer requests with state tracking
US20190065464A1 (en) * 2017-08-31 2019-02-28 EMR.AI Inc. Artificial intelligence scribe
US10796686B2 (en) * 2017-10-19 2020-10-06 Baidu Usa Llc Systems and methods for neural text-to-speech using convolutional sequence learning
CN109964223B (zh) * 2017-10-23 2020-11-13 腾讯科技(深圳)有限公司 会话信息处理方法及其装置、存储介质
CN109710915B (zh) * 2017-10-26 2021-02-23 华为技术有限公司 复述语句生成方法及装置
GB2568233A (en) * 2017-10-27 2019-05-15 Babylon Partners Ltd A computer implemented determination method and system
JP6894534B2 (ja) * 2017-10-31 2021-06-30 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 情報処理方法及び端末、コンピュータ記憶媒体
CN109783795B (zh) * 2017-11-14 2022-05-06 深圳市腾讯计算机系统有限公司 一种摘要获取的方法、装置、设备及计算机可读存储介质
US10503834B2 (en) * 2017-11-17 2019-12-10 Digital Genius Limited Template generation for a conversational agent
US10572585B2 (en) * 2017-11-30 2020-02-25 International Business Machines Coporation Context-based linguistic analytics in dialogues
KR102462426B1 (ko) * 2017-12-14 2022-11-03 삼성전자주식회사 발화의 의미를 분석하기 위한 전자 장치 및 그의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180137854A1 (en) 2016-11-14 2018-05-17 Xerox Corporation Machine reading method for dialog state tracking
US20180329884A1 (en) 2017-05-12 2018-11-15 Rsvp Technologies Inc. Neural contextual conversation learning

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Xing et al. "Hierarchical recurrent attention network for response generation." arXiv preprint arXiv:1701.07149v1 (2017).*
김태형 et al. "한국어 대화 모델 학습을 위한 디노이징 응답 생성." 한국어정보학회 학술대회 (2017): 29-34.

Also Published As

Publication number Publication date
US20190197121A1 (en) 2019-06-27
US11100296B2 (en) 2021-08-24
KR20190076452A (ko) 2019-07-02

Similar Documents

Publication Publication Date Title
KR102608469B1 (ko) 자연어 생성 방법 및 장치
KR102589638B1 (ko) 문장 생성 장치 및 방법
US10559300B2 (en) Generating target sequences from input sequences using partial conditioning
KR102167719B1 (ko) 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
US11354512B2 (en) Method and device for generating dialog using trained dialog model
CN106688034B (zh) 具有情感内容的文字至语音转换
JP7109302B2 (ja) 文章生成モデルのアップデート方法及び文章生成装置
BR112019004524B1 (pt) Sistema de redes neurais, um ou mais meios de armazenamento legíveis por computador não transitório e método para gerar autorregressivamente uma sequência de saída de dados de áudio
US11227581B2 (en) Systems and methods for generating a response based on task-independent conversational responses or task-specific responses
KR20190019748A (ko) 자연어 생성 방법 및 장치
KR20190129580A (ko) 음성 인식 모델을 개인화하는 방법 및 장치
KR20180017622A (ko) 병렬 처리에 기초한 번역 방법 및 장치
JP2019035936A (ja) ニューラルネットワークを用いた認識方法及び装置並びにトレーニング方法及び電子装置
KR102577589B1 (ko) 음성 인식 방법 및 음성 인식 장치
JP2020086436A (ja) 人工神経網における復号化方法、音声認識装置及び音声認識システム
US20200101383A1 (en) Method and apparatus for recognizing game command
KR20200075615A (ko) 기계 번역 방법 및 장치
KR20200044388A (ko) 음성을 인식하는 장치 및 방법, 음성 인식 모델을 트레이닝하는 장치 및 방법
US11011161B2 (en) RNNLM-based generation of templates for class-based text generation
US20230029759A1 (en) Method of classifying utterance emotion in dialogue using word-level emotion embedding based on semi-supervised learning and long short-term memory model
US11341413B2 (en) Leveraging class information to initialize a neural network language model
JP2020027609A (ja) 応答推論方法及び装置
Huang et al. An improved residual LSTM architecture for acoustic modeling
JP2020042257A (ja) 音声認識方法及び装置
US20230113524A1 (en) Reactive voice device management

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant