KR20230158337A - 질의 응답 시스템 및 그 제어 방법 - Google Patents

질의 응답 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20230158337A
KR20230158337A KR1020220057970A KR20220057970A KR20230158337A KR 20230158337 A KR20230158337 A KR 20230158337A KR 1020220057970 A KR1020220057970 A KR 1020220057970A KR 20220057970 A KR20220057970 A KR 20220057970A KR 20230158337 A KR20230158337 A KR 20230158337A
Authority
KR
South Korea
Prior art keywords
input sentence
output
encoding
category
input
Prior art date
Application number
KR1020220057970A
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 KR1020220057970A priority Critical patent/KR20230158337A/ko
Priority to US18/195,770 priority patent/US20230365138A1/en
Publication of KR20230158337A publication Critical patent/KR20230158337A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/08Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to drivers or passengers
    • 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
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/21Voice
    • 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/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • 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/047Probabilistic or stochastic networks
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Automation & Control Theory (AREA)
  • Machine Translation (AREA)

Abstract

일 실시예에 따른 질의 응답 시스템은 입력 문장을 분석하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 응답 여부 판단 모듈; 상기 입력 문장에 대한 응답을 수행할 수 있는 것으로 판단되면, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력하는 학습 모듈; 및 상기 입력 문장에 대응되는 응답을 출력하는 출력 모듈;을 포함하고, 상기 학습 모듈은, 상기 입력 문장을 입력 데이터로, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행할 수 있다.

Description

질의 응답 시스템 및 그 제어 방법{QESTION AND ANSWER SYSTEM AND METHOD FOR CONTROLLING THE SAME}
개시된 발명은 사용자가 발화한 질문에 대한 응답을 제공하는 질의응답 시스템 및 그 제어 방법에 관한 것이다.
대화 시스템은 사용자와의 대화를 통해 사용자 의도를 파악하고, 파악된 사용자 의도에 대응되는 서비스를 제공할 수 있는 시스템으로서, 특정 장치와 연계되어 사용자 의도에 따라 해당 장치에 대한 제어를 수행하기도 하고, 사용자 의도에 따라 특정 정보를 제공하기도 한다.
차량 내에서는 사용자의 움직임에 공간적인 제약과 상황적인 제약이 있기 때문에, 사용자의 발화를 통해 그 의도를 파악하고 사용자가 원하는 서비스를 제공하는 대화 시스템이 유용하게 사용될 수 있다.
특히, 차량과 관련된 사용자의 질문에 응답을 제공하는 서비스에 대한 필요성이 크기 때문에, 해당 서비스의 정확도와 품질을 향상시키기 위한 연구 및 개발이 요구된다.
개시된 발명은 딥 러닝을 적용하여 차량 관련 질의에 대해 적절한 응답을 제공할 수 있는 질의응답 시스템 및 그 제어 방법을 제공하고자 한다.
일 실시예에 따른 질의 응답 시스템은 입력 문장을 분석하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 응답 여부 판단 모듈; 상기 입력 문장에 대한 응답을 수행할 수 있는 것으로 판단되면, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력하는 학습 모듈; 및 상기 입력 문장에 대응되는 응답을 출력하는 출력 모듈;을 포함하고, 상기 학습 모듈은, 상기 입력 문장을 입력 데이터로, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행할 수 있다.
상기 응답 여부 판단 모듈은, 상기 변환된 텍스트의 인코딩을 수행하는 인 도메인 인코딩 모듈; 및 상기 인코딩 모듈의 출력에 기초하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 인 도메인(in-domain) 판단 모듈;을 포함할 수 있다.
상기 응답 여부 판단 모듈은, 상기 인코딩 모듈의 출력에 변분 추론(variational inference)을 적용하는 변분 추론 네트워크를 더 포함하고, 상기 변분 추론 네트워크의 출력은 상기 인 도메인 판단 모듈에 입력될 수 있다.
상기 학습 모듈은, 상기 멀티 태스크 학습 단계에서, 상기 입력 데이터에 대응되는 도메인 및 상기 입력 데이터가 속하는 제1 카테고리 및 제2 카테고리를 각각 분류할 수 있다.
상기 학습 모듈은, 상기 분류된 도메인의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고, 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절할 수 있다.
상기 학습 모듈은, 상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하는 인코딩 모듈; 상기 인코딩 모듈의 출력에 기초하여 상기 도메인을 분류하는 도메인 분류기; 상기 인코딩 모듈의 출력에 기초하여 제1 카테고리를 분류하는 제1 카테고리 분류기; 및 상기 인코딩 모듈의 출력에 기초하여 제2 카테고리를 분류하는 제2 카테고리 분류기; 를 포함할 수 있다.
상기 인코딩 모듈은, 제1 인코딩 레이어; 상기 제1 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제2 인코딩 레이어; 및 상기 제2 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제3 인코딩 레이어를 포함할 수 있다.
상기 도메인 분류기는, 상기 제1 인코딩 레이어의 출력에 기초하여 상기 입력 데이터에 대응되는 도메인을 분류할 수 있다.
상기 학습 모듈은, 상기 제2 인코딩 레이어의 출력에 변분 추론(variational inference)을 적용하는 변분 추론 네트워크를 더 포함하고, 상기 변분 추론 네트워크의 출력은 상기 제1 카테고리 분류기에 입력될 수 있다.
상기 제2 카테고리 분류기는, 상기 제3 인코딩 레이어의 출력에 기초하여 상기 입력 데이터가 속하는 제2 카테고리를 분류할 수 있다.
상기 도메인 및 복수의 카테고리는, 차량과 관련된 도메인 및 카테고리를 포함할 수 있다.
일 실시예에 따른 질의 응답 시스템의 제어 방법은 입력 문장을 분석하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하고; 상기 입력 문장에 대한 응답을 수행할 수 있는 것으로 판단되면, 상기 입력 문장을 입력 데이터로, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행하고; 상기 멀티 태스크 학습이 완료되면, 상기 멀티 태스크 학습 결과에 기초하여 상기 입력 문장에 대응되는 모데인 및 상기 입력 문장이 속하는 복수의 카테고리를 결정하고; 상기 입력 문장에 대응되는 응답을 출력하는 것;을 포함할 수 있다.
상기 응답을 수행할 수 있는지 여부를 판단하는 것은, 상기 변환된 텍스트의 인코딩을 수행하고; 상기 인코딩된 출력에 기초하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 것;을 포함할 수 있다.
상기 응답을 수행할 수 있는지 여부를 판단하는 것은, 상기 인코딩된 출력에 변분 추론(variational inference)을 적용하고; 상기 변분 추론의 출력에 기초하여 상기 응답을 수행할 수 있는지 여부를 판단하는 것;을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 제1 카테고리 및 제2 카테고리를 각각 분류하는 것을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 분류된 도메인의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고; 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 것;을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하고; 상기 인코딩된 출력에 기초하여 상기 도메인을 분류하고; 상기 인코딩된 출력에 기초하여 상기 제1 카테고리를 분류하고; 상기 인코딩된 출력에 기초하여 상기 제2 카테고리를 분류하는 것;을 포함할 수 있다.
상기 인코딩하는 것은, 제1 인코딩을 수행하고; 상기 제1 인코딩의 출력에 대해 제2 인코딩을 수행하고; 상기 제2 인코딩의 출력에 대해 제3 인코딩을 수행하는 것;을 포함할 수 있다.
상기 도메인을 분류하는 것은, 상기 제1 인코딩의 출력에 기초하여 상기 입력 문장에 대응되는 도메인을 분류하는 것을 포함할 수 있다.
상기 제1 카테고리를 분류하는 것은, 상기 제2 인코딩의 출력에 대해 변분 추론(variational inference)을 적용하고; 상기 변분 추론의 출력에 기초하여 상기 입력 문장이 속하는 제1 카테고리를 분류하는 것;을 포함할 수 있다.
상기 제2 카테고리를 분류하는 것은, 상기 제3 인코딩의 출력에 기초하여 상기 입력 문장이 속하는 제2 카테고리를 분류하는 것을 포함할 수 있다.
상기 도메인 및 복수의 카테고리는, 차량과 관련된 도메인 및 카테고리를 포함할 수 있다.
일 측면에 따른 질의 응답 시스템 및 질의 응답 시스템의 제어 방법에 의하면, 서로 연관된 과제인 입력 문장에 대한 입력 문장의 도메인 분류와 카테고리 분류를 동시에 학습함으로써 딥러닝 모델의 성능을 향상시킬 수 있다.
또한, in-domain validation을 수행하여 질의 응답 시스템이 질의 응답을 수행할 수 있는 문장인지 여부를 판별함으로써, 질의 응답 시스템의 에려율을 줄이고 도메인과 관계없는 질문일 경우 사전에 대처가 가능하다.
또한, 입력된 문장의 도메인을 분류하고, 해당 도메인에 대한 대분류 카테고리, 소분류 카테고리르 분류함으로써 질의 응답 시스템에서 질의 응답을 수행함에 있어서 유용한 자질로 이용하여 질의 응답 시스템의 성능을 향상시킬 수 있다.
도 1 은 일 실시예에 따른 질의응답 시스템의 제어 블록도이다.
도 2는 일 실시예에 따른 질의응답 시스템의 메모리에 저장되는 정보의 예시를 나타낸 도면이다.
도 3은 일 실시예에 따른 질의응답 시스템의 다른 제어 블록도이다.
도 4는 일 실시예에 따른 질의응답 시스템의 전처리 모듈의 구성을 구체화한 제어 블록도이다.
도 5는 일 실시예에 따른 질의응답 시스템에 있어서 자질 추출 모듈의 구성을 구체화한 제어 블록도이다.
도 6은 일 실시예에 따른 질의응답 시스템의 자질 추출 결과의 예시를 나타낸 표이다.
도 7은 일 실시예에 따른 질의응답 시스템의 포맷 변환 결과의 예시를 나타낸 표이다.
도 8은 일 실시예에 따른 질의응답 시스템의 응답 여부 판단 모듈을 구체화한 제어 블록도이다.
도 9는 일 실시예에 따른 질의응답 시스템의 응답 여부 판단 모듈의 동작을 레이어 단위로 나타낸 도면이다.
도 10은 일 실시예에 따른 질의응답 시스템의 학습 모듈을 구체화한 제어 블록도이다.
도 11은 도 10의 질의응답 시스템의 학습 모듈의 동작을 레이어 단위로 나타낸 도면이다.
도 12는 차량과 서버에서 주고받는 정보를 나타낸 도면이다.
도 13은 질의응답 시스템을 포함하는 서버의 제어 블록도이다.
도 14는 질의응답 시스템을 포함하는 서버와 연결되는 차량의 제어 블록도이다.
도 15는 일 실시예에 따른 질의응답 시스템의 제어 방법에 대한 순서도이다.
도 16은 일 실시예에 따른 질의응답 시스템의 제어 방법에 대한 순서도이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부, 모듈, 부재, 블록'이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
또한, 본 명세서에서 설명되는 구성요소 앞에 사용되는 "제1~", "제2~"와 같은 서수는 구성요소들을 상호 구분하기 위해 사용되는 것일 뿐, 이들 구성요소들 사이의 연결 순서, 사용 순서, 우선 순위 등의 다른 의미를 갖는 것은 아니다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이하에서는 첨부된 도면을 참조하여 일 측면에 따른 질의 응답 시스템 및 질의 응답 시스템의 제어 방법에 관한 실시예를 상세하게 설명하도록 한다.
도 1 은 일 실시예에 따른 질의응답 시스템의 제어 블록도이고, 도 2는 일 실시예에 따른 질의응답 시스템의 메모리에 저장되는 정보의 예시를 나타낸 도면이다.
도 1을 참조하면, 일 실시예에 따른 질의응답 시스템(1)은 복수의 질문과 복수의 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하거나 정답이 포함된 문단을 저장하는 메모리(140), 입력 문장을 분석하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 응답 여부 판단 모듈(115), 입력 문장에 대한 응답을 수행할 수 있는 것으로 판단되면, 입력 문장을 입력 데이터로, 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력하는 학습 모듈(120) 및 메모리(140)에서, 입력 문장에 매칭된 응답을 검색하고, 검색된 응답을 출력하는 출력 모듈(130)을 포함한다.
여기서 도메인과 복수의 카테고리는, 차량과 관련된 도메인 및 카테고리를 포함하는 것일 수 있다.
일 실시예에 따른 질의응답 시스템(1)은 사용자가 발화한 질문에 대한 응답을 제공하는 시스템이다. 여기서, 사용자가 발화한 질문은 미리 정해진 FAQ(Frequently Asked Question)일 수 있고, 질의응답 시스템(1)은 미리 정해진 FAQ에 대한 응답을 출력할 수 있다.
또한, 정답이 포함된 문단을 보유한 상태에서 사용자 질문에 대하여 대응되는 답을 문단에서 찾아주는 기계 독해 시스템(MRC, Machine Reading Comprehension)일 수 있다.
질의응답 시스템(1)이 차량과 연계되는 경우, 사용자가 발화한 질문은 차량과 관련된 질문일 수 있다. 따라서, 질의응답 시스템(1)은 사용자가 발화한 차량 관련 FAQ에 대한 응답을 출력하거나, 정답이 포함된 문단을 검색하여 응답을 출력할 수 있다.
이를 위해, 메모리(140)는 도 2의 예시와 같이 차량과 관련된 복수의 FAQ 각각에 대한 대표 질문과 그에 대한 응답을 매칭시켜 질의응답 쌍(pair)의 형태로 저장할 수 있다.
한편, 실질적인 질문 내용은 동일하더라도 사용자가 발화하는 문장의 형태는 다양할 수 있다. 즉, 사용자는 메모리(140)에 저장된 대표 질문과 동일한 문장을 발화하지 않고 동일한 의미를 갖는 다른 형태의 문장으로 발화할 수도 있다.
일 실시예에 따른 질의응답 시스템(1)은 전술한 학습을 수행함에 있어서, 입력 문장에 대응되는 도메인과 함께 입력 문장이 속하는 카테고리를 동시에 학습하는 멀티 태스크 학습(Multi Task Learning)을 수행할 수 있다. 이와 같이 서로 연관 있는 태스크를 동시에 학습함으로써 학습 모듈(120)의 성능을 향상시킬 수 있다.
이를 위해, 질의응답 시스템(1)은 입력 문장을 입력 데이터로, 입력 문장 에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력 데이터로 이용하여 학습을 수행할 수 있다.
멀티 태스크 학습은 딥 러닝(deep learning) 모델에 기반하여 수행되는바, 학습 모듈(120)의 멀티 태스크 학습에 관한 구체적인 설명은 후술하기로 한다.
출력 모듈(130)은 메모리(140)에서 입력 문장에 대응되는 응답을 검색하고, 검색된 응답을 출력할 수 있다.
응답 여부 판단 모듈(115)에서 입력 문장에 대하여 질의 응답 시스템(1)이 응답을 할 수 있는지 여부를 미리 판단하고, 학습 모듈(120)이 입력 문장에 대응되는 도메인 및 복수의 카테고리를 분류함으로써 출력 모듈(130)은 입력 문장에 대응되는 도메인 및 복수의 카테고리의 범위 내에서 응답을 검색할 수 있기 때문에 응답의 성능을 향상시킬 수 있다.
한편, 사용자가 발화한 입력 문장은 학습 모듈(120)에 입력되기 전에 딥 러닝 모델에서 처리 가능한 적절한 포맷으로 변환될 수 있다. 이를 위해 질의응답 시스템(1)은 입력 문장의 포맷을 변환하는 전처리 모듈(110)을 포함할 수 있다.
이하, 사용자 발화에 대한 전처리 과정부터 설명하기로 한다.
도 3은 일 실시예에 따른 질의응답 시스템의 다른 제어 블록도이고, 도 4는 일 실시예에 따른 질의응답 시스템의 전처리 모듈의 구성을 구체화한 제어 블록도이다.
도 3을 참조하면, 일 실시예에 따른 질의응답 시스템(1)은 음성 신호인 사용자 발화를 텍스트, 즉 문장으로 변환하는 음성 인식기(150)를 더 포함할 수 있다.
음성 인식기(150)는 STT(Speech to Text) 엔진으로 구현될 수 있고, 사용자 발화에 음성 인식(speech recognition) 알고리즘을 적용하여 텍스트로 변환할 수 있다.
예를 들어, 음성 인식기(150)는 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 사용자 발화에서 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 또는 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다.
또한, 음성 인식기(150)는 머신 러닝 또는 딥 러닝을 적용한 학습에 기반하여 사용자 발화를 텍스트로 변환하는 것도 가능하다. 당해 실시예에서는 음성 인식기(150)가 사용자 발화를 텍스트로 변환하는 방식에 대해서는 제한을 두지 않는바, 음성 인식기(150)는 전술한 방식 외에도 다양한 음성 인식 기술을 적용하여 사용자 발화를 텍스트로 변환할 수 있다. 후술하는 실시예에서는, 음성 인식기(150)에서 출력되는 텍스트를 입력 문장이라 지칭하기로 한다.
사용자 발화에 대응되는 입력 문장은 전처리 모듈(110)에 입력되어 딥 러닝 모델에서 처리 가능한 형태로 변환될 수 있다.
도 4를 참조하면, 전처리 모듈(110)은 입력 문장을 정규화하는 정규화 모듈(111), 입력 문장으로부터 자질을 추출하는 자질 추출 모듈(112) 및 입력 문장의 포맷을 변환하는 포맷 변환 모듈(113)을 포함할 수 있다.
정규화 모듈(111)은 입력 문장에서 특수문자, 기호 등의 의미없는 데이터를 제외하기 위해 정규화(normalization)를 수행할 수 있다. 후술하는 구성들에서 처리되는 입력 문장은 모두 정규화된 입력 문장임을 전제로 하기로 한다.
자질 추출 모듈(112)은 정규화된 입력 문장에서 자질(feature)을 추출하고, 포맷 변환 모듈(113)은 추출된 자질에 기초하여 입력 문장에 인덱스를 부여할 수 있다.
도 5는 일 실시예에 따른 질의응답 시스템에 있어서 자질 추출 모듈의 구성을 구체화한 제어 블록도이다.
도 5를 참조하면, 자질 추출 모듈(112)은 형태소 분석기(112a), 품사 분석기(112b) 및 음절 분석기(112c)를 포함할 수 있다.
형태소 분석기(112a)는 입력 문장을 형태소 단위로 분리하고, 품사 분석기(112b)는 각 형태소에 대한 품사를 분석하여 각 형태소마다 품사를 태깅(tagging)할 수 있다.
음절 분석기(112c)는 입력 문장을 음절 단위로 분리할 수 있다. 형태소뿐만 아니라 음절도 자질로서 함께 이용하면, unknown word나 infrequent word에 대해서도 분석이 가능하여 학습 모듈(120)의 성능이 향상될 수 있다.
도 6은 일 실시예에 따른 질의응답 시스템의 자질 추출 결과의 예시를 나타낸 표이고, 도 7은 일 실시예에 따른 질의응답 시스템의 포맷 변환 결과의 예시를 나타낸 표이다.
당해 예시에서는 입력 문장이 "안전벨트가 빠지지 않는데 어떻게 해야 하지?"인 경우에 대한 결과를 예로 들어 설명한다.
도 6을 참조하면, 정규화 모듈(111)이 입력 문장에 대해 정규화를 수행하여 특수 문자 "?"를 제거할 수 있다.
형태소 분석기(112a)가 정규화된 입력 문장을 형태소 단위로 분리하면, "안전, 벨트, 가, 빠지, 지, 않, 는데, 어떻게, 하, 아야, 하, 지"와 같은 결과를 출력할 수 있다.
품사 분석기(112b)가 각 형태소의 품사를 분석하고 분석된 품사를 각 형태소에 태깅하면 "안전/NNG, 벨트/NNG, 가/JKS, 빠지/VV, 지/EC, 않/VX, 는데/EC, 어떻게/MAG, 하/VV, 아야/EC, 하/VX, 지/EF"와 같은 결과를 출력할 수 있다.
음절 분석기(112c)가 정규화된 입력 문장을 음절 단위로 분리하면, "안, 전, 벨, 트, 가, 빠, 지, 지, 않, 는, 데, 어, 떻, 게, 해, 야, 하, 지"와 같은 결과를 출력할 수 있다.
일 실시예에 따르면, 입력 문장을 형태소 단위로도 분리하고 음절 단위로도 분리함으로써, 후술하는 바와 같이 워드 임베딩(word embedding)과 캐릭터 임베딩(character embedding)을 모두 수행할 수 있다.
전술한 바와 같이, 포맷 변환 모듈(113)은 자질 추출 결과에 기초하여 입력 문장에 대해 인덱싱(indexing)을 수행할 수 있다. 구체적으로, 포맷 변환 모듈(113)은 미리 정의된 사전을 이용하여 입력 문장을 구성하는 복수의 단어 또는 복수의 자질 각각에 대해 인덱스를 부여할 수 있다. 포맷 변환 과정에서 부여되는 인덱스는 사전 내에서의 단어의 위치를 나타낼 수 있다.
포맷 변환 모듈(113)에 의하면, 도 7에 도시된 바와 같이, 정규화된 입력 문장 "안전벨트가 빠지지 않는데 어떻게 해야 하지"를 형태소 단위로 인덱싱할 수도 있고, 음절 단위로 인덱싱할 수도 있다. 포맷 변환 모듈(113)에 의해 입력 문장에 부여된 인덱스들은 후술하는 임베딩 과정에서 사용될 수 있다.
후술하는 실시예에서는 전처리가 완료된 입력 문장을 입력 시퀀스라 하기로 한다. 입력 시퀀스는 토큰 단위로 처리될 수 있고, 당해 예시에서는 형태소 단위의 토큰을 사용하기로 한다.
도 8은 일 실시예에 따른 질의응답 시스템의 응답 여부 판단 모듈을 구체화한 제어 블록도이고, 도 9는 일 실시예에 따른 질의응답 시스템의 응답 여부 판단 모듈의 동작을 레이어 단위로 나타낸 도면이다.
본원 발명에 사용되는 데이터는 질의응답 중에서 질문과 그에 해당하는 도메인, 카테고리 정보이다.
이때 도메인과 카테고리 정보는 질문에 내재된 정보를 범주화 한 것인데, 먼저 도메인은 질문의 상황을 구분한다. 자동차 관련된 것인지, 법률과 관련된 것인지, 판매 상식과 관련된 것 인지로 예를 들 수 있다. 카테고리는 level 1, 2로 나뉘는데 질문의 의미를 범주화 한 것이다. Level 1은 안내 및 차량 정보, 계기판, 비상시 응급 조치 등으로 의미를 범주화 한 것이고, level 2는 그보다 더 세부적으로 경제적 운전, 계기판 메뉴 설정, 경보 시스템, 보안 사항 등과 같이 범주화 한다.
Level 1의 카테고리를 제1 카테고리, Level 2의 카테고리를 제2 카테고리로 부르기로 한다.
이에 따라 도메인과 카테고리를 계층 관계로 보면 도메인이 가장 포괄적이고 그 다음 제1 카테고리(Level 1), 그리고 마지막으로 제2 카테고리(level 2)가 가장 세부적으로 나뉜다. 본 발명에서 질의 분석에 대하여 제안한 모델은 이런 특성을 반영한 것이며, BiGRU 첫 번째 레이어에서 먼저 도메인에 대한 결정을 하고, 이 정보를 기반으로 BiGRU 두 번째 레이어에서 카테고리 level 1에 대한 결정을 하고, 마지막으로 앞서 누적된 정보를 기반으로 인코딩 수행한 후 카테고리 level 2에 대한 결과를 출력한다.
본 발명은 도메인, 제1 및 제2 카테고리 태스크에 대하여 multi-task learning으로 학습을 수행하는데, 일반적인 방법으로 3개의 태스크 결과를 얻기 위해선 태스크 별로 모델을 따로 만들어야 한다. 예를 들어 도메인 결과를 얻기 위한 모델 1, 제1 카테고리 결과를 얻기 위한 모델 2, 제2 카테고리 결과를 얻기 위한 모델 3과 같다.
이때 데이터의 구조 및 의미 정보를 파악하여 pipeline을 만들게 되면, 모델 1을 먼저 수행해서 도메인 결과를 얻고, 도메인 결과를 모델 2에 자질로 사용한 뒤 제1 카테고리(level 1) 결과를 얻고, 도메인 결과와 제1 카테고리(level 1)결과를 자질로 사용하여 제2 카테고리(level 2)의 결과를 얻는 방식으로 프로세스를 정의할 수 있다. 이렇게 되면 각 모델 별로 학습을 따로 해야 하며, 도메인, 제1 및 제2 카테고리의 모든 결과를 얻기 위한 시간 비용이 커진다. 또한 pipeline은 앞에서 발생한 에러가 다음 모델로 전파되는 error propagation이 발생한다.
Multi-task learning을 수행하는 본원 발명은 도메인, 제1 및 제2 카테고리 태스크를 하나의 모델로 학습과 추론을 할 수 있어 수행시간이 보다 짧으며, 학습을 통하여 세 개의 태스크 정보를 하나의 모델에 녹여낼 수 있어 성능을 더 향상시킬 수 있고, error propagation 문제를 해결할 수 있다.
도 8을 참조하면, 응답 여부 판단 모듈(115)은 임베딩 모듈(121), 인코딩 모듈(122), 피드 포워드 신경망(Feed Forward Neural Network: FFNN)(123) 및 인 도메인 판단 모듈(127)을 포함할 수 있다.
임베딩 모듈(121)은 임베딩을 수행하여 입력 시퀀스를 벡터화한다. 예를 들어, 임베딩 모듈(121)은 원-핫 벡터 인코딩(one-hot vector encoding) 방식을 적용하여 임베딩을 수행할 수 있다.
구체적으로, k개의 단어가 있을 때 k 차원의 0 벡터를 만들고, 해당 단어의 인덱스만 1로 표현할 수 있다. 이를 위해, 중복되는 단어들을 제거한 후 전체 단어들을 나열하여 각각을 원-핫 벡터로 변환하고, 변환된 원-핫 벡터를 이용하여 각각의 문장을 재구성할 수 있다.
구체적으로, 원-핫 벡터로 변환하는 것은 각 단어를 vocabulary에서 해당 index로 변환하는 것과 동일하며, 이를 통해 단어의 임베딩을 수행할 수 있다.
도 9을 함께 참조하면, 응답 여부 판단 모듈(115)에 입력되는 입력 시퀀스에 [CLS] 토큰이 추가될 수 있다. 후술하는 인코딩 과정을 거치면, CLS 토큰에 대한 벡터에는 입력 문장의 의미가 함축될 수 있다. CLS 토큰은 classification token으로 전체 시퀀스를 분류하는 의미를 가질 수 있다.
일 실시예에 따르면, 임베딩 모듈(121)은 워드 임베딩 뿐만 아니라 캐릭터 임베딩도 수행할 수 있다. 전술한 바와 같이, 자질 추출 모듈(112)에서 형태소뿐만 아니라 음절 단위의 자질도 추출되는바, 음절 단위의 자질도 임베딩 모듈(121)에 입력되어 캐릭터 임베딩에 사용될 수 있다.
한편, 워드 임베딩과 캐릭터 임베딩을 위해 사전 훈련(pre-training)이 적용될 수 있다. 예를 들어, 한국어에 대해서는 워드 임베딩이 NNLM(Neural Network Language Model)에 의해 사전 훈련되고, 캐릭터 임베딩이 GloVe(Pennington et al., 2014)에 의해 사전 훈련될 수 있다. 영어에 대해서는 FastText(Bojanowski et al., 2017)에 의해 워드 임베딩과 캐릭터 임베딩이 사전 훈련될 수 있다. 이와 같이 사전 훈련된 임베딩을 사용할 경우, 딥러닝 모델의 속도와 성능을 향상시킬 수 있다.
임베딩 모듈(121)은 입력 시퀀스에 워드 임베딩을 수행하여 생성한 워드 임베딩 벡터 ei w = embw(qi)와 입력 시퀀스에 캐릭터 임베딩을 수행하여 생성한 캐릭터 임베딩 벡터 ei c = CNNc(qi)를 출력할 수 있고, 두 종류의 임베딩 벡터가 결합(concatenate)되어 인 도메인 인코딩 모듈(122-1)에 입력될 수 있다.
인 도메인 인코딩 모듈(122-1)은 임베딩이 수행되어 벡터로 표현된 입력 시퀀스의 토큰들을 인코딩할 수 있다. 일 실시예에 따른 질의응답 시스템(1)에서는 입력 시퀀스를 분류만 하고, 새로운 출력 문장을 생성하지는 않으므로 디코딩은 생략될 수 있다.
인 도메인 인코딩 모듈(122-1)의 마지막 히든 스테이트(rn)는 피드 포워드 신경망(123)에 입력될 수 있고, 피드 포워드 신경망(123)의 출력은 인 도메인 판단 모듈(127)에 입력될 수 있다.
한편, 일 실시예에 따른 질의응답 시스템(1)은 응답 가능 여부 판단의 성능을 향상시키기 위해, 피드 포워드 신경망(123)의 출력이 인 도메인 판단 모듈(127)에 입력되기 전에 변분 추론 네트워크(variational inference network)를 거치도록 할 수 있다.
Variational inference network는 reparameterization 방법으로 잠재 변수 z와 평균 μ와 분산 σ를 함께 학습 하며, 모델의 손실 함수(loss function)는 아래 수학식1과 같다. 여기서 는 입력 벡터 x를 잠재 변수로 압축하는 인코더이며, Feed-Forward Neural Network (FFNN)로 구성된다. 는 잠재 변수 z로부터 출력 결과 y를 만드는 디코더이다. p(z)는 사전 확률 분포인 가우시안 분포이며 평균 0, 분산 1인 정규분포를 사용한다. 왼쪽 KL항은 Kullback-Leibler 발산으로 입력 문장에 대한 벡터 x가 가우시안 분포에 따라 z를 생성하도록 제한하 는 역할을 한다. 오른쪽 항은 cross entropy로, 샘플링된 z에서 문장 분류 출력 결과 y를 생성할 수 있도록 한다.
[수학식 1]
Figure pat00005
변분 추론 네트워크는 매니폴드 러닝(manifold learning)과 같이 고차원 내에 포함된 의미적 공간(semantic space)에 잠재 변수 z가 있다고 가정하고, 학습을 통해 저차원 공간으로 변환시켜 의미있는 자질을 추출함으로써 딥러닝 모델을 강건하게 만들 수 있다.
주어진 데이터에 대하여 모델링하여 posterior를 추론한다. 이때 true posterior를 추론하도록 모델링 하는 게 목표인데, true posterior를 알 수 없다. True posterior를 알 수 없으니, 이미 증명된 분포(예: Gaussian distribution)가 true posterior에 근접할 것이다 가정하여 approximation한 분포로 모델링 하는 방법이 고안됐으며, 그 방법이 variational inference이다. 보통 variational inference를 auto-encoder에 적용하여 설명하지만, 본 발명에서는 제1 카테고리를 출력하는 레이어에 적용한다.
제1 카테고리는 보다 포괄적인 카테고리를 나타내고 제2 카테고리는 보다 세부적인 카테고리를 나타내기 때문에, 제2 카테고리의 레이블 수가 제1 카테고리의 레이블 수보다 많을 수 있다. 따라서 variational inference를 적용하기가 어려워 본원 발명에서는 레이블 수가 상대적으로 적은 제1 카테고리를 출력하는 레이어에 variational inference를 적용할 수 있다.
인 도메인 판단 모듈(127)은 입력 문장이 질의 응답 시스템(1)에서 처리 불가능한 문장인지 여부를 판단할 수 있다. 즉, OOD(Out Of Domain) 여부를 검출할 수 있다.
사용자 발화에 대응되는 입력 문장이 질의 응답 시스템(1)에서 지원되지 않는 서비스에 대한 요구이거나, 입력 문장 자체가 무의미한 경우 입력 문장은 질의 응답 시스템(1)에서 처리 불가능한 문장에 해당하는 것으로 볼 수 있다. 본 발명의 경우, 차량 관련 질의와 관련된 것이 아니면, OOD에 해당하는 것으로 판단할 수 있다.
인 도메인 판단 모듈(127)은 입력 문장에 대응되는 의미 표현이 입력되었을 때, 입력 문장이 출력될 확률을 나타내는 파라미터를 계산하고, 계산된 파라미터에 기초하여 입력 문장이 질의 응답 시스템(1)에서 처리 불가능한 문장인지 여부, 즉 입력 문장이 OOD 문장인지 여부를 판단할 수 있다. 예를 들어, 입력 문장을 구성하는 각각의 단어들의 출력 확률에 대한 평균값이 입력 문장이 출력될 확률을 나타내는 파라미터로서 계산될 수 있다.
인 도메인 판단 모듈(127)은 입력 문장을 구성하는 각각의 단어들의 출력 확률에 대한 평균값이 정해진 기준값 이상이면 입력 문장이 in-domain 문장, 즉 질의 응답 시스템(1)에서 처리 가능한 문장인 것으로 판단할 수 있다. 반대로, 입력 문장을 구성하는 각각의 단어들의 출력 확률에 대한 평균값이 정해진 기준값 미만이면 입력 문장이 OOD 문장, 즉 질의 응답 시스템(1)에서 처리 불가능한 문장인 것으로 판단할 수 있다.
입력 문장이 in-domain 문장인 것으로 판단되면, 해당 문장에 대한 도메인 및 카테고리를 분류하기 위하여 학습 모듈(120)에 입력될 수 있다.
반대로 입력 문장이 out of domain 문장인 것으로 판단되면 질의 응답 시스템(1)에서 처리가 불가능한 문장이므로 처리가 불가하다는 알림을 사용자에게 제공하는 등의 조치를 수행할 수 있다.
이에 따라 질의 응답 시스템의 에러율이 감소될 수 있고, 사용자는 차량 질의 관련 도메인과 관계 없는 질문을 한 경우 미리 처리 불가 알림을 제공 받아 사전에 대처가 가능할 수 있다.
이하에서는 입력 문장이 in-domain 문장인 것으로 판단되어 학습 모듈(120)이 입력 문장에 대응되는 도메인 및 입력 문장이 속하는 제1 카테고리 및 제2 카테고리를 분류하는 과정에 대해 상세히 서술한다.
도 10은 일 실시예에 따른 질의응답 시스템의 학습 모듈을 구체화한 제어 블록도이고, 도 11은 도 10의 질의응답 시스템의 학습 모듈의 동작을 레이어 단위로 나타낸 도면이다.
일 실시예에 따르면, 학습 모듈(120)은 입력 문장에 대응되는 대표 질문과 카테고리를 동시에 학습하는 멀티 태스크 딥 러닝 모델을 포함할 수 있다. 도 10을 참조하면, 학습 모듈(120)은 임베딩 모듈(121), 인코딩 모듈(122), 피드 포워드 신경망(Feed Forward Neural Network: FFNN)(123), 도메인 분류기(124a), 제1 카테고리 분류기(124b), 제2 카테고리 분류기(124c), 손실값 계산기(125) 및 가중치 조절기(126)를 포함할 수 있다.
임베딩 모듈(121)은 임베딩을 수행하여 입력 시퀀스를 벡터화한다. 예를 들어, 임베딩 모듈(121)은 원-핫 벡터 인코딩(one-hot vector encoding) 방식을 적용하여 임베딩을 수행할 수 있다.
구체적으로, k개의 단어가 있을 때 k 차원의 0 벡터를 만들고, 해당 단어의 인덱스만 1로 표현할 수 있다. 이를 위해, 중복되는 단어들을 제거한 후 전체 단어들을 나열하여 각각을 원-핫 벡터로 변환하고, 변환된 원-핫 벡터를 이용하여 각각의 문장을 재구성할 수 있다.
도 11을 함께 참조하면, 학습 모듈(120)에 입력되는 입력 시퀀스에 [CLS] 토큰이 추가될 수 있다. 후술하는 인코딩 과정을 거치면, CLS 토큰에 대한 벡터에는 입력 문장의 의미가 함축될 수 있다.
일 실시예에 따르면, 임베딩 모듈(121)은 워드 임베딩 뿐만 아니라 캐릭터 임베딩도 수행할 수 있다. 전술한 바와 같이, 자질 추출 모듈(112)에서 형태소뿐만 아니라 음절 단위의 자질도 추출되는바, 음절 단위의 자질도 임베딩 모듈(121)에 입력되어 캐릭터 임베딩에 사용될 수 있다.
음절 단위의 정보는 단어의 유사성에 대한 정보를 제공하기도 하고, 단어 사전에 없는 unknown word나 infrequent word에 대해서도 적용 가능하기 때문에 단어 단위의 정보와 음절 단위의 정보를 모두 이용하면 딥 러닝 모델의 성능을 향상시킬 수 있다.
한편, 워드 임베딩과 캐릭터 임베딩을 위해 사전 훈련(pre-training)이 적용될 수 있다. 예를 들어, 한국어에 대해서는 워드 임베딩이 NNLM(Neural Network Language Model)에 의해 사전 훈련되고, 캐릭터 임베딩이 GloVe(Pennington et al., 2014)에 의해 사전 훈련될 수 있다. 영어에 대해서는 FastText(Bojanowski et al., 2017)에 의해 워드 임베딩과 캐릭터 임베딩이 사전 훈련될 수 있다. 이와 같이 사전 훈련된 임베딩을 사용할 경우, 딥러닝 모델의 속도와 성능을 향상시킬 수 있다.
임베딩 모듈(121)은 입력 시퀀스에 워드 임베딩을 수행하여 생성한 워드 임베딩 벡터 ei w = embw(qi)와 입력 시퀀스에 캐릭터 임베딩을 수행하여 생성한 캐릭터 임베딩 벡터 ei c = CNNc(qi)를 출력할 수 있고, 두 종류의 임베딩 벡터가 결합(concatenate)되어 인코딩 모듈(122)에 입력될 수 있다.
인코딩 모듈(122)은 임베딩이 수행되어 벡터로 표현된 입력 시퀀스의 토큰들을 인코딩할 수 있다. 일 실시예에 따른 질의응답 시스템(1)에서는 입력 시퀀스를 분류만 하고, 새로운 출력 문장을 생성하지는 않으므로 디코딩은 생략될 수 있다.
인코딩 모듈(122)은, 제1 인코딩 레이어, 제1 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제2 인코딩 레이어 및 제2 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제3 인코딩 레이어를 포함할 수 있다. 제1인코딩 레이어, 제2인코딩 레이어 및 제3 인코딩 레이어에는 각각 복수의 히든 레이어가 포함될 수 있다.
제1인코딩 레이어, 제2인코딩 레이어 및 제3 인코딩 레이어는 순차적 인코딩을 위해 순환 신경망(Recurrent Neural Network: RNN), BiGRU(Bidirectional Gated Recurrent Units) 등의 알고리즘을 이용할 수 있다.
한편, 제1인코딩 레이어의 히든 스테이트(si) 각각은 제2인코딩 레이어에 입력되고, 제1인코딩 레이어의 [CLS] 토큰의 히든 스테이트(s[CLS])는 피드 포워드 신경망(123)에 입력될 수 있다. [CLS] 토큰의 히든 스테이트(s[CLS])는 입력 문장 전체의 의미를 함축할 수 있다.
제2인코딩 레이어의 히든 스테이트(si) 각각은 제3인코딩 레이어에 입력되고, 제2인코딩 레이어의 마지막 히든 스테이트(rn)도 피드 포워드 신경망(123)에 입력될 수 있다.
제3인코딩 레이어의 마지막 히든 스테이트(rn)도 피드 포워드 신경망(123)에 입력될 수 있다. 즉, 제1인코딩 레이어의 [CLS] 토큰의 히든 스테이트(s[CLS])와 제2인코딩 레이어의 마지막 히든 스테이트(rn) 및 제3인코딩 레이어의 마지막 히든 스테이트(rn)는 각각 피드 포워드 신경망(123)에 입력될 수 있다.
전술한 바와 같이, 학습 모듈(120)은 도메인 분류와 제1 카테고리 및 제2 카테고리 분류를 동시에 학습할 수 있다. 이를 위해, 피드 포워드 신경망(123)은 도메인 분류와 카테고리 분류에 대한 공유 파라미터를 사용하여 선형 연산을 수행할 수 있다.
피드 포워드 신경망(123)의 출력은 도메인 분류기(124a)와 제1 카테고리 분류기(124b) 및 제2 카테고리 분류기(124c)에 각각 입력될 수 있다.
즉, 제1 인코딩 레이어의 출력은 피드 포워드 신경망(123)을 거쳐 도메인 분류기(124a)에 입력되고, 제2 인코딩 레이어의 출력은 피드 포워드 신경망(123)을 거쳐 제1 카테고리 분류기(124b)에 입력되며, 제3 인코딩 레이어의 출력은 피드 포워드 신경망(123)을 거쳐 제2 카테고리 분류기(124c)에 입력될 수 있다.
도메인 분류기(124a)는 미리 정의된 복수의 도메인 중에서 입력 문장에 대응되는 도메인을 결정할 수 있다. 복수개의 도메인이 미리 정의될 수 있고, 도메인 분류기(124a)는 피드 포워드 신경망(123)을 통해 선형 함수를 사용할 수 있다.
도메인 분류기(124a)는 대표 질문의 문장 벡터와 인코딩된 입력 시퀀스를 비교하여 입력 문장에 대응되는 도메인을 분류할 수 있다.
제1 카테고리 분류기(124b)는 미리 정의된 복수의 카테고리 중에서 입력 문장이 속하는 제1 카테고리를 결정할 수 있다.
제1 카테고리는 입력 문장이 속하는 도메인에 대한 대분류에 해당하는 토픽을 의미할 수 있다.
예를 들어, 차량과 관련된 FAQ는 질문의 주제에 따라, 기본 가이드라인 및 정보(basic guidelines and information), 안전 예방(safety precautions), 안전 시스템(safety system), 대시보드(dashboard), 편의 장치(convenient features), 출발 및 주행(starting and driving your vehicle), 응급 상황(emergency situations), 유지보수(maintenance), 고장 수리(trouble shooting), 고장 진단(check trouble), 유지 방법(how to maintain), 차량 정보(my car info) 등과 같은 대분류 카테고리로 분류될 수 있다.
카테고리 분류기(124b)는 입력 문장이 전술한 예시와 같은 대분류 카테고리들 중에서 어느 카테고리에 속하는지 판단할 수 있는바, 입력 시퀀스를 카테고리에 매칭시킬 수 있다.
한편, 일 실시예에 따른 질의응답 시스템(1)은 카테고리 분류 성능을 향상시키기 위해, 피드 포워드 신경망(123)의 출력이 제1 카테고리 분류기(124b)에 입력되기 전에 변분 추론 네트워크(variational inference network)를 거치도록 할 수 있다.
변분 추론 네트워크는 매니폴드 러닝(manifold learning)과 같이 고차원 내에 포함된 의미적 공간(semantic space)에 잠재 변수 z가 있다고 가정하고, 학습을 통해 저차원 공간으로 변환시켜 의미있는 자질을 추출함으로써 딥러닝 모델을 강건하게 만들 수 있다.
제2 카테고리 분류기(124c)는 미리 정의된 복수의 카테고리 중에서 입력 문장이 속하는 제2 카테고리를 결정할 수 있다.
제2 카테고리는 입력 문장이 속하는 도메인에 대한 중분류에 해당하는 토픽을 의미할 수 있다.
예를 들어 입력 문장이 "차를 세차할 때 강한 비누를 사용해도 될까요?"인 경우, 해당 문장에 대응되는 도메인은 "차량"이고, 제1 카테고리는 "정기 점검" 이며 보다 세부적인 제2 카테고리는 "세차"로 분류될 수 있다.
카테고리 분류기(124c)는 입력 문장이 전술한 대분류 카테고리 내에 속하는 중분류 카테고리들 중에서 어느 카테고리에 속하는지 판단할 수 있는바, 입력 시퀀스를 카테고리에 매칭시킬 수 있다.
도메인 분류기(124a), 제1 카테고리 분류기(124b) 및 제2 카테고리 분류기(124c)에서 각각 입력 문장에 대응되는 도메인과 카테고리를 출력하면, 손실값 계산기(125)는 도메인 분류에 대한 손실값과 두 카테고리 분류에 대한 손실값을 각각 계산할 수 있다. 또한, 손실값 계산기(125)는 세 손실값을 합산하여 총 손실값을 계산할 수 있다.
이 때, 도메인 분류에 대한 손실값을 Lq로 나타내고, 제1 카테고리 분류에 대한 손실값을 Lc로 나타내고, 제2 카테고리 분류에 대한 손실값은 Le로 나타내면, 총 손실값(L)은 아래 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
L = αL q +
Figure pat00006
L c + γLe
여기서, 하이퍼파라미터 α,
Figure pat00007
및 γ는 도메인 분류, 제1 카테고리 분류 및 제2 카테고리 분류에 대해 각각 최적화된 가중치일 수 있다.
가중치 조절기(126)는 계산된 총 손실값을 최소화하는 방향으로 딥러닝 모델의 히든 레이어들의 가중치들을 조절할 수 있다.
전술한 질의응답 시스템(1)의 동작은 컴퓨터 프로그램에 의해 구현될 수 있고, 질의응답 시스템(1)은 이러한 프로그램이 저장된 적어도 하나의 메모리와 저장된 프로그램을 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 전술한 음성 인식기(150), 전처리 모듈(110), 응답 여부 판단 모듈(115), 학습 모듈(120) 및 출력 모듈(130) 등의 구성요소는 물리적인 구성에 의해 구별되는 것이 아니라 동작에 의해 구별되는 것이다. 따라서, 이들 구성요소들이 반드시 별도의 메모리나 프로세서에 의해 구현되어야 하는 것은 아니며, 적어도 일부의 구성요소들이 메모리나 프로세서를 상호 공유할 수 있다.
일 실시예에 따른 질의응답 시스템(1)은 차량에서 구현되는 것도 가능하고, 차량과 통신을 통해 연결된 서버에서 구현되는 것도 가능하다. 이하, 질의응답 시스템(1)이 서버에서 구현되는 경우를 예로 들어 설명한다.
도 12는 차량과 서버에서 주고받는 정보를 나타낸 도면이고, 도 13은 질의응답 시스템을 포함하는 서버의 제어 블록도이며, 도 14는 질의응답 시스템을 포함하는 서버와 연결되는 차량의 제어 블록도이다.
도 12를 참조하면, 차량(2)의 사용자가 발화를 입력하면, 입력된 사용자 발화는 서버(3)에 전송될 수 있다. 사용자 발화는 차량 관련 질문을 포함할 수 있고, 전술한 질의응답 시스템(1)을 포함하는 서버(3)는 차량 관련 질문에 대한 응답을 포함하는 시스템 발화를 차량(2)에 전송할 수 있다.
도 13을 함께 참조하면, 서버(3)는 차량(2)과 통신하여 신호를 주고 받는 통신부(310)와 전술한 질의응답 시스템(1)을 포함할 수 있다. 통신부(310)는 4G, 5G, wifi 등 다양한 무선 통신 방식 중 적어도 하나를 채용하여 차량(2)과 통신을 수행할 수 있다.
통신부(310)는 차량(2)으로부터 음성 신호의 형태로 전달된 사용자 발화를 수신하고, 질의응답 시스템(1)의 음성 인식기(150)가 전술한 방식에 따라 사용자 발화를 텍스트(입력 문장)로 변환하여 전처리 모듈(110)에 입력할 수 있다.
학습이 완료된 학습 모듈(120)이 실제 사용되는 과정에서는 전술한 질의응답 시스템(1)의 동작 중에서 손실값 계산과 가중치 조절이 생략될 수 있다. 손실값 계산 및 가중치 조절을 제외하고는 입력 문장에 대해 전처리를 수행하고 임베딩, 인코딩을 거쳐 입력 문장에 대응되는 도메인 및 카테고리를 분류하는 동작이 동일하게 수행될 수 있다.
학습 모듈(120)에서 입력 문장에 대응되는 도메인 및 카테고리를 출력하면, 출력 모듈(130)은 메모리(140)에서 질문에 대응되는 응답을 검색하고, 검색된 응답을 통신부(310)를 통해 차량(2)에 전송할 수 있다.
출력 모듈(130)은 검색된 응답을 텍스트 형태로 전송할 수도 있고, 음성 신호의 형태로 전송할 수도 있다. 음성 신호의 형태로 전송하는 경우에는 출력 모듈(130)에 TTS(Text to Speech) 엔진이 포함될 수 있다.
도 14를 함께 참조하면, 차량(2)은 서버(3)와 통신하는 통신부(210) 및 차량(2)을 제어하는 제어부(220)를 비롯하여 사용자 인터페이스에 해당하는 마이크(231), 스피커(232) 및 디스플레이(233)를 포함할 수 있다.
마이크(231)에 입력된 사용자 발화는 음성 신호의 형태로 변환된 후 통신부(210)를 통해 서버(3)에 전달될 수 있다. 차량(2)의 통신부(210)도 4G, 5G, wifi 등 다양한 무선 통신 방식 중 적어도 하나를 채용하여 서버(3)와 통신을 수행할 수 있다.
서버(3)에서 사용자가 발화한 질문에 대응되는 응답이 전송되면, 통신부(210)가 이를 수신할 수 있고, 제어부(220)는 응답의 형태에 따라 스피커(232) 또는 디스플레이(233)를 통해 응답을 출력할 수 있다.
예를 들어, 서버(3)로부터 전송된 응답이 텍스트인 경우에는 디스플레이(233)를 통해 시각적으로 응답을 출력할 수 있고, 서버(3)로부터 전송된 응답이 음성 신호인 경우에는 스피커(232)를 통해 청각적으로 응답을 출력할 수 있다.
또는, 서버(3)로부터 전송된 응답이 텍스트인 경우에도, 차량(2)에 포함된 TTS 엔진이 전송된 응답을 음성 신호로 변환할 수 있고, 음성 신호로 변환된 응답을 스피커(232)를 통해 출력하는 것도 가능하다.
이하, 일 실시예에 따른 질의응답 시스템의 제어 방법을 설명하기로 한다. 일 실시예에 따른 질의응답 시스템의 제어 방법을 실시함에 있어서, 전술한 질의응답 시스템(1)이 사용될 수 있다. 따라서, 앞서 도 1 내지 도 14를 참조하여 설명한 내용은 별도의 언급이 없더라도 질의응답 시스템의 제어 방법에도 동일하게 적용될 수 있다.
도 15는 일 실시예에 따른 질의응답 시스템의 제어 방법에 대한 순서도이다. 당해 순서도에 나타난 방법은 질의응답 시스템의 응답 가능 여부를 판단하는 단계에서 수행되는 방법이다.
먼저, 질의응답 시스템의 제어 방법을 수행하기 위해, 입력 문장이 전처리 모듈(110)에 입력될 수 있다. 학습 단계에서 전처리 모듈(110)에 입력되는 입력 문장은 전술한 도 3의 예시에 도시된 바와 같은 확장 문장이다.
도 15를 참조하면, 전처리 모듈(110)이 입력 문장을 정규화한다(1501). 입력 문장의 정규화 단계에서는 입력 문장에서 특수 문자, 기호 등의 의미없는 데이터가 제외될 수 있다. 후술하는 단계에서 언급되는 입력 문장은 모두 정규화된 입력 문장을 의미한다.
전처리 모듈(110)이 입력 문장으로부터 자질을 추출한다(1503). 입력 문장으로부터 추출되는 자질은 형태소, 품사, 음절 등을 포함할 수 있다. 구체적으로, 전처리 모듈(110)은 입력 문장을 형태소 단위로 분리하고, 품사 분석기(112b)는 각 형태소에 대한 품사를 분석하여 각 형태소마다 품사를 태깅(tagging)할 수 있다. 추가적으로, 입력 문장을 음절 단위로도 분리하여 자질로서 이용하면 unknown word나 infrequent word에 대해서도 분석이 가능하여 학습 모듈(120)의 성능이 향상될 수 있다.
전처리 모듈(110)이 추출된 자질에 기초하여 입력 문장의 입력 포맷을 변환한다(1505). 입력 포맷을 변환하는 것은 입력 문장에 대해 인덱싱(indexing)을 수행하는 것을 포함할 수 있다. 전처리 모듈(110)은 미리 정의된 사전을 이용하여 입력 문장을 구성하는 복수의 단어 또는 복수의 자질 각각에 대해 인덱스를 부여할 수 있다. 포맷 변환 과정에서 부여되는 인덱스는 사전 내에서의 위치를 나타낼 수 있다.
전술한 과정에 의해 전처리가 완료된 입력 문장을 입력 시퀀스라 하기로 한다.
전술한 인덱싱 결과에 기초하여 입력 시퀀스에 대해 임베딩을 수행하면 입력 시퀀스를 벡터화할 수 있다. 이 때, 워드 임베딩과 캐릭터 임베딩이 모두 수행될 수 있다. 입력 시퀀스에 워드 임베딩을 수행하여 생성한 워드 임베딩 벡터와 입력 시퀀스에 캐릭터 임베딩을 수행하여 생성한 캐릭터 임베딩 벡터는 서로 결합(concatenate)되어 인 도메인 인코딩 모듈(122-1)에 입력될 수 있다(1507). 구체적인 인코딩 방법에 관한 설명은 질의응답 시스템(1)의 실시예에서 설명한 바와 같다.
인코딩 결과는 인 도메인 판단 모듈(127)에 입력된다. 전술한 실시예에서 설명한 바와 같이 인 도메인 판단 모듈(127)은 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단할 수 있다(1509). 즉, 인 도메인 판단 모듈(127)은 입력 문장에 대응되는 의미 표현이 입력되었을 때, 입력 문장이 출력될 확률을 나타내는 파라미터를 계산하고, 계산된 파라미터에 기초하여 입력 문장이 질의 응답 시스템(1)에서 처리 불가능한 문장인지 여부, 즉 입력 문장이 OOD 문장인지 여부를 판단할 수 있다.
입력 문장이 in-domain 문장인 것으로 판단되면, 해당 문장에 대한 도메인 및 카테고리를 분류하기 위하여 학습 모듈(120)에 입력될 수 있다.
도 16은 일 실시예에 따른 질의응답 시스템의 제어 방법에 대한 순서도이다. 당해 순서도에 나타난 방법은 질의응답 시스템의 학습 단계에서 수행되는 방법이다.
입력 문장의 전처리 과정은 도 15에서 설명한 바와 동일하므로 생략한다.
전술한 과정에 의해 전처리가 완료된 입력 문장을 입력 시퀀스라 하기로 한다.
전술한 인덱싱 결과에 기초하여 입력 시퀀스에 대해 임베딩을 수행하면 입력 시퀀스를 벡터화할 수 있다. 이 때, 워드 임베딩과 캐릭터 임베딩이 모두 수행될 수 있다. 입력 시퀀스에 워드 임베딩을 수행하여 생성한 워드 임베딩 벡터와 입력 시퀀스에 캐릭터 임베딩을 수행하여 생성한 캐릭터 임베딩 벡터는 서로 결합(concatenate)되어 인코딩 모듈(122)에 입력될 수 있다(1607).
인코딩 모듈(122)은, 제1 인코딩 레이어, 제1 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제2 인코딩 레이어 및 제2 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제3 인코딩 레이어를 포함할 수 있다. 제1인코딩 레이어, 제2인코딩 레이어 및 제3 인코딩 레이어에는 각각 복수의 히든 레이어가 포함될 수 있다.
제1인코딩 레이어, 제2인코딩 레이어 및 제3 인코딩 레이어는 순차적 인코딩을 위해 순환 신경망(Recurrent Neural Network: RNN), BiGRU(Bidirectional Gated Recurrent Units) 등의 알고리즘을 이용할 수 있다.
인코딩 결과는 각각 도메인 분류기(124a), 제1 카테고리 분류기(124b) 및 제2 카테고리 분류기(124c)에 입력된다. 전술한 실시예에서 설명한 바와 같이, 인코딩 결과가 피드 포워드 신경망(123)을 거친 후에 각각의 분류기(124a, 124b, 124c)에 입력되는 것도 가능하다
도메인 분류기(124a)는 입력 문장에 대응되는 도메인을 분류하고(1609), 제1 카테고리 분류기(124b)는 입력 문장이 속하는 대분류 카테고리를 분류하며(1611), 제2 카테고리 분류기(124c)는 입력 문장이 속하는 중분류 카테고리를 분류한다(1613). 구체적으로, 제1 카테고리 분류기(124b)는 미리 정의된 대분류 카테고리들 중에서 입력 문장이 속하는 카테고리를 결정할 수 있다. 대분류 카테고리 분류 성능을 향상시키기 위해, 대분류 카테고리를 분류하기 전에 인코딩된 입력 시퀀스를 변분 추론 네트워크에 입력하는 것도 가능하다.
입력 문장에 대응되는 도메인과 제1 카테고리 및 제2 카테고리가 결정되면, 손실값 계산기(125)가 도메인 분류에 대한 손실값과 제1 카테고리 및 제2 카테고리 분류에 대한 손실값을 각각 계산하고, 세 손실값을 합산하여 총 손실값을 계산할 수 있다(1615).
가중치 조절기(126)는 계산된 총 손실값을 최소화하는 방향으로 딥러닝 모델의 히든 레이어들의 가중치들을 조절할 수 있다(1617).
전술한 질의 응답 시스템 및 질의 응답 시스템의 제어 방법에 의하면, 서로 연관된 과제인 입력 문장에 대한 입력 문장의 도메인 분류와 카테고리 분류를 동시에 학습함으로써 딥러닝 모델의 성능을 향상시킬 수 있다.
또한, in-domain validation을 수행하여 질의 응답 시스템이 질의 응답을 수행할 수 있는 문장인지 여부를 판별함으로써, 질의 응답 시스템의 에려율을 줄이고 도메인과 관계없는 질문일 경우 사전에 대처가 가능하다.
또한, 입력된 문장의 도메인을 분류하고, 해당 도메인에 대한 대분류 카테고리, 소분류 카테고리르 분류함으로써 질의 응답 시스템에서 질의 응답을 수행함에 있어서 유용한 자질로 이용하여 질의 응답 시스템의 성능을 향상시킬 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
1: 질의 응답 시스템
110: 전처리 모듈
115: 응답 여부 판단 모듈
120: 학습 모듈
130: 출력 모듈
140: 메모리

Claims (21)

  1. 입력 문장을 분석하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 응답 여부 판단 모듈;
    상기 입력 문장에 대한 응답을 수행할 수 있는 것으로 판단되면,
    상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력하는 학습 모듈; 및
    상기 입력 문장에 대응되는 응답을 출력하는 출력 모듈;을 포함하고,
    상기 학습 모듈은,
    상기 입력 문장을 입력 데이터로, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행하는 질의 응답 시스템.
  2. 제 1항에 있어서,
    상기 응답 여부 판단 모듈은,
    상기 변환된 텍스트의 인코딩을 수행하는 인 도메인 인코딩 모듈; 및
    상기 인코딩 모듈의 출력에 기초하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 인 도메인(in-domain) 판단 모듈;을 포함하는 질의 응답 시스템.
  3. 제 2항에 있어서,
    상기 응답 여부 판단 모듈은,
    상기 인코딩 모듈의 출력에 변분 추론(variational inference)을 적용하는 변분 추론 네트워크를 더 포함하고,
    상기 변분 추론 네트워크의 출력은 상기 인 도메인 판단 모듈에 입력되는 질의 응답 시스템.
  4. 제 1항에 있어서,
    상기 학습 모듈은,
    상기 멀티 태스크 학습 단계에서, 상기 입력 데이터에 대응되는 도메인 및 상기 입력 데이터가 속하는 제1 카테고리 및 제2 카테고리를 각각 분류하는 질의 응답 시스템.
  5. 제 4항에 있어서,
    상기 학습 모듈은,
    상기 분류된 도메인의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고, 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 질의 응답 시스템.
  6. 제 4항에 있어서,
    상기 학습 모듈은,
    상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하는 인코딩 모듈;
    상기 인코딩 모듈의 출력에 기초하여 상기 도메인을 분류하는 도메인 분류기;
    상기 인코딩 모듈의 출력에 기초하여 제1 카테고리를 분류하는 제1 카테고리 분류기; 및
    상기 인코딩 모듈의 출력에 기초하여 제2 카테고리를 분류하는 제2 카테고리 분류기; 를 포함하는 질의 응답 시스템.
  7. 제 6항에 있어서,
    상기 인코딩 모듈은,
    제1 인코딩 레이어;
    상기 제1 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제2 인코딩 레이어; 및
    상기 제2 인코딩 레이어의 출력에 대해 인코딩을 수행하는 제3 인코딩 레이어를 포함하는 질의 응답 시스템.
  8. 제 7항에 있어서,
    상기 도메인 분류기는,
    상기 제1 인코딩 레이어의 출력에 기초하여 상기 입력 데이터에 대응되는 도메인을 분류하는 질의 응답 시스템.
  9. 제 7항에 있어서,
    상기 학습 모듈은,
    상기 제2 인코딩 레이어의 출력에 변분 추론(variational inference)을 적용하는 변분 추론 네트워크를 더 포함하고,
    상기 변분 추론 네트워크의 출력은 상기 제1 카테고리 분류기에 입력되는 질의 응답 시스템.
  10. 제 7항에 있어서,
    상기 제2 카테고리 분류기는,
    상기 제3 인코딩 레이어의 출력에 기초하여 상기 입력 데이터가 속하는 제2 카테고리를 분류하는 질의 응답 시스템.
  11. 제 1항에 있어서,
    상기 도메인 및 복수의 카테고리는,
    차량과 관련된 도메인 및 카테고리를 포함하는 질의 응답 시스템.
  12. 입력 문장을 분석하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하고;
    상기 입력 문장에 대한 응답을 수행할 수 있는 것으로 판단되면,
    상기 입력 문장을 입력 데이터로, 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행하고;
    상기 멀티 태스크 학습이 완료되면, 상기 멀티 태스크 학습 결과에 기초하여 상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 복수의 카테고리를 결정하고;
    상기 입력 문장에 대응되는 응답을 출력하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  13. 제 12항에 있어서,
    상기 응답을 수행할 수 있는지 여부를 판단하는 것은,
    상기 변환된 텍스트의 인코딩을 수행하고;
    상기 인코딩된 출력에 기초하여 상기 입력 문장에 대한 응답을 수행할 수 있는지 여부를 판단하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  14. 제 13항에 있어서,
    상기 응답을 수행할 수 있는지 여부를 판단하는 것은,
    상기 인코딩된 출력에 변분 추론(variational inference)을 적용하고;
    상기 변분 추론의 출력에 기초하여 상기 응답을 수행할 수 있는지 여부를 판단하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  15. 제 12항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 입력 문장에 대응되는 도메인 및 상기 입력 문장이 속하는 제1 카테고리 및 제2 카테고리를 각각 분류하는 것을 포함하는 질의 응답 시스템의 제어 방법.
  16. 제 15항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 분류된 도메인의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고;
    상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  17. 제 15항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하고;
    상기 인코딩된 출력에 기초하여 상기 도메인을 분류하고;
    상기 인코딩된 출력에 기초하여 상기 제1 카테고리를 분류하고;
    상기 인코딩된 출력에 기초하여 상기 제2 카테고리를 분류하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  18. 제 17항에 있어서,
    상기 인코딩하는 것은,
    제1 인코딩을 수행하고;
    상기 제1 인코딩의 출력에 대해 제2 인코딩을 수행하고;
    상기 제2 인코딩의 출력에 대해 제3 인코딩을 수행하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  19. 제 18항에 있어서,
    상기 도메인을 분류하는 것은,
    상기 제1 인코딩의 출력에 기초하여 상기 입력 문장에 대응되는 도메인을 분류하는 것을 포함하는 질의 응답 시스템의 제어 방법.
  20. 제 18항에 있어서,
    상기 제1 카테고리를 분류하는 것은,
    상기 제2 인코딩의 출력에 대해 변분 추론(variational inference)을 적용하고;
    상기 변분 추론의 출력에 기초하여 상기 입력 문장이 속하는 제1 카테고리를 분류하는 것;을 포함하는 질의 응답 시스템의 제어 방법.
  21. 제 18항에 있어서,
    상기 제2 카테고리를 분류하는 것은,
    상기 제3 인코딩의 출력에 기초하여 상기 입력 문장이 속하는 제2 카테고리를 분류하는 것을 포함하는 질의 응답 시스템의 제어 방법.
KR1020220057970A 2022-05-11 2022-05-11 질의 응답 시스템 및 그 제어 방법 KR20230158337A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220057970A KR20230158337A (ko) 2022-05-11 2022-05-11 질의 응답 시스템 및 그 제어 방법
US18/195,770 US20230365138A1 (en) 2022-05-11 2023-05-10 System for generating answers based on multi-task learning and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220057970A KR20230158337A (ko) 2022-05-11 2022-05-11 질의 응답 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20230158337A true KR20230158337A (ko) 2023-11-20

Family

ID=88700289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220057970A KR20230158337A (ko) 2022-05-11 2022-05-11 질의 응답 시스템 및 그 제어 방법

Country Status (2)

Country Link
US (1) US20230365138A1 (ko)
KR (1) KR20230158337A (ko)

Also Published As

Publication number Publication date
US20230365138A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
US10388274B1 (en) Confidence checking for speech processing and query answering
Thiolliere et al. A hybrid dynamic time warping-deep neural network architecture for unsupervised acoustic modeling.
US10621975B2 (en) Machine training for native language and fluency identification
Sharma et al. Acoustic model adaptation using in-domain background models for dysarthric speech recognition
CN113470662A (zh) 生成和使用用于关键词检出系统的文本到语音数据和语音识别系统中的说话者适配
WO2020123227A1 (en) Speech processing system
US20220258607A1 (en) Question-and-answer system and method ofcontrolling the same
Singh Forensic and Automatic Speaker Recognition System.
KR20230099269A (ko) 개체명 인식 시스템 및 개체명 인식 방법
Singla et al. Towards end-2-end learning for predicting behavior codes from spoken utterances in psychotherapy conversations
Price et al. Improved end-to-end spoken utterance classification with a self-attention acoustic classifier
Kumar et al. Machine learning based speech emotions recognition system
Sarma et al. Phoneme-based speech segmentation using hybrid soft computing framework
Chakraborty et al. Knowledge-based framework for intelligent emotion recognition in spontaneous speech
Nivetha A survey on speech feature extraction and classification techniques
CN114898779A (zh) 融合多模态的语音情感识别方法及系统
US20210327415A1 (en) Dialogue system and method of controlling the same
CN114187921A (zh) 语音质量评价方法和装置
Gade et al. A comprehensive study on automatic speaker recognition by using deep learning techniques
Harere et al. Quran recitation recognition using end-to-end deep learning
KR20230158337A (ko) 질의 응답 시스템 및 그 제어 방법
KR20230120790A (ko) 가변적 언어모델을 이용한 음성인식 헬스케어 서비스
CN114242045A (zh) 一种自然语言对话系统意图深度学习方法
Ezz-Eldin et al. Bag-of-words from image to speech a multi-classifier emotions recognition system