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

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

Info

Publication number
KR20220118123A
KR20220118123A KR1020210021874A KR20210021874A KR20220118123A KR 20220118123 A KR20220118123 A KR 20220118123A KR 1020210021874 A KR1020210021874 A KR 1020210021874A KR 20210021874 A KR20210021874 A KR 20210021874A KR 20220118123 A KR20220118123 A KR 20220118123A
Authority
KR
South Korea
Prior art keywords
question
representative
learning
module
encoding
Prior art date
Application number
KR1020210021874A
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 KR1020210021874A priority Critical patent/KR20220118123A/ko
Priority to US17/673,287 priority patent/US20220258607A1/en
Priority to CN202210149110.9A priority patent/CN114969247A/zh
Publication of KR20220118123A publication Critical patent/KR20220118123A/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K35/00Arrangement of adaptations of instruments
    • 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
    • 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
    • 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/36Creation of semantic tools, e.g. ontology or thesauri
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/005Language recognition
    • B60K2360/148
    • B60K2360/161
    • B60K35/10
    • B60K35/28
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

개시된 발명은 딥러닝을 적용하여 차량 관련 FAQ에 대해 적절한 응답을 제공할 수 있는 질의응답 시스템 및 그 제어 방법을 제공한다.
일 실시예에 따른 질의응답 시스템은, 복수의 대표 질문과 상기 복수의 대표 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하는 메모리; 상기 저장된 복수의 대표 질문 중에서 입력 문장에 대응되는 대표 질문을 출력하는 학습 모듈; 및 상기 메모리에서, 상기 출력된 대표 질문에 매칭된 응답을 검색하고, 상기 검색된 응답을 출력하는 출력 모듈;을 포함하고, 상기 학습 모듈은, 상기 복수의 대표 질문에 대한 복수의 확장 문장을 입력 데이터로, 상기 복수의 확장 문장 각각에 대응되는 복수의 대표 질문 및 상기 복수의 확장 문장이 각각 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행한다.

Description

질의응답 시스템 및 그 제어 방법{QESTION AND ANSWER SYSTEM AND METHOD FOR CONTROLLING THE SAME}
개시된 발명은 사용자가 발화한 질문에 대한 응답을 제공하는 질의응답 시스템 및 그 제어 방법에 관한 것이다.
대화 시스템은 사용자와의 대화를 통해 사용자 의도를 파악하고, 파악된 사용자 의도에 대응되는 서비스를 제공할 수 있는 시스템으로서, 특정 장치와 연계되어 사용자 의도에 따라 해당 장치에 대한 제어를 수행하기도 하고, 사용자 의도에 따라 특정 정보를 제공하기도 한다.
차량 내에서는 사용자의 움직임에 공간적인 제약과 상황적인 제약이 있기 때문에, 사용자의 발화를 통해 그 의도를 파악하고 사용자가 원하는 서비스를 제공하는 대화 시스템이 유용하게 사용될 수 있다.
특히, 차량과 관련된 사용자의 질문에 응답을 제공하는 서비스에 대한 필요성이 크기 때문에, 해당 서비스의 정확도와 품질을 향상시키기 위한 연구 및 개발이 요구된다.
개시된 발명은 딥러닝을 적용하여 차량 관련 FAQ에 대해 적절한 응답을 제공할 수 있는 질의응답 시스템 및 그 제어 방법을 제공한다.
일 실시예에 따른 질의응답 시스템은, 복수의 대표 질문과 상기 복수의 대표 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하는 메모리; 상기 저장된 복수의 대표 질문 중에서 입력 문장에 대응되는 대표 질문을 출력하는 학습 모듈; 및 상기 메모리에서, 상기 출력된 대표 질문에 매칭된 응답을 검색하고, 상기 검색된 응답을 출력하는 출력 모듈;을 포함하고, 상기 학습 모듈은, 상기 복수의 대표 질문에 대한 복수의 확장 문장을 입력 데이터로, 상기 복수의 확장 문장 각각에 대응되는 복수의 대표 질문 및 상기 복수의 확장 문장이 각각 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행한다.
상기 학습 모듈은, 상기 복수의 확장 문장을 입력 데이터로, 상기 복수의 대표 질문, 상기 복수의 카테고리 및 상기 복수의 확장 문장에 각각 포함된 복수의 개체명을 출력 데이터로 이용하여 멀티 태스크 학습을 수행할 수 있다.
상기 메모리에 저장되는 복수의 대표 질문은, 차량과 관련된 FAQ(Frequently Asked Question)를 포함할 수 있다.
상기 복수의 개체명은, 차량과 관련된 용어를 포함할 수 있다.
상기 학습 모듈은, 상기 멀티 태스크 학습 단계에서, 상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문 및 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리를 각각 분류할 수 있다.
상기 학습 모듈은, 상기 분류된 대표 질문의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고, 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절할 수 있다.
상기 학습 모듈은, 상기 멀티 태스크 학습 단계에서, 상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문, 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리 및 상기 복수의 개체명 중에서 상기 입력 데이터에 포함된 개체명을 각각 분류할 수 있다.
상기 학습 모듈은, 상기 분류된 대표 질문의 손실 값, 상기 분류된 카테고리의 손실 값 및 분류된 개체명의 손실 값을 각각 계산하고, 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절할 수 있다.
상기 학습 모듈은, 상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하는 인코딩 모듈; 상기 인코딩 모듈의 출력에 기초하여 상기 대표 질문을 분류하는 질문 분류기; 및 상기 인코딩 모듈의 출력에 기초하여 상기 카테고리를 분류하는 카테고리 분류기;를 포함할 수 있다.
상기 인코딩 모듈은, 상기 입력 시퀀스에 대해 글로벌 인코딩(global encoding)을 수행하는 제1인코딩 레이어; 및 상기 제1인코딩 모듈의 출력에 대해 시퀀셜 인코딩(sequential encoding)을 수행하는 제2인코딩 레이어; 를 포함할 수 있다.
상기 학습 모듈은, 상기 인코딩 모듈의 출력에 변분 추론(variational inference)을 적용하는 변분 추론 네트워크를 더 포함하고, 상기 변분 추론 네트워크의 출력은 상기 카테고리 분류기에 입력될 수 있다.
상기 학습 모듈은, 상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하는 인코딩 모듈; 상기 인코딩 모듈의 출력에 기초하여 상기 대표 질문을 분류하는 질문 분류기; 상기 인코딩 모듈의 출력에 기초하여 상기 카테고리를 분류하는 카테고리 분류기; 및 상기 인코딩 모듈의 출력에 기초하여 상기 개체명을 분류하는 개체명 분류기;를 포함할 수 있다.
일 실시예에 따른 질의응답 시스템의 제어 방법은, 복수의 대표 질문과 상기 복수의 대표 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하고; 상기 복수의 대표 질문에 대한 복수의 확장 문장을 입력 데이터로, 상기 복수의 확장 문장 각각에 대응되는 복수의 대표 질문 및 상기 복수의 확장 문장이 각각 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행하고; 상기 멀티 태스크 학습이 완료되면, 상기 멀티 태스크 학습 결과에 기초하여 상기 저장된 복수의 대표 질문 중에서 사용자가 발화한 입력 문장에 대응되는 대표 질문을 결정하고; 상기 저장된 복수의 응답 중에서 상기 결정된 대표 질문에 매칭된 응답을 결정한다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 복수의 확장 문장을 입력 데이터로, 상기 복수의 대표 질문, 상기 복수의 카테고리 및 상기 복수의 확장 문장에 각각 포함된 복수의 개체명을 출력 데이터로 이용하여 멀티 태스크 학습을 수행하는 것을 포함할 수 있다.
상기 저장되는 복수의 대표 질문은, 차량과 관련된 FAQ(Frequently Asked Question)를 포함할 수 있다.
상기 복수의 개체명은, 차량과 관련된 용어를 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문 및 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리를 각각 분류하는 것을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 분류된 대표 질문의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고; 상기 계산된 손실 값들에 기초하여 상기 멀티 태스크 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 것;을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문, 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리 및 상기 복수의 개체명 중에서 상기 입력 데이터에 포함된 개체명을 각각 분류하는 것;을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 분류된 대표 질문의 손실 값, 상기 분류된 카테고리의 손실 값 및 분류된 개체명의 손실 값을 각각 계산하고; 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 것;을 포함할 수 있다.
상기 멀티 태스크 학습을 수행하는 것은, 상기 입력 데이터에 대응되는 입력 시퀀스에 대해 글로벌 인코딩(global encoding)과 시퀀셜 인코딩(sequential encoding)을 수행하는 것;을 포함할 수 있다.
일 실시예에 따른 질의응답 시스템 및 그 제어 방법에 의하면, 서로 연관된 과제인 입력 문장에 대한 대표 질문 분류와 카테고리 분류 또는 입력 문장에 대한 대표 질문 분류, 카테고리 분류 및 개체명 분류를 동시에 학습함으로써 딥러닝 모델의 성능을 향상시킬 수 있다.
또한, 이러한 딥러닝 모델을 차량에 특화시켜 생성한 후 차량 관련 FAQ 에 대한 응답을 제공하는데 사용함으로써, 차량의 사용자가 직접 매뉴얼을 검색하여 원하는 응답을 찾아야 하는 번거로움을 해소할 수 있다.
도 1 은 일 실시예에 따른 질의응답 시스템의 제어 블록도이다.
도 2는 일 실시예에 따른 질의응답 시스템의 메모리에 저장되는 정보의 예시를 나타낸 도면이다.
도 3은 일 실시예에 따른 질의응답 시스템의 학습에 사용되는 확장 문장의 예시를 나타낸 도면이다.
도 4는 일 실시예에 따른 질의응답 시스템의 다른 제어 블록도이다.
도 5는 일 실시예에 따른 질의응답 시스템의 전처리 모듈의 구성을 구체화한 제어 블록도이다.
도 6은 일 실시예에 따른 질의응답 시스템에 있어서 자질 추출 모듈의 구성을 구체화한 제어 블록도이다.
도 7은 일 실시예에 따른 질의응답 시스템의 자질 추출 결과의 예시를 나타낸 표이다.
도 8은 일 실시예에 따른 질의응답 시스템의 포맷 변환 결과의 예시를 나타낸 표이다.
도 9는 일 실시예에 따른 질의응답 시스템의 학습 모듈을 구체화한 제어 블록도이다.
도 10은 일 실시예에 따른 질의응답 시스템의 학습 모듈의 동작을 레이어 단위로 나타낸 도면이다.
도 11은 일 실시예에 따른 질의응답 시스템의 학습 모듈을 구체화한 제어 블록도이다.
도 12는 도 11의 질의응답 시스템의 학습 모듈의 동작을 레이어 단위로 나타낸 도면이다.
도 13은 일 실시예에 따른 질의응답 시스템의 성능 시험 결과를 나타낸 테이블이다.
도 14는 차량과 서버에서 주고받는 정보를 나타낸 도면이다.
도 15는 질의응답 시스템을 포함하는 서버의 제어 블록도이다.
도 16은 질의응답 시스템을 포함하는 서버와 연결되는 차량의 제어 블록도이다.
도 17은 일 실시예에 따른 질의응답 시스템의 제어 방법에 대한 순서도이다.
도 18은 일 실시예에 따른 질의응답 시스템의 제어 방법에 있어서, 개체명 인식을 추가로 수행하는 방법에 대한 순서도이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
또한, 본 명세서에서 설명되는 구성요소 앞에 사용되는 "제1~", "제2~"와 같은 서수는 구성요소들을 상호 구분하기 위해 사용되는 것일 뿐, 이들 구성요소들 사이의 연결 순서, 사용 순서, 우선 순위 등의 다른 의미를 갖는 것은 아니다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이하에서는 첨부된 도면을 참조하여 일 측면에 따른 질의응답 시스템 및 그 제어 방법에 관한 실시예를 상세하게 설명하도록 한다.
도 1 은 일 실시예에 따른 질의응답 시스템의 제어 블록도이고, 도 2는 일 실시예에 따른 질의응답 시스템의 메모리에 저장되는 정보의 예시를 나타낸 도면이며, 도 3은 일 실시예에 따른 질의응답 시스템의 학습에 사용되는 확장 문장의 예시를 나타낸 도면이다.
도 1을 참조하면, 일 실시예에 따른 질의응답 시스템(1)은 복수의 대표 질문과 복수의 대표 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하는 메모리(140), 저장된 복수의 대표 질문 중에서 입력 문장에 대응되는 대표 질문을 출력하는 학습 모듈(120) 및 메모리(140)에서, 출력된 대표 질문에 매칭된 응답을 검색하고, 검색된 응답을 출력하는 출력 모듈(130)을 포함한다.
일 실시예에 따른 질의응답 시스템(1)은 사용자가 발화한 질문에 대한 응답을 제공하는 시스템이다. 여기서, 사용자가 발화한 질문은 미리 정해진 FAQ(Frequently Asked Question)일 수 있고, 질의응답 시스템(1)은 미리 정해진 FAQ에 대한 응답을 출력할 수 있다.
질의응답 시스템(1)이 차량과 연계되는 경우, 사용자가 발화한 질문은 차량과 관련된 FAQ일 수 있다. 따라서, 질의응답 시스템(1)은 사용자가 발화한 차량 관련 FAQ에 대한 응답을 출력할 수 있다.
이를 위해, 메모리(140)는 도 2의 예시와 같이 차량과 관련된 복수의 FAQ 각각에 대한 대표 질문과 그에 대한 응답을 매칭시켜 질의응답 쌍(pair)의 형태로 저장할 수 있다.
한편, 실질적인 질문 내용은 동일하더라도 사용자가 발화하는 문장의 형태는 다양할 수 있다. 즉, 사용자는 메모리(140)에 저장된 대표 질문과 동일한 문장을 발화하지 않고 동일한 의미를 갖는 다른 형태의 문장으로 발화할 수도 있다.
따라서, 질의응답 시스템(1)의 학습 모듈(120)은 사용자가 발화한 임의의 문장이 메모리(140)에 저장된 복수의 대표 질문 중 어느 대표 질문에 대응되는지를 판단할 수 있다.
이를 위해, 학습 모듈(120)은 입력 데이터와 출력 데이터로 이루어지는 복수의 학습 데이터 세트를 이용하여 학습을 수행할 수 있고, 복수의 확장 문장을 입력 데이터로, 복수의 확장 문장 각각에 대응되는 복수의 대표 질문을 출력 데이터로 이용할 수 있다.
도 3에 도시된 바와 같이, 확장 문장은 대표 질문과 다른 문장이지만 그 의미는 동일한 문장을 의미한다. 예를 들어, 대표 질문 "오토 홀드가 뭐야?"에 대해서는 이와 동일한 의미를 갖는 다른 문장 "브레이크를 계속 밟고 있을 필요가 없는 기능이 뭐지?"가 확장 문장으로서 학습에 이용될 수 있다.
또는, 대표 질문 "스티어링 휠 열선 어떻게 틀어?"에 대해서는 이와 동일한 의미를 갖는 다른 문장 "핸드 히터 켜고 싶어. 어떻게 해야해?"가 확장문장으로서 학습에 이용될 수 있다. 일 실시예에 따른 질의응답 시스템(1)은 하나의 대표 질문에 대해 복수의 확장 문장을 학습에 이용할 수 있다.
일 실시예에 따른 질의응답 시스템(1)은 전술한 학습을 수행함에 있어서, 입력 문장에 대응되는 대표 질문과 함께 입력 문장이 속하는 카테고리를 동시에 학습하는 멀티 태스크 학습(Multi Task Learning)을 수행할 수 있다. 이와 같이 서로 연관있는 태스크를 동시에 학습함으로써 학습 모듈(120)의 성능을 향상시킬 수 있다.
이를 위해, 질의응답 시스템(1)은 복수의 확장 문장을 입력 데이터로, 복수의 확장 문장 각각에 대응되는 복수의 대표 질문 및 상기 복수의 확장 문장 각각이 속하는 복수의 카테고리를 출력 데이터로 이용하여 학습을 수행할 수 있다.
멀티 태스크 학습은 딥 러닝(deep learning) 모델에 기반하여 수행되는바, 학습 모듈(120)의 멀티 태스크 학습에 관한 구체적인 설명은 후술하기로 한다.
출력 모듈(130)은 메모리(140)에서 입력 문장에 대응되는 대표 질문을 검색하고, 검색된 대표 질문에 매칭된 응답을 출력할 수 있다.
한편, 사용자가 발화한 입력 문장은 학습 모듈(120)에 입력되기 전에 딥 러닝 모델에서 처리 가능한 적절한 포맷으로 변환될 수 있다. 이를 위해 질의응답 시스템(1)은 입력 문장의 포맷을 변환하는 전처리 모듈(110)을 포함할 수 있다.
이하, 사용자 발화에 대한 전처리 과정부터 설명하기로 한다.
도 4는 일 실시예에 따른 질의응답 시스템의 다른 제어 블록도이고, 도 5는 일 실시예에 따른 질의응답 시스템의 전처리 모듈의 구성을 구체화한 제어 블록도이다.
도 4를 참조하면, 일 실시예에 따른 질의응답 시스템(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)에 입력되어 딥 러닝 모델에서 처리 가능한 형태로 변환될 수 있다.
도 5를 참조하면, 전처리 모듈(110)은 입력 문장을 정규화하는 정규화 모듈(111), 입력 문장으로부터 자질을 추출하는 자질 추출 모듈(112) 및 입력 문장의 포맷을 변환하는 포맷 변환 모듈(113)을 포함할 수 있다.
정규화 모듈(111)은 입력 문장에서 특수문자, 기호 등의 의미없는 데이터를 제외하기 위해 정규화(normalization)를 수행할 수 있다. 후술하는 구성들에서 처리되는 입력 문장은 모두 정규화된 입력 문장임을 전제로 하기로 한다.
자질 추출 모듈(112)은 정규화된 입력 문장에서 자질(feature)을 추출하고, 포맷 변환 모듈(113)은 추출된 자질에 기초하여 입력 문장에 인덱스를 부여할 수 있다.
도 6은 일 실시예에 따른 질의응답 시스템에 있어서 자질 추출 모듈의 구성을 구체화한 제어 블록도이다.
도 6을 참조하면, 자질 추출 모듈(112)은 형태소 분석기(112a), 품사 분석기(112b) 및 음절 분석기(112c)를 포함할 수 있다.
형태소 분석기(112a)는 입력 문장을 형태소 단위로 분리하고, 품사 분석기(112b)는 각 형태소에 대한 품사를 분석하여 각 형태소마다 품사를 태깅(tagging)할 수 있다.
음절 분석기(112c)는 입력 문장을 음절 단위로 분리할 수 있다. 형태소뿐만 아니라 음절도 자질로서 함께 이용하면, unknown word나 infrequent word에 대해서도 분석이 가능하여 학습 모듈(120)의 성능이 향상될 수 있다.
도 7은 일 실시예에 따른 질의응답 시스템의 자질 추출 결과의 예시를 나타낸 표이고, 도 8은 일 실시예에 따른 질의응답 시스템의 포맷 변환 결과의 예시를 나타낸 표이다.
당해 예시에서는 입력 문장이 "안전벨트가 빠지지 않는데 어떻게 해야 하지?"인 경우에 대한 결과를 예로 들어 설명한다.
도 7을 참조하면, 정규화 모듈(111)이 입력 문장에 대해 정규화를 수행하여 특수 문자 "?"를 제거할 수 있다.
형태소 분석기(112a)가 정규화된 입력 문장을 형태소 단위로 분리하면, "안전, 벨트, 가, 빠지, 지, 않, 는데, 어떻게, 하, 아야, 하, 지"와 같은 결과를 출력할 수 있다.
품사 분석기(112b)가 각 형태소의 품사를 분석하고 분석된 품사를 각 형태소에 태깅하면 "안전/NNG, 벨트/NNG, 가/JKS, 빠지/VV, 지/EC, 않/VX, 는데/EC, 어떻게/MAG, 하/VV, 아야/EC, 하/VX, 지/EF"와 같은 결과를 출력할 수 있다.
음절 분석기(112c)가 정규화된 입력 문장을 음절 단위로 분리하면, "안, 전, 벨, 트, 가, 빠, 지, 지, 않, 는, 데, 어, 떻, 게, 해, 야, 하, 지"와 같은 결과를 출력할 수 있다.
일 실시예에 따르면, 입력 문장을 형태소 단위로도 분리하고 음절 단위로도 분리함으로써, 후술하는 바와 같이 워드 임베딩(word embedding)과 캐릭터 임베딩(character embedding)을 모두 수행할 수 있다.
전술한 바와 같이, 포맷 변환 모듈(113)은 자질 추출 결과에 기초하여 입력 문장에 대해 인덱싱(indexing)을 수행할 수 있다. 구체적으로, 포맷 변환 모듈(113)은 미리 정의된 사전을 이용하여 입력 문장을 구성하는 복수의 단어 또는 복수의 자질 각각에 대해 인덱스를 부여할 수 있다. 포맷 변환 과정에서 부여되는 인덱스는 사전 내에서의 단어의 위치를 나타낼 수 있다.
포맷 변환 모듈(113)에 의하면, 도 8에 도시된 바와 같이, 정규화된 입력 문장 "안전벨트가 빠지지 않는데 어떻게 해야 하지"를 형태소 단위로 인덱싱할 수도 있고, 음절 단위로 인덱싱할 수도 있다. 포맷 변환 모듈(113)에 의해 입력 문장에 부여된 인덱스들은 후술하는 임베딩 과정에서 사용될 수 있다.
후술하는 실시예에서는 전처리가 완료된 입력 문장을 입력 시퀀스라 하기로 한다. 입력 시퀀스는 토큰 단위로 처리될 수 있고, 당해 예시에서는 형태소 단위의 토큰을 사용하기로 한다.
도 9는 일 실시예에 따른 질의응답 시스템의 학습 모듈을 구체화한 제어 블록도이고, 도 10은 일 실시예에 따른 질의응답 시스템의 학습 모듈의 동작을 레이어 단위로 나타낸 도면이다.
일 실시예에 따르면, 학습 모듈(120)은 입력 문장에 대응되는 대표 질문과 카테고리를 동시에 학습하는 멀티 태스크 딥 러닝 모델을 포함할 수 있다. 도 9를 참조하면, 학습 모듈(120)은 임베딩 모듈(121), 인코딩 모듈(122), 피드 포워드 신경망(Feed Forward Neural Network: FFNN)(123), 카테고리 분류기(124a), 질문 분류기(124b), 손실값 계산기(125) 및 가중치 조절기(126)를 포함할 수 있다.
임베딩 모듈(121)은 임베딩을 수행하여 입력 시퀀스를 벡터화한다. 예를 들어, 임베딩 모듈(121)은 원-핫 벡터 인코딩(one-hot vector encoding) 방식을 적용하여 임베딩을 수행할 수 있다.
구체적으로, k개의 단어가 있을 때 k 차원의 0 벡터를 만들고, 해당 단어의 인덱스만 1로 표현할 수 있다. 이를 위해, 중복되는 단어들을 제거한 후 전체 단어들을 나열하여 각각을 원-핫 벡터로 변환하고, 변환된 원-핫 벡터를 이용하여 각각의 문장을 재구성할 수 있다.
도 10을 함께 참조하면, 학습 모듈(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인코딩 레이어와 시퀀셜(sequential) 인코딩을 수행하는 제2인코딩 레이어를 포함할 수 있다. 제1인코딩 레이어와 제2인코딩 레이어에는 각각 복수의 히든 레이어가 포함될 수 있다.
글로벌 인코딩을 수행하는 제1인코딩 레이어는 입력 시퀀스 전체를 한번에 인코딩하고, 시퀀셜 인코딩을 수행하는 제2인코딩 레이어는 토큰을 순차적으로 입력 받아 인코딩을 수행할 수 있다. 일 실시예에 따른 인코딩 모듈(122)은 글로벌 인코딩과 시퀀셜 인코딩을 모두 수행함으로써 입력 문장 내에서 단어들의 순서 또는 위치에 관한 정보의 정확도를 향상시킬 수 있다.
제1인코딩 레이어와 제2인코딩 레이어는 다양한 알고리즘에 의해 구현이 가능하다. 예를 들어, 제1인코딩 레이어는 어텐션(attention) 알고리즘을 이용할 수 있다. 어텐션 알고리즘에 따르면, 전체 입력 시퀀스 중 특정 시점에서 예측해야 할 단어와 연관 있는 부분을 집중(attention)해서 참고할 수 있다.
일 예로, 제1인코딩 레이어는 복수의 셀프 어텐션 레이어를 포함하는 트랜스포머(Vaswani et el., 2017)의 인코더를 이용할 수 있고, 제2인코딩 레이어는 순차적 인코딩을 위해 순환 신경망(Recurrent Neural Network: RNN), BiGRU(Bidirectional Gated Recurrent Units) 등의 알고리즘을 이용할 수 있다.
이 경우, 제1인코딩 레이어의 히든 스테이트(si) 각각은 제2인코딩 레이어에 입력될 수 있고, 제2인코딩 레이어는 양방향으로 히든 스테이트를 인코딩하여 순차적으로 인코딩된 컨텍스트 벡터 ri를 생성할 수 있다. 제1인코딩 레이어의 출력(si)와 제2인코딩 레이어의 출력(ri)은 아래 수학식 1에 의해 표현될 수 있다.
[수학식 1]
si = Transfomer(ei)
ri = BiRNN(ri-1, si)
상기 수학식 1에서 제1인코딩 레이어의 입력인 ei는 워드 임베딩 벡터와 캐릭터 임베딩 벡터가 결합된 dense vector이다.
한편, 제1인코딩 레이어의 히든 스테이트(si) 각각은 제2인코딩 레이어에 입력되고, 제1인코딩 레이어의 [CLS] 토큰의 히든 스테이트(s[CLS])는 피드 포워드 신경망(123)에 입력될 수 있다. [CLS] 토큰의 히든 스테이트(s[CLS])는 입력 문장 전체의 의미를 함축할 수 있다.
제2인코딩 레이어의 마지막 히든 스테이트(rn)도 피드 포워드 신경망(123)에 입력될 수 있다. 즉, 제1인코딩 레이어의 [CLS] 토큰의 히든 스테이트(s[CLS])와 제2인코딩 레이어의 마지막 히든 스테이트(rn)가 결합되어(concatenated) 피드 포워드 신경망(123)에 입력될 수 있다.
전술한 바와 같이, 학습 모듈(120)은 질문 분류와 카테고리 분류를 동시에 학습할 수 있다. 이를 위해, 피드 포워드 신경망(123)은 질문 분류와 카테고리 분류에 대한 공유 파라미터를 사용하여 선형 연산을 수행할 수 있다. 피드 포워드 신경망(123)을 거치면 제1인코딩 레이어의 출력과 제2인코딩 레이어의 출력이 좀 더 자연스럽게 결합되는 효과를 얻을 수 있다.
피드 포워드 신경망(123)의 출력은 질문 분류기(124a)와 카테고리 분류기(124b)에 각각 입력될 수 있다.
질문 분류기(124a)는 미리 정의된 복수의 대표 질문 중에서 입력 문장에 대응되는 대표 질문을 결정할 수 있다. 예를 들어, 약 1500여개의 대표 질문이 미리 정의될 수 있고, 질문 분류기(124a)는 피드 포워드 신경망(123)을 통해 카테고리 분류기(124b)와 공유된 파라미터를 갖는 선형 함수를 사용할 수 있다.
한편, 일 실시예에 따른 질의응답 시스템(1)은 대표 질문을 문장 벡터로 임베딩하기 위해 언어모델 BERT(Bidirectional Encoder Representations from Transformers, Reimers and Gurevych, 2019)를 사용하여 질문 분류기(124a)의 성능을 향상시킬 수 있다.
질문 분류기(124a)는 대표 질문의 문장 벡터와 인코딩된 입력 시퀀스를 비교하여 입력 문장에 대응되는 대표 질문을 분류할 수 있다. 일 예로, 분류 과제에서 사용되는 활성화 함수 중 하나인 소프트맥스(softmax) 함수를 이용하여 입력 시퀀스를 대표 질문에 매칭시킬 수 있다.
카테고리 분류기(124b)는 미리 정의된 복수의 카테고리 중에서 입력 문장이 속하는 카테고리를 결정할 수 있다.
예를 들어, 차량과 관련된 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)는 입력 문장이 전술한 예시와 같은 카테고리들 중에서 어느 카테고리에 속하는지 판단할 수 있는바, 질문 분류기(124a)와 마찬가지로 소프트맥스를 함수를 사용하여 입력 시퀀스를 카테고리에 매칭시킬 수 이다.
한편, 일 실시예에 따른 질의응답 시스템(1)은 카테고리 분류 성능을 향상시키기 위해, 피드 포워드 신경망(123)의 출력이 카테고리 분류기(124b)에 입력되기 전에 변분 추론 네트워크(variational inference network)를 거치도록 할 수 있다.
변분 추론 네트워크는 매니폴드 러닝(manifold learning)과 같이 고차원 내에 포함된 의미적 공간(semantic space)에 잠재 변수 z가 있다고 가정하고, 학습을 통해 저차원 공간으로 변환시켜 의미있는 자질을 추출함으로써 딥러닝 모델을 강건하게 만들 수 있다.
질문 분류기(124a)와 카테고리 분류기(124b)에서 각각 입력 문장에 대응되는 대표 질문과 카테고리를 출력하면, 손실값 계산기(125)는 질문 분류에 대한 손실값과 카테고리 분류에 대한 손실값을 각각 계산할 수 있다. 또한, 손실값 계산기(125)는 두 손실값을 합산하여 총 손실값을 계산할 수 있다.
예를 들어, 손실값 계산기(125)는 손실 함수로서 크로스-엔트로피(cross-entropy)를 사용할 수 있다. 질문 분류에 대한 손실값을 Lq로 나타내고, 카테고리 분류에 대한 손실값을 Lc로 나타내면, 총 손실값(L)은 아래 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
L = αL q + βL c
여기서, 하이퍼파라미터 α와 β는 질문 분류와 카테고리 분류에 대해 각각 최적화된 가중치일 수 있다.
가중치 조절기(126)는 계산된 총 손실값을 최소화하는 방향으로 딥러닝 모델의 히든 레이어들의 가중치들을 조절할 수 있다.
도 11은 일 실시예에 따른 질의응답 시스템의 학습 모듈을 구체화한 제어 블록도이고, 도 12는 도 11의 질의응답 시스템의 학습 모듈의 동작을 레이어 단위로 나타낸 도면이다.
전술한 바와 같이, 일 실시예에 따른 질의응답 시스템(1)은 서로 연관있는 과제인 질문 분류와 카테고리 분류를 동시에 학습하여 딥러닝 모델의 성능을 향상시킬 수 있다. 다른 예로, 차량 관련 개체명(Named Entity) 분류를 추가로 학습하는 것도 가능하다. 차량 관련 개체명은 차량과 관련된 용어를 나타낼 수 있다.
이를 위해, 도 11에 도시된 바와 같이, 학습 모듈(120)은 질문 분류기(124a), 카테고리 분류기(124b)에 더하여 개체명 분류기(124c)를 더 포함할 수 있다.
개체명 분류기(124c)의 동작을 NER(Named Entity Recognition)으로 정의할 수 있다. NER은 문장에서 특정 종류의 단어를 찾아내는 정보 추출 과제 중 하나이고, 개체명 분류기(124c)는 NER을 수행하여 입력 문장에서 차량과 관련된 단어를 찾아낼 수 있다.
개체명 분류를 위해, 차량 관련 개체명 레이블을 미리 정의할 수 있다. 차량 관련 개체명 레이블은 타입과 역할의 두 가지 식별자(identifier)를 가질 수 있다. 예를 들어, 타입은 차종, 바디, 샷시, 안전, 교통 안전, 인스트루먼트 패널, 인포테인먼트, 에어 컨디셔닝, 편의 기능, 주행, 유지보수, 개인 데이터 및 거래를 포함할 수 있고, 각각의 타입에 대해 복수의 역할이 정해질 수 있다.
도 12를 함께 참조하면, 일 예로 개체명 분류기(124c)는 CRF(Conditional Random Field) 레이어(Lample et al., 2016)로 구현될 수 있다. CRF 레이어에는 제2인코딩 레이어의 각각의 히든 스테이트가 입력될 수 있다. 즉, 전술한 수학식 1에서 제2인코딩 레이어의 출력 r은 CRF 레이어에 입력될 수 있다.
개체명 분류기(124c)는 입력 시퀀스의 각각의 토큰을 B-I-O 태그로 레이블링할 수 있다. B는 차량 관련 개체명이 시작되는 부분, I는 차량 관련 개체명에 속하는 부분, O는 차량 관련 개체명이 아닌 부분에 부여될 수 있다.
질문 분류기(124a), 카테고리 분류기(124b) 및 개체명 분류기(124c)에서 각각 입력 문장에 대응되는 대표 질문, 카테고리 및 개체명을 출력하면, 손실값 계산기(125)는 질문 분류에 대한 손실값, 카테고리 분류에 대한 손실값, 개체명 인식에 대한 손실값을 각각 계산할 수 있다. 또한, 손실값 계산기(125)는 세 손실값을 합산하여 총 손실값을 계산할 수 있다.
예를 들어, 손실값 계산기(125)는 손실 함수로서 크로스-엔트로피(cross-entropy)를 사용할 수 있다. 질문 분류에 대한 손실값을 Lq로 나타내고, 카테고리 분류에 대한 손실값을 Lc로 나타내고, 개체명 인식에 대한 손실값은 Le로 나타내면, 총 손실값(L)은 아래 수학식 3과 같이 나타낼 수 있다.
[수학식 3]
L = αL q + βL c + γLe
여기서, 하이퍼파라미터 α, β 및 γ는 질문 분류, 카테고리 분류 및 개체명 인식에 대해 각각 최적화된 가중치일 수 있다.
가중치 조절기(126)는 계산된 총 손실값을 최소화하는 방향으로 딥러닝 모델의 히든 레이어들의 가중치들을 조절할 수 있다.
도 13은 일 실시예에 따른 질의응답 시스템의 성능 시험 결과를 나타낸 테이블이다.
단순 RNN 모델을 베이스 라인으로 설정했으며, RNN 모델과 일 실시예에 따른 질의응답 시스템(1)에 적용된 딥러닝 모델(our model로 표기)에 대해 질문 분류의 정확도(FAQ acc), 카테고리 분류의 정확도(Cat. acc), 개체명 인식의 정확도(NER F1)를 각각 계산하였다. 또한, 문장 별 처리 시간(ms/sent)도 함께 계산하였다.
도 13을 참조하면, 질의응답 시스템(1)에 적용된 딥러닝 모델은 한국어에 대해 질문 분류의 정확도가 85.24%, 카테고리 분류의 정확도가 87.94%, 개체명 인식의 정확도가 74.79%로 계산되었고, 영어에 대해 질문 분류의 정확도가 82.95%, 카테고리 분류의 정확도가 79.42%, 개체명 인식의 정확도가 73.56%로 계산되었는바, RNN 모델과 BERT 모델에 비해 처리 시간의 큰 상승 없이 더 우수한 성능을 가짐을 확인할 수 있다.
전술한 질의응답 시스템(1)의 동작은 컴퓨터 프로그램에 의해 구현될 수 있고, 질의응답 시스템(1)은 이러한 프로그램이 저장된 적어도 하나의 메모리와 저장된 프로그램을 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 전술한 음성 인식기(150), 전처리 모듈(110), 학습 모듈(120) 및 출력 모듈(130) 등의 구성요소는 물리적인 구성에 의해 구별되는 것이 아니라 동작에 의해 구별되는 것이다. 따라서, 이들 구성요소들이 반드시 별도의 메모리나 프로세서에 의해 구현되어야 하는 것은 아니며, 적어도 일부의 구성요소들이 메모리나 프로세서를 상호 공유할 수 있다.
일 실시예에 따른 질의응답 시스템(1)은 차량에서 구현되는 것도 가능하고, 차량과 통신을 통해 연결된 서버에서 구현되는 것도 가능하다. 이하, 질의응답 시스템(1)이 서버에서 구현되는 경우를 예로 들어 설명한다.
도 14는 차량과 서버에서 주고받는 정보를 나타낸 도면이고, 도 15는 질의응답 시스템을 포함하는 서버의 제어 블록도이며, 도 16은 질의응답 시스템을 포함하는 서버와 연결되는 차량의 제어 블록도이다.
도 14를 참조하면, 차량(1)의 사용자가 발화를 입력하면, 입력된 사용자 발화는 서버(3)에 전송될 수 있다. 사용자 발화는 차량 관련 질문을 포함할 수 있고, 전술한 질의응답 시스템(1)을 포함하는 서버(3)는 차량 관련 질문에 대한 응답을 포함하는 시스템 발화를 차량(1)에 전송할 수 있다.
도 15를 함께 참조하면, 서버(3)는 차량(1)과 통신하여 신호를 주고 받는 통신부(310)와 전술한 질의응답 시스템(1)을 포함할 수 있다. 통신부(310)는 4G, 5G, wifi 등 다양한 무선 통신 방식 중 적어도 하나를 채용하여 차량(1)과 통신을 수행할 수 있다.
통신부(310)는 차량(1)으로부터 음성 신호의 형태로 전달된 사용자 발화를 수신하고, 질의응답 시스템(1)의 음성 인식기(150)가 전술한 방식에 따라 사용자 발화를 텍스트(입력 문장)로 변환하여 전처리 모듈(110)에 입력할 수 있다.
학습이 완료된 학습 모듈(120)이 실제 사용되는 과정에서는 전술한 질의응답 시스템(1)의 동작 중에서 카테고리 분류, 손실값 계산과 가중치 조절이 생략될 수 있다. 카테고리 분류, 손실값 계산 및 가중치 조절을 제외하고는 입력 문장에 대해 전처리를 수행하고 임베딩, 인코딩을 거쳐 입력 문장에 대응되는 대표 질문을 분류하는 동작이 동일하게 수행될 수 있다.
학습 모듈(120)에서 입력 문장에 대응되는 대표 질문을 출력하면, 출력 모듈(130)은 메모리(140)에서 대표 질문에 대응되는 응답을 검색하고, 검색된 응답을 통신부(310)를 통해 차량(1)에 전송할 수 있다.
출력 모듈(130)은 검색된 응답을 텍스트 형태로 전송할 수도 있고, 음성 신호의 형태로 전송할 수도 있다. 음성 신호의 형태로 전송하는 경우에는 출력 모듈(130)에 TTS(Text to Speech) 엔진이 포함될 수 있다.
도 16을 함께 참조하면, 차량(1)은 서버(3)와 통신하는 통신부(210) 및 차량(1)을 제어하는 제어부(220)를 비롯하여 사용자 인터페이스에 해당하는 마이크(231), 스피커(232) 및 디스플레이(233)를 포함할 수 있다.
마이크(231)에 입력된 사용자 발화는 음성 신호의 형태로 변환된 후 통신부(210)를 통해 서버(3)에 전달될 수 있다. 차량(1)의 통신부(210)도 4G, 5G, wifi 등 다양한 무선 통신 방식 중 적어도 하나를 채용하여 서버(3)와 통신을 수행할 수 있다.
서버(3)에서 사용자가 발화한 질문에 대응되는 응답이 전송되면, 통신부(210)가 이를 수신할 수 있고, 제어부(220)는 응답의 형태에 따라 스피커(232) 또는 디스플레이(233)를 통해 응답을 출력할 수 있다.
예를 들어, 서버(3)로부터 전송된 응답이 텍스트인 경우에는 디스플레이(233)를 통해 시각적으로 응답을 출력할 수 있고, 서버(3)로부터 전송된 응답이 음성 신호인 경우에는 스피커(232)를 통해 청각적으로 응답을 출력할 수 있다.
또는, 서버(3)로부터 전송된 응답이 텍스트인 경우에도, 차량(1)에 포함된 TTS 엔진이 전송된 응답을 음성 신호로 변환할 수 있고, 음성 신호로 변환된 응답을 스피커(232)를 통해 출력하는 것도 가능하다.
이하, 일 실시예에 따른 질의응답 시스템의 제어 방법을 설명하기로 한다. 일 실시예에 따른 질의응답 시스템의 제어 방법을 실시함에 있어서, 전술한 질의응답 시스템(1)이 사용될 수 있다. 따라서, 앞서 도 1 내지 도 16을 참조하여 설명한 내용은 별도의 언급이 없더라도 질의응답 시스템의 제어 방법에도 동일하게 적용될 수 있다.
도 17은 일 실시예에 따른 질의응답 시스템의 제어 방법에 대한 순서도이다. 당해 순서도에 나타난 방법은 질의응답 시스템의 학습 단계에서 수행되는 방법이다.
먼저, 질의응답 시스템의 제어 방법을 수행하기 위해, 입력 문장이 전처리 모듈(110)에 입력될 수 있다. 학습 단계에서 전처리 모듈(110)에 입력되는 입력 문장은 전술한 도 3의 예시에 도시된 바와 같은 확장 문장이다.
도 17을 참조하면, 전처리 모듈(110)이 입력 문장을 정규화한다(1010). 입력 문장의 정규화 단계에서는 입력 문장에서 특수 문자, 기호 등의 의미없는 데이터가 제외될 수 있다. 후술하는 단계에서 언급되는 입력 문장은 모두 정규화된 입력 문장을 의미한다.
전처리 모듈(110)이 입력 문장으로부터 자질을 추출한다(1020). 입력 문장으로부터 추출되는 자질은 형태소, 품사, 음절 등을 포함할 수 있다. 구체적으로, 전처리 모듈(110)은 입력 문장을 형태소 단위로 분리하고, 품사 분석기(112b)는 각 형태소에 대한 품사를 분석하여 각 형태소마다 품사를 태깅(tagging)할 수 있다. 추가적으로, 입력 문장을 음절 단위로도 분리하여 자질로서 이용하면 unknown word나 infrequent word에 대해서도 분석이 가능하여 학습 모듈(120)의 성능이 향상될 수 있다.
전처리 모듈(110)이 추출된 자질에 기초하여 입력 문장의 입력 포맷을 변환한다(1030). 입력 포맷을 변환하는 것은 입력 문장에 대해 인덱싱(indexing)을 수행하는 것을 포함할 수 있다. 전처리 모듈(110)은 미리 정의된 사전을 이용하여 입력 문장을 구성하는 복수의 단어 또는 복수의 자질 각각에 대해 인덱스를 부여할 수 있다. 포맷 변환 과정에서 부여되는 인덱스는 사전 내에서의 위치를 나타낼 수 있다.
전술한 과정에 의해 전처리가 완료된 입력 문장을 입력 시퀀스라 하기로 한다.
전술한 인덱싱 결과에 기초하여 입력 시퀀스에 대해 임베딩을 수행하면 입력 시퀀스를 벡터화할 수 있다. 이 때, 워드 임베딩과 캐릭터 임베딩이 모두 수행될 수 있다. 입력 시퀀스에 워드 임베딩을 수행하여 생성한 워드 임베딩 벡터와 입력 시퀀스에 캐릭터 임베딩을 수행하여 생성한 캐릭터 임베딩 벡터는 서로 결합(concatenate)되어 인코딩 모듈(122)에 입력될 수 있다.
인코딩 모듈(122)은 벡터로 변환된 입력 시퀀스에 대해 인코딩을 수행한다(1040). 인코딩 모듈(122)은 성능을 향상시키기 위하여, 글로벌 인코딩을 수행하는 제1인코딩 레이어와 시퀀셜(sequential) 인코딩을 수행하는 제2인코딩 레이어를 포함할 수 있다. 제1인코딩 레이어와 제2인코딩 레이어에는 각각 복수의 히든 레이어가 포함될 수 있다.
글로벌 인코딩을 수행하는 제1인코딩 레이어는 입력 시퀀스 전체를 한번에 인코딩하고, 시퀀셜 인코딩을 수행하는 제2인코딩 레이어는 토큰을 순차적으로 입력 받아 인코딩을 수행할 수 있다. 글로벌 인코딩과 시퀀셜 인코딩을 모두 수행함으로써 입력 문장 내에서 단어들의 순서 또는 위치에 관한 정보의 정확도를 향상시킬 수 있다. 더 구체적인 인코딩 방법에 관한 설명은 질의응답 시스템(1)의 실시예에서 설명한 바와 같다.
인코딩 결과는 각각 질문 분류기(124a)와 카테고리 분류기(124b)에 입력된다. 전술한 실시예에서 설명한 바와 같이, 인코딩 결과가 피드 포워드 신경망(123)을 거친 후에 각각의 분류기(124a, 124b)에 입력되는 것도 가능하다.
카테고리 분류기(124b)는 카테고리를 분류하고(1051), 질문 분류기(124a)는 대표 질문을 분류한다(1052). 구체적으로, 카테고리 분류기(124b)는 미리 정의된 카테고리들 중에서 입력 문장이 속하는 카테고리를 결정할 수 있다. 카테고리 분류 성능을 향상시키기 위해, 카테고리를 분류하기 전에 인코딩된 입력 시퀀스를 변분 추론 네트워크에 입력하는 것도 가능하다.
질문 분류기(124a)는 대표 질문의 문장 벡터와 인코딩된 입력 시퀀스를 비교하여 입력 문장에 대응되는 대표 질문을 결정할 수 있다.
입력 문장에 대응되는 대표 질문과 카테고리가 결정되면, 손실값 계산기(125)가 질문 분류에 대한 손실값과 카테고리 분류에 대한 손실값을 각각 계산하고, 두 손실값을 합산하여 총 손실값을 계산할 수 있다(1053).
가중치 조절기(126)는 계산된 총 손실값을 최소화하는 방향으로 딥러닝 모델의 히든 레이어들의 가중치들을 조절할 수 있다.
도 18은 일 실시예에 따른 질의응답 시스템의 제어 방법에 있어서, 개체명 인식을 추가로 수행하는 방법에 대한 순서도이다. 당해 순서도에 나타난 방법 역시 질의응답 시스템의 학습 단계에서 수행되는 방법이다.
입력 문장을 정규화하고(1010), 입력 문장으로부터 자질을 추출하고(1020), 입력 문장의 포맷을 변환하고(1030), 인코딩을 수행(1040)하는 동작들은 앞서 도 17의 순서도에서 설명한 바와 동일하다.
인코딩 결과는 각각 질문 분류기(124a)와 카테고리 분류기(124b)에 더하여 개체명 분류기(124c)에 입력된다. 카테고리 분류기(124b)와 질문 분류기(124a)에는 인코딩 모듈(123)의 마지막 히든 스테이트가 입력되고, 입력 시퀀스 전체에서 개체명을 인식해야 하는 개체명 분류기(124c)에는 인코딩 모듈(123)의 각각의 히든 스테이트가 각각 입력될 수 있다.
카테고리 분류기(124b)는 카테고리를 분류하고(1051), 질문 분류기(124a)는 대표 질문을 분류하며(1052), 개체명 분류기(124c)는 개체명을 분류할 수 있다(1053).
일 예로, 개체명 분류는 CRF(Conditional Random Field) 레이어(Lample et al., 2016)에 의해 이루어질 수 있다. CRF 레이어에는 제2인코딩 레이어의 각각의 히든 스테이트가 입력될 수 있다. 즉, 전술한 수학식 1에서 제2인코딩 레이어의 출력 r은 CRF 레이어에 입력될 수 있다.
개체명이 인식되면, 입력 시퀀스의 각각의 토큰이 B-I-O 태그로 레이블링될 수 있다. B는 차량 관련 개체명이 시작되는 부분, I는 차량 관련 개체명에 속하는 부분, O는 차량 관련 개체명이 아닌 부분에 부여될 수 있다.
입력 문장에 대응되는 대표 질문과 카테고리가 결정되고 입력 문장에 포함된 개체명이 인식되면, 손실값 계산기(125)가 질문 분류에 대한 손실값, 카테고리 분류에 대한 손실값 및 개체명 인식에 대한 손실값을 각각 계산하고, 세 손실값을 합산하여 총 손실값을 계산할 수 있다(1053).
가중치 조절기(126)는 계산된 총 손실값을 최소화하는 방향으로 딥러닝 모델의 히든 레이어들의 가중치들을 조절할 수 있다.
전술한 방식에 따라 멀티 태스크 학습이 이루어진 후에는, 차량의 사용자로부터 질문이 발화되면, 사용자 발화를 입력 문장으로 변환하고 전술한 입력 문장 정규화(1010)부터 인코딩(1040)까지 수행하고, 인코딩된 입력 시퀀스에 대해 질문 분류(1052)를 수행한 후 메모리(140)에서 대표 질문에 대응되는 응답을 검색하여 사용자에게 출력할 수 있다.
전술한 질의응답 시스템 및 그 제어 방법에 의하면, 서로 연관된 과제인 입력 문장에 대한 대표 질문 분류와 카테고리 분류 또는 입력 문장에 대한 대표 질문 분류, 카테고리 분류 및 개체명 분류를 동시에 학습함으로써 딥러닝 모델의 성능을 향상시킬 수 있다.
또한, 이러한 딥러닝 모델을 차량에 특화시켜 생성한 후 차량 관련 FAQ 에 대한 응답을 제공하는데 사용함으로써, 차량의 사용자가 직접 매뉴얼을 검색하여 원하는 응답을 찾아야 하는 번거로움을 해소할 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안된다.
1: 질의응답 시스템
110: 전처리 모듈
120: 학습 모듈
130: 출력 모듈
140: 메모리

Claims (21)

  1. 복수의 대표 질문과 상기 복수의 대표 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하는 메모리;
    상기 저장된 복수의 대표 질문 중에서 입력 문장에 대응되는 대표 질문을 출력하는 학습 모듈; 및
    상기 메모리에서, 상기 출력된 대표 질문에 매칭된 응답을 검색하고, 상기 검색된 응답을 출력하는 출력 모듈;을 포함하고,
    상기 학습 모듈은,
    상기 복수의 대표 질문에 대한 복수의 확장 문장을 입력 데이터로, 상기 복수의 확장 문장 각각에 대응되는 복수의 대표 질문 및 상기 복수의 확장 문장이 각각 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행하는 질의응답 시스템.
  2. 제 1 항에 있어서,
    상기 학습 모듈은,
    상기 복수의 확장 문장을 입력 데이터로, 상기 복수의 대표 질문, 상기 복수의 카테고리 및 상기 복수의 확장 문장에 각각 포함된 복수의 개체명을 출력 데이터로 이용하여 멀티 태스크 학습을 수행하는 질의응답 시스템.
  3. 제 1 항에 있어서,
    상기 메모리에 저장되는 복수의 대표 질문은,
    차량과 관련된 FAQ(Frequently Asked Question)를 포함하는 질의응답 시스템.
  4. 제 2 항에 있어서,
    상기 복수의 개체명은,
    차량과 관련된 용어를 포함하는 질의응답 시스템.
  5. 제 1 항에 있어서,
    상기 학습 모듈은,
    상기 멀티 태스크 학습 단계에서, 상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문 및 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리를 각각 분류하는 질의응답 시스템.
  6. 제 5 항에 있어서,
    상기 학습 모듈은,
    상기 분류된 대표 질문의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고, 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 질의응답 시스템.
  7. 제 2 항에 있어서,
    상기 학습 모듈은,
    상기 멀티 태스크 학습 단계에서, 상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문, 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리 및 상기 복수의 개체명 중에서 상기 입력 데이터에 포함된 개체명을 각각 분류하는 질의응답 시스템.
  8. 제 7 항에 있어서,
    상기 학습 모듈은,
    상기 분류된 대표 질문의 손실 값, 상기 분류된 카테고리의 손실 값 및 분류된 개체명의 손실 값을 각각 계산하고, 상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 질의응답 시스템.
  9. 제 6 항에 있어서,
    상기 학습 모듈은,
    상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하는 인코딩 모듈;
    상기 인코딩 모듈의 출력에 기초하여 상기 대표 질문을 분류하는 질문 분류기; 및
    상기 인코딩 모듈의 출력에 기초하여 상기 카테고리를 분류하는 카테고리 분류기;를 포함하는 질의응답 시스템.
  10. 제 9 항에 있어서,
    상기 인코딩 모듈은,
    상기 입력 시퀀스에 대해 글로벌 인코딩(global encoding)을 수행하는 제1인코딩 레이어; 및
    상기 제1인코딩 모듈의 출력에 대해 시퀀셜 인코딩(sequential encoding)을 수행하는 제2인코딩 레이어; 를 포함하는 질의응답 시스템.
  11. 제 10 항에 있어서,
    상기 학습 모듈은,
    상기 인코딩 모듈의 출력에 변분 추론(variational inference)을 적용하는 변분 추론 네트워크를 더 포함하고,
    상기 변분 추론 네트워크의 출력은 상기 카테고리 분류기에 입력되는 질의응답 시스템.
  12. 제 8 항에 있어서,
    상기 학습 모듈은,
    상기 입력 데이터에 대응되는 입력 시퀀스를 인코딩하는 인코딩 모듈;
    상기 인코딩 모듈의 출력에 기초하여 상기 대표 질문을 분류하는 질문 분류기;
    상기 인코딩 모듈의 출력에 기초하여 상기 카테고리를 분류하는 카테고리 분류기; 및
    상기 인코딩 모듈의 출력에 기초하여 상기 개체명을 분류하는 개체명 분류기;를 포함하는 질의응답 시스템.
  13. 복수의 대표 질문과 상기 복수의 대표 질문에 각각 대응되는 복수의 응답을 매칭시켜 저장하고;
    상기 복수의 대표 질문에 대한 복수의 확장 문장을 입력 데이터로, 상기 복수의 확장 문장 각각에 대응되는 복수의 대표 질문 및 상기 복수의 확장 문장이 각각 속하는 복수의 카테고리를 출력 데이터로 이용하여 멀티 태스크 학습을 수행하고;
    상기 멀티 태스크 학습이 완료되면, 상기 멀티 태스크 학습 결과에 기초하여 상기 저장된 복수의 대표 질문 중에서 사용자가 발화한 입력 문장에 대응되는 대표 질문을 결정하고;
    상기 저장된 복수의 응답 중에서 상기 결정된 대표 질문에 매칭된 응답을 결정하는 질의응답 시스템의 제어 방법.
  14. 제 13 항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 복수의 확장 문장을 입력 데이터로, 상기 복수의 대표 질문, 상기 복수의 카테고리 및 상기 복수의 확장 문장에 각각 포함된 복수의 개체명을 출력 데이터로 이용하여 멀티 태스크 학습을 수행하는 것을 포함하는 질의응답 시스템의 제어 방법.
  15. 제 13 항에 있어서,
    상기 저장되는 복수의 대표 질문은,
    차량과 관련된 FAQ(Frequently Asked Question)를 포함하는 질의응답 시스템의 제어 방법.
  16. 제 14 항에 있어서,
    상기 복수의 개체명은,
    차량과 관련된 용어를 포함하는 질의응답 시스템의 제어 방법.
  17. 제 13 항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문 및 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리를 각각 분류하는 것을 포함하는 질의응답 시스템의 제어 방법.
  18. 제 17 항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 분류된 대표 질문의 손실 값 및 상기 분류된 카테고리의 손실 값을 각각 계산하고;
    상기 계산된 손실 값들에 기초하여 상기 멀티 태스크 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 것;을 포함하는 질의응답 시스템의 제어 방법.
  19. 제 14 항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 저장된 복수의 대표 질문 중에서 상기 입력 데이터에 대응되는 대표 질문, 상기 복수의 카테고리 중에서 상기 입력 데이터가 속하는 카테고리 및 상기 복수의 개체명 중에서 상기 입력 데이터에 포함된 개체명을 각각 분류하는 것;을 포함하는 질의응답 시스템의 제어 방법.
  20. 제 19 항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 분류된 대표 질문의 손실 값, 상기 분류된 카테고리의 손실 값 및 분류된 개체명의 손실 값을 각각 계산하고;
    상기 계산된 손실 값들에 기초하여 상기 멀티 태스킹 학습에 이용된 딥러닝 모델의 가중치(weight)를 조절하는 것;을 포함하는 질의응답 시스템의 제어 방법.
  21. 제 18 항에 있어서,
    상기 멀티 태스크 학습을 수행하는 것은,
    상기 입력 데이터에 대응되는 입력 시퀀스에 대해 글로벌 인코딩(global encoding)과 시퀀셜 인코딩(sequential encoding)을 수행하는 것;을 포함하는 질의응답 시스템의 제어 방법.
KR1020210021874A 2021-02-18 2021-02-18 질의응답 시스템 및 그 제어 방법 KR20220118123A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210021874A KR20220118123A (ko) 2021-02-18 2021-02-18 질의응답 시스템 및 그 제어 방법
US17/673,287 US20220258607A1 (en) 2021-02-18 2022-02-16 Question-and-answer system and method ofcontrolling the same
CN202210149110.9A CN114969247A (zh) 2021-02-18 2022-02-18 问答系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210021874A KR20220118123A (ko) 2021-02-18 2021-02-18 질의응답 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20220118123A true KR20220118123A (ko) 2022-08-25

Family

ID=82801930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210021874A KR20220118123A (ko) 2021-02-18 2021-02-18 질의응답 시스템 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20220258607A1 (ko)
KR (1) KR20220118123A (ko)
CN (1) CN114969247A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102642948B1 (ko) * 2023-06-16 2024-03-04 오케스트로 주식회사 클라우드 기반의 인공지능 분류 방법을 통한 문의 관리 시스템 및 이를 포함하는 문의응답 통합 관리 플랫폼

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797611B2 (en) * 2021-07-07 2023-10-24 International Business Machines Corporation Non-factoid question answering across tasks and domains
CN115169367B (zh) * 2022-09-06 2022-12-09 杭州远传新业科技股份有限公司 对话生成方法及装置、存储介质
CN116562311B (zh) * 2023-07-07 2023-12-01 中铁四局集团有限公司 基于自然语言机器翻译的运维方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102642948B1 (ko) * 2023-06-16 2024-03-04 오케스트로 주식회사 클라우드 기반의 인공지능 분류 방법을 통한 문의 관리 시스템 및 이를 포함하는 문의응답 통합 관리 플랫폼

Also Published As

Publication number Publication date
US20220258607A1 (en) 2022-08-18
CN114969247A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
KR20220118123A (ko) 질의응답 시스템 및 그 제어 방법
CN108806667B (zh) 基于神经网络的语音与情绪的同步识别方法
CN112002308B (zh) 一种语音识别方法及装置
US11830485B2 (en) Multiple speech processing system with synthesized speech styles
KR102221513B1 (ko) 음성 감정 인식 방법 및 시스템
KR20230099269A (ko) 개체명 인식 시스템 및 개체명 인식 방법
Mukherjee et al. Linear predictive coefficients-based feature to identify top-seven spoken languages
US20220375469A1 (en) Intelligent voice recognition method and apparatus
KR20230120790A (ko) 가변적 언어모델을 이용한 음성인식 헬스케어 서비스
CN114898779A (zh) 融合多模态的语音情感识别方法及系统
Tripathi et al. CycleGAN-Based Speech Mode Transformation Model for Robust Multilingual ASR
KR20230158337A (ko) 질의 응답 시스템 및 그 제어 방법
US20240096311A1 (en) Method for training machine reading comprehension model, computer-readable recording medium and question answering system
Bera et al. Identification of Mental State Through Speech Using a Deep Learning Approach
CN113555006B (zh) 一种语音信息识别方法、装置、电子设备及存储介质
US20230178071A1 (en) Method for determining a vehicle domain and a speech recognition system for a vehicle
KR20230126571A (ko) 자연어 처리 장치 및 자연어 처리 방법
Raina et al. An Accurate Speech Emotion Analysis using Gradient Boosting and BiLSTM Techniques
US20230290337A1 (en) Method for training slot tagging model, computer-readable medium, speech recognition apparatus and electronic device
Vaibhav et al. Speech Based Emotion Recognition Using Machine Learning
GB2596092A (en) A method for generating at least one alternative utterance to an initial utterance, as well as a semantic analyzer module
KR20230149894A (ko) 개인화 가능한 기계학습 기반의 운전자 이상행동 감지 시스템
Jung et al. Automatic Conversation Turn-Taking Segmentation in Semantic Facet
Upadhyay et al. Pronunciation Similarity Matching Using Deep Learning
Khan et al. Speech emotion recognition using feature fusion: a hybrid approach to deep learning

Legal Events

Date Code Title Description
A201 Request for examination