KR20230060719A - 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 - Google Patents

대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR20230060719A
KR20230060719A KR1020210145218A KR20210145218A KR20230060719A KR 20230060719 A KR20230060719 A KR 20230060719A KR 1020210145218 A KR1020210145218 A KR 1020210145218A KR 20210145218 A KR20210145218 A KR 20210145218A KR 20230060719 A KR20230060719 A KR 20230060719A
Authority
KR
South Korea
Prior art keywords
slot
slots
query
conversation
current context
Prior art date
Application number
KR1020210145218A
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 KR1020210145218A priority Critical patent/KR20230060719A/ko
Priority to PCT/KR2022/015190 priority patent/WO2023075198A1/ko
Publication of KR20230060719A publication Critical patent/KR20230060719A/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
    • 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
    • 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/3325Reformulation based on results of preceding query
    • 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/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning

Landscapes

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

Abstract

대화 시스템에서 수행되는 사용자와의 대화에서, 사용자로부터 수신된 입력 메시지에 대하여, 자연어 이해를 수행하기 위해 이용되는 슬롯(slot)을 추출하기 위한 슬롯 추출 방법이 설명된다. 예시적인 슬롯 추출 방법은 맥락 수신 단계; 슬롯 질의 생성 단계; 질의 선택 단계; 질의 응답 단계; 슬롯 평가 단계; 및 슬롯 선택 단계를 포함할 수 있다. 본 출원은 서울특별시 산학연 협력사업인 "2020년 포스트코로나 특화 인공지능 기술사업화 지원 사업(과제명: 전이학습 및 딥러닝 기반 AlaaS 전자상거래 챗봇 빌딩 플랫폼 구축; 과제번호: CY201059; 부처명: 서울특별시; 연구관리 전문기관: 서울산업진흥원)"을 통해 개발된 기술이다. 또한, 본 출원은 ICT 혁신기업기술개발지원사업(R&D)인 "(2단계: 기술개발) BERT기반 범용 언어 모델 구축 및 전이학습 기반 기계독해 기술 개발"과제를 통해 개발된 기술이다.

Description

대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 {DEVICE, METHOD, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM TO EXTRACT SLOTS AT A DIALOGUE SYSTEM}
본 개시는 대화 시스템에서, 입력 메시지의 자연어 이해를 위해 이용되는 슬롯을 추출하기 위한 장치, 방법 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
본 출원은 서울특별시 산학연 협력사업인 "2020년 포스트코로나 특화 인공지능 기술사업화 지원 사업(과제명: 전이학습 및 딥러닝 기반 AlaaS 전자상거래 챗봇 빌딩 플랫폼 구축; 과제번호: CY201059; 부처명: 서울특별시; 연구관리 전문기관: 서울산업진흥원)"을 통해 개발된 기술이다.
또한, 본 출원은 ICT 혁신기업기술개발지원사업(R&D)인 "(2단계: 기술개발) BERT기반 범용 언어 모델 구축 및 전이학습 기반 기계독해 기술 개발"과제를 통해 개발된 기술이다.
여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.
최근 인공지능의 기법이 발전함에 따라, 그 응용도 폭넓어지고 있다. 특히, 자연어를 이용하여 이용자와 대화를 할 수 있도록 하는 대화 시스템, 예컨대, 챗봇 또는 가상 비서는 다양한 분야에서 활용되고 있으며, 점차 그 기술도 발전하고 있다. 대화 시스템이 사용자와의 대화를 진행하기 위해서는, 사용자로부터의 발화, 즉 입력 메시지를 대화 시스템의 관점에서 이해할 필요가 있다. 이러한 자연어 이해(Natural Language Understanding; NLU)를 달성하기 위해서, 대화 시스템은 대화 시스템과 사용자 간의 대화로부터 현재 맥락(context)과, 그러한 맥락에서 예상되는 사용자의 의도(intent)를 도출하고, 도출된 현재 맥락 및/또는 의도에 기초하여 입력 메시지를 분석할 필요가 있다.
대화 시스템을 이용하는 사용자의 목적을 달성하거나 사용자의 목적을 파악하기 위하여, 대화 시스템은 입력 메시지를 분석하여 데이터를 추출해야 한다. 대화 시스템은 입력 메시지에 포함된 데이터를 그러한 데이터가 무엇인지를 나타내는 개체명, 즉 슬롯(slot)과 함께 추출할 수 있으며, 이와 관련된 동작을 슬롯 추출(slot extraction)과 슬롯 채우기(slot filling)라고 지칭할 수 있다. 종래의 대화 시스템은 미리 정해진 슬롯에 대하여 슬롯 채우기를 수행하였으나, 미리 정의되지 않은 슬롯을 사용자와의 대화로부터 추출함으로써 대화의 유연성을 향상시킬 수 있도록, 질의응답 기법을 이용하는 것이 논의된다. 질의응답 기법을 이용하는 대화 시스템은 사용자의 입력 메시지에 대하여 질의를 하고, 그러한 질의에 응답하여, 슬롯과 데이터를 획득한다.
질의응답 기법을 이용하는 대화 시스템은, 예컨대, 설계자에 의해 미리 정의된 질의를 이용하여 슬롯을 추출할 수 있다. 예컨대, 설계자는 <사람이름-나이>라는 개체 타입에 대해 "당신의 나이는 몇 살입니까"라는 질의나 "<사람이름>의 나이는 몇 살입니까"와 같은 질의 템플릿을 미리 정의하며, 대화 시스템은 미리 정의된 질의 혹은 템플릿을 이용하여 슬롯 추출을 수행할 수 있다. 이에 대하여, "Question Answering Resources Applied to Slot-Filling, Jeff Mitchell and Sebastian Riedel, University College London"(2018.04.22.)에 따르면, 구조화된 슬롯 유형으로부터 자동으로 질문을 생성하는 방식을 제안하고 있다. 예컨대, 대화 시스템 내 슬롯 추출기는 "Place_Of_Birth(<Person, ?)"와 같은 구조화된 포맷으로부터 "Where was Obama born"과 같은 질문을 생성할 수 있다. 그러나, 위와 같은 방식에 따르면, 설계자가 모든 유형의 슬롯에 대하여, 질의, 질의 템플릿 또는 구조화된 슬롯 유형을 미리 정의할 필요가 있으며, 그렇게 설계자에 의해 정의된 질의는 사용자와의 대화 중에 발화된 입력 메시지의 분석에 적합하지 않을 수 있어, 결과적으로 슬롯 추출의 성능을 떨어뜨릴 수 있다.
본 개시는 위와 같은 문제점들을 해결하기 위한 것으로서, 대화 시스템에서 수행되는 사용자와의 대화에서, 사용자로부터의 입력 메시지에 대하여 자연어 이해를 수행하기 위해 이용되는 슬롯을 추출하기 위한 장치, 방법 및 컴퓨터 판독가능 저장 매체를 제시한다.
본 개시의 일부 실시예에서, 슬롯을 추출하기 위한 슬롯 추출 장치가 설명된다. 예시적인 슬롯 추출 장치는 맥락 수신부, 슬롯 질의 생성부, 슬롯 질의 선택부, 슬롯 질의 응답부, 슬롯 평가부 및 슬롯 선택부를 포함할 수 있다. 맥락 수신부는 대화 시스템으로부터 입력 메시지와 연관된 대화의 현재 맥락을 수신할 수 있다. 슬롯 질의 생성부는 현재 맥락에 관련된 복수의 슬롯 질의를 생성할 수 있다. 슬롯 질의 선택부는 현재 맥락에 기초하여, 상기 생성된 복수의 슬롯 질의 중 둘 이상을 선택할 수 있다. 슬롯 질의 응답부는 질의응답을 수행하는 인공지능 모델을 포함하고, 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 입력 메시지로부터 하나 이상의 슬롯 및 하나 이상의 슬롯 각각에 대응하는 데이터를 출력할 수 있다. 슬롯 평가부는 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력할 수 있다. 슬롯 선택부는 평가 결과에 기초하여, 상기 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택할 수 있다.
일부 예시에서, 슬롯 질의 생성부는 제1 질의 생성부를 포함할 수 있다. 제1 질의 생성부는 미리 정의된 하나 이상의 대화 시나리오를 저장할 수 있다. 하나 이상의 대화 시나리오 각각은 하나 이상의 메시지, 하나 이상의 메시지 중 일부에 대응하는 의도, 의도에 연관된 하나 이상의 프리셋 슬롯 및 하나 이상의 프리셋 슬롯 각각에 대응하는 슬롯 타입을 포함할 수 있다. 제1 질의 생성부는 현재 맥락에 기초하여, 하나 이상의 대화 시나리오 중 하나에서 정의된 하나 이상의 프리셋 슬롯 중 일부를 선택하고, 선택된 프리셋 슬롯을 포함하는 슬롯 질의를 생성할 수 있다.
일부 다른 예시에서, 슬롯 질의 생성부는 제2 질의 생성부를 포함할 수 있다. 제2 질의 생성부는 사용자와의 대화와 다른 대화 이력을 저장하는 데이터베이스를 포함할 수 있다. 제2 질의 생성부는 데이터베이스에 저장된 대화 이력에 기초하여, 슬롯 질의를 생성할 수 있다. 데이터베이스는 대화 이력에 포함된 질의와 응답의 하나 이상의 메시지 쌍, 각 메시지 쌍에 대응하는 메시지의 의도 및 해당 메시지 쌍과 연관된 하나 이상의 슬롯을 저장할 수 있다. 제2 질의 생성부는 현재 맥락에 기초하여, 대화 이력에 포함된 제1 메시지 쌍을 결정하고, 결정된 제1 메시지 쌍과 연관된 하나 이상의 제1 슬롯을 결정하고, 결정된 하나 이상의 제1 슬롯을 포함하는 슬롯 질의를 생성할 수 있다.
일부 다른 실시예에서, 입력 메시지에 대하여 슬롯을 추출하기 위한 슬롯 추출 방법이 설명된다. 예시적인 슬롯 추출 방법은 컴퓨팅 장치의 제어 하에서 수행될 수 있으며, 대화 시스템으로부터 입력 메시지와 연관된 대화의 현재 맥락을 수신하는 맥락 수신 단계; 현재 맥락에 관련된 복수의 슬롯 질의를 생성하는 슬롯 질의 생성 단계; 현재 맥락에 기초하여, 생성된 복수의 슬롯 질의 중 둘 이상을 선택하는 질의 선택 단계; 질의응답을 수행하는 인공지능 모델에 의해, 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 입력 메시지로부터 하나 이상의 슬롯 및 하나 이상의 슬롯 각각에 대응하는 데이터를 출력하는 질의 응답 단계; 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력하는 슬롯 평가 단계; 및 평가 결과에 기초하여, 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택하는 슬롯 선택 단계를 포함할 수 있다.
일부 또 다른 실시예에서, 슬롯 추출 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 설명된다. 예시적인 슬롯 추출 프로그램은 사용자로부터 수신된 입력 메시지에 대하여, 슬롯을 추출할 수 있다. 슬롯 추출 프로그램은 컴퓨팅 장치에 의해 실행되는 경우, 대화 시스템으로부터 입력 메시지와 연관된 대화의 현재 맥락을 수신하는 맥락 수신 동작; 현재 맥락에 관련된 복수의 슬롯 질의를 생성하는 슬롯 질의 생성 단계; 현재 맥락에 기초하여, 생성된 복수의 슬롯 질의 중 둘 이상을 선택하는 질의 선택 동작; 질의응답을 수행하는 인공지능 모델에 의해, 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 입력 메시지로부터 하나 이상의 슬롯 및 하나 이상의 슬롯 각각에 대응하는 데이터를 출력하는 질의 응답 동작; 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력하는 슬롯 평가 동작; 및 평가 결과에 기초하여, 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택하는 슬롯 선택 동작을 수행하도록 하는 하나 이상의 명령어를 포함할 수 있다.
이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시예들과 기술적 특징들에 더하여, 추가적인 실시예와 기술적 특징들이 이해될 수 있을 것이다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 예시적인 대화 시스템의 블록도이다.
도 2는 본 개시의 적어도 일부 실시예에 따른 슬롯 추출 장치의 블록도이다.
도 3은 본 개시의 적어도 일부 실시예에 따라, 자연어 이해를 수행하기 위해 이용되는 슬롯을 추출하는 예시적인 프로세스를 도시한다.
도 4은 본 개시의 적어도 일부 실시예에 따라, 슬롯 추출을 수행하는 데 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다.
도 5는 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 구현예 및 실시예를 상세히 설명한다. 그러나, 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다.
본 개시는 일반적으로, 대화 시스템에서 자연어 이해를 위하여 이용되는 슬롯(slot)을 추출하기 위한 방법, 장치, 시스템, 컴퓨터 판독가능 저장 매체 및 이에 저장된 프로그램에 관한 것이다.
본 개시에서, "대화 시스템(dialogue system)"이라는 용어는 사용자로 하여금 대화형의 인터페이스 상에서 인공지능에 의한 상호작용을 하도록 할 수 있는 시스템 혹은 장치를 의미한다. 또한, 본 개시에서, 대화 시스템은 자연어 이해(Natural Language Understanding; NLU)를 구현하도록 구성되며, 예컨대, 챗봇(chatbot), 가상 비서(virtual assistant) 등으로도 지칭될 수 있다. "슬롯"이라는 용어는 사용자와의 대화에서 요구될 데이터에 대한 개체명 또는 사용자로부터의 발화, 즉, 입력 메시지로부터 추출될 데이터에 대한 개체명을 지칭한다. 예컨대, 카페 또는 식당에서의 주문 시나리오에서, 고객 명칭, 메뉴, 수량, 매장 이용 여부가 슬롯일 수 있다. 본 개시에서 사용되는 "슬롯 질의"라는 용어는, 슬롯 추출에 질의 응답 기법이 이용되는 경우, 사용자로부터의 발화, 즉, 입력 메시지로부터 슬롯을 추출하기 고, 또한, 필요할 경우, 슬롯 채우기를 수행하기 위하여, 이용되는 질의를 지칭하며, 이는 대화 시스템과 사용자 간의 대화에서 사용자 혹은 대화 시스템을 향한 질의, 즉, 대화 상의 질의와 구별된다.
도 1은 본 개시의 적어도 일부 실시예와 연관되는 대화 시스템(100)의 블록도이다. 도 1은 대화 시스템(100)이 사용자와의 다이얼로그를 수행하는 일 예시를 나타낸다. 도 1에 도시된 바와 같이, 대화 시스템(100)은 자연어 이해 모듈(Natural Language Understanding module; 이하, NLU 모듈)(110), 대화 관리 모듈(120), 슬롯 추출기(130) 및 자연어 생성 모듈(Natural Language Generation 모듈; 이하 NLG 모듈)(140)을 포함할 수 있다. 대화 관리 모듈(120)은 대화 상태 추적 모듈(Dialogue State Tracking module; 이하, DST 모듈)(122) 및 정책 모듈(124)을 포함할 수 있다. 도 1에 도시된 대화 시스템(100)의 구성은 단지 예시적인 것이며, 다양한 유형의 대화 시스템(100)이 본 개시와 연관될 수 있다는 점이 통상의 기술자에게 이해될 것이다. 예컨대, 대화 시스템(100)은 도 1에 도시된 바와 다른 방식으로 컴포넌트가 연결될 수 있거나, 임의의 컴포넌트가 추가될 수 있거나 생략될 수 있거나, 보다 작은 컴포넌트로 분할되는 것도 가능할 수 있다.
사용자는 대화 시스템(100)을 직접 이용하거나 또는 유선 또는 무선 네트워크를 통하여 대화 시스템(100)과 연결되는 사용자 단말 장치를 이용하여 대화 시스템(100)에 의해 구현된 챗봇과 대화를 수행할 수 있다. 대화 시스템(100)은 사용자에 의해 입력된 입력 메시지를 수신할 수 있으며, 이러한 입력 메시지는 자연어일 수 있다. 대화 시스템(100)은 입력 메시지에 응답하여 자연어 형태의 응답 메시지를 출력할 수 있다. 대화 시스템(100)은 예컨대, 다음과 같이 사용자와의 대화를 수행할 수 있다.
도 1에 도시된 바와 같이, 대화 시스템(100)은 NLU 모듈(110), 대화 관리 모듈(120), 슬롯 추출기(130) 및 NLG 모듈(140)을 이용하여 사용자와의 대화를 수행할 수 있다. NLU 모듈(110), 대화 관리 모듈(120), 슬롯 추출기(130) 및 NLG 모듈(140) 중 적어도 일부는 머신러닝 기법을 이용하여 구현될 수 있다. NLU 모듈(110)은 사용자로부터 입력 메시지를 수신할 수 있으며, 이러한 입력 메시지에 기초하여 결정된 해당 입력 메시지의 슬롯과 그에 대응하는 데이터를 대화 관리 모듈(120)에 전달할 수 있다. 예컨대, 입력 메시지가 "오늘 10시까지 아메리카노 두 잔 들고 오세요"인 경우, 슬롯은 "시각", "상품명", "수량"일 수 있으며, 대응하는 데이터는 각각 "오늘 10시", "아메리카노" 및 "두 잔"일 수 있다.
대화 관리 모듈(120)은 사용자와 현재 진행중인 대화의 현재 맥락을 결정할 수 있다. DST 모듈(122)은 대화 시스템(100)에 의해 수행되는 대화 및 이에 관한 데이터를 검색하고 관리할 수 있다. 일부 예시에서, DST 모듈(122)은 NLU 모듈(110)로부터 슬롯-데이터를 수신할 수 있다. DST 모듈(122)은 현재 수행 중인 다이얼로그의 이력 혹은 맥락에 관한 데이터를 획득하고 이러한 맥락에 관한 데이터 및 슬롯-데이터에 기초하여, DST 값을 출력할 수 있다. 예컨대, 대화가 배달 주문과 관련되며, 입력 메시지가 "오늘 10시까지 아메리카노 두 잔 들고 오세요"인 경우, DST 모듈(122)은 이전 대화를 고려하여, 배달 주문을 진행하기 위하여 어느 정도 데이터를 확보하였는지 결정할 수 있으며, 그에 따른 대화의 상태에 관한 DST 변수와 그에 각각 대응하는 값을 결정할 수 있다. 이러한 DST 값은 미리 정해진 데이터 포맷을 가질 수 있다.
정책 모듈(124)은 NLU 모듈(110)에 의한 입력 메시지의 수신 이후에, 대화 시스템(100)이 수행할 행동 및 응답 메시지에 대한 정책을 결정할 수 있다. 이러한 정책은 입력 메시지에 대한 응답 메시지의 유형을 포함할 수 있다. 일 예시에서, 정책 모듈(124)에 의해 결정되는 메시지의 유형은 사용자에게 추가 정보를 물어보는 형태를 취할 수 있다. 다른 예시에서, 정책 모듈(124)에 의해 결정되는 메시지의 유형은 사용자에게 질의에 대한 응답 데이터를 포함하는 형태를 취할 수 있다.
슬롯 추출기(130)는 NLU 모듈(110)에 의해 수신된 입력 메시지에 대하여, 슬롯을 추출하고 추출된 슬롯에 대응한 데이터를 입력 메시지로부터 획득할 수 있다. 이러한 슬롯 추출기(130)는 질의응답을 수행하는 인공지능 모델을 포함할 수 있다. 슬롯 추출기(130)는 NLU 모듈(110)로부터 입력 메시지를 수신하고, 인공지능 모델을 이용하여 입력 메시지에 대하여 질의응답 기반의 슬롯 추출을 수행할 수 있다. 또한, 슬롯 추출기(130)는 대화 시스템(100), 예컨대, 대화 관리 모듈(120)로부터, 사용자와의 대화의 현재 맥락을 수신할 수 있다. 현재 맥락은 예컨대, 현재 대화의 상태 값(DST 값) 및/또는 입력 메시지의 의도를 포함할 수 있다.
일부 실시예에서, 슬롯 추출기(130)는 현재 맥락에 관련된 복수의 슬롯 질의를 생성할 수 있다. 예컨대, 대화의 현재 맥락이 카페에서 주문을 받는 대화 중 이전 대화에서 고객 이름을 수신한 경우, 슬롯 추출기(130)는 "매장에서 드시고 가실 건가요?", 메뉴, 수량, "1회용 용기로 드릴까요?", "주문음료는 따뜻한 것인가" "결제 수단은 무엇인가", "영수증은 필요한가", 등과 같은 다양한 슬롯 질의를 추출할 수 있다. 이러한 슬롯 질의는 자연어의 형태(예컨대, "매장에서 드시고 가실 건가요?", "1회용 용기로 드릴까요?" 등)를 취할 수 있으나, 이에 제한되지 않으며, 슬롯 자체의 명칭(예컨대, 메뉴, 수량 등)일 수도 있다. 일부 예시에서, 슬롯 추출기(130)는 미리 정의된 하나 이상의 대화 시나리오에 기초하여, 슬롯 질의를 생성할 수 있다. 추가적이거나 대안적으로, 슬롯 추출기(130)는 사용자와 현재 수행되는 대화와 다른 대화 이력을 미리 저장할 수 있으며, 이러한 대화 이력에 기초하여, 슬롯 질의를 생성할 수 있다.
슬롯 추출기(130)는 대화 관리 모듈(120)로부터 수신된 현재 맥락에 기초하여, 생성된 복수의 슬롯 질의 중 둘 이상을 선택할 수 있다. 전술한 예시에서, 입력 메시지가 "아메리카노 한 잔 주세요"인 경우, 슬롯 추출기(130)는 현재 대화 맥락을 고려하여, "매장에서 드시고 가실 건가요?", "메뉴는 무엇인가요?", "수량은 몇 개인가요?" 등과 같은 둘 이상의 슬롯 질의를 선택할 수 있다.
슬롯 추출기(130)는 선택된 둘 이상의 슬롯 질의 각각을 인공지능 모델에 입력할 수 있으며, 인공지능 모델은 입력 메시지를 분석하여 입력된 각 슬롯 질의에 응답한 하나 이상의 슬롯과 각 슬롯에 대응한 데이터를 추출할 수 있다. 즉, 슬롯 추출기(130)의 인공지능 모델은 둘 이상의 슬롯 질의에 기초하여, 둘 이상의 슬롯과 각 슬롯에 대응하는 데이터를 출력할 수 있다.
이후, 슬롯 추출기(130)는 인공지능 모델로부터 출력된 둘 이상의 슬롯을 평가하여, 그러한 평가 결과를 출력할 수 있다. 슬롯의 평가는 현재 맥락에 기초하여 수행될 수 있다. 일부 예시에서, 슬롯 추출기(130)는 각 슬롯과 현재 맥락의 연관도를 연산할 수 있다. 슬롯 추출기(130)는, 예컨대, 앙상블 모델(ensemble model) 기반 연산, 베이즈 정리(Bayes' theorem) 기반 통계 연산 및 트랜스포머 딥러닝 모델 기반 가중치 연산 중 적어도 하나를 이용될 수 있으나, 이에 제한되지 않는다. 일부 예시에서, 슬롯 추출기(130)는 연산된 연관도에 기초하여, 하나 이상의 슬롯을 선택할 수 있다. 예컨대, 슬롯 추출기(130)는 미리 정해진 연관도 값 이상의 연관도를 가지는 슬롯을 선택하거나, 평가된 슬롯 중 미리 정해진 수의 슬롯을 선택할 수 있다.
슬롯 추출기(130)는 선택된 슬롯 및 해당 슬롯에 대하여 입력 메시지로부터 추출된 데이터를 NLU 모듈(110)에 전송할 수 있다. 이와 같이, NLU 모듈(110)이 대화 관리 모듈(120)에 전달하는 슬롯-데이터 쌍은 슬롯 추출기(130)에 의해 결정되고 NLU 모듈(110)은 슬롯 데이터 쌍을 대화 관리 모듈(120)에 전달하여 사용자와의 대화를 진행시킬 수 있다.
한편, 챗봇 장치(100)는 정책 모듈(124)에 의해 결정된 정책에 기초하여, 예컨대, 주문, 검색, 연산 등 다양한 동작을 수행할 수 있다. NLG 모듈(140)은 정책 및 응답 데이터에 기초하여, 응답 메시지를 생성할 수 있다. 예컨대, 배달 주문의 대화에서, 정책 모듈(124)에 의해 배달 장소를 묻는 정책이 결정되었다면, NLG 모듈(140)은 "어디로 배달해 드릴까요?"와 같은 배달 장소를 묻는 자연어를 생성할 수 있다.
전술한 바와 같이, 질의응답 기반 슬롯 추출에 있어 둘 이상의 슬롯 질의를 이용하므로, 다양한 유형의 입력 메시지에 대하여, 현재 대화에 적절한 슬롯을 추출하는 것이 가능해지며, 슬롯 추출의 성능도 향상시킬 수 있다. 또한, 슬롯 질의의 생성에 있어서, 다양한 대화의 이력이나 미리 정해진 유사 시나리오를 이용하여 슬롯 질의를 획득 및/또는 생성하므로, 다양한 유형의 슬롯 질의를 획득할 수 있으며, 결과적으로, 질의응답 기반의 슬롯 추출의 성능을 보다 향상할 수 있으며, 이는 자연어 이해의 성능을 향상시키는 것으로 이어질 수 있다.
도 2는 본 개시의 적어도 일부 실시예에 따른 슬롯 추출 장치(200)의 블록도이다. 슬롯 추출 장치(200)는 도 1의 슬롯 추출기(130)와 같이 대화 시스템의 내부 구성일 수 있으나, 이에 제한되지 않으며, 대화 시스템의 외부에서 구현되는 것도 가능하다. 슬롯 추출 장치(200)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다.
일부 실시예에서, 슬롯 추출 장치(200)는 도 2에 도시된 바와 같이, 맥락 수신부(210), 슬롯 질의 생성부(220), 슬롯 질의 선택부(230), 슬롯 질의 응답부(240), 슬롯 평가부(250) 및 슬롯 선택부(260)를 포함할 수 있다. 슬롯 추출 장치(200)는 본 개시에 따른 하나 이상의 프로그램을 내부 메모리에 저장할 수 있으며, 이러한 하나 이상의 프로그램은 프로세서의 실행에 의해, 이하에서 설명되는 슬롯 질의 생성부(220), 슬롯 질의 선택부(230), 슬롯 질의 응답부(240), 슬롯 평가부(250) 및 슬롯 선택부(260)의 동작 중 적어도 일부를 수행할 수 있다. 이러한 컴포넌트들(210, 220, 230, 240, 250 및 260)은 개별적인 컴포넌트로 도시되었으나, 개시된 대상의 범위를 벗어나지 않으면서, 추가적인 컴포넌트로 분리될 수 있거나 더 적은 컴포넌트로 조합되거나 제거될 수 있다. 또한, 도 2에서는 컴포넌트가 소프트웨어에 의해 구현되는 것으로 설명되지만, 당업자라면 컴포넌트의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합을 통하여 개별적으로 및/또는 종합적으로 구현될 수 있음을 이해할 것이다.
대화 시스템은 사용자와 대화를 수행할 수 있으며, 사용자로부터 입력 메시지를 수신할 수 있다. 슬롯 추출 장치(200)는 사용자로부터 수신된 입력 메시지를 획득할 수 있다. 맥락 수신부(210)는 대화 시스템, 예컨대, 도 1의 대화 시스템(100)의 대화 관리 모듈(120)로부터 대화의 현재 맥락을 수신할 수 있다. 현재 맥락은 예컨대, 대화의 상태 값(DST 값) 및/또는 입력 메시지의 의도를 포함할 수 있다.
슬롯 질의 생성부(220)는 맥락 수신부(210)에 의해 수신된 현재 맥락에 관련된 복수의 슬롯 질의를 생성할 수 있다. 일부 예시에서, 슬롯 질의 생성부(220)는 제1 질의 생성부(222)를 포함할 수 있다. 제1 질의 생성부(222)는 미리 정의된 하나 이상의 대화 시나리오를 저장할 수 있다. 대화 시스템 혹은 슬롯 추출 장치(200)의 운용자는 대화 시스템 혹은 슬롯 추출 장치(200)를 운용하기 전에 하나 이상의 대화 시나리오를 작성할 수 있다. 각각의 대화 시나리오는 대화 시스템과 사용자의 대화인 하나 이상의 메시지를 포함할 수 있다. 대화 시나리오는 하나 이상의 메시지 중 일부에 대응하는 의도(intent)를 더 포함할 수 있다. 일부 예시에서, 일부 예시에서, 운용자는 대화 시나리오에서 요구되는 하나 이상의 프리셋 슬롯을 정의할 수 있으며, 이러한 프리셋 슬롯을 대화 시나리오 내에 포함된 일부 메시지 혹은 일부 메시지의 의도와 연관시킬 수 있다. 추가적으로, 운용자는 각각의 프리셋 슬롯에 대한 슬롯 타입 혹은 변수명(variable)을 정의할 수 있다. 이와 같이, 대화 시나리오는 하나 이상의 메시지, 하나 이상의 메시지 중 일부에 대응하는 의도, 각 의도에 연관된 프리셋 슬롯 및 각 프리셋 슬롯에 대응하는 슬롯 타입을 포함할 수 있다.
일부 예시에서, 제1 질의 생성부(222)는 현재 맥락에 기초하여, 하나 이상의 시나리오를 선택할 수 있다. 또한, 제1 질의 생성부(222)는 현재 맥락에 기초하여, 선택된 각 시나리오에서 정의된 하나 이상의 프리셋 슬롯 중 일부를 선택하고, 선택된 프리셋 슬롯을 포함하는 슬롯 질의를 생성할 수 있다. 일 예시에서, 제1 질의 생성부(222)는 선택된 프리셋 슬롯과 연관된 시나리오 내 메시지를 슬롯 질의로서 선택할 수 있다. 다른 예시에서, 제1 질의 생성부(222)는 선택된 프리셋 슬롯 자체를 포함하도록 예컨대, 문장, 단어 등과 같은 임의의 유형의 슬롯 질의를 생성할 수 있다. 이와 같이, 제1 질의 생성부(222)는 미리 정의된 하나 이상의 대화 시나리오에 기초하여, 하나 이상의 슬롯 질의를 생성할 수 있다.
추가적이거나 대안적인 일부 예시에서, 슬롯 질의 생성부(220) 제2 질의 생성부(224)를 포함할 수 있다. 제2 질의 생성부(224)는 데이터베이스를 포함할 수 있다. 제2 질의 생성부(224)의 데이터베이스는 대화 시스템이 수행하는 대화의 이력을 저장할 수 있다. 데이터베이스에 저장되는 대화의 이력은 대화 시스템과 사용자 간의 현재 대화와 다른 대화, 예컨대, 다른 사용자와의 대화에 관한 것일 수 있다. 데이터베이스는 대화 이력에 포함된 하나 이상의 메시지, 하나 이상의 메시지 중 일부에 대한 의도, 다른 대화 및/또는 일부 메시지와 연관된 슬롯, 그러한 슬롯에 대한 슬롯 유형 등을 서로 연관시켜 저장할 수 있다. 일부 예시에서, 데이터베이스는 질의와 답변에 대응하는 메시지 쌍의 단위로, 메시지와, 의도와 슬롯을 연관지어 저장할 수 있다. 이러한 예시에서, 데이터베이스는 대화 이력에 포함된 질의와 응답의 하나 이상의 메시지 쌍, 각 메시지 쌍에 대응하는 메시지의 의도 및 해당 메시지 쌍과 연관된 하나 이상의 슬롯을 저장할 수 있다.
제2 질의 생성부(224)는 현재 맥락에 기초하여, 대화 및/또는 메시지 쌍을 결정할 수 있으며, 선택된 대화 및/또는 메시지 쌍을 이용하여, 슬롯 질의를 생성할 수 있다. 제2 질의 생성부(224)는 결정된 대화 및/또는 메시지 쌍과 연관된 하나 이상의 슬롯을 결정하며, 결정된 하나 이상의 슬롯을 포함하는 슬롯 질의를 생성할 수 있다. 일 예시에서, 제2 질의 생성부(224)는 결정된 메시지 쌍에 포함된 메시지를 슬롯 질의로서 선택할 수 있다. 다른 예시에서, 제2 질의 생성부(224)는 결정된 하나 이상의 슬롯을 포함하도록, 예컨대, 문장, 단어 등과 같은 임의의 유형의 슬롯 질의를 생성할 수 있다. 이와 같이, 제2 질의 생성부(224)는 데이터베이스에 저장된 다른 대화의 이력 기초하여, 하나 이상의 슬롯 질의를 생성할 수 있다.
슬롯 질의 선택부(230)는, 현재 맥락에 기초하여, 슬롯 질의 생성부(220)에 의해 생성된 복수의 슬롯 질의 중 둘 이상을 선택할 수 있다. 일부 예시에서, 슬롯 질의 선택부(230)는 대화의 현재 맥락과 각 슬롯 질의 간의 의미 유사도를 연산할 수 있다. 예컨대, 슬롯 질의 선택부(230)는 키워드 매칭 기법, 인공지능 유사도 모델, 단어/문장 임베딩(word/sentence embedding) 비교 기법 등을 이용하여, 각 슬롯 질의와 현재 맥락 간의 유사도를 연산할 수 있다. 슬롯 질의 선택부(230)는 연산된 유사도에 기초하여, 하나 이상의 슬롯 질의, 바람직하게는 둘 이상의 슬롯 질의를 선택할 수 있다. 요구되는 구현예에 따라, 선택되는 슬롯 질의의 수가 미리 정해질 수 있거나, 선택되는 슬롯 질의에 대한 조건(예컨대, 소정 수치를 넘는 유사도를 가지는 슬롯 질의라는 조건)이 미리 정해질 수 있으나, 슬롯 질의를 선택하는 예시는 이에 제한되지 않는다.
슬롯 질의 응답부(240)는 슬롯 질의 선택부(230)에 의해 선택된 하나 이상의 슬롯 질의, 바람직하게는 둘 이상의 슬롯 질의 각각을 이용하여 입력 메시지로부터 슬롯과 해당 슬롯에 대응하는 데이터를 출력할 수 있다. 슬롯 질의 응답부(240)는 도 2에서 도시된 바와 같이, 대상 자연어에 대하여 질의응답을 수행하는 인공지능 모델(이하, QA 모델)(242)을 포함할 수 있다. QA 모델(242)은 대상 자연어에 대하여, 질의를 입력하면, 그러한 질의에 대한 응답을 대상 자연어로부터 찾아내어 대상 자연어에 포함된 데이터를 슬롯과 함께 추출하는 동작을 수행할 수 있다. 이러한 QA 모델(242)은 학습 데이터(244)에 의해 학습될 수 있다. QA 모델(240)의 질의응답 기반 슬롯 추출의 일 예시는 논문인 "Question Answering Resources Applied to Slot-Filling, Jeff Mitchell and Sebastian Riedel, University College London"(2018.04.22.) 에 개시되어 있다. 이와 같이, 슬롯 질의 응답부(240)는 슬롯 질의 각각을 입력받아, 입력 메시지로부터 하나 이상의 슬롯 및 하나 이상의 슬롯 각각에 대응하는 데이터를 출력할 수 있다.
슬롯 평가부(250)는 슬롯 질의 응답부(240)에 의해 출력된 둘 이상의 슬롯을 평가할 수 있다. 슬롯 평가부(250)는 맥락 수신부(210)에 의해 수신된 대화의 현재 맥락을 이용하여 각각의 슬롯을 평가할 수 있다. 일부 예시에서, 슬롯 평가부(250)는 각 슬롯과 현재 맥락 간의 연관도 혹은 각 슬롯과 현재 맥락에서의 입력 메시지 간의 연관도를 연산할 수 있다. 슬롯 평가부(250)는, 예컨대, 앙상블 모델(ensemble model) 기반 연산, 베이즈 정리(Bayes' theorem) 기반 통계 연산 및 트랜스포머 딥러닝 모델 기반 가중치 연산 중 적어도 하나를 이용될 수 있으나, 슬롯의 평가 방법은 이에 제한되지 않는다. 이와 같이, 슬롯 평가부(250)는 둘 이상의 슬롯을 평가하고, 평가 결과를 출력할 수 있다.
슬롯 선택부(260)는 슬롯 평가부(250)에 의해 출력된 평가 결과에 기초하여, 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택할 수 있다. 일부 예시에서, 슬롯 선택부(260)는 슬롯 평가부(250)에 의해 연산된 연관도에 기초하여, 하나 이상의 슬롯을 선택할 수 있다. 예컨대, 슬롯 선택부(260)는 미리 정해진 연관도 값 이상의 연관도를 가지는 슬롯을 선택하거나, 평가된 슬롯 중 미리 정해진 수의 슬롯을 선택할 수 있으나, 슬롯 선택의 방식은 이에 제한되지 않는다.
이와 같이, 슬롯 추출 장치(200)는 입력 메시지로부터 하나 이상의 슬롯 및 그러한 슬롯에 대응하는 데이터를 출력할 수 있으며, 대화 시스템은 슬롯 추출 장치(200)에 의해 추출된 슬롯-데이터를 입력 메시지를 자연어 이해(NLU)를 수행하는 데에 이용할 수 있다.
도 3은 본 개시의 적어도 일부 실시예에 따라, 자연어 이해를 수행하기 위해 이용되는 슬롯을 추출하는 예시적인 프로세스(300)를 도시한다. 예컨대, 프로세스(300)는 도 1의 대화 시스템(100), 슬롯 추출기(130) 및/또는 도 2의 슬롯 추출 장치(200)와 같은 컴퓨팅 장치의 제어 하에서 수행될 수 있다. 도 3에 도시된 프로세스(300)는 블록(310, 320, 330, 340, 350 및/또는 360)에 의하여 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 도 3에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. 대화 시스템은 사용자와 대화를 수행할 수 있으며, 사용자로부터 입력 메시지를 수신할 수 있다. 프로세스(300)는 "입력 문장과 연관된 대화의 현재 맥락을 수신하는 블록(310)에서 시작할 수 있다.
블록(310)에서, 컴퓨팅 장치는 대화 시스템으로부터 사용자와 대화 시스템 간의 대화의 현재 맥락을 수신할 수 있다. 현재 맥락은, 예컨대, 대화의 상태 값(DST 값) 및/또는 입력 메시지의 의도를 포함할 수 있다. 프로세스(300)는 블록(310)으로부터 "현재 맥락에 관련된 복수의 슬롯 질의를 생성하는 블록(320)으로 이어질 수 있다.
블록(320)에서, 컴퓨팅 장치는 블록(310)에서 수신된 현재 맥락에 관련된 복수의 슬롯 질의를 생성할 수 있다. 일부 예시에서, 컴퓨팅 장치는 미리 정의된 하나 이상의 대화 시나리오에 기초하여, 슬롯 질의를 생성할 수 있다. 추가적이거나 대안적으로, 컴퓨팅 장치는 사용자와 현재 수행되는 대화와 다른 대화 이력을 미리 저장할 수 있으며, 이러한 대화 이력에 기초하여, 슬롯 질의를 생성할 수 있다. 프로세스(300)는 블록(320)으로부터 "둘 이상의 슬롯 질의를 선택"하는 블록(330)으로 이어질 수 있다.
블록(330)에서, 컴퓨팅 장치는 블록(310)에서 수신된 현재 맥락에 기초하여, 블록(320)에서 생성된 복수의 슬롯 질의 중 둘 이상을 선택할 수 있다. 일부 예시에서, 컴퓨팅 장치는 대화의 현재 맥락과 각 슬롯 질의 간의 의미 유사도를 연산할 수 있으며, 연산된 유사도에 기초하여 둘 이상의 슬롯 질의를 선택할 수 있다. 본 개시에서는 일반적으로 슬롯 질의를 둘 이상을 선택하는 예시를 설명하였으나, 이는 바람직한 예시이며, 본 개시의 사상에서 벗어나지 않으면서, 하나의 슬롯 질의를 선택하는 것도 가능하다. 프로세스(300)는 블록(330)으로부터 "각 슬롯 질의에 응답하여, 하나 이사의 슬롯 및 데이터를 출력"하는 블록(340)으로 이어질 수 있다.
블록(340)에서, 컴퓨팅 장치는 인공지능 모델을 이용하여, 블록(330)에서 선택된 둘 이상의 슬롯 질의 각각에 응답한 하나 이상의 슬롯 및 하나 이상의 슬롯 각각에 대응하는 데이터를 출력할 수 있다. 인공지능 모델은 컴퓨팅 장치에 포함될 수 있으며, 입력 메시지로부터 슬롯 및 데이터를 추출하기 위한 동작을 수행할 수 있다. 이와 같이, 컴퓨팅 장치는 둘 이상의 슬롯 질의에 응답하여, 둘 이상의 슬롯 및 각 슬롯에 대응한 데이터를 출력할 수 있다. 프로세스(300)는 블록(340)으로부터 "현재 맥락에 기초하여, 둘 이상의 슬롯을 평가"하는 블록(350)으로 이어질 수 있다.
블록(350)에서, 컴퓨팅 장치는 블록(340)에서 출력된 둘 이상의 슬롯을 평가할 수 있다. 컴퓨팅 장치는 블록(310)에서 수신된 대화의 현재 맥락을 이용하여 각각의 슬롯을 평가할 수 있다. 일부 예시에서, 컴퓨팅 장치는 각 슬롯과 현재 맥락 간의 연관도를 연산할 수 있다. 이와 같이, 컴퓨팅 장치는 둘 이상의 슬롯을 평가하고, 평가 결과를 출력할 수 있다. 프로세스(300)는 블록(350)으로부터 "평가 결과에 기초하여 하나 이상의 슬롯을 선택"하는 블록(360)으로 이어질 수 있다.
블록(360)에서, 컴퓨팅 장치는 블록(350)에서 출력된 평가 결과에 기초하여, 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택할 수 있다. 일부 예시에서, 컴퓨팅 장치는 블록(350)에서 연산된, 슬롯과 현재 맥락 간의 연관도에 기초하여, 하나 이상의 슬롯을 선택할 수 있다.
도 4는 본 개시의 적어도 일부 실시예에 따라, 개시의 적어도 일부 실시예에 따라, 대화 시스템에서 수행되는 사용자와의 대화에서, 사용자로부터 수신된 입력 메시지에 대하여 자연어 이해를 수행하기 위해 이용되는 슬롯을 추출하는 데 이용될 수 있는 컴퓨터 프로그램 제품(400)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(410)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(400)의 신호 베어링 매체(410)는 컴퓨터 판독가능 매체(430) 및/또는 기록 가능 매체(440)를 포함할 수 있다.
신호 베어링 매체(410)에 포함된 명령어(420)는 도 1의 대화 시스템(100), 슬롯 추출기(130) 및/또는 도 2의 슬롯 추출 장치(200)와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(420)가 실행되면, 컴퓨팅 장치로 하여금, 대화 시스템으로부터 입력 메시지와 연관된 대화의 현재 맥락을 수신하기 위한 하나 이상의 명령어; 현재 맥락에 관련된 복수의 슬롯 질의를 생성하기 위한 하나 이상의 명령어; 현재 맥락에 기초하여, 생성된 복수의 슬롯 질의 중 둘 이상을 선택하기 위한 하나 이상의 명령어; 질의응답을 수행하는 인공지능 모델에 의해, 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 입력 메시지로부터 하나 이상의 슬롯 및 하나 이상의 슬롯 각각에 대응하는 데이터를 출력하기 위한 하나 이상의 명령어; 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력하기 위한 하나 이상의 명령어; 및 평가 결과에 기초하여, 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택하기 위한 하나 이상의 명령어 중 적어도 하나를 포함한다.
도 5는 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치(500)의 예시적인 실시예의 블록도이다. 일 예시적인 기본적인 구성(502)에서, 컴퓨팅 장치(500)는 하나 이상의 프로세서(504) 및 시스템 메모리(506)를 포함할 수 있다. 메모리 버스(508)는 프로세서(504) 및 시스템 메모리(506) 사이에서 통신하기 위하여 이용될 수 있다.
요구되는 구성에 따라, 프로세서(504)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(504)는 레벨 1 캐시(510), 레벨 2 캐시(512)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(514), 및 레지스터(516)를 포함할 수 있다. 프로세서 코어(514)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(518)는 또한 프로세서(504)와 함께 사용될 수 있거나, 또는 일부 구현예에서 메모리 컨트롤러(518)는 프로세서(504)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(506)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(506)는 운영 체제(520), 하나 이상의 어플리케이션(application)(522), 및 프로그램 데이터(524)를 포함할 수 있다. 어플리케이션(522)은 도 1의 대화 시스템(100), 슬롯 추출기(130), 도 2의 슬롯 추출 장치(200) 및/또는 도 3의 프로세스(300)에 관하여 기술된 기능 블록 및/또는 작용을 포함하여 여기에서 기술된 바와 같은 기능을 수행하도록 배열된 알고리즘(526)을 포함할 수 있다. 프로그램 데이터(524)는, 알고리즘 (526)과 함께 이용하기 위한 데이터(528), 예컨대, 정적 네트워크 환경 등에 해당하는 데이터를 포함할 수 있다. 일부 실시예에서, 어플리케이션(522)은 최적의 전송 환경을 결정하기 위한 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 운영 체제(520) 상에서 프로그램 데이터(524)로 동작하도록 배열될 수 있다. 예컨대, 슬롯 추출 장치(200)는 컴퓨팅 장치(500)의 전부 또는 일부를 포함할 수 있으며 최적의 전송 환경을 결정하는 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 어플리케이션(522)의 전부 또는 일부를 수행하는 것이 가능할 수 있다. 이러한 기술된 기본적인 구성은 도 5에서 파선(502) 내의 그 구성요소들에 의해 도시된다.
컴퓨팅 장치(500)는 기본적인 구성(502) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(530)는 저장부 인터페이스 버스(534)를 통한 기본적인 구성(502) 및 하나 이상의 데이터 저장 장치(532) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(532)는 이동식 저장 장치(536), 고정식 저장 장치(538), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.
시스템 메모리(506), 이동식 저장 장치(536) 및 고정식 저장 장치(538)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(500)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(500)의 일부일 수 있다.
컴퓨팅 장치(500)는 또한 버스/인터페이스 컨트롤러(542)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기본적인 구성(502)으로의 통신을 용이하게 하기 위한 인터페이스 버스(542)를 포함할 수 있다. 예시적인 출력 장치(542)는 그래픽 처리 유닛(548) 및 오디오 처리 유닛(550)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(552)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 또한, 도 5에서 그래픽 처리 유닛(548)은 출력 장치의 컴포넌트로서 도시되었지만, 프로세서(504)에 더하여, 일부 구현예에 따른 연산을 수행하는 것이 가능하다. 본 개시에 따른 일부 실시예에 따르면, 그래픽 처리 유닛(548)은 예컨대, 신경망의 학습, 신경망에 따른 처리 등과 같은 다양한 신경망 관련 연산을 수행하도록 구성될 수 있다. 예시적인 주변 인터페이스(544)는 직렬 인터페이스 컨트롤러(554) 또는 병렬 인터페이스 컨트롤러(556)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(558)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(546)는 네트워크 컨트롤러(560)를 포함하며, 이는 하나 이상의 통신 포트(564)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(562)와의 통신을 용이하게 하도록 배열될 수 있다.
컴퓨팅 장치(500)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(500)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수도 있다.
이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.

Claims (13)

  1. 대화 시스템에서 수행되는 사용자와의 대화에서, 상기 사용자로부터 수신된 입력 메시지에 대하여 자연어 이해를 수행하기 위해 이용되는 슬롯(slot)을 추출하기 위한 슬롯 추출 장치로서,
    상기 대화 시스템으로부터 상기 입력 메시지와 연관된 상기 대화의 현재 맥락을 수신하는 맥락 수신부;
    상기 현재 맥락에 관련된 복수의 슬롯 질의를 생성하는 슬롯 질의 생성부;
    상기 현재 맥락에 기초하여, 상기 생성된 복수의 슬롯 질의 중 둘 이상을 선택하는 슬롯 질의 선택부;
    질의응답을 수행하는 인공지능 모델을 포함하고, 상기 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 상기 입력 메시지로부터 하나 이상의 슬롯 및 상기 하나 이상의 슬롯 각각에 대응하는 데이터를 출력하는 슬롯 질의 응답부;
    상기 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력하는 슬롯 평가부; 및
    상기 평가 결과에 기초하여, 상기 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택하는 슬롯 선택부
    를 포함하는 슬롯 추출 장치.
  2. 제1항에 있어서,
    상기 현재 맥락은 상기 입력 메시지의 의도를 포함하는, 슬롯 추출 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 슬롯 질의 생성부는 미리 정의된 하나 이상의 대화 시나리오를 저장하는 제1 질의 생성부를 포함하고,
    상기 하나 이상의 대화 시나리오 각각은 하나 이상의 메시지, 상기 하나 이상의 메시지 중 일부에 대응하는 의도, 상기 의도에 연관된 하나 이상의 프리셋 슬롯 및 상기 하나 이상의 프리셋 슬롯 각각에 대응하는 슬롯 타입을 포함하고,
    상기 제1 질의 생성부는 상기 현재 맥락에 기초하여, 상기 하나 이상의 대화 시나리오 중 하나에서 정의된 상기 하나 이상의 프리셋 슬롯 중 일부를 선택하고, 선택된 프리셋 슬롯을 포함하는 슬롯 질의를 생성하는, 슬롯 추출 장치.
  4. 제1항 또는 제2항에 있어서,
    상기 슬롯 질의 생성부는 상기 사용자와의 대화와 다른 대화 이력을 저장하는 데이터베이스를 포함하고, 상기 데이터베이스에 저장된 대화 이력에 기초하여, 슬롯 질의를 생성하는 제2 질의 생성부를 포함하고,
    상기 데이터베이스는 상기 대화 이력에 포함된 질의와 응답의 하나 이상의 메시지 쌍, 각 메시지 쌍에 대응하는 메시지의 의도 및 해당 메시지 쌍과 연관된 하나 이상의 슬롯을 저장하고,
    상기 제2 질의 생성부는 상기 현재 맥락에 기초하여, 상기 대화 이력에 포함된 제1 메시지 쌍을 결정하고, 상기 결정된 제1 메시지 쌍과 연관된 하나 이상의 제1 슬롯을 결정하고, 상기 결정된 하나 이상의 제1 슬롯을 포함하는 슬롯 질의를 생성하는, 슬롯 추출 장치.
  5. 제1항에 있어서,
    상기 슬롯 평가부는 상기 슬롯 질의 응답부에 의해 출력된 각 슬롯과 상기 현재 맥락의 연관도를 연산하고,
    상기 슬롯 선택부는 상기 슬롯 평가부에 의해 연산된 연관도에 기초하여, 하나 이상의 슬롯을 선택하는, 슬롯 추출 장치.
  6. 제5항에 있어서,
    상기 연관도의 연산은 앙상블 모델(ensemble model) 기반 연산, 베이즈 정리(Bayes' theorem) 기반 통계 연산 및 트랜스포머 딥러닝 모델 기반 가중치 연산 중 적어도 하나를 이용하는 것인, 슬롯 추출 장치.
  7. 제1항 또는 제5항에 있어서,
    상기 슬롯 선택부는 미리 정해진 수의 슬롯을 선택하는 것인, 슬롯 추출 장치.
  8. 제5항에 있어서,
    상기 슬롯 선택부는 미리 정해진 연관도 값 이상의 연관도를 가지는 슬롯을 선택하는 것인, 슬롯 추출 장치.
  9. 컴퓨팅 장치의 제어 하에서 수행되고, 대화 시스템에서 수행되는 사용자와의 대화에서, 상기 사용자로부터 수신된 입력 메시지에 대하여, 자연어 이해를 수행하기 위해 이용되는 슬롯을 추출하기 위한 슬롯 추출 방법으로서,
    상기 대화 시스템으로부터 상기 입력 메시지와 연관된 상기 대화의 현재 맥락을 수신하는 맥락 수신 단계;
    상기 현재 맥락에 관련된 복수의 슬롯 질의를 생성하는 슬롯 질의 생성 단계;
    상기 현재 맥락에 기초하여, 상기 생성된 복수의 슬롯 질의 중 둘 이상을 선택하는 질의 선택 단계;
    질의응답을 수행하는 인공지능 모델에 의해, 상기 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 상기 입력 메시지로부터 하나 이상의 슬롯 및 상기 하나 이상의 슬롯 각각에 대응하는 데이터를 출력하는 질의 응답 단계;
    상기 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력하는 슬롯 평가 단계; 및
    상기 평가 결과에 기초하여, 상기 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택하는 슬롯 선택 단계
    를 포함하는 슬롯 추출 방법.
  10. 제9항에 있어서,
    상기 컴퓨팅 장치는 미리 정의된 하나 이상의 대화 시나리오를 저장하고,
    상기 하나 이상의 대화 시나리오 각각은 하나 이상의 메시지, 상기 하나 이상의 메시지 중 일부에 대응하는 의도, 상기 의도에 연관된 하나 이상의 프리셋 슬롯 및 상기 하나 이상의 프리셋 슬롯 각각에 대응하는 슬롯 타입을 포함하고,
    상기 슬롯 질의 생성 단계는 상기 현재 맥락에 기초하여, 상기 하나 이상의 대화 시나리오 중 하나에서 정의된 상기 하나 이상의 프리셋 슬롯 중 일부를 선택하고, 선택된 프리셋 슬롯을 포함하는 슬롯 질의를 생성하는 단계를 포함하는, 슬롯 추출 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 컴퓨팅 장치는 상기 사용자와의 대화와 다른 대화 이력을 저장하는 데이터베이스를 포함하고,
    상기 데이터베이스는 상기 대화 이력에 포함된 질의와 응답의 하나 이상의 메시지 쌍, 각 메시지 쌍에 대응하는 메시지의 의도 및 해당 메시지 쌍과 연관된 하나 이상의 슬롯을 저장하고,
    상기 슬롯 질의 생성 단계는 상기 현재 맥락에 기초하여, 상기 대화 이력에 포함된 제1 메시지 쌍을 결정하고, 상기 결정된 제1 메시지 쌍과 연관된 하나 이상의 제1 슬롯을 결정하고, 상기 결정된 하나 이상의 제1 슬롯을 포함하는 슬롯 질의를 생성하는 단계를 포함하는, 슬롯 추출 방법.
  12. 제9항에 있어서,
    상기 슬롯 평가 단계는 상기 질의 응답 단계에서 출력된 각 슬롯과 상기 현재 맥락의 연관도를 연산하는 단계를 포함하고,
    상기 슬롯 선택 단계는 상기 슬롯 평가 단계에서 연산된 연관도에 기초하여, 하나 이상의 슬롯을 선택하는, 슬롯 추출 장치.
  13. 대화 시스템에서 수행되는 사용자와의 대화에서, 사용자로부터 수신된 입력 메시지에 대하여, 자연어 이해를 수행하기 위해 이용되는 슬롯을 추출하기 위한 슬롯 추출 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 슬롯 추출 프로그램은 컴퓨팅 장치에 의해 실행되는 경우,
    상기 대화 시스템으로부터 상기 입력 메시지와 연관된 상기 대화의 현재 맥락을 수신하는 맥락 수신 동작;
    상기 현재 맥락에 관련된 복수의 슬롯 질의를 생성하는 슬롯 질의 생성 단계;
    상기 현재 맥락에 기초하여, 상기 생성된 복수의 슬롯 질의 중 둘 이상을 선택하는 질의 선택 동작;
    질의응답을 수행하는 인공지능 모델에 의해, 상기 선택된 둘 이상의 슬롯 질의 각각을 입력 받아, 상기 입력 메시지로부터 하나 이상의 슬롯 및 상기 하나 이상의 슬롯 각각에 대응하는 데이터를 출력하는 질의 응답 동작;
    상기 현재 맥락에 기초하여, 출력된 둘 이상의 슬롯을 평가하여, 둘 이상의 슬롯에 대한 평가 결과를 출력하는 슬롯 평가 동작; 및
    상기 평가 결과에 기초하여, 상기 둘 이상의 슬롯으로부터 하나 이상의 슬롯을 선택하는 슬롯 선택 동작
    을 수행하도록 하는 하나 이상의 명령어를 포함하는 것인, 컴퓨터 판독가능 저장 매체.
KR1020210145218A 2021-10-28 2021-10-28 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 KR20230060719A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210145218A KR20230060719A (ko) 2021-10-28 2021-10-28 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
PCT/KR2022/015190 WO2023075198A1 (ko) 2021-10-28 2022-10-07 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210145218A KR20230060719A (ko) 2021-10-28 2021-10-28 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Publications (1)

Publication Number Publication Date
KR20230060719A true KR20230060719A (ko) 2023-05-08

Family

ID=86158330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210145218A KR20230060719A (ko) 2021-10-28 2021-10-28 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Country Status (2)

Country Link
KR (1) KR20230060719A (ko)
WO (1) WO2023075198A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822699B2 (en) * 2005-11-30 2010-10-26 Microsoft Corporation Adaptive semantic reasoning engine
US9892192B2 (en) * 2014-09-30 2018-02-13 International Business Machines Corporation Information handling system and computer program product for dynamically assigning question priority based on question extraction and domain dictionary
KR102469712B1 (ko) * 2018-02-22 2022-11-22 삼성전자주식회사 전자 장치 및 이의 자연어 생성 방법
KR102064207B1 (ko) * 2018-02-27 2020-01-09 주식회사 와이즈넛 의료문진을 위한 예제기반 목적지향 대화관리 방법 및 그 장치
KR102204740B1 (ko) * 2019-02-28 2021-01-19 네이버 주식회사 대화 시스템에서의 의도 불분명 질의를 처리하는 방법 및 시스템

Also Published As

Publication number Publication date
WO2023075198A1 (ko) 2023-05-04

Similar Documents

Publication Publication Date Title
US11120801B2 (en) Generating dialogue responses utilizing an independent context-dependent additive recurrent neural network
US20220337538A1 (en) Customized message suggestion with user embedding vectors
US20180232664A1 (en) Automated assistant invocation of appropriate agent
US10592607B2 (en) Iterative alternating neural attention for machine reading
US20210264918A1 (en) Interacting with a user device to provide automated testing of a customer service representative
US20200019609A1 (en) Suggesting a response to a message by selecting a template using a neural network
US20180189628A1 (en) Determining semantically diverse responses for providing as suggestions for inclusion in electronic communications
US11966389B2 (en) Natural language to structured query generation via paraphrasing
US9996533B2 (en) Question answering system using multilingual information sources
US20180329680A1 (en) Learning intended user actions
US11875125B2 (en) System and method for designing artificial intelligence (AI) based hierarchical multi-conversation system
WO2019224629A1 (en) Training data expansion for natural language classification
US20170287478A1 (en) Hierarchical attention for spoken dialogue state tracking
CN110945500A (zh) 键值记忆网络
US11763084B2 (en) Automatic formulation of data science problem statements
US20210056113A1 (en) Utilizing unsumbitted user input data for improved task performance
US11238050B2 (en) Method and apparatus for determining response for user input data, and medium
CN109858045B (zh) 机器翻译方法和装置
US20230315999A1 (en) Systems and methods for intent discovery
US10460229B1 (en) Determining word senses using neural networks
US10114890B2 (en) Goal based conversational serendipity inclusion
US11769019B1 (en) Machine translation with adapted neural networks
CN112307738A (zh) 用于处理文本的方法和装置
CN111144098A (zh) 扩展问句的召回方法和装置
WO2023100050A1 (en) Conversational agent counterfactual simulation