KR102491931B1 - 대화 수행 시스템, 장치 및 방법 - Google Patents

대화 수행 시스템, 장치 및 방법 Download PDF

Info

Publication number
KR102491931B1
KR102491931B1 KR1020200120077A KR20200120077A KR102491931B1 KR 102491931 B1 KR102491931 B1 KR 102491931B1 KR 1020200120077 A KR1020200120077 A KR 1020200120077A KR 20200120077 A KR20200120077 A KR 20200120077A KR 102491931 B1 KR102491931 B1 KR 102491931B1
Authority
KR
South Korea
Prior art keywords
data
response
personality
learning
combination
Prior art date
Application number
KR1020200120077A
Other languages
English (en)
Other versions
KR20220037297A (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 KR1020200120077A priority Critical patent/KR102491931B1/ko
Priority to PCT/KR2021/012484 priority patent/WO2022060050A1/ko
Publication of KR20220037297A publication Critical patent/KR20220037297A/ko
Application granted granted Critical
Publication of KR102491931B1 publication Critical patent/KR102491931B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Machine Translation (AREA)

Abstract

대화 수행 시스템, 장치 및 방법에 관한 것으로, 대화 수행 장치는 개성 데이터, 대화 히스토리 및 응답 데이터를 연결하여 조합함으로써 조합 데이터를 획득하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는 임베딩 처리부 및 상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 학습 처리부를 더 포함할 수 있다.

Description

대화 수행 시스템, 장치 및 방법{DIALOGUE PERFORMING SYSTEM, APPARATUS AND METHOD THEREOF}
본 발명은 대화 수행 시스템, 장치 및 방법에 관한 것이다.
대화 시스템은 인간과 기계가 서로 대화를 할 수 있게 하는 하드웨어 또는 소프트웨어로, 최근에는 인공지능 기술의 발달에 따라 대화 시스템 역시 상당히 진일보하였다. 이러한 대화 시스템은 통상 잡담 대화 시스템(예를 들어, 챗봇 등)과 가상 비서 대화 시스템으로 구분될 수 있다. 잡담 대화 시스템은 수다를 떨 듯이 인간과 가벼운 이야기를 주고받아 인간과 대화를 수행하는 시스템인데, 기술의 발전에도 불구하고 잡담 대화 시스템은 인간의 대화만큼 자연스럽지 않고, 구체성이 부족하다는 단점이 있었다. 특히 최근 대화 시스템은 대화 관련 학습 모델을 이용하여 구현되는데, 대화 관련 학습 모델은 대부분 대량의 데이터 셋을 기반으로 학습되기 때문에, 대화 시스템이 고유의 특성이나 성격에 따른 대화를 생성하지 못하고 오직 보편적인 성격의 대화만을 생성할 수밖에 없는 어려움이 있었다. 다시 말해서, 이들 모델을 이용하는 대화 시스템은 인간과의 대화에 있어서 일반적이거나 보편적인 응답만을 생성할 수밖에 없었다. 또한, 이들 대화 시스템은 대화의 흐름에 맞춰 적절한 응답을 찾아 대화를 제대로 이어 나가는 것에도 한계를 보였다. 이러한 어려움이나 한계들은 대화 시스템의 대화 내용이 오히려 더 어색하게 보이게 하는 주된 원인이 되었다.
대한민국 등록특허 제10-1851793호 (2018.04.24. 공고) 대한민국 공개특허 제2012-0075585호 (2012.07.09. 공개) 대한민국 공개특허 제2006-0026636호 (2006.03.24. 공개) 일본국 특허제3949365호 (2002.01.25. 공개)
본 발명은 고유의 성격을 기반으로 보다 구체적이고 친밀하게 인간과 대화를 할 수 있는 대화 수행 시스템, 장치 및 방법을 제공하는 것을 해결하고자 하는 과제로 한다.
상술한 과제를 해결하기 위하여 대화 수행 시스템, 장치 및 방법이 제공된다.
대화 수행 장치는, 개성 데이터, 대화 히스토리 및 응답 데이터를 연결하여 조합함으로써 조합 데이터를 획득하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는 임베딩 처리부 및 상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 학습 처리부를 포함할 수 있다.
상기 응답 데이터는 전체 문장 내에서 누락된 단어에 대응하는 적어도 하나의 공백을 포함하고, 상기 학습 처리부는 상기 적어도 하나의 공백에 대한 단어를 학습을 통해 획득할 수 있다.
상기 임베딩 처리부는, 상기 조합 데이터 내의 각각의 데이터에 대한 출처를 나타내는 세그먼트 임베딩 데이터 및 상기 조합 내의 각각의 데이터의 위치를 나타내는 위치 데이터 중 적어도 하나를 더 생성하고, 상기 학습 처리부는 상기 세그먼트 임베딩 및 위치 데이터를 더 이용하여 학습을 수행할 수 있다.
상기 임베딩 처리부는, 상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터 각각으로부터 적어도 하나의 토큰을 획득하고, 적어도 하나의 토큰을 조합하여 상기 조합 데이터를 획득할 수 있다.
상기 임베딩 처리부는, 상기 개성 데이터, 상기 대화 히스토리 및 오응답 데이터를 연결하여 조합함으로써 오응답 조합 데이터를 획득하되, 오응답 데이터는 상기 대화 히스토리의 적어도 하나의 문장에 대해 부적절한 응답을 포함할 수 있다.
대화 수행 장치는 오응답 조합 데이터인지 여부를 판별하는 분류부를 더 포함할 수 있다.
상기 분류부는 분류 손실, 교차 엔트로피 손실 또는 상기 분류 손실과 상기 교차 엔트로피의 합을 기반으로 손실을 연산하여 오응답 조합 데이터인지 여부를 판별할 수 있다.
대화 수행 시스템은, 개성 데이터, 대화 히스토리 및 응답 데이터를 수신하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는 단말 장치 및 상기 개성 데이터, 대화 히스토리 및 응답 데이터로부터 획득된 조합 데이터, 세그먼트 데이터 및 위치 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 서버 장치를 포함할 수 있다.
상기 단말 장치 및 상기 서버 장치 중 적어도 하나는, 상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터를 기반으로 조합 데이터, 상기 조합 데이터에 대응하는 세그먼트 데이터 및 상기 조합 데이터에 대응하는 위치 데이터 중 적어도 하나를 생성할 수 있다.
대화 수행 방법은, 개성 데이터, 대화 히스토리 및 응답 데이터를 연결하여 조합함으로써 조합 데이터를 획득하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는 단계, 상기 조합 데이터 내의 각각의 데이터에 대한 출처를 나타내는 세그먼트 임베딩 데이터 및 상기 조합 내의 각각의 데이터의 위치를 나타내는 위치 데이터를 생성하는 단계 및 상기 조합 데이터, 상기 세그먼트 임베딩 데이터 및 상기 위치 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 단계를 포함할 수 있다.
상기 응답 데이터는 전체 문장 내에서 누락된 단어에 대응하는 적어도 하나의 공백을 포함하고, 상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 단계는, 상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 상기 적어도 하나의 공백에 대한 단어를 학습을 통해 획득하는 단계를 포함할 수 있다.
대화 수행 방법은, 상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터 각각으로부터 적어도 하나의 토큰을 획득하는 단계를 더 포함할 수 있다.
대화 수행 방법은, 상기 개성 데이터, 상기 대화 히스토리 및 오응답 데이터를 연결하여 조합함으로써 오응답 조합 데이터를 획득하되, 오응답 데이터는 상기 대화 히스토리의 적어도 하나의 문장에 대해 부적절한 응답을 포함하는 단계를 더 포함할 수 있다.
대화 수행 방법은, 오응답 조합 데이터인지 여부를 판별하는 단계;를 더 포함할 수 있다.
상술한 대화 수행 시스템, 장치 및 방법에 의하면, 고유의 성격에 따라 보다 구체적이면서도 친밀하게 인간과 대화를 수행할 수 있는 장치나 시스템의 구현이 가능해지는 장점을 얻을 수 있다.
상술한 대화 수행 시스템, 장치 및 방법에 의하면, 개인의 특성 및 취향을 반영하여 사용자와 대화를 할 수 있게 되어 사용자의 특성에 따른 맞춤형 대화가 가능하게 되는 장점도 있다.
상술한 대화 수행 시스템, 장치 및 방법에 의하면, 사용자가 더욱 친숙하고 친근한 느낌을 갖는 대화의 수행이 가능한 장치나 시스템을 구현할 수 있는 장점도 얻을 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 대화 수행 장치의 일 실시예에 대한 블록도이다.
도 2는 워드 임베딩의 일례를 설명하기 위한 도면이다.
도 3은 단어 토큰의 일례를 설명하기 위한 도면이다.
도 4는 학습처리부에 입력되는 데이터들의 일례에 대한 도면이다.
도 5는 학습 처리부의 동작의 일례를 설명하기 위한 도면이다.
도 6은 오응답 데이터가 입력되는 일례를 설명하기 위한 도면이다.
도 7은 대화 수행 시스템의 일 실시예에 대한 도면이다.
도 8은 대화 수행 방법의 일 실시예에 대한 흐름도이다.
이하 명세서 전체에서 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 이하에서 사용되는 '부'가 부가된 용어는, 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예에 따라 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다.
명세서 전체에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분에 따라서 물리적 연결을 의미할 수도 있고, 또는 전기적으로 연결된 것을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다.
'제1'이나 '제2' 등의 용어는 하나의 부분을 다른 부분으로부터 구별하기 위해 사용되는 것으로, 특별한 기재가 없는 이상 이들이 순차적인 표현을 의미하는 것은 아니다. 또한, 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.
이하, 도 1 내지 도 6을 참조하여 대화 수행 장치의 일 실시예에 대해 설명하도록 한다.
도 1은 대화 수행 장치의 일 실시예에 대한 블록도이다.
일 실시예에 따른 대화 수행 장치(100)는, 도 1에 도시된 바와 같이, 입력부(101), 저장부(102), 출력부(103) 및 프로세서(110)를 포함할 수 있다. 여기서, 입력부(101), 저장부(102), 출력부(103) 및 프로세서(110) 중 적어도 둘은 데이터의 전달이 가능하도록 회로선이나 케이블 등을 통해 전기적으로 연결되어 있을 수 있다. 입력부(101), 저장부(102) 및 출력부(103) 중 적어도 하나는, 필요에 따라 생략될 수도 있다.
입력부(101)는 데이터(10 내지 40)를 입력 받고, 입력 받은 데이터(10 내지 40)를 회로나 케이블 등을 통해 저장부(102) 및 프로세서(110) 중 적어도 하나로 전달할 수 있다. 입력부(101)는, 예를 들어, 키보드 장치, 마우스 장치, 태블릿, 터치 스크린, 터치 패드, 마이크로 폰, 트랙볼, 트랙패드, 외부의 장치(일례로 메모리 장치)로부터 데이터 등의 수신 및 전달이 가능한 데이터 입출력 단자 및/또는 외부의 장치와 유선 또는 무선 통신 네트워크를 통해 연결되는 통신 모듈(일례로 마더보드에 내장되거나 별도 장착이 가능한 랜카드, 근거리 통신 모듈 또는 이동통신 모듈 등) 등을 포함할 수 있다.
일 실시예에 따르면, 입력부(101)에 입력되는 데이터(10 내지 40)는, 개성 데이터(10) 및 대화 히스토리(20)를 포함할 수 있으며, 실시예에 따라 응답 데이터(30) 및 오응답 데이터(40) 중 적어도 하나를 더 포함할 수도 있다. 개성 데이터(10)는 특정한 개성을 나타낼 수 있는 정보를 포함할 수 있다. 개성 데이터(10)는, 실시예에 따라, 대화 수행 장치(100)를 사용하는 자(이하 사용자)의 개성에 대한 데이터일 수도 있고, 및/또는 사용자나 설계자 등이 미리 설정한 사용자 이외의 자(인간, 동물 또는 캐릭터 등과 같은 가상적 인격체 등)의 개성에 대한 데이터일 수도 있다. 여기서 사용자의 개성은, 예를 들어, 사용자 개인의 성격, 취향, 기호, 습관, 상태, 체격, 질병, 경험, 가족이나 친우 관계, 직업, 지위, 경력 및/또는 최근 행동 등과 같이 사용자를 나타낼 수 있는 것들을 의미한다. 사용자 이외의 자의 개성도 이와 마찬가지로 사용자 이외의 자를 나타낼 수 있는 다양한 것들을 의미할 수 있다. 개성 데이터(10)는, 일 실시예에 있어서, 사용자 또는 미리 설정된 개성을 반영하는 적어도 하나의 단어나 문장 등을 포함할 수 있되, 예를 들어 4~5개의 다수의 문장을 포함할 수도 있다. 다수의 문장은 대화문의 일부일 수도 있고 아닐 수도 있다. 대화 히스토리(20)는 적어도 둘 간의 대화에 대한 데이터를 의미하며, 적어도 둘 사이에 수행된 다수의 문장 또는 단어를 포함할 수 있다. 여기서, 대화를 수행한 적어도 둘은, 예를 들어, 사용자 및 대화 수행 장치(100)일 수 있으며, 이 경우, 대화 히스토리(20)는 기존에 사용자와 대화 수행 장치(100) 간에 수행된 대화문(들)을 포함할 수 있다. 실시예에 따라서, 대화 히스토리(20)는 사용자 및 제3자 간의 대화문(들)을 포함하는 것도 가능하다. 응답 데이터(30)는 대화 내에 언급된 문장(평서문, 감탄문, 명령문 또는 의문문 등)에 대응하는 응답을 포함하는 데이터로, 예를 들어, 대화 히스토리(20)의 적어도 하나의 문장(일례로 마지막 문장)에 대한 응답 내용을 포함하는 데이터일 수 있다. 응답 데이터(30)는 적어도 하나의 문장을 포함할 수 있되, 적어도 하나의 문장은 하나 또는 둘 이상의 공백을 포함할 수 있다. 하나 또는 둘 이상의 공백은 문장 내의 단어가 누락된 부분에 대응한다. 구체적으로 예를 들어, 대화 히스토리(20)의 마지막 문장이 [Hello, How are you?]인 경우, 이에 대한 응답 데이터(30)는 [I am fine, what about (공백)]과 같이 주어진 것일 수 있다. 실시예에 따라서, 응답 데이터(30)의 적어도 하나의 문장은 오직 공백으로만 이루어질 수도 있고, 일부는 단어나 기호로 이루어지고 다른 일부는 공백으로 이루어 질 수도 있으며, 또는 공백을 전혀 포함하지 않고 단어나 기호만을 포함할 수도 있다. 다시 말해서, 응답 데이터(30)는 모든 단어 부분이 공백으로 이루어진 문장을 포함할 수도 있고, 일부분에 공백이 존재하는 문장을 포함할 수도 있으며, 또는 공백 없는 온전한 문장을 포함할 수도 있다. 후자의 경우, 응답 데이터(30)는 학습 모델의 훈련을 위해 이용되는 것일 수도 있다. 오응답 데이터(40)는 대화 히스토리(20)의 적어도 하나의 문장(예를 들어, 마지막 문장)에 대해 적절하지 않은 응답(일례로 응답으로 주어진 다수의 선택지 중에서 오답인 선택지(distractor) 등)을 포함할 수 있다. 오응답 데이터(40)는, 적어도 하나의 단어나 문장으로 형성된 것일 수 있다. 구체적으로 예를 들어, 대화 히스토리(20)의 마지막 문장이 [Hello, How are you?]으로 주어진 경우라면, 오응답 데이터(30)는 [Oh, I am sorry to hear that] 등과 같이 문맥에 맞지 않는 단어나 문장을 포함할 수 있다.
저장부(102)는, 대화 수행 장치(100)의 동작에 필요한 적어도 하나의 데이터(10 내지 40 등)를 일시적으로 또는 비일시적으로 저장할 수 있다. 예를 들어, 저장부(102)는 개성 데이터(10), 대화 히스토리(20), 응답 데이터(30) 및 오응답 데이터(40) 중 적어도 하나를 저장하고, 저장한 데이터(10 내지 40 중 적어도 하나)를 프로세서(110)의 호출에 따라 프로세서(110)로 전달할 수도 있다. 저장부(102)는 프로세서(110)로부터 처리 결과(일례로 프로세서(110)가 결정한 응답이나 프로세서(110)에 의해 훈련된 학습 모델과 관련된 파라미터 등)를 수신하고 수신한 처리 결과를 저장할 수도 있다. 또한, 저장부(102)는 대화 수행 장치(100)의 동작을 위한 하나 이상의 프로그램(앱, 애플리케이션 또는 소프트웨어 등으로 지칭 가능함) 등을 저장할 수도 있으며, 보다 구체적으로 예를 들어, 프로세서(110)에 의해 이용되거나 또는 훈련되는 학습 모델을 저장할 수도 있다. 여기서, 프로그램은, 설계자에 의해 직접 작성 또는 갱신되어 저장부(102)에 저장된 것일 수도 있고, 데이터 입출력 단자 등을 통해 전달된 후 저장부(102)에 저장된 것일 수도 있으며 및/또는 유선 또는 무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망 등을 통하여 획득된 것일 수도 있다. 저장부(102)는 주기억장치 및 보조기억장치 중 적어도 하나를 포함할 수 있으며, 이들 주기억장치나 보조기억장치는 반도체 소자, 자기디스크 또는 콤팩트 디스크 등을 이용하여 구현된 것일 수 있다.
출력부(103)는 입력부(101)에 입력되거나 저장부(102)에 저장된 데이터 또는 프로세서(110)의 처리 결과에 따라 획득된 데이터를 시각적 또는 청각적으로 외부로 출력할 수 있다. 예를 들어, 프로세서(110)는 주어진 문장(일례로 대화 히스토리(20) 내의 마지막 대화)에 대응하는 응답(단어나 문장 등을 포함할 수 있다) 등을 결정하고 이를 출력부(103)로 전달할 수 있으며, 출력부(103)는 프로세서(110)가 결정한 응답 등을 수신하고, 결정한 응답 등을 기호나 문자를 이용하여 화면을 통해 출력하거나 및/또는 결정한 응답 등에 대응하는 음성을 스피커 장치 등을 통해 출력할 수 있다. 필요에 따라 출력부(103)는 프로세서(110)의 처리 과정 도중에 획득된 데이터(예를 들어, 워드 임베딩 결과(도 3의 122) 등)를 외부로 출력하는 것도 가능하다. 출력부(120)는, 예를 들어, 디스플레이 패널, 스피커 장치, 데이터 입출력 단자 및/또는 통신 모듈 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
프로세서(110)는, 입력부(101) 및 저장부(102) 중 적어도 하나로부터 소정의 데이터(10 내지 40 등)를 수신하고, 수신한 데이터(10 내지 40)를 기반으로 연산, 판단 및/또는 제어 처리 등의 동작을 수행하도록 마련된다. 실시예에 따라, 프로세서(110)는 저장부(102)에 저장된 프로그램을 구동시켜, 이들 데이터(10 내지 40 등)에 대한 적어도 하나의 처리를 수행할 수도 있다. 프로세서(110)는, 예를 들어, 중앙 처리 장치(CPU, Central Processing Unit), 애플리케이션 프로세서(AP, Application Processor), 마이크로 컨트롤러 유닛(MCU, Micro Controller Unit), 전자 제어 유닛(ECU, Electronic Controlling Unit) 및/또는 각종 연산 처리 및 제어 신호의 생성이 가능한 다른 전자 장치 등을 이용해 구현될 수 있다.
도 1에 도시된 바를 참조하면, 프로세서(110)는 일 실시예에 있어서, 임베딩 처리부(120) 및 학습 처리부(130)를 포함할 수 있으며, 임베딩 처리부(120)는 워드 임베딩 처리부(121), 세그먼트 임베딩 처리부(124) 및 위치 임베딩 처리부(127) 중 적어도 하나를 포함할 수 있다. 또한, 실시예에 따라서, 프로세서(110)는 분류부(140)를 더 포함할 수도 있다. 임베딩 처리부(120), 학습 처리부(130) 및 분류부(140)는 물리적으로 구분되는 것일 수도 있고 또는 논리적으로 구분되는 것일 수도 있다. 물리적으로 구분되는 경우, 임베딩 처리부(120), 학습 처리부(130) 및 분류부(140) 중 적어도 둘은 각각 별도의 반도체 칩 등을 이용하여 구현될 수도 있다. 또한, 워드 임베딩 처리부(121), 세그먼트 임베딩 처리부(124) 및 위치 임베딩 처리부(127) 역시, 실시예에 따라서, 물리적으로 구분되는 것일 수도 있고 또는 논리적으로 구분되는 것일 수도 있다.
도 2는 워드 임베딩의 일례를 설명하기 위한 도면이고, 도 3은 단어 토큰의 일례를 설명하기 위한 도면이다.
임베딩 처리부(120)는 입력부(101) 및 저장부(102) 중 적어도 하나가 전달한 데이터(10 내지 40)를 변환하여 학습 처리를 위한 데이터를 생성 및 획득한 후, 이를 학습처리부(130)로 전달할 수 있다.
도 2에 도시된 바에 따르면, 워드 임베딩 처리부(121)는, 일 실시예에 있어서, 입력부(101) 및 저장부(102) 중 적어도 하나로부터 개성 데이터(10), 대화 히스토리(20) 및 응답 데이터(30)를 수신하고, 수신한 개성 데이터(10), 대화 히스토리(20) 및 응답 데이터(30)를 조합하여 적어도 하나의 데이터(122, 이하 조합 데이터)를 획득하고, 획득한 적어도 하나의 조합 데이터(122)를 학습 처리부(130)로 전달할 수 있다. 이 경우, 워드 임베딩 처리부(121)는 개성 데이터(10), 대화 히스토리(20) 및 응답 데이터(30)를 순차적으로 또는 미리 정의된 순서에 따라 이어 붙여 적어도 하나의 조합 데이터(122)를 획득할 수도 있다. 보다 구체적으로 예를 들어, 워드 임베딩 처리부(121)는 개성 데이터(10) 내의 모든 단어나 문장을 순차적으로 이어 붙이고, 그 뒤에 대화 히스토리(20) 내의 모든 단어나 문장을 순차적으로 이어 붙이고, 그 뒤에 응답 데이터(30)의 단어나 문장이나 적어도 하나의 공백(들)(39)을 이어 붙여 연쇄적으로 연결시킴으로써 개성 데이터(10), 대화 히스토리(20) 및 응답 데이터(30)가 하나로 접합된 조합 데이터(122)를 획득할 수 있다. 일 실시예에 의하면, 워드 임베딩 처리부(121)는, 조합 데이터(122)의 획득 전에, 각각의 데이터(10 내지 30)마다, 각각의 데이터(10 내지 30)에 대응하면서 단어 또는 문장이 토큰화(tokenization)된 데이터(t10, t20, t30, 이하 토큰)를 획득할 수도 있다. 도 3에 도시된 바를 참조하면, 입력된 문장(s10)은 토큰(token, t10: t11 내지 t19) 단위로 나뉘어져 토큰화 될 수 있다. 이 경우, 일부의 토큰(t11 내지 t14, t16 내지 t19)은 문장 내의 각각의 단어(일례로 [I]나 [like] 등)에 대응할 수도 있고, 다른 일부의 토큰(t15)은 구두점(일례로 마침표 등)에 대응하여 생성될 수 있다. 실시예에 따라서, 마침표나 아포스트로피 등이 부가된 약어 등은 하나의 토큰으로 처리될 수도 있다. 또한, 도 3에 도시된 바와 같이 응답 데이터(30)의 적어도 하나의 공백(39) 각각에도 대응하는 적어도 하나의 토큰(t39)이 마련될 수도 있다. 워드 임베딩 처리부(121)는 이와 같은 토큰화를 개성 데이터(10), 대화 히스토리(20) 및 응답 데이터(30) 각각의 단어나 문장에 대해 수행함으로써 토큰화된 단어나 문장들을 하나 이상 획득하고, 이어서 각각의 데이터(10, 20, 30)로부터 획득한 적어도 하나의 토큰(t10, t20, t30)을 순차적으로 또는 미리 정의된 순서로 이어 붙여 조합함으로써 조합 데이터(122)를 획득할 수도 있다. 보다 상세하게는, 워드 임베딩 처리부(121)는, 예를 들어, 개성 데이터(10)로부터 획득된 적어도 하나의 토큰(들)(t11 내지 t19)이 순차적으로 연결되어 형성된 토큰 집합(t10)과, 대화 히스토리(20)로부터 획득된 적어도 하나의 토큰(들)이 순차적으로 연결되어 형성된 토큰 집합(t20)과, 응답 데이터(30)로부터 획득된 적어도 하나의 토큰(들)이 순차적으로 연결되어 형성된 토큰 집합(t30)을 차례대로 연결함으로써, 하나 또는 둘 이상의 조합 데이터(122)를 획득할 수도 있다.
또한, 워드 임베딩 처리부(121)는 입력부(101) 및 저장부(102) 중 적어도 하나로부터 전달된 개성 데이터(10), 대화 히스토리(20) 및 오응답 데이터(40)를 조합하여 적어도 하나의 데이터(도 6의 122a, 이하 오응답 조합 데이터)를 획득할 수도 있다. 보다 구체적으로 워드 임베딩 처리부(121)는 개성 데이터(10), 대화 히스토리(20) 및 오응답 데이터(40)를 순차적으로 또는 미리 정의된 순서에 따라 이어 결합함으로써 적어도 하나의 오응답 조합 데이터(122a)를 획득할 수 있다. 이 경우에도 워드 임베딩 처리부(121)는 개성 데이터(10), 대화 히스토리(20) 및 오응답 데이터(40) 각각에 대해 상술한 토큰화 과정을 먼저 수행한 후, 개성 데이터(10), 대화 히스토리(20) 및 오응답 데이터(40) 각각에 대응하는 적어도 하나의 토큰(들)을 조합함으로써 적어도 하나의 오응답 조합 데이터(122a)를 획득할 수도 있다. 적어도 하나의 오응답 조합 데이터(122a)는 학습처리부(130)가 이용하는 적어도 하나의 학습 모델(도 5의 131)의 훈련을 위해 이용되며, 보다 구체적으로 학습처리부(130)가 보다 적절하게 처리 결과(일례로 대화 히스토리(20)의 마지막 문장 다음에 나타날 문장 또는 대화나, 응답 데이터(30)의 공백(39) 등)를 획득할 수 있게 한다.
조합 데이터(122) 및 오응답 조합 데이터(122a) 중 적어도 하나는 학습 처리부(130)로 전달 및 입력될 수 있다.
도 4는 학습처리부에 입력되는 데이터들의 일례에 대한 도면이다.
도 1 및 도 4에 도시된 바를 참조하면, 세그먼트 임베딩 처리부(124) 및 위치 임베딩 처리부(125)는, 워드 임베딩 처리부(121)가 생성한 조합 데이터(122)에 관한 정보(125, 128)를 생성하고, 생성한 정보(125, 128)를 학습 처리부(130)로 전달 및 입력할 수 있다. 상세하게는 세그먼트 임베딩 처리부(124)는 조합 데이터(122) 내의 각각의 토큰이 어느 것에 해당하는지 여부에 대한 정보를 포함할 수 있다. 구체적으로 도 4에 도시된 바와 같이 세그먼트 임베딩 처리부(124)는 대응하는 데이터(토큰)의 출처를 나타내는 데이터(125, 이하 세그먼트 임베딩 데이터)를 생성할 수 있다. 세그먼트 임베딩 데이터(125)는, 조합 데이터(122) 내의 적어도 하나의 토큰 각각에 대응하는 적어도 하나의 구역을 포함할 수 있으며, 각각의 구역에는 대응하는 토큰이 개성 데이터(10)의 토큰인지, 대화 히스토리(20)의 토큰인지 또는 응답 데이터(30)의 토큰인지 여부를 지시하는 출처 데이터(e1, e2, e3)가 기록될 수 있다. 출처 데이터(e1, e2, e3)는 문자, 기호 및/또는 숫자 등의 값을 가질 수 있다. 세그먼트 임베딩 데이터(125)의 출처 데이터(e1, e2, e3)를 확인함으로써, 학습 처리부(130)는 조합 데이터(122) 내의 각각의 토큰의 출처를 알 수 있게 된다. 위치 임베딩 처리부(125)는 조합 데이터(122) 내의 각각의 토큰의 위치를 나타내는 데이터(128, 이하 위치 데이터)를 생성할 수 있다. 구체적으로 위치 데이터(128)는 조합 데이터(122) 내의 적어도 하나의 토큰 각각에 대응하는 구역을 포함하되, 각각의 구역에는 각 토큰의 위치 정보(p1 내지 p22 등)가 기록될 수 있다. 각 토큰의 위치 정보(p1 내지 p22)는 문자, 기호 및/또는 숫자 등의 값을 이용하여 구현 가능하다. 학습 처리부(130)는 위치 데이터(128)를 이용하여 특정한 토큰의 위치를 파악할 수 있게 된다. 실시예에 따라서, 세그먼트 임베딩 처리부(124) 및 위치 임베딩 처리부(125) 중 적어도 하나는 생략 가능하다.
도 5는 학습 처리부의 동작의 일례를 설명하기 위한 도면이다.
일 실시예에 의하면, 도 4 및 도 5에 도시된 바와 같이 학습 처리부(130)는 학습 모델(131, 학습 알고리즘)을 훈련시키거나 및/또는 학습 모델(131)을 기반으로 처리 결과(150)를 획득할 수 있다. 여기서, 처리 결과(150)는, 예를 들어, 대화 히스토리(20)의 마지막 문장에 대한 응답을 포함할 수 있으며, 실시예에 따라 응답 데이터(30) 내의 적어도 하나의 공백(39) 각각에 대응하는 적어도 하나의 단어, 기호, 어구 또는 문장 등을 포함할 수 있다. 학습 처리부(130)는 조합 데이터(122)를 수신하거나 또는 세그먼트 임베딩 데이터(125) 및 위치 데이터(128) 중 적어도 하나를 더 수신하고, 수신한 데이터(122, 125, 128)를 이용하여 학습 모델(131)을 훈련시키거나 및/또는 학습 모델(131)을 이용하여 처리 결과(150)를 획득할 수도 있다. 조합 데이터(122), 세그먼트 임베딩 데이터(125) 및 위치 데이터(128)는 순차적으로 또는 동시에 학습 처리부(130)에 입력될 수 있다. 일 실시예에 의하면, 학습 처리부(130)가 이용하는 학습 모델(131)은, 예를 들어, 트랜스포머(transformer)일 수도 있고, 트랜스포머의 인코더(encoder)를 기반으로 구현된 버트(BERT)일 수도 있으며, 및/또는 트랜스포머의 디코더(decoder)를 기반으로 구현된 GPT-2나 GPT-3 등일 수도 있다. 또한, 학습 모델(131)은 트랜스포머, 버트, GPT-2 및 GPT-3 중 적어도 하나를 기반으로 획득된 학습 모델(일례로 dialoGPT의 small 모델 등)일 수도 있다. 여기서, dialoGPT는 트랜스포머의 디코더를 기반으로 구현된 학습 모델로, 주어진 단어 토큰(들)(t10, t20, t30)으로부터 전체 단어에 대한 확률 분포를 계산하여 현재의 문장이나 단어 다음에 순차적으로 등장할 토큰(들)(t39, 일례로 적어도 하나의 공백(39)에 대응하는 적어도 하나의 단어 등)을 생성할 수 있도록 마련된 학습 모델이다. dialoGPT는 일 회 이상 계속해서 일 이상의 공백(39) 각각에 대한 단어 등을 순차적으로 또는 임의적으로 생성할 수 있다. 예를 들어, 조합 데이터(122)에 공백(39)에 대응하는 구역(t39)이 다수 존재하는 경우, dialoGPT 등의 학습 모델은 이들 다수의 구역(t39)에 대응하는 단어, 어구 또는 기호 등을 순차적으로 결정하고, 결정한 단어, 어구 또는 기호 등을 이용하여 다수의 구역(t39)을 순차적으로 채워가면서 최종 결과(150, 즉 적절한 응답)를 획득할 수 있다. 또한, 학습 모델(131)은 상술한 트랜스포머, 버트, GPT-2, GPT-3 또는 이들을 기반으로 개발된 학습 모델을 미세 조정하여 획득한 새로운 모델일 수도 있다. 이외에도 학습 모델(131)은, 심층 신경망(DNN: Deep Neural Network), 순환 신경망(RNN: Recurrent Neural Network), 콘볼루션 신경망(CNN: Convolution Neural Network), 장단기 메모리(LSTM: Long short term memory) 및/또는 심층 강화 학습(Deep reinforcement learning) 알고리즘 등 소정의 학습 알고리즘을 하나 이상 사용하여 구현될 수도 있다. 상술한 학습 모델(131)은 사전에 훈련된 것일 수도 있다. 이 경우, 학습 처리부(130)는 사전에 훈련된 학습 모델(131)을 기반으로 전이 학습(transfer learning)을 수행하도록 설계된 것일 수도 있다. 일 실시예에 따르면, 학습 처리부(130)에 의해 처리되는 학습 모델(131)은, 적어도 하나의 은닉 상태(미도시, 은닉층으로 지칭 가능)를 포함할 수 있다. 이 경우, 학습 처리부(130)는, 적어도 하나의 은닉 상태 중에서 마지막 은닉 상태(132)로부터 결과 데이터가 출력되면, 결과 데이터를 디코더(미도시)에 입력시킴으로써 학습 처리에 따른 최종적인 결과(150)를 획득하도록 설계된 것일 수도 있다.
도 6은 오응답 데이터가 입력되는 일례를 설명하기 위한 도면이다.
분류부(140)는 응답이 적절한지 여부(즉, 응답이 오응답인지 여부)를 분류 및 판별 가능하도록 마련된다. 도 5 및 도 6에 도시된 바를 참조하면, 분류부(140)는 적어도 하나의 은닉 상태(일례로 마지막 은닉 상태(132))를 입력값으로 수신하고, 이를 기반으로 입력된 데이터가 오응답(40)인지 여부를 판별할 수 있다. 상세하게는 분류부(140)는, 조합 데이터(122)를 기반으로 학습 처리가 수행되었는지 또는 워드 임베딩 처리부(121)가 오응답 데이터(40)를 조합하여 생성한 오응답 조합 데이터(122a)를 수신하여 학습 처리가 수행되었는지 여부를 판별함으로써 학습 처리부(130)에 의한 처리 결과의 정확성이 개선되도록 할 수 있다. 분류부(140)는, 오응답(40) 여부의 판별을 위해서 사전에 또는 판별과 동시에 훈련된 것일 수도 있다. 이 경우, 적어도 하나의 은닉 상태 중 마지막 은닉 상태(132)에는 다음 문장 예측을 위한 구역(139, 이하 다음 문장 예측 구역)이 더 추가되어 있을 수 있으며, 분류부(140)는 다음 문장 예측 구역(139)를 이용하여 분류부(140)가 수신할 마지막 은닉 상태(132)를 판단할 수 있다. 이 경우, 다음 문장 예측 구역(139)에는 마지막 은닉 상태(132)임을 나타내는 값(기호나 문자 등)이 기록되어 있을 수도 있고, 및/또는 잘못된 응답임을 나타내기 위한 값이 기록되어 있을 수도 있다. 일 실시예에 따르면, 분류부(140)는 입력된 조합 데이터(122, 122a) 각각에 대해 분류 확률 등을 기반으로 스코어를 연산함으로써 분류 손실을 획득할 수 있다. 분류 손실은, 언어 모델 손실(language model loss) 등과 같은 교차 엔트로피 손실(cross entropy loss)과 함께 전체적인 손실(total loss)을 연산하는데 이용될 수 있다. 예를 들어, 전체적인 손실은 분류 손실 및 언어 모델 손실의 합으로 주어질 수 있다. 이에 따라 학습 모델(131)에 대한 다중 작업 손실(multi-task loss)이 획득될 수 있게 된다. 상술한 분류부(140)는 이와 같은 손실을 기반으로 학습 처리부(130)가 결정한 응답의 적절 여부를 판단할 수 있다. 분류부(140)는, 실시예에 따라 소정의 학습 모델을 이용하여 구현 가능하다.
도 1 내지도 도 6을 통해 설명한 대화 수행 장치(100)는 데이터의 연산 및 처리가 가능한 적어도 하나의 정보 처리 장치를 이용하여 구현될 수 있다. 여기서, 적어도 하나의 정보 처리 장치는, 데스크톱 컴퓨터, 랩톱 컴퓨터, 스마트 폰, 태블릿 피씨, 웨어러블 디바이스(스마트 시계, 스마트 밴드 또는 두부 장착형 디스플레이 장치(HMD: Head Mounted Display 등), 내비게이션 장치, 개인용 디지털 보조기(PDA), 휴대용 게임기, 인공지능 스피커 장치, 디지털 텔레비전, 셋톱 박스, 가전 기기, 차량, 유인 또는 무인 비행체, 로봇, 기계 장치, 건설 장비 및/또는 대화 수행을 위해 특별히 고안된 전자 장치 등을 포함할 수 있다. 그러나, 이는 예시적인 것으로, 대화 수행 장치(100)는 이들 외에도 입력 받은 데이터에 대해 학습을 수행할 수 있는 다양한 장치를 이용하여 구현될 수도 있다.
이하 도 7을 참조하여 일 실시예에 따른 대화 수행 시스템에 대해 설명하도록 한다.
도 7은 대화 수행 시스템의 일 실시예에 대한 도면이다.
도 7에 도시된 바에 의하면, 대화 수행 시스템(200)은 일 실시예에 있어서 적어도 하나의 단말 장치(210)와, 적어도 하나의 단말 장치(210)와 통신 네트워크(201)를 통해 데이터 등의 송수신이 가능한 적어도 하나의 서버 장치(220)를 포함할 수 있다. 여기서, 통신 네트워크(201)는 유선 통신 네트워크, 무선 통신 네트워크 또는 이들의 조합을 포함할 수 있다. 무선 통신 네트워크는 근거리 통신 네트워크(와이파이나 블루투스 등) 및 이동 통신 네트워크(3GPP, 3GPP2 또는 와이맥스 계열 등의 이동 통신 표준을 기반으로 구현된 네트워크 등) 중 적어도 하나를 이용하여 구현 가능하다.
적어도 하나의 단말 장치(210)는 사용자나 관리자 등으로부터 상술한 개성 데이터(10), 대화 히스토리(20), 응답 데이터(30) 및 오응답 데이터(40) 중 적어도 하나를 입력 받을 수 있다. 실시예에 따라, 적어도 하나의 단말 장치(210)는, 개성 데이터(10), 대화 히스토리(20), 응답 데이터(30) 및 오응답 데이터(40) 중 적어도 하나를 그대로 또는 일부 가공을 거쳐 적어도 하나의 서버 장치(220)로 전송할 수도 있다. 또는, 적어도 하나의 단말 장치(210)는 개성 데이터(10), 대화 히스토리(20), 응답 데이터(30) 및 오응답 데이터(40) 중 적어도 하나를 기반으로 조합 데이터(122), 세그먼트 임베딩 데이터(125) 및 위치 데이터(128) 중 적어도 하나를 생성하고, 생성한 조합 데이터(122), 세그먼트 임베딩 데이터(125) 및 위치 데이터(128) 중 적어도 하나를 서버 장치(220)로 전송할 수도 있다. 실시예에 따라, 적어도 하나의 단말 장치(210)는 상술한 학습 처리부(130)의 동작의 전부 또는 일부를 수행할 수도 있다. 또한, 적어도 하나의 단말 장치(210)는, 적어도 하나의 서버 장치(220)로부터 처리 결과(일례로 학습에 따라 획득된 단어나 문장 등)를 수신하고, 수신한 처리 결과를 디스플레이나 스피커 장치 등을 통해 사용자 등에게 제공할 수도 있다. 적어도 하나의 단말 장치(210)는, 예를 들어, 스마트 폰, 태블릿 피씨, 웨어러블 디바이스, 데스크톱 컴퓨터, 랩톱 컴퓨터, 인공지능 스피커 장치, 내비게이션 장치, 블랙박스 장치, 휴대용 게임기, 디지털 텔레비전, 가전 기기, 로봇, 차량, 건설 기계, 전자 광고판 및/또는 이외 서버 장치(220)와 통신 수행이 가능한 적어도 하나의 전자 장치 등을 포함할 수 있다.
일 실시예에 따르면, 서버 장치(220)는 적어도 하나의 단말 장치(210)로부터 개성 데이터(10), 대화 히스토리(20), 응답 데이터(30) 및 오응답 데이터(40) 중 적어도 하나를 수신하거나, 또는 조합 데이터(122), 세그먼트 임베딩 데이터(125) 및 위치 데이터(128) 중 적어도 하나를 수신하고, 수신한 데이터를 기반으로 소정의 동작을 수행할 수 있다. 예를 들어, 서버 장치(220)는, 실시예에 따라, 상술한 프로세서(110)의 전반적인 동작(일례로 조합 데이터(122), 세그먼트 임베딩 데이터(125) 및 위치 데이터(128)의 생성 동작 및 학습처리부(130)의 동작 등)을 수행할 수도 있고 또는 프로세서(110)의 학습처리부(130)의 동작만을 수행할 수도 있다. 또한, 서버 장치(220)는 학습처리부(130)가 수행하는 동작의 일부(예를 들어, 분류부(140)의 동작 등)만을 수행하도록 설계될 수도 있다. 서버 장치(220)의 처리 결과는 통신 네트워크(201)를 통해 적어도 하나의 단말 장치(210)로 전송될 수 있다. 이 경우, 서버 장치(220)는, 실시예에 따라, 데이터(10 내지 40, 123, 125, 128)를 전송한 단말 장치(210)로 처리 결과를 전송할 수도 있고 및/또는 다른 단말 장치로 처리 결과를 전송할 수도 있다. 실시예에 따라서, 서버 장치(220)는 하나 또는 둘 이상의 서버용 컴퓨팅 장치를 이용하여 구현될 수도 있다. 둘 이상의 서버용 컴퓨터 장치를 이용하여 구현된 경우, 각각의 서버용 컴퓨터 장치는 서로 동일한 동작을 수행할 수도 있고, 또는 서로 상이한 동작을 수행할 수도 있다. 서버 장치(220)는 서버용 컴퓨터 장치 외에도, 데스크톱 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 피씨, 네비게이션 장치 및/또는 블랙박스 장치 등과 같이 데이터의 연산 처리가 가능한 각종 정보처리장치를 이용하여 구현될 수도 있다.
이하 도 8을 참조하여 대화 수행 방법의 일 실시예에 대해 설명한다.
도 8은 대화 수행 방법의 일 실시예에 대한 흐름도이다.
도 8에 도시된 대화 수행 방법의 일 실시예에 의하면, 먼저 개성 데이터 및 대화 히스토리가 동시에 또는 이시에 입력될 수 있다(300). 또한, 이들과 더불어 응답 데이터 및 오응답 데이터 중 적어도 하나가 순차적으로 또는 동시에 입력될 수 있다. 여기서, 개성 데이터는 특정한 개성을 나타낼 수 있는 정보로, 하나 또는 둘 이상의 단어나 문장으로 형성된 것일 수 있다. 대화 히스토리는 적어도 둘 사이에 수행된 대화로 형성된 것일 수 있으며, 여기서 적어도 둘은 사용자와 대화 수행 장치를 포함할 수 있으나, 이에 한정되는 것은 아니다. 대화 히스토리 역시 적어도 하나의 단어 또는 문장 등으로 이루어질 수 있다. 응답 데이터는 대화 히스토리의 적어도 하나의 문장(일례로 마지막 문장)에 대한 응답일 수 있다. 실시예에 따라, 응답 데이터는 적어도 하나의 공백을 포함할 수도 있되, 응답 데이터는 오직 공백만을 포함할 수도 있고, 또는 전체 문장 중 일부만이 공백으로 대체되어 포함할 수도 있다. 또한, 응답 데이터는 공백을 전혀 포함하지 않을 수도 있다. 오응답 데이터는 대화 히스토리의 적어도 하나의 문장에 대해 응답으로써 적절하지 않은 문장 또는 단어를 포함할 수 있다.
순차적으로, 일 실시예에 의하면, 개성 데이터 및 대화 히스토리에 대한 토큰화가 수행되고, 필요에 따라 응답 데이터 및 오응답 데이터 중 적어도 하나에 대한 토큰화가 더 수행될 수 있다(302).
이어서 개성 데이터 및 대화 히스토리를 조합하여 조합 데이터가 생성될 수 있으며, 실시예에 따라 응답 데이터 및 오응답 데이터 중 어느 하나를 더 이용하여 조합 데이터가 생성될 수 있다(304). 조합 데이터의 생성은 개성 데이터 및 대화 히스토리 각각에 대한 토큰들의 순차적인 조합을 이어 연결함으로써 생성될 수도 있다. 또한, 조합 데이터는 응답 데이터로부터 획득된 토큰(들)이나 오응답 데이터로부터 획득된 토큰(들)을 더 연결 및 조합함으로써 획득될 수도 있다. 조합 데이터의 생성과 더불어 또는 순차적으로 세그먼트 임베딩 데이터 및 위치 데이터 중 적어도 하나가 더 생성될 수도 있다. 세그먼트 임베딩 데이터는 대응하는 데이터(일례로 토큰)의 출처를 나타내는 데이터이고, 위치 데이터는 대응하는 데이터(일례로 토큰)의 절대적 또는 상대적 위치를 나타내는 데이터이다. 상술한 조합 데이터는 적어도 하나의 구역을 포함할 수 있으며, 세그먼트 임베딩 데이터 및 위치 데이터 각각은 조합 데이터의 적어도 하나의 구역 각각에 대응하는 적어도 하나의 구역을 포함하되, 각각의 구역에는 단어나 문장의 출처 또는 위치에 대응하는 값이 기록되어 있을 수 있다.
응답 데이터를 포함하는 조합 데이터 또는 오응답 데이터를 포함하는 조합 데이터를 기반으로 학습 처리가 수행될 수 있다(306). 이 경우, 세그먼트 임베딩 데이터 및 위치 데이터도 학습 처리에 더 이용될 수 있다. 여기서 학습 모델은 트랜스포머, 버트, GPT-2, GPT-3 또는 이들 모델을 기반으로 구축된 다른 학습 모델(일례로 dialoGPT 등)을 포함할 수 있다. 실시예에 따라 학습 모델은 예시된 학습 모델 중 적어도 하나를 미세 조정하여 획득한 것일 수도 있다. 또한, 학습 모델은, 심층 신경망이나 콘볼루션 신경망 등을 포함할 수도 있다. 학습 모델은 필요에 따라 적어도 하나의 은닉 상태를 포함할 수 있으며, 적어도 하나의 은닉 상태 중 적어도 하나(일례로 마지막 은닉 상태)는 응답이 적절한지 여부를 판단하기 위해 이용될 수 있다. 구체적으로 예를 들어, 마지막 은닉 상태를 기반으로 응답 데이터를 이용한 조합 데이터를 기반으로 훈련 및/또는 결과 획득이 수행되었는지 또는 오응답 데이터를 이용한 조합 데이터를 기반으로 훈련 및/또는 결과 획득이 수행되었는지 여부가 판단될 수 있다. 이 경우, 응답의 적절성 판단을 위해 손실이 연산될 수 있으며, 손실은 분류 손실을 포함할 수 있고, 교차 엔트로피 손실을 포함할 수 있으며, 또는 이들 손실을 합한 값을 포함할 수도 있다. 이에 따라 다중 작업 손실의 획득이 가능해진다. 또한, 일 실시예에 의하면 마지막 은닉 상태는 다음 문장 예측을 위한 적어도 하나의 구역을 더 포함할 수 있으며, 적어도 하나의 구역에는 마지막 은닉 상태를 판단하거나 잘못된 응답 여부를 판단하기 위한 적어도 하나의 값이 기록되어 있을 수 있다.
학습 처리 과정에 의해 소정의 학습 모델이 훈련되거나 및/또는 소정의 학습 모델에 따른 처리 결과가 획득될 수 있다(308). 훈련된 학습 모델이나 처리 결과는 실시예에 따라 저장부에 저장될 수도 있고, 및/또는 시각적 방법이나 청각적 방법을 통해 외부로 출력될 수도 있다.
상술한 실시예에 따른 대화 수행 방법은, 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 여기서, 컴퓨터 장치는, 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다.
상술한 대화 수행 방법을 구현하기 위한 프로그램은, 컴퓨터에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 솔리드 스테이트 드라이브, 롬, 램 또는 플래시 메모리 등과 같은 반도체 저장 장치, 하드 디스크나 플로피 디스크 등과 같은 자기 디스크 저장 매체, 콤팩트 디스크나 디브이디 등과 같은 광 기록 매체, 플롭티컬 디스크 등과 같은 자기-광 기록 매체 및 자기 테이프 등 컴퓨터 등의 호출에 따라 실행되는 특정 프로그램을 저장 가능한 적어도 한 종류의 물리적 장치를 포함할 수 있다.
이상 대화 수행 시스템, 장치 및 방법의 여러 실시예에 대해 설명하였으나, 대화 수행 시스템, 장치 및 방법은 오직 상술한 실시예에 한정되는 것은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현 가능한 다양한 장치나 방법 역시 상술한 대화 수행 시스템, 장치 및 방법의 일례가 될 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나 다른 구성 요소 또는 균등물에 의하여 대치되거나 또는 치환되더라도 상술한 대화 수행 시스템, 장치 및 방법의 일 실시예가 될 수 있다.
10: 개성 데이터 20: 대화 히스토리
30: 응답 데이터 40: 오응답 데이터
100: 대화 수행 장치 101: 입력부
102: 저장부 103: 출력부
110: 프로세서 120: 임베딩 처리부
130: 학습 처리부 140: 분류부

Claims (14)

  1. 개성 데이터, 대화 히스토리 및 응답 데이터를 연결하여 조합함으로써 조합 데이터를 획득하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는, 임베딩 처리부; 및
    상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 학습 처리부를 포함하고,
    상기 임베딩 처리부는, 상기 조합 데이터 내의 각각의 데이터에 대한 출처를 나타내는 세그먼트 임베딩 데이터 및 상기 조합 내의 각각의 데이터의 위치를 나타내는 위치 데이터 중 적어도 하나를 더 생성하고,
    상기 학습 처리부는 상기 세그먼트 임베딩 및 위치 데이터를 더 이용하여 학습을 수행하고,
    상기 임베딩 처리부는, 상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터 각각으로부터 적어도 하나의 토큰을 획득하고, 적어도 하나의 토큰을 조합하여 상기 조합 데이터를 획득하는,
    대화 수행 장치.
  2. 제1항에 있어서,
    상기 응답 데이터는 전체 문장 내에서 누락된 단어에 대응하는 적어도 하나의 공백을 포함하고,
    상기 학습 처리부는 상기 적어도 하나의 공백에 대한 단어를 학습을 통해 획득하는 대화 수행 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 임베딩 처리부는, 상기 개성 데이터, 상기 대화 히스토리 및 오응답 데이터를 연결하여 조합함으로써 오응답 조합 데이터를 획득하되, 오응답 데이터는 상기 대화 히스토리의 적어도 하나의 문장에 대해 부적절한 응답을 포함하는 대화 수행 장치.
  6. 제5항에 있어서,
    오응답 조합 데이터인지 여부를 판별하는 분류부;를 더 포함하는 대화 수행 장치.
  7. 제6항에 있어서,
    상기 분류부는 분류 손실, 교차 엔트로피 손실 또는 상기 분류 손실과 상기 교차 엔트로피의 합을 기반으로 손실을 연산하여 오응답 조합 데이터인지 여부를 판별하는 대화 수행 장치.
  8. 개성 데이터, 대화 히스토리 및 응답 데이터를 수신하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는 단말 장치; 및
    상기 개성 데이터, 대화 히스토리 및 응답 데이터로부터 획득된 조합 데이터, 세그먼트 데이터 및 위치 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 서버 장치를 포함하고,
    상기 단말 장치 및 상기 서버 장치 중 적어도 하나는,
    상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터를 기반으로 조합 데이터, 상기 조합 데이터에 대응하는 세그먼트 데이터 및 상기 조합 데이터에 대응하는 위치 데이터 중 적어도 하나를 생성하고,
    상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터 각각으로부터 적어도 하나의 토큰을 획득하고, 적어도 하나의 토큰을 조합하여 상기 조합 데이터를 획득하는,
    대화 수행 시스템.
  9. 삭제
  10. 컴퓨팅 시스템에 의해 각 단계가 수행되는 대화 수행 방법에 있어서,
    개성 데이터, 대화 히스토리 및 응답 데이터를 연결하여 조합함으로써 조합 데이터를 획득하되, 개성 데이터는 특정 개성을 나타낼 수 있는 정보를 포함하는, 단계;
    상기 조합 데이터 내의 각각의 데이터에 대한 출처를 나타내는 세그먼트 임베딩 데이터 및 상기 조합 내의 각각의 데이터의 위치를 나타내는 위치 데이터를 생성하는 단계; 및
    상기 조합 데이터, 상기 세그먼트 임베딩 데이터 및 상기 위치 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 단계를 포함하고,
    상기 학습을 수행하는 단계는 상기 개성 데이터, 상기 대화 히스토리 및 상기 응답 데이터 각각으로부터 획득된 적어도 하나의 토큰을 이용하는,
    대화 수행 방법.
  11. 제10항에 있어서,
    상기 응답 데이터는 전체 문장 내에서 누락된 단어에 대응하는 적어도 하나의 공백을 포함하고,
    상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 학습을 수행하는 단계는,
    상기 조합 데이터를 기반으로 적어도 하나의 학습 모델을 이용하여 상기 적어도 하나의 공백에 대한 단어를 학습을 통해 획득하는 단계;를 포함하는 대화 수행 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 개성 데이터, 상기 대화 히스토리 및 오응답 데이터를 연결하여 조합함으로써 오응답 조합 데이터를 획득하되, 오응답 데이터는 상기 대화 히스토리의 적어도 하나의 문장에 대해 부적절한 응답을 포함하는 단계;를 더 포함하는 대화 수행 방법.
  14. 제13항에 있어서,
    오응답 조합 데이터인지 여부를 판별하는 단계;를 더 포함하는 대화 수행 방법.
KR1020200120077A 2020-09-17 2020-09-17 대화 수행 시스템, 장치 및 방법 KR102491931B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200120077A KR102491931B1 (ko) 2020-09-17 2020-09-17 대화 수행 시스템, 장치 및 방법
PCT/KR2021/012484 WO2022060050A1 (ko) 2020-09-17 2021-09-14 대화 수행 시스템, 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200120077A KR102491931B1 (ko) 2020-09-17 2020-09-17 대화 수행 시스템, 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220037297A KR20220037297A (ko) 2022-03-24
KR102491931B1 true KR102491931B1 (ko) 2023-01-26

Family

ID=80777144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200120077A KR102491931B1 (ko) 2020-09-17 2020-09-17 대화 수행 시스템, 장치 및 방법

Country Status (2)

Country Link
KR (1) KR102491931B1 (ko)
WO (1) WO2022060050A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100918644B1 (ko) * 2009-06-17 2009-09-25 김정중 대화 시스템 및 대화 문장 생성 방법
US20140250195A1 (en) 2009-01-08 2014-09-04 Mycybertwin Group Pty Ltd Chatbots

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3949365B2 (ja) 1999-10-05 2007-07-25 株式会社リコー 電子写真感光体及びそれを用いた電子写真装置
KR20060026636A (ko) 2004-09-21 2006-03-24 이형영 인터넷을 이용한 인성계발 및 일반학습 시스템 및 방법
KR101522837B1 (ko) 2010-12-16 2015-05-26 한국전자통신연구원 대화 방법 및 이를 위한 시스템
KR101916174B1 (ko) * 2016-08-22 2018-11-07 최준영 기계 학습 기반으로 언어를 처리하는 방법 및 장치
KR101851793B1 (ko) 2017-12-22 2018-04-24 주식회사 마인드셋 멀티 도메인 자연어 처리를 위한 도메인 매칭 장치 및 방법
KR102139855B1 (ko) * 2018-05-23 2020-07-30 한국과학기술원 사용자와 대화하며 내면 상태를 이해하고 긴밀한 관계를 맺을 수 있는 감성지능형 개인비서 시스템
KR102225858B1 (ko) * 2019-02-12 2021-03-11 주식회사 자이냅스 대화 서비스 제공을 위한 문장 의미 관계 학습 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140250195A1 (en) 2009-01-08 2014-09-04 Mycybertwin Group Pty Ltd Chatbots
KR100918644B1 (ko) * 2009-06-17 2009-09-25 김정중 대화 시스템 및 대화 문장 생성 방법

Also Published As

Publication number Publication date
KR20220037297A (ko) 2022-03-24
WO2022060050A1 (ko) 2022-03-24

Similar Documents

Publication Publication Date Title
JP7005694B2 (ja) コンピュータによるエージェントのための合成音声の選択
US11769492B2 (en) Voice conversation analysis method and apparatus using artificial intelligence
CN111418198B (zh) 提供文本相关图像的电子装置及其操作方法
CN113505205A (zh) 一种人机对话的系统和方法
CN112214591B (zh) 一种对话预测的方法及装置
US20200321002A1 (en) System and method for context-enriched attentive memory network with global and local encoding for dialogue breakdown detection
US20190304451A1 (en) Dialogue method, dialogue system, dialogue apparatus and program
CN110459211B (zh) 人机对话方法、客户端、电子设备及存储介质
EP3540611A1 (en) Electronic device for performing translation by sharing context of utterance and operation method therefor
US20200387676A1 (en) Electronic device for performing translation by sharing context of utterance and operation method therefor
US20230050159A1 (en) Electronic device and method of controlling thereof
CN108055617A (zh) 一种麦克风的唤醒方法、装置、终端设备及存储介质
US20210049328A1 (en) Electronic device and natural language generation method thereof
US11468247B2 (en) Artificial intelligence apparatus for learning natural language understanding models
US20220059088A1 (en) Electronic device and control method therefor
US11862178B2 (en) Electronic device for supporting artificial intelligence agent services to talk to users
CN110874402B (zh) 基于个性化信息的回复生成方法、设备和计算机可读介质
KR102491931B1 (ko) 대화 수행 시스템, 장치 및 방법
US11922127B2 (en) Method for outputting text in artificial intelligence virtual assistant service and electronic device for supporting the same
US20220301544A1 (en) Electronic device including personalized text to speech module and method for controlling the same
KR102128812B1 (ko) 로봇의 사회 지능 평가 방법 및 이를 위한 장치
Hou et al. Stmmi: a self-tuning multi-modal fusion algorithm applied in assist robot interaction
US20240036527A1 (en) Electronic device and computer readable storage medium for control recommendation
KR20230079624A (ko) 질의 생성 장치 및 방법
KR20220072561A (ko) 사용자 입력에 대한 응답을 생성하는 전자 장치 및 그 동작 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant