KR102204979B1 - 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템 - Google Patents

딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템 Download PDF

Info

Publication number
KR102204979B1
KR102204979B1 KR1020180099404A KR20180099404A KR102204979B1 KR 102204979 B1 KR102204979 B1 KR 102204979B1 KR 1020180099404 A KR1020180099404 A KR 1020180099404A KR 20180099404 A KR20180099404 A KR 20180099404A KR 102204979 B1 KR102204979 B1 KR 102204979B1
Authority
KR
South Korea
Prior art keywords
conversation
distribution
learning
response
modeling
Prior art date
Application number
KR1020180099404A
Other languages
English (en)
Other versions
KR20200023049A (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 KR1020180099404A priority Critical patent/KR102204979B1/ko
Priority to JP2019099323A priority patent/JP6797240B2/ja
Publication of KR20200023049A publication Critical patent/KR20200023049A/ko
Application granted granted Critical
Publication of KR102204979B1 publication Critical patent/KR102204979B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)

Abstract

대화 응답을 자동 생성하는 기술이 개시된다. 대화 응답 생성 방법은, 과거 발화를 포함하는 대화 문맥에 대해 잠재 변수 공간 내에서 GAN(Generative Adversarial Network)을 학습시킴으로써 데이터 분포를 모델링한 대화 모델을 학습하는 단계; 및 상기 대화 모델을 통해 상기 데이터 분포로부터 샘플링된 잠재 변수를 이용하여 대화 응답을 생성하는 단계를 포함한다.

Description

딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템{METHOD AND SYSTEM FOR GENERATING MULTI-TURN CONVERSATION RESPONSE USING DEEP LEARING GENERATION MODEL AND MULTI-MODAL DISTRIBUTION}
아래의 설명은 대화 응답을 자동 생성하는 기술에 관한 것이다.
홈 네트워크 서비스의 인공지능 스피커와 같이 음성을 기반으로 동작하는 인터페이스는 마이크(microphone)를 통해 사용자의 음성요청을 수신하고, 음성요청에 대응하는 응답정보를 제공하기 위해 답변음성을 합성하여 스피커를 통해 제공하거나 또는 응답정보가 포함하는 컨텐츠의 오디오를 출력할 수 있다.
예를 들어, 한국공개특허 제10-2011-0139797호는 홈 미디어 디바이스 및 이를 이용한 홈 네트워크 시스템, 방법에 관한 기술로, 홈 네트워크 서비스에서 이동통신망 외에 와이파이와 같은 제2 통신망을 이용하여 홈 네트워크 서비스를 제공하는 것이 가능하고, 홈 내 복수의 멀티미디어 기기를 사용자가 별도의 버튼 조작 없이도 음성 명령을 통해 다중 제어할 수 있는 기술을 개시하고 있다.
이러한 종래기술들에서는 주어진 질문에 대하여 대화 응답을 자동으로 생성하여 제공한다. 그러나, 동일한 질문이나 발화에 대해 매번 동일한 응답만 생성하기 때문에 응답의 다양성이 부족할 뿐만 아니라 발화와 응답의 내용이 의미적으로 관계 없는 경우가 빈번하고 싱글턴(single-turn) 방식의 대화로 대화 전체 맥락에 대한 대화 응답이 어려운 실정이다.
WGAN(Wasserstein Generative Adversarial Network)과 다중모달 가우시안 혼합(Multimodal Gaussian Mixture) 사전 분포(prior distribution)를 이용하여 다양한 표현과 대화 전체 맥락에 대한 대화 응답을 자동으로 생성할 수 있는 방법 및 시스템을 제공한다.
컴퓨터 시스템에서 수행되는 대화 응답 생성 방법에 있어서, 과거 발화를 포함하는 대화 문맥(dialogue context)에 대해 잠재 변수 공간(latent variable space) 내에서 GAN(Generative Adversarial Network)을 학습시킴으로써 데이터 분포를 모델링한 대화 모델을 학습하는 단계; 및 상기 대화 모델을 통해 상기 데이터 분포로부터 샘플링된 잠재 변수를 이용하여 대화 응답을 생성하는 단계를 포함하는 대화 응답 생성 방법을 제공한다.
일 측면에 따르면, 상기 학습하는 단계는, FFNN(feed-forward neural network)을 이용하여 잠재 변수에 대한 사전 분포(prior distribution)와 사후 분포(posterior distribution)를 모델링하는 단계를 포함할 수 있다.
다른 측면에 따르면, 상기 학습하는 단계는, 신경망(neural network)을 이용하여 문맥-의존 랜덤 노이즈(context-dependent random noise)를 잠재 변수에 대한 샘플로 변환함으로써 잠재 변수에 대한 사전 분포(prior distribution)와 사후 분포(posterior distribution)를 모델링하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 대화 모델은 상기 사전 분포와 상기 사후 분포 간의 다이버전스(divergence)를 최소화하면서 잠재 변수로부터 재구성된 응답의 로그 확률을 최대화할 수 있다.
또 다른 측면에 따르면, 상기 학습하는 단계는, 사전 샘플을 사후 샘플과 구별하는 적대 구별자(adversarial discriminator)를 이용하여 잠재 변수에 대한 사전 분포와 사후 분포를 대응시키는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 문맥-의존 랜덤 노이즈는 FFNN(feed-forward neural network)인 사전 네트워크(prior network)와 인지 네트워크(recognition network) 각각을 통해 상기 대화 문맥으로부터 계산되는 정규 분포에서 도출될 수 있다.
또 다른 측면에 따르면, 상기 생성하는 단계는, 상기 신경망을 통해 상기 문맥-의존 랜덤 노이즈로부터 잠재 변수의 샘플을 생성한 후 생성된 잠재 변수를 상기 대화 응답으로 디코딩하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 학습하는 단계는, 가우시안 혼합 사전 네트워크(Gaussian mixture prior tetwork)를 이용하여 랜덤 노이즈를 샘플링함으로써 다중모달(multimodal) 응답을 학습하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 다중모달 응답을 학습하는 단계는, 하나 이상의 모드를 가지는 가우시안 분포에서 다중 모드를 캡쳐하여 상기 잠재 변수 공간에서 다중모달 응답을 학습할 수 있다.
컴퓨터와 결합되어 상기 대화 응답 생성 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 대화 응답 생성 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체를 제공한다.
컴퓨터 시스템에 있어서, 메모리; 및 상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 과거 발화를 포함하는 대화 문맥에 대해 잠재 변수 공간 내에서 GAN을 학습시킴으로써 데이터 분포를 모델링한 대화 모델을 학습하고, 상기 대화 모델을 통해 상기 데이터 분포로부터 샘플링된 잠재 변수를 이용하여 대화 응답을 생성하는 것을 특징으로 하는 컴퓨터 시스템을 제공한다.
본 발명의 실시예들에 따르면, 신경망(neural network)을 사용하여 문맥-의존 랜덤 노이즈(context-dependent random noise)를 변환함으로써 잠재 변수(latent variables)에 대한 사전 분포(prior distribution)와 사후 분포(posterior distribution)로부터 샘플링 하고 두 분포 간의 바세르슈타인 거리(Wasserstein distance)를 최소화하는 대화 모델을 구현할 수 있고 이를 통해 대화 전체 맥락에 대한 대화 응답을 생성할 수 있다.
본 발명의 실시예들에 따르면, 잠재 공간을 더욱 풍부하게 하기 위한 가우시안 혼합 사전 네트워크(Gaussian mixture prior network, PriNet)를 사용하여 대화 응답의 다중모달(multimodal) 성질을 고려한 대화 모델을 구현할 수 있고 이를 통해 보다 논리적이고 유용하며 다양한 대화 응답을 생성할 수 있다.
도 1은 본 발명의 일실시예에 따른 음성 기반 인터페이스를 활용한 서비스 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 음성 기반 인터페이스를 활용한 서비스 환경의 다른 예를 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 클라우드 인공지능 플랫폼의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 일실시예에 있어서, 바세르슈타인 오토 인코더(WAE)를 이용하여 다중모달 응답을 생성하는 DialogWAE 대화 모델의 개략도를 도시한 것이다.
도 6은 본 발명의 일실시예에 있어서, DialogWAE 대화 모델의 세부적인 학습 알고리즘을 나타낸 것이다.
도 7은 본 발명의 일실시예에 있어서, DialogWAE 대화 모델에 의해 생성된 응답의 예시를 나타낸 것이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들은 대화 응답을 자동 생성하는 기술에 관한 것이다.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 음성 기반 인터페이스를 활용한 서비스 환경에서 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 방식의 대화 응답을 생성할 수 있고, 이를 통해 다양성, 연계성, 정확성, 효율성 등의 측면에 있어서 상당한 장점들을 달성한다.
도 1은 본 발명의 일실시예에 따른 음성 기반 인터페이스를 활용한 서비스 환경의 예를 도시한 도면이다. 도 1의 실시예에서는 스마트홈(smart home)이나 홈 네트워크 서비스와 같이 댁내의 디바이스들을 연결하여 제어하는 기술에서, 음성을 기반으로 동작하는 인터페이스를 제공하는 전자 기기(100)가 사용자(110)의 발화에 따라 수신되는 음성 입력 "불 꺼줘"를 인식 및 분석하여 댁내에서 전자 기기(100)와 내부 네트워크를 통해 연계된 댁내 조명기기(120)의 라이트 전원을 제어하는 예를 나타내고 있다.
예를 들어, 댁내의 디바이스들은 상술한 댁내 조명기기(120) 외에도 텔레비전, PC(Personal Computer), 주변기기, 에어컨, 냉장고, 로봇 청소기 등과 같은 가전제품을 비롯하여, 수도, 전기, 냉난방 기기 등과 같은 에너지 소비장치, 도어록, 감시카메라 등과 같은 보안기기 등 온라인 상에서 연결되어 제어될 수 있는 다양한 디바이스들을 포함할 수 있다. 또한, 내부 네트워크는 이더넷(Ethernet), HomePNA, IEEE 1394와 같은 유선 네트워크 기술이나, 블루투스(Bluetooth), UWB(ultra Wide Band), 지그비(ZigBee), Wireless 1394, Home RF와 같은 무선 네트워크 기술 등이 활용될 수 있다.
전자 기기(100)는 댁내의 디바이스들 중 하나일 수 있다. 예를 들어, 전자 기기(100)는 댁내에 구비된 인공지능 스피커나 로봇 청소기 등과 같은 디바이스들 중 하나일 수 있다. 또한, 전자 기기(100)는 스마트폰(smart phone), 휴대폰, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등과 같은 사용자(110)의 모바일 기기일 수도 있다. 이처럼 전자 기기(100)는 사용자(110)의 음성 입력을 수신하여 댁내의 디바이스들을 제어하기 위해 댁내의 디바이스들과 연결 가능한 기능을 포함하는 기기라면 특별히 제한되지 않는다. 또한, 실시예에 따라 상술한 사용자(110)의 모바일 기기들이 댁내의 디바이스들로서 포함될 수도 있다.
도 2는 본 발명의 일실시예에 따른 음성 기반 인터페이스를 활용한 서비스 환경의 다른 예를 도시한 도면이다. 도 2는 음성을 기반으로 동작하는 인터페이스를 제공하는 전자 기기(100)가 사용자(110)의 발화에 따라 수신되는 음성 입력 "오늘 날씨"를 인식 및 분석하여 외부 네트워크를 통해 외부 서버(210)로부터 오늘의 날씨에 대한 정보를 획득하고 획득한 정보를 "오늘의 날씨는 ..."와 같이 음성으로 출력하는 예를 나타내고 있다.
예를 들어, 외부 네트워크는 PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다.
도 2의 실시예에서도 전자 기기(100)는 댁내의 디바이스들 중 하나이거나 사용자(110)의 모바일 기기 중 하나일 수 있으며, 사용자(110)의 음성 입력을 수신하여 처리하기 위한 기능과 외부 네트워크를 통해 외부 서버(210)에 접속하여 외부 서버(210)가 제공하는 서비스나 컨텐츠를 사용자(110)에게 제공하기 위한 기능을 포함하는 기기라면 특별히 제한되지 않는다.
이처럼, 본 발명의 실시예들에 따른 전자 기기(100)는 음성 기반 인터페이스를 통해 사용자(110)의 발화에 따라 수신되는 음성 입력을 포함하는 사용자 명령을 처리할 수 있는 기기라면 특별히 제한되지 않을 수 있다. 예를 들어, 전자 기기(100)는 직접 사용자의 음성 입력을 인식 및 분석하여 음성 입력에 알맞은 동작을 수행함으로써 사용자 명령을 처리할 수도 있으나, 실시예에 따라 사용자의 음성 입력에 대한 인식이나 인식된 음성 입력의 분석, 사용자에게 제공될 음성의 합성 등의 처리를 전자 기기(100)와 연계된 외부의 플랫폼을 통해 수행할 수도 있다.
도 3은 본 발명의 일실시예에 있어서, 클라우드 인공지능 플랫폼의 예를 도시한 도면이다. 도 3은 전자 기기들(310)과 클라우드 인공지능 플랫폼(320) 및 컨텐츠·서비스(330)를 나타내고 있다.
일례로, 전자 기기들(310)은 댁내에 구비되는 디바이스들을 의미할 수 있으며, 적어도 앞서 설명한 전자 기기(100)를 포함할 수 있다. 이러한 전자 기기들(310)이나 전자 기기들(310)에 설치 및 구동되는 어플리케이션들(이하, 앱들)은 인터페이스 커넥트(340)를 통해 클라우드 인공지능 플랫폼(320)과 연계될 수 있다. 여기서 인터페이스 커넥트(340)는 전자 기기들(310)이나 전자 기기들(310)에 설치 및 구동되는 앱들의 개발을 위한 SDK(Software Development Kit) 및/또는 개발 문서들을 개발자들에게 제공할 수 있다. 또한, 인터페이스 커넥트(340)는 전자 기기들(310)이나 전자 기기들(310)에 설치 및 구동되는 앱들이 클라우드 인공지능 플랫폼(320)이 제공하는 기능들을 활용할 수 있는 API(Application Program Interface)를 제공할 수 있다. 구체적인 예로, 개발자들은 인터페이스 커넥트(340)가 제공하는 SDK(Software Development Kit) 및/또는 개발 문서를 이용하여 개발한 기기나 앱은 인터페이스 커넥트(340)가 제공하는 API를 이용하여 클라우드 인공지능 플랫폼(320)이 제공하는 기능들을 활용할 수 있게 된다.
여기서 클라우드 인공지능 플랫폼(320)은 음성 기반의 서비스를 제공하기 위한 기능을 제공할 수 있다. 예를 들어, 클라우드 인공지능 플랫폼(320)은 수신된 음성을 인식하고, 출력될 음성을 합성하기 위한 음성처리모듈(321), 수신된 영상이나 동영상을 분석하여 처리하기 위한 비전처리모듈(322), 수신된 음성에 따라 알맞은 음성을 출력하기 위해 적절한 대화를 결정하기 위한 대화처리모듈(323), 수신된 음성에 알맞은 기능을 추천하기 위한 추천모듈(324), 인공지능이 데이터 학습을 통해 문장 단위로 언어를 번역할 수 있도록 지원하는 인공신경망 기반 기계 번역(Neural Machine Translation, NMT, 325) 등과 같이 음성 기반 서비스를 제공하기 위한 다양한 모듈들을 포함할 수 있다.
예를 들어, 도 1 및 도 2의 실시예들에서 전자 기기(100)는 사용자(110)의 음성 입력을 인터페이스 커넥트(340)에서 제공하는 API를 이용하여 클라우드 인공지능 플랫폼(320)으로 전송할 수 있다. 이 경우, 클라우드 인공지능 플랫폼(320)은 수신된 음성 입력을 상술한 모듈들(321 내지 325)을 활용하여 인식 및 분석할 수 있으며, 수신된 음성 입력에 따라 적절한 답변 음성을 합성하여 제공하거나, 적절한 동작을 추천할 수 있다.
또한, 확장 키트(350)는 제3자 컨텐츠 개발자 또는 회사들이 클라우드 인공지능 플랫폼(320)에 기반하여 새로운 음성기반 기능을 구현할 수 있는 개발 키트를 제공할 수 있다. 예를 들어, 도 2의 실시예에서, 전자 기기(100)는 사용자(110)의 음성 입력을 외부 서버(210)로 전송할 수 있고, 외부 서버(210)는 확장 키트(350)를 통해 제공되는 API를 통해 클라우드 인공지능 플랫폼(320)으로 음성 입력을 전송할 수 있다. 이 경우, 앞서 설명한 바와 유사하게 클라우드 인공지능 플랫폼(320)은 수신되는 음성 입력을 인식, 분석하여 적절한 답변 음성을 합성하여 제공하거나 음성 입력을 통해 처리되어야 할 기능에 대한 추천정보를 외부 서버(210)로 제공할 수 있다. 일례로, 도 2에서, 외부 서버(210)는 음성 입력 "오늘 날씨"를 클라우드 인공지능 플랫폼(320)으로 전송할 수 있고, 클라우드 인공지능 플랫폼(320)으로부터 음성 입력 "오늘 날씨"의 인식을 통해 추출되는 키워드 "오늘" 및 "날씨"를 수신할 수 있다. 이 경우, 외부 서버(210)는 키워드 "오늘" 및 "날씨"를 통해 "오늘의 날씨는 ..."와 같은 텍스트 정보를 생성하여 다시 클라우드 인공지능 플랫폼(320)으로 생성된 텍스트 정보를 전송할 수 있다. 이때, 클라우드 인공지능 플랫폼(320)는 텍스트 정보를 음성으로 합성하여 외부 서버(210)로 제공할 수 있다. 외부 서버(210)는 합성된 음성을 전자 기기(100)로 전송할 수 있고, 전자 기기(100)는 합성된 음성 "오늘의 날씨는 ..."을 스피커를 통해 출력함으로써, 사용자(110)로부터 수신한 음성 입력 "오늘 날씨"가 처리될 수 있다.
이때, 전자 기기(100)는 사용자와의 대화를 기반으로 디바이스 동작이나 컨텐츠 제공을 위한 것이다.
도 4는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 4의 전자 기기(410)는 앞서 설명한 전자 기기(100)에 대응할 수 있고, 서버(420)는 앞서 설명한 외부 서버(210) 또는 클라우드 인공지능 플랫폼(320)을 구현하는 하나의 컴퓨터 장치에 대응할 수 있다.
전자 기기(410)과 서버(420)는 메모리(411, 421), 프로세서(412, 422), 통신 모듈(413, 423) 그리고 입출력 인터페이스(414, 424)를 포함할 수 있다. 메모리(411, 421)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리(411, 421)와는 구분되는 별도의 영구 저장 장치로서 전자 기기(410)나 서버(420)에 포함될 수도 있다. 또한, 메모리(411, 421)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기(410)에 설치되어 특정 서비스의 제공을 위해 전자 기기(410)에서 구동되는 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(411, 421)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(413, 423)을 통해 메모리(411, 421)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 네트워크(430)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(일례로 상술한 어플리케이션)에 기반하여 전자 기기(410)의 메모리(411)에 로딩될 수 있다.
프로세서(412, 422)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(411, 421) 또는 통신 모듈(413, 423)에 의해 프로세서(412, 422)로 제공될 수 있다. 예를 들어 프로세서(412, 422)는 메모리(411, 421)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(413, 423)은 네트워크(430)를 통해 전자 기기(410)과 서버(420)가 서로 통신하기 위한 기능을 제공할 수 있으며, 전자 기기(410) 및/또는 서버(420)가 다른 전자 기기 또는 다른 서버와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기(410)의 프로세서(412)가 메모리(411)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(413)의 제어에 따라 네트워크(430)를 통해 서버(420)로 전달될 수 있다. 역으로, 서버(420)의 프로세서(422)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(423)과 네트워크(430)를 거쳐 전자 기기(410)의 통신 모듈(413)을 통해 전자 기기(410)로 수신될 수 있다. 예를 들어 통신 모듈(413)을 통해 수신된 서버(420)의 제어 신호나 명령, 컨텐츠, 파일 등은 프로세서(412)나 메모리(411)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기(410)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(414)는 입출력 장치(415)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드, 마우스, 마이크로폰, 카메라 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커, 햅틱 피드백 디바이스(haptic feedback device) 등과 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(414)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(415)는 전자 기기(410)와 하나의 장치로 구성될 수도 있다. 또한, 서버(420)의 입출력 인터페이스(424)는 서버(420)와 연결되거나 서버(420)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 보다 구체적인 예로, 전자 기기(410)의 프로세서(412)가 메모리(411)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(420)나 다른 전자 기기가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(414)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기(410) 및 서버(420)는 도 4의 구성요소들보다 더 적은 또는 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기(410)는 상술한 입출력 장치(415) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기(410)가 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 동작 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기(410)에 더 포함되도록 구현될 수 있다.
본 실시예들에서 전자 기기(410)는 사용자의 음성 입력을 수신하기 위한 마이크를 입출력 장치(415)로서 기본적으로 포함할 수 있으며, 사용자의 음성 입력에 대응하는 답변 음성이나 오디오 컨텐츠와 같은 소리를 출력하기 위한 스피커를 입출력 장치(415)로서 더 포함할 수 있다.
본 발명에서는 조건부(conditional) 바세르슈타인 오토 인코더(Wasserstein AutoEncoder, WAE)를 이용하여 다중모달 응답(multimodal response)을 생성하는 대화 모델(이하, DialogWAE 대화 모델)을 제안한다.
대화 응답 생성(dialog response generation)은 자연어 연구의 오래된 주제이다. 데이터-기반(data-driven) 신경망 대화 모델링에 대한 대부분의 최근 방식들은 주로 seq2seq(sequence-to-sequence) 학습 혹은 메모리 네트워크(memory network)에 기반한다. 그러나, seq2seq 대화 모델의 경우 의미 있고 다양하며 주제에 맞는 응답을 생성하는 데 어려움이 있고 메모리 네트워크 기반 모델의 경우 메모리 증가에 따른 모델 크기와 속도 등에 이슈가 있다.
VAE(Variational AutoEncoder)는 seq2seq 대화 모델의 문제를 해결하는 데에 유망한 결과들을 보여주었다. VAE는 응답에 대한 고-레벨의 시맨틱(high-level semantics)을 표현하는 잠재 변수(latent variables)에 대한 근사 사후 분포(approximate posterior distribution)를 산출하기 위하여 인지 네트워크(recognition network)를 사용하며, 이 분포의 샘플을 조건으로 하여 응답을 단어 별로 디코딩한다. 예를 들어, 잠재 변수는 주제(topics), 톤(tones) 또는 고-레벨 신택틱 성질(high-level syntactic properties)을 캡쳐하여 더 다양한 응답들을 생성한다. 그러나, 대부분의 VAE 대화 모델들은 잠재 변수에 대한 근사 사후 분포를 표준 정규 분포와 같은 단순한 사전 분포(prior distribution)에 대응함으로써 생성된 응답들을 상대적으로 단순한(예를 들어, single-modal) 범위로 제한한다.
VAE 이외에 응답에 대한 분포를 직접적으로 모델링하는 GAN(Generative Adversarial Network)-기반 대화 모델이 등장하였으나, 이는 이산 토큰(discrete tokens)에 대한 적대 학습(adversarial training)이 비차분성(non-diffenrentiability)에 의하여 까다롭다는 문제가 있다.
또한, GAN에 강화 학습(reinforcement learning, RL)을 적용한 하이브리드 방식의 대화 모델이 등장하였으며, 이 모델에서는 구별자(discriminator)가 예상한 수치를 생성자(generator)를 학습하기 위한 보상(reward)으로 사용한다. 그러나, 강화 학습은 경사 추정(gradient estimate)에 대한 높은 변동에 의해 불안정하고, 근사 단어 임베딩 계층(approximate word embedding layer)으로 GAN 모델이 미분 가능하도록 만들어 오직 단어 수준의 변동성(variability)을 더한 것이므로 결과적으로 주제(topics) 및 상황(situations)과 같은 고-레벨 응답 변동성을 표현하기에는 적합하지 않다.
따라서, 본 발명에서는 신경 대화 모델링을 위한 GAN의 새로운 변형인 DialogWAE 대화 모델을 제안한다. 잠재 변수에 대해 단순한 분포를 가하는 기존 VAE 대화 모델과는 달리, 본 발명에 따른 DialogWAE 대화 모델은 잠재 변수 공간(latent variable space) 내에서 GAN을 학습시킴으로써 데이터 분포를 모델링한다. 특히, 본 발명에 따른 DialogWAE 대화 모델은 신경망(neural network)을 이용하여 문맥-의존 랜덤 노이즈(context-dependent random noise)를 변환함으로써 잠재 변수에 대한 사전 분포 및 사후 분포로부터 샘플링을 하고 사전 분포 및 사후 분포 간의 바세르슈타인 거리(Wasserstein distance)를 최소화한다. 또한, 본 발명에 따른 DialogWAE 대화 모델은 가우시안 혼합 사전 네트워크(Gaussian mixture prior network, PriNet)를 사용함으로써 응답의 다중모달(multimodal) 성질을 고려한다. 가우시안 혼합 사전 네트워크를 통한 적대 학습은 DialogWAE가 풍부한 잠재 공간을 캡쳐하는 것을 가능하게 하며, 이는 더 논리적이고, 유용하며 다양한 응답들을 생성할 수 있다.
본 발명에 따른 DialogWAE 대화 모델은 (1) 잠재 변수에 대한 샘플들을 생성하기 위하여 GAN을 이용하는 신경 대화 모델링용 GAN-기반 모델, 및 (2) 다중모달 사전 분포로부터 랜덤 노이즈를 샘플링하기 위한 가우시안 혼합 사전 네트워크를 포함한다. 따라서, 본 발명에 따른 DialogWAE 대화 모델은 다중모달 잠재 구조를 이용하는 GAN 대화 모델로 구현될 수 있다.
인코더-디코더 변형(Encoder-decoder variants): 순수한 인코더-디코더 대화 모델에 대한 "안전한 응답(safe response)" 문제를 다루기 위하여 수 많은 변형들이 존재한다. 본 발명에 따른 DialogWAE 대화 모델은 상황 및 주제와 같은 보조 정보(extra information)를 필요로 하지 않기 때문에 기존 대화 모델과 구별된다.
VAE 대화 모델(VAE conversation models): 변분 오토 인코더(VAE)는 대화 모델링을 위한 가장 대중적인 프레임워크 중 하나이다. VAE 대화 모델의 주된 문제점인 "사후 붕괴(posterior collapse)"를 해결하기 위해, 디코더에 예비 단어 모음 손실(auxiliary bag-of-words loss)을 도입한 모델, 대화 행동(dialogue acts) 및 화자 프로필(speaker profiles)과 같은 보조 대화 정보를 통합하는 지식-기반 CVAE 모델(knowledge-guided CVAE model), 신경망을 사용하여 가우시안 노이즈를 변환함으로써 잠재 변수에 대한 사전 및 사후 분포로부터 샘플링을 하고 KL 다이버전스(KL divergence)로 가우시안 노이즈의 사전 및 사후 분포를 대응시키는 협력형(collaborative) CVAE 모델, 잠재 변수들의 계층 구조와 발화 탈락 정규화(utterance drop regularization)를 통합시키는 변분 계층적 대화 RNN(Variational Hierarchical Conversation RNN, VHCR) 모델 등이 등장하였다. 본 발명에 따른 DialogWAE 대화 모델은 잠재 공간 내에 GAN 아키텍처를 사용함으로써 VAE 대화 모델의 한계를 해결한다.
GAN 대화 모델(GAN conversation models): GAN/CGAN가 이미지 생성에서 큰 성공을 보이고 있지만, 이를 자연어 대화 생성자에 적용시키는 것은 쉬운 작업이 아니다. 이는 자연어 토큰(natural language tokens)의 비차분적(non-differentiable) 성질 때문이다. 구별자(discriminator)가 생성자를 최적화하기 위하여 보상을 예상하는 강화 학습과 GAN을 결합함으로써 이 문제를 해결할 수 있다. 그러나, 강화 학습은 샘플링된 경사의 높은 변동에 의해 불안정하다. 그리고, GAN 대화 모델은 디코더가 습득한 단어 확률(word probabilities)을 대응하는 단어 벡터(word vectors)에 직접적으로 곱함으로써 seq2seq GAN이 미분 가능하도록 하고 이는 목표 배열(target sequence)에 대해 대략적으로 벡터화된 표현식을 도출시킨다. 그러나, 상기한 방식은 전체적인 응답 수준보다는 단어 수준에서의 다양성을 보장하는 것에 불과하다. 본 발명에 따른 DialogWAE 대화 모델은 직접 토큰(direct tokens) 대신 높은 수준의 잠재 공간에서 응답들의 대한 분포를 형성하고 경사 변동이 큰 RL에 의존하지 않는다는 점에서 기존의 GAN 대화 모델과 구별된다.
본 발명에 따른 DialogWAE 대화 모델은 앞서 설명한 전자 기기(410) 또는 서버(420)와 같은 컴퓨터 시스템에 구현될 수 있으며, 딥러닝 생성모델과 다중모달 분포를 바탕으로 멀티턴 형식의 대화 응답을 생성할 수 있다. 이때, 컴퓨터 시스템(410 또는 420)의 프로세서(412 또는 422)는 메모리(411 또는 421)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(412 또는 422)는 컴퓨터 시스템(410 또는 420)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 시스템(410 또는 420)이 이하에서 설명하게 될 DialogWAE 대화 모델에 기반한 대화 응답 생성 방법을 수행하도록 컴퓨터 시스템(410 또는 420)을 제어할 수 있다.
본 발명에 따른 DialogWAE 대화 모델을 구체적으로 설명하면 다음과 같다.
Problem Statement
Figure 112018084246894-pat00001
Figure 112018084246894-pat00002
개의 발화(utterance)에 대한 대화 발화(dialogue utterance)를 나타낸다고 하자. 여기서,
Figure 112018084246894-pat00003
는 하나의 발화를 나타내고,
Figure 112018084246894-pat00004
Figure 112018084246894-pat00005
내의 n번째 단어(word)를 나타낸다.
그리고,
Figure 112018084246894-pat00006
Figure 112018084246894-pat00007
개의 과거 발화(historical utterances)인 대화 문맥(dialogue context)을 나타내고,
Figure 112018084246894-pat00008
가 다음 발화를 의미하는 응답(response)이라고 하자.
DialogWAE 대화 모델에서의 목표는 과거 발화가 주어질 때 현재 응답에 대한 조건부 분포(conditional distribution)인
Figure 112018084246894-pat00009
를 추정하는 것이다.
Figure 112018084246894-pat00010
Figure 112018084246894-pat00011
가 이산 토큰(discrete tokens)에 대한 배열(sequence)이기 때문에 이것들 간의 직접적인 결합을 찾는 것은 쉽지 않다. 대신에, 응답에 대한 높은 레벨의 표현식을 나타내는 연속적인 잠재 변수
Figure 112018084246894-pat00012
를 도입한다.
응답 생성은 두 단계 절차로 간주될 수 있고, 여기서 잠재 변수
Figure 112018084246894-pat00013
는 잠재 공간
Figure 112018084246894-pat00014
상의 분포
Figure 112018084246894-pat00015
로부터 샘플링되며, 그 후 응답
Figure 112018084246894-pat00016
Figure 112018084246894-pat00017
를 사용하여
Figure 112018084246894-pat00018
로부터 디코딩 된다. DialogWAE 대화 모델 하에서 응답의 확률은 방정식 1과 같이 정의될 수 있다.
[방정식 1]
Figure 112018084246894-pat00019
잠재 변수
Figure 112018084246894-pat00020
를 주변화(marginalize out)하는 것은 다루기 힘들기 때문에 정확한 로그 확률을 계산하기가 어렵다. 그러므로, 본 발명에서는 잠재 변수
Figure 112018084246894-pat00021
에 대한 사후 분포를
Figure 112018084246894-pat00022
로 근사화하며, 이는 인지 네트워크(recognition network, RecNet)라고 불리는 신경망에 의해 계산될 수 있다. 이러한 근사적인 사후 분포를 사용하여 증거 하한 값(evidence lower bound, ELBO)을 대신 계산할 수 있다(방정식 2).
[방정식 2]
Figure 112018084246894-pat00023
여기서,
Figure 112018084246894-pat00024
Figure 112018084246894-pat00025
가 주어졌을 때
Figure 112018084246894-pat00026
에 대한 사전 분포를 나타내며, 사전 네트워크(prior network)라고 불리는 신경망을 통해 모델링될 수 있다.
Conditional Wasserstein Auto-Encoders for Dialogue Modeling
기존 VAE 대화 모델은 잠재 변수
Figure 112018084246894-pat00027
가 정규 분포과 같이 단순한 사전 분포를 따른다고 가정한다. 그러나, 실제 응답의 잠재 공간은 더 복잡하며 그렇게 단순한 분포로 추정하기는 어렵다. 이것은 대게 사후 붕괴(posterior collapse) 문제를 야기한다.
본 발명에 따른 DialogWAE 대화 모델은 GAN과 적대 오토-인코더(Adversarial Auto-Encoder, AAE)에 기초하여 잠재 공간 내에서 GAN을 학습시킴으로써
Figure 112018084246894-pat00028
에 대한 분포를 모델링한다.
본 발명에서는 신경망을 사용하여 랜덤 노이즈(random noise)
Figure 112018084246894-pat00029
를 변환함으로써 잠재 변수에 대한 사전 및 사후 분포로부터 샘플링한다.
특히, 사전 샘플
Figure 112018084246894-pat00030
은 생성자
Figure 112018084246894-pat00031
에 의해 문맥-의존 랜덤 노이즈(context-dependent random noise)
Figure 112018084246894-pat00032
로부터 생성되는 반면, 근사 사후 샘플
Figure 112018084246894-pat00033
은 생성자
Figure 112018084246894-pat00034
에 의해 문맥-의존 랜덤 노이즈
Figure 112018084246894-pat00035
로부터 생성된다.
Figure 112018084246894-pat00036
Figure 112018084246894-pat00037
는 평균과 공분산 행렬(대각선 행렬로 가정)이 피드 포워드 신경망(feed-forward neural networks)인 사전 네트워크(prior network) 및 인지 네트워크(recognition network) 각각을 통해
Figure 112018084246894-pat00038
로부터 계산되는 정규 분포에서 도출된다(방정식 3과 방정식 4).
[방정식 3]
Figure 112018084246894-pat00039
[방정식 4]
Figure 112018084246894-pat00040
여기서,
Figure 112018084246894-pat00041
Figure 112018084246894-pat00042
는 피드 포워드 신경망이다. 본 발명에 따른 DialogWAE 대화 모델의 목표는
Figure 112018084246894-pat00043
Figure 112018084246894-pat00044
간의 다이버전스(divergence)를 최소화하는 반면,
Figure 112018084246894-pat00045
로부터 재구성된(reconstructed) 응답의 로그 확률을 최대화하는 것이다.
본 발명에 따른 DialogWAE 대화 모델은 방정식 5의 문제에 관한 것이다.
[방정식 5]
Figure 112018084246894-pat00046
여기서, 사전 분포
Figure 112018084246894-pat00047
및 사후 분포
Figure 112018084246894-pat00048
는 각각 방정식 3과 방정식 4를 구현하는 신경망이다.
Figure 112018084246894-pat00049
는 디코더이고,
Figure 112018084246894-pat00050
는 두 분포 간의 바세르슈타인 거리(Wasserstein distance)를 의미한다.
도 5는 본 발명에 따른 DialogWAE 대화 모델의 개략도를 도시한 것이다.
발화 인코더(utterance encoder)(RNN)(501)은 대화 내의 (응답
Figure 112018084246894-pat00051
를 포함하는) 각 발화를 실수 벡터(real-valued vector)로 변환한다.
문맥 인코더(context encoder)(RNN)(502)는 문맥 내의 i 번째 발화에서 인코딩 벡터와 대화 플로어(conversation floor)(504)의 연결(concatenation)을 입력으로 받고 숨겨진 상태(hidden state)
Figure 112018084246894-pat00052
를 계산한다. 문맥 인코더(502)의 마지막 숨겨진 상태는 문맥 표현식(context representation)으로서 사용된다.
생성 시기에, DialogWAE 대화 모델은 평균과 대각선 행렬 공분산 각각을 야기하는 두 가지 행렬 곱셈이 뒤따르는 피드-포워드 네트워크를 통해 문맥
Figure 112018084246894-pat00053
를 변환하는 사전 네트워크(prior network, PriNet)(510)로부터 랜덤 노이즈
Figure 112018084246894-pat00054
(511)를 도출한다. 그 후, 생성자
Figure 112018084246894-pat00055
(512)는 피드-포워드 네트워크를 통해 노이즈(511)로부터 잠재 변수
Figure 112018084246894-pat00056
(513)의 샘플을 생성한다. 디코더(decoder) RNN은 생성된
Figure 112018084246894-pat00057
(513)를 응답으로 디코딩한다.
학습 시기에, DialogWAE 대화 모델은 문맥
Figure 112018084246894-pat00058
와 응답
Figure 112018084246894-pat00059
를 조건으로 잠재 변수에 대한 사후 분포를 추론한다. 인지 네트워크(recognition network, RecNet)(520)는
Figure 112018084246894-pat00060
Figure 112018084246894-pat00061
의 연결을 입력으로 받아서 정규 평균과 대각선 행렬 공분산 각각을 정의하는 두 가지 행렬 곱셈이 뒤따르는 피드-포워드 네트워크를 통해 변환한다. 가우시안 노이즈(Gaussian noise)
Figure 112018084246894-pat00062
(521)는 재매개화 트릭(re-parametrization trick)을 사용해 인지 네트워크(520)로부터 도출된다. 그 후, 생성자(generator)
Figure 112018084246894-pat00063
(522)는 피드-포워드 네트워크를 통하여 가우시안 노이즈
Figure 112018084246894-pat00064
(521)를 잠재 변수
Figure 112018084246894-pat00065
(523)에 대한 샘플로 변환한다. 응답 디코더(RNN)(503)는 재구성 손실(reconstruction loss)을 방정식 6을 통해 계산한다.
[방정식 6]
Figure 112018084246894-pat00066
사전 샘플을 사후 샘플과 구별하는 적대 구별자(adversarial discriminator)
Figure 112018084246894-pat00067
(530)를 도입함으로써
Figure 112018084246894-pat00068
에 대한 사전 분포와 근사 사후 분포를 대응시킨다.
Figure 112018084246894-pat00069
(530)는 입력으로
Figure 112018084246894-pat00070
Figure 112018084246894-pat00071
의 연결을 받고 실수 값(real value)을 출력하는 피드-포워드 신경망으로서 구현된다.
방정식 7과 같이 구별자 손실을 최소화함으로써
Figure 112018084246894-pat00072
(530)를 학습한다.
[방정식 7]
Figure 112018084246894-pat00073
구체적인 도시는 생략되었으나, DialogWAE 대화 모델은 잠재 공간 내에서 대화 문맥
Figure 112018084246894-pat00074
와 함께 화자 정보를 학습시킴으로써 화자 스타일을 고려하여
Figure 112018084246894-pat00075
에 대한 분포를 모델링할 수 있다. 따라서, 본 발명에 따른 DialogWAE 대화 모델은 주어진 문맥에 대하여 해당 화자의 대화 스타일에 맞는 응답을 생성하여 제공할 수 있다.
Multimodal Response generation with Gaussian Mixture Prior Network
조건부 적대 오토-인코더(AAE) 아키텍처에서 사전 분포가 정규 분포인 것은 일반적인 적용이다. 그러나, 대게 응답들은 동등한 가능성이 있는 다수의 상황, 주제 및 감정들을 반영하는 다중모달 성질(multimodal nature)을 갖는다. 정규 분포를 갖는 랜덤 노이즈는 가우시안 분포의 단일-모달 성질에 의해 생성자가 단일 기본 모드(sigle dominant mode)로 잠재 공간을 만들어내도록 제한할 수 있다. 결과적으로, 생성된 응답들은 단순한 프로토타입을 따를 수도 있다.
잠재 변수에 대한 확률 분포에서 다중 모드를 캡쳐하기 위하여 본 발명에서는 하나 이상의 모드 K를 가질 수 있는 분포를 사용한다. 매번, 잠재 변수를 생성하는 노이즈가 이 모드들 중 하나에서 선택된다. 이를 달성하기 위하여, 본 발명에 따른 DialogWAE 대화 모델에서는 사전 네트워크가 일명 GMM(
Figure 112018084246894-pat00076
)이라고 불리는 가우시안 분포의 혼합을 캡쳐하도록 한다. 여기서,
Figure 112018084246894-pat00077
,
Figure 112018084246894-pat00078
Figure 112018084246894-pat00079
는 k 번째 구성요소의 파라미터들이다. 이는 두 단계의 생성 절차로 잠재 변수 공간에서 다중모달 매니폴드(multimodal manifold)를 학습하게 한다. 첫 번째 단계는
Figure 112018084246894-pat00080
로 구성요소
Figure 112018084246894-pat00081
를 선택하는 것이고, 다음은 선택된 구성요소로 방정식 8과 같이 가우시안 노이즈를 샘플링하는 것이다.
[방정식 8]
Figure 112018084246894-pat00082
여기서,
Figure 112018084246894-pat00083
는 클래스 확률
Figure 112018084246894-pat00084
를 갖는 구성요소 지시자(indicator)이고,
Figure 112018084246894-pat00085
는 GMM의 k 번째 구성요소의 혼합 계수(mixture coefficient)이다.
Figure 112018084246894-pat00086
는 방정식 9와 같이 계산된다.
[방정식 9]
Figure 112018084246894-pat00087
정확한 샘플링 대신, 본 발명에서는 구성요소 지시자
Figure 112018084246894-pat00088
에 대한 인스턴스를 샘플링하기 위하여 방정식 10과 같이 Gumbel-softmax 재매개화를 사용한다.
[방정식 10]
Figure 112018084246894-pat00089
여기서
Figure 112018084246894-pat00090
는 방정식 11과 같이 계산되는 Gumbel 노이즈이다.
[방정식 11]
Figure 112018084246894-pat00091
Figure 112018084246894-pat00092
는 모든 실험에서 0.1로 설정된 softmax 온도이다.
Training
본 발명에 따른 DialogWAE 대화 모델의 세부적인 학습 절차의 일례는 도 6에 도시한 알고리즘 1과 같다.
도 6을 참조하면, DialogWAE 대화 모델은 수렴(convergence)에 도달할 때까지 에포치 단위로(epochwise) 학습한다. 각 에포치에서 디코딩된 응답들의 재구성 손실이 최소화되는 오토 인코더(AE) 단계와 잠재 변수의 총 사후 분포가 조건부 사전 분포와 매치되는 GAN 단계를 반복적으로 교대 시행함으로써 대화 모델을 학습한다. 일례로, DialogWAE 대화 모델의 세부적인 학습 절차는 도 6에 도시한 알고리즘 1과 같다.
도 7은 일상 대화 데이터 세트에서 본 발명에 따른 DialogWAE 대화 모델에 의해 생성된 응답의 예시를 나타낸 것이다. 도 7의 테이블에서 '_eou_'는 turn의 변화를 나타내고, 'Eg.i'는 i번째 응답을 나타낸 것이다.
도 7은 주어진 문맥에 대해 대화 모델에 의해 생성된 응답으로 이루어진 문맥-응답 쌍으로, 기존 모델(CVAE-CO)에 의해 생성된 응답과 본 발명에 따른 DialogWAE 대화 모델(DialogWAE-GMP)에 의해 생성된 응답을 비교한 것이다.
도 7에 도시한 바와 같이, DialogWAE 대화 모델(DialogWAE-GMP)은 여러 가지 가능한 측면을 다루면서 보다 일관되고 다양한 응답을 생성하고 있음을 알 수 있다. 또한, DialogWAE 대화 모델(DialogWAE-GMP)은 기존 모델(CVAE-CO)의 응답에 비해 보다 길고 유익한 내용을 담은 응답을 제시하고 있음을 알 수 있다.
기존 모델(CVAE-CO)에 의해 생성된 응답은 비교적 제한된 변화를 보이고, 응답 내용에 약간의 변형이 보이지만 대부분은 유사한 표현(예컨대, "how much" 등)이 반복됨을 알 수 있다.
이처럼 본 발명의 실시예들에 따르면, 신경망을 사용하여 문맥-의존 랜덤 노이즈를 변환함으로써 잠재 변수에 대한 사전 분포와 사후 분포로부터 샘플링 하고 두 분포 간의 바세르슈타인 거리를 최소화하는 대화 모델을 구현할 수 있고 이를 통해 대화 전체 맥락에 대한 대화 응답을 생성할 수 있다. 더 나아가, 잠재 공간을 더욱 풍부하게 하기 위한 가우시안 혼합 사전 네트워크를 사용하여 대화 응답의 다중모달 성질을 고려한 대화 모델을 향상시킬 수 있고 이를 통해 보다 논리적이고 유용하며 다양한 대화 응답을 생성할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (15)

  1. 컴퓨터 시스템에서 수행되는 대화 응답 생성 방법에 있어서,
    과거 발화를 포함하는 대화 문맥(dialogue context)에 대해 잠재 변수 공간(latent variable space) 내에서 GAN(Generative Adversarial Network)을 학습시킴으로써 데이터 분포를 모델링한 대화 모델을 학습하는 단계; 및
    상기 대화 모델을 통해 상기 데이터 분포로부터 샘플링된 잠재 변수를 이용하여 대화 응답을 생성하는 단계
    를 포함하고,
    상기 학습하는 단계는,
    신경망(neural network)을 이용하여 잠재 변수에 대한 사전 분포(prior distribution)와 사후 분포(posterior distribution)를 모델링하는 단계
    를 포함하는 대화 응답 생성 방법.
  2. 제1항에 있어서,
    상기 모델링하는 단계는,
    FFNN(feed-forward neural network)을 이용하여 상기 사전 분포와 상기 사후 분포를 모델링하는 것
    을 특징으로 하는 대화 응답 생성 방법.
  3. 제1항에 있어서,
    상기 모델링하는 단계는,
    상기 신경망(neural network)을 이용하여 문맥-의존 랜덤 노이즈(context-dependent random noise)를 상기 잠재 변수에 대한 샘플로 변환함으로써 상기 사전 분포와 상기 사후 분포를 모델링하는 것
    을 특징으로 하는 대화 응답 생성 방법.
  4. 제1항에 있어서,
    상기 대화 모델은 상기 사전 분포와 상기 사후 분포 간의 다이버전스(divergence)를 최소화하면서 잠재 변수로부터 재구성된 응답의 로그 확률을 최대화하는 것
    을 특징으로 하는 대화 응답 생성 방법.
  5. 제1항에 있어서,
    상기 모델링하는 단계는,
    사전 샘플을 사후 샘플과 구별하는 적대 구별자(adversarial discriminator)를 이용하여 상기 사전 분포와 상기 사후 분포를 대응시키는 단계
    를 포함하는 대화 응답 생성 방법.
  6. 제3항에 있어서,
    상기 문맥-의존 랜덤 노이즈는 FFNN(feed-forward neural network)인 사전 네트워크(prior network)와 인지 네트워크(recognition network) 각각을 통해 상기 대화 문맥으로부터 계산되는 정규 분포에서 도출되는 것
    을 특징으로 하는 대화 응답 생성 방법.
  7. 제3항에 있어서,
    상기 생성하는 단계는,
    상기 신경망을 통해 상기 문맥-의존 랜덤 노이즈로부터 잠재 변수의 샘플을 생성한 후 생성된 잠재 변수를 상기 대화 응답으로 디코딩하는 단계
    를 포함하는 대화 응답 생성 방법.
  8. 제1항에 있어서,
    상기 학습하는 단계는,
    가우시안 혼합 사전 네트워크(Gaussian mixture prior tetwork)를 이용하여 랜덤 노이즈를 샘플링함으로써 다중모달(multimodal) 응답을 학습하는 단계
    를 포함하는 대화 응답 생성 방법.
  9. 제8항에 있어서,
    상기 다중모달 응답을 학습하는 단계는,
    하나 이상의 모드를 가지는 가우시안 분포에서 다중 모드를 캡쳐하여 상기 잠재 변수 공간에서 다중모달 응답을 학습하는 것
    을 특징으로 하는 대화 응답 생성 방법.
  10. 컴퓨터와 결합되어 제1항 내지 제9항 중 어느 한 항의 대화 응답 생성 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  11. 제1항 내지 제9항 중 어느 한 항의 대화 응답 생성 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
  12. 컴퓨터 시스템에 있어서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    과거 발화를 포함하는 대화 문맥에 대해 잠재 변수 공간 내에서 GAN을 학습시킴으로써 데이터 분포를 모델링한 대화 모델을 학습하고,
    상기 대화 모델을 통해 상기 데이터 분포로부터 샘플링된 잠재 변수를 이용하여 대화 응답을 생성하고,
    상기 적어도 하나의 프로세서는,
    신경망을 이용하여 잠재 변수에 대한 사전 분포와 사후 분포를 모델링하는 것
    을 특징으로 하는 컴퓨터 시스템.
  13. 제12항에 있어서,
    상기 적어도 하나의 프로세서는,
    FFNN을 이용하여 상기 사전 분포와 상기 사후 분포를 모델링하는 것
    을 특징으로 하는 컴퓨터 시스템.
  14. 제12항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 신경망을 이용하여 문맥-의존 랜덤 노이즈를 잠재 변수에 대한 샘플로 변환함으로써 상기 사전 분포와 상기 사후 분포를 모델링하는 것
    을 특징으로 하는 컴퓨터 시스템.
  15. 제12항에 있어서,
    상기 적어도 하나의 프로세서는,
    가우시안 혼합 사전 네트워크를 이용하여 랜덤 노이즈를 샘플링함으로써 다중모달 응답을 학습하는 것
    을 특징으로 하는 컴퓨터 시스템.
KR1020180099404A 2018-08-24 2018-08-24 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템 KR102204979B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180099404A KR102204979B1 (ko) 2018-08-24 2018-08-24 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템
JP2019099323A JP6797240B2 (ja) 2018-08-24 2019-05-28 ディープラーニング生成モデルとマルチモーダル分布を利用してマルチターン会話応答を生成する方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180099404A KR102204979B1 (ko) 2018-08-24 2018-08-24 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20200023049A KR20200023049A (ko) 2020-03-04
KR102204979B1 true KR102204979B1 (ko) 2021-01-19

Family

ID=69624322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180099404A KR102204979B1 (ko) 2018-08-24 2018-08-24 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템

Country Status (2)

Country Link
JP (1) JP6797240B2 (ko)
KR (1) KR102204979B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736423B2 (en) 2021-05-04 2023-08-22 International Business Machines Corporation Automated conversational response generation

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143535B (zh) 2019-12-27 2021-08-10 北京百度网讯科技有限公司 用于生成对话模型的方法和装置
JP2020103914A (ja) * 2020-02-26 2020-07-09 株式会社三洋物産 遊技機
CN111680123B (zh) * 2020-05-25 2024-01-26 腾讯科技(深圳)有限公司 对话模型的训练方法、装置、计算机设备及存储介质
CN111797220B (zh) * 2020-07-30 2024-02-09 腾讯科技(深圳)有限公司 对话生成方法、装置、计算机设备和存储介质
CN112270199A (zh) * 2020-11-03 2021-01-26 辽宁工程技术大学 基于CGAN方法的个性化语义空间关键字Top-K查询方法
WO2022114324A1 (ko) * 2020-11-30 2022-06-02 한국과학기술원 자연어를 기반으로 비디오를 생성하는 장치 및 방법
KR102372642B1 (ko) * 2021-01-27 2022-03-08 아주대학교산학협력단 자동 응답 생성 방법 및 장치
CN113222147B (zh) * 2021-05-11 2024-02-13 北华航天工业学院 一种条件双对抗学习推理模型的构建方法
KR102452814B1 (ko) * 2021-10-15 2022-10-07 한국기술교육대학교 산학협력단 문서 내 현안 분석 및 추출하기 위한 방법
CN114359360B (zh) * 2022-03-17 2022-06-10 成都信息工程大学 一种基于对抗的双向一致性约束医学图像配准算法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101745808B1 (ko) 2015-12-31 2017-06-28 엔에이치엔엔터테인먼트 주식회사 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101797856B1 (ko) * 2016-02-24 2017-11-15 라인 가부시키가이샤 메신저 서비스를 이용한 인공지능 학습 방법 및 시스템, 그리고 인공지능을 이용한 답변 중계 방법 및 시스템
KR20180052347A (ko) * 2016-11-10 2018-05-18 삼성전자주식회사 음성 인식 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101745808B1 (ko) 2015-12-31 2017-06-28 엔에이치엔엔터테인먼트 주식회사 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Li, Jiwei 외 5명, "Adversarial learning for neural dialogue generation." ,arXiv preprint arXiv:1701.06547, 2017.09.24, pp3. 1부.*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736423B2 (en) 2021-05-04 2023-08-22 International Business Machines Corporation Automated conversational response generation

Also Published As

Publication number Publication date
KR20200023049A (ko) 2020-03-04
JP2020030403A (ja) 2020-02-27
JP6797240B2 (ja) 2020-12-09

Similar Documents

Publication Publication Date Title
KR102204979B1 (ko) 딥러닝 생성모델과 다중모달 분포를 이용하여 멀티턴 대화 응답을 생성하는 방법 및 시스템
US10923130B2 (en) Electronic device and method of performing function of electronic device
KR101949497B1 (ko) 사용자 발화의 표현법을 파악하여 기기의 동작이나 컨텐츠 제공 범위를 조정하여 제공하는 사용자 명령 처리 방법 및 시스템
KR102034255B1 (ko) 사람-기계 간 감정 대화를 위한 방법 및 시스템
JP6567727B2 (ja) 受信した音声入力の入力音量に基づいて出力される音の出力音量を調節するユーザ命令処理方法およびシステム
JP6728319B2 (ja) 人工知能機器で複数のウェイクワードを利用したサービス提供方法およびそのシステム
US20210158815A1 (en) Remote control method and apparatus for an imaging apparatus
KR20200113105A (ko) 응답을 제공하는 전자 장치와 이의 동작 방법
US20140146644A1 (en) Methods and systems for ambient system comtrol
CN117079299B (zh) 数据处理方法、装置、电子设备及存储介质
CN115688937A (zh) 一种模型训练方法及其装置
CN116737895A (zh) 一种数据处理方法及相关设备
JP2019012506A (ja) 機械の自動活性のための方法及びシステム
JP2019091037A (ja) 人工知能機器の自動不良検出のための方法およびシステム
CN117520498A (zh) 基于虚拟数字人交互处理方法、系统、终端、设备及介质
KR20190021088A (ko) 음성 명령을 이용한 동작을 수행하는 전자 장치 및 전자 장치의 동작 방법
KR20210097935A (ko) 대화문 발화 성격 인식 방법 및 시스템
KR20210098250A (ko) 전자 장치 및 이의 제어 방법
KR20190018666A (ko) 기계의 자동 활성을 위한 방법 및 시스템
US12002451B1 (en) Automatic speech recognition
KR102239223B1 (ko) 기계의 자동 활성을 위한 방법 및 시스템
Katumba et al. Luganda Speech Intent Recognition for IoT Applications
CN116978362A (zh) 槽位预测模型的训练与预测方法、装置、设备及存储介质
CN118098203A (zh) 说话对象识别的方法、装置以及计算机可读存储介质
KR20230122470A (ko) 가상 ai 모델 제작과 ai 보이스 매칭 시스템

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