(19) 대한민국특허청(KR)
(12) 등록특허공보(B1)
(45) 공고일자 2019년01월14일
(11) 등록번호 10-1937778
(24) 등록일자 2019년01월07일
(51) 국제특허분류(Int. Cl.)
G06F 17/30 (2006.01) G06F 17/27 (2006.01)
G06K 9/00 (2006.01) G06N 3/08 (2006.01)
G10L 13/08 (2006.01)
(52) CPC특허분류
G06F 17/30654 (2013.01)
G06F 17/2755 (2013.01)(21) 출원번호 10-2017-0026236
(22) 출원일자 2017년02월28일
심사청구일자 2017년02월28일
(65) 공개번호 10-2018-0100001
(43) 공개일자 2018년09월06일
(56) 선행기술조사문헌
KR1020140042994 A
(73) 특허권자
서울대학교산학협력단
서울특별시 관악구 관악로 1 (신림동)
(72) 발명자
장병탁
서울특별시 관악구 관악로 1 공과대학 컴퓨터공학부 바이오지능연구실 (신림동,서울대학교)
조휘열
서울특별시 관악구 관악로 1 공과대학 컴퓨터공학부 바이오지능연구실 (신림동,서울대학교)
(뒷면에 계속)
(74) 대리인
이철
전체 청구항 수 : 총 13 항 심사관 : 이복현
(54) 발명의 명칭 인공지능을 이용한 기계학습 기반의 한국어 대화 시스템과 방법 및 기록매체
(57) 요 약
인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템의 이용 방법이 제공된다. 상기 시
스템의 수집부가, 대화 데이터를 수집한다. 상기 시스템의 전처리부가, 상기 수집된 대화 데이터를 심층 신경
망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처리한다. 상기 시스템의
(뒷면에 계속)
대 표 도 - 도1
등록특허 10-1937778
- 1 -
학습부가, 상기 전처리된 형태소별 데이터의 신경 표상(neural representation)을 학습한다. 상기 시스템의 이
해부가, 상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식(semantic knowledge)을 이해
하도록 기계 학습한다. 상기 시스템의 인코더가, 사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태
소별로 벡터화하여 이해 및 분석한다. 상기 인코더는 제1 순환 신경망(RNN; Recurrent Neural Network)이다.
상기 시스템의 디코더가, 상기 입력 대화에 대한 대답을 생성한다. 상기 디코더는 상기 인코더에서 생성된 벡
터를 형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망이다. 상기 제1 순환 신경망 및 상
기 제2 순환 신경망은 LSTM(Long-Short Term Memory)일 수 있다.
(52) CPC특허분류
G06K 9/00228 (2013.01)
G06N 3/08 (2013.01)
G10L 13/08 (2013.01)(72) 발명자
강우영
서울특별시 관악구 관악로 1 공과대학 컴퓨터공학부 바이오지능연구실 (신림동,서울대학교)
한동식
서울특별시 관악구 관악로 1 공과대학 컴퓨터공학부 바이오지능연구실 (신림동,서울대학교)
이 발명을 지원한 국가연구개발사업
과제고유번호 10044009
부처명 산업통상자원부
연구관리전문기관 한국산업기술평가관리원
연구사업명 산업융합원천기술개발사업
연구과제명 지속적인 상호 작용을 통하여 사용자의 복합정서 이해 및 교류 의도를 파악하고, 이에 대한 대응을 95%이상 적절하게 할 수 있는 자율 발달 쌍방향 HRI 기술 개발
기 여 율 2/9
주관기관 한양대학교산학협력단
연구기간 2016.03.01 ~ 2017.02.28
이 발명을 지원한 국가연구개발사업
과제고유번호 R01261610720001002
부처명 미래창조과학부
연구관리전문기관 정보통신기술진흥센터
연구사업명 정보통신.방송연구개발사업
연구과제명 (SW 스타랩) 일상생활학습 기반의 인지에이전트 SW 개발
기 여 율 7/9
주관기관 서울대학교산학협력단
연구기간 2016.03.01 ~ 2017.02.28
공지예외적용 : 있음
등록특허 10-1937778
- 2 -
명 세 서
청구범위
청구항 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) 단계의 앞 또는 뒤에,
등록특허 10-1937778
- 3 -
(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항에 있어서,
상기 사용자가 대화할 때의 얼굴을 인식하는 카메라를 더 포함하고,
상기 인식된 얼굴의 표정으로부터 상기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려하는,
한국어 대화 시스템.
등록특허 10-1937778
- 4 -
청구항 13
제1항 내지 제7항 중 어느 한 항에 기재된 방법을, 컴퓨터로 하여금 수행하도록 하는 프로그램이 기록된 컴퓨터
판독 가능 기록매체.
발명의 설명
기 술 분 야
본 발명은 기계학습 기술을 활용하여 학습된 인공지능 에이전트와 한국어로 실시간 대화를 주고 받을 수 있는[0001]
시스템과 방법 및 기록매체에 대한 것이다.
배 경 기 술
사람 같은 일상적인 대화를 하는 인공지능을 만드는 것은 인공지능 학자들의 오랜 꿈이었다. 그 꿈은 지금까[0002]
지도 튜링 테스트를 통해 이어지고 있다. 튜링 테스트란 기계가 생각을 할 수 있는지, 지능이 있는지 판단하
는 테스트로, 현재 대화를 하고 있는 상대가 컴퓨터인지 사람인지 구분할 수 없을 때 튜링 테스트를 통과한 것
으로 여기며, 이때 컴퓨터가 인간 같은 지능을 가지고 있다고 정의한다.
기존 시중에 사용되고 있는 많은 대화형 모델들은 정해져 있는 대화에 정해져 있는 답변만을 하는 시스템이었다[0003]
면 최근 인공지능, 딥러닝의 발전으로 인해 사람 같은 유연한 대답이 가능한 대화형 모델들이 생겨나고 있다.
순환 신경망(Recurrent Neural Networks; RNN) 기반의 깊은 신경망(Deep Neural Networks; 심층 신경망)은 음[0004]
성 인식, 자연 언어 처리 등 순차적인 데이터를 처리하는 데 큰 성공을 가져왔다. 최근 순환 신경망 인코더-
디코더 모델(seq2seq)이 제안되었는데 이 모델은 기계 번역에서 뛰어난 성능을 보였다. 그뿐만 아니라,
seq2seq 모델은 약간의 수정을 거쳐 QA 대화 모델로도 사용되었다.
발명의 내용
해결하려는 과제
종래에는, 대화 쌍을 규칙기반의 알고리즘을 적용하여 매우 큰 메모리를 검색하는 방법으로 대화가 이루어졌다.[0005]
따라서, 메모리 내에 저장되어 있지 않은 물음에는 대답을 할 수 없다. 또한, 텍스트를 그대로 메모리에 저
장하기 때문에 한국어의 다양한 표현에 대해 강건(robust)하지 못하다는 문제가 있다.
과제의 해결 수단
본 발명에 의하면, 인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템의 이용 방법으[0006]
로서, (a) 상기 시스템의 수집부가, 대화 데이터를 수집하는 단계; (b) 상기 시스템의 전처리부가, 상기 수집된
대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태로 형태소별로 나누어 벡터화하여 전처
리하는 단계; (c) 상기 시스템의 학습부가, 상기 전처리된 형태소별 데이터의 신경 표상(neural
representation)을 학습하는 단계; (d) 상기 시스템의 이해부가, 상기 대화 데이터의 입력 대화와 출력 대화의
연관성 및 각각의 의미 지식(semantic knowledge)을 이해하도록 기계 학습하는 단계; (e) 상기 시스템의 인코더
가, 사용자로부터 대화를 건네받으면, 상기 사용자의 대화를 형태소별로 벡터화하여 이해 및 분석하는
단계로서, 상기 인코더는 제1 순환 신경망(RNN; Recurrent Neural Network)인, 단계; 및 (f) 상기 시스템의 디
코더가, 상기 입력 대화에 대한 대답을 생성하는 단계로서, 상기 디코더는 상기 인코더에서 생성된 벡터를 형태
소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망인, 단계를 포함하는, 한국어 대화 시스템의
이용 방법이 제공된다.
바람직하게는, 상기 (e) 단계의 처리에 있어서, 형태소별로 분류하여, 의미를 갖는 부분만을 상기 인코더에 입[0007]
력으로 넣고, 의미를 갖지 않는 부분은 상기 인코더에 입력으로 넣지 않고 필터링한다.
바람직하게는, 상기 의미를 갖는 부분은 명사, 부사, 동사를 포함하며, 상기 의미를 갖지 않는 부분은 조사, 어[0008]
미를 포함한다.
바람직하게는, 상기 인코더에 입력되지 않고 필터링된 부분을 고려하여, 상기 디코더로부터의 출력의 어미 또는[0009]
말투를 보정한다.
등록특허 10-1937778
- 5 -
바람직하게는, 상기 (d) 단계에 있어서, 상기 입력 대화와 출력 대화의 연관성은 규칙 대화 기반이 아니라 유연[0010]
한 학습 데이터를 이용한다.
바람직하게는, 상기 (e) 단계의 앞 또는 뒤에, (e') 상기 시스템의 카메라가, 상기 사용자가 대화할 때의 얼굴[0011]
을 인식하여 상기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려하는 단계를 더 포함한다.
바람직하게는, 상기 제1 순환 신경망 및 상기 제2 순환 신경망은 LSTM(Long-Short Term Memory)이다.[0012]
본 발명에 의하면, 인공지능을 이용한 기계 학습(machine-learning) 기반의 한국어 대화 시스템으로서, 대화 데[0013]
이터를 수집하는 수집부; 상기 수집된 대화 데이터를 심층 신경망(deep neural network)에 입력할 수 있는 상태
로 형태소별로 나누어 벡터화하여 전처리하는 전처리부; 상기 전처리된 형태소별 데이터의 신경 표상(neural
representation)을 학습하는 학습부; 상기 대화 데이터의 입력 대화와 출력 대화의 연관성 및 각각의 의미 지식
(semantic knowledge)을 이해하도록 기계 학습하는 이해부; 사용자로부터 대화를 건네받으면, 상기 사용자의 대
화를 형태소별로 벡터화하여 이해 및 분석하는 인코더로서, 제1 순환 신경망(RNN; Recurrent Neural
Network)인, 인코더; 및 상기 입력 대화에 대한 대답을 생성하는 디코더로서, 상기 인코더에서 생성된 벡터를
형태소별로 디코딩하여 상기 대답을 생성 및 출력하는 제2 순환 신경망인, 디코더를 포함하는, 한국어 대화 시
스템이 제공된다.
바람직하게는, 상기 인코더의 처리에 있어서, 형태소별로 분류하여, 의미를 갖는 부분만을 상기 인코더에 입력[0014]
으로 넣고, 의미를 갖지 않는 부분은 상기 인코더에 입력으로 넣지 않고 필터링한다.
바람직하게는, 상기 인코더에 입력되지 않고 필터링된 부분을 고려하여, 상기 디코더로부터의 출력의 어미 또는[0015]
말투를 보정한다.
바람직하게는, 상기 이해부의 처리에 있어서, 상기 입력 대화와 출력 대화의 연관성은 규칙 대화 기반이 아니라[0016]
유연한 학습 데이터를 이용한다.
바람직하게는, 상기 사용자가 대화할 때의 얼굴을 인식하는 카메라를 더 포함하고, 상기 얼굴 인식으로부터 상[0017]
기 사용자의 감정 상태를 파악하고, 상기 디코더에의 출력시에 고려한다.
본 발명에 의하면, 전술한 방법을, 컴퓨터로 하여금 수행하도록 하는 프로그램이 기록된 컴퓨터 판독 가능 기록[0018]
매체가 제공된다.
발명의 효과
본 발명은 한국어로 일반적인 주제에 대해 사람과 인공지능 에이전트가 대화를 나눌 수 있는 시스템 및 방법을[0019]
제공한다. 이 시스템 및 방법은 로봇이나 태블릿, 핸드폰 등에 내장되어 사용될 수 있으며, 실시간으로 대화
가 이루어지는 특징을 가지고 있다. 기존의 규칙기반 시스템과는 달리 다양한 질의에 대해 답변이 가능하며
단어의 표상(Representation) 학습을 통해 의미(Semantic) 정보를 이해하고 이를 조합하여 대답을 생성하기 때
문에 보다 다양한 표현을 구사할 수 있다.
기계학습 알고리즘으로 학습된 인공지능 에이전트와 실시간으로 대화를 수행할 수 있으며, 학습되어 있지 않은[0020]
질문에 대해서도 에이전트 자체적으로 추론을 하여 답변을 할 수 있고, 텍스트를 실수형태의 벡터(Distributed
Representation)로 표현하기 때문에 한국어의 다양한 표현에 대해서도 강건하게 대응할 수 있다.
또한, 명시적인 외부 메모리에 저장하는 방식이 아니기 때문에 더욱 많은 대화를 학습시켜도 시스템이 차지하는[0021]
크기는 크게 늘어나지 않는다.
도면의 간단한 설명
도 1은 본 발명에 따른 흐름도를 나타낸다.[0022]
도 2는 본 발명에 따른 데이터 수집 및 추론 모델 구축에 대한 개념도이다.
도 3a는 가정환경을 모사한 실험실의 모습이다.
도 3b는 본 발명의 시스템이 탑재된 로봇과 사람이 상호작용(대화)하는 모습이다.
도 4는 본 발명에 따른 시스템의 구조의 개요를 나타낸다.
도 5는 영어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
등록특허 10-1937778
- 6 -
도 6은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 7은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 8은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.
도 9는 본 발명에 따른 시스템의 처리의 일예를 나타낸다.
도 10은 입력값과 출력값의 관계를 나타내는 도면이다.
발명을 실시하기 위한 구체적인 내용
이하, 도면을 참조하여 본 발명에 따른 시스템 및 방법을 설명한다.[0023]
도 1은 본 발명에 따른 흐름도를 나타낸다.[0024]
본 발명은 알고리즘이 적용된 플랫폼(PC, 로봇, 스마트폰 등)과 사람이 직접 대화를 하여 데모(demonstrate)할[0025]
수 있다. 예를 들어, 알고리즘이 컴퓨터에서 실행되고 있다면 컴퓨터와 직접 키보드를 통해 대화할 수 있고,
로봇 플랫폼에서 실행되는 경우에는 음성인식 기술, 스피치 투 텍스트(Speech-To-Text), 텍스트 투 스피치
(text-to-Speech), 소켓 통신 기술과 함께 활용하여 대화 시스템을 구축할 수 있다.
단계 102에서, 먼저, 사람과 사람 사이에 이루어질 수 있는 대화들을 데이터로써 수집하여, 딥 뉴럴 네트워크[0026]
(Deep Neural Network)에 적절한 형태로 전처리를 한다. 전처리의 일예는 후술하는 워드 임베딩, 프리트레인
드(pre-trained) 워드 임베딩일 수 있다. 이러한 데이터 수집은 본 발명의 시스템의 수집부에서 행해진다.
단계 104에서, 수집된 데이터를 이용하여 각 단어의 뉴럴 표상(Neural Representation)을 학습한다. 이는 본[0027]
발명의 시스템의 학습부에서 행해진다.
단계 106에서, 입력 대화와 출력 대화의 연관성, 각각의 의미 지식(Semantic Knowledge)을 이해한다. 이는 본[0028]
발명의 시스템의 이해부에서 행해진다.
단계 108에서, 사용자가 모델에게 어떠한 대화를 건네면, 단계 110에서, 알고리즘은 단계 102 내지 단계 106에[0029]
서 구축한 지식을 이용하여 입력 대화를 이해하고 분석한다. 이는 본 발명의 시스템이 인코더에서 행해진다.
단계 112에서, 그 결과 가장 적절한 대답을 생성하고, 대화한 로그 기록을 이용하여 새로운 데이터를 생성해 나[0030]
간다. 이는 본 발명의 시스템의 디코더에서 행해진다.
도 2는 본 발명에 따른 데이터 수집 및 추론 모델 구축에 대한 개념도이다.[0031]
전술한 바와 같이, 본 발명은 알고리즘이 적용된 플랫폼(PC, 로봇, 스마트폰 등)과 사람이 직접 대화를 하여 데[0032]
모할 수 있다. 예를 들어, 알고리즘이 컴퓨터에서 실행되고 있다면 컴퓨터와 직접 키보드를 통해 대화할 수
있고, 로봇 플랫폼에서 실행되는 경우에는 음성인식 기술, 스피치 투 텍스트, 텍스트 투 스피치, 소켓 통신 기
술과 함께 활용하여 대화 시스템을 구축할 수 있다.
이 과정에서, 사람과 사람 사이의 대화(도 2에서 Person A(201)와 Person B(202) 사이의 화살표로 표시됨), 사[0033]
람(201)과 인공지능 서비스(203) 사이의 대화가 여러번 축적되는 것을 기대하며, 이러한 데이터가 축적되어 빅
데이터(204)를 구성하게 된다. 특히, 후술하겠으나, 한국어는 표현에 있어서 영어 등과 차이를 갖는 부분이
있으므로, 이러한 점에도 초점을 두어 이 빅데이터(즉, 한국어 빅데이터)를 분석한다.
이렇게 수집된 한국어 빅데이터(204)를 이용하여 딥 러닝 확률 추론 모델(205)이 구축된다. 이렇게 구축된 모[0034]
델(205)은 고정되어 완성된 것이 아니라, 전술한 사람들(201, 202) 사이의 대화 및 사람(201)과 인공 지능 서비
스(203) 사이에 대화에 대한 데이터가 추가로 축적되면, 다시 이로부터 피드백을 받아서 재차 반복적으로 학습
이 이루어지면서 보완된다.
대화 데이터를 수집하는 것의 일예에 대해 설명한다. [0035]
- 시나리오 - [0036]
일상대화를 위한 첫 단계로, 아이 돌보기의 아침 상황으로 시나리오를 제한해 보았다. 아이 돌보기의 아침 상[0037]
황은 일상적인 대화보다는 보다 적고 간단한 대화들이 오가지만 엄마의 역할을 대신하는 모델과 계속해서 상호
작용을 한다는 점에서는 적절한 시나리오라 생각할 수 있다. 본 발명자들은 아이 돌보기의 아침 시나리오를
크게 (1) 기상, (2) 아침 운동, (3) 아침 식사, (4) 씻기, (5) 옷 입기, (6) 등교의 6가지로 나누었다. 그리
등록특허 10-1937778
- 7 -
고, 보다 자연스러운 대화를 위해 실제 가정환경을 모사한 실험실을 꾸미고 음성 인식과 텍스트 투 스피치
(text-to-speech; TTS) 기술을 이용하여 로봇과 사람이 상호작용할 수 있는 환경을 만들었다.
도 3a는 가정환경을 모사한 실험실의 모습이다. [0038]
도 3b는 본 발명의 시스템이 탑재된 로봇과 사람이 상호작용(대화)하는 모습이다.[0039]
- 데이터 수집 - [0040]
시나리오의 데이터를 수집하기 위해서 간단한 대화를 할 수 있는 모델을 만들 필요가 있었다. 이를 위해서 30[0041]
명 이상의 사람으로부터 10,000여개의 대화 쌍을 수집하였다. 최대한 중복되는 대화 쌍을 줄이고, 나올 수 있
는 대화를 다양하게하기 위해 각 사람들은 6개의 세부 시나리오 중 하나에 할당되어 300쌍, 전체 시나리오에서
300쌍을 만들도록 했다. 각 대화 쌍은 아이가 먼저 질문이나 이야기를 꺼내고 모델 및 로봇이 그에 대해 대답
하도록 구성되어 있다. 이 데이터를 가지고 기초 모델을 만든 후, 랩 투어, 학회 등에서 시연을 하며 기록된
로그 데이터를 통해 계속해서 새로운 데이터를 수집하였다.
- 실험 - [0042]
대화 모델에서는 모델의 출력 결과가 적절한지 혹은 부적절한지 판단할 수 있는 명확한 근거가 존재하기[0043]
어렵다. 따라서, 실제 실험 결과를 제시하고 그에 대한 해석을 하도록 한다.
- 아이 돌봄 시나리오 - [0044]
먼저 가장 기본이 되는 시나리오를 다음과 같이 가정하여 데이터를 모은 후, 다양한 실험을 시도했다. [0045]
아래 대화에서 BOT은 본 발명에 따른 인공지능 에이전트를 나타내고, CHILD는 사람(아이)을 나타낸다.[0046]
BOT: 아침이야 이제 일어나렴[0047]
CHILD: 안녕히 주무셨어요[0048]
BOT: 그래 잘 잤니[0049]
CHILD: 더워서 새벽에 깼어요[0050]
BOT: 저런 제대로 잠을 못 잤겠구나 좀 더 잘래[0051]
CHILD: 아니에요 일어날께요[0052]
BOT: 거실로 가서 아침 체조 같이 따라해볼까[0053]
BOT: 이제 씻고 밥 먹자[0054]
CHILD: 금방 씻고 갈께요[0055]
BOT: 응 엄마는 식사 준비하고 있을게[0056]
CHILD: 네네[0057]
BOT: 어서 씻고 와서 아침 먹자[0058]
CHILD: 와 소세지 반찬이다[0059]
BOT: 응 계란도 있으니까 맛있게 먹으렴[0060]
CHILD: 맛있겠다[0061]
BOT: 그럼 맛있게 먹어라[0062]
CHILD: 콩은 맛이 없어요[0063]
BOT: 콩도 먹어야 씩씩하게 자랄 수 있는걸[0064]
CHILD: 싫어요[0065]
BOT: 다 너를 위해서 그러는 거야[0066]
CHILD: 잘 먹었습니다[0067]
등록특허 10-1937778
- 8 -
BOT: 이제 옷 갈아입고 학교 갈 준비하자[0068]
CHILD: 무슨 옷 입을까요[0069]
BOT: 날이 더우니까 반바지를 입는게 어떨까[0070]
CHILD: 반바지에 파란색 티셔츠 입고 싶어요[0071]
BOT: 그래 준비물은 다 챙겼니[0072]
CHILD: 공 어디있어요[0073]
BOT: 어제 산 공 말하는거지 같이 한 번 찾아보자[0074]
CHILD: 찾았어요[0075]
BOT: 자 이제 준비 다 했으니 학교에 가야지[0076]
CHILD: 네 다녀오겠습니다[0077]
BOT: 그래 길 건널때 차 조심하고[0078]
CHILD: 네[0079]
- 시나리오 내 가능 대화 -[0080]
두 번째 실험으로는 같은 아침 아이 돌보기 시나리오에서 발생할 수 있는 스크립트 외의 대화를 실험해보았다.[0081]
아래 대화에서 * 표시는 적절한 대화, ** 표시는 애매하지만 나쁘지는 않은 대화, *** 표시는 부적절한 대화를[0082]
의미한다.
* CHILD: 일어나[0083]
* BOT: 지금 몇신데요[0084]
*** CHILD: 학교 가야지[0085]
*** BOT: 엄마 말 잘 들어줘서 진짜 고마워[0086]
*** CHILD: 운동하자[0087]
*** BOT: 어떤 빨리 씻고 나와[0088]
** CHILD: 오늘 운동 안할래[0089]
** BOT: 아 오늘 네 알겠습니다[0090]
* CHILD: 배고파요[0091]
* BOT: 점심 안먹었니[0092]
* CHILD: 밥 주세요[0093]
* BOT: 떠먹으면 안되니 엄마가 피곤하단다[0094]
** CHILD: 밥 언제 먹어요[0095]
** BOT: 엄마는 밥을 해줄게[0096]
*** CHILD: 점심 메뉴 뭐에요[0097]
*** BOT: 음 그렇게 맛있어[0098]
* CHILD: 오늘 점심 뭐야[0099]
* BOT: 돈까스[0100]
* CHILD: 다 씻었어요[0101]
등록특허 10-1937778
- 9 -
* BOT: 깨끗하게 씻었니[0102]
*** CHILD: 안 씻을래[0103]
*** BOT: 그래 잘 씻고 오렴[0104]
** CHILD: 씻기 귀찮아[0105]
** BOT: 왜 그러니[0106]
* CHILD: 코트 입을래[0107]
* BOT: 겨울 옷장에 있을 거야[0108]
* CHILD: 제 안경 어딨어요[0109]
* BOT: 네 방에 없니[0110]
* CHILD: 갔다올게요[0111]
* BOT: 다녀와[0112]
* CHILD: 다녀올게요[0113]
* BOT: 잘 다녀오거라 차 조심하고[0114]
실험 결과, 본 발명의 시스템이, 같은 맥락의 다른 표현을 어느 정도 이해할 수 있다는 것을 확인할 수 있었다.[0115]
위 결과에서, 이해할 수 있는 대화는 아침 아이 돌보기 시나리오뿐이라는 점, 그리고, 도메인을 제한하였지만
여전히 방대한 대화의 영역에 비해 적은 학습 데이터로 인해 활용 가능한 어휘의 양이 부족하다는 점을 알 수
있었다. 그러나, 기계학습(machine-learning) 분야의 특수성을 고려하면, 항상 위와 같은 결과가 나온다고는
볼 수 없다. 그 동안 축적된 데이터의 양과 질에 따라서 입력에 따른 출력이 달라질 수 있기 때문이다. 데
이터의 축적량이 많아질수록 상기 대화에서 ** 표시(애매하지만 나쁘지는 않은 대화), *** 표시(부적절한 대
화)된 부분은 * 표시와 같은 적절한 대화로 전환되어 갈 것이며, 본 실시예에서 든 10000쌍 또는 300쌍보다는
더 많은 데이터의 축적이 필요하다고 해석할 수도 있을 것이다.
또한, 기존 규칙 기반 대화 모델에서는 불가능했던 유연한 대화가 가능하다는 것을 확인할 수 있었다.[0116]
도 4는 본 발명에 따른 시스템의 구조의 개요를 나타낸다.[0117]
본 발명은 seq2seq 모델(시퀀스-투-시퀀스 프레임워크, 인코더-디코더 모델)에 일부 기반한다. seq2seq 모델[0118]
은 두 개의 RNN(순환 신경망; Recurrent Neural Network)으로 구성되어 있는데, 첫 번째 RNN은 한 문장을 단어
단위로 쪼개어 하나의 벡터로 인코딩하는 작업을 한다. 두 번째 RNN은 인코딩된 벡터를 하나의 단어씩 디코딩
하여 최종적으로 하나의 문장을 만든다. 감독 학습 방법으로, 입력 문장을 넣었을 때 정해진 출력 문장이 나
오도록 학습을 한다.
도 4를 참조하여 위 과정을 다시 설명한다.[0119]
일예로서, 본 발명은 가장 먼저 빈도수 상위 n개의 단어들을 룩업(lookup) 테이블에 등록한다. 이때 임베딩[0120]
사이즈는 RNN의 히든 노드의 수와 동일하다. 인코더, 디코더 모두 Long-Short Term Memory(LSTM)를 사용했는
데, 인코딩 LSTM에서는 한 대화에 해당하는 문장을 각 단어별로 쪼개어 입력으로 넣는다. 한 문장(모든 단
어)을 입력으로 넣었을 때 최종적으로는 한 문장을 모두 거친 히든 상태 벡터가 나오게 되는데 이를 디코더의
입력으로 넘긴다.
도 4에서는 인코딩 LSTM에 "엄마, 정말 사랑해요"라는 문장이 입력되는 예가 나타난다. 이 문장은 단어별로[0121]
나뉘어 [엄마], [정말], [사랑해요]가 인코더에 입력된다. 인코더는 이 문장에 대한 히든 상태 벡터를 출력한
다.
디코더는 히든 상태 벡터를 받아 단어를 하나씩 출력한다. 도 4의 예에서는 [잘], [모르겠는데]라는 단어가[0122]
출력되는 것으로 되어 있다. 각 출력들의 확률은 softmax 활성 함수를 이용한 전체 연결층(fully-connected
layer)을 통해 계산된다. 이 확률을 최대화하는 방향으로 워드 임베딩을 업데이트하며 학습한다.
도 5는 영어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.[0123]
등록특허 10-1937778
- 10 -
도 5에서, 인코딩 측의 딥 러닝 알고리즘에 "Hello, how is the weather today?"라는 문장이 입력된다. 이[0124]
경우, 이 영어 문장은 띄어쓰기 단위로 구분되어 처리된다.
즉, 인코딩 측의 딥 러닝 알고리즘에서 "Hello", "how", "is", "the", "weather", "today?"로 구분되어 처리된[0125]
다.
그리고, 디코딩 측의 딥 러닝 알고리즘에서는 "Yeah,", "Great!"라는 띄어쓰기 단어가 조합되어 "Yeah, Grea[0126]
t!"라는 문장이 출력으로 나오게 된다.
도 6은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.[0127]
도 6에서, 인코딩 측의 딥 러닝 알고리즘에 "안녕, 오늘 날씨 참 좋지?"라는 문장이 입력된다. 이 예에서는[0128]
조사 또는 기타 활용형 어미 등이 사용되지 않은 관계로, 도 5에서 예로 든 영어 문장과 마찬가지로 띄어쓰기
단위로 구분되어 처리하든 형태소 단위로 처리하든 동일한 결과를 낳는다.
즉, 인코딩 측의 딥 러닝 알고리즘에서 "안녕,", "오늘", "날씨", "참", "좋지?"로 구분되어 처리된다.[0129]
그리고, 디코딩 측의 딥 러닝 알고리즘에서는 "응,", "좋네!"라는 띄어쓰기 단어가 조합되어 "응, 좋네!"라는[0130]
문장이 출력으로 나오게 된다.
도 5, 도 6만을 보면, 영어와 한국어의 차이는 대동소이해 보이지만, 이는 도 6에서 든 한국어 문장에 조사 또[0131]
는 기타 활용형 어미가 사용되지 않았기 때문이며, 이러한 문장은 한국어에서 일반적인 것이라고 보기는 힘들
것이다.
도 7은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.[0132]
도 7에서, 인코딩 측의 딥 러닝 알고리즘에 "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"라는 문장이[0133]
입력된다. 이 예에서는 조사 또는 기타 활용형 어미 등이 사용되어 있는, 도 5에서 예로 든 영어 문장 또는
도 6에서 예로 든 한국어 문장과는 다소 상이하다.
한국어에 능통한 사람이 보기에는 도 6에서 예로 든 "안녕, 오늘 날씨 참 좋지?"와 도 7에서 예로 든 "안녕하세[0134]
요 오늘은 날씨가 참 좋은 것 같죠?"라는 문장이 큰 차이가 없는 것으로 느낄 수 있으나, 인공지능의 입장에서
는 이 둘은 매우 다른 것으로 받아들여질 것이다. 즉, 한국어에는 비슷한 의미를 가지고 있으나 다양한 변형
표현이 존재한다. 도 6의 예시 문장과 도 7의 예시 문장은, 유사하지만 다른 단어들의 조합으로 행한 질문이
기 때문에, 컴퓨터(인공지능)에게는 도 6의 예시와 도 7의 예시가 같은 질문인지 이해하기 힘들 수 있다. 띄
어쓰기를 기준으로 했을 경우에, '오늘'과 '오늘은'은 컴퓨터가 이해하기에는 서로 다른 단어이다.
도 8은 한국어를 기준으로 인코딩 및 디코딩을 행하는 일예를 나타낸다.[0135]
도 8에서는, 띄어쓰기 기준으로 딥 러닝 알고리즘(인코딩측)에 입력하는 것이 아니라 형태소 단위로 분리를 한[0136]
후에 입력을 행한다.
즉, "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"가 도 7에서는 "안녕하세요", "오늘은", "날씨가", "참", "좋[0137]
은", "것", "같죠?"로 분리되어 딥 러닝 알고리즘에 입력된 것과는 달리, 도 8에서는 이를 "안녕", "하", "시",
"어요", "오늘", "은", "날씨", "가", "참", "좋", "은", "것", "같", "죠"라고 형태소 단위로 분리하여 딥 러
닝 알고리즘(인코딩측)에 입력한다.
이와 같이, 형태소를 기준으로 알고리즘에 입력하면 "안녕" + "오늘" + "날씨" + "참" + "좋"으로 나타나는 기[0138]
본형들을 추출할 수 있다. 따라서 형태소 기준으로 학습을 할 경우, 띄어쓰기 기반 단어별로 학습했을때에 비
해 훨씬 더 정밀한 표상(Representation) 학습이 가능하다. 예컨대, 도 8에서 /NNG는 명사를 나타내고, /EC는
어미를 나타내고, /JKS나 /JX는 조사를 나타내는 것일 수 있다.
만일 의도한 대로 학습이 잘 되었을 경우, 도 8에서 색칠되어 있지 않은 형태소들(예컨대, "하", "시", "어[0139]
요")은 문장의 의미에 대해서는 별 작용을 하지 않는다는 것을 알고, 인코딩을 하고 난 결과에 큰 영향을 끼치
지 않도록 표상(Representation)을 학습한다. 그리고 다양한 변형에 대처 가능하다. 또한, 위와 같은 방법
을 이용하여 상대적으로 의미가 없는 형태소들을 직접 필터링할 수도 있다. 다만, 의미가 없다는 것은, 실질
적인 내용을 좌우하는 것이 아니라 형식적인 사항(말투 등)을 결정한다는 것이며, 이 또한 경우에 따라서는 대
화에 유용한 정보가 되므로 쓸모없이 버려진다는 것은 아니다.
도 9는 본 발명에 따른 시스템의 처리의 일예를 나타낸다.[0140]
등록특허 10-1937778
- 11 -
도 4에 있어서 인코더에의 입력이 "아침이야 이제 일어나렴"이라고 가정하자. 이 문장은 도 8과 관련하여 설[0141]
명한 바에 의하면, 예컨대 "아침", "이야", "이제", "일어나", "렴"으로 형태소 분석될 수 있다. 이들 각각은
명사, 어미, 부사, 동사, 어미로 분류될 수 있고, 의미를 갖는 형태소(명사, 부사, 동사 등)와 의미를 갖지 않
는 형태소(어미 등)를 구분해 낼 수 있다. 이 문장에서 의미를 갖는 부분은 "아침", "이제", "일어나"이다.
의미를 갖지 않는 부분인 "이야", "렴"은 인코더에 입력되지 않을 수도 있다. 다만, "이야", "렴"은 그냥 버
려지는 것은 아니고, 필요하다면, 디코더에서 나온 대답(후술함)의 말투를 정하는 데에 활용될 수도 있다.
도 4의 인코더에 "아침", "이제", "일어나"가 입력된다고 가정하자. "아침"이 입력되면 시스템은 X1 상태가[0142]
된다. 그에 이어 "이제"가 입력되면 시스템은 X2 상태가 된다. 정확하게는 "아침"에 이어서 "이제"가 입력
된 것(즉, "아침" 및 "이제"가 순차적으로 입력된 것)에 따른 상태가 X2이다. 그에 이어 "일어나"가 입력되면
(즉, 정확하게는 "아침", "이제", "일어나"가 순차적으로 입력되면) 시스템은 X3 상태가 된다. "일어나" 뒤에
는 문장의 끝을 나타내는 기호(예컨대, End of Sequence; EoS)가 존재하여 말을 마쳤음을 의미한다고 가정하자.
그러면, 시스템은 상기 인코더의 입력을 처리하여, 다음 단어(즉, 답의 첫번째 단어)로서 "안녕히"가 적절하다[0143]
고 판단한다. 이는 딥 러닝 등의 학습에 의해 도출되는 결과이다. 이 상태는 X4이다. X4는 일방의 "아
침", "이제", "일어나", 및 타방의 "안녕히"(답은 미완성)까지 고려된 상태를 말한다. X4 상태에서 아직 답은
끝나지 않았고, 그 후에는 "주무셨어요"가 이어져야 한다고 판단한다. 이 또한 딥 러닝 등의 학습에 의해 도
출되는 결과이다. 이 상태가 X5이며, 답은 일단락된다. 그러면, 시스템은 디코더에서 출력으로서 "안녕히
주무셨어요"를 출력한다.
설명의 편의상, 답의 말투(어미 등)에 대해서는 별도로 언급하지 않았으나, "아침이야 이제 일어나렴"에서 필터[0144]
링되었던 "이야", "렴"을 감안하여 답의 말투를 결정하는 데에 참조하여도 좋다. 예컨대, 인코더-디코더에서
는 "아침", "이제", "일어나"가 입력으로, "안녕", "주무시"가 출력으로 나오고, 디코더의 출력에 별도로 어미
를 적절히 부가하여 "안녕히", "주무시었어요(주무셨어요)"를 출력하여도 좋다.
도 10은 입력값과 출력값의 관계를 나타내는 도면이다.[0145]
종래의 방식은 입력값과 출력값의 관계를 명시적인 외부 메모리에 저장한다. 즉, 일대일 매핑 테이블이 존재[0146]
한다. A라는 질문에는 B라는 답변을 한다는 식으로 입력값과 출력값이 일대일 매핑되어 있는 것이다. 이러
한 문제를 해결하기 위해 퍼지(fuzzy) 방식의 입력과 출력이 제안되기도 하였으나, 이 또한 입력과 출력을 일대
일로 대응시키는 것은 아니지만, 입력과 출력간에 확률적인 관계가 있다.
즉, 일대일 매핑은, 입력 데이터베이스에 A1~A100의 데이터가 있고 출력 데이터베이스에 B1~B100의 데이터가 있[0147]
다면 A1은 B1에 대응, A2는 B2에 대응, ... A100은 B100에 대응이라는 식으로 미리 정해 놓는 것이다. 퍼지
방식은 일대일 매핑과는 다소 다르게, A1이라는 입력에 대해 반드시 B1의 대답을 하는 것은 아니다. 다만, 퍼
지 방식도, A1이라는 입력에 대해서 B1이 출력될 가능성이 상당히 높고, 낮은 확률로 B1이 아닌 다른 출력이 나
오도록 세팅된 것이다.
예컨대, A1이 "안녕하세요", B1이 "안녕"이고, 이 둘이 사전에 매핑되어 있다면, 사람이 인공지능 에이전트에게[0148]
"안녕하세요"(즉, A1)라고 말을 걸면, 인공지능은 "안녕"(즉, B1)이라고 답을 하도록 되어 있는 것이 일대일 매
핑이다.
또는, 사람이 인공지능 에이전트에게 "안녕하세요"(즉, A1)라고 말을 걸면, 인공지능은 "안녕"(즉, B1)이라고[0149]
답할 확률이 90%이고, "응, 뭐하니"(즉, B2)라고 답할 확률이 10%이도록 세팅되어 있다면, 이는 일종의 퍼지 방
식이라고 볼 수도 있다.
그러나, 본 발명은 A1이라는 입력에 대해서 어떠한 출력을 할 것인지 미리 정해져 있지 않다. 딥 러닝 알고리[0150]
즘에 의해서 입력값(A set; A1~A100)을 정하고, 출력값(B set; B1~B100)을 세팅한다. 즉, 실제의 대화쌍을
보면서 어떠한 질문(입력)에 대해서는 어떻게 답(출력)하는지를 학습한다. 편의상, '질문', '답'이라고 표현
하였으나, 대화가 반드시 질문과 답의 형태는 아니므로 대화의 일부라는 의미로 이해할 수 있을 것이다.
또한, A1이라는 것이 반드시 하나의 단어를 의미하는 것은 아니고, 하나의 의미 단위(문장, 구 등)가 될 수도
있다.
본 발명에서는, A1이라는 입력(대화)에 대해서 B1이라는 출력(대화)이 미리 정해져 있는 것이 아니라, 대화쌍[0151]
중에서 A1이라는 질문에 대해 B1이라는 답이 많으면 A1 입력에 대해 B1 출력을 하도록 학습한다. 이에
의하면, A1에 대해 B1이라는 출력이 일시적으로 매핑될 수는 있으나, 이는 데이터의 축적에 따라서 학습이 계속
등록특허 10-1937778
- 12 -
이루어지면서 얼마든지 바뀔 수 있다. 즉, 특정 어휘가 유행에 민감한 경우에는 특정 시기에는 매핑값이 달라
질 수 있다. 일예로, 최근에 입력된 대화쌍에 더 가중치를 두어 입력과 출력의 매핑을 학습하도록 하면, 조금
더 유행에 민감한 대화가 이루어질 수 있다. 예컨대, 코미디 프로그램이나 예능 프로그램에서 특정 어휘가 유
행어로써 많이 쓰이는 경우라면, 예전에는 A1이란 질문에 대해 B1이라는 답이 많았던 것이 특정 시기에는 A1이
란 질문에 대해 B10이라는 답이 많을 수 있을 것이다. 또는, 반드시 유행어를 감안한 것이 아니더라도, 시간
의 흐름에 따라 또는 아이가 커감에 따라 실생활에서 자주 사용하는 일상 어휘에 다소 변화가 있을 수도 있음을
감안할 수도 있을 것이다.
이때, 만약 알고리즘을, 대화쌍의 갯수를 기준으로 매핑하도록 학습시키면, 예전에 A1에 대해 B1이라는 답을 한[0152]
것이 900개이고, A1에 대해 B10라는 답을 한 것이 100개라면, A1→B1으로 매핑될 가능성이 높을 것이다. 그렇
지 않고, 알고리즘을, 대화쌍의 갯수 뿐만 아니라, 최근의 대화인지의 여부(대화 시기)도 기준으로 삼도록 매핑
시키면, 비록 갯수로 생각하면 A1→B1의 매핑이 여전히 유력하지만, A1에 대해 B10이라는 답을 한 것이 대체로
상기 900개의 대화쌍보다 더 최근의 일이라면 갯수가 다소 적더라도 A1→B10의 매핑에 더 중점을 두어, 적어도
현재로서는 A1이라는 질문에 대해 B10이라는 답을 하도록 매핑할 수 있을 것이다. 이러한 매핑 또는 절대적인
것이 아니며, 학습 데이터가 추가됨에 따라 얼마든지 바뀔 수 있을 것이다.
다만, 본 발명에서 학습에 의한 매핑을 행하지만, 규칙 기반의 매핑(가장 극단적인 예로서는, 일대일 매핑)을[0153]
완전히 배제하는 것은 아니다. 딥 러닝에 의한 학습만으로 매핑을 행하는 경우, 틀리면 치명적일 수 있는 중
요한 질문에 대해서 답하는 경우에 위험성이 있을 수 있으므로, 규칙 기반의 매핑을 다소 가미하여 어느 한도
(boundary) 내에서 학습을 하도록 설정할 수 있을 것이다.
한편, 본 발명에 대하여, 프리트레인드 워드 임베딩(pre-trained word embedding)을 적용할 수도 있다. [0154]
이하, 워드 임베딩에 대해 설명한다.[0155]
이는 텍스트를 처리하는 인공 신경망이며 두 개의 층으로 구성되어 있다. 말뭉치(corpus)를 입력으로 받아서[0156]
말뭉치의 단어를 벡터로 표현하는 방법을 찾는데, 이 벡터의 값은 말뭉치에서 단어가 가지는 의미나 역할을 잘
표현해주는 값이어야 한다. 이렇게 단어의 의미와 맥락을 고려하여 단어를 벡터로 표현한 것을 워드 임베딩
(word embeddings)이라고 하며, 심층 신경망(deep neural network)의 전처리 단계로 쓰일 수 있다. 이러한
전처리는 도 1의 단계 102과 관련하여 언급한 전처리에 해당할 수 있다.
정리하면, 각 단어마다 단어에 해당하는 벡터를 구하고, 이 벡터를 다시 심층 신경망(deep neural network)에[0157]
집어넣어서 추가적인 일을 할 수도 있고 단어의 유사성 등 관계를 파악할 수 있다.
텍스트로 된 문장을 이해하기 위하여, 예컨대, 단어간 유사성을 구할 수 있다. 원래 워드 임베딩의 목적이,[0158]
유사한 단어일수록 가까운 거리에 위치하도록 각 단어에 해당하는 벡터 값을 찾는 것이다. 이 학습은 사람이
관여하지 않으며 말뭉치 데이터만을 사용한다.
데이터의 양이 충분하면 워드 임베딩은 단어의 의미를 꽤 정확하게 파악한다. 그리고 이를 이용하면 단어의[0159]
뜻 뿐만 아니라 여러 단어의 관계를 알아낸다. 예를 들어 단어의 관계를 이용해 ‘남자’:’소년’ = ‘여자
’:x 같은 관계식을 주면 x=’소녀’라는 답을 구할 수 있다. 단어 뿐만 아니라 더 큰 단위의 텍스트인 문장
이나 문서를 분류하는 데에도 워드 임베딩이 사용된다. 예를 들어, 문서를 군집화한 뒤에 결과를 이용하면 검
색 엔진에서 문서의 분야별 검색(과학, 법률, 경제 등)이나 문장의 감정 분석, 추천 시스템을 만들 수 있다.
또한, 충분한 데이터가 주어지면, 당해 데이터의 학습을 통해, "스웨덴"이라는 단어에 대해서 "노르웨이", "덴[0160]
마크", "핀란드", "스위스", "벨기에", "네덜란드", "아이슬란드", "에스토니아", "슬로베니아" 등의 북유럽,
스칸디나비아 반도 국가들이 유사도가 높은 것으로 미리 정해져 있을 수 있다.
딥 러닝에 사용되는 신경망과의 연결을 통해, 입력한 말뭉치의 문장에 있는 단어와 인접 단어의 관계를 이용해[0161]
단어의 의미를 학습한다. 주변 단어가 만드는 맥락을 이용해 타겟 단어를 예측할 수도 있고, 한 단어를 기준
으로 주변에 올 수 있는 단어를 예측할 수도 있다.
또한, 본 발명에 대하여, 멀티 레졸루션(multi-resolution) 문장 분석을 행할 수도 있다. [0162]
단어 표상(word representation)을 학습할 때, 영어의 경우는 띄어쓰기, 한글의 경우는 형태소 단위로 한 대화[0163]
에 대한 표상을 학습하는 것을 상정할 수도 있지만, 한 글자(character) 단위로, 혹은 자음+모음+(자음)의 단위
로 학습할 수도 있다. 예를 들어, "안녕하세요 오늘은 날씨가 참 좋은 것 같죠?"를 학습할 때, 안+녕+하+세+
등록특허 10-1937778
- 13 -
요+오+늘+은+...+같+죠+? 라고 분해하여 학습을 할 수도 있고, ㅇ+ㅏ+ㄴ+ㄴ+ㅕ+ㅇ+ㅎ+ㅏ+ㅅ+ㅔ+ㅇ+ㅛ+ㅇ+ㅗ+ㄴ+
ㅡ+ㄹ+ㅇ+ㅡ+ㄴ+...+ㄱ+ㅏ+ㅌ+ㅈ+ㅛ+? 라고 분해하여 학습을 할 수도 있다. 즉, 단어/음절/자음모음으로 학습
하는 방법 중 어느 것이 가장 좋은 표상(representation)을 학습할지는, 학습을 해보기 전에 명확히 알기는 힘
들지만, 위에 여러 다양한 청킹 방식(즉, multi-resolution)을 시도하여 그 중 가장 적절한 방법을 고를 수 있
다.
또한, 본 발명에 대하여, 카메라 이미지 정보를 활용한 시각 대화를 제시할 수도 있다. 기본적으로는 대화쌍[0164]
을 다수 제시하고, 대화의 각 문장을 형태소 단위로 분해하고 그로부터 적절한 벡터를 만들고 그 의미를 파악하
는 것이지만, 그에 부가하여 대화하는 사람의 얼굴 표정에 따른 정보를 추가 제공하여 대화를 행할 수도 있다.
즉, 같은 말이라 할지라도 웃으면서 농담으로 하는 경우가 있고 정색을 하고 진지하게 하는 경우가 있는데, 이
는 대화만으로는 파악하기 힘든 경우가 있다. 물론, 어조(tone, intonation)을 참고할 수도 있을 것이다.
그러나, 시각적인 정보가 추가되는 경우 그 정확성을 더욱 높일 수 있을 것이다. 이러한 시각적인 정보는 안
면 인식 기술, 표정 인식 기술에 의해 얻을 수 있고, 당해 표정에 따른 감정을 고려하여 대화를 이어나갈 수 있
도록 설정할 수 있을 것이다.
사람의 얼굴 인식에 사용되는 추출용 필터인 Gabor나 LBP(Local binary pattern)을 안드로이드에서 활용할 수[0165]
있도록 라이브러리(Library) 형태로 구현하여 적용할 수도 있다. 카메라 라이브 필터(Live Filter)를 통해 입
력된 프리뷰 이미지 데이터를 이용하여 얼굴을 검출하고, 얼굴 정렬, 얼굴에서 눈, 코의 위치 확인이 가능하도
록 한다. 라이선스에 저촉되지 않는 공개 소프트웨어 라이브러리 OpenCV 등을 이용한 얼굴 인식 방안도 개발
적용 가능하다. OpenCV에서 제공하는 C언어용 얼굴인식 코드를 안드로이드 자바용으로 포팅하거나 NDK로 변환
하여 사용하는 것도 가능할 것이다.
본 발명은 PC 상에서, 스마트 기기(스마트 패드, 스마트폰) 상에서, 또는 별도의 독립적인 기기(로봇 등) 상에[0166]
서 구현될 수 있을 것이다.
위에서는 특정의 예를 들어 설명하였으나, 본 발명은 상기 실시예에 한정되지 않으며, 당 분야의 통상의 지식을[0167]
가진 자에 의하여 많은 변형이 첨부의 특허청구범위에 기재된 본 발명의 본질적인 사상 내에서 가능함은 물론이
다. 본 발명의 기본 사상을 벗어나지 않는 한, 그 외의 다양한 변형도 본 발명의 범주에 속하는 것으로 보아야
할 것이다.
부호의 설명
201: 사람[0168]
202: 사람
203: 인공지능 서비스
204: 한국어 빅데이터
205: 딥 러닝 확률 추론 모델
등록특허 10-1937778
- 14 -
도면
도면1
도면2
등록특허 10-1937778
- 15 -
도면3a
도면3b
도면4
등록특허 10-1937778
- 16 -
도면5
도면6
도면7
도면8
등록특허 10-1937778
- 17 -
도면9
도면10
등록특허 10-1937778
- 18 -
문서서지사항요 약대 표 도청구범위발명의 설명기 술 분 야배 경 기 술발명의 내용해결하려는 과제과제의 해결 수단발명의 효과
도면의 간단한 설명발명을 실시하기 위한 구체적인 내용부호의 설명
도면도면1도면2도면3a도면3b도면4도면5도면6도면7도면8도면9도면10
문서서지사항 1요 약 1대 표 도 1청구범위 3발명의 설명 5 기 술 분 야 5 배 경 기 술 5 발명의 내용 5 해결하려는 과제 5 과제의 해결 수단 5 발명의 효과 6 도면의 간단한 설명 6 발명을 실시하기 위한 구체적인 내용 7 부호의 설명 14도면 15 도면1 15 도면2 15 도면3a 16 도면3b 16 도면4 16 도면5 17 도면6 17 도면7 17 도면8 17 도면9 18 도면10 18