KR102059015B1 - 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법 - Google Patents

인공 지능 기반의 대화 시스템 및 그 응답 제어 방법 Download PDF

Info

Publication number
KR102059015B1
KR102059015B1 KR1020170158345A KR20170158345A KR102059015B1 KR 102059015 B1 KR102059015 B1 KR 102059015B1 KR 1020170158345 A KR1020170158345 A KR 1020170158345A KR 20170158345 A KR20170158345 A KR 20170158345A KR 102059015 B1 KR102059015 B1 KR 102059015B1
Authority
KR
South Korea
Prior art keywords
response
similarity
chunk
encoding
input message
Prior art date
Application number
KR1020170158345A
Other languages
English (en)
Other versions
KR20190060285A (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 KR1020170158345A priority Critical patent/KR102059015B1/ko
Publication of KR20190060285A publication Critical patent/KR20190060285A/ko
Application granted granted Critical
Publication of KR102059015B1 publication Critical patent/KR102059015B1/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
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

인공 지능 기반의 대화 시스템에서 응답 제어 방법은, 입력 메시지가 응답이 필요한 질문인지 결정하는 대화 인식 단계와, 상기 대화 인식에 기반하여 상기 입력 메시지에 대한 응답을 생성하는 단계와, 대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도를 평가하는 단계와, 상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계를 포함한다.

Description

인공 지능 기반의 대화 시스템 및 그 응답 제어 방법{ARTIFICIAL INTELLIGENCE BASED DIALOG SYSTEM AND RESPONSE CONTROL METHOD THEREOF}
본 발명은 인공 지능 기반의 대화 시스템 및 그의 응답 제어 방법에 관한 것으로, 더욱 상세하게는 입력 메시지에 대해 생성된 응답 메시지 쌍의 유사도 평가 피드백에 기반하여 적절한 응답 메시지 제공을 가능하게 하기 위한 대화 시스템 및 응답 제어 방법에 관한 것이다.
기술의 발전에 따라, 인간이 수행하던 육체 노동의 많은 부분이 기계 장치에 의해 대체되어 왔다. 최근에는 인공 지능 기술 발전으로 인간의 정신적인 영역으로 여겨지는 많은 분야가 인공 지능에 의해 대체될 수 있을 것으로 예상되고 있다.
특히, 인간의 언어를 인지하고 분석하여 인간과 구별이 어려울 정도로 적절한 대답을 내어 놓는 인공 지능 대화 시스템에 대한 연구가 활발하게 진행되고 있다. 이를 위해, 머신 러닝(Machine Learning) 기법을 활용한 인공 지능 대화 시스템이 논의되고 있다.
머신 러닝이란 많은 데이터를 분류 및 패턴화하고, 계속된 입력 데이터를 통해 이러한 분류 및 패턴화를 변경/수정해 나가는 방법을 통해 분류의 정확도를 높여가는 기법이다. 데이터를 분류하기 위한 머신 러닝의 알고리즘 중 하나로 인간의 두뇌에서 뉴런의 동작 원리에 기초한 신경망(Neural Network) 알고리즘이 특히 주목 받고 있다.
이러한 신경망 알고리즘을 활용하더라도, 종래의 인공 지능 대화 시스템은 질문과 동떨어진 응답 또는 평이한 응답을 생성하거나 반복적인 응답을 생성할 수 있고, 미리 학습하지 못한 질문에 대해서는 적절한 응답을 찾을 수 없는 경우가 있었다.
본 발명은 입력된 메시지에 대해 보다 정확도가 높은 응답을 생성하기 위해, 입력 메시지에 대해 생성된 응답 메시지 쌍의 유사도 평가에 기반하여 적절한 응답 메시지를 도출하는 대화 시스템 및 그 응답 제어 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여, 본 발명의 일 측면에 따르면, 인공 지능 기반의 대화 시스템에서 응답 제어 방법으로서, 입력 메시지가 응답이 필요한 질문인지 판단하는 대화 인식 단계와, 상기 대화 인식에 기반하여 상기 입력 메시지에 대한 응답을 생성하는 단계와, 대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도를 평가하는 단계와, 상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계를 포함하는 방법이 제공된다.
본 발명의 일 실시 예에 따르면, 상기 입력 메시지에 대한 응답을 생성하는 단계는, 상기 입력 메시지가 질문 형태인 경우, 상기 입력 메시지에 대한 응답을 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 입력 메시지가 질문 형태가 아닌 경우, 상기 응답 메시지 출력 없이 상기 입력 메시지를 대화 이력 DB에 저장하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 유사도를 평가하는 단계는, 상기 입력 메시지와 상기 응답 중 적어도 하나를 복수개의 chunk로 분리하는 단계와, 상기 대화 이력에 기반하여, 상기 입력 메시지와 상기 응답에 대해 상기 복수개의 chunk 각각에 대한 단어-레벨 RNN 인코딩을 수행하는 단계와, 상기 단어-레벨 RNN 인코딩에 기반하여 chunk-레벨 RNN 인코딩을 수행하는 단계와, 상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 유사도를 산출하는 단계는, 상기 입력 메시지와 상기 응답 중 적어도 하나에 대한 상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 토픽 정보를 추가하여 인코딩된 벡터를 산출하는 단계와, 상기 토픽 정보가 추가 인코딩된 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 유사도를 평가하는 단계는, 상기 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는지 결정하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계는, 상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는 경우, 상기 생성된 응답을 상기 입력 메시지에 대한 응답 메시지로 출력하고, 상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치 이하인 경우, 상기 입력 메시지에 대한 응답을 다시 생성하고 유사도 평가를 반복하여, 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는 응답을 상기 입력 메시지에 대한 응답 메시지로 출력하는 단계를 포함할 수 있다.
본 발명의 다른 측면에 따르면, 인공 지능 기반의 대화 시스템으로서, 입력 메시지가 응답이 필요한 질문인지 판단하는 대화 인식 모듈과, 상기 결정에 기반하여 상기 입력 메시지에 대한 응답을 생성하는 응답 생성 모듈과, 대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도를 평가하고, 상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하도록 제어하는 응답 평가 모듈을 포함하는 대화 시스템이 제공된다.
본 발명의 일 실시 예에 따르면, 상기 응답 생성 모듈은, 상기 입력 메시지가 질문 형태인 경우, 상기 입력 메시지에 대한 응답을 생성할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 대화 인식 모듈은, 상기 입력 메시지가 질문 형태가 아닌 경우, 상기 응답 메시지 출력 없이 상기 입력 메시지를 대화 이력 DB에 저장할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 응답 평가 모듈은, 상기 입력 메시지와 상기 응답 중 적어도 하나를 복수개의 chunk로 분리하고, 상기 대화 이력에 기반하여, 상기 입력 메시지와 상기 응답에 대해 상기 복수개의 chunk 각각에 대한 단어-레벨 RNN 인코딩을 수행하고, 상기 단어-레벨 RNN 인코딩에 기반하여 chunk-레벨 RNN 인코딩을 수행하고, 상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 응답 평가 모듈은, 상기 입력 메시지와 상기 응답 중 적어도 하나에 대한 상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 토픽 정보를 추가하여 인코딩된 벡터를 산출하고, 상기 토픽 정보가 추가 인코딩된 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 응답 평가 모듈은, 상기 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는지 결정할 수 있다.
본 발명의 일 실시 예에 따르면, 상기 응답 평가 모듈은, 상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는 경우, 상기 생성된 응답을 상기 입력메시지에 대한 응답 메시지로 출력하고, 상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치 이하인 경우, 상기 입력 메시지에 대한 응답을 다시 생성하도록 상기 응답 생성 모듈로 피드백하고, 유사도 평가를 반복하여, 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는 응답을 상기 입력 메시지에 대한 응답 메시지로 출력할 수 있다.
본 발명의 다른 일 측면에 따르면, 명령들을 저장하고 있는 저장 매체로서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 단계를 수행하도록 설정된 것으로서, 상기 적어도 하나의 단계는, 입력 메시지가 응답이 필요한 질문인지 결정하는 대화 인식 단계와, 상기 대화 인식에 기반하여 상기 입력 메시지에 대한 응답을 생성하는 단계와, 대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도를 평가하는 단계와, 상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계를 포함하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 저장 매체가 제공된다.
본 발명의 다양한 실시 예들에 따른 대화 시스템 및 응답 제어 방법은, 입력되는 메시지에 대해 상황에 강인한 응답을 생성할 수 있고, 신경망 알고리즘을 이용하여 응답의 정확도를 향상시킬 수 있게 한다. 또한, 특정 분야의 전문 지식이 필요한 대화인 경우에도 응답의 정확도를 확률적으로 예측하고 보다 신뢰도 높은 응답을 제공할 수 있다. 이를 통해, 인간의 관여 없이도 정확도 높은 인공 지능 기반 대화를 가능하게 한다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 인공 지능 기반의 대화 시스템을 도시한다.
도 2는 본 발명의 일 실시 예에 따른 응답 정확도 평가에 기반한 대화 시스템의 응답 생성 과정을 도시한다.
도 3은 본 발명의 일 실시 예에 따른 유사도 평가에 기반하여 정확도 높은 응답을 출력하기 위한 구체적 과정을 도시한다.
도 4는 본 발명의 일 실시 예에 따른 질문과 응답 사이의 유사도를 산출하는 흐름도를 도시한다.
도 5는 본 발명의 일 실시 예에 따른 대화 내 잠재된 토픽(latent topic) 정보에 기반하여 질문과 응답 사이의 유사도를 산출하는 흐름도를 도시한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.
이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.
도 1은 본 발명의 일 실시 예에 따른 인공 지능 기반의 대화 시스템(100)을 도시한다.
도 1을 참고하면, 본 발명의 일 실시 예에 따른 대화 시스템(100)은 대화 인식 모듈(110), 응답 생성 모듈(120), 응답 평가 모듈(130) 및 대화 이력 DB(database)(140)를 포함한다. 예를 들어, 대화 시스템(100)은 사용자의 메시지(101)를 입력 받고, 대화 시스템(100)의 복수의 모듈을 통해 적절한 답변을 생성하여 응답(103)을 출력할 수 있다.
대화 인식 모듈(110)은 입력 받은 메시지(101)가 응답 생성 대상 메시지인지 여부를 확인한다. 예를 들어, 대화 인식 모듈(110)은 사용자의 입력 메시지(101)가 응답이 필요한 질문인지 여부를 메시지 분석을 통해 판단할 수 있다. 이를 위해 자연어 처리의 많은 기법들이 사용될 수 있다. 일 실시 예에 따라, 대화 인식 모듈(110)은 메시지(101)가 응답이 필요한 질문으로 판단한 경우 응답 생성 모듈(120)로 메시지(101)를 전달하고, 응답이 필요 없는 것으로 판단한 경우 대화 이력 DB(140)에 저장하는 작업만 수행하도록 제어할 수 있다.
응답 생성 모듈(120)은 전달 받은 메시지(101)에 대해 적절한 응답을 생성한다. 일 실시 예에 따라, 응답 생성 모듈(120)은 신경망 알고리즘의 Generative Model 학습을 통해 메시지(101)에 대해 적절한 응답을 생성할 수 있다. 응답 생성 모듈(120)은 대화 이력 DB(140)로부터의 이력 데이터를 더 고려하여 현재 시점에서 적절한 응답을 생성할 수 있다. 또한, 응답 생성 모듈(120)은 응답 평가 모듈(130)로부터의 피드백에 기반하여 메시지(101)에 대한 다른 응답을 반복하여 생성할 수 있다.
응답 평가 모듈(130)은 응답 생성 모듈(120)에서 생성된 응답의 정확도를 평가할 수 있다. 응답 평가 모듈(130)은 응답 생성 모듈(120)에서 생성한 응답을 출력하기 전에, 메시지(101)에 대한 유사도에 기반하여 적절한 응답인지 평가할 수 있다. 일 실시 예에 따라, 대화 이력 DB(140)로부터의 이력 데이터에 기반하여 RNN(Recurrent Neural Network) 방식으로 인코딩된 메시지(101) 및 응답의 유사도가 산출될 수 있다. 다른 실시 예에 따라, RNN으로 인코딩된 메시지(101) 및 응답 중 적어도 하나에 관련분야 토픽 정보를 추가로 고려하여 유사도가 산출될 수 있다. 응답 평가 모듈(130)은 산출된 유사도에 따른 응답 평가 결과를 응답 생성 모듈(120)에 피드백할 수 있다.
일 실시 예에 따라, 응답 평가 모듈(130)은 산출된 유사도를 미리 설정된 임계치와 비교하여 임계치보다 큰 값을 가지는 경우 응답(103)을 출력하고, 임계치 이하 값을 가지는 경우에 평가 결과를 응답 생성 모듈(120)에 피드백하여 새로운 응답을 생성하게 제어할 수 있다. 다른 실시 예에 따라, 응답 평가 모듈(130)은 산출된 유사도를 응답 생성 모듈(120)로 피드백하고, 응답 생성 모듈(120)이 피드백된 유사도를 미리 설정된 임계치와 비교할 수 있다. 이 때, 응답 생성 모듈(120)은 피드백된 유사도가 미리 설정된 임계치보다 큰 값을 가지는 경우 응답(103)을 출력하고, 임계치 이하 값을 가지는 경우에 새로운 응답을 생성하여 응답 평가 모듈(130)로 다시 전달할 수 있다.
대화 이력 DB(140)는 통합하여 관리되는 입력 메시지와 응답 데이터의 집합이다. 대화 이력 DB(140)는 대화 인식 모듈(110), 응답 생성 모듈(120) 및 응답 평가 모듈(130)이 물리적 직접 연결 또는 유/무선 네트워크를 통해 액세스(access)할 수 있는 저장 장치에 수록된 데이터의 집합일 수 있다.
본 발명의 일 실시 예에 따른 대화 시스템(100)은 사용자의 메시지(101) 입력에 대해 응답(103)을 출력하도록 전자 장치 상에 어플리케이션(application) 등의 형태로 구현될 수 있다. 이 때, 대화 인식 모듈(110), 응답 생성 모듈(120) 및 응답 평가 모듈(130) 모두 상기 전자 장치에서 실행될 수 있고, 이들 중 적어도 하나는 상기 전자 장치의 외부 기기에서 실행될 수도 있다. 상기 모듈들 간의 데이터 송수신은 물리적 직접 연결 또는 유/무선 통신 네트워크를 통해 이루어질 수 있다. 대화 인식 모듈(110), 응답 생성 모듈(120) 및 응답 평가 모듈(130)의 동작들은 하나 이상의 프로세서(processor)에 의해 제어될 수 있다. 즉, 대화 인식 모듈(110), 응답 생성 모듈(120) 및 응답 평가 모듈(130)의 동작들이 컴퓨터 프로그램의 형태로 하나 이상의 저장 매체에 저장되어, 하나 이상의 프로세서에 의해 실행되도록 제어될 수 있다. 예를 들어, 상기 전자 장치는 스마트폰, 태블릿(tablet) PC(personal computer), 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑(desktop) PC, 랩탑(laptop) PC, 넷북(netbook) 컴퓨터, 워크스테이션(workstation), 서버(server), PDA(personal digital assistant), 미디어 박스, 게임 콘솔, 전자 사전 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(HMD, head-mounted-device), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형 회로(implantable circuit) 중 적어도 하나를 포함할 수 있다. 다양한 실시예들에서, 상기 전자 장치는 플렉서블(flexible)하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 다만, 상기 전자 장치는 전술한 기기들에 한정되지 않는다.
본 발명의 일 실시 예에 따른 대화 시스템(100)은 메시지(101)를 입력 받고 응답(103)을 출력하는 입/출력 장치(미도시)를 더 포함할 수 있다. 입/출력 장치는, 예를 들면, 사용자 또는 외부 기기로부터 명령 또는 데이터를 입력 받거나, 또는 대화 시스템(100)의 처리 결과 데이터를 출력할 수 있다. 예를 들어, 입력 장치는 터치 패널, 키보드, 마우스, 펜 센서, 마이크 등을 포함할 수 있고, 출력 장치는 디스플레이, 오디오 등을 포함할 수 있다.
본 발명은 입력 메시지에 대해 적절한 응답을 출력하기 위한 대화 시스템의 응답 제어 방법에 대해 구체적으로 설명한다. 특히, 생성된 응답이 적절한지 평가하기 위해 입력 메시지와 응답 간의 유사도를 산출하여 평가하는 방법을 제안한다. 이하, 도 2 내지 도 5는 유사도 평가에 기반하여 응답을 출력하는 대화 시스템(100)의 동작 과정을 설명의 편의를 위해 Generative Model에 기반하여 설명하나, 이에 한정되는 것은 아니다.
주어진 메시지에 대해 응답을 생성하는 종래의 인공 지능 기술은 크게 두 가지 기술이 있다. 먼저, Generative Model은 특정 데이터를 가지고 딥러닝(deep learning) 방식을 이용하여 입력 메시지에 대한 응답을 생성하는 모델을 학습하는 방식이다. Generative Model은 어떤 메시지에 대해서도 응답을 생성할 수 있는 적응력이 뛰어난 대화 시스템을 제공할 수 있으나, 사용자가 의도한 문맥을 이해하지 못한 응답을 생성하거나 평이한 응답, 반복적인 응답을 생성할 가능성이 있다. 다른 방법으로, Retrieval Model은 주어진 메시지-응답 쌍에 대한 데이터에서 입력 메시지에 가장 적합한 응답을 검색한 후 가장 연관성이 높은 응답을 제공하는 모델을 학습하는 방식이다. Retrieval Model은 주어진 메시지에 대해 구체적이고 명확한 응답을 생성할 수 있는 장점이 있으나, 미리 학습하지 못한 메시지에 대해서는 적절한 응답을 찾지 못하는 문제점을 갖는다. 종래 제안된 기술들의 이러한 문제 해결을 위해 본 발명은, Generative Model에 기반하여 응답을 생성하되, 응답의 정확도 평가에 기반하여 적절한 응답을 출력하기 위한 대화 시스템 및 응답 제어 방안을 제안한다.
이하, 도 2 내지 도 5를 참고하여 본 발명이 제안하는 평가에 기반한 대화 시스템의 응답 제어 방법이 도시된다.
도 2는 본 발명의 일 실시 예에 따른 응답 정확도 평가에 기반한 대화 시스템(100)의 응답 생성 과정을 도시한다.
도 2에 도시된 바와 같이, 대화 시스템(100)의 응답 정확도 평가에 기반한 응답 생성 과정은 입력 메시지에 대한 대화 인식 과정(201), 응답 생성 과정(203), 응답의 정확도 평가 과정(205), 및 정확도에 기반하여 응답을 출력하는 과정(207)을 포함한다.
도 2를 참고하면, 대화 시스템(100)은 입력 메시지에 대한 대화 인식 과정(201)을 수행한다. 본 발명의 일 실시 예에 따라, 대화 시스템(100)의 대화 인식 모듈(110)에 의해 입력 메시지에 대한 대화 인식 과정(201)이 수행될 수 있다. 예를 들어, 대화 시스템(100)은 사용자의 입력 메시지를 자연어 처리 기법에 의한 메시지 분석을 통해 대화로 인식할 수 있다. 즉, 대화 시스템(100)은 사용자의 입력 메시지가 응답이 필요한 질문인지 판단할 수 있다. 일 실시 예에 따라, 대화 시스템(100)은 입력 메시지가 응답이 필요한 질문으로 판단한 경우 메시지에 대한 응답 생성 과정(203)을 진행할 수 있다. 대화 시스템(100)은 응답이 필요 없는 것으로 판단한 경우 입력 메시지를 대화 이력 DB(140)에 저장하는 작업만 수행하도록 제어할 수도 있다.
이후, 대화 시스템(100)은 응답 생성 과정(203)을 수행한다. 본 발명의 일 실시 예에 따라, 대화 시스템(100)의 응답 생성 모듈(120)에 의해 입력 메시지에 대한 적절한 응답 생성 과정(203)이 수행될 수 있다. 예를 들어, 대화 시스템(100)은 신경망 알고리즘의 Generative Model 학습을 통해 메시지에 대해 적절한 응답을 생성할 수 있다. 대화 시스템(100)은 대화 이력 DB(140)로부터의 이력 데이터를 고려하여 현재 시점에서 적절한 응답을 생성할 수 있다.
다음으로, 대화 시스템(100)은 응답의 정확도 평가 과정(205)을 수행한다. 본 발명의 일 실시 예에 따라, 대화 시스템(100)의 응답 평가 모듈(130)에 의해 생성된 응답에 대한 정확도 평과 과정(205)이 수행될 수 있다. 예를 들어, 대화 시스템(100)은 생성된 응답을 출력하기 전에, 메시지에 대한 유사도에 기반하여 응답의 정확도를 평가할 수 있다. 정확도 평가를 위해, 대화 시스템(100)은 대화 이력 DB(140)로부터의 이력 데이터에 기반하여 RNN으로 인코딩된 메시지 및 응답의 유사도를 산출할 수 있다. 여기서, 메시지에 대한 적절한 응답(정답) 쌍은 유사도가 높고, 메시지에 대한 부적절한 응답(오답) 쌍은 유사도가 낮도록 학습될 수 있다. 다른 실시 예에 따라, 대화 시스템(100)은 RNN으로 인코딩된 메시지 및 응답 중 적어도 하나에 관련분야 토픽 정보를 추가로 고려하여 유사도를 산출할 수 있다. 대화 시스템(100)은 산출된 유사도를 미리 설정된 기준 값과 비교하는 방식으로 응답의 정확도를 평가할 수 있다.
마지막으로, 대화 시스템(100)은 정확도에 기반하여 응답을 출력하는 과정(207)을 수행한다. 본 발명의 일 실시 예에 따라, 대화 시스템(100)의 응답 생성 모듈(120) 또는 응답 평가 모듈(130)에 의해 정확도에 기반하여 응답을 출력하는 과정(207)이 수행될 수 있다. 대화 시스템(100)은 산출된 유사도를 미리 설정된 임계치와 비교하여 임계치보다 큰 값을 가지는 경우 정확도가 높다고 판단하여 응답을 출력하고, 임계치 이하 값을 가지는 경우에 새로운 응답을 생성하고 응답의 정확도를 평가하는 과정을 반복하도록 제어할 수 있다. 일 실시 예에 따라, 대화 시스템(100)의 응답 출력 지연 및 무한 루프(loop)를 방지하기 위해, 새로운 응답을 생성하고 응답의 정확도를 평가하는 과정의 반복은 미리 설정된 횟수 이하 또는 일정 시간 내로 제한되도록 설정될 수 있다. 미리 설정된 횟수 또는 시간 동안 응답을 새롭게 생성하였으나 임계치 이상의 유사도를 갖는 응답을 생성하지 못한 경우, 대화 시스템(100)은 생성하였던 응답 중에서 가장 유사도가 높았던 응답을 출력할 수 있다. 이를 위해, 생성된 응답은 모두 대화 이력 DB(140) 또는 별도의 영역에 저장될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 유사도 평가에 기반하여 정확도 높은 응답을 출력하기 위한 구체적 과정을 도시한다. 예를 들어, 도 3은 유사도 평가에 기반하여 응답을 출력하는 대화 시스템(100)의 동작 과정을 도시한다.
도 3에 도시된 바와 같이, 대화 시스템(100)의 유사도 평가에 기반하여 정확도 높은 응답을 출력하기 위한 구체적 과정은 입력 메시지 대화 인식 과정(301), 응답 생성 대상 판단 과정(303), 응답 생성 과정(305), 입력과 응답 사이의 유사도 산출 과정(307), 유사도 평가 과정(309), 응답 출력 과정(311), 및 대화 이력 저장 과정(313)을 포함한다.
도 3을 참고하면, 대화 시스템(100)은 입력 메시지에 대한 대화 인식 과정(201)을 수행한다. 예를 들어, 대화 시스템(100)은 사용자의 입력 메시지에 대해 자연어 처리 기법에 의한 메시지 분석을 수행할 수 있다.
이후, 대화 시스템(100)은 입력 메시지에 대한 응답 생성 대상 판단 과정(303)을 수행할 수 있다. 즉, 대화 시스템은 자연어 처리 기법에 의해 분석된 메시지가 응답 생성이 필요한 질문인지 판단할 수 있다. 입력 메시지가 응답이 필요한 질문 형태인 것으로 판단한 경우, 대화 시스템(100)은 메시지에 대한 응답 생성 과정(305)을 진행한다. 만일 질문 등의 형태가 아니어서 응답이 필요 없는 것으로 판단한 경우, 대화 시스템(100)은 대화 이력 저장 과정(313)을 수행한다.
입력 메시지가 응답이 필요한 질문인 것으로 판단한 경우, 대화 시스템(100)은 응답 생성 과정(305)을 수행한다. 예를 들어, 대화 시스템(100)은 신경망 알고리즘의 Generative Model 학습을 통해 메시지에 대해 적절한 응답을 생성할 수 있다. 대화 시스템(100)은 또한 대화 이력 DB(140)로부터의 이력 데이터를 고려하여 현재 시점에서 적절한 응답을 생성할 수 있다.
다음으로, 대화 시스템(100)은 입력과 응답 사이의 유사도 산출 과정(307)을 수행한다. 응답의 적절성을 평가하기 위해, 대화 시스템(100)은 생성된 응답과 입력된 메시지 쌍의 유사도를 산출할 수 있다. 예를 들어, 대화 시스템(100)은 대화 이력 DB(140)로부터의 이력 데이터에 기반하여 RNN으로 인코딩된 메시지 및 응답의 유사도를 각각 산출할 수 있다. 또한, 대화 시스템(100)은 RNN으로 인코딩된 메시지 및 응답 중 적어도 하나에 관련분야 지식 정보를 추가로 고려하여 유사도를 산출할 수 있다. 일 실시 예에 따라, 대화 시스템(100)의 응답 평가 모듈(130)에서 유사도를 산출하고, 응답 생성 모듈(120)로 산출된 유사도에 기반한 피드백을 수행할 수 있다.
이후, 대화 시스템(100)은 유사도 평가 과정(309)을 수행한다. 예를 들어, 대화 시스템(100)은 산출된 유사도를 미리 설정된 임계치와 비교하는 방식으로 유사도 평가 과정을 수행할 수 있다. 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는 경우, 대화 시스템(100)은 응답 출력 과정(311)을 수행한다. 산출된 유사도가 미리 설정된 임계치 이하 값을 가지는 경우, 대화 시스템(100)은 응답 생성 과정(305)으로 돌아가 응답을 다시 생성하고 유사도를 산출하는 과정을 반복한다. 일 실시 예에 따라, 대화 시스템(100)의 응답 출력 지연 및 무한 루프를 방지하기 위해, 새로운 응답을 생성하고 응답의 유사도를 산출하는 과정의 반복은 미리 설정된 횟수 이하 또는 시간 이내로 제한되도록 설정될 수 있다. 미리 설정된 횟수 또는 시간 동안 응답을 새롭게 생성하였으나 임계치 이상의 유사도를 갖는 응답을 생성하지 못한 경우, 대화 시스템(100)은 생성하였던 응답 중에서 가장 유사도가 높았던 응답을 출력할 수 있다.
산출된 유사도가 임계치보다 큰 값을 가지는 경우, 대화 시스템(100)은 응답 출력 과정(311)을 수행한다. 즉, 유사도 평가 과정(309)에서 입력 메시지와 응답 간의 유사도가 임계치보다 큰 값을 갖는 것으로 판단된 경우, 메시지에 대해 관련성이 높은 적절한 응답이 생성된 것으로 보고 대화 시스템(100)은 생성된 응답 메시지를 출력한다.
마지막으로, 대화 시스템(100)은 대화 이력 저장 과정(313)을 수행한다. 일 실시 예에 따라, 대화 시스템(100)은 응답 메시지를 출력한 후 또는 입력된 메시지가 응답 생성 대상이 아니라고 판단된 경우, 입력된 메시지 및/또는 출력된 응답을 대화 이력 DB(140)에 저장할 수 있다.
상술한 바와 같이, 대화 시스템(100)은 입력된 메시지와 생성된 응답 사이의 유사도를 산출하여 일정 수준 이상의 유사도를 갖는 응답이 생성될 때까지 응답 생성 과정을 반복함으로써, 입력 메시지에 대해 높은 정확도의 응답을 제공할 수 있게 한다. 이하, 도 4 내지 도 5를 참고하여 본 발명이 제안하는 응답 평가를 위해 유사도를 산출하는 구체적인 방법이 도시된다.
도 4는 본 발명의 일 실시 예에 따른 질문과 응답 사이의 유사도를 산출하는 흐름도를 도시한다.
도 4를 참고하면, 응답 평가 모듈(130) 내에 주어진 메시지(질문)와 응답 사이의 유사도를 산출하는 본 발명이 제안하는 HRDE(hierarchical recurrent dual encoder)(410)가 도시된다. HRDE(410)는 대화의 맥락을 고려하여 현재 생성된 응답의 정확도를 판단하기 위해 고안된 것이다. 예를 들어, 주어진 메시지와 응답 사이의 유사도란, 응답이 주어진 메시지에 대한 정답일 확률을 의미할 수 있다.
일 실시 예에 따라, HRDE(410)는 메시지(질문)와 응답 내의 문장을 chunk로 나누고, 각 chunk 내에서 단어-레벨 RNN 인코딩(411, 413)을 수행한다. 그 다음, HRDE(410)는 각 chunk에 대해 단어-레벨 RNN 인코딩된 시퀀스를 chunk-레벨 RNN(412, 414)으로 다시 인코딩하여 인코딩 벡터를 산출하고, 메시지와 응답의 인코딩 벡터의 유사도(430)를 획득한다. 이 때, chunk의 크기는 하나 이상의 단어를 포함하는 크기로 결정될 수 있고, chunk마다 포함되는 단어의 개수는 달라질 수 있다. 주어진 메시지와 응답을 chunk로 구분하고 단어-레벨 RNN 및 chunk-레벨 RNN의 두 단계 RNN 인코딩을 수행함으로써, 주어진 메시지와 응답이 긴 문장인 경우에도 처음부터 끝까지 모든 단어를 고려한 인코딩 벡터를 산출할 수 있다. 따라서, 두 단계 RNN 인코딩을 통해 주어진 메시지와 응답 간에 더욱 정확한 유사도 판단이 가능해진다.
chunk-레벨 RNN과 단어-레벨 RNN의 hidden state는 각각 <수학식 1> 및 <수학식 2>와 같이 산출될 수 있다.
Figure 112017117394883-pat00001
Figure 112017117394883-pat00002
<수학식 1> 및 <수학식 2>에서 fθ와 gθ는 각각 파라미터를 θ로 하는 단어-레벨 RNN과 chunk-레벨 RNN function을 의미한다. 예를 들어, RNN function 선택을 위해 본 발명에서는 LSTM(long short term memory)에 비해 적은 파라미터가 요구되면서 성능 경쟁력이 있는 GRU(gated recurrent unit)가 사용될 수 있다. hc,t는 단어-레벨 RNN의 c번째 chunk의 t번째 단어의 hidden state를 의미하고, hc,t-1은 단어-레벨 RNN의 c번째 chunk의 t-1번째 단어의 hidden state를 의미하며, wc,t는 c번째 chunk의 t번째 단어를 의미한다. uc는 chunk-레벨 RNN의 c번째 chunk 시퀀스의 hidden state를 의미하고, hc는 단어-레벨 RNN의 c번째 chunk의 마지막 hidden state를 의미한다.
<수학식 1>을 참고하면, 단어-레벨 RNN의 t-1번째 단어의 hidden state(hc,t-1)와 c번째 chunk의 t번째 단어(wc,t)를 입력으로 하여, 단어-레벨 RNN의 c번째 chunk의 t번째 단어의 hidden state(hc,t)를 얻을 수 있다. 이러한 방법으로 HRDE(410)는 각 chunk 내에서 단어-레벨 RNN 인코딩(411, 413)을 수행할 수 있다.
이어서, <수학식 2>을 참고하면, chunk-레벨 RNN의 c-1번째 chunk 시퀀스의 hidden state (uc-1)와 단어-레벨 RNN의 c번째 chunk의 마지막 hidden state(hc)를 입력으로 하여, chunk-레벨 RNN의 c번째 chunk 시퀀스의 hidden state(uc)를 얻을 수 있다. 이러한 방법으로 HRDE(410)는 각 chunk에 대해 단어-레벨 RNN 인코딩된 시퀀스를 chunk-레벨 RNN(412, 414)으로 다시 인코딩한 인코딩 벡터를 산출할 수 있다.
HRDE(410)의 확대도(420)에서는 이러한 <수학식 1>과 <수학식 2>에 따른 마지막 hidden state 인코딩 과정이 좀 더 구체적으로 도시된다. 먼저 질문 또는 응답은 c개의 chunk로 나눠진다. 그 후, 첫번째 chunk에서 1부터 t까지의 단어-레벨 RNN의 hidden state(421-1)가 인코딩되고, 같은 방법으로 c번째 chunk에서 1부터 t’까지의 단어-레벨 RNN의 hidden state(421-c)가 인코딩된다. 첫번째 chunk의 마지막 hidden state(h1)를 입력으로 첫번째 chunk-레벨 RNN 인코딩된 hidden state(422-1) u1이 얻어지고, 첫번째 chunk-레벨 RNN hidden state(422-1)와 두번째 chunk의 마지막 hidden state h2를 입력으로 두번째 chunk-레벨 RNN 인코딩된 hidden state(422-2) u2가 얻어진다. 이와 같은 방식으로, 순차적으로 마지막 c번째 chunk-레벨 RNN hidden state(422-c) uc를 얻을 수 있다.
<수학식 1> 및 <수학식 2>를 통해 주어진 질문과 응답의 인코딩된 벡터간의 유사도(430)는 <수학식 3>과 같이 도출될 수 있다.
Figure 112017117394883-pat00003
<수학식 3>에서, p(label)은 질문과 응답의 인코딩된 벡터간 유사도를 의미하고,
Figure 112017117394883-pat00004
Figure 112017117394883-pat00005
는 각각 질문과 응답의 chunk-레벨 RNN의 마지막 hidden state의 인코딩 벡터를 의미한다. M은 유사도 계산을 위한 행렬을 의미하고, b는 바이어스 값을 의미한다.
일 실시 예에 따라, 질문에 대한 정답, 즉 적절한 응답인 경우 해당 메시지(질문)-응답 쌍은 유사도가 높고, 질문에 대한 오답, 즉 부적절한 응답인 경우 해당 메시지(질문)-응답 쌍은 유사도가 낮도록 학습할 수 있다. 예를 들어, 응답 평가 모듈(130)은 질문과 응답의 인코딩된 벡터간 유사도인 p(label)이 미리 설정된 임계치보다 큰지 판단하고, 임계치보다 큰 경우에는 응답을 사용자에게 출력할 수 있다. 이 때, p(label)이 미리 설정된 임계치보다 작은 경우, 응답 평가 모듈(130)은 평가 결과를 응답 생성 모듈(120)로 피드백하여 새로운 응답을 생성하도록 제어할 수 있다. 다른 실시 예에 따라, 응답 평가 모듈(130)은 질문과 응답의 인코딩된 벡터간 유사도인 p(label) 자체를 응답 생성 모듈(120)로 피드백하고, 응답 생성 모듈(120)은 피드백된 p(label)이 미리 설정된 임계치보다 큰지 판단할 수 있다. p(label)이 임계치보다 큰 경우에는 응답 생성 모듈(120)은 응답을 사용자에게 출력하고, p(label)이 미리 설정된 임계치보다 작은 경우 응답 생성 모듈(120)은 새로운 응답을 생성할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 대화 내 잠재된 토픽 정보에 기반하여 질문과 응답 사이의 유사도를 산출하는 흐름도를 도시한다.
도 5를 참고하면, 도 4에서 도시된 HRDE(410)는 대화 내 잠재된 토픽을 추출하여 응답의 적절성 판단에 추가 정보를 제공하는 LTC(latent topic clustering)(510)를 더 포함할 수 있다.
일 실시 예에 따라, LTC(510)는 HRDE(410)에 의해 각 질문과 응답에 대한 단어-레벨 RNN 인코딩(411, 413)과 chunk-레벨 RNN 인코딩(412, 414)된 벡터를 latent topic memory 벡터와 비교하여, latent topic memory와의 연관도 정보가 추가된 인코딩 벡터를 산출한다. 도 5에서는 응답에 대해서만 LTC(510)를 더 포함하나, 질문 혹은 질문/응답 모두에 latent topic memory와의 연관도 정보를 추가 연산하는 LTC를 추가할 수 있다.
LTC(510)의 확대도(520)에서, 단어-레벨 및 chunk-레벨 RNN 인코딩된 벡터에 latent topic memory 연관도 정보를 추가 인코딩하는 과정이 구체적으로 도시된다. 도 5에서는 응답에 대해서만 latent topic 추가 인코딩을 수행하나, 본 발명은 이에 제한되지 않는다.
먼저, 응답에 대해 단어-레벨 RNN 인코딩된(413) 벡터를 chunk-레벨 인코딩(414)하여 최종 hidden state의 인코딩 벡터(
Figure 112017117394883-pat00006
)를 얻는다. 이런 chunk-레벨 인코딩(414)의 최종 인코딩 벡터를 입력으로 하여, 입력 인코딩 벡터가 k번째 토픽으로 분류될 확률은 <수학식 4>와 같이 산출된다.
Figure 112017117394883-pat00007
<수학식 4>에서, x는 입력 인코딩 벡터, 즉
Figure 112017117394883-pat00008
를 의미하고, mk는 k번째 토픽 벡터를 의미한다. pk는 입력 인코딩 벡터와 k번째 토픽 벡터의 유사도를 전체 K개의 토픽에 대해 정규화하는 softmax 연산을 거쳐 얻어지는, 입력 인코딩 벡터가 k번째 토픽으로 분류될 확률을 의미한다. 일 실시 예에 따라, mk는 각각의 토픽에 대한 다른 대화 데이터를 통해 학습된 정보일 수 있다.
토픽 정보가 추가된 인코딩 벡터는 <수학식 5> 및 <수학식 6>을 통해 산출될 수 있다.
Figure 112017117394883-pat00009
Figure 112017117394883-pat00010
<수학식 5>에서 pk는 입력 인코딩 벡터가 k번째 토픽으로 분류될 확률을 의미하고, mk는 k번째 토픽 벡터를 의미한다. K는 전체 토픽의 개수를 의미하고, xk는 k번째 토픽 정보가 포함된 시퀀스를 의미한다. <수학식 6>에서 x는 입력 인코딩 벡터, 즉
Figure 112017117394883-pat00011
를 의미하고, e는 입력 인코딩 벡터에 k번째 토픽 정보가 포함된 시퀀스인 xk를 추가한 인코딩 벡터를 의미한다.
<수학식 4> 내지 <수학식 6>에 따라 응답에 대해 잠재된 토픽 정보를 추가한 인코딩 벡터 e와 질문의 인코딩 벡터간 유사도는 <수학식 7>과 같이 산출될 수 있다.
Figure 112017117394883-pat00012
<수학식 7>에서, p(label)은 질문과 응답의 인코딩된 벡터간 유사도를 의미하고,
Figure 112017117394883-pat00013
는 질문의 chunk-레벨 RNN의 마지막 hidden state의 인코딩 벡터를 의미하며, eu,A는 토픽 정보가 추가된 인코딩 벡터를 의미한다. M은 유사도 계산을 위한 행렬을 의미하고, b는 바이어스 값을 의미한다.
일 실시 예에 따라, 응답 평가 모듈(130)은 토픽 정보가 추가된 질문과 응답의 인코딩된 벡터간 유사도인 p(label)이 미리 설정된 임계치보다 큰지 판단하고, 임계치보다 큰 경우에는 응답을 사용자에게 출력할 수 있다. p(label)이 미리 설정된 임계치보다 작은 경우, 응답 평가 모듈(130)은 평가 결과를 응답 생성 모듈(120)로 피드백하여 새로운 응답을 생성하도록 제어할 수 있다. 다른 실시 예에 따라, 응답 평가 모듈(130)은 토픽 정보가 추가된 질문과 응답의 인코딩된 벡터간 유사도인 p(label) 자체를 응답 생성 모듈(120)로 피드백하고, 응답 생성 모듈(120)은 피드백된 p(label)이 미리 설정된 임계치보다 큰지 판단할 수 있다. p(label)이 임계치보다 큰 경우에는 응답 생성 모듈(120)은 응답을 사용자에게 출력하고, p(label)이 미리 설정된 임계치보다 작은 경우 응답 생성 모듈(120)은 새로운 응답을 생성할 수 있다. 토픽 정보는 질문 또는 응답 인코딩 벡터에 추가되거나, 또는 질문 및 응답 인코딩 벡터 모두에 추가될 수 있다.
상술한 도 4 내지 도 5에서 제안된 HRDE와 LTC가 추가된 HRDE의 성능 평가를 위해, 연구용 공개 데이터 셋에서 각 방식에 의한 유사도 측정 결과가 이하 설명된다.
<표 1>은 성능 평가를 위해 사용된 연구용 공개 데이터 셋들의 크기와 특성을 나타낸다.
Figure 112017117394883-pat00014
Ubuntu 데이터 셋은 사용자들이 Ubuntu를 사용하다 궁금한 점이 있을 때, 포럼 상에서 사용자 간 질의 응답을 통해 문제를 해결한 데이터를 바탕으로 만들어진 데이터 셋이다. 예를 들어, 이러한 Ubuntu 데이터 셋은 2004년부터 2017년까지 http://irclogs.ubuntu.com에서 얻을 수 있는 Ubuntu 챗 로그들로부터 획득될 수 있다. 사용자들이 특정 주제에 관해서 주고 받은 t 시점까지의 챗팅 데이터가 주어지고, t+1 시점에 어떤 답변이 올 수 있는지를 판단하여 정확도를 평가할 수 있는 데이터 셋이다.
<표 1>에서 #tokens는 메시지 내의 평균 단어의 개수, #groups는 평균 문장의 개수, #tokens/groups는 문장당 평균 단어의 개수를 의미한다. Ubuntu 데이터 셋은 대화 상자에서 ({context}, {response}, flag)를 추출하여 처리되었다. 즉, Ubuntu 데이터 셋에서 {context}와 {response} 쌍이 주어진 메시지와 응답 쌍을 의미한다. 원본 데이터가 Ubuntu-v1이 되고, train/valid/test를 시간별로 분리하여 실생활 구현을 모방한 데이터가 Ubuntu-v2가 된다. 본 발명이 제안하는 HRDE 또는 LTC가 추가된 HRDE 알고리즘을 사용하여 텍스트를 인코딩하기 위해 텍스트를 미리 정의된 기준에 의해 몇 개의 chunk 시퀀스로 분할해야 한다. 예를 들어, Ubuntu-v1 데이터 셋의 경우 테스트를 위해, {context} 부분을 문장 끝 구분 기호 ”_eos_”로 분리하여 나누고, {response}는 짧고 “_eos_“를 포함하지 않으므로 분할하지 않았다. Ubuntu-v2 데이터 셋의 경우, Ubuntu-v1과 같이 {context} 부분만 문장 끝 구분 기호 ”_eot_”로 분리하여 나누었다.
Samsung QA 데이터 셋은 사용자들이 Samsung사의 제품을 사용하다 발생한 궁금증이나 이슈들을 웹페이지에 올려서 답변을 받은 데이터 셋이다. 예를 들어, Samsung QA 데이터 셋은 http://www.samsung.com/us 및 https://answers.yahoo.com, http://answers.us.samsung.com과 같은 사이트에서 획득될 수 있다. 특정 제품에 관한 질의 응답 데이터 셋을 사용함으로써, 본 발명이 제안하는 모델이 더 전문적인 질의 응답에 대해서도 좋은 성능을 내는 상황에 강인한 모델인지 확인할 수 있다. 질문에 대한 답변들 중 회사가 인증한 고객의 답변을 선택하여 답변의 신뢰성을 더욱 높게 유지하며, 이러한 답변이 없으면 그 질의 응답 쌍은 건너 뛰었다. 또한, 품질 보증 쌍과 관련된 계층적 제품 카테고리(예를 들어, 휴대전화, TV/비디오, 악세서리 등) 정보를 크롤링한 메타 정보를 수집하였다. Samsung QA 데이터 셋의 총 크기는 100,000 쌍 이상이며, <표 1>과 같이 데이터를 약 80,000/10,000/10,000 샘플로 분할하여 train/valid/test 세트를 만들었다. 트레이닝 세트를 생성하기 위해 QA 쌍 샘플을 정답으로 사용하고, 잘못된 세트를 생성하기 위해 트레이닝 세트 간의 정답을 음수 샘플링하여 ({question}, {answer}, flag)를 생성하였다. 즉, Samsung QA 데이터 셋에서 {question}과 {answer} 쌍이 주어진 메시지와 응답 쌍을 의미한다.
<표 1>과 같은 두 가지 데이터 셋 모두, 현재까지 주어진 정보를 바탕으로 다음에 주어진 답변이 적절한지를 판단하는데 목적을 둔 데이터 셋이므로 본 발명에서 제안하는 응답 평가 알고리즘의 성능을 측정하는데 적절하다.
이하, <표 2> 내지 <표 4>는 본 발명이 제안하는 HRDE 또는 LTC가 추가된 HRDE 알고리즘과 기존 알고리즘 성능을 비교하여 나타낸다. <표 2> 내지 <표 4>에 나타난 바와 같이, 본 발명이 제안하는 HRDE 또는 LTC가 추가된 HRDE 알고리즘은 기존 알고리즘 대비 높은 질문-응답 유사도를 보임으로써 성능 면에서 비교 우위에 있음을 알 수 있다.
Figure 112017117394883-pat00015
Ubuntu-v1 데이터 셋을 이용하는 경우 <표 2>에 나타난 바와 같이, 종래의 TF-IDF(term frequency, inverted document frequency) 방식, CNN(convolution neural network) 방식 및 LSTM(RNN의 한 종류) 방식에 의해 얻어지는 질문과 응답 간의 유사도 보다 RDE(recurrent dual encoder), RDE-LTC, 및 본 발명이 제안하는 HRDE, HRDE-LTC가 더욱 높은 유사도를 얻을 수 있는 것으로 나타난다. 1 in 2 R@1은 2개의 정답 후보군 중 하나가 하나의 정답일 확률을, 1 in 10 R@1은 10개의 정답 후보군 중 하나가 하나의 정답일 확률을, 1 in 10 R@2는 10개의 정답 후보군 중 하나가 2위 이내의 정답일 확률을, 1 in 10 R@5는 10개의 정답 후보군 중 하나가 5위 이내의 정답일 확률을 의미한다. <표 2>에 나타난 바와 같이, 종래의 방식 보다 RDE 방식을 이용하는 경우가 높은 정확도의 응답을 출력할 수 있었던 것을 알 수 있고, 특히 본 발명이 제안하는 HRDE, 그 중에서도 토픽 정보까지 추가된 HRDE-LTC가 가장 높은 성능을 나타낸 것을 확인할 수 있다. 주목할 것은 RDE 방식에서도 LTC를 추가로 고려하는 경우 RDE보다 높은 유사도를 획득할 수 있었다는 점이다.
Figure 112017117394883-pat00016
Ubuntu-v2 데이터 셋을 이용하는 경우 <표 3>에 나타난 바와 같이, 종래의 LSTM(RNN의 한 종류) 방식, RNN 방식, CNN 방식, RNN-CNN 방식 및 Attention(RNN-CNN) 방식에 의해 얻어지는 질문과 응답 간의 유사도 보다 RDE, RDE-LTC, 및 본 발명이 제안하는 HRDE, HRDE-LTC가 대체로 더욱 높은 유사도를 얻을 수 있는 것으로 나타난다. 특히 본 발명이 제안하는 토픽 정보까지 추가된 HRDE-LTC가 1 in 10 R@1을 제외하고는 가장 높은 성능을 나타낸 것을 확인할 수 있다.
Figure 112017117394883-pat00017
Samsung QA 데이터 셋을 이용하는 경우 <표 4>에 나타난 바와 같이, 기준이 되는 RDE방식에 의해 얻어지는 질문과 응답 간의 유사도 보다 RDE-LTC, 및 본 발명이 제안하는 HRDE, HRDE-LTC가 더 높은 유사도를 얻을 수 있는 것으로 나타난다. 특히 본 발명이 제안하는 토픽 정보까지 추가된 HRDE-LTC가 가장 높은 성능을 나타낸 것을 확인할 수 있다.
상술한 구체적인 실시예들에서, 발명에 포함되는 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 상술한 실시 예들이 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 다양한 실시예들이 내포하는 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 인공 지능 기반의 대화 시스템에서 응답 제어 방법으로서,
    입력 메시지가 응답이 필요한 질문인지 판단하는 대화 인식 단계;
    상기 대화 인식에 기반하여 신경망 알고리즘의 Generative Model을 통해 상기 입력 메시지에 대한 응답을 생성하는 단계;
    대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는지에 따른 유사도를 평가하는 단계; 및
    상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계를 포함하고,
    상기 유사도를 평가하는 단계는,
    상기 입력 메시지와 상기 응답 중 적어도 하나를 복수개의 chunk로 분리하는 단계;
    상기 대화 이력에 기반하여, 상기 복수개의 chunk 각각에 속하는 단어들에 대해 순서대로, 각 chunk의 이전 단어에 대한 단어-레벨 RNN 인코딩 벡터와 현재 단어를 입력 값으로 하여 현재 단어에 대한 단어-레벨 RNN 인코딩 벡터를 구하는 방식으로, 상기 복수개의 chunk 각각에 속하는 단어들에 대한 단어-레벨 RNN 인코딩을 수행하는 단계;
    상기 단어-레벨 RNN 인코딩된 결과를 이용하여, 상기 복수개의 chunk 각각에 대해 순서대로, 이전 chunk에 대한 chunk-레벨 RNN 인코딩 벡터와 현재 chunk의 마지막 단어-레벨 RNN의 인코딩 벡터를 입력 값으로 하여 현재 chunk의 chunk-레벨 RNN 인코딩 벡터를 구하는 방식으로, 상기 복수개의 chunk 각각에 대한 chunk-레벨 RNN 인코딩을 수행하는 단계; 및
    상기 chunk-레벨 RNN 인코딩의 마지막 chunk의 chunk-레벨 RNN 인코딩 벡터를 이용하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 입력 메시지에 대한 응답을 생성하는 단계는,
    상기 입력 메시지가 질문 형태인 경우, 상기 입력 메시지에 대한 응답을 생성하는 단계를 포함하는, 방법.
  3. 청구항 1에 있어서,
    상기 입력 메시지가 질문 형태가 아닌 경우, 상기 응답 메시지 출력 없이 상기 입력 메시지를 대화 이력 DB에 저장하는 단계를 더 포함하는, 방법.
  4. 청구항 1에 있어서,
    상기 유사도를 평가하는 단계는,
    상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는 단계를 더 포함하는, 방법.
  5. 청구항 4에 있어서,
    상기 유사도를 산출하는 단계는,
    상기 입력 메시지와 상기 응답 중 적어도 하나에 대한 상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 토픽 정보를 추가하여 인코딩된 벡터를 산출하는 단계; 및
    상기 토픽 정보가 추가 인코딩된 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는 단계를 포함하는, 방법.
  6. 청구항 4에 있어서,
    상기 유사도는 아래 수학식과 같이 산출되고,
    Figure 112019051127730-pat00023

    p(label)은 상기 입력 메시지와 상기 응답의 인코딩된 벡터간 유사도를 의미하고,
    Figure 112019051127730-pat00024
    Figure 112019051127730-pat00025
    는 각각 질문과 응답의 chunk-레벨 RNN의 마지막 hidden state의 인코딩 벡터를 의미하며, M은 유사도 계산을 위한 행렬을 의미하고, b는 바이어스 값을 의미하는, 방법.
  7. 청구항 1에 있어서,
    상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계는,
    상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는 경우, 상기 생성된 응답을 상기 입력 메시지에 대한 응답 메시지로 출력하고,
    상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치 이하인 경우, 상기 입력 메시지에 대한 응답을 다시 생성하고 유사도 평가를 반복하여, 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는 응답을 상기 입력 메시지에 대한 응답 메시지로 출력하는 단계를 포함하는, 방법.
  8. 인공 지능 기반의 대화 시스템으로서,
    입력 메시지가 응답이 필요한 질문인지 결정하는 대화 인식 모듈;
    상기 결정에 기반하여 신경망 알고리즘의 Generative Model을 통해 상기 입력 메시지에 대한 응답을 생성하는 응답 생성 모듈; 및
    대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는지에 따른 유사도를 평가하고, 상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하도록 제어하는 응답 평가 모듈을 포함하고,
    상기 응답 평가 모듈은, 상기 입력 메시지와 상기 응답 중 적어도 하나를 복수개의 chunk로 분리하고, 상기 대화 이력에 기반하여, 상기 복수개의 chunk 각각에 속하는 단어들에 대해 순서대로, 각 chunk의 이전 단어에 대한 단어-레벨 RNN 인코딩 벡터와 현재 단어를 입력 값으로 하여 현재 단어에 대한 단어-레벨 RNN 인코딩 벡터를 구하는 방식으로, 상기 복수개의 chunk 각각에 속하는 단어들에 대한 단어-레벨 RNN 인코딩을 수행하고, 상기 단어-레벨 RNN 인코딩된 결과를 이용하여, 상기 복수개의 chunk 각각에 대해 순서대로, 이전 chunk에 대한 chunk-레벨 RNN 인코딩 벡터와 현재 chunk의 마지막 단어-레벨 RNN의 인코딩 벡터를 입력 값으로 하여 현재 chunk의 chunk-레벨 RNN 인코딩 벡터를 구하는 방식으로, 상기 복수개의 chunk 각각에 대한 chunk-레벨 RNN 인코딩을 수행하고, 상기 chunk-레벨 RNN 인코딩의 마지막 chunk의 chunk-레벨 RNN 인코딩 벡터를 이용하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는, 대화 시스템.
  9. 청구항 8에 있어서,
    상기 응답 생성 모듈은,
    상기 입력 메시지가 질문 형태인 경우, 상기 입력 메시지에 대한 응답을 생성하는, 대화 시스템.
  10. 청구항 8에 있어서,
    상기 대화 인식 모듈은,
    상기 입력 메시지가 질문 형태가 아닌 경우, 상기 응답 메시지 출력 없이 상기 입력 메시지를 대화 이력 DB에 저장하는, 대화 시스템.
  11. 청구항 8에 있어서,
    상기 응답 평가 모듈은,
    상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는, 대화 시스템.
  12. 청구항 11에 있어서,
    상기 응답 평가 모듈은,
    상기 입력 메시지와 상기 응답 중 적어도 하나에 대한 상기 chunk-레벨 RNN 인코딩의 마지막 hidden state 벡터에 토픽 정보를 추가하여 인코딩된 벡터를 산출하고,
    상기 토픽 정보가 추가 인코딩된 벡터에 기반하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는, 대화 시스템.
  13. 청구항 11에 있어서,
    상기 유사도는 아래 수학식과 같이 산출되고,
    Figure 112019051127730-pat00026

    p(label)은 상기 입력 메시지와 상기 응답의 인코딩된 벡터간 유사도를 의미하고,
    Figure 112019051127730-pat00027
    Figure 112019051127730-pat00028
    는 각각 질문과 응답의 chunk-레벨 RNN의 마지막 hidden state의 인코딩 벡터를 의미하며, M은 유사도 계산을 위한 행렬을 의미하고, b는 바이어스 값을 의미하는, 대화 시스템.
  14. 청구항 8에 있어서,
    상기 응답 평가 모듈은,
    상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는 경우, 상기 생성된 응답을 상기 입력 메시지에 대한 응답 메시지로 출력하고,
    상기 인코딩 벡터 사이의 유사도가 미리 설정된 임계치 이하인 경우, 상기 입력 메시지에 대한 응답을 다시 생성하도록 상기 응답 생성 모듈로 피드백하고, 유사도 평가를 반복하여, 산출된 유사도가 미리 설정된 임계치보다 큰 값을 가지는 응답을 상기 입력 메시지에 대한 응답 메시지로 출력하는, 대화 시스템.
  15. 명령들을 저장하고 있는 저장 매체로서,
    상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 단계를 수행하도록 설정된 것으로서, 상기 적어도 하나의 단계는,
    입력 메시지가 응답이 필요한 질문인지 판단하는 대화 인식 단계;
    상기 대화 인식에 기반하여 신경망 알고리즘의 Generative Model을 통해 상기 입력 메시지에 대한 응답을 생성하는 단계;
    대화 이력에 기반하여 상기 입력 메시지와 상기 생성된 응답을 인코딩한 인코딩 벡터 사이의 유사도가 미리 설정된 임계치보다 큰 값을 가지는지에 따른 유사도를 평가하는 단계; 및
    상기 유사도 평가에 기반하여, 상기 생성된 응답을 응답 메시지로 출력하거나, 새로운 응답을 생성하여 유사도를 다시 평가하는 단계를 포함하고,
    상기 유사도를 평가하는 단계는,
    상기 입력 메시지와 상기 응답 중 적어도 하나를 복수개의 chunk로 분리하는 단계;
    상기 대화 이력에 기반하여, 상기 복수개의 chunk 각각에 속하는 단어들에 대해 순서대로, 각 chunk의 이전 단어에 대한 단어-레벨 RNN 인코딩 벡터와 현재 단어를 입력 값으로 하여 현재 단어에 대한 단어-레벨 RNN 인코딩 벡터를 구하는 방식으로, 상기 복수개의 chunk 각각에 속하는 단어들에 대한 단어-레벨 RNN 인코딩을 수행하는 단계;
    상기 단어-레벨 RNN 인코딩된 결과를 이용하여, 상기 복수개의 chunk 각각에 대해 순서대로, 이전 chunk에 대한 chunk-레벨 RNN 인코딩 벡터와 현재 chunk의 마지막 단어-레벨 RNN의 인코딩 벡터를 입력 값으로 하여 현재 chunk의 chunk-레벨 RNN 인코딩 벡터를 구하는 방식으로, 상기 복수개의 chunk 각각에 대한 chunk-레벨 RNN 인코딩을 수행하는 단계; 및
    상기 chunk-레벨 RNN 인코딩의 마지막 chunk의 chunk-레벨 RNN 인코딩 벡터를 이용하여 상기 입력 메시지와 상기 응답의 유사도를 산출하는 단계를 포함하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 저장 매체.

KR1020170158345A 2017-11-24 2017-11-24 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법 KR102059015B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170158345A KR102059015B1 (ko) 2017-11-24 2017-11-24 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170158345A KR102059015B1 (ko) 2017-11-24 2017-11-24 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법

Publications (2)

Publication Number Publication Date
KR20190060285A KR20190060285A (ko) 2019-06-03
KR102059015B1 true KR102059015B1 (ko) 2019-12-24

Family

ID=66849221

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170158345A KR102059015B1 (ko) 2017-11-24 2017-11-24 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법

Country Status (1)

Country Link
KR (1) KR102059015B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111709247B (zh) * 2020-05-20 2023-04-07 北京百度网讯科技有限公司 数据集处理方法、装置、电子设备和存储介质
KR102215286B1 (ko) * 2020-08-25 2021-02-10 건국대학교 산학협력단 문서 이해에 기반한 문장 생성 챗봇 서비스 제공 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606846B2 (en) * 2015-10-16 2020-03-31 Baidu Usa Llc Systems and methods for human inspired simple question answering (HISQA)

Also Published As

Publication number Publication date
KR20190060285A (ko) 2019-06-03

Similar Documents

Publication Publication Date Title
CN110046304B (zh) 一种用户推荐方法和装置
CN112487182B (zh) 文本处理模型的训练方法、文本处理方法及装置
KR102071582B1 (ko) 딥 뉴럴 네트워크(Deep Neural Network)를 이용하여 문장이 속하는 클래스(class)를 분류하는 방법 및 장치
Mai et al. Locally confined modality fusion network with a global perspective for multimodal human affective computing
Qian et al. Hierarchical CVAE for fine-grained hate speech classification
CN110543242B (zh) 基于bert技术的表情输入法及其装置
Penha et al. Curriculum learning strategies for IR: An empirical study on conversation response ranking
CN107836000A (zh) 用于语言建模和预测的改进的人工神经网络
CN110704601A (zh) 利用问题-知识引导的渐进式时空注意力网络解决需要常识的视频问答任务的方法
Zhang et al. Word semantic representations using bayesian probabilistic tensor factorization
CN112528637A (zh) 文本处理模型训练方法、装置、计算机设备和存储介质
WO2019220113A1 (en) Device and method for natural language processing
CN111522908A (zh) 一种基于BiGRU和注意力机制的多标签文本分类方法
CN111309878B (zh) 检索式问答方法、模型训练方法、服务器及存储介质
CN113392179A (zh) 文本标注方法及装置、电子设备、存储介质
CN113505198A (zh) 关键词驱动的生成式对话回复方法、装置及电子设备
CN114492669B (zh) 关键词推荐模型训练方法、推荐方法和装置、设备、介质
CN114329181A (zh) 一种题目推荐方法、装置及电子设备
CN111125323B (zh) 一种聊天语料标注方法、装置、电子设备及存储介质
KR102059015B1 (ko) 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법
Sadr et al. Improving the performance of text sentiment analysis using deep convolutional neural network integrated with hierarchical attention layer
CN113392640A (zh) 一种标题确定方法、装置、设备及存储介质
Dehghani et al. Sentiment analysis of Persian political tweets using ParsBERT embedding model with convolutional neural network
EP3783537A1 (en) Controlling submission of content
CN109858035A (zh) 一种情感分类方法、装置、电子设备和可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant