KR20210123545A - 사용자 피드백 기반 대화 서비스 제공 방법 및 장치 - Google Patents

사용자 피드백 기반 대화 서비스 제공 방법 및 장치 Download PDF

Info

Publication number
KR20210123545A
KR20210123545A KR1020200040785A KR20200040785A KR20210123545A KR 20210123545 A KR20210123545 A KR 20210123545A KR 1020200040785 A KR1020200040785 A KR 1020200040785A KR 20200040785 A KR20200040785 A KR 20200040785A KR 20210123545 A KR20210123545 A KR 20210123545A
Authority
KR
South Korea
Prior art keywords
user
conversation
utterance
answer
agent
Prior art date
Application number
KR1020200040785A
Other languages
English (en)
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 KR1020200040785A priority Critical patent/KR20210123545A/ko
Publication of KR20210123545A publication Critical patent/KR20210123545A/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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/63Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for estimating an emotional state
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0638Interactive procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Primary Health Care (AREA)
  • Educational Administration (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Strategic Management (AREA)
  • Educational Technology (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Child & Adolescent Psychology (AREA)
  • Hospice & Palliative Care (AREA)
  • Psychiatry (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)

Abstract

적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 대화 에이전트로 사용자 발화를 입력하고, 상기 대화 에이전트에 의해 결정된 답변 문장을 음성으로 출력하는 단계, 상기 답변 문장에 대한 사용자 응답으로부터 추출된 비언어적 표현의 음성 특성을 분석하고, 상기 음성 특성으로부터 상기 답변 문장에 대한 긍정적 또는 부정적 감정을 추출하는 단계, 그리고 추출된 감정에 따라 계산된 상기 답변 문장에 대한 만족도가 클수록 상기 대화 에이전트에 높은 보상 값을 제공하여 상기 대화 에이전트를 강화 학습시키는 단계를 포함하고, 상기 대화 에이전트는 상기 사용자 발화의 발화 의도와 주제를 추출하고, 상기 발화 의도와 주제에 부합하는 상기 답변 문장을 결정하도록 학습된 모델이다.

Description

사용자 피드백 기반 대화 서비스 제공 방법 및 장치{METHOD AND APPARATUS FOR CONVERSATION SERVICE BASED ON USER FEEDBACK}
본 발명은 사용자의 피드백을 기반으로 하는 대화 서비스를 제공하는 기술에 관한 것이다.
최근 인공지능을 이용한 음성 인식, 대화 해석 및 생성, 음성 합성 기술을 기반으로 한 대화 서비스가 다양한 형태로 제안되어 왔다. 인공지능 기술의 획기적인 발전에 따라 음성 인식과 음성 합성 기술의 성능은 급격하게 향상되었으나, 대화 서비스를 위해 다양한 대화 환경을 반영하여 적절한 문장을 생성하는 기술은 아직까지는 한계가 있다.
다양한 종류의 대화 서비스 중, 특히 외국어 교육 서비스는 크게 단어나 문장을 외국인에 가깝게 발화할 수 있는 능력을 키우는 발음 교육과 일상 대화나 교육, 비즈니스를 수행하는데 필요한 회화 교육의 두 분야로 구성된다. 인공지능을 이용한 발음 교육은, 음성 합성을 기반으로 한 따라 말하기와 음성 인식 기술을 활용한 발음 평가 기술을 이용하여 인간의 개입 없이도 가능한 수준이다. 발화 문장에 대해서도 교정 프로그램을 이용하여 텍스트의 문법적인 오류나 표현의 어색함 등을 수정할 수 있다.
일반적인 대화 서비스에서, 발화하는 문장의 내용이 주어진 대화 상황에 적절한지 또는 상대방과의 대화가 자연스럽게 이어질 수 있는지 판단하는 문제는, 문장의 의미나 감정 표현을 해석해야 하는 고난도의 지능적인 행위이다. 또한 외국어 교육 서비스에서는, 학습자가 일정 수준의 능력을 습득하기까지 오랜 기간이 소요되므로, 학습자의 흥미를 유발시키는 요소를 추가적으로 제공해야 한다.
대화 서비스가 사용자 발화에 대한 응답을 제공하는 방법은 다양할 수 있다. 한 예로서, 대화 답변을 위하여 문장의 의도(Act Type)를 태깅한 대량의 데이터를 수집한다. 사용자의 발화 의도를 해석하고, 미리 수집한 데이터에서 사용자 발화 의도와 가장 가까운 문장을 선택하여 다음 대화로 제공한다. 다른 예로서, 일상 대화가 아닌 특정한 목적이 있는 대화의 경우, 목적 달성을 위해 정의된 속성값을 함께 고려하여 다음 대화를 선택한다.
또 다른 예로서, 딥러닝 기술의 발달에 따라, 미리 수집된 데이터에서 고정된 문장을 선택하는 것이 아니라, 대화 문장 자체를 새로 생성하도록 대화 생성 모델을 훈련하는 경우도 있다. 모델을 이용하면 더욱 자연스럽고 상황에 적절한 문장을 생성할 수 있다. 그러나 이 방법 역시 모델을 훈련시키는 문장들의 통계적 특성에 종속된다. 즉, 훈련 데이터의 문장에 종속되어 대화 문장이 생성되므로 인간적이고 재치있는 답변보다는 부자연스러운 문장이 생성될 수도 있다.
따라서, 외국어 회화 교육을 포함한 대화 서비스에서 사용자에게 자연스러운 대화를 생성하는 방법으로서, 사용자의 최대 우도 추정이나 신경망 학습기의 손실 함수(Loss Function)에만 의존하지 않고, 사용자의 피드백을 반영한 강화 학습 모델을 사용하여 주어진 상황에 적합하고 사용자의 흥미를 유발할 수 있는 대화 서비스가 요구된다.
해결하고자 하는 과제는 학습 종료 후 사용자가 직접 입력하는 평가 점수 이외에, 사용자의 발화 중 대화가 아닌 부분으로부터 산출한 사용자의 만족도를 이용하여 대화를 생성하는 에이전트를 강화 학습하는 방법을 제공하는 것이다.
또한, 해결하고자 하는 과제는 사용자의 흥미를 유발하도록 사용자 발화의 의도를 분석하고 이에 대한 답변을 제공하는 대화 서비스 방법을 제공하는 것이다.
한 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 대화 에이전트로 사용자 발화를 입력하고, 상기 대화 에이전트에 의해 결정된 답변 문장을 음성으로 출력하는 단계, 상기 답변 문장에 대한 사용자 응답으로부터 추출된 비언어적 표현의 음성 특성을 분석하고, 상기 음성 특성으로부터 상기 답변 문장에 대한 긍정적 또는 부정적 감정을 추출하는 단계, 그리고 추출된 감정에 따라 계산된 상기 답변 문장에 대한 만족도가 클수록 상기 대화 에이전트에 높은 보상 값을 제공하여 상기 대화 에이전트를 강화 학습시키는 단계를 포함하고, 상기 대화 에이전트는 상기 사용자 발화의 발화 의도와 주제를 추출하고, 상기 발화 의도와 주제에 부합하는 상기 답변 문장을 결정하도록 학습된 모델이다.
일련의 대화를 포함한 학습 데이터를 이용하여 상기 대화 에이전트의 파라미터 값들을 결정하도록 상기 대화 에이전트를 초기 학습시키는 단계를 더 포함할 수 있다.
상기 학습 데이터는, 수집된 복수의 사용자 발화 문장들 또는 상기 발화 문장들을 시뮬레이션 하여 생성된 유사 문장들 중 적어도 어느 하나를 포함할 수 있다.
상기 출력하는 단계는, 단어 데이터베이스에 저장된 단어들을 조합하여 상기 답변 문장을 생성하거나, 문장 데이터베이스에 저장된 문장들 중에서 상기 답변 문장을 선택할 수 있다.
상기 단어 데이터베이스 또는 상기 문장 데이터베이스는 상기 사용자 발화의 언어와 수준에 해당하는 단어 또는 문장들을 각각 포함할 수 있다.
상기 강화 학습시키는 단계는, 상기 대화 에이전트와의 대화가 종료된 이후, 상기 대화 에이전트가 사용자와 주고받은 대화의 턴(Turn) 수를 결합하여 상기 보상 값을 계산하고, 상기 보상 값은 상기 대화의 턴 수가 클수록 큰 값일 수 있다.
상기 강화 학습시키는 단계는, 대화 종료 요청을 입력받거나 미리 정한 턴 수에 도달하면 대화가 종료될 수 있다.
한 실시예에 따른 컴퓨팅 장치로서, 메모리, 그리고 상기 메모리에 로드된 프로그램의 명령들(instructions)을 실행하는 적어도 하나의 프로세서를 포함하고, 상기 프로그램은 학습된 대화 에이전트로 사용자 발화를 입력하고, 상기 대화 에이전트에 의해 결정된 답변 문장을 음성으로 출력하는 단계, 대화 종료 후, 상기 대화 에이전트가 상기 사용자와 주고받은 대화의 턴(Turn) 수와 상기 대화가 종료되기 전까지 출력된 복수의 답변 문장들에 대한 상기 사용자의 긍정 또는 부정의 감정을 기초로 만족도를 계산하는 단계, 그리고 상기 만족도가 클수록 상기 대화 에이전트에 높은 보상 값을 제공하여 상기 대화 에이전트를 강화 학습시키는 단계를 실행하도록 기술된 명령들을 포함한다.
상기 대화 에이전트는, 복수의 사용자 발화들로 구성된 학습 데이터로 지도 학습되거나 또는 사용자와의 반복 대화를 통해 강화 학습된 것일 수 있다.
상기 계산하는 단계는, 상기 답변 문장들에 대한 평가 점수를 입력받고, 상기 만족도는 상기 평가 점수가 클수록 높은 값일 수 있다.
상기 강화 학습시키는 단계는, 상기 답변 문장들에 대한 사용자 응답으로부터 비언어적 표현을 추출하고, 상기 비언어적 표현에 상기 사용자의 감정을 대응시키고, 상기 감정이 상기 답변 문장들에 대한 긍정적 평가인지 또는 부정적 평가인지를 판단하고, 상기 만족도는, 상기 감정이 상기 답변 문장에 대한 긍정적 평가에 해당할수록 높은 값일 수 있다.
상기 비언어적 표현은 상기 사용자의 목소리 톤(Tone), 감탄사, 웃음 소리 또는 한숨 소리 중 적어도 하나를 포함할 수 있다.
상기 사용자 응답은 상기 사용자 응답의 입력이 요청된 시간이 아닌 시점에서 입력된 것일 수 있다.
본 발명에 따르면, 사용자와 대화를 진행하면서 동시에 사용자 발화를 분석하여 사용자의 만족도를 산출할 수 있으므로, 대화 에이전트의 학습을 위해 별도로 사용자에게 입력을 요청하지 않고 대화에 집중할 수 있다.
또한 본 발명에 따르면, 사용자의 대화를 학습 데이터로 활용하므로 학습 데이터를 따로 수집하기 위해 필요한 비용과 시간을 줄일 수 있다.
도 1은 기존의 대화 서비스 장치의 구성도이다.
도 2는 한 실시예에 따른 대화 서비스 장치의 구성도이다.
도 3은 한 실시예에 따른 대화 생성 에이전트의 구성도이다.
도 4는 한 실시예에 따른 보상 계산부의 구성도이다.
도 5는 한 실시예에 따른 대화 서비스 장치가 사용자 발화에 대한 답변을 제공하는 방법의 흐름도이다.
도 6은 한 실시예에 따른 대화 서비스 장치가 강화 학습하는 방법의 흐름도이다.
도 7은 한 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 기존의 대화 서비스 장치의 구성도이다.
도 1을 참고하면, 기존의 대화 서비스 장치(10)는 사용자의 음성을 인식하여 텍스트로 변환하는 음성 인식부(11), 사용자 발화의 의도를 해석하는 발화 의도 해석부(12), 사용자 발화의 의도에 맞는 답변을 생성하는 대화 생성부(13), 생성된 답변 문장을 음성으로 합성하는 음성 합성부(14)를 포함한다.
기존의 대화 서비스 장치(10)는 사용자 발화 의도에 따라 대화 주제를 파악하고, 미리 저장된 답변 문장으로 구성된 데이터베이스를 검색하여 해당 대화에 가장 적절하다고 판단되는 답변을 선택한다. 적절한 답변을 선택하기 위해 최대 우도 추정(Maximum Likelihood Estimation) 등의 통계적 방법 또는 인공 신경망이 이용될 수 있다.
선택된 답변은 음성 합성 기술을 이용하여 스피커로 출력된다. 이후 시스템 발화에 대해 사용자가 다시 발화하면 위의 과정을 반복하며 대화가 진행된다. 대화의 주제 또는 시나리오는 사용자에 의해 선택될 수 있고, 대화 서비스 장치(10)가 적용되는 시스템에 따라 결정될 수 있다.
한 예로서 대화 서비스 장치(10)가 외국어 교육 서비스에 적용되는 경우, 대화 서비스 장치(10)는 사용자 음성을 인식하여 사용자의 발음을 평가할 수 있고, 사용자 발화가 해당 외국어의 문법에 맞는 표현인지 판단할 수 있다. 또한 문법에 맞지 않는 표현을 교정해 줄 수 있다.
그러나 기존의 대화 서비스 장치(10)는 사용자의 발화의 의도, 결정된 대화의 주제에만 맞는 문장을 선택하도록 학습되어 있을 뿐 사용자의 관심과 흥미를 유발할 수 있는 요소는 고려되지 않고 있다. 이하에서는 사용자의 지속적인 흥미를 유도하기 위해, 사용자의 만족도를 고려하여 강화 학습을 이용하는 방법에 대해 설명한다.
도 2는 한 실시예에 따른 대화 서비스 장치의 구성도이다.
도 2를 참고하면, 대화 서비스 장치(1000)는 사용자 발화를 분석하고 이에 대해 적합한 발화를 생성하여 제공하는 대화 생성 에이전트(100)와 제공한 시스템 발화에 대한 사용자의 평가를 보상 값으로 계산하여 대화 생성 에이전트(100)를 학습시키는 보상 계산부(200)를 포함한다.
설명을 위해, 대화 생성 에이전트(100), 보상 계산부(200)로 명명하여 부르나, 이들은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치이다. 여기서, 대화 생성 에이전트(100), 보상 계산부(200)는 하나의 컴퓨팅 장치에 구현되거나, 별도의 컴퓨팅 장치에 분산 구현될 수 있다. 별도의 컴퓨팅 장치에 분산 구현된 경우, 대화 생성 에이전트(100), 보상 계산부(200)는 통신 인터페이스를 통해 서로 통신할 수 있다. 컴퓨팅 장치는 본 발명을 수행하도록 작성된 소프트웨어 프로그램을 실행할 수 있는 장치이면 충분하고, 예를 들면, 서버, 랩탑 컴퓨터, 스마트 스피커 또는 모바일 단말 등일 수 있다.
대화 생성 에이전트(100), 보상 계산부(200) 각각은 하나의 인공지능 모델일 수 있고, 복수의 인공지능 모델로 구현될 수도 있다. 그리고 발화 의도 해석부(110), 분석부(120), 대화 생성부(130), 대화 길이 분석부(210), 사용자 평점 관리부(220), 사용자 반응 분석부(230)도 하나의 인공지능 모델일 수 있고, 복수의 인공지능 모델로 구현될 수도 있다. 대화 서비스 장치(1000)는 하나의 인공지능 모델일 수 있고, 복수의 인공지능 모델로 구현될 수도 있다. 이에 따라, 상술한 구성들에 대응하는 하나 또는 복수의 인공지능 모델은 하나 또는 복수의 컴퓨팅 장치에 의해 구현될 수 있다.
대화 생성 에이전트(100)는 사용자 발화를 입력받으면 자연어 처리를 통해 사용자 발화의 의도를 해석하고, 이에 대응되는 적절한 답변을 생성하여 제공한다. 예를 들어 발화의 의도와 발화의 상태정보에 따라 시스템 액션을 결정하고, 시스템 액션에 맞는 문장을 선택하여 제공한다. 시스템 액션이란 시스템이 답변으로서 출력하려는 자연어 발화를 요약한 표현으로서, 답변의 의도와 답변의 인자를 포함한다.
이때 대화 생성 에이전트(100)는 시스템 액션을 결정할 수 있다. 대화 생성 에이전트(100)의 자세한 구성은 도 3을 통해 설명한다.
한편 대화 생성 에이전트(100)로 입력되는 사용자 발화 또는 대화 생성 에이전트(100)가 출력하는 시스템 발화의 언어는 어느 하나로 제한되지 않는다.
보상 계산부(200)는 사용자 발화에 대해 자연스럽고 흥미를 유발할 수 있는 문장을 응답으로 제공하기 위한 보상값을 계산한다.
구체적으로, 보상 계산부(200)는 사용자의 발화를 분석하여 대화 서비스 장치(1000)가 제공하는 대화에 사용자가 흥미를 느끼는지를 수치로 나타낸다. 예를 들어, 사용자와의 대화가 얼마나 길게 이어졌는지, 사용자가 발화 중간에 웃거나 한숨을 쉬는 등의 표현을 했는지, 또는 사용자로부터 직접적으로 대화 서비스 장치(1000)가 제공한 대화에 대해 만족도를 평가받을 수 있다. 보상 계산부(200)의 자세한 구성은 도 4를 통해 설명한다.
도 3은 한 실시예에 따른 대화 생성 에이전트의 구성도이다.
도 3을 참고하면, 대화 생성 에이전트(100)는 발화 의도 해석부(110), 분석부(120), 대화 생성부(130)를 포함한다.
한편, 대화 서비스 장치(1000)는 사용자의 편의를 위해 가이드 역할을 하는 첫 문장을 생성하여 먼저 사용자에게 제공할 수 있다. 또한 대화 서비스 장치(1000)가 교육 서비스에 적용되는 경우, 첫 문장을 제시하여 사용자의 교육 효과를 높일 수도 있다.
대화를 주고받을 때, 대화 서비스 장치(1000) 또는 사용자가 발화하는 시간 간격을 한 턴이라고 할 수 있다. 대화 서비스 장치(1000) 또는 사용자는 각자의 발화 가능한 턴에서 한 문장 또는 복수의 문장들을 발화할 수 있다.
발화 의도 해석부(110)는 입력되는 사용자의 발화의 의도를 해석하여 분석부(120)와 대화 생성부(130)에 제공한다. 이때 사용자 발화는 자연어로 입력되므로, 어휘 분석(Parsing), 구문 분석(Syntactic Analysis), 의미 해석(Semantic Interpretation) 등의 공지된 자연어 처리 기술(Natural Language Processing)을 이용할 수 있다.
사용자 발화의 의도는 대화 서비스 장치(1000)가 적용되는 서비스에 따라 달라질 수 있고, 정보를 제공하는 "설명", 질문하며 정보를 요청하는 "질문" 등이 있을 수 있다. 한 예로서, “How's the weather today?”라는 사용자 발화의 의도를 정보를 요청하는 “질문”이라는 의도로 해석할 수 있다.
그리고 발화 의도 해석부(110)는 사용자 발화의 목적에 따라, 해당 목적을 달성하기 위해 필요한 정보를 추출할 수 있다. 예를 들어, "I lost my bag and scarf on the subway. "라는 발화는 사용자가 가방과 스카프를 지하철에서 잃어버렸다는 사실을 의미하지만, 발화의 구체적인 목적은 잃어버린 가방과 스카프를 찾아달라는 것을 의미한다.
따라서 발화 의도 해석부(110)는 가방과 스카프를 찾는다는 목적을 달성하기 위해 입력될 발화들로부터 가방과 스카프에 대한 정보가 포함된 부분을 추가로 추출할 수 있다.
한편 발화 의도 해석부(110)는 인공 신경망으로 구현될 수 있으며 신경망의 종류는 어느 하나에 한정되지 않는다. 한 예로서 LSTM(Long Short Term Memory)으로 구현될 수 있다. 한편 발화 의도 해석부(110)는 인코더(Encoder)라고 호칭될 수 있다.
분석부(120)는 발화 의도 해석부(110)로부터 사용자 발화에 대한 의도와, 사용자 발화에 대한 답변을 생성하기 위해 필요한 정보들을 제공받고, 해당 사용자 발화의 의도에 적절한 시스템 액션을 결정한다.
시스템 액션이란 시스템이 답변으로서 출력하려는 자연어 발화를 요약한 표현으로서, 답변의 의도와 답변의 인자를 포함한다.
답변의 의도는 생성하려는 답변의 술어부를 의미하고, 예를 들어 동의, 설명, 질문, 승낙, 부정 등일 수 있다. 답변의 인자는 답변이 속하는 주제를 의미하고, 예를 들어 날씨, 영화, 뉴스 등일 수 있다.
한편, 답변이 갖춰야 할 의도는 강화 학습을 활용한 인공 신경망을 이용하여 결정될 수 있다. 발화 의도 해석부(110)가 결정한 사용자 발화와 발화 의도 해석 결과를 이용하여, 시스템 액션을 결정한다. 이때 결정된 시스템 액션은 보상 값을 최대로 하는 것일 수 있다.
한 예로서, “How’s the weather today?”라는 사용자 발화에 대한 답변은 해당 질문의 답변을 포함해야 하며, 질의의 카테고리는 "날씨"이므로, 시스템 액션은 "설명_날씨"로 결정될 수 있다.
한편 분석부(120)는 인공 신경망으로 구현될 수 있으며 신경망의 종류는 어느 하나에 한정되지 않는다. 한 예로서 다층 신경망(Multi-layer Neural Network)으로 구현될 수 있다.
시스템 액션을 결정하는 분석부(120)는 강화 학습(Reinforcement Learning)으로 훈련되며, 일반적인 가치 함수(Value Function) 기반의 강화 학습 방법 또는 정책 경사법(Policy Gradient Method)을 이용할 수 있다. 이하에서는 강화 학습에 대해 설명한다.
강화 학습이란, 에이전트(Agent)와 환경(Environment)이 상호 작용할 때, 에이전트가 얻는 미래의 보상(Future Reward) 값을 최대로 하기 위한 학습 방법을 의미한다.
일반적으로 강화 학습은 에이전트가 상태(State) s일 때, 다음 행동(Action) a를 행하여 얻는 기대 보상(Expected Reward) R을 계산하는 가치 함수(Value Function)를 정확히 구하는 것이 목적이다. 가치 함수를 Q(s, a)로 표시할 수 있다. 가치 함수를 이용하여 계산된 보상값을 기반으로 정확한 다음 행동을 결정할 수 있다.
한편 정책 경사법은 가치 함수를 직접 구하지 않고, 특정 상황에서 특정 행동을 하도록 곧바로 정책을 결정하는 방법이다. 정책 함수는 π(s, a)로 표현될 수 있고, 보상 함수(Reward Function) J(θ)를 최적화하는 방향으로 학습된다.
한편 정책 함수를 구성하는 파라미터들을 구하기 위해, 심층 신경망을 이용하여 강화 학습법으로 훈련할 수 있다.
본 발명에서 분석부(120)가 결정해야 하는 시스템 액션은 답변의 의도와 답변이 속하는 카테고리의 조합으로서, 많은 경우의 수가 발생될 수 있다. 따라서 각 경우의 수마다 가치 함수를 구할 수 없으므로, 정책 경사법이 이용될 수 있다. 한 예로서, 보상 함수 J(θ)는 대화 턴마다 계산되는 보상 값의 감쇄 누적 평균값일 수 있다.
대화 생성부(130)는 발화 의도 해석부(110)에서 얻은 발화 의도와, 분석부(120)에서 결정된 시스템 액션에 따라 사용자 발화에 대한 적절한 답변을 생성한다. 구체적으로 대화 생성부(130)는 단어 데이터베이스(미도시)에서 직접 단어를 선택하여 적절한 문장을 생성할 수 있고 또는 문장 데이터베이스(미도시)에서 적절한 문장을 선택할 수 있다.
문장 데이터베이스는 대화 서비스 장치(1000)가 적용될 서비스별 도메인과 용도에 해당하는 문장들을 포함하고 있으며, 예를 들어, 국어 또는 외국어 교육을 위한 도메인과 수준별 교육용 회화 문장들을 포함할 수 있다. 또한, 문장 데이터베이스에 포함된 문장들은 (사용자 발화, 시스템 답변)의 문장쌍 집합으로 구성되며, 시스템 액션이 태깅된 형태일 수 있다.
구체적으로, 대화 생성부(130)는 문장 데이터베이스로부터 분석부(120)에서 결정된 시스템 액션에 해당하는 답변 후보를 복수개 추출한다. 이때 동일한 시스템 액션을 가진 문장들이 일정 개수를 초과하면 대화 생성부(130)가 복수개의 답변 후보 중에서 문장 데이터베이스의 문장쌍들을 비교하여 의미적 유사도가 가장 높은 답변을 출력할 수 있다.
한 예로서, 복수개의 답변 후보들의 문장과 일치하는 시스템 답변을 가진 문장들을 문장 데이터베이스에서 추출한다. 추출한 문장쌍들 중에서 직전 사용자 발화와 가장 의미적으로 유사한 사용자 발화에 해당하는 문장쌍의 시스템 답변을 최종 시스템 답변으로 결정할 수 있다.
문장 간 의미적 유사도를 계산하는 방법은 어느 하나로 제한되지 않고, 이미 공지된 것인바 자세한 설명을 생략하며, 예를 들어 분산 의미론(Distributional Semantics) 신경망 모델을 이용할 수 있다.
한편 단어 데이터베이스를 이용하여 직접 문장을 생성하는 경우, 대화 생성부(130)는 LSTM 등의 인공 신경망으로 구현될 수 있다.
따라서, 대화 서비스 장치(1000)와 사용자의 대화는 아래의 표 1과 같이 이루어질 수 있다. 한편 표 1에서는 외국어로 대화가 이루어지는 상황을 설명하였으나 반드시 이에 한정되는 것은 아니다.
턴 수 발화자 대화 시스템 액션
1번째 턴 장치 Good afternoon. How can I help you? 개시_help
2번째 턴 사용자 I lost my bag and scarf on the subway. 요청
3번째 턴 장치 I see. What does your bag look like? 질문 _bag
4번째 턴 사용자 It's a brown leather bag. 답변
5번째 턴 장치 How about the scarf? 질문_scarf
6번째 턴 사용자 It's pink and checkered. 답변
7번째 턴 장치 Hmm...wait a minute, please. Are these yours? 질문_these
8번째 턴 사용자 Oh! Yes, they're mine. Thank you very much. 감사
9번째 턴 장치 You're welcome. 종료_bye
도 4는 한 실시예에 따른 보상 계산부의 구성도이다.
도 4를 참고하면, 대화 서비스 장치(1000)가 사용자 발화에 대한 답변 발화를 생성하여 제공할 때마다, 보상 계산부(200)는 사용자 발화 및 사용자로부터 받은 평가를 바탕으로 보상 값을 계산한다. 한 예로서, 대화가 계속되는 상황에서 사용자가 발화할 때마다 이에 대한 보상 값을 계산한다.
다른 예로서, 보상 계산부(200)는 대화가 종료된 이후 대화 시작부터 종료시까지 발생한 사용자 발화 및 대화 종료 후 사용자로부터 받은 평가를 바탕으로 보상 값을 계산할 수 있다. 이때 대화는 사용자와 대화 서비스 장치(1000)가 주고 받는 대화의 턴(Turn) 수가 일정 값에 도달하는 경우 종료되거나, 사용자의 요청에 의해 종료될 수 있다.
또 다른 예로서, 소량의 사용자 발화를 이용하여 사용자 시뮬레이터를 생성하고, 시뮬레이터로 대량의 학습 데이터를 생성할 수 있다.
이하 본 명세서에서는 사용자가 발화하고, 사용자 발화에 대해 대화 서비스 장치(1000)가 대화를 생성할 때마다 보상 값이 계산되는 온라인 방식으로 학습되는 상황을 가정한다. 사용자 발화가 입력되는 주기 또는 대화 서비스 장치(1000)가 발화를 생성하는 주기를 대화의 한 턴(Turn)이라고 호칭한다.
보상 계산부(200)는 대화 서비스 장치(1000)가 출력한 발화가 사용자 발화에 대해 상황과 주제에 맞는지, 사용자가 의도한 목적에 맞는지, 자연스러운 표현인지, 사용자의 흥미를 유발하는지 등을 수치로 환산하여 보상 값을 계산한다. 여기에 사용자의 평가 점수를 추가로 고려할 수 있다. 그리고 보상 값을 대화 생성 에이전트(100)로 제공하여 강화 학습을 진행한다.
한편, 본 발명에서 보상 계산부(200)는 출력한 발화에 대한 사용자의 반응을 보상 값에 반영하므로, 대화 서비스 장치(1000)가 발화를 출력하고 이후 해당 발화에 대한 사용자의 피드백을 기반으로 보상 값을 계산할 것이다.
보상 계산부(200)는 대화 길이 분석부(210), 사용자 평점 관리부(220), 사용자 반응 분석부(230)를 포함하고, 대화 길이 분석부(210), 사용자 평점 관리부(220), 사용자 반응 분석부(230)에서 각각 계산된 점수를 바탕으로 대화 생성 에이전트(100)를 학습시킬 보상값을 계산한다.
대화 길이 분석부(210)는 대화의 시작부터 대화가 종료될 때까지의 사용자와 대화 서비스 장치(1000)가 주고받은 대화의 턴 수를 측정하여, 대화 턴 수가 클수록 높은 점수를 출력한다.
구체적으로, 주고받은 대화의 턴 수가 클수록 사용자와 대화 서비스 장치(1000)가 원활한 대화 진행을 한 것으로 간주할 수 있다. 구체적으로, 대화 서비스 장치(1000)가 처음 제공한 발화에 대해 사용자의 답변이 발생하면 1점을, 이후 대화가 계속되어 턴 수가 증가할수록 점수가 증가한다. 예를 들어, 대화 서비스 장치(1000)와 사용자 간의 대화가 3번의 턴 동안 진행되고 대화가 아직 종료되지 않은 경우는 1점일 것이다.
그리고 대화 서비스 장치(1000)는 대화가 정상 종료되면 5점을 출력할 수 있다. 대화가 정상 종료되는 경우는, 사용자의 의도를 달성한 경우, 대화 서비스 장치(1000)가 출력한 대화의 시스템 액션이 종료인 경우 또는 관리자가 설정한 턴 수를 초과하는 경우 사용자에게 종료를 제안하여 종료되는 경우일 수 있다.
한편 대화 서비스 장치(1000)가 제공한 발화에 대해 사용자가 답변하지 않고 임의로 대화를 종료한 경우에는 0점을 출력할 수 있다.
사용자 평점 관리부(220)는 대화가 종료된 후 사용자로부터 직접 제공된 대화가 만족스러웠는지에 대한 주관적인 평가 점수를 입력받을 수 있다. 구체적으로, 사용자 평점 관리부(220)는 사용자 또는 대화 서비스 장치(1000)가 특정 대화의 마지막 발화를 생성한 이후 사용자에게 평가 점수를 입력하는 인터페이스를 제공할 수 있다. 평가 점수는 1 내지 10 사이의 정수 값일 수 있으며, 이에 한정되는 것은 아니다.
한편, 사용자가 평가 점수를 입력하지 않는 경우, 대화가 계속 중인 경우 또는 대화가 정상 종료되지 않은 경우에 사용자 평점은 0점일 수 있다. 예를 들어, 대화 서비스 장치(1000)와 사용자 간의 대화가 3번의 턴 동안 진행되고 대화가 아직 종료되지 않은 경우는 0점일 것이다.
사용자 반응 분석부(230)는 사용자의 발화에 포함된 언어 표현을 제외하고 비언어적인 표현만을 추출하여 사용자의 감정을 분석하고, 대화 서비스 장치(1000)가 제공한 대화가 만족스러운지를 수치로 환산한다.
비언어적인 표현은 사용자 발화의 톤, 대화 중간에 사용자가 내뱉은 감탄사, 웃음 소리, 한숨 소리 등을 포함할 수 있다.
감정 분석을 위해 공지된 음성 기반의 감정 인식 기술(Emotion Classification)을 이용할 수 있으며, 예를 들어 Valence-arousal Model을 활용하여 사용자의 감정을 분석할 수 있다. 분석된 사용자 감정은 놀람, 화남, 기쁨, 보통으로 4개의 범주로 구분될 수 있다. 4개의 범주 각각에 해당하는 수치는 사용자 또는 관리자에 의해 미리 설정될 수 있고, 0 내지 10 사이의 실수값일 수 있다.
다른 예로서, 비언어적 표현들로부터 주파수, 진폭 등의 특징들을 추출하고, 각 특징마다의 만족도 점수를 직접 태깅하여 학습 데이터를 생성하고, 학습 데이터로 훈련된 알고리즘을 이용할 수 있다.
한편, 사용자 반응 분석부(230)가 만족도 점수를 얻기 위해 비언어적 표현뿐만 아니라 언어적 표현도 사용할 수 있다. 예를 들어, 사용자 발화를 입력받는 턴이 아닌 시간에 입력된 사용자의 발화로부터 STT(Speech-to-Text)를 이용하여 해당 발화의 내용을 분석하고, 이에 따라 만족도를 계산할 수 있다. 이렇게 얻은 수치와 비언어적 표현으로 얻은 수치를 합산하여 만족도 점수를 계산할 수 있다.
보상 계산부(200)는 대화 길이 분석부(210), 사용자 평점 관리부(220), 사용자 반응 분석부(230)로부터 얻은 수치를 이용하여 대화 생성 에이전트(100)를 학습시킬 보상값을 다음 수학식 1과 같이 계산할 수 있다.
Figure pat00001
t는 대화의 턴 수, Rt는 t번째 턴에서의 보상 값, Rt,Length는 t번째 턴에서 대화 길이 분석부(210)가 계산한 점수, Rt,User Score는 t번째 턴에서 사용자 평점 관리부(220)가 계산한 점수, Rt,User Reaction는 t번째 턴에서 사용자 반응 분석부(230)가 계산한 점수를 의미하고, μ1, μ2, μ3는 가중치이다. μ1, μ2, μ3는 대화 서비스 장치(1000)의 관리자에 의해 결정되거나 별도의 훈련 데이터들에 의해 계산될 수 있다.
보상 계산부(200)는 계산된 Rt를 대화 생성 에이전트(100)에 제공하고, 대화 생성 에이전트(100)는 강화 학습 훈련 알고리즘을 이용하여 보상함수 J(θ)를 최적화시키기 위해 파라미터 θ를 업데이트한다.
구체적으로, 강화 학습에서 궁극적으로 구하고자 하는 것은 다음 행동, 즉 사용자의 발화에 대한 응답이다. 사용자 발화에 대한 의미해석 결과, 대화 서비스 장치(1000)는 대화의 상태 s를 결정하고, 보상 값이 가장 큰 답변을 제공하는 정책 함수 π(a|s, θ)는 다음 수학식 2와 같이 정의될 수 있다.
Figure pat00002
수학식 2에서, a는 사용자 발화에 대한 출력으로서 다음 턴에 제공해야 하는 시스템 액션을 의미하고, s는 대화 상태를 의미하고, θ는 정책 파라미터를 의미한다.
즉, 사용자 발화의 상태 s에 대해 다음 답변의 시스템 액션이 a로 결정되는 정책은, t번째 턴일 때의 대화 상태가 St이고, 정책 파라미터가 θt일때의 확률로 정의된다.
시스템 액션을 결정하는 정책은 Parametrized 방법으로 결정될 수 있고, 강화 학습이 진행되면서 정책 파라미터 θt를 구하는 문제로 귀결된다. θt는 심층 신경망에서 학습 데이터에 의해 최적화 방법으로 결정될 수 있다. 한편 t+1번째 턴에서의 정책 파라미터 θt+1은 다음 수학식 3에 의해 업데이트될 수 있다.
Figure pat00003
수학식 3에서, θt+1은 t+1번째 턴에서의 정책 파라미터를 의미하고, α는 스텝 크기를 의미하고, E[∇J(θt)]는 성능 측정 함수 J(θt)의 그라디언트(Gradient) 값을 의미한다. E[∇J(θt)]는 통계적으로 추정된 값일 수 있다.
도 5는 한 실시예에 따른 대화 서비스 장치가 사용자 발화에 대한 답변을 제공하는 방법의 흐름도이다.
도 5를 참고하면, 대화 서비스 장치(1000)는 대화 생성 에이전트(100)를 구성하는 신경망들의 파라미터들을 결정하기 위해, 대화 생성 에이전트(100)를 초기 학습시킨다(S110). 파라미터들은 발화 의도 해석부(110), 분석부(120), 대화 생성부(130)를 구현하는 인공 신경망의 가중치(Weight) 값일 수 있다.
초기 학습을 위해 실제 사용자의 발화를 이용하여 강화 학습을 진행하거나 또는 미리 수집한 대량의 학습 데이터를 이용하여 지도 학습(Supervised Learning)을 진행할 수 있다. 전자는 일반적인 Q-Learning 방법에 해당하며 후자는 도 2를 통해 설명한 정책 경사법에 해당한다.
Q-Learning 방법에 의하면, 실제 사용자가 대화 생성 에이전트(100)와 상호 작용하고, 사용자의 피드백에 따라 보상 값을 계산하며 학습이 진행되므로 많은 양의 학습 데이터를 구축하기 위해 큰 비용이 요구된다.
따라서 본 명세서에서는 오프라인으로 미리 수집한 데이터를 이용하여, 지도 학습을 통해 대화 생성 에이전트(100)의 초기 파라미터 값을 결정한다. 이때 미리 수집된 사용자와 대화 서비스 장치(1000) 간 대화들을 이용할 수 있다.
초기화 된 이후 대화 생성 에이전트(100)는 사용자의 피드백에 따라 강화 학습을 진행한다. 이에 따르면 적은 양의 강화 학습 데이터만으로도 학습 효과를 얻을 수 있다.
초기 학습이 완료된 후, 대화 서비스 장치(1000)는 사용자 발화를 입력받는다(S120).
대화 서비스 장치(1000)는 사용자 발화의 의도를 해석하고, 사용자 발화로부터 해당 발화의 목적을 달성하기 위해 필요한 정보들을 추출한다(S130). 발화의 의도를 해석하고 목적 달성을 위해 필요한 정보들을 추출하는 방법은 도 3에서 설명한 바와 같다.
대화 서비스 장치(1000)는 추출한 사용자 발화의 의도, 목적 달성을 위해 필요한 정보들을 바탕으로 답변 문장의 특성을 결정한다(S140). 답변 문장의 특성이란 사용자 발화에 대한 답변이 가져야 하는 의도와 해당 답변이 속해야 하는 카테고리를 의미한다. 이를 시스템 액션이라 호칭할 수 있다.
대화 서비스 장치(1000)는 S130 단계에서 추출한 사용자 발화 의도와 S140 단계에서 결정된 시스템 액션을 기반으로 사용자 발화에 대한 답변을 생성하여 음성으로 출력한다(S150). 예를 들어 대화 생성부(130)는 문장 데이터베이스로부터 답변 문장을 선택하여 제공할 수 있다.
도 6은 한 실시예에 따른 대화 서비스 장치가 강화 학습하는 방법의 흐름도이다.
도 6을 참고하면, 대화 서비스 장치(1000)는 제공된 시스템 발화에 대한 사용자의 평가 점수를 획득한다(S210).
대화 서비스 장치(1000)는 입력된 사용자 발화로부터 감탄사, 한숨, 웃음 소리 등의 비언어적 표현을 추출하고 사용자의 감정을 분석하여 만족도를 수치로 계산한다(S220).
구체적으로, 스마트 스피커가 동작하는 모드는 사용자 발화를 입력받는 명령어 모드와 호출어 모드로 구분될 수 있다. 명령어 모드는 대화를 진행하며 발화되는 문장을 인식하기 위한 모드일 수 있고, 호출어 모드는 명령어 모드를 제외한 나머지 구간을 의미할 수 있다. 이때 대화 서비스 장치(1000)는 호출어 모드에서 입력된 신호에서 비언어적 표현을 추출할 수 있다.
대화 서비스 장치(1000)는 사용자와 대화 서비스 장치(1000)가 주고받은 대화의 길이, 사용자의 평가 점수, S220 단계에서 계산된 만족도 점수로 보상 값을 계산한다(S230). 보상 값을 계산하는 방법은 도 3을 통해 설명한 바와 같다.
대화 서비스 장치(1000)는 대화 생성 에이전트(100)에 보상 값을 제공하고, 강화 학습시킨다(S240).
도 7은 한 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
도 7을 참고하면, 대화 생성 에이전트(100), 보상 계산부(200)는 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(300)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다.
컴퓨팅 장치(300)의 하드웨어는 적어도 하나의 프로세서(310), 메모리(320), 스토리지(330), 통신 인터페이스(340)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(300)는 프로그램을 구동할 수 있는 운영 체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(310)는 컴퓨팅 장치(300)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서(310)일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 메모리(320)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(310)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(320)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(330)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다. 통신 인터페이스(340)는 유/무선 통신 모듈일 수 있다.
본 발명에 따르면, 사용자와 대화를 진행하면서 동시에 사용자 발화를 분석하여 사용자의 만족도를 산출할 수 있으므로, 대화 에이전트의 학습을 위해 별도로 사용자에게 입력을 요청하지 않고 대화에 집중할 수 있다.
또한 본 발명에 따르면, 사용자의 대화를 학습 데이터로 활용하므로 학습 데이터를 따로 수집하기 위해 필요한 비용과 시간을 줄일 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (13)

  1. 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서,
    대화 에이전트로 사용자 발화를 입력하고, 상기 대화 에이전트에 의해 결정된 답변 문장을 음성으로 출력하는 단계,
    상기 답변 문장에 대한 사용자 응답으로부터 추출된 비언어적 표현의 음성 특성을 분석하고, 상기 음성 특성으로부터 상기 답변 문장에 대한 긍정적 또는 부정적 감정을 추출하는 단계, 그리고
    추출된 감정에 따라 계산된 상기 답변 문장에 대한 만족도가 클수록 상기 대화 에이전트에 높은 보상 값을 제공하여 상기 대화 에이전트를 강화 학습시키는 단계를 포함하고,
    상기 대화 에이전트는 상기 사용자 발화의 발화 의도와 주제를 추출하고, 상기 발화 의도와 주제에 부합하는 상기 답변 문장을 결정하도록 학습된 모델인, 동작 방법.
  2. 제1항에서,
    일련의 대화를 포함한 학습 데이터를 이용하여 상기 대화 에이전트의 파라미터 값들을 결정하도록 상기 대화 에이전트를 초기 학습시키는 단계
    를 더 포함하는, 동작 방법.
  3. 제2항에서,
    상기 학습 데이터는,
    수집된 복수의 사용자 발화 문장들 또는 상기 발화 문장들을 시뮬레이션 하여 생성된 유사 문장들 중 적어도 어느 하나를 포함하는, 동작 방법.
  4. 제1항에서,
    상기 출력하는 단계는,
    단어 데이터베이스에 저장된 단어들을 조합하여 상기 답변 문장을 생성하거나, 문장 데이터베이스에 저장된 문장들 중에서 상기 답변 문장을 선택하는, 동작 방법.
  5. 제4항에서,
    상기 단어 데이터베이스 또는 상기 문장 데이터베이스는 상기 사용자 발화의 언어와 수준에 해당하는 단어 또는 문장들을 각각 포함하는, 동작 방법.
  6. 제1항에서,
    상기 강화 학습시키는 단계는,
    상기 대화 에이전트와의 대화가 종료된 이후, 상기 대화 에이전트가 사용자와 주고받은 대화의 턴(Turn) 수를 결합하여 상기 보상 값을 계산하고,
    상기 보상 값은 상기 대화의 턴 수가 클수록 큰 값인, 동작 방법.
  7. 제6항에서,
    상기 강화 학습시키는 단계는,
    대화 종료 요청을 입력받거나 미리 정한 턴 수에 도달하면 대화가 종료되는, 동작 방법.
  8. 컴퓨팅 장치로서,
    메모리, 그리고
    상기 메모리에 로드된 프로그램의 명령들(instructions)을 실행하는 적어도 하나의 프로세서를 포함하고,
    상기 프로그램은
    학습된 대화 에이전트로 사용자 발화를 입력하고, 상기 대화 에이전트에 의해 결정된 답변 문장을 음성으로 출력하는 단계,
    대화 종료 후, 상기 대화 에이전트가 상기 사용자와 주고받은 대화의 턴(Turn) 수와 상기 대화가 종료되기 전까지 출력된 복수의 답변 문장들에 대한 상기 사용자의 긍정 또는 부정의 감정을 기초로 만족도를 계산하는 단계, 그리고
    상기 만족도가 클수록 상기 대화 에이전트에 높은 보상 값을 제공하여 상기 대화 에이전트를 강화 학습시키는 단계
    를 실행하도록 기술된 명령들을 포함하는, 컴퓨팅 장치.
  9. 제8항에서,
    상기 대화 에이전트는,
    복수의 사용자 발화들로 구성된 학습 데이터로 지도 학습되거나 또는 사용자와의 반복 대화를 통해 강화 학습된 것인, 컴퓨팅 장치.
  10. 제8항에서,
    상기 계산하는 단계는,
    상기 답변 문장들에 대한 평가 점수를 입력받고,
    상기 만족도는 상기 평가 점수가 클수록 높은 값인, 컴퓨팅 장치.
  11. 제8항에서,
    상기 강화 학습시키는 단계는,
    상기 답변 문장들에 대한 사용자 응답으로부터 비언어적 표현을 추출하고, 상기 비언어적 표현에 상기 사용자의 감정을 대응시키고, 상기 감정이 상기 답변 문장들에 대한 긍정적 평가인지 또는 부정적 평가인지를 판단하고,
    상기 만족도는, 상기 감정이 상기 답변 문장에 대한 긍정적 평가에 해당할수록 높은 값인, 컴퓨팅 장치.
  12. 제11항에서,
    상기 비언어적 표현은 상기 사용자의 목소리 톤(Tone), 감탄사, 웃음 소리 또는 한숨 소리 중 적어도 하나를 포함하는, 컴퓨팅 장치.
  13. 제11항에서,
    상기 사용자 응답은 상기 사용자 응답의 입력이 요청된 시간이 아닌 시점에서 입력된 것인, 컴퓨팅 장치.
KR1020200040785A 2020-04-03 2020-04-03 사용자 피드백 기반 대화 서비스 제공 방법 및 장치 KR20210123545A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200040785A KR20210123545A (ko) 2020-04-03 2020-04-03 사용자 피드백 기반 대화 서비스 제공 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200040785A KR20210123545A (ko) 2020-04-03 2020-04-03 사용자 피드백 기반 대화 서비스 제공 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210123545A true KR20210123545A (ko) 2021-10-14

Family

ID=78151476

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200040785A KR20210123545A (ko) 2020-04-03 2020-04-03 사용자 피드백 기반 대화 서비스 제공 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210123545A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407055B1 (ko) * 2021-12-30 2022-06-08 오정섭 음성인식 후 자연어 처리를 통한 대화 품질지수 측정장치 및 그 방법
KR20220089972A (ko) * 2020-12-22 2022-06-29 한국전자인증 주식회사 대화 예측을 이용한 대화 에이전트 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220089972A (ko) * 2020-12-22 2022-06-29 한국전자인증 주식회사 대화 예측을 이용한 대화 에이전트 시스템 및 방법
KR102407055B1 (ko) * 2021-12-30 2022-06-08 오정섭 음성인식 후 자연어 처리를 통한 대화 품질지수 측정장치 및 그 방법

Similar Documents

Publication Publication Date Title
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
US11222627B1 (en) Exploring ASR-free end-to-end modeling to improve spoken language understanding in a cloud-based dialog system
CN111312245B (zh) 一种语音应答方法、装置和存储介质
CN113205817B (zh) 语音语义识别方法、系统、设备及介质
KR100563365B1 (ko) 계층적 언어 모델
Merdivan et al. Dialogue systems for intelligent human computer interactions
CN115641543B (zh) 一种多模态抑郁情绪识别方法及装置
KR20210070213A (ko) 음성 사용자 인터페이스
CN109313892A (zh) 稳健的语言识别方法和系统
KR20150065523A (ko) 상담 정보를 이용하여 상담 대화를 제공하는 방법 및 장치
KR20210123545A (ko) 사용자 피드백 기반 대화 서비스 제공 방법 및 장치
CN110853669A (zh) 音频识别方法、装置及设备
US11615787B2 (en) Dialogue system and method of controlling the same
US11741945B1 (en) Adaptive virtual assistant attributes
CN113393841A (zh) 语音识别模型的训练方法、装置、设备及存储介质
CN113763925B (zh) 语音识别方法、装置、计算机设备及存储介质
CN114372476A (zh) 语义截断检测方法、装置、设备和计算机可读存储介质
Furui Toward the ultimate synthesis/recognition system
KR102551296B1 (ko) 외국어 말하기 학습을 위한 대화 장치 및 그 방법
CN115186083B (zh) 一种数据处理方法、装置、服务器、存储介质及产品
JP7146038B2 (ja) 音声認識システム及び方法
KR20190106011A (ko) 대화 시스템 및 그 방법, 그 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램
KR102604277B1 (ko) 다자간 통화의 화자분리 stt를 이용한 복합 감정 분석 방법 및 이를 실행하는 시스템
US20220101840A1 (en) Assessment of the quality of a communication session over a telecommunication network
Ruede Backchannel prediction for conversational speech using recurrent neural networks

Legal Events

Date Code Title Description
A201 Request for examination