KR101937778B1 - 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체 - Google Patents

인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체 Download PDF

Info

Publication number
KR101937778B1
KR101937778B1 KR1020170026236A KR20170026236A KR101937778B1 KR 101937778 B1 KR101937778 B1 KR 101937778B1 KR 1020170026236 A KR1020170026236 A KR 1020170026236A KR 20170026236 A KR20170026236 A KR 20170026236A KR 101937778 B1 KR101937778 B1 KR 101937778B1
Authority
KR
South Korea
Prior art keywords
encoder
input
conversation
dialogue
data
Prior art date
Application number
KR1020170026236A
Other languages
English (en)
Other versions
KR20180100001A (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 KR1020170026236A priority Critical patent/KR101937778B1/ko
Publication of KR20180100001A publication Critical patent/KR20180100001A/ko
Application granted granted Critical
Publication of KR101937778B1 publication Critical patent/KR101937778B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • G06F17/30654
    • G06F17/2755
    • G06K9/00228
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination

Landscapes

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

Abstract

인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템의 이용 방법이 제공된다. 상기 시스템의 수집부가, 대화 데이터를 수집한다. 상기 시스템의 전처리부가, 상기 수집된 대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처리한다. 상기 시스템의 학습부가, 상기 전처리된 형태소별 데이터의 신경 표상(neural representation)을 학습한다. 상기 시스템의 이해부가, 상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식(semantic knowledge)을 이해하도록 기계 학습한다. 상기 시스템의 인코더가, 사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태소별로 벡터화하여 이해 및 분석한다. 상기 인코더는 제1 순환 신경망(RNN; Recurrent Neural Network)이다. 상기 시스템의 디코더가, 상기 입력 대화에 대한 대답을 생성한다. 상기 디코더는 상기 인코더에서 생성된 벡터를 형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망이다. 상기 제1 순환 신경망 및 상기 제2 순환 신경망은 LSTM(Long-Short Term Memory)일 수 있다.

Description

인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체{SYSTEM, METHOD AND RECORDING MEDIUM FOR MACHINE-LEARNING BASED KOREAN LANGUAGE CONVERSATION USING ARTIFICIAL INTELLIGENCE}
본 발명은 기계학습 기술을 활용하여 학습된 인공지능 에이전트와 한국어로 실시간 대화를 주고 받을 수 있는 시스템과 방법 및 기록매체에 대한 것이다.
사람 같은 일상적인 대화를 하는 인공지능을 만드는 것은 인공지능 학자들의 오랜 꿈이었다. 그 꿈은 지금까지도 튜링 테스트를 통해 이어지고 있다. 튜링 테스트란 기계가 생각을 할 수 있는지, 지능이 있는지 판단하는 테스트로, 현재 대화를 하고 있는 상대가 컴퓨터인지 사람인지 구분할 수 없을 때 튜링 테스트를 통과한 것으로 여기며, 이때 컴퓨터가 인간 같은 지능을 가지고 있다고 정의한다.
기존 시중에 사용되고 있는 많은 대화형 모델들은 정해져 있는 대화에 정해져 있는 답변만을 하는 시스템이었다면 최근 인공지능, 딥러닝의 발전으로 인해 사람 같은 유연한 대답이 가능한 대화형 모델들이 생겨나고 있다.
순환 신경망(Recurrent Neural Networks; RNN) 기반의 깊은 신경망(Deep Neural Networks; 심층 신경망)은 음성 인식, 자연 언어 처리 등 순차적인 데이터를 처리하는 데 큰 성공을 가져왔다. 최근 순환 신경망 인코더-디코더 모델(seq2seq)이 제안되었는데 이 모델은 기계 번역에서 뛰어난 성능을 보였다. 그뿐만 아니라, seq2seq 모델은 약간의 수정을 거쳐 QA 대화 모델로도 사용되었다.
종래에는, 대화 쌍을 규칙기반의 알고리즘을 적용하여 매우 큰 메모리를 검색하는 방법으로 대화가 이루어졌다. 따라서, 메모리 내에 저장되어 있지 않은 물음에는 대답을 할 수 없다. 또한, 텍스트를 그대로 메모리에 저장하기 때문에 한국어의 다양한 표현에 대해 강건(robust)하지 못하다는 문제가 있다.
본 발명에 의하면, 인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템의 이용 방법으로서, (a) 상기 시스템의 수집부가, 대화 데이터를 수집하는 단계; (b) 상기 시스템의 전처리부가, 상기 수집된 대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처리하는 단계; (c) 상기 시스템의 학습부가, 상기 전처리된 형태소별 데이터의 신경 표상(neural representation)을 학습하는 단계; (d) 상기 시스템의 이해부가, 상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식(semantic knowledge)을 이해하도록 기계 학습하는 단계; (e) 상기 시스템의 인코더가, 사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태소별로 벡터화하여 이해 및 분석하는 단계로서, 상기 인코더는 제1 순환 신경망(RNN; Recurrent Neural Network)인, 단계; 및 (f) 상기 시스템의 디코더가, 상기 입력 대화에 대한 대답을 생성하는 단계로서, 상기 디코더는 상기 인코더에서 생성된 벡터를 형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망인, 단계를 포함하는, 한국어 대화 시스템의 이용 방법이 제공된다.
바람직하게는, 상기 (e) 단계의 처리에 있어서, 형태소별로 분류하여, 의미를 갖는 부분만을 상기 인코더에 입력으로 넣고, 의미를 갖지 않는 부분은 상기 인코더에 입력으로 넣지 않고 필터링한다.
바람직하게는, 상기 의미를 갖는 부분은 명사, 부사, 동사를 포함하며, 상기 의미를 갖지 않는 부분은 조사, 어미를 포함한다.
바람직하게는, 상기 인코더에 입력되지 않고 필터링된 부분을 고려하여, 상기 디코더로부터의 출력의 어미 또는 말투를 보정한다.
바람직하게는, 상기 (d) 단계에 있어서, 상기 입력 대화와 출력 대화의 연관성은 규칙 대화 기반이 아니라 유연한 학습 데이터를 이용한다.
바람직하게는, 상기 (e) 단계의 앞 또는 뒤에, (e') 상기 시스템의 카메라가, 상기 사용자가 대화할 때의 얼굴을 인식하여 상기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려하는 단계를 더 포함한다.
바람직하게는, 상기 제1 순환 신경망 및 상기 제2 순환 신경망은 LSTM(Long-Short Term Memory)이다.
본 발명에 의하면, 인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템으로서, 대화 데이터를 수집하는 수집부; 상기 수집된 대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처리하는 전처리부; 상기 전처리된 형태소별 데이터의 신경 표상(neural representation)을 학습하는 학습부; 상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식(semantic knowledge)을 이해하도록 기계 학습하는 이해부; 사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태소별로 벡터화하여 이해 및 분석하는 인코더로서, 제1 순환 신경망(RNN; Recurrent Neural Network)인, 인코더; 및 상기 입력 대화에 대한 대답을 생성하는 디코더로서, 상기 인코더에서 생성된 벡터를 형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망인, 디코더를 포함하는, 한국어 대화 시스템이 제공된다.
바람직하게는, 상기 인코더의 처리에 있어서, 형태소별로 분류하여, 의미를 갖는 부분만을 상기 인코더에 입력으로 넣고, 의미를 갖지 않는 부분은 상기 인코더에 입력으로 넣지 않고 필터링한다.
바람직하게는, 상기 인코더에 입력되지 않고 필터링된 부분을 고려하여, 상기 디코더로부터의 출력의 어미 또는 말투를 보정한다.
바람직하게는, 상기 이해부의 처리에 있어서, 상기 입력 대화와 출력 대화의 연관성은 규칙 대화 기반이 아니라 유연한 학습 데이터를 이용한다.
바람직하게는, 상기 사용자가 대화할 때의 얼굴을 인식하는 카메라를 더 포함하고, 상기 얼굴 인식으로부터 상기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려한다.
본 발명에 의하면, 전술한 방법을, 컴퓨터로 하여금 수행하도록 하는 프로그램이 기록된 컴퓨터 판독 가능 기록 매체가 제공된다.
본 발명은 한국어로 일반적인 주제에 대해 사람과 인공지능 에이전트가 대화를 나눌 수 있는 시스템 및 방법을 제공한다. 이 시스템 및 방법은 로봇이나 태블릿, 핸드폰 등에 내장되어 사용될 수 있으며, 실시간으로 대화가 이루어지는 특징을 가지고 있다. 기존의 규칙기반 시스템과는 달리 다양한 질의에 대해 답변이 가능하며 단어의 표상(Representation) 학습을 통해 의미(Semantic) 정보를 이해하고 이를 조합하여 대답을 생성하기 때문에 보다 다양한 표현을 구사할 수 있다.
기계학습 알고리즘으로 학습된 인공지능 에이전트와 실시간으로 대화를 수행할 수 있으며, 학습되어 있지 않은 질문에 대해서도 에이전트 자체적으로 추론을 하여 답변을 할 수 있고, 텍스트를 실수형태의 벡터(Distributed Representation)로 표현하기 때문에 한국어의 다양한 표현에 대해서도 강건하게 대응할 수 있다.
또한, 명시적인 외부 메모리에 저장하는 방식이 아니기 때문에 더욱 많은 대화를 학습시켜도 시스템이 차지하는 크기는 크게 늘어나지 않는다.
도 1은 본 발명에 따른 흐름도를 나타낸다.
도 2는 본 발명에 따른 데이터 수집 및 추론 모델 구축에 대한 개념도이다.
도 3a는 가정환경을 모사한 실험실의 모습이다.
도 3b는 본 발명의 시스템이 탑재된 로봇과 사람이 상호작용(대화)하는 모습이다.
도 4는 본 발명에 따른 시스템의 구조의 개요를 나타낸다.
도 5는 영어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 6은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 7은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 8은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 9는 본 발명에 따른 시스템의 처리의 일예를 나타낸다.
도 10은 입력값과 출력값의 관계를 나타내는 도면이다.
이하, 도면을 참조하여 본 발명에 따른 시스템 및 방법을 설명한다.
도 1은 본 발명에 따른 흐름도를 나타낸다.
본 발명은 알고리즘이 적용된 플랫폼(PC, 로봇, 스마트폰 등)과 사람이 직접 대화를 하여 데모(demonstrate)할 수 있다. 예를 들어, 알고리즘이 컴퓨터에서 실행되고 있다면 컴퓨터와 직접 키보드를 통해 대화할 수 있고, 로봇 플랫폼에서 실행되는 경우에는 음성인식 기술, 스피치 투 텍스트(Speech-To-Text), 텍스트 투 스피치(text-to-Speech), 소켓 통신 기술과 함께 활용하여 대화 시스템을 구축할 수 있다.
단계 102에서, 먼저, 사람과 사람 사이에 이루어질 수 있는 대화들을 데이터로써 수집하여, 딥 뉴럴 네트워크(Deep Neural Network)에 적절한 형태로 전처리를 한다. 전처리의 일예는 후술하는 워드 임베딩, 프리트레인드(pre-trained) 워드 임베딩일 수 있다. 이러한 데이터 수집은 본 발명의 시스템의 수집부에서 행해진다.
단계 104에서, 수집된 데이터를 이용하여 각 단어의 뉴럴 표상(Neural Representation)을 학습한다. 이는 본 발명의 시스템의 학습부에서 행해진다.
단계 106에서, 입력 대화와 출력 대화의 연관성, 각각의 의미 지식(Semantic Knowledge)을 이해한다. 이는 본 발명의 시스템의 이해부에서 행해진다.
단계 108에서, 사용자가 모델에게 어떠한 대화를 건네면, 단계 110에서, 알고리즘은 단계 102 내지 단계 106에서 구축한 지식을 이용하여 입력 대화를 이해하고 분석한다. 이는 본 발명의 시스템이 인코더에서 행해진다.
단계 112에서, 그 결과 가장 적절한 대답을 생성하고, 대화한 로그 기록을 이용하여 새로운 데이터를 생성해 나간다. 이는 본 발명의 시스템의 디코더에서 행해진다.
도 2는 본 발명에 따른 데이터 수집 및 추론 모델 구축에 대한 개념도이다.
전술한 바와 같이, 본 발명은 알고리즘이 적용된 플랫폼(PC, 로봇, 스마트폰 등)과 사람이 직접 대화를 하여 데모할 수 있다. 예를 들어, 알고리즘이 컴퓨터에서 실행되고 있다면 컴퓨터와 직접 키보드를 통해 대화할 수 있고, 로봇 플랫폼에서 실행되는 경우에는 음성인식 기술, 스피치 투 텍스트, 텍스트 투 스피치, 소켓 통신 기술과 함께 활용하여 대화 시스템을 구축할 수 있다.
이 과정에서, 사람과 사람 사이의 대화(도 2에서 Person A(201)와 Person B(202) 사이의 화살표로 표시됨), 사람(201)과 인공지능 서비스(203) 사이의 대화가 여러번 축적되는 것을 기대하며, 이러한 데이터가 축적되어 빅데이터(204)를 구성하게 된다. 특히, 후술하겠으나, 한국어는 표현에 있어서 영어 등과 차이를 갖는 부분이 있으므로, 이러한 점에도 초점을 두어 이 빅데이터(즉, 한국어 빅데이터)를 분석한다.
이렇게 수집된 한국어 빅데이터(204)를 이용하여 딥 러닝 확률 추론 모델(205)이 구축된다. 이렇게 구축된 모델(205)은 고정되어 완성된 것이 아니라, 전술한 사람들(201, 202) 사이의 대화 및 사람(201)과 인공 지능 서비스(203) 사이에 대화에 대한 데이터가 추가로 축적되면, 다시 이로부터 피드백을 받아서 재차 반복적으로 학습이 이루어지면서 보완된다.
대화 데이터를 수집하는 것의 일예에 대해 설명한다.
- 시나리오 -
일상대화를 위한 첫 단계로, 아이 돌보기의 아침 상황으로 시나리오를 제한해 보았다. 아이 돌보기의 아침 상황은 일상적인 대화보다는 보다 적고 간단한 대화들이 오가지만 엄마의 역할을 대신하는 모델과 계속해서 상호작용을 한다는 점에서는 적절한 시나리오라 생각할 수 있다. 본 발명자들은 아이 돌보기의 아침 시나리오를 크게 (1) 기상, (2) 아침 운동, (3) 아침 식사, (4) 씻기, (5) 옷 입기, (6) 등교의 6가지로 나누었다. 그리고, 보다 자연스러운 대화를 위해 실제 가정환경을 모사한 실험실을 꾸미고 음성 인식과 텍스트 투 스피치(text-to-speech; TTS) 기술을 이용하여 로봇과 사람이 상호작용할 수 있는 환경을 만들었다.
도 3a는 가정환경을 모사한 실험실의 모습이다.
도 3b는 본 발명의 시스템이 탑재된 로봇과 사람이 상호작용(대화)하는 모습이다.
- 데이터 수집 -
시나리오의 데이터를 수집하기 위해서 간단한 대화를 할 수 있는 모델을 만들 필요가 있었다. 이를 위해서 30명 이상의 사람으로부터 10,000여개의 대화 쌍을 수집하였다. 최대한 중복되는 대화 쌍을 줄이고, 나올 수 있는 대화를 다양하게하기 위해 각 사람들은 6개의 세부 시나리오 중 하나에 할당되어 300쌍, 전체 시나리오에서 300쌍을 만들도록 했다. 각 대화 쌍은 아이가 먼저 질문이나 이야기를 꺼내고 모델 및 로봇이 그에 대해 대답하도록 구성되어 있다. 이 데이터를 가지고 기초 모델을 만든 후, 랩 투어, 학회 등에서 시연을 하며 기록된 로그 데이터를 통해 계속해서 새로운 데이터를 수집하였다.
- 실험 -
대화 모델에서는 모델의 출력 결과가 적절한지 혹은 부적절한지 판단할 수 있는 명확한 근거가 존재하기 어렵다. 따라서, 실제 실험 결과를 제시하고 그에 대한 해석을 하도록 한다.
- 아이 돌봄 시나리오 -
먼저 가장 기본이 되는 시나리오를 다음과 같이 가정하여 데이터를 모은 후, 다양한 실험을 시도했다.
아래 대화에서 BOT은 본 발명에 따른 인공지능 에이전트를 나타내고, CHILD는 사람(아이)을 나타낸다.
BOT: 아침이야 이제 일어나렴
CHILD: 안녕히 주무셨어요
BOT: 그래 잘 잤니
CHILD: 더워서 새벽에 깼어요
BOT: 저런 제대로 잠을 못 잤겠구나 좀 더 잘래
CHILD: 아니에요 일어날께요
BOT: 거실로 가서 아침 체조 같이 따라해볼까
BOT: 이제 씻고 밥 먹자
CHILD: 금방 씻고 갈께요
BOT: 응 엄마는 식사 준비하고 있을게
CHILD: 네네
BOT: 어서 씻고 와서 아침 먹자
CHILD: 와 소세지 반찬이다
BOT: 응 계란도 있으니까 맛있게 먹으렴
CHILD: 맛있겠다
BOT: 그럼 맛있게 먹어라
CHILD: 콩은 맛이 없어요
BOT: 콩도 먹어야 씩씩하게 자랄 수 있는걸
CHILD: 싫어요
BOT: 다 너를 위해서 그러는 거야
CHILD: 잘 먹었습니다
BOT: 이제 옷 갈아입고 학교 갈 준비하자
CHILD: 무슨 옷 입을까요
BOT: 날이 더우니까 반바지를 입는게 어떨까
CHILD: 반바지에 파란색 티셔츠 입고 싶어요
BOT: 그래 준비물은 다 챙겼니
CHILD: 공 어디있어요
BOT: 어제 산 공 말하는거지 같이 한 번 찾아보자
CHILD: 찾았어요
BOT: 자 이제 준비 다 했으니 학교에 가야지
CHILD: 네 다녀오겠습니다
BOT: 그래 길 건널때 차 조심하고
CHILD: 네
- 시나리오 내 가능 대화 -
두 번째 실험으로는 같은 아침 아이 돌보기 시나리오에서 발생할 수 있는 스크립트 외의 대화를 실험해보았다.
아래 대화에서 * 표시는 적절한 대화, ** 표시는 애매하지만 나쁘지는 않은 대화, *** 표시는 부적절한 대화를 의미한다.
* CHILD: 일어나
* BOT: 지금 몇신데요
*** CHILD: 학교 가야지
*** BOT: 엄마 말 잘 들어줘서 진짜 고마워
*** CHILD: 운동하자
*** BOT: 어떤 빨리 씻고 나와
** CHILD: 오늘 운동 안할래
** BOT: 아 오늘 네 알겠습니다
* CHILD: 배고파요
* BOT: 점심 안먹었니
* CHILD: 밥 주세요
* BOT: 떠먹으면 안되니 엄마가 피곤하단다
** CHILD: 밥 언제 먹어요
** BOT: 엄마는 밥을 해줄게
*** CHILD: 점심 메뉴 뭐에요
*** BOT: 음 그렇게 맛있어
* CHILD: 오늘 점심 뭐야
* BOT: 돈까스
* CHILD: 다 씻었어요
* BOT: 깨끗하게 씻었니
*** CHILD: 안 씻을래
*** BOT: 그래 잘 씻고 오렴
** CHILD: 씻기 귀찮아
** BOT: 왜 그러니
* CHILD: 코트 입을래
* BOT: 겨울 옷장에 있을 거야
* CHILD: 제 안경 어딨어요
* BOT: 네 방에 없니
* CHILD: 갔다올게요
* BOT: 다녀와
* CHILD: 다녀올게요
* BOT: 잘 다녀오거라 차 조심하고
실험 결과, 본 발명의 시스템이, 같은 맥락의 다른 표현을 어느 정도 이해할 수 있다는 것을 확인할 수 있었다. 위 결과에서, 이해할 수 있는 대화는 아침 아이 돌보기 시나리오뿐이라는 점, 그리고, 도메인을 제한하였지만 여전히 방대한 대화의 영역에 비해 적은 학습 데이터로 인해 활용 가능한 어휘의 양이 부족하다는 점을 알 수 있었다. 그러나, 기계학습(machine-learning) 분야의 특수성을 고려하면, 항상 위와 같은 결과가 나온다고는 볼 수 없다. 그 동안 축적된 데이터의 양과 질에 따라서 입력에 따른 출력이 달라질 수 있기 때문이다. 데이터의 축적량이 많아질수록 상기 대화에서 ** 표시(애매하지만 나쁘지는 않은 대화), *** 표시(부적절한 대화)된 부분은 * 표시와 같은 적절한 대화로 전환되어 갈 것이며, 본 실시예에서 든 10000쌍 또는 300쌍보다는 더 많은 데이터의 축적이 필요하다고 해석할 수도 있을 것이다.
또한, 기존 규칙 기반 대화 모델에서는 불가능했던 유연한 대화가 가능하다는 것을 확인할 수 있었다.
도 4는 본 발명에 따른 시스템의 구조의 개요를 나타낸다.
본 발명은 seq2seq 모델(시퀀스-투-시퀀스 프레임워크, 인코더-디코더 모델)에 일부 기반한다. seq2seq 모델은 두 개의 RNN(순환 신경망; Recurrent Neural Network)으로 구성되어 있는데, 첫 번째 RNN은 한 문장을 단어 단위로 쪼개어 하나의 벡터로 인코딩하는 작업을 한다. 두 번째 RNN은 인코딩된 벡터를 하나의 단어씩 디코딩하여 최종적으로 하나의 문장을 만든다. 감독 학습 방법으로, 입력 문장을 넣었을 때 정해진 출력 문장이 나오도록 학습을 한다.
도 4를 참조하여 위 과정을 다시 설명한다.
일예로서, 본 발명은 가장 먼저 빈도수 상위 n개의 단어들을 룩업(lookup) 테이블에 등록한다. 이때 임베딩 사이즈는 RNN의 히든 노드의 수와 동일하다. 인코더, 디코더 모두 Long-Short Term Memory(LSTM)를 사용했는데, 인코딩 LSTM에서는 한 대화에 해당하는 문장을 각 단어별로 쪼개어 입력으로 넣는다. 한 문장(모든 단어)을 입력으로 넣었을 때 최종적으로는 한 문장을 모두 거친 히든 상태 벡터가 나오게 되는데 이를 디코더의 입력으로 넘긴다.
도 4에서는 인코딩 LSTM에 "엄마, 정말 사랑해요"라는 문장이 입력되는 예가 나타난다. 이 문장은 단어별로 나뉘어 [엄마], [정말], [사랑해요]가 인코더에 입력된다. 인코더는 이 문장에 대한 히든 상태 벡터를 출력한다.
디코더는 히든 상태 벡터를 받아 단어를 하나씩 출력한다. 도 4의 예에서는 [잘], [모르겠는데]라는 단어가 출력되는 것으로 되어 있다. 각 출력들의 확률은 softmax 활성 함수를 이용한 전체 연결층(fully-connected layer)을 통해 계산된다. 이 확률을 최대화하는 방향으로 워드 임베딩을 업데이트하며 학습한다.
도 5는 영어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 5에서, 인코딩 측의 딥 러닝 알고리즘에 "Hello, how is the weather today?"라는 문장이 입력된다. 이 경우, 이 영어 문장은 띄어쓰기 단위로 구분되어 처리된다.
즉, 인코딩 측의 딥 러닝 알고리즘에서 "Hello", "how", "is", "the", "weather", "today?"로 구분되어 처리된다.
그리고, 디코딩 측의 딥 러닝 알고리즘에서는 "Yeah,", "Great!"라는 띄어쓰기 단어가 조합되어 "Yeah, Great!"라는 문장이 출력으로 나오게 된다.
도 6은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 6에서, 인코딩 측의 딥 러닝 알고리즘에 "안녕, 오늘 날씨 참 좋지?"라는 문장이 입력된다. 이 예에서는 조사 또는 기타 활용형 어미 등이 사용되지 않은 관계로, 도 5에서 예로 든 영어 문장과 마찬가지로 띄어쓰기 단위로 구분되어 처리하든 형태소 단위로 처리하든 동일한 결과를 낳는다.
즉, 인코딩 측의 딥 러닝 알고리즘에서 "안녕,", "오늘", "날씨", "참", "좋지?"로 구분되어 처리된다.
그리고, 디코딩 측의 딥 러닝 알고리즘에서는 "응,", "좋네!"라는 띄어쓰기 단어가 조합되어 "응, 좋네!"라는 문장이 출력으로 나오게 된다.
도 5, 도 6만을 보면, 영어와 한국어의 차이는 대동소이해 보이지만, 이는 도 6에서 든 한국어 문장에 조사 또는 기타 활용형 어미가 사용되지 않았기 때문이며, 이러한 문장은 한국어에서 일반적인 것이라고 보기는 힘들 것이다.
도 7은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 7에서, 인코딩 측의 딥 러닝 알고리즘에 "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"라는 문장이 입력된다. 이 예에서는 조사 또는 기타 활용형 어미 등이 사용되어 있는, 도 5에서 예로 든 영어 문장 또는 도 6에서 예로 든 한국어 문장과는 다소 상이하다.
한국어에 능통한 사람이 보기에는 도 6에서 예로 든 "안녕, 오늘 날씨 참 좋지?"와 도 7에서 예로 든 "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"라는 문장이 큰 차이가 없는 것으로 느낄 수 있으나, 인공지능의 입장에서는 이 둘은 매우 다른 것으로 받아들여질 것이다. 즉, 한국어에는 비슷한 의미를 가지고 있으나 다양한 변형 표현이 존재한다. 도 6의 예시 문장과 도 7의 예시 문장은, 유사하지만 다른 단어들의 조합으로 행한 질문이기 때문에, 컴퓨터(인공지능)에게는 도 6의 예시와 도 7의 예시가 같은 질문인지 이해하기 힘들 수 있다. 띄어쓰기를 기준으로 했을 경우에, '오늘'과 '오늘은'은 컴퓨터가 이해하기에는 서로 다른 단어이다.
도 8은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 8에서는, 띄어쓰기 기준으로 딥 러닝 알고리즘(인코딩측)에 입력하는 것이 아니라 형태소 단위로 분리를 한 후에 입력을 행한다.
즉, "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"가 도 7에서는 "안녕하세요", "오늘은", "날씨가", "참", "좋은", "것", "같죠?"로 분리되어 딥 러닝 알고리즘에 입력된 것과는 달리, 도 8에서는 이를 "안녕", "하", "시", "어요", "오늘", "은", "날씨", "가", "참", "좋", "은", "것", "같", "죠"라고 형태소 단위로 분리하여 딥 러닝 알고리즘(인코딩측)에 입력한다.
이와 같이, 형태소를 기준으로 알고리즘에 입력하면 "안녕" + "오늘" + "날씨" + "참" + "좋"으로 나타나는 기본형들을 추출할 수 있다. 따라서 형태소 기준으로 학습을 할 경우, 띄어쓰기 기반 단어별로 학습했을때에 비해 훨씬 더 정밀한 표상(Representation) 학습이 가능하다. 예컨대, 도 8에서 /NNG는 명사를 나타내고, /EC는 어미를 나타내고, /JKS나 /JX는 조사를 나타내는 것일 수 있다.
만일 의도한 대로 학습이 잘 되었을 경우, 도 8에서 색칠되어 있지 않은 형태소들(예컨대, "하", "시", "어요")은 문장의 의미에 대해서는 별 작용을 하지 않는다는 것을 알고, 인코딩을 하고 난 결과에 큰 영향을 끼치지 않도록 표상(Representation)을 학습한다. 그리고 다양한 변형에 대처 가능하다. 또한, 위와 같은 방법을 이용하여 상대적으로 의미가 없는 형태소들을 직접 필터링할 수도 있다. 다만, 의미가 없다는 것은, 실질적인 내용을 좌우하는 것이 아니라 형식적인 사항(말투 등)을 결정한다는 것이며, 이 또한 경우에 따라서는 대화에 유용한 정보가 되므로 쓸모없이 버려진다는 것은 아니다.
도 9는 본 발명에 따른 시스템의 처리의 일예를 나타낸다.
도 4에 있어서 인코더에의 입력이 "아침이야 이제 일어나렴"이라고 가정하자. 이 문장은 도 8과 관련하여 설명한 바에 의하면, 예컨대 "아침", "이야", "이제", "일어나", "렴"으로 형태소 분석될 수 있다. 이들 각각은 명사, 어미, 부사, 동사, 어미로 분류될 수 있고, 의미를 갖는 형태소(명사, 부사, 동사 등)와 의미를 갖지 않는 형태소(어미 등)를 구분해 낼 수 있다. 이 문장에서 의미를 갖는 부분은 "아침", "이제", "일어나"이다. 의미를 갖지 않는 부분인 "이야", "렴"은 인코더에 입력되지 않을 수도 있다. 다만, "이야", "렴"은 그냥 버려지는 것은 아니고, 필요하다면, 디코더에서 나온 대답(후술함)의 말투를 정하는 데에 활용될 수도 있다.
도 4의 인코더에 "아침", "이제", "일어나"가 입력된다고 가정하자. "아침"이 입력되면 시스템은 X1 상태가 된다. 그에 이어 "이제"가 입력되면 시스템은 X2 상태가 된다. 정확하게는 "아침"에 이어서 "이제"가 입력된 것(즉, "아침" 및 "이제"가 순차적으로 입력된 것)에 따른 상태가 X2이다. 그에 이어 "일어나"가 입력되면(즉, 정확하게는 "아침", "이제", "일어나"가 순차적으로 입력되면) 시스템은 X3 상태가 된다. "일어나" 뒤에는 문장의 끝을 나타내는 기호(예컨대, End of Sequence; EoS)가 존재하여 말을 마쳤음을 의미한다고 가정하자.
그러면, 시스템은 상기 인코더의 입력을 처리하여, 다음 단어(즉, 답의 첫번째 단어)로서 "안녕히"가 적절하다고 판단한다. 이는 딥 러닝 등의 학습에 의해 도출되는 결과이다. 이 상태는 X4이다. X4는 일방의 "아침", "이제", "일어나", 및 타방의 "안녕히"(답은 미완성)까지 고려된 상태를 말한다. X4 상태에서 아직 답은 끝나지 않았고, 그 후에는 "주무셨어요"가 이어져야 한다고 판단한다. 이 또한 딥 러닝 등의 학습에 의해 도출되는 결과이다. 이 상태가 X5이며, 답은 일단락된다. 그러면, 시스템은 디코더에서 출력으로서 "안녕히 주무셨어요"를 출력한다.
설명의 편의상, 답의 말투(어미 등)에 대해서는 별도로 언급하지 않았으나, "아침이야 이제 일어나렴"에서 필터링되었던 "이야", "렴"을 감안하여 답의 말투를 결정하는 데에 참조하여도 좋다. 예컨대, 인코더-디코더에서는 "아침", "이제", "일어나"가 입력으로, "안녕", "주무시"가 출력으로 나오고, 디코더의 출력에 별도로 어미를 적절히 부가하여 "안녕히", "주무시었어요(주무셨어요)"를 출력하여도 좋다.
도 10은 입력값과 출력값의 관계를 나타내는 도면이다.
종래의 방식은 입력값과 출력값의 관계를 명시적인 외부 메모리에 저장한다. 즉, 일대일 매핑 테이블이 존재한다. A라는 질문에는 B라는 답변을 한다는 식으로 입력값과 출력값이 일대일 매핑되어 있는 것이다. 이러한 문제를 해결하기 위해 퍼지(fuzzy) 방식의 입력과 출력이 제안되기도 하였으나, 이 또한 입력과 출력을 일대일로 대응시키는 것은 아니지만, 입력과 출력간에 확률적인 관계가 있다.
즉, 일대일 매핑은, 입력 데이터베이스에 A1~A100의 데이터가 있고 출력 데이터베이스에 B1~B100의 데이터가 있다면 A1은 B1에 대응, A2는 B2에 대응, ... A100은 B100에 대응이라는 식으로 미리 정해 놓는 것이다. 퍼지 방식은 일대일 매핑과는 다소 다르게, A1이라는 입력에 대해 반드시 B1의 대답을 하는 것은 아니다. 다만, 퍼지 방식도, A1이라는 입력에 대해서 B1이 출력될 가능성이 상당히 높고, 낮은 확률로 B1이 아닌 다른 출력이 나오도록 세팅된 것이다.
예컨대, A1이 "안녕하세요", B1이 "안녕"이고, 이 둘이 사전에 매핑되어 있다면, 사람이 인공지능 에이전트에게 "안녕하세요"(즉, A1)라고 말을 걸면, 인공지능은 "안녕"(즉, B1)이라고 답을 하도록 되어 있는 것이 일대일 매핑이다.
또는, 사람이 인공지능 에이전트에게 "안녕하세요"(즉, A1)라고 말을 걸면, 인공지능은 "안녕"(즉, B1)이라고 답할 확률이 90%이고, "응, 뭐하니"(즉, B2)라고 답할 확률이 10%이도록 세팅되어 있다면, 이는 일종의 퍼지 방식이라고 볼 수도 있다.
그러나, 본 발명은 A1이라는 입력에 대해서 어떠한 출력을 할 것인지 미리 정해져 있지 않다. 딥 러닝 알고리즘에 의해서 입력값(A set; A1~A100)을 정하고, 출력값(B set; B1~B100)을 세팅한다. 즉, 실제의 대화쌍을 보면서 어떠한 질문(입력)에 대해서는 어떻게 답(출력)하는지를 학습한다. 편의상, '질문', '답'이라고 표현하였으나, 대화가 반드시 질문과 답의 형태는 아니므로 대화의 일부라는 의미로 이해할 수 있을 것이다. 또한, A1이라는 것이 반드시 하나의 단어를 의미하는 것은 아니고, 하나의 의미 단위(문장, 구 등)가 될 수도 있다.
본 발명에서는, A1이라는 입력(대화)에 대해서 B1이라는 출력(대화)이 미리 정해져 있는 것이 아니라, 대화쌍 중에서 A1이라는 질문에 대해 B1이라는 답이 많으면 A1 입력에 대해 B1 출력을 하도록 학습한다. 이에 의하면, A1에 대해 B1이라는 출력이 일시적으로 매핑될 수는 있으나, 이는 데이터의 축적에 따라서 학습이 계속 이루어지면서 얼마든지 바뀔 수 있다. 즉, 특정 어휘가 유행에 민감한 경우에는 특정 시기에는 매핑값이 달라질 수 있다. 일예로, 최근에 입력된 대화쌍에 더 가중치를 두어 입력과 출력의 매핑을 학습하도록 하면, 조금 더 유행에 민감한 대화가 이루어질 수 있다. 예컨대, 코미디 프로그램이나 예능 프로그램에서 특정 어휘가 유행어로써 많이 쓰이는 경우라면, 예전에는 A1이란 질문에 대해 B1이라는 답이 많았던 것이 특정 시기에는 A1이란 질문에 대해 B10이라는 답이 많을 수 있을 것이다. 또는, 반드시 유행어를 감안한 것이 아니더라도, 시간의 흐름에 따라 또는 아이가 커감에 따라 실생활에서 자주 사용하는 일상 어휘에 다소 변화가 있을 수도 있음을 감안할 수도 있을 것이다.
이때, 만약 알고리즘을, 대화쌍의 갯수를 기준으로 매핑하도록 학습시키면, 예전에 A1에 대해 B1이라는 답을 한 것이 900개이고, A1에 대해 B10라는 답을 한 것이 100개라면, A1→B1으로 매핑될 가능성이 높을 것이다. 그렇지 않고, 알고리즘을, 대화쌍의 갯수 뿐만 아니라, 최근의 대화인지의 여부(대화 시기)도 기준으로 삼도록 매핑시키면, 비록 갯수로 생각하면 A1→B1의 매핑이 여전히 유력하지만, A1에 대해 B10이라는 답을 한 것이 대체로 상기 900개의 대화쌍보다 더 최근의 일이라면 갯수가 다소 적더라도 A1→B10의 매핑에 더 중점을 두어, 적어도 현재로서는 A1이라는 질문에 대해 B10이라는 답을 하도록 매핑할 수 있을 것이다. 이러한 매핑 또는 절대적인 것이 아니며, 학습 데이터가 추가됨에 따라 얼마든지 바뀔 수 있을 것이다.
다만, 본 발명에서 학습에 의한 매핑을 행하지만, 규칙 기반의 매핑(가장 극단적인 예로서는, 일대일 매핑)을 완전히 배제하는 것은 아니다. 딥 러닝에 의한 학습만으로 매핑을 행하는 경우, 틀리면 치명적일 수 있는 중요한 질문에 대해서 답하는 경우에 위험성이 있을 수 있으므로, 규칙 기반의 매핑을 다소 가미하여 어느 한도(boundary) 내에서 학습을 하도록 설정할 수 있을 것이다.
한편, 본 발명에 대하여, 프리트레인드 워드 임베딩(pre-trained word embedding)을 적용할 수도 있다.
이하, 워드 임베딩에 대해 설명한다.
이는 텍스트를 처리하는 인공 신경망이며 두 개의 층으로 구성되어 있다. 말뭉치(corpus)를 입력으로 받아서 말뭉치의 단어를 벡터로 표현하는 방법을 찾는데, 이 벡터의 값은 말뭉치에서 단어가 가지는 의미나 역할을 잘 표현해주는 값이어야 한다. 이렇게 단어의 의미와 맥락을 고려하여 단어를 벡터로 표현한 것을 워드 임베딩(word embeddings)이라고 하며, 심층 신경망(deep neural network)의 전처리 단계로 쓰일 수 있다. 이러한 전처리는 도 1의 단계 102과 관련하여 언급한 전처리에 해당할 수 있다.
정리하면, 각 단어마다 단어에 해당하는 벡터를 구하고, 이 벡터를 다시 심층 신경망(deep neural network)에 집어넣어서 추가적인 일을 할 수도 있고 단어의 유사성 등 관계를 파악할 수 있다.
텍스트로 된 문장을 이해하기 위하여, 예컨대, 단어간 유사성을 구할 수 있다. 원래 워드 임베딩의 목적이, 유사한 단어일수록 가까운 거리에 위치하도록 각 단어에 해당하는 벡터 값을 찾는 것이다. 이 학습은 사람이 관여하지 않으며 말뭉치 데이터만을 사용한다.
데이터의 양이 충분하면 워드 임베딩은 단어의 의미를 꽤 정확하게 파악한다. 그리고 이를 이용하면 단어의 뜻 뿐만 아니라 여러 단어의 관계를 알아낸다. 예를 들어 단어의 관계를 이용해 ‘남자’:’소년’ = ‘여자’:x 같은 관계식을 주면 x=’소녀’라는 답을 구할 수 있다. 단어 뿐만 아니라 더 큰 단위의 텍스트인 문장이나 문서를 분류하는 데에도 워드 임베딩이 사용된다. 예를 들어, 문서를 군집화한 뒤에 결과를 이용하면 검색 엔진에서 문서의 분야별 검색(과학, 법률, 경제 등)이나 문장의 감정 분석, 추천 시스템을 만들 수 있다.
또한, 충분한 데이터가 주어지면, 당해 데이터의 학습을 통해, "스웨덴"이라는 단어에 대해서 "노르웨이", "덴마크", "핀란드", "스위스", "벨기에", "네덜란드", "아이슬란드", "에스토니아", "슬로베니아" 등의 북유럽, 스칸디나비아 반도 국가들이 유사도가 높은 것으로 미리 정해져 있을 수 있다.
딥 러닝에 사용되는 신경망과의 연결을 통해, 입력한 말뭉치의 문장에 있는 단어와 인접 단어의 관계를 이용해 단어의 의미를 학습한다. 주변 단어가 만드는 맥락을 이용해 타겟 단어를 예측할 수도 있고, 한 단어를 기준으로 주변에 올 수 있는 단어를 예측할 수도 있다.
또한, 본 발명에 대하여, 멀티 레졸루션(multi-resolution) 문장 분석을 행할 수도 있다.
단어 표상(word representation)을 학습할 때, 영어의 경우는 띄어쓰기, 한글의 경우는 형태소 단위로 한 대화에 대한 표상을 학습하는 것을 상정할 수도 있지만, 한 글자(character) 단위로, 혹은 자음+모음+(자음)의 단위로 학습할 수도 있다. 예를 들어, "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"를 학습할 때, 안+녕+하+세+요+오+늘+은+...+같+죠+? 라고 분해하여 학습을 할 수도 있고, ㅇ+ㅏ+ㄴ+ㄴ+ㅕ+ㅇ+ㅎ+ㅏ+ㅅ+ㅔ+ㅇ+ㅛ+ㅇ+ㅗ+ㄴ+ㅡ+ㄹ+ㅇ+ㅡ+ㄴ+...+ㄱ+ㅏ+ㅌ+ㅈ+ㅛ+? 라고 분해하여 학습을 할 수도 있다. 즉, 단어/음절/자음모음으로 학습하는 방법 중 어느 것이 가장 좋은 표상(representation)을 학습할지는, 학습을 해보기 전에 명확히 알기는 힘들지만, 위에 여러 다양한 청킹 방식(즉, multi-resolution)을 시도하여 그 중 가장 적절한 방법을 고를 수 있다.
또한, 본 발명에 대하여, 카메라 이미지 정보를 활용한 시각 대화를 제시할 수도 있다. 기본적으로는 대화쌍을 다수 제시하고, 대화의 각 문장을 형태소 단위로 분해하고 그로부터 적절한 벡터를 만들고 그 의미를 파악하는 것이지만, 그에 부가하여 대화하는 사람의 얼굴 표정에 따른 정보를 추가 제공하여 대화를 행할 수도 있다. 즉, 같은 말이라 할지라도 웃으면서 농담으로 하는 경우가 있고 정색을 하고 진지하게 하는 경우가 있는데, 이는 대화만으로는 파악하기 힘든 경우가 있다. 물론, 어조(tone, intonation)을 참고할 수도 있을 것이다. 그러나, 시각적인 정보가 추가되는 경우 그 정확성을 더욱 높일 수 있을 것이다. 이러한 시각적인 정보는 안면 인식 기술, 표정 인식 기술에 의해 얻을 수 있고, 당해 표정에 따른 감정을 고려하여 대화를 이어나갈 수 있도록 설정할 수 있을 것이다.
사람의 얼굴 인식에 사용되는 추출용 필터인 Gabor나 LBP(Local binary pattern)을 안드로이드에서 활용할 수 있도록 라이브러리(Library) 형태로 구현하여 적용할 수도 있다. 카메라 라이브 필터(Live Filter)를 통해 입력된 프리뷰 이미지 데이터를 이용하여 얼굴을 검출하고, 얼굴 정렬, 얼굴에서 눈, 코의 위치 확인이 가능하도록 한다. 라이선스에 저촉되지 않는 공개 소프트웨어 라이브러리 OpenCV 등을 이용한 얼굴 인식 방안도 개발 적용 가능하다. OpenCV에서 제공하는 C언어용 얼굴인식 코드를 안드로이드 자바용으로 포팅하거나 NDK로 변환하여 사용하는 것도 가능할 것이다.
본 발명은 PC 상에서, 스마트 기기(스마트 패드, 스마트폰) 상에서, 또는 별도의 독립적인 기기(로봇 등) 상에서 구현될 수 있을 것이다.
위에서는 특정의 예를 들어 설명하였으나, 본 발명은 상기 실시예에 한정되지 않으며, 당 분야의 통상의 지식을 가진 자에 의하여 많은 변형이 첨부의 특허청구범위에 기재된 본 발명의 본질적인 사상 내에서 가능함은 물론이다. 본 발명의 기본 사상을 벗어나지 않는 한, 그 외의 다양한 변형도 본 발명의 범주에 속하는 것으로 보아야 할 것이다.
201: 사람
202: 사람
203: 인공지능 서비스
204: 한국어 빅데이터
205: 딥 러닝 확률 추론 모델

Claims (13)

  1. 인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템의 이용 방법으로서,
    (a) 상기 시스템의 수집부가, 대화 데이터를 수집하는 단계;
    (b) 상기 시스템의 전처리부가, 상기 수집된 대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처리하는 단계;
    (c) 상기 시스템의 학습부가, 상기 전처리된 형태소별 데이터의 신경 표상(neural representation)을 학습하는 단계;
    (d) 상기 시스템의 이해부가, 상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식(semantic knowledge)을 이해하도록 기계 학습하는 단계;
    (e) 상기 시스템의 인코더가, 사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태소별로 벡터화하여 이해 및 분석하는 단계로서, 상기 인코더는 제1 순환 신경망(RNN; Recurrent Neural Network)인, 단계; 및
    (f) 상기 시스템의 디코더가, 상기 입력 대화에 대한 대답을 생성하는 단계로서, 상기 디코더는 상기 인코더에서 생성된 벡터를 형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망인, 단계
    를 포함하는, 한국어 대화 시스템의 이용 방법.
  2. 제1항에 있어서,
    상기 (e) 단계의 처리에 있어서, 형태소별로 분류하여, 의미를 갖는 부분만을 상기 인코더에 입력으로 넣고, 의미를 갖지 않는 부분은 상기 인코더에 입력으로 넣지 않고 필터링하는, 한국어 대화 시스템의 이용 방법.
  3. 제2항에 있어서,
    상기 의미를 갖는 부분은 명사, 부사, 동사를 포함하며,
    상기 의미를 갖지 않는 부분은 조사, 어미를 포함하는, 한국어 대화 시스템의 이용 방법.
  4. 제2항에 있어서,
    상기 인코더에 입력되지 않고 필터링된 부분을 고려하여, 상기 디코더로부터의 출력의 어미 또는 말투를 보정하는, 한국어 대화 시스템의 이용 방법.
  5. 제1항에 있어서,
    상기 (d) 단계에 있어서, 상기 입력 대화와 출력 대화의 연관성은 규칙 대화 기반이 아니라 기계 학습에 따른 학습 데이터를 이용하는, 한국어 대화 시스템의 이용 방법.
  6. 제1항에 있어서,
    상기 (e) 단계의 앞 또는 뒤에,
    (e') 상기 시스템의 카메라가, 상기 사용자가 대화할 때의 얼굴을 인식하여 상기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려하는 단계
    를 더 포함하는, 한국어 대화 시스템의 이용 방법.
  7. 제1항에 있어서,
    상기 제1 순환 신경망 및 상기 제2 순환 신경망은 LSTM(Long-Short Term Memory)인, 한국어 대화 시스템의 이용 방법.
  8. 인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템으로서,
    대화 데이터를 수집하는 수집부;
    상기 수집된 대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처리하는 전처리부;
    상기 전처리된 형태소별 데이터의 신경 표상(neural representation)을 학습하는 학습부;
    상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식(semantic knowledge)을 이해하도록 기계 학습하는 이해부;
    사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태소별로 벡터화하여 이해 및 분석하는 인코더로서, 제1 순환 신경망(RNN; Recurrent Neural Network)인, 인코더; 및
    상기 입력 대화에 대한 대답을 생성하는 디코더로서, 상기 인코더에서 생성된 벡터를 형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망인, 디코더
    를 포함하는, 한국어 대화 시스템.
  9. 제8항에 있어서,
    상기 인코더의 처리에 있어서, 형태소별로 분류하여, 의미를 갖는 부분만을 상기 인코더에 입력으로 넣고, 의미를 갖지 않는 부분은 상기 인코더에 입력으로 넣지 않고 필터링하는, 한국어 대화 시스템.
  10. 제9항에 있어서,
    상기 인코더에 입력되지 않고 필터링된 부분을 고려하여, 상기 디코더로부터의 출력의 어미 또는 말투를 보정하는, 한국어 대화 시스템.
  11. 제8항에 있어서,
    상기 이해부의 처리에 있어서, 상기 입력 대화와 출력 대화의 연관성은 규칙 대화 기반이 아니라 기계 학습에 따른 학습 데이터를 이용하는, 한국어 대화 시스템.
  12. 제8항에 있어서,
    상기 사용자가 대화할 때의 얼굴을 인식하는 카메라를 더 포함하고,
    상기 인식된 얼굴의 표정으로부터 상기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려하는, 한국어 대화 시스템.
  13. 제1항 내지 제7항 중 어느 한 항에 기재된 방법을, 컴퓨터로 하여금 수행하도록 하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
KR1020170026236A 2017-02-28 2017-02-28 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체 KR101937778B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170026236A KR101937778B1 (ko) 2017-02-28 2017-02-28 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170026236A KR101937778B1 (ko) 2017-02-28 2017-02-28 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체

Publications (2)

Publication Number Publication Date
KR20180100001A KR20180100001A (ko) 2018-09-06
KR101937778B1 true KR101937778B1 (ko) 2019-01-14

Family

ID=63593731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170026236A KR101937778B1 (ko) 2017-02-28 2017-02-28 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체

Country Status (1)

Country Link
KR (1) KR101937778B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210049613A (ko) * 2019-10-25 2021-05-06 서울대학교산학협력단 비정형 질문 또는 요구 발화의 구조화된 패러프레이징 시스템 및 방법
KR20210051948A (ko) * 2019-10-31 2021-05-10 주식회사 엘지씨엔에스 외국어 학습장치 및 이를 이용하는 외국어 학습서비스 제공방법
KR102568378B1 (ko) 2022-09-27 2023-08-18 주식회사 밥스엉클 외국어 학습서비스장치 및 그 장치의 구동방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325243B (zh) * 2018-10-22 2022-11-22 内蒙古大学 字符级基于序列模型的蒙古文切词方法及其切词系统
KR101976841B1 (ko) * 2018-10-29 2019-05-15 한경훈 자율 인지 신경망 기반 연관 모델 학습을 이용한 의사 결정 서비스 제공 방법
WO2020149897A1 (en) * 2019-01-17 2020-07-23 Visa International Service Association A deep learning model for learning program embeddings
KR102205430B1 (ko) * 2019-08-05 2021-01-20 에스케이텔레콤 주식회사 인공 신경망을 이용한 학습 방법
KR102315830B1 (ko) * 2019-12-27 2021-10-22 한국과학기술원 반지도 학습 기반 단어 단위 감정 임베딩과 lstm 모델을 이용한 대화 내에서 발화의 감정 분류 방법
KR102517787B1 (ko) * 2020-09-08 2023-04-03 조선대학교산학협력단 심전도 신호의 분할을 통한 개인식별 방법 및 장치
KR102564070B1 (ko) * 2021-02-16 2023-08-07 한국생산기술연구원 다차원 센서 데이터 기반 객체인식장치 및 방법
CN112951215B (zh) * 2021-04-27 2024-05-07 平安科技(深圳)有限公司 语音的智能客服回答方法、装置以及计算机设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210049613A (ko) * 2019-10-25 2021-05-06 서울대학교산학협력단 비정형 질문 또는 요구 발화의 구조화된 패러프레이징 시스템 및 방법
KR102297480B1 (ko) * 2019-10-25 2021-09-02 서울대학교산학협력단 비정형 질문 또는 요구 발화의 구조화된 패러프레이징 시스템 및 방법
KR20210051948A (ko) * 2019-10-31 2021-05-10 주식회사 엘지씨엔에스 외국어 학습장치 및 이를 이용하는 외국어 학습서비스 제공방법
KR102302137B1 (ko) * 2019-10-31 2021-09-15 주식회사 엘지씨엔에스 외국어 학습장치 및 이를 이용하는 외국어 학습서비스 제공방법
KR102568378B1 (ko) 2022-09-27 2023-08-18 주식회사 밥스엉클 외국어 학습서비스장치 및 그 장치의 구동방법

Also Published As

Publication number Publication date
KR20180100001A (ko) 2018-09-06

Similar Documents

Publication Publication Date Title
KR101937778B1 (ko) 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체
CN106653052B (zh) 虚拟人脸动画的生成方法及装置
CN111312245B (zh) 一种语音应答方法、装置和存储介质
CN101187990A (zh) 一种会话机器人系统
CN112101045B (zh) 一种多模态语义完整性识别方法、装置及电子设备
CN113837299B (zh) 基于人工智能的网络训练方法及装置、电子设备
CN113987179A (zh) 基于知识增强和回溯损失的对话情绪识别网络模型、构建方法、电子设备及存储介质
CN115641543A (zh) 一种多模态抑郁情绪识别方法及装置
CN114911932A (zh) 基于主题语义增强的异构图结构多会话者情感分析方法
WO2023226239A1 (zh) 对象情绪的分析方法、装置和电子设备
Zhang Voice keyword retrieval method using attention mechanism and multimodal information fusion
US20220253609A1 (en) Social Agent Personalized and Driven by User Intent
CN112349294A (zh) 语音处理方法及装置、计算机可读介质、电子设备
CN112307754A (zh) 语句获取方法及装置
Kazakova et al. Analysis of natural language processing technology: modern problems and approaches
Pardeshi et al. A survey on Different Algorithms used in Chatbot
CN114611529B (zh) 意图识别方法和装置、电子设备及存储介质
CN116312463A (zh) 语音合成方法、语音合成装置、电子设备及存储介质
Yang [Retracted] Design of Service Robot Based on User Emotion Recognition and Environmental Monitoring
CN115204181A (zh) 文本检测方法、装置、电子设备以及计算机可读存储介质
CN114170997A (zh) 发音技巧检测方法、装置、存储介质及电子设备
Esposito et al. Recent Advances in Nonlinear Speech Processing: Directions and Challenges
Augello et al. An emotional talking head for a humoristic chatbot
CN114373443A (zh) 语音合成方法和装置、计算设备、存储介质及程序产品
Pilato et al. EHeBby: An evocative humorist chat-bot

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
R401 Registration of restoration