KR20210158344A - 디지털 어시스턴트를 위한 머신 러닝 시스템 - Google Patents

디지털 어시스턴트를 위한 머신 러닝 시스템 Download PDF

Info

Publication number
KR20210158344A
KR20210158344A KR1020210080973A KR20210080973A KR20210158344A KR 20210158344 A KR20210158344 A KR 20210158344A KR 1020210080973 A KR1020210080973 A KR 1020210080973A KR 20210080973 A KR20210080973 A KR 20210080973A KR 20210158344 A KR20210158344 A KR 20210158344A
Authority
KR
South Korea
Prior art keywords
query
data
sequence
response
vector
Prior art date
Application number
KR1020210080973A
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 사운드하운드, 인코포레이티드
Publication of KR20210158344A publication Critical patent/KR20210158344A/ko

Links

Images

Classifications

    • 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
    • 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a 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/3332Query translation
    • G06F16/3337Translation of the query language, e.g. Chinese to English
    • 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/3343Query execution using phonetics
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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
    • 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
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic 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)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Acoustics & Sound (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

디지털 어시스턴트를 위한 머신 러닝 시스템이 시스템과 같은 훈련 방법과 함께 기술된다. 이 머신 러닝 시스템은 입력 시퀀스 데이터를 출력 시퀀스 데이터에 매핑하도록 훈련된 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처를 기반으로 하며, 입력 시퀀스 데이터는 초기 질의와 관련되고 출력 시퀀스 데이터는 질의에 대한 기준 데이터 표현을 나타낸다. 훈련 방법은 원본 질의 데이터 샘플에 기초한 머신 러닝 시스템에 대한 훈련 데이터집합을 생성하는 것을 포함한다. 이 방법은 질의 데이터 샘플의 벡터 표현을 클러스터링하여, 머신 러닝 시스템을 훈련하기 위해 기준 질의와 원본 질의 페어를 생성하는 것을 포함한다.

Description

디지털 어시스턴트를 위한 머신 러닝 시스템{MACHINE LEARNING SYSTEM FOR DIGITAL ASSISTANTS}
본 기술은 디지털 어시스턴트에 사용하기 위한 머신 러닝 시스템 분야이다. 예를 들어, 본 기술은 음성 어시스턴트 및 텍스트 기반 디지털 대화 에이전트(digital conversational agent)에 사용될 수 있다. 특정한 예시는 초기 질의를 처리된 양식에 매핑하기 위해 머신 러닝 시스템을 훈련시키는 방법과 관련된다. 다른 예시는 디지털 어시스턴트 구현에 사용되는 훈련된 머신 러닝 시스템과 관련된다.
인간에게 자연어 인터페이스를 제공하는 것과 같은 디지털 어시스턴트는 빠르게 많은 사람들의 일상 생활의 일부가 되고 있다. 예를 들어, 최근 컴퓨팅의 발전으로 많은 사람들이 원하는 음성 제어 어플리케이션의 실현 가능성이 높아졌다. 효과적인 신경망 아키텍처를 위한 실용적인 프레임워크를 포함한 통계 모델의 개선으로 이전의 자연어 처리 시스템의 정확성 및 실용성이 크게 향상되었다. 이는 어플리케이션 프로그래밍 인터페이스를 사용하여 간단하게 접속할 수 있는 다양한 모듈식 서비스의 범위를 제공하는 광역 컴퓨터 네트워크의 증가와 연결된다. 음성 어시스턴트, 디지털 대화 에이전트(“챗봇”이라고도 함) 및 자동 텍스트 응답 시스템은 자동화된 컴퓨터 시스템과의 인터페이스에 보다 접근하기 쉬운 방식으로서 선호되는 경우가 많다. 음성 제어 장치는 질문을 하고, 음악을 재생하고, 알림을 설정하는데 주로 사용되는 가정에서 인기를 얻었으며, 자동차 분야에서 자리를 잡기 시작했다. 음성은 인간 커뮤니케이션의 자연적인 방법이기 때문에, 음성 제어는 키보드, 마우스 또는 최근에는 정전식 터치 스크린과 같은 전통적인 유저 인터페이스를 넘어 많은 이점을 제공한다. 음성을 사용하여 장치를 제어하는 것은 유저에게 차량을 안전하게 운전하거나 음식을 요리하는 등의 멀티태스킹을 가능하게 한다.
이러한 발전에도, 유저는 종종 현재 대화 시스템에 인간 수준의 반응성 및 지능이 부족하다고 보고한다. 자연어 처리는 일반적으로 복잡한 처리 파이프라인을 포함하고, 임의의 단계에서의 오류는 성공적인 기계 해석을 방해할 수 있다. 이러한 문제의 대부분은 의식적인 생각 없이 피질과 피질하(sub-cortical) 구조를 사용하여 음성과 텍스트를 처리할 수 있는 성인 인간에게는 곧바로 나타나지 않는다. 그러나 현장에서 일하는 엔지니어는 인간의 능력과 최첨단 머신 처리 사이의 격차를 빠르게 인식하게 된다.
성공적인 디지털 어시스턴트를 구현하는 데 있어 하나의 문제는 환경에 내재된 정보 잡음이다. 예를 들어, 신경망은 강인성(robustness)이 부족한 것으로 알려져 있고, 특히 훈련 데이터에 없는 패턴이 제시될 때 더욱 그렇다. 그러나, 실제 세상은 내재된 예측 불가능성으로 가득 차 있다. 이로 인해 통제된 이론적인 환경과 실제 가정, 산업 또는 자동차 환경 사이에 발산하는 오류율(error rate)이 발생한다. 특히, 디지털 어시스턴트는 종종 중첩되는 대화, 잘못된 형식(ill-formed)의 질의, 방해 또는 여담에 대처할 수 없고, 이들은 실제 대화 또는 텍스트 입력에서 높은 비율을 차지한다. 예를 들어, 라디오 또는 TV 방송은 음성 질의를 쉽게 뒤섞을 수 있으며, 잘못된 형식의 문장은 많은 챗봇을 혼란스럽게 할 수 있다.
따라서, 디지털 어시스턴트의 능력을 개선하고 더 강인한 대화 장치를 제공하는 것이 요구된다. 노이즈가 있는 텍스트 질의에 적응하는 개선된 자연어 인터페이스 또한 요구된다.
본 개시 내용의 일 측면에 따르면, 디지털 어시스턴트에서 사용하기 위한 머신 러닝 시스템을 훈련하기 위한 방법으로서, 이 방법은 질의 데이터 샘플을 포함하는 훈련 데이터를 획득하는 단계와, 질의 데이터 샘플의 벡터 표현을 획득하는 단계와, 벡터 표현을 클러스터링(clustering) 하는 단계와, 클러스터링된 벡터 표현에 기초하여 기준 질의(canonical query) 및 대응하는 질의 그룹을 결정하는 단계와, 선택된 기준 질의와 각 선택된 기준 질의에 대응하는 질의 그룹으로부터의 선택들에 기초하여 페어링된 데이터 샘플을 생성하는 단계와, 페어링된 데이터 샘플을 사용하여 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(encoder-decoder sequence-to-sequence neural network architecture)를 훈련하는 단계를 포함하되, 페어링된 데이터 샘플 내 질의 그룹의 선택은 입력 시퀀스 데이터로 공급되며, 대응하는 기준 질의는 출력 시퀀스 데이터로 공급되고, 훈련된 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 초기 질의를 나타내는 데이터를 수정된 질의를 나타내는 데이터에 매핑하도록 디지털 어시스턴트에서 사용할 수 있고, 수정된 질의를 나타내는 데이터는 초기 질의에 대한 응답을 제공하도록 또한 처리된다.
위 측면의 방법은 잘못된 형식 및 잠재적으로 노이즈가 있는 초기 질의를 기준, 즉 대표 질의에 매핑함으로써 성능을 향상시키는 질의 처리를 위한 훈련된 머신 러닝 시스템을 생성한다. 따라서 이 출력 기준 질의는 응답 계산을 용이하게 하기 위해 질의 처리 파이프라인에 제공될 수 있다. 이 방법은 질의 데이터 샘플을 대응하는 벡터 표현으로 변환하고 벡터 공간 내에서 벡터 표현을 클러스터링함으로써 머신 러닝 시스템에 대한 효과적인 훈련 데이터를 생성한다. 클러스터링에 의해 생성된 클러스터를 사용하여 질의를 그룹화하고 각 그룹 내에서 하나의 구성원을 기준 질의로 선택할 수 있다. 그 후, 예를 들어 각 그룹에 대해 기준 질의와 페어링될 질의 집합을 생성한다. 각 그룹에 대한 질의 집합 및 기준 질의는 각각 머신 러닝 시스템을 위한 소스(source) 및 타겟(target) 데이터 샘플을 생성하는데 사용되고, 이를 통해 시스템은 많은 변형을 갖는 잘못된 형식의 질의를, 일반적으로 사용되는 요청과 일치하는 보다 규칙적인 형식의 질의로 매핑하는 방법을 학습할 수 있다.
특정 예에서, 훈련 데이터를 획득하는 단계는 질의 및 응답을 나타내는 텍스트 데이터의 페어(pair)를 얻는 단계를 포함하며, 질의 데이터 샘플의 벡터 표현을 획득하는 단계는 텍스트 데이터의 페어를 해당 벡터 표현으로 변환하는 단계를 포함한다. 텍스트 형식의 질의 데이터를 사용하면 현재 기술이 텍스트 기반 챗봇 및 음성 인식(speech-to-text) 시스템을 포함하는 음성 시스템을 포함한 다양한 형태의 대화 및 회화 에이전트에 적용할 수 있다.
텍스트의 경우에, 이 방법은 텍스트 데이터에 대해 개체명 인식(named entity recognition)을 수행하는 단계와, 태그된 개체명에 대한 텍스트 데이터를 개체명 유형 태그(named entity type tag)로 대체하는 단계를 더 포함할 수 있다. 개체명 인식을 수행하는 단계와 서페이스 토큰 값(예: “Toronto”)을 대응하는 일반 개체명 유형 태그(예: <LOCATION>)로 대체하는 단계는, 예를 들어 서로 다른 지리적 영역에서 수집된, 복수의 다른 질의 데이터 샘플을 클러스터링을 용이하게 할 수 있는 공통 또는 공유 표현으로 매핑하는데 도움이 될 수 있다.
특정 경우에, 텍스트 데이터의 제 1 부분은 음성 질의(voice query)를 위한 오디오 데이터에서 수행되는 음성 인식 처리(speech-to-text processing)의 출력을 나타내고, 텍스트 데이터의 제 2 부분은 음성 질의에 대한 응답을 제공하는 데 사용하는 데이터를 포함하되, 훈련된 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 초기 음성 질의를 나타내는 데이터를 수정된 음성 질의를 나타내는 데이터로 매핑하도록 디지털 어시스턴트에서 사용할 수 있다. 본 개시 내용은 실제 세계 및 음성 인식 시스템 모두에 존재하는 내재된 노이즈로 인해 기형의(malformed) 입력 질의의 가능성이 높은 음성 어플리케이션에 특히 유용하다.
특정 예에서, 주어진 벡터 표현은 적어도 응답 벡터 표현을 포함하고, 응답 벡터 표현은 질의에 대한 응답을 나타내는 데이터의 벡터 표현이며, 응답 벡터 표현은 대응하는 질의를 나타내는 데이터와 페어를 이룬다. 벡터 표현을 클러스터링하는 단계는, 벡터 공간 내 응답 벡터 표현 사이 거리에 기초해 응답 벡터 표현을 클러스터링하는 단계를 포함하고, 주어진 클러스터에 대한 기준 질의는 주어진 클러스터 내의 응답 벡터 표현과 페어를 이룬 질의 데이터의 빈도에 기초하여 클러스터링된 벡터 표현 내에서 선택된다. 이전 질의가 아닌 응답을 기초로 먼저 클러스터링함으로써, 가능한 다른 입력 질의들의 더 효과적인 그룹화가 수행될 수 있고, 응답을 제공하는 가장 빈번한 표현으로 그룹에 대한 기준 질의를 나중에 선택할 수 있다. 많은 다운스트림 머신 러닝 시스템이 더 자주 발생하는 데이터에 대해 더 잘 수행하기 때문에(예컨대, 훈련 말뭉치에서 더 자주 발생할 가능성이 높으며 따라서 파라미터 학습을 유도한다), 빈도를 기초로 기준 질의를 선택함으로써, 다운스트림 질의 처리 및 응답의 정확도 또한 개선할 수 있다.
특정 예에서, 벡터 표현을 클러스터링하는 단계는 별개의 클러스터들을 반복적으로 결합하기 위해 계층적 클러스터링 방법을 적용하는 단계를 포함한다. 계층적 클러스터링 방법을 적용하는 단계는, 예를 들어 먼저 관련 데이터 포인트 주위로 촘촘한 클러스터를 형성한 다음, 반복 처리의 부분으로서 이러한 촘촘한 클러스터를 결합하여, 클러스터의 품질을 개선할 수 있다.
한 예에서, 벡터 표현을 획득하는 단계는, 적어도 질의에 대한 응답의 텍스트 표현을 획득하는 단계와, 텍스트 표현을 위한 임베딩(embedding) 벡터를 생성하는 단계와, 벡터 표현을 출력하기 위해 임베딩 벡터를 저차원 벡터 공간에 투영하는 단계를 포함한다. 벡터 표현의 압축이 (저차원 벡터 공간에서)더 효율적인 클러스터링을 이끌고 품질이 낮은 클러스터로 이어질 수 있는 서페이스 노이즈를 제거하는데 도움을 준다는 것이 테스트에서 밝혀졌다. 한 예에서, 텍스트 표현을 위한 임베딩 벡터를 생성하는 단계는, 텍스트 표현을 토큰화하는 단계와, 임베딩 벡터를 생성하기 위해 토큰화된 텍스트 표현에 트랜스포머 신경망 아키텍처를 적용하는 단계를 포함한다. 따라서, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처의 인코더 부분과 비슷하거나, 나아가 그 복제인 인코더 신경망 아키텍처는 예를 들어 질의 및 그 응답을 나타내는 유용한 임베딩을 문장 수준에서 생성하는데 사용될 수 있다. 이러한 방식으로 인코더 신경망 아키텍처를 사용하면 텍스트 표현 내 임베딩된 단어의 평균보다 더 많은 정보의 벡터 표현이 생성된다. 초기 인코더로부터의 “문장 임베딩”은 차원 축소 단계에 대한 입력을 형성할 수 있다.
한 예에서, 임베딩 벡터를 저차원 공간에 투영하는 단계는 주요 구성요소(principal component)의 서브집합을 선택하는 단계를 포함하고, 주요 구성요소는 질의 데이터 샘플의 주요 구성요소 분석(principal component analysis)에 따라 결정된다. 주요 구성요소 분석은 따라서 원본 질의 데이터 성분의 다양성(variance)에 크게 기여하지 않는 구성요소를 제거하는 차원 축소를 수행하는 유용한 도구를 제공한다.
한 예에서, 벡터 표현을 클러스터링 하는 단계는 질의에 대한 응답의 벡터 표현에 기초해 제 1 클러스터링 단계를 수행하는 단계와, 응답에 선행하는 질의의 벡터 표현에 기초해 제 2 클러스터링 단계를 수행하는 단계를 포함한다. 이 2단계 클러스터링은 기준 질의의 선택을 위한 정확하고 유용한 질의 클러스터를 생성한다. 응답에 대한 제 1 클러스터링을 통해, 유사한 기능 또는 원하는 결과를 가진 질의를 함께 그룹화할 수 있다. 그리고 나서 질의 자체에 대한 제 2 클러스터링을 통해, 기준 질의에 쉽게 매핑될 수 있는 질의 그룹이 생성된다. 예를 들어, 제 2 단계가 없다면 질의 그룹이 클 수 있다. 효과적인 학습을 위해 질의를 클러스터링함으로써 소스 및 타겟 샘플이 더 가까워질 수 있다.
한 예에서, 이 방법은 페어링된 데이터 샘플을 생성하기 이전에 클러스터링된 벡터 표현을 필터링하는 단계를 포함할 수 있다. 이는, 주어진 클러스터에 대해, 클러스터링된 벡터 표현에서 주어진 클러스터에 대한 중심(centroid)을 결정하는 단계와, 중심으로부터 사전 정의된 거리보다 더 큰 주어진 클러스터에 대한 질의의 벡터 표현을 할당 해제하는 단계를 포함할 수 있다. 추가적으로 또는 대안적으로, 주어진 클러스터에 대해, 주어진 클러스터의 크기를 결정하는 단계와 사전 정의된 임계값 미만의 크기에 응답하여 주어진 클러스터에 대한 질의의 벡터 표현을 할당 해제하는 단계를 포함할 수 있다. 두 경우 모두에서, 할당 해제된 벡터 표현은 가장 가까운 클러스터로 재할당될 수 있다. 이 필터링은 전술된 제 2 클러스터링 단계(의 적어도 일부분)를 구현할 수 있다. 이러한 필터링 휴리스틱(heuristic)은 추론 중에 성능을 향상시키는 것으로 확인된 적절한 크기의 질의 그룹을, 예를 들어 훈련 데이터에서 질의 및 기준 표현의 유용한 조합으로 이어지는 크기 및 구조의 질의 그룹을 생성함으로써, 생산한다.
특정 예에서, 페어링된 데이터 샘플을 생성하는 단계는 생성된 페어링된 데이터 샘플을 필터링하는 단계를 포함한다. 이는 기준 질의의 개체명 태그가 질의 그룹으로부터의 대응하는 선택에 있는 개체명 태그와 일치하지 않는, 기준 질의를 갖는 페어링된 데이터 샘플을 제거하는 단계와, 기준 질의와 질의 그룹으로부터의 대응하는 선택에 관한 의미론적 거리 척도(semantic distance metrics)의 비교에 기초하여 페어링된 데이터 샘플을 제거하는 단계 중 하나 이상을 포함할 수 있다. 소스 질의와 기준 질의의 생성된 데이터 집합을 필터링(즉, 후처리)함으로써 데이터 집합의 품질이 개선되어 훈련이 개선될 수 있다. 생산 구현에는 백만 개가 넘는 훈련 샘플이 포함된 데이터 세트가 포함될 수 있으므로, 이 규모에서는 이상에서 기술한 작업에도 불구하고 통계적 노이즈 및 준-최적(sub-optimal) 소스-타겟 페어가 여전히 있을 수 있다. 따라서 필터링은 훈련 전에 데이터 세트에서 이러한 페어를 제거하는데 도움이 된다.
특정 경우에서, 이 방법은, 하나 이상의 클러스터링 거리 임계값과, 하나 이상의 클러스터 크기 임계값과, 기준 질의의 선택을 위한 하나 이상의 빈도 임계값 중 하나 이상의 척도(metric)를 최적화하는 단계를 더 포함한다. 이들 파라미터는 도메인, 구현 및/또는 어플리케이션 단위로 최적화될 수 있다. 특정 사용 사례에 대해 최적화하면 해당 사용 사례의 대한 성능이 향상될 수 있다. 수동 또는 자동 최적화 방법이 적용될 수 있다.
본 개시 내용의 다른 측면에 따르면, 디지털 어시스턴트에 대한 질의 처리 방법이 제공되며, 이 방법은, 질의를 나타내는 초기 데이터를 수신하는 단계와, 질의를 나타내는 초기 데이터로부터 입력 시퀀스 데이터를 생성하는 단계와, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처를 사용하여 입력 시퀀스 데이터를 질의에 대한 기준 데이터 표현을 나타내는 출력 시퀀스 데이터에 매핑하는 단계와, 질의에 대한 응답을 결정하기 위해 기준 데이터 표현을 처리하는 단계와, 질의에 대한 응답을 제공하는 단계를 포함한다. 따라서, 훈련된 신경망 아키텍처, 가령 이상에서의 제 1 측면 또는 다른 방법에 따른 아키텍처는, 성공적인 응답을 이끌어 낼 가능성이 더 높은 기준 데이터 표현에 매핑하기 위해 도착한 질의를 전처리하는 데 사용될 수 있다. 이 방법은 따라서 챗봇 또는 음성 어시스턴트와 같은 디지털 어시스턴트를 개선하는 프리-필터링 또는 노이즈 제거의 형태로 볼 수 있다.
하나의 경우에, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 기준 질의 및 대응하는 초기 질의를 나타내는 페어링된 데이터 샘플로 훈련되며, 페어링된 데이터 샘플은 질의를 나타내는 데이터와 질의에 대한 응답을 나타내는 데이터를 포함하는 질의 데이터 샘플의 벡터 표현을 클러스터링하여 생성된다. 이 경우에, 신경망 아키텍처는 이상에서 논의된 이점을 획득하기 위해 이상의 훈련 방법에 따라 훈련될 수 있다.
하나의 경우에, 질의에 대한 응답을 결정하기 위해 기준 데이터 표현을 처리하는 단계는, 출력 시퀀스 데이터에 제공된 출력 시퀀스의 상위 K개의 집합 중 하나를 선택하는 단계와, 언어 모델을 사용하여 출력 시퀀스 데이터에서 파생된 데이터를 적어도 파싱(parsing)하고 언어 모델이 적용된 점수를 기초로 출력 시퀀스 데이터를 선택하는 단계와, 질의를 나타내는 초기 데이터와 출력 시퀀스 데이터에서 파생된 데이터를 적어도 개체명 인식기로 파싱하고 파싱된 데이터의 개체명 사이의 비교에 기초하여 출력 시퀀스를 선택하는 단계 중 하나 이상을 포함한다. 개별적으로 또는 (바람직하게는) 함께 적용될 수 있는 이들 후처리 작업의 집합은, 예를 들어 원본 입력 질의의 요소가 적절한 응답을 제공하도록 유지하는 것을 보장하고/보장하거나 정확하고 적절한 질의 응답으로 응답할 가능성을 최대화하는 신경망 아키텍처에 의해 생산된 가능한 출력의 집합 중 하나를 선택함으로써, 질의 처리를 위해 선택되는 출력을 더 개선시킬 수 있다.
본 개시 내용의 다른 측면에 따르면, 디지털 어시스턴트를 위한 머신 러닝 시스템은, 질의를 나타내는 초기 데이터를 수신하고 초기 데이터로부터 파생된 입력 시퀀스 데이터를 출력하는 질의 인터페이스와, 입력 시퀀스 데이터를 질의에 대한 기준 데이터 표현을 나타내는 출력 시퀀스 데이터에 매핑하는 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처와, 질의에 대한 응답을 제공하는 데 사용하기 위한 출력 시퀀스 데이터를 제공하는 출력 인터페이스를 포함한다. 질의 인터페이스는 음성 인식 인터페이스를 포함할 수 있다. 이 머신 러닝 시스템은 제공되는 어시스턴스를 개선하고 보다 자연스러운 대화를 할 수 있게 하기 위해 분산 구현 및 또는 디지털 어시스턴트의 로컬 클라이언트 (및, 특정 경우에는, 내장된) 구현에서 제공될 수 있다. 이 머신 러닝 시스템은 전술한 방법 중 임의의 것과 관련된 측면을 적용하도록 구성될 수 있다.
하나의 경우에, 머신 러닝 시스템은 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처에서 복수의 출력 시퀀스를 수신하고 적어도 하나의 자연어 처리 척도에 기초하여 복수의 출력 시퀀스 중 하나를 선택하기 위한 출력 시퀀스 필터를 포함한다. 이 출력 시퀀스 필터는 이상에서 논의한 이점을 제공하기 위해 이상에서 논의한 것과 같은 후처리를 제공할 수 있다.
또 다른 측면에서, 명령어를 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체가 제공되며, 이 명령어는 적어도 하나의 프로세서에 의해 실행되는 경우, 적어도 하나의 프로세서가 질의 데이터 샘플을 포함하는 훈련 데이터를 획득하고, 질의 데이터 샘플의 벡터 표현을 획득하며, 벡터 표현을 클러스터링하고, 클러스터링된 벡터 표현에 기초하여 기준 질의 및 대응하는 질의 그룹을 결정하며, 선택된 기준 질의와 각 선택된 기준 질의에 대응하는 질의 그룹으로부터의 선택들에 기초해 페어링된 데이터 샘플을 생성하고, 페어링된 데이터 샘플을 사용하여 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처를 훈련시키게 하되, 페어링된 데이터 샘플 내 질의 그룹으로부터의 선택들은 입력 시퀀스 데이터로서 공급되고, 대응하는 기준 질의는 출력 시퀀스 데이터로서 공급되며, 훈련된 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 질의 인터페이스 내에서 초기 질의를 나타내는 데이터를 수정된 질의를 나타내는 데이터로 매핑하기 위해 사용할 수 있고, 수정된 질의를 나타내는 데이터는 초기 질의에 대한 응답을 제공하기 위해 또한 처리된다. 특정한 경우에, 질의 데이터 샘플은 음성 질의와 연관된다. 예를 들어, 적어도 하나의 프로세서는 음성 제어 장치의 내장 프로세서 또는 마이크로프로세서를 포함할 수 있다. 다른 예에서, 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서가 전술한 방법들 중 임의의 하나를 수행하게 하는 명령어를 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체가 제공될 수 있다.
도 1은 예시에 따른 디지털 어시스턴트를 위한 질의 프로세서를 도시하는 개략적인 도해이다.
도 2는 예시에 따른 음성 어시스턴트를 도시하는 개략적인 도해이다.
도 3은 디지털 어시스턴트에서 사용하기 위한 신경망 후처리기의 예시를 도시하는 개략적인 도해이다.
도 4는 예시에 따른 디지털 어시스턴트에서 사용하기 위한 머신 러닝 시스템을 훈련하는 방법을 도시하는 플로우 다이어그램이다.
도 5는 머신 러닝 시스템을 위한 훈련 데이터를 생성하는 예시적인 처리 흐름을 도시하는 개략적인 도해이다.
도 6A 내지 6C는 도 4의 방법에 따라 처리된 데이터의 예시를 도시하는 개략적인 도해이다.
도 7A 및 7B는 예시에 따른 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령어의 집합을 처리하도록 적용된 컴퓨터 장치의 다른 측면을 도시하는 개략적인 도해이다.
서론
다음에서는 다양한 흥미로운 측면을 설명하는 본 기술의 다양한 예를 기술한다. 일반적으로, 예시는 기술된 측면을 임의의 조합으로 사용할 수 있다. 원리, 측면 및 예를 인용하는 본 명세서의 모든 진술은 구조적 및 기능적 등가물을 모두 포함하는 것으로 의도된다. 추가적으로, 이러한 등가물은 현재 알려진 등가물과 미래에 개발될 등가물, 즉 구조에 관계없이 동일한 기능을 수행하는 개발된 모든 요소를 모두 포함한다.
본 명세서에서 사용된 바와 같이, 단수 형태 “하나”(“a”, “an”,“the”)는 문맥에서 명백하게 달리 지시하지 않는 한 복수의 지시 대상을 포함한다는 것에 주목한다. 본 명세서 전체에서 “하나”, “한”, “특정한”, “다양한”, 및 “경우”, “예” 또는 유사한 언어에 대한 언급은 예와 관련하여 기술된 특정한 측면, 특징, 구조 또는 특성이 개시된 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 그러므로, 본 명세서 전체에서 “하나의 경우”, “적어도 하나의 예시에서”, “예시에서”, “특정 경우에서” 및 유사한 언어의 출현은 동일한 실시예 또는 유사한 실시예 모두를 지칭할 수 있으나, 반드시 그런 것은 아니다. 나아가, 본 명세서에서 기술된 측면 및 예는 단지 예시일 뿐이며, 당업자에 의해 이해되는 바와 같이 청구항의 범위 또는 사상을 제한하는 것으로 해석되어서는 안된다. 개시된 실시예는 본 명세서에서 개시된 임의의 신규한 측면을 포함하는 임의의 예에서 효과적으로 만들어지거나 사용된다. 또한, 용어 “포함하는(including)”, “포함한다(include)”, “가지는(having)”, “가지다(have)”, “함께(with)”, 또는 이들의 변형이 상세한 설명 및 청구범위에서 사용되는 한, 이러한 용어는 “포함하는(comprising)”이라는 용어와 유사한 방식으로 포괄적으로 의도된다. 다수의 유사한 요소를 보여주는 예에서, 별도의 참조 번호를 사용하더라도, 이러한 예의 일부는 다수의 유사한 요소의 역할을 채우는 단일 요소로 작동할 수 있다.
본 명세서에서 기술된 특정한 예는 실질적인 처리를 위해 “노이즈가 있는” 입력 데이터를 더 나은 형태의 입력 데이터로 매핑함으로써 디지털 어시스턴트의 성능을 개선하는, 디지털 어시스턴트를 위한 신경망 기반 데이터 전처리를 제공한다. 특정 예는, 첨단 신경망 번역 시스템에 기초한 것과 같은, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처가, 훈련 데이터를 사용한 훈련을 통해, 신경망 기반 데이터 전처리기로 동작하도록 적응되게 하는 훈련 데이터가 어떻게 생성될 수 있는지를 기술한다. 특정한 예는 디지털 어시스턴트를 위한, 가령 어시스턴트에 대한 질의 및 대응하는 응답을 나타내는 기존의 입력-출력 페어 모음을 취할 수 있고, 입력 전처리를 위한 추가적인 훈련 데이터 집합을 생성하는데 그것을 사용한다. 이들 예는 실제 입력(소스)을 선호하는 형식(타겟)에 매핑하는 방법을 신경망 기반 데이터 전처리기에 가르치는 새로운 소스-타겟 페어링을 생성하기 위해, 입력-출력 페어 내에 있는 데이터의 벡터 표현을 클러스터링할 수 있다.
디지털 어시스턴트의 예
도 1은 하나 이상의 디지털 어시스턴트를 구현하는데 사용될 수 있는 시스템의 제 1 예시(100)이다. 분산 디지털 어시스턴트 시스템이 이 예시(100)에 도시되어 있지만, 구현은 분산 처리에 한정되지 않고, 대신 로컬 하드웨어 처리만을 사용할 수도 있다.
도 1은 디지털 어시스턴트를 위한 질의 인터페이스를 제공하는 복수의 클라이언트 장치(110)를 도시한다. 클라이언트 장치(110)는 내장된 컴퓨팅 디바이스, 예를 들어 비-컴퓨팅(non-computing) 장치 내에 위치된 전자 회로 내의 처리 리소스를 포함하는 컴퓨팅 장치의 범위를 포함할 수 있다. 도 1에서, 클라이언트 장치(110)는 예로서 개인용 컴퓨팅 장치(112), 웨어러블 디바이스(114), 자동차(116) 또는 홈 어시스턴트(118)를 포함한다. 이들 예시는 제한되지 않고, 예를 들어 클라이언트 장치는 냉장고 및 TV, 보안 장비, 레스토랑 주문대(restaurant ordering station), 자판기, 데스크탑 및 사무실 컴퓨팅 장치, 카메라 및 로봇 장치와 같은 “스마트” 가전 제품을 대안적으로 포함할 수 있다. 개인용 컴퓨팅 장치(112)는 셀룰러 통신 장치 및/또는 무선 네트워킹 장치를 포함할 수 있다. 개인용 컴퓨팅 장치(112)는 스마트폰, 태블릿, 랩탑 또는 데스크톱 장치를 포함할 수 있다. 도 1의 웨어러블 디바이스(114)는 소위 “스마트” 워치로 도시되었으나, 대안적으로 헤드-마운트(head-mounted) 유저 인터페이스 장치, 이어폰, 웨어러블 피트니스 트래커(fitness tracker) 및 회로가 내장된 “스마트” 의류와 같은 장치를 포함할 수 있다. 자동차(116)는 가령 클라이언트 장치가 자동차 제어 시스템 내에 내장되어 있을 수 있는 승용차로 도시되었으나, 가령 항공 또는 해상 운송 수단과 같은 다른 운송 수단의 유형 및 형태가 사용될 수도 있다. 운송 수단은 수동으로 제어될 수 있고/있거나 자율적 기능(가령, 공중 “드론”)이 있을 수 있다. 홈 어시스턴트(118)는 집에서 사용하기 위한 오디오 장치를 포함할 수 있다.
클라이언트 장치(110)에 의해 제공되는 질의 인터페이스는 유저가 디지털 어시스턴트에 질의할 수 있게 한다. 특정 예시에서, 질의 인터페이스는 음성 질의 인터페이스를 포함할 수 있다. 예를 들어, 유저는 자동차(116) 또는 홈 어시스턴트(118)에 말할 수 있고, 그들의 발화는 정보에 대한 요청 또는 특정 명령을 구현하기 위한 요청과 같은 음성 질의를 포함할 수 있다. 다른 예시에서, 질의 인터페이스는 개인용 컴퓨팅 장치(112) 상의 메시징 어플리케이션과 같은 텍스트 인터페이스를 포함할 수 있다. 이 경우, 유저는 온스크린 키보드 또는 다른 유저 입력 장치를 통해 텍스트를 입력할 수 있다. 두 경우 모두에, 질의는 클라이언트 장치(110)에 의해, 가령 직접 또는 음성 인식 시스템을 통해 입력되어 텍스트 데이터의 형식으로 표현될 수 있다. 클라이언트 장치(110)가 음성 제어 장치를 포함하는 경우에, 하나 이상의 마이크와 오디오 전처리기를 더 포함할 수 있다.
도 1의 예시(100)에서, 클라이언트 장치(110)는 하나 이상의 네트워크(130)를 통해 서버 장치(120)와 통신적으로 연결된다. 하나 이상의 네트워크(130)는 다양한 물리적 기술(예를 들어, 이더넷과 같은 유선 기술 및/또는 와이파이 - IEEE 802.11 - 표준 및 셀룰러 통신 기술과 같은 무선 기술)을 사용하여 구현될 수 있는 하나 이상의 로컬 및/또는 광역 네트워크를 포함할 수 있다. 특정 경우에, 하나 이상의 네트워크(130)는 인터넷과 같은 하나 이상의 사설 및 공용 네트워크의 혼합을 포함할 수 있다. 클라이언트 장치(110) 및 서버 장치(120)는 서로 다른 기술 및 통신 경로를 사용하여 네트워크를 통해 통신할 수 있다. 서버 장치(120)는 하나 이상의 중앙 처리 장치 및/또는 그래픽 처리 유닛 및 메모리 리소스를 갖는 컴퓨팅 장치를 포함할 수 있다.
도 1에서, 서버 장치(120)는 네트워크 인터페이스(122) 및 질의 프로세서(124)를 포함한다. 네트워크 인터페이스(122)는 대화 인터페이스 및 하나 이상의 대화 프로토콜(가령, 다중 레이어 통신 스택에서)의 구현을 포함할 수 있다. 네트워크 인터페이스(122)는 네트워크(130)를 통해 클라이언트 장치(110)로부터 데이터를 수신하도록 구성된다. 하나의 구현에서, 네트워크 인터페이스(122)는 유선 또는 무선 물리 인터페이스 및 하나 이상의 대화 프로토콜을 포함할 수 있다. 하나의 경우에서, 네트워크 인터페이스(122)는 인터넷 프로토콜 스위트(Internet Protocol Suite)의 상단에서 동작하는 어플리케이션 레이어 인터페이스를 포함할 수 있다. 이 경우에, 어플리케이션 레이어 인터페이스는 하나 이상의 프록시 및/또는 통신(가령, “웹”) 서버에 의해 수행되는, 경로 이름 또는 웹 주소에 기반한 라우팅으로, 서버 장치(120)를 식별하는 특정 인터넷 프로토콜 주소로 향하는 통신을 수신하도록 구성될 수 있다.
도 1의 서버 장치(120)는 하나 이상의 클라이언트 장치(110)의 질의 데이터(140)를 수신하도록 구성된다. 질의 데이터(140)는 가령 음성 인식 처리가 행해지는 음성 또는 텍스트 입력으로 유저에 의해 제출된 질의를 표현하는 텍스트 데이터를 포함할 수 있다. 다른 경우에, 질의 데이터(140)는 질의 프로세서(124)에서 수신된 후 텍스트 데이터로 변환되는 오디오 데이터 또는 오디오 특징을 포함할 수 있다. 질의 데이터(140)는 대화 상태, 유저 위치 정보 또는 다른 유저 프로필 정보와 같은 관련된 메타데이터 또한 포함할 수 있다. 질의 프로세서(124)는 질의 데이터(140)를 수신하고 질의에 대한 응답을 제공하기 위한 응답 데이터(142)를 계산하도록 구성된다. 응답 데이터(142)는 텍스트 데이터 및/또는 텍스트 응답, 음성 응답(가령, 텍스트-음성 시스템을 통해) 및 시각적 응답(가령, 하나 이상의 디스플레이 장치를 통해) 중 하나 이상을 생성하는 데 사용되는 응답 표현으로부터 파생된 데이터를 포함할 수 있다. 예를 들어, 유저는 “48번 국도의 교통 상황은 어떻습니까?”, “오늘 날씨는 어떻습니까”, 또는 “최고의 비건 타코는 어디서 살 수 있습니까”와 같은 정보를 요청할 수 있고, 응답 데이터(140)는 “48번 도로의 교통량은 적습니다.”, “현재 맑으며 나중에 비가 올 확률이 50%입니다.”, “세 블록 떨어진 X 거리의 Shelia's Snack입니다.”와 같은 정보를 제공하는 형식적인 응답일 수 있다. 유저는 인간일 수도 있고, 기계일 수도 있다(예를 들어, 후자는 텍스트 또는 인공 음성을 사용한 기계-기계 소통을 나타낼 수 있다). 원격 서버 장치에 위치되는 것 대신에, 질의 프로세서(124)는 대안적으로 초기 질의를 수신하는 클라이언트 장치(110) 내에 구현될 수 있다(즉, 로컬하게 구현됨). 다른 구현은 로컬 또는 원격 처리 기능으로 다르게 분할될 수 있으나, 모든 변형은 이하의 예의 전처리기를 사용할 수 있다.
본 명세서에서 기술된 특정 예시에서, 질의 프로세서(124)는 질의 프로세서(124)의 작동 전에 질의 데이터를 처리하는 신경망 전처리기를 포함한다. 따라서, 본 출원은 질의 프로세서(124)의 다운스트림 구성에 관한 것이 아니다. 질의 프로세서(24)는 질의(가령, 텍스트 형태 또는 다른 형태)를, 구성된 양식의 집합 중 하나 이상을 유저에게 제공하기 위한 응답(텍스트 형태 또는 다른 형태)으로 변환하기 위한 알려진 또는 미래의 임의의 파이프라인을 포함할 수 있다. 전처리기가 질의 프로세서와 가깝게 통합되는 것도 가능하다.
도 2는 도 1의 클라이언트 장치(110) 중 하나를 구현할 수 있는 디지털 음성 어시스턴트(220)의 예시(200)를 도시한다. 디지털 음성 어시스턴트(200)는 음성 입력 데이터(220)를 수신하고 하나 이상의 구성된 양식에서 응답(230)을 생성하도록 구성된다. 도 2의 예에서, 디지털 음성 어시스턴트(220)는 오디오 출력(232)(가령, 음성 응답), 텍스트 응답(234) 및/또는 하나 이상의 비디오 프레임과 같은 시각적 응답(236) 중 하나 이상을 질의에 대한 응답으로서 제공하도록 구성될 수 있다. 디지털 음성 어시스턴트(220)의 구현에 따라 상이한 양식이 제공될 수 있다. 도 2의 예(200)에서, 디지털 음성 어시스턴트(220)는 오디오 캡처 장치(242), 음성 인식 시스템(244), 신경망 전처리기(246), 질의 프로세서(248) 및 응답 인터페이스(250)를 포함한다.
오디오 캡처 장치(242)는 시계열 압력 변동 측정 및/또는 시계열 주파수 측정과 같은 시계열 측정을 포함하는 오디오 데이터를 생성하도록 구성된 하나 이상의 마이크를 포함할 수 있다. 예를 들어, 하나 이상의 펄스 부호 변조(PCM) 채널 데이터는 사전 정의된 샘플링 레이트(가령 8kHz 또는 44.1kHz)에서 캡처될 수 있고, 각 샘플은 사전 정의된 비트의 숫자(가령, 샘플당 8, 16 또는 24 비트 - 각 샘플은 정수(integer) 또는 부동소수점(float) 값을 포함)로 표현된다. 오디오 데이터는 캡처 이후에, 예를 들어 시간 및 주파수 도메인 중 하나 이상에서 필터링, 빔 포밍(beam forming) 및 노이즈 감소를 적용하고/하거나 필터링 및 정규화를 통해 처리될 수 있다. 일 예에서, 오디오 데이터는 예를 들어 하나 이상의 스펙트럼 사진(spectrogram) 데이터를 생성하기 위해 고속 푸리에 변환을 수행함으로써 주파수 도메인에서 시간에 따른 측정값으로 변환될 수 있다. 특정한 경우에, 하나 이상의 주파수 도메인 특징에 대한 값을 결정하는데 MFCC(Mel-Frequency Cepstral Coefficient)와 같은 필터 뱅크(filter bank)가 적용될 수 있다. 본 명세서에서 기술된 바와 같은 오디오 데이터는 오디오 처리 파이프라인을 따라 이루어진 임의의 측정을 포함할 수 있다.
음성 인식 시스템(244)은 오디오 데이터를 수신하고 이를 텍스트 데이터 출력으로 번역한다. 예를 들어, 음성 인식 시스템(244)은 은닉 마르코프 모형 또는 신경망 아키텍처(가령, 합성곱(convolutional) 및 반복 신경망 인코더)에 기초한 자동화된 전사(transcription) 시스템을 포함할 수 있다. 이 예에서, 음성 인식 시스템(244)은 신경망 전처리기(246)를 위한 텍스트 데이터 출력을 제공한다. 신경망 전처리기(246)는 질의 프로세서(248)의 동작 이전에 음성 인식 시스템(244)로부터 수신된 텍스트 데이터를 처리하기 위한 신경망 아키텍처를 포함한다. 예를 들어, 신경망 전처리기(246)는 음성 인식 시스템(244)로부터 수신된 텍스트 데이터의 제 1 시퀀스를 질의 프로세서(248)에 공급하는 데 적합한 텍스트 데이터의 제 2 시퀀스로 변환할 수 있다. 신경망 전처리기(246)는 기계 해석 시스템과 유사한 방식으로 동작할 수 있으나, 본 경우에, 텍스트 데이터의 두 시퀀스는 모두 바람직하게는 동일한 언어로 되어 있다. 신경망 전처리기(246)는 텍스트 데이터의 시퀀스를 더 규칙적이거나 “기준(canonical)” 형식으로 매핑하도록 훈련된다. 예를 들어, 신경망 전처리기(246)는 노이즈가 있는(noisy) 또는 형식이 잘못된(ill-formed) 입력 텍스트 데이터를 잘 형성된 또는 표준화된 텍스트 데이터에 매핑하기 위해 추론 모드에서 동작할 수 있다. 기준 형식은 원본 질의보다 더 빈번하고, 깔끔하고/깔끔하거나 예상되는 버전을 나타낼 수 있다. 예를 들어, 유저가 백그라운드에 있는 텔레비전으로 날씨에 대해 문의하는 경우, 음성 인식 시스템(244)에 의한 텍스트 데이터 출력은 “지금…채널…음…나중에…날씨는 어떻습니까…”와 유사할 수 있고, 이는 신경망 전처리기(246)에 의해 “날씨가 어떻습니까?”에 매핑될 수 있다. 이런 방법으로, 신경망 전처리기(246)는 질의 데이터를 질의 프로세서(248)에 의해 더 효과적이고 정확하게 처리될 수 있는 기준 질의 데이터에 매핑한다.
도 2에서, 질의 프로세서(248)는 도 1의 질의 프로세서(124)와 유사한 방식으로 동작할 수 있다. 질의 프로세서(248)는 신경망 전처리기(246)로부터 텍스트 데이터를 수신하고 원본 질의에 대한 응답을 이끌어 내는 데 유용한 데이터를 생성한다. 예를 들어, 이는 구성된 및/또는 이용 가능한 양식으로 렌더링하기 위해 응답 인터페이스(250)에 제공되는 텍스트 데이터를 포함할 수 있다. 질의 프로세서(248)는 응답을 제공하기 위해 로컬 처리를 수행하고/수행하거나 응답을 제공하기 위한 데이터를 획득하기 위해 도 1에 도시된 바와 같이 네트워크 요청을 할 수 있다. 질의 프로세서(248)는 미리 렌더링된 데이터(가령, 오디오 및/또는 비디오 샘플)로 응답을 출력할 수 있거나, 응답 인터페이스(250)는 응답(230)을 제공하기 위해 텍스트-음성 또는 텍스트-비디오 시스템, 또는 악기 디지털 인터페이스(Musical Instrument Digital Interface, MIDI) 음악, 스케일러블 벡터 그래픽스(Scalable Vector Graphics, SVG) 그래픽 또는 플래시 애니메이션과 같은 다른 벡터화된 정보 표현 시스템과 같은 텍스트-양식 시스템을 포함할 수 있다.
머신 러닝 시스템 예시
도 3은 도 2의 신경망 전처리기(246)를 제공하는데 사용될 수 있거나 도 1의 질의 프로세서(124)의 부분을 형성할 수 있는 머신 러닝 시스템(310)의 예(300)를 도시한다. 머신 러닝 시스템(310)은 디지털 어시스턴트의 일부분을 형성할 수도 있고, 디지털 어시스턴트와 함께 사용될 수도 있다. 머신 러닝 시스템(310)은 추론 모드에서 초기 질의 데이터(320)를 수정된 질의 데이터(330)에 매핑하도록 구성된다. 머신 러닝 시스템(300)은 질의 인터페이스(342), 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(346) 및 출력 인터페이스(350)를 포함한다. 질의 인터페이스(342)는 초기 질의 데이터(320)를 수신하고 초기 질의 데이터(320)로부터 파생된 입력 시퀀스 데이터(344)를 제공하도록 구성된다. 한 경우에, 초기 질의 데이터(320)는 텍스트 데이터를 포함하며, 질의 인터페이스(342)는 이 텍스트 데이터를 파싱하고 숫자 값의 시퀀스 형태로 입력 시퀀스 데이터(344)를 제공하도록 구성된다. 질의 인터페이스(342)는 입력 시퀀스 데이터(344)가 정수 시퀀스(가령 토큰 인덱스를 나타내는) 또는 벡터(가령 임베딩 벡터를 나타내는)를 포함할 수 있는 토크나이저(tokenizer) 및/또는 임베딩 레이어(embedding layer)를 포함할 수 있다. 특정한 경우에, 토큰화(tokenization) 및/또는 임베딩은 신경망 아키텍처(346)의 일부분을 형성할 수 있으므로 질의 인터페이스(342)에 의해 생략될 수 있다. 질의 인터페이스(342)는 내부 인터페이스(어플리케이션 프로그래밍 인터페이스 또는 기능 인터페이스와 같은) 또는 원격 인터페이스(분산 시스템의 네트워크 인터페이스와 같은)를 포함할 수 있다.
인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(346)는 입력 시퀀스 데이터(344)를 출력 시퀀스 데이터(348)에 매핑하도록 구성된다. 신경망 아키텍처는 토큰의 입력 시퀀스(가변 길이)를 토큰의 출력 시퀀스(입력 시퀀스 길이와 다를 수 있는 가변 길이)에 매핑하므로 “시퀀스-투-시퀀스”라고 일컬어진다. 이 신경망 아키텍처는 입력 시퀀스를 가령 뉴럴 어텐션 레이어(neural attention layer)를 사용하여 “인코딩”하여 고정된 크기의 벡터로 만든 다음, 출력 시퀀스를 생성하기 위해 고정된 크기의 벡터를 가령 뉴럴 어텐션 레이어를 다시 사용하여 “디코딩”하는 역할을 하는 신경망 레이어의 제 1 집합을 포함하므로 인코더-디코더 아키텍처라고도 일컬어진다. 입력 시퀀스 데이터(344)는 출력 시퀀스 데이터(348)의 시퀀스 길이와 같은 시퀀스 길이를 가질 수도 있고, 다른 시퀀스 길이를 가질 수도 있다. 시퀀스 길이는 입력에 따라 다를 수 있다(출력 시퀀스 길이도 그러할 수 있다). 많은 경우에, 출력 시퀀스 데이터(348)의 시퀀스 길이는 입력 시퀀스 데이터(344)의 시퀀스 길이보다 짧을 수 있으나, 출력 시퀀스 데이터(348) 길이의 제어는 신경망 아키텍처(346) 자체에 의해 제공될 수 있다. 예를 들어, 신경망 아키텍처(346)는 시퀀스의 시작과 끝을 나타내는 <START> 및 <STOP>과 같은 특수한 제어 토큰을 사용하여 훈련될 수 있다. 따라서, 출력 시퀀스 데이터(348)를 형성하는 출력값은 <STOP> 값이 출력될 때까지 신경망 아키텍처(346)로부터 판독될 수 있다. 특정 경우에, 신경망 아키텍처(346)는 구성 가능한 파라미터인 상위 K 시퀀스의 집합과 같은 복수의 가능한 출력 시퀀스를 출력할 수 있다.
일반적으로, 출력 시퀀스 데이터(348)는 질의에 대한 기준 데이터 표현을 나타낸다. 도 3에 도시된 바와 같이, 이는 가령 정수 토큰 인덱스 및/또는 임베딩 벡터의 시퀀스를 포함하는, 입력 시퀀스 데이터(344)와 유사한 형식일 수 있다. 출력 인터페이스(350)는 질의에 대한 응답을 처리하는 데 사용되는 출력 시퀀스 데이터(350)를 처리하도록 구성된다. 도 3의 예(300)에서, 출력 인터페이스(350)는 출력 시퀀스 데이터(358)를 수신하고 수정된 질의 데이터(330)를 생성한다. 예를 들어, 출력 인터페이스(350)는 예를 들어 토큰 인덱스를 대응하는 텍스트 토큰으로 대체하고/대체하거나 임베딩 벡터를 매핑하여 토큰 사전에서 선택하여 출력 시퀀스 데이터(348)를 다시 텍스트 데이터로 변환할 수 있다.
한 경우에, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(346)는 동일한 언어의 텍스트 매핑을 학습할 수 있는 특정한 훈련 집합으로 훈련(가령, 사전 훈련된 파라미터를 사용하여 스크래치(scratch) 또는 미세 조정)된 신경 기계 번역 시스템으로 구성될 수 있다. 신경망 아키텍처(346)는 Vaswani 등의 논문 “Attention Is All You Need”논문(2017년 6월에 arXiv에 발표)에서 소개된 초기 디자인에서 파생된 것과 같은 소위 트랜스포머(Transformer) 아키텍처를 기반으로 할 수 있다. 트랜스포머 아키텍처는 시퀀스 출력을 제공하기 위해, 연속적인 인코딩 및 디코딩 단계를 통해 시퀀스 데이터에 적용되는 어텐션 레이어를 사용한다. 반복되는 신경망 인코더 및/또는 디코더에 기초한 것과 같은 다른 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(346)를 사용할 수도 있다 신경망 아키텍처(346)를 구현하기 위해 PyTorch, Tensorflow 및/또는 Open Neural Machine Translation toolkit과 같은 오픈 소스 라이브러리 및 툴킷을 사용하여 구현할 수 있다.
한 경우에, 질의 인터페이스(342)는 도 2의 음성 인식 시스템(244)과 같은 음성 인식 시스템을 구현할 수 있다. 이 경우, 질의 데이터(320)는 초기에 도 2에 도시된 바와 같은 음성 데이터로 수신될 수 있다. 다른 경우에, 질의 인터페이스(342)는 원격 클라이언트 장치로부터 질의 데이터를 수신하도록 조정되어 도 1의 네트워크 인터페이스(122)의 일부분을 형성할 수 있다. 다른 구성이 가능하다.
특정 예에서, 하나 이상의 신경망 아키텍처(346) 및 출력 인터페이스(350)는 출력 시퀀스 필터를 포함할 수 있다. 출력 시퀀스 필터는 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(346)로부터 복수의 출력 시퀀스를 수신하고, 적어도 하나의 자연어 처리 척도에 기초해 복수의 출력 시퀀스 중 하나를 선택하도록 구성될 수 있다. 예를 들어, 신경망 아키텍처(346)는 출력으로서 가능한 복수의 시퀀스를 제공할 수 있다(예컨대, 구성된 후처리 단계에 따라). 한 경우에, 자연어 척도는 질의 데이터(320) 또는 입력 시퀀스 데이터(344)에서 나타내는 입력 시퀀스와 출력 시퀀스의 유사성을 나타내는 것으로 사용될 수 있다. 이 경우, 입력 시퀀스와 가장 유사한 출력 시퀀스가 선택될 수 있다. 다른 경우에, 언어 모델에 의해 출력된 점수를 나타내는 자연어 모델이 사용될 수 있고, 여기서 점수는 언어 모델의 신뢰 수준을 나타낸다(즉, 출력 시퀀스를 파싱하기 쉬운 수준). 이 경우, 언어 모델 점수가 가장 높은 출력 시퀀스를 선택할 수 있다. 조합된 점수를 출력하는 복합 척도 함수가 정의될 수도 있고, 가장 높게 조합된 점수에 기초하여 출력 시퀀스가 선택된다. 출력 시퀀스 필터에 의해 처리될 수 있는 후처리에 대한 상세한 내용은 아래에서 설명한다.
디지털 어시스턴트에서 사용하기 위한 머신 러닝 시스템을 훈련하는 방법(400)의 예를 도시한다. 예를 들어, 머신 러닝 시스템은 도 3의 머신 러닝 시스템(310)을 포함할 수도 있고, 도 1의 질의 프로세서 또는 도 3의 신경망 전처리기(246)중 하나 이상의 일부분을 형성할 수도 있다. 방법(400)은 하나 이상의 프로세서에 의한 실행을 위한 컴퓨터 프로그램 코드로 구현될 수 있다. 컴퓨터 프로그램 코드는 비일시적 컴퓨터 판독 가능 매체 내에 저장된 명령어의 집합을 형성할 수 있다.
블록(405)에서, 훈련 데이터가 획득된다. 훈련 데이터는 질의 데이터 샘플을 포함한다. 질의 데이터 샘플은 적어도 질의를 나타내는 텍스트 데이터로부터 파생된 데이터를 포함할 수 있다. 하나의 경우에, 각 질의 데이터 샘플은 질의 데이터 샘플과 연관된, 질의에 대한 응답을 나타내는 텍스트 데이터로부터 파생된 데이터를 포함할 수도 있다. 각 질의 데이터 샘플은, 가령 도 1의 클라이언트 장치(110)의 유저에 의해 배치된, 질의를 나타내는 텍스트 문자열과 같은 텍스트 데이터를 포함할 수 있다. 다른 경우에, 질의 데이터 샘플은 다른 입력 양식에 따른 질의 또는 데이터를 나타내는 오디오 데이터를 포함할 수 있다. 훈련 데이터는 디지털 어시스턴트에 의해 캡처된 실제 질의 및/또는 질의 및 관련된 응답이 포함된 공개 데이터 집합으로부터 수집된다.
블록(410)에서, 질의 데이터 샘플의 벡터 표현이 획득된다. 이는 질의를 나타내는 텍스트 데이터 또는 대응하는 응답을 나타내는 텍스트 데이터 중 하나 이상의 벡터 인코딩을 획득하는 것을 포함한다. 벡터 인코딩은 신경망 인코더에서 생성될 수 있다. 본 명세서의 예는 주로 텍스트-벡터 매핑에 기초하지만, 다른 예에서는 직접적인 오디오-벡터 매핑 또한 사용될 수 있다. 신경망 인코더는 머신 러닝 시스템에 대한 별도의 신경망 아키텍처를 포함할 수도 있고(가령, 신경망 아키텍처(346)와 다른 시스템), 머신 러닝 시스템의 인코더 부분을 포함할 수도 있다(가령, 인코더-디코더 신경망 아키텍처(346)의 인코더 부분). 한 경우, 신경망 인코더는 2018년 3월에 arXiv에 발표되어 본 명세서에 참조로 통합된, Cer 등이 동일한 이름의 논문에서 기술한 범용 문장 인코더(Universal Sentence Encoder) 또는 이하에서 논의될 문장-BERT 인코더와 같은 사전 훈련된 문장 인코더를 포함할 수 있다. 블록(410)에 대한 벡터 인코딩의 형식은 구현에 따라 다를 수 있고, 추론 절차의 일부를 형성하지 않을 수 있으며, 가령 훈련 데이터의 생성에만 사용될 수 있다. 벡터 표현은 사전 정의된 범위(가령, 0부터 1 또는 -1부터 1) 내에서 정규화된 부동소수점 요소(가령, 256에서 1024)의 사전 정의된 개수를 포함할 수 있다.
블록(415)에서, 블록(410)에서 획득한 벡터 표현이 클러스터링된다. 이는 벡터 공간 내의 벡터 표현을 클러스터링, 즉 하나 이상의 클러스터링 함수에 기초하여 클러스터를 식별하는 것을 포함한다. 이 클러스터링 함수는 sci-kit learn과 같은 머신 러닝 라이브러리에서 제공될 수 있다. 클러스터링은 일반적으로 수백 차원의 벡터 공간(가령, 수백개의 벡터 공간에 대응하는)에서 수행된다는 것에 주목해야 한다. 이는 일반적으로 2 또는 3차원의 세계에서 시각화하기 어렵다. 한 경우에, 계층적 클러스터링 함수는 반복적으로 클러스터를 정의하는데 사용될 수 있다. 한 경우에, 벡터 표현은 질의 데이터의 벡터 표현 및 수반하는 응답 데이터의 벡터 표현을 포함할 수 있고, 이 경우 수반하는 응답 데이터의 벡터 표현은 제 1 단계 내에서 클러스터링될 수 있고, 질의 데이터의 벡터 표현은 제 1 단계 클러스터링의 결과를 사용하여 제 2 단계에서 클러스터링(가령, 제 1 단계 클러스터링에서 정의된 그룹 내에서 제 2 단계의 클러스터링)될 수 있다. 클러스터링은, 코사인 유사도 거리와 같은, 벡터 공간 내에서 거리 척도를 평가하는 단계와 거리 척도에 기초한 벡터 공간 내에서 이웃하는 포인트를 그룹화하는 단계를 포함할 수 있다.
블록(420)에서, 기준 질의 및 대응하는 질의 그룹은 클러스터링된 벡터 표현에 기초하여 결정된다. 이는 가령 블록(415)에서 결정된 서로 다른 질의와 관련된 벡터 표현의 클러스터의 선택과 각 클러스터에서 하나의 대표 질의 데이터 샘플의 결정을 포함할 수 있다. 예를 들어, 대표 (기준) 질의 데이터 샘플은 클러스터 내에서 더 빈번한 질의 데이터 샘플을 포함할 수 있고/있거나 클러스터에 대한 종합 벡터 표현에 가장 가까운 벡터 표현(그룹에 대한 평균 벡터 표현과 같은)을 가질 수 있다. 이들 경우에, 선택된 기준 질의 데이터 샘플이 아닌 각 클러스터 또는 그룹의 질의 데이터 샘플은 대응하는 질의 그룹을 형성한다. 대응하는 질의 그룹은 기준 질의 데이터 샘플을 포함할 수도 있고, 포함하지 않을 수도 있다(이는 훈련에 큰 영향을 미치지 않는다). 선호되는 경우에, 기준 질의 데이터 샘플은 제외된다.
블록(425)에서, 선택된 기준 질의 및 각 선택된 기준 질의에 대응하는 질의 그룹으로부터의 선택에 기초하여 페어링된 데이터 샘플이 생성된다. 예를 들어, 각 클러스터에 대해 기준 질의(즉, 텍스트 또는 시퀀스 형식의 해당 질의의 데이터 표현)는 타겟 또는 실측 출력 데이터로 설정될 수 있으며, 클러스터 내 각 질의는 차례로 이 기준 질의와 소스 입력 데이터로 페어를 이룰 수 있다. 따라서 블록(425)에서 훈련 데이터의 새로운 집합은 소스 및 타겟 데이터의 페어로 생성되며, 각 페어는 데이터 샘플을 형성한다.
블록(430)에서, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 블록(425)으로부터 페어링된 데이터 샘플을 사용하여 훈련된다. 여기서, 페어링된 데이터 샘플 내의 질의 그룹으로부터의 선택은 입력 시퀀스 데이터로 공급되며, 대응하는 기준 질의는 출력 시퀀스 데이터로 공급된다. 이와 같이, 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 소스 데이터를 타겟 데이터에 매핑하도록 훈련된다. 블록(430)에서의 훈련은 일반적인 트랜스포머 또는 뉴럴 기계 번역 시스템 훈련 절차를 사용할 수 있다. 훈련을 위한 하이퍼파라미터(hyperparameter)는 권장되는 공용 값에 기초 및/또는 실험을 통해 결정될 수 있다. 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 도 3의 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(346)를 형성할 수도 있고, 다른 구현 중에서는 도 1의 질의 프로세서(124) 또는 도 2의 신경망 전처리기(246)의 일부분을 형성할 수도 있다. 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 단방향 반복 신경망 아키텍처, 양방향 반복 신경망 아키텍처, 트랜스포머 신경망 아키텍처 및 합성곱(convolutional) 신경망 아키텍처 중 하나 이상에 기초할 수 있다. 신경망 아키텍처의 예에 대한 더 상세한 설명은, 본 명세서에서 참조로 통합된 Klein 등의 논문 “The OpenNMT Neural Machine Translation Toolkit: 2020 Edition”(AMTA 2020)에서 제공된다.
훈련된 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 예를 들어 도 2 및 3에 관해 기술된 바와 같이, 초기 질의를 나타내는 데이터를 수정된 질의를 나타내는 데이터에 매핑하도록 디지털 어시스턴트에서 사용할 수 있다. 신경망 아키텍처에 의해 출력되는, 수정된 질의를 나타내는 데이터는 가령 도 1 및 2에 관해 기술된 바와 같이 초기 질의의 응답을 제공하기 위해 또한 처리될 수 있다. 블록(425)의 클러스터에서 생성된 소스 및 타겟 데이터 샘플을 공급함으로써, 신경망 아키텍처는 비표준 시퀀스를 성공적이고 정확한 질의 처리를 위해 더 잘 형성된 입력을 반영하는 표준화된 시퀀스 또는 기준 시퀀스에 매핑하는 “학습”을 한다.
처리 흐름의 예
도 5는 도 4의 훈련 방법(400)의 한 구현에서 비롯될 수 있는 처리 흐름의 예시를 도시한다. 이 예에서, 초기 훈련 데이터(510)의 집합은 M개의 텍스트 데이터 페어를 포함하고, 각 페어(512)의 제 1 부분은 질의 데이터를 포함하며, 각 페어의 제 2 부분은 응답 데이터(514)를 포함한다. 텍스트 데이터는 문자열 형식(가령, 문자 인코딩 시퀀스)으로 제공될 수도 있고, 특정 처리 파이프라인에 맞게 조정된 파생 데이터 형식(가령, 사전 토큰화된 정수 목록 등)으로 제공될 수도 있다.
도 4의 블록(410)과 같은 제 1 프로세스를 통해, 텍스트 데이터 페어(512, 514)는 대응하는 벡터 페어(522, 524)로 변환된다. 이는 데이터 페어(512, 514)의 텍스트 표현을 토큰화하고, 임베딩 벡터를 생성하기 위해 토큰화된 텍스트 표현에 트랜스포머 또는 반복 신경망 아키텍처를 적용하는 것으로 구성될 수 있다. 임베딩 벡터의 생성은, 이상에서 기술된 인코더 중 하나 또는 본 명세서에서 참조로 통합된 Reimers 등의 논문(2019년 8월 arXiv에 발행) “Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks”에서 기술된 문장-BERT 인코더와 같은 문장 인코더의 적용을 포함할 수 있다. 알려진 공개 문장 인코더 파라미터는 별도의 훈련 없이 사용될 수 있다(가령, 큰 데이터 집합에 기초해 사전 훈련된 파라미터). 도 5는 벡터 페어(522, 524)를 도시하지만, 특정 구현에서 이는 가령 텍스트 데이터 페어(512, 514) 또는 결과 벡터 인코딩을 연결하여 단일 벡터 표현으로 결합될 수 있다. 더 큰 벡터의 마스킹 또는 제한된 차원으로 클러스터링하거나, 별도의 벡터 부분을 사용하여 2단계 클러스터링을 수행하는 것은 기능적으로 동등할 수 있거나 적어도 적절한 훈련 데이터의 생성을 위해 유사한 사용 가능한 그룹화를 제공할 수 있다. 특정 테스트 예시에서, 벡터 페어(522, 524)는 768차원 벡터로 생성되었다. 벡터 페어(522, 524)는 데이터 검색에서 시간을 아끼기 위해 특정 구현에서 캐시될 수 있다.
특정 변형에서, 벡터 페어(522, 524)(또는 단일 결합된 벡터)는 클러스터링 전에 추가적으로 처리될 수 있다. 예를 들어, 특정 구현에서, 차원 축소 전처리기가 적용될 수 있다. 차원 축소 전처리기는 임베딩 벡터를 저차원 벡터 공간으로 투영하는 동작을 포함할 수 있다. 예를 들어, 한 경우에, 벡터 표현을 분해하는데 사용될 수 있는 선형 변동 성분(linear variational components)의 집합을 결정하기 위해 주요 구성요소 분석(principal, component analysis, PCA)이 초기 벡터 페어(522, 524)에 수행될 수 있다. 한 경우에, 초기 벡터 페어(522, 524)에 의해 표현되는 데이터의 특정한 사전 정의된 변동량(variance)을 나타내는 선형 변동 성분의 서브집합이 선택될 수 있다. PCA를 통해 벡터 표현이 단일 연결 벡터로서 또는 별도로 축소될 수 있다. 예를 들어, 질의 벡터에 의해 형성되는 데이터는 PCA 맞춤 함수에 의해 처리될 수 있고, 변동량의 95%를 나타내는 선형 변동 성분의 서브집합이 선택될 수 있으며, 변환된 출력 요소는 선형 변동 성분의 각 서브집합의 서로 다른 양을 나타낸다. 이 동작은 더 고차원 표현(가령, 768개의 요소)에서 저차원 표현(가령, 몇백 개의 요소)으로 차원을 축소하는데 도움을 줄 수 있다. 이는 메모리 효율을 개선할 수 있다.
도 4의 블록(415)을 적용함으로써 발생할 수 있는, 처리의 다음 단계에서, 벡터 표현(522, 524)이 클러스터링된다. 도 5에서, n-차원 공간 클러스터링의 2차원 개략도가 도시된다. 이상에서 설명한 바와 같이, n은 수백(several hundred)일 수 있다. 한 경우에, 응답 벡터(524)에 기초한 클러스터링의 제 1 단계가 수행된다. 예를 들어, 이는 응답 벡터(524)의 클러스터링을 포함할 수 있다. 도 5에서 클러스터(532, 534)의 두 예가 도시된다. 한 경우에, 클러스터링은, 가령 제 1 사전 정의된 거리 임계값에 기초한 작은 클러스터가 정해지고, 이들 작은 클러스터가 그들끼리 클러스터링되거나 제 2 사전 정의된 거리 임계값에 기초한 다른 포인트와 결합하는 것과 같이, 개별 클러스터를 반복적으로 결합하기 위한 계층적 클러스터링 방법의 적용을 포함할 수 있다. 거리 임계값은 수동으로 최적화되고/되거나 자동 최적화 절차를 통한 하이퍼파라미터를 포함할 수 있다.
한 예에서, 질의 샘플(가령, (512))은 처음에 응답 벡터(524)를 나타내는 포인트 사이의 제 1 정의된 거리 측정 또는 임계값에 기초해 그룹화될 수 있다. 이로 인해 제 1 클러스터 집합이 발생할 수 있다. 응답 벡터(524)를 나타내는 남은 포인트는 제 2 정의된 거리 측정 또는 임계값을 사용하여 클러스터링될 수 있다. 제 2 거리 측정은 제 1 거리 측정보다는 클 수 있지만, 제 2 거리 측정은 거의 동일한 응답을 그룹화하기 위한 낮은 값일 수 있다. 계층적 클러스터링 함수는 클러스터링을 위한 거리 측정으로 코사인 유사도 거리를 사용할 수 있다. 이 예에서, 초기 엄격한 클러스터링은 매우 유사한 응답만 함께 그룹화되도록 보장한다. 그러나 이 경우 다른 유사한 응답이 별도의 클러스터에 배치될 수 있다. 따라서, 초기에 분리된 유사한 응답 클러스터를 결합하기 위해 클러스터링 동작은 여러 번 수행될 수 있다. 한 경우에, 텍스트 응답은 응집형 클러스터링(agglomerative clustering)을 사용하여 클러스터링된 다음, 대응하는 텍스트 질의는 동일한 접근법을 사용하여 다시 클러스터링된다. 한 예의 집합에서, 서로 다른 수준의 클러스터링을 질의 및 응답 벡터(522, 524)에 적용할 수 있다. 예를 들어, 질의 벡터의 초기 그룹은 응답 벡터의 클러스터(가령, 응답 공간에서 클러스터링을 한 번 이상 반복한 후)에 기초할 수 있으며, 클러스터링은 질의 벡터 공간의 초기 그룹 내에서(또는 사이에서) 수행될 수 있다.
도 6A는 응답 클러스터에 기초한 질의 그룹의 예시를 도시한다. 도 6A는 각 클러스터에 대한 질의 데이터를 텍스트 데이터 목록으로 사용하는 세 클러스터(601, 602, 603)를 도시한다. 이 경우에, 세 클러스터(601 내지 603)는 초기 클러스터링 단계에서 발생할 수 있다. 이후의 반복 클러스터링에서, 클러스터(601 및 603)은 (가령, 각 클러스터의 중심 간 거리 또는 평균과 제 2 사전 정의된 거리 임계값에 기초하여) 결합될 수 있다.
도 5로 돌아가서, 클러스터링은 질의 데이터 그룹(540)과 같은 질의 그룹을 생성한다. 이들은 도 6A에 도시된 그룹(또는 601 및 603을 결합한 결과와 602의 두 그룹)과 유사할 수 있다. 이 질의 그룹은 하나 이상의 원본 데이터 공간(가령, 510에 기초한) 또는 벡터 공간에 있는 그룹일 수 있다. 도 4의 블록(420)의 일부분으로서, 응답 클러스터(가령, 532, 534)에 대응하는 질의 그룹은 그룹 멤버쉽을 정제하기(refine) 위해 추가로 처리될 수 있다. 예를 들어, 각 응답 클러스터를 차례로 취하고 클러스터의 응답 포인트 또는 벡터를 식별할 수 있다. 이들 응답 포인트 또는 벡터(가령, 데이터 집합(510)의 응답 벡터 i 또는 대응하는 질의 i)에 대응하는 질의 인덱스는 응답 클러스터 단위로 그룹화된다. 특정 경우에, 각 그룹 내 질의 벡터는 그들끼리 클러스터링된다. 이는 가령 질의 클러스터의 중심까지의 거리를 기초로 하여 그룹 중 하나를 그룹에 대한 기준 질의로 선택하는데 사용될 수 있다.
특정 경우에, 가령 블록(415)의 결과인 클러스터링된 벡터 표현은 도 4의 블록(420)의 일부로서 필터링될 수 있다. 이는 질의 벡터(522)의 각 클러스터에 대한 중심을 결정하고, 중심으로부터 사전 정의된 거리보다 더 큰, 주어진 클러스터에 대한 질의의 벡터 표현을 할당 해제하는 것을 포함할 수 있다. 이는 또한, 또는 대안적으로, 각 질의 벡터 클러스터(522)의 크기를 획득하고, 사전 정의된 임계값 미만인 크기에 응답하여 주어진 클러스터에 대한 질의의 벡터 표현을 할당 해제하는 것을 포함할 수 있다. 이들 필터링 동작은 이전에 할당되지 않은 벡터 표현이 가장 가까운 클러스터에 재할당되는 재할당 동작으로 이어질 수 있다. 따라서 이 필터링은 응답 벡터(524)에 반대되는 질의 벡터(522)에 기초한 제 2 클러스터링 단계로 볼 수 있다.
도 5는 또한 질의의 각 그룹 또는 클러스터에 대한 기준 질의를 선택하는 처리를 도시한다. 도 5에서, 기준 질의가 각 질의 그룹(544) 내의 순서 목록에서 최상위 질의(542)로 선택된다. 하나의 예에서, 순서 목록은 원본 데이터 집합(5100)의 발생 빈도를 기초로 할 수 있다. 다른 예에서, 순서 목록은 질의 클러스터의 중심으로부터의 거리를 기초로 할 수 있다. 또 다른 예에서는, 여러 척도를 조합하고 평가할 수 있다. 최상위 질의(542)는 가장 자주 발생하고/하거나 질의 클러스터의 중심으로부터 가장 가까운 질의일 수 있다.
도 5에서는 (최상위 질의(542)로 선택된) 기준 질의(546)를 타겟 데이터 샘플로 설정하고 그룹 또는 클러스터 내의 나머지 질의를 소스 데이터 샘플(548)로 설정하는 방법을 도시한다. 이는 해당하는 클러스터링된 벡터 표현을 기초로 하여 데이터 집합(510)으로부터 원본 텍스트 데이터 항목을 선택하는 것을 포함할 수 있다. 도 5의 하단에서는, 그룹의 각 소스 데이터 샘플(552)이 타겟 데이터 샘플(554)과 결합하여 여러 개의 타겟-소스 데이터 샘플(550)을 생성하고, 도 4의 블록(430)에서 신경망 아키텍처를 훈련하기 위한 훈련 집합을 형성하는 방법을 도시한다.
하나의 변형에서, 도 4의 방법(400) 및/또는 도 5에 예시된 처리는 머신 러닝 시스템을 훈련하기 전에 타겟-소스 데이터 샘플(550)과 같은 생성된 페어링된 데이터 샘플을 필터링하는 것을 포함한다. 이 필터링은 정의된 기준을 충족하지 않는 매핑된 출력 시퀀스를 삭제하기 위해 추론 모드에서도 적용될 수 있다. 필터링 단계를 갖는 것은 머신 러닝 시스템에 대한 훈련 집합의 품질을 개선시킬 수 있으므로, 추론하는 동안 매핑을 개선할 수 있다. 추론 후 후처리 단계로서 수행되는 경우, 머신 러닝 시스템에 대한 제약을 완화할 수도 있어, 가령 매핑 출력 시퀀스의 간헐적인 노이즈와 오류를 허용해 질의 처리 파이프라인에서 처리할 수 있다.
한 경우에, 위 필터링은, 개체명 태그가 질의 그룹의 해당 선택 항목의 개체명 태그와 일치하지 않는, 기준 질의와 페어링된 데이터 샘플을 제거하는 것과, 질의 그룹에서의 해당 선택 항목과 기준 질의에 관한 의미 거리 척도의 비교에 기초하여 페어링된 데이터 샘플을 제거하는 것 중 하나 이상을 포함한다. 제 1 경우에, 방법(400)은, 가령 블록(405 또는 410)의 일부분으로서, 질의 데이터(512) 및 응답 데이터(514) 중 하나 이상에 대해 개체명 인식을 수행하는 것을 포함할 수 있다. 이는 ExplosionAI GmbH가 관리하는 spaCy library 또는 스탠포드 대학교가 제공하는 Stanford Named Entity Recognizer와 같은 가능한 머신 러닝 처리 라이브러리의 하나 이상의 함수를 적용함으로써 수행될 수 있다. 개체명 인식은 사람, 장소 또는 시간 등 일관된 지시물이 있는 개체 또는 물건과 관련된 텍스트 데이터 내에서 토큰(가령, 문자, 단어 또는 단어 그룹)을 찾기 위해 구조화되지 않은 텍스트 데이터에 적용할 수 있는, 알려진 파싱 함수이다. 특정 경우에, 개체명 인식은 벡터와 및 클러스터링 이전에 질의 데이터(512) 및 응답 데이터(514) 모두에서 수행될 수 있다. 이 경우, 방법(400)은, 예를 들어 탐지된 사람, 장소, 시간의 이름을 정의된 태그 <PEOPLE>, <PLACE>, 및 <TIME>으로 각각 대체하는 것과 같이, 태그된 개체명에 대한 텍스트 데이터를 개체명 유형 태그로 대체하는 것을 포함할 수 있다. 이는 서로 다른 개체명을 가진 유사한 질의를 함께 클러스터링하는 데 도움이 되고, 예를 들어 “What is the weather in Toronto?” 및 “What is the weather in San Diego?” 모두를 토큰 시퀀스 “[What, is, the, weather, in, <PLACE>, ?]”로 변환하여 벡터 공간의 공통 점(common point)에 매핑될 수 있다.
특정한 경우에, 개체명 인식 및 태그 대체가 이상에서 기술된 바와 같이 수행되는 경우, 원본 텍스트 토큰은 페어(512, 514)와 같이, 처리된 텍스트 부분과 관련하여(가령, 함께 또는 인덱싱되어) 저장될 수 있다. 머신 러닝 시스템을 훈련하기 위한 데이터 집합(550)을 생성한 후, 원본 텍스트 토큰을 데이터 샘플에 다시 기록할 수 있다. 예를 들어, 질의 데이터(512)를 파싱하는 개체명 다음에 [[“What, is, the, weather, in, <PLACE>, ?”],“Toronto”]를 포함할 수 있고, 여기서 클러스터링은 제 1 목록 요소에서 수행된 다음, 타겟 및 소스 데이터(552, 554) 중 하나 내의 텍스트 토큰 내에서 원래 토큰 “Toronto”가 <PLACE> 대신 토큰 집합에 다시 임베딩되어, 즉, 다시 [“What, is, the, weather, in, “Toronto”, ?”]가 된다. 이는 소스 및 타겟 데이터 샘플(512, 514) 모두에 대해 수행되고, 동일한 대체가 수행되어, 즉, 소스 및 타겟 데이터 샘플(512, 514) 모두의 <PLACE> 태그에 “Toronto”가 임베딩된다. 이는 예를 들어, 공통으로 처리되었으나 서로 다른 개체명을 가진 소스 질의 샘플이 더 다른 개체명으로 매핑된 다음 원본 개체명의 다른 버전을 사용하여 다른 버전이 생성될 수 있기 때문에, 정확도를 향상시키기 위해 훈련 데이터를 증강하는 데 도움이 될 수 있다. 예를 들어, 데이터(601, 603) 내 모든 질의는 초기에 16개의 소스-타겟 페어를 생성하기 위해 하나의 타겟 데이터 샘플에 매핑될 수 있고, 서로 다른 날짜 및 위치에 해당하는 모든 원본 <DATE> 및 <LOCATION> 개체명은 16개의 소스-타겟 페어의 서로 다른 복사본에 임베딩하여 16개 이상의 훈련 샘플을 생성할 수 있다.
추가적인 후처리 필터는 주어진 페어의 소스 및 타겟 데이터 샘플(512, 514)을 추가적으로 비교하고, 페어가 제거되어야 하는지 여부를 결정하는데 이 비교 결과를 사용할 수 있다. 예를 들어, 소스의 개체명 태그와 타겟 텍스트가 일치하지 않으면 주어진 페어를 삭제할 수 있다. 이를 통해 질의에 응답하는 데 필요한 임의의 개체명 태그가 소스 및 타겟 데이터 샘플 모두에 존재하는지 확인할 수 있고, 가령 <DATE> 및/또는 <LOCATION>이 소스 질의(552)에서 나타나는 경우, 이들은 훈련 데이터(550)에 남아 있으려면 타겟 질의(554)에도 나타나야 한다.
이 경우에, 의미론적 거리의 체크가 수행되는 경우, 이는 소스 및 타겟 데이터 샘플 간 벡터 공간에서 거리 측정을 비교하는 것과, 사전 정의된 임계값을 초과하는 데이터 샘플 페어를 제거하는 것을 포함할 수 있다. 이는 소스 및 타겟 데이터 샘플 모두에 대한 언어 파싱 척도를 생성하고 나서 이 척도의 비교에 기초하여 데이터 샘플을 제거하는 것 또한 포함할 수 있다. 다른 경우에, 하나 이상의 소스 및 타겟 데이터 샘플이 사전 정의된 임계값보다 높거나 낮은 테스트 척도를 가지고 있다면 데이터 샘플로서 삭제된 페어와 하나 이상의 소스 및 타겟 데이터 샘플에 추가적인 테스트가 적용될 수 있다. 예를 들어, 타겟 데이터 샘플과 함께 제공된 언어 모델에 대한 신뢰도 점수가 사전 설정된 임계값보다 낮은 경우(가령 타겟 데이터 샘플이 파싱하기 어렵거나 잘 형성된 텍스트를 반영하지 않음을 나타냄), 데이터 샘플은 삭제될 수 있다. 언어 모델은 가령 음성 질의를 파싱하거나 음성 응답을 렌더링하는 데 사용되는 디지털 어시스턴트와 관련된 하나 이상의 음성 인식(speech-to-text) 시스템 및 텍스트-음성(text-to-speech) 시스템에 사용되는 언어 모델일 수 있다.
추론 모드에서 적용할 수 있는 후처리로 전환하면, 이는 머신 러닝 시스템에서 제공하는 가능한 출력 시퀀스 또는 후보 출력 시퀀스의 집합으로부터 질의 처리를 위한 출력 시퀀스를 선택하는데 적용될 수 있다. 한 경우에, 가령 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처의 형태의 머신 러닝 시스템은 표준 동작의 일부로서 가능한 출력 시퀀스 또는 후보 출력 시퀀스의 집합을 출력하는 옵션을 가지고 있을 수 있다. 예를 들어, 제공할 수 있는 가능한 출력 시퀀스 또는 후보 출력 시퀀스의 숫자는, 가령 상위 K개의 가능한 출력 시퀀스에 해당하는, 머신 러닝 시스템의 하이퍼파라미터가 될 수 있다. 후처리를 위해 이하에서 기술되는 하나 이상의 필터가 적용될 수 있다.
제 1 경우에, 표준 동작의 일부로서 머신 러닝 시스템에 의해 출력되는 신뢰도 또는 예측 점수에 기초하여 필터링이 수행될 수 있다. 예를 들어, 이는 비교 사용에서 각기 가능한 출력 시퀀스에 대한 신뢰도 레벨(가령, 기계 번역에 사용될 때 각 번역 집합에 대한 신뢰도)을 나타내는 가능성 값(probability value)을 포함할 수 있다. 따라서 신뢰도 또는 예측 점수는 질의 처리를 위한 출력 시퀀스를 선택하는 척도로 사용될 수 있다. 한 경우에, 이는 소스 및 타겟 데이터 샘플의 벡터 표현을 비교하여 생성된 코사인 유사도 점수와 결합될 수 있다. 최종 점수는 복합 함수를 사용하여 생성될 수 있고, 최고 점수를 획득한 출력 시퀀스는 머신 러닝 시스템의 출력으로 선택될 수 있다. 한 경우에, 최고 점수를 획득한 출력 시퀀스를 출력으로 사용할지 또는 오류를 반환할지(가령 디지털 어시스턴트가 유저에게 질의를 반복하도록 요청할 수 있다) 여부를 결정하기 위해 임계값과 비교할 수도 있다.
후처리의 제 2 경우에, 개체명 태그 매칭 동작이 수행될 수 있다. 이는 위에서 설명되고, 훈련 데이터 집합(550)에 적용될 수 있는 개체명 태그 매칭 동작과 유사할 수 있다. 이 경우에, 개체명 태그 매칭 동작은 입력 시퀀스 데이터(가령, 질의 데이터(320)의 텍스트 형식으로 추출된)와 관련된 태그가 일치하지 않는 개체명 태그를 가진, 가능한 출력 시퀀스 또는 후보 출력 시퀀스를 제거하는 것을 포함할 수 있다. 예를 들어, 개체명 인식은 질의 데이터(320) 및 가능한 출력 시퀀스 또는 후보 출력 시퀀스 각각의 텍스트 형식에 대해 수행될 수 있다. 선호되는 경우에, 머신 러닝 시스템은 원래 개체명 값(가령, “Toronto”“12:15pm”“Mike”)으로 훈련되며, 이러한 값을 출력 시퀀스로 전달하는 출력을 생성하도록 구성된다. 개체명 태그 매칭은 머신 러닝 시스템에 대한 입력 및 출력 텍스트 데이터 내의 태그 유형(가령, <PLACE>, <TIME>) 및 태그 값(가령, “Toronto”, “12:15pm”) 모두의 매칭을 요구할 수 있다. 주어진 후보 출력 시퀀스(가령, 심지어 더 높거나 가장 높은 점수를 얻은 출력 시퀀스)에 대한 매칭이 없는 경우, 출력 시퀀스는 질의 처리 가능성 목록에서 제거될 수 있다. 개체명 매칭에 더해, 또는 대신에, 명사 구문 매칭이 적용될 수도 있다.
제 3 경우에, 제안된 출력 시퀀스는 질의 처리를 위해 전달되기 이전에 품사(part-of-speech) 검증을 받을 수 있다. 이는 이상에서 기술한 개체명 매칭 및 복합 스코어링 이후에 적용될 수 있다. 이 후처리 검사는 질의 처리를 위해 전달될 모든 출력이 문법적으로 옳거나 정확한 문장인지 확인하기 위해 적용될 수 있다.
도 6B는 품사(part-of-speech, POS) 검증 어플리케이션의 결과 데이터(610)를 도시한다. 검증은 질의 필드(612)에 도시된 후보 출력 시퀀스의 텍스트 버전에 관하여 수행된다. 검증을 위해, 이상에서 기술된 개체명 인식이 수행되고, 질의 시작(<BOQ>) 태그 및 질의 종료(<EOQ>) 태그가 추가된다. 이 처리의 출력은 태그된 질의(614)에 도시된다. 이에 따라, 품사 태깅이 적용되며, 각 토큰의 품사 태그가 도 6B의 (616)에 도시된 바와 같이 출력 품사 리스트에 저장된다. 품사 태깅은 이상에서 참조된 spaCy 또는 스탠포드 대학이 제공하는 Natural Language ToolKit(NLTK)과 같은 공지된 자연어 처리 라이브러리를 사용하여 수행될 수 있다. 도 6B에서 볼 수 있듯이, 표준 품사 태깅 함수는 이러한 토큰에 대해 품사 태깅을 사용하는 대신 기존 개체명 및 커스텀 태그(<BOQ>, <LOCATION>, <DATE>, <EOQ>)를 유지하도록 구성된다(가령, 이미 존재하는 태그에 대한 품사 변환을 효과적으로 건너뛰면서). 그런 다음 품사 리스트를 파싱하며, 파싱 결과를 사용하여 질의(612)를 유지하고 질의 처리를 위해 전달할 것인지 또는 질의를 거부하고 다른 출력을 선택하거나 오류를 반환할지 결정한다.
제 3 경우에, 성공적인 반응을 불러온 질의의 데이터베이스로부터, 가령, 도 5의 질의 데이터(512)로부터, 파싱 트리와 유사한 객체가 구성될 수 있다. 이 경우, 질의 데이터 샘플(512)은 이상에서 기술된 (616)과 유사한 품사 목록으로 변환될 수 있다. “성공적인” 질의에 대한 품사 목록 집합은 따라서 비교 데이터베이스로 사용될 수 있다. 따라서 제안된 출력 질의(612)를 위해 생성된 품사 리스트(616)를 이 비교 데이터와 비교하여(가령, 구성된 파싱 트리를 검토한다) 일치 여부(가령, <EOQ> 토큰까지의 성공적인 파싱)를 결정할 수 있다. 도 6B에서, 전체 품사 목록이 검토되고(가령, 검토된 필드 데이터(620)가 전체 품사 목록(616)과 일치한다), 비교 데이터베이스의 매칭이 위치함(622에 도시된 바와 같이 매칭된 시퀀스에 대한 식별자에 의해 표시됨)에 따라, 불리언 변수(618)에 의해 표시된 대로 검증은 성공적이다. 이 경우, 질의(612)는 따라서 질의 처리에 대해 적절한 “번역된” 출력 질의라고 확인될 수 있다. 예를 들어, 질의 프로세서(124) 또는 질의 프로세서(248)에 의해 추가적인 처리를 위해 전달되고, 따라서 도 1 또는 2의 응답(142) 또는 (230)을 생성하는데 사용된다.
이상에서 논의한 바와 같이, 본 명세서에서 기술된 접근법은 하나 이상의 훈련 집합(550)의 필터링 및 훈련된 머신 러닝 시스템에 의해 생성된 가능한 출력 시퀀스의 필터링의 사용을 위해 조정될 수 있다. 예를 들어, 훈련 데이터 후처리 또는 출력 시퀀스 후처리 중 하나에 관하여 이상에서 기술된 접근법은 다른 것에 대해서도 적용될 수 있다. 한 경우에, 훈련 집합(550)의 필터링 또는 훈련된 머신 러닝 시스템에 의해 생성된 가능한 출력 시퀀스의 필터링은 복수의 서로 다른 척도의 복합 가중 함수를 사용할 수 있다. 이들 서로 다른 척도는 이상에서 논의한 조건의 임의의 조합을 기초로 할 수 있다. 이 경우에, 정규화된 복합 척도 값은 복합 가중 함수에 의해 생성될 수 있으며, 이는 훈련 데이터 샘플을 유지할지 및/또는 추가적인 처리를 위해 후보 출력 시퀀스의 집합으로부터 출력 시퀀스를 선택할지 여부를 결정하기 위해 사전 정의된 임계값과 비교될 수 있다. 복합 가중 함수에 대한 가중치는 사전 정의되거나 학습된 하이퍼파라미터일 수 있다(특정 경우에는 1일 수 있음). 후처리는 질의 처리를 위해 사용되는 훈련 데이터(550) 및 출력 시퀀스의 품질을 (추가적으로) 향상시키는데 도움이 되는 선택적인 작업이고, 예를 들어 본 명세서에서 기술된 머신 러닝 시스템에 의해 수행되는 질의 번역 또는 수정에 더하여 시너지 효과를 발휘한다.
질의 전처리의 예
도 6C는 본 명세서에 명시된 대로 구성되고 훈련된 머신 러닝 시스템을 사용하여 수행될 수 있는 질의 매핑의 몇몇 예시를 도시한다. 왼편은 가능한 질의 입력(632, 642, 652)를 도시한다. 이들은 질의 인터페이스(342)에서 수신된 초기 질의 데이터(320)(또는 상기 인터페이스에서 부분적으로 처리된 질의 데이터)와 관련될 수 있다. 오른편은 가능한 수정된 질의 데이터 출력(634, 644, 654)을 도시한다. 이들은 도 3의 수정된 질의 데이터(330) 출력(또는 출력 인터페이스(350)에서 부분적으로 처리된 수정된 질의 데이터)과 관련될 수 있다. 이들 예는 예시의 편의를 위해 필연적으로 간략화되었고, 실제 데이터 형식은 구현에 도시된 것과 다를 수 있다는 사실에 주목해야 한다. 도 6C에서, 개체명 인식이 수행되었고, 개체명은 꺽쇠괄호 <…> 안에 있다(태깅 형식은 활용된 파싱 라이브러리에 기초한 구현 사이에서 달라질 수 있다.). 제 1 예에서, 초기 입력 질의 “my wife and I are going to <Seattle> on <Wednesday>. She asked me to check the weather before we pack our suitcases”(632)는 기준 질의 “show me the weather in <Seattle> <Wednesday>”로 “번역”된다. 기준 질의는 더 잘 형성되고, 응답을 생성하기 위한 처리를 하기 쉽다는 것을 알 수 있다. 유사하게, 제 2 예시에서, 초기 입력 질의 “I am going to <San Francisco> <tomorrow>. I am wondering if it is going to rain there”(642)는 기준 질의 "is it going to rain <tomorrow> in <San Francisco>”(644)로 “번역”된다. 마지막으로, 일부 중첩되거나 혼란스러운 발화를 가진 초기 입력 질의 “how is never mind the weather in <Seattle> <tomorrow>”(652)는 기준 질의 “what's the weather like <tomorrow> in <Seattle>”(654)에 매핑된다.
현재 설명된 예는 모든 대화 또는 회화 시스템(가령, 온라인 및 짧은 메시지 서비스를 통해 사용되는 텍스트 챗봇)에 사용될 수 있지만, 뒤틀리고 잘못 형성된 발화가 예외(인간은 그들이 언제나 잘 형성된 발화를 한다고 자연스럽게 상상하지만, 실제 발화 녹음 실험은 그것이 사실이 아니고 내재된 포지티브 편향을 반영하는 것을 보여준다)라기보다는 표준임을 나타내는 음성 어시스턴트 및 음성 질의 인터페이스에 적합하다.
도 6C에서, 제 3 예(652, 654)는 선택적인 개체명 인식 처리를 보여주기 위해 주석을 달았다. 이 예에서, 텍스트 데이터 형식의 입력 질의 데이터(652)는 파싱되고 토큰 “Seattle”및 "tomorrow”는 태그 유형 <LOCATION>(662) 및 <DATE>(664)를 갖는 개체명으로 검출된다. 이 경우에, 원래 토큰 값은 태그 유형 (662, 664)과 관련된 변수(672, 674)로 저장된다. 도 6C에서, 출력(654)에서 수행된 개체명 인식의 결과(684)가 도시된다. 여기에는 태그 유형(662, 664) 및 태그 값(672, 674)이 후처리 유효성 검사의 일부로 어떻게 일치하는지 보여질 수 있다.
특정 변형에서, 머신 러닝 시스템은 개체명 값 대신 개체명 태그(가령, 652 대신 684와 같은 질의 데이터)를 사용하는 데이터 샘플로 훈련될 수 있다. 이 경우에, 머신 러닝 시스템은 입력에서 출력으로 개체명 태그를 보존하도록 훈련될 수 있다(가령, 소스 및 타겟의 개체명 태그가 일치하는 필터링된 훈련 데이터의 결과로서). 그러나, 이 접근법은 원래 개체명 태그를 사용하여 훈련되지 않은 대규모 사전 훈련된 신경망 아키텍처(가령, 사전 훈련된 단일 언어 “언어 모델” 또는 신경 해석 시스템과 같은)의 사용과 호환되지 않을 수 있다. 대규모 사전 훈련된 신경망 아키텍처를 사용해야 하는 경우(가령, 보다 자연스러운 매핑에 선호될 수 있음), (550과 같은) 훈련 데이터는 실제 개체명으로 구성될 수 있고, 개체명 인식은 전처리 도는 후처리 작업과 병행하여 수행될 수 있다. 특정 경우에, 사전 훈련된 신경망 아키텍처를 사용한 후, 사전 훈련된 파라미터가 특정 사용 사례에 대해 미세 조정되는 이른바 전이 학습 훈련(transfer learning training)을 적용하는 것이 선호될 수 있다. 이를 통해 사전 훈련된 모델에 구현된 언어학의 기초가 유지되고 특정 사용 사례가 “최상위로(on-top)”으로 빠르게 학습될 수 있다. 이는 신경망 아키텍처를 처음부터 훈련하는데 선호될 수 있다. 이는 더 빠른 훈련 및 더 나은 매핑을 제공할 수 있다.
서버 장치의 예
도 7A 및 7B는 특정 방법 및 본 명세서에서 기술된 머신 러닝 시스템을 구현하는 데 사용될 수 있는 서버 장치(710)의 예를 도시한다. 도 7A는 도 1의 서버 장치(120), 또는 머신 러닝 시스템(310)(가령, 원격으로 구현되는 경우)을 구현할 수 있는 서버 장치(710)의 예를 도시한다. 서버 장치(710)는 랙 마운트 서버 블레이드 멀티 프로세서 서버 시스템(rack-mounted server blade multi-processor server system)을 포함할 수 있다. 이는 소프트웨어를 병렬로 구동하는 다수의 네트워크 연결 컴퓨터 프로세서를 포함할 수 있다. 도 7B는 서버 장치(710)의 특정 구성요소의 예를 도시한다. 서버 장치(710)는 컴퓨터 프로세서(CPU) 코어(712)와 그래픽 프로세서 코어(714)의 멀티 코어 클러스터로 구성된다. 프로세서는 프로그램 코드 및 데이터 저장을 위해 보드 레벨 인터커넥트(716)를 통해 랜덤 액세스 메모리(RAM) 장치(718)에 연결된다. 서버 시스템(710)은 프로세서를 인터넷에 연결하기 위한 네트워크 인터페이스(720)를 포함한다. RAM 장치에 저장된 명령어를 인터페이스(716)를 통해 실행하기 위해, CPU(712) 및 GPU(714)는 본 명세서에서 기술된 방법의 단계를 수행할 수 있다. 특정 경우에, 본 명세서에서 기술된 클라이언트 장치는 유사한 일반적인 구성 요소의 배열을 가질 수 있지만, 어떤 경우에는 더 적은 컴퓨팅 리소스를 가질 수 있고, 전용 그래픽 프로세서(714)를 가지지 않을 수도 있다. 클라이언트 장치는 서버 장치(710)와 비슷한 방식으로, 본 명세서에서 기술된 방법의 단계를 수행하는 하나 이상의 CPU를 가질 수 있다. 특정한 경우에, 서버 장치(710)는 (가령, 클라이인트 장치 내) 신경망 아키텍처의 로컬 인스턴스화에 배포되는 파라미터 집합을 결정하기 위해 신경망 아키텍처의 훈련을 수행하는데 사용될 수 있다.
하이퍼파라미터 및 테스트 구성의 예
이상에서 기술한 바와 같이, 머신 러닝 시스템은 다수의 하이퍼파라미터로 구성될 수 있다. 하이퍼파라미터에 대한 값은 업계 모범 사례, 실험 및/또는 자동 최적화에 기초하여 설정될 수 있다. 훈련 방법에서 추가적인 하이퍼파라미터는 기준 질의의 선택을 위한 거리 임계값, 클러스터 크기 임계값 및 빈도 임계값의 클러스터링 중 하나 이상을 포함할 수 있다. 특정 경우에서, 서로 다른 작업 도메인에 대해 서로 다른 하이퍼파라미터가 결정될 수 있다. 예를 들어, 하나의 하이퍼파라미터 집합은 자동차 도메인에 대해, 다른 집합은 헬스케어 도메인 챗봇에 대해, 그리고 제 3 집합은 가정용 음성 어시스턴트에 대해 선택될 수 있다.
다음은 머신 러닝 모델의 하이퍼파라미터로 일반적으로 선택 및/또는 최적화될 수 있는 하이퍼파라미터의 일부 예시이다: 입출력에 대한 단어 임베딩 크기, (반복되는 신경망, 양방향 신경망, 그래프 신경망(GGNN(gated graph neural network)와 같은), 트랜스포머 신경망, 합성곱 신경망 및 평균 신경망(mean neural network)중 하나로 선택될 수 있는) 인코더 유형, (반복 신경망, 트랜스포머 신경망 및 합성곱 신경망 중 하나로 선택될 수 있는) 디코더 유형, 인코딩 레이어 수, 디코딩 레이어 수, 모든 반복되는 신경망 은닉 상태의 크기, 파라미터 초기화(가령, 이것이 지지 집합의 균등 분포에 대해 수행되거나, 트랜스포머 아키텍처에 대해 Xavier 균등 분포에서 Glorot initialization을 통해 수행되는지 여부), 배치(batch) 사이즈(가령, 훈련을 위한 가장 큰 배치 사이즈), 최적화 방법(가령, 확률적 경사 하강법(Stochastic gradient descent), ADA 및 변수, ADAM 및 변수 중 하나) 및 드롭아웃(drop-out)(가령, 적용 여부 및 드롭아웃 가능성). 이들 하이퍼파라미터는 실험을 통해 서로 다른 도메인 및 어플리케이션에서 구성될 수 있으며, 초기에는 기본 설정을 사용할 수 있다.
성능을 미세 조정하기 위해 실험에 따라 달라질 수 있는 다른 하이퍼파라미터로는, 학습 속도, 학습 레이트 감쇠 옵션, 학습 레이트 감쇠 방법(가령, NOAM 또는 RSQRT), 커스텀 감쇠 방법에 대한 준비 단계, (가령, 인코더 및 디코더 내에서 및/또는 입력 및 출력 단어 임베딩 모두에 대해) 공유 가중치가 사용되었는지 여부, 부동소수점 비트 뎁스(가령, 16, 32 또는 64 비트), 고정점 표현(가령, 8 또는 16비트), 반복 신경망 유형(LSTM, GRU 또는 SRU), 노이즈 설정 및 어텐션 레이어 복사 훈련 여부가 있다.
도 6C에 도시된 예는 6만 회의 반복 동안 백만 개의 훈련 샘플에 대한 날씨 도메인 데이터로 훈련된 테스트 구현을 기초로 한다. 초기 질의 및 응답은 180만 개의 질의 및 응답 페어(텍스트로 제공되는)의 날씨 데이터집합에서 취해졌다. 훈련 동안 데이터집합의 90%가 훈련에 사용되었고, 5%가 검증에 사용되었고, 나머지 5%가 테스트에 사용되었다. 50만 개에서 백만 개 사이의 샘플로 훈련하면 적절한 결과를 제공한다는 것을 알 수 있었다. 다른 테스트는 1180만 개의 질의, 응답(텍스트 형식) 및 도메인의 광범위한 데이터집합을 사용하여 수행되었다. 특정한 경우에서, 샘플이 1000개 미만인 도메인이 제거되었다. 다른 데이터집합 필터링은 공통적으로 사용되지 않는 패턴의 짧은 응답의 제거와, 오류 또는 잘못된 질의를 나타내는 응답의 제거와, 사전 또는 변역 요청과 같은 커스텀 도메인을 제거를 포함할 수 있다. 테스트에서, 클러스터링된 텍스트 응답에 기초하여 질의 전사(transcription)를 그룹핑하는 처리가 먼저 수행된 후 질의의 벡터 표현을 클러스터링한다. 후자의 클러스터링은 하나 이상의 도메인, 기록된 응답 클러스터 및 질의 내용에 기초할 수 있다.
테스트에서, 머신 러닝 시스템의 품질은 (가령, 뉴럴 기계 번역에서 사용되는 것과 유사한) 정확도 및 혼란(perplexity) 척도를 사용하여 평가될 수 있다. 예를 들어, 이들 척도는 모델의 학습 능력을 포착하고 과잉적합을 피하기 위한 훈련 및 검증 성능을 비교하기 위해 사용될 수 있다. 혼란은 유용한 척도가 될 수 있지만, 정확도는 대상 언어로 된 소스 문장의 단일 번역(또는 약간 수정된 버전)이 있는 기계 해석 작업만큼 관련성이 없을 수도 있다.
대안적인 방법의 예
다음은 기술된 특정 예시의 다른 측면을 나타내는 예시 절의 집합이다. 이들은 모두 무제한이다. 일 측면에서, 전사 재작성 모델을 훈련하는 방법은, 원본 전사 및 원본 전사의 작성된 응답 임베딩 벡터를 저차원 공간에 투영하는 것과, 작성된 정확한 응답 매치에 기초하여 전사를 클러스터로 그룹화하는 것과, 그룹에 대한 타겟 전사로서 전사를 할당하는 것을 포함한다. 이 경우의 변형에서, 이 방법은 남아 있는 그룹화되지 않은 응답을 거의 동일한 응답을 가진 클러스터에 그룹핑하는 것을 더 포함한다. 그룹화 작업은 복수 회 반복될 수 있다. 하나의 변형에서, 이 방법은 클러스터 중심에서 특정 임계값보다 더 멀리 떨어진 전사를 제거하는 것과, 특정 임계값보다 작은 클러스터를 분해하는 것과, 이전 단계에서 가장 가까운 클러스터에 개별 전사를 할당하는 것을 포함한다. 또 다른 변형에서 이 방법은 각 클러스터 내에 특정 임계값보다 더 큰 빈도를 가진 전사를 타겟 전사로 할당하고 클러스터의 나머지 전사를 소스 전사로 할당함으로써 페어를 생성하는 것과, 타겟 전사에서 모든 개체 태그를 사용할 수 없는 페어를 삭제하는 것과, 의미론적 거리가 임계값보다 큰 거리를 가진 페어를 삭제하는 단계를 포함한다. 또 다른 변형에서, 이 방법은 타겟 전사의 발화 시퀀스의 일부를 결정하는 것을 포함하되, 타겟 전사로서 전사를 할당하는 것은 성공적으로 해석된 전사의 품사와 일치하는 품사 시퀀스 매칭에 조건부이다. 다른 측면에서, 전사 재작성 방법은 소스 전사를 수신하는 단계와, 그것의 임베딩 벡터를 계산하는 단계와, 그것의 임베딩 벡터를 그룹에 매핑하는 단계와, 그 전사를 그룹의 타겟 전사로서 재작성하는 단계를 포함한다. 이 측면은 뉴럴 기계 번역 모델로부터 모델 예측 점수를 계산하고, 소스 전사와 생성된 전사 사이의 코사인 거리로서 유사성 점수를 계산하는 하는 것을 포함할 수 있으며, 여기서 매핑은 모델 예측 점수의 가중 평균과 임계값 이상의 유사성 점수에 대해 조건부이다.
요약 및 이점의 예
본 명세서에서 기술된 특정 예시는, 처리 및 응답을 쉽게 하기 위해 입력 질의를 필터링하여 디지털 어시스턴트의 동작을 개선하도록 구성되는 머신 러닝 시스템을 위한 훈련 집합을 구축하는 방법을 제시한다. 특정 예시에서 훈련 집합은 입력 (소스) 질의 및 희망하는 출력 (타겟) 질의를 나타내는 전사 페어를 기초로 하여 생성된다. 이는 종래 기계 번역의 일부로서 시퀀스-투-시퀀스 매핑에 사용되는 것과 같은 신경망 아키텍처를 질의 전처리기(가령, 제안된 훈련 집합을 사용한 추가 훈련을 통한 미세 훈련)로 조정할 수 있다. 기술된 방법은 처음에는 비지도(unsupervised) 데이터(예를 들어, 예측할 수 없는 입력의 변동을 관리하는 방법)의 문제를 머신 러닝 시스템을 훈련하여 해결될 수 있는 지도 학습 문제로 변환한다. 그러면 훈련된 머신 러닝 시스템은 덜 빈번한 입력 형식(노이즈가 있는 음성 질의 또는 서투르게 적힌 텍스트)을, “이상적인”, 표준화된 또는 기준 형식으로 고려될 수 있는 더 빈번한 형식에 매핑하는 질의 처리 파이프라인에서 추가 전처리 모듈로서 사용하는데 적합하다. 따라서, 본 명세서에서 기술된 훈련된 머신 러닝 시스템은 불규칙한 텍스트 질의를 학습된 기준 질의 패턴으로 변환할 수 있다. 매핑이 훈련된 신경망 아키텍처를 사용하여 수행되므로, 매핑이 언제나 훈련 데이터와 유사하지는 않을 수 있고, 가령, 훈련 목표 예가 항상 생성되지 않을 수 있지만, 생성된 출력 시퀀스는 훈련 타겟 예와 유사할 것이며, 머신 러닝 아키텍처는 본 적 없는 데이터도 강인하게 다룰 수 있을 것이다.
본 예시에서는 유효한 질의 및 유효하지 않은 질의 페어가 있는 훈련 데이터를 일반적으로 사용할 수 없거나 수집하기 성가신 것으로 추정한다. 본 예시는 그러한 질의의 훈련 집합을 구축하는 방법을 제공한다. 이 방법은 고품질 매핑으로 훈련 세트를 구축하여 고품질 전처리기가 훈련될 수 있도록 한다. 그러면 이 머신 러닝 시스템은 유효하지 않은 질의와 유효한 질의 사이에서 매핑 패턴을 선택하고, 합리적인 변환을 제공할 수 있다.
본 명세서에서 기술된 특정 예는 비교 예시에 비해 개선점을 제공한다. 한 경우에, 질의 텍스트는 일치하는 텍스트 응답 매치에 기초하여 그룹화될 수 있다. 그러나, 이 비교 접근법은 텍스트 응답의 품질 및 (가령, 기술된 태그 유형으로 값을 대체하여) 수행된 모든 개체명 인식에 크게 영향을 받는다. 겉보기에는 동일한 작성된 응답 간의 사소한 차이가 있더라도 유사한 질의를 같이 그룹화하여 훈련 데이터를 형성할 수 없기 때문에 유효한 페어/유효하지 않은 페어가 많이 누락된다. 다른 비교 예시에서, 질의 페어(가령, n개 질의에 대한 n2 페어) 간 의미론적 거리가 비교될 수 있고, 그 후 의미론적 거리 임계값에 기초하여 페어가 필터링될 수 있다(가령, 유사도 점수가 사전 정의된 임계값을 넘는 페어만 유지될 수 있다). 이 경우에, 데이터집합 내 가장 빈번한 페어 하나가 타겟으로 선택될 수 있고, 페어의 나머지는 소스로 설정될 수 있다. 여기, 첫 번째 비교 경우와 유사하게, 페어링은 사용되는 의미론적 거리 척도에 크게 의존하고, 대규모 데이터 집합의 경우 이 접근법은 실용적이지 않다(가령, 백만 개의 데이터 샘플로 인해 1012개의 페어를 평가하게 된다). 이 접근법은 또한 타겟 데이터 샘플에 대해 많은 양의 변동이 있는 데이터집합으로 이어질 수 있으므로, 강인한 머신 러닝 시스템을 성공적으로 훈련하기 어렵다.
특정 예는 본 명세서에 기술되었고, 상이한 예시로부터 서로 다른 구성 요소의 다른 조합이 가능할 수 있다는 것에 주목한다. 예시를 더 잘 설명하기 위해 현저한 특징이 제시되지만, 기술된 바와 같은 이들 예시의 기능적 측면을 수정하지 않고, 특정한 특징이 더해지고, 수정되고/되거나 생략될 수 있다는 것이 명백하다.
다양한 예시는 인간 및 기계 각각의 또는 그들의 조합의 행동을 사용하는 방법이다. 방법예는 대부분의 구성 단계가 발생하는 모든 곳에서 완전하다. 일부 예는 본 명세서에서 기술된 방법에 대한 명령어를 저장하도록 배열된 하나 이상의 비일시적 컴퓨터 판독 가능 매체이다. 필요한 코드를 포함한 비일시적 컴퓨터 판독 매체를 보유한 머신은 모두 예시를 구현할 수 있다. 일부 예시는 반도체 칩과 같은 물리적 장치, 그러한 장치의 논리적 또는 기능적 동작에 대한 하드웨어 기술 언어 표현(hardware description language representation) 및 그러한 하드웨어 기술 언어 표현을 저장하도록 배열된 하나 이상의 비일시적 컴퓨터 판독 가능 매체로서 구현될 수 있다. 본 명세서에서 법칙, 측면 및 실시예를 설명하는 기술은 그것의 구조적 및 기능적 등가물 모두를 포함한다.
당업자는 많은 가능한 수정 및 변형을 인식할 것이다. 수정 및 변형은 개시된 특징의 모든 관련된 조합을 포함한다. 본 명세서에서 법칙, 측면 및 실시예를 설명하는 기술은 그것의 구조적 및 기능적 등가물 모두를 포함한다. 그러므로, 개시 내용의 범위는 본 명세서에서 기술되고 도시된 예에 의해 제한된다고 의도되지 않는다. 대신, 본 발명의 범위 및 사상은 첨부된 청구범위에 의해 구체화된다.

Claims (25)

  1. 디지털 어시스턴트에 사용하기 위한 머신 러닝 시스템을 훈련하기 위한 방법으로서,
    질의 데이터 샘플을 포함하는 훈련 데이터를 획득하는 단계와,
    상기 질의 데이터 샘플의 벡터 표현을 획득하는 단계와,
    상기 벡터 표현을 클러스터링(clustering) 하는 단계와,
    클러스터링된 상기 벡터 표현에 기초하여 기준 질의(canonical query) 및 대응하는 질의 그룹을 결정하는 단계와,
    선택된 기준 질의와 각 선택된 기준 질의에 대응하는 질의 그룹으로부터의 선택들에 기초하여 페어링된 데이터 샘플을 생성하는 단계와,
    상기 페어링된 데이터 샘플을 사용하여 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처(encoder-decoder sequence-to-sequence neural network architecture)를 훈련시키는 단계를 포함하되,
    상기 페어링된 데이터 샘플 내 상기 질의 그룹으로부터의 상기 선택들은 입력 시퀀스 데이터로 공급되며, 대응하는 상기 기준 질의는 출력 시퀀스 데이터로 공급되고,
    훈련된 상기 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 초기 질의를 나타내는 데이터를 수정된 질의를 나타내는 데이터에 매핑하도록 상기 디지털 어시스턴트에서 사용할 수 있으며, 상기 수정된 질의를 나타내는 상기 데이터는 상기 초기 질의에 대한 응답을 제공하도록 또한 처리되는,
    방법.
  2. 제 1항에 있어서,
    훈련 데이터를 획득하는 단계는 질의 및 응답을 나타내는 텍스트 데이터의 페어(pair)를 얻는 단계를 포함하며,
    상기 질의 데이터 샘플의 벡터 표현을 획득하는 단계는 상기 텍스트 데이터의 페어를 해당 벡터 표현으로 변환하는 단계를 포함하는,
    방법.
  3. 제 2항에 있어서,
    상기 텍스트 데이터에 대해 개체명 인식(named entity recognition)을 수행하는 단계와,
    태그된 개체명에 대한 상기 텍스트 데이터를 개체명 유형 태그(named entity type tag)로 대체하는 단계를 포함하는,
    방법.
  4. 제 2항 또는 제 3항에 있어서, 텍스트 데이터의 제 1 부분은 음성 질의(voice query)를 위한 오디오 데이터에서 수행되는 음성 인식 처리(speech-to-text processing)의 출력를 나타내고,
    텍스트 데이터의 제 2 부분은 상기 음성 질의에 대한 상기 응답을 제공하는 데 사용하는 데이터를 포함하되,
    훈련된 상기 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 초기 음성 질의를 나타내는 데이터를 수정된 음성 질의를 나타내는 데이터로 매핑하도록 상기 디지털 어시스턴트에서 사용 가능한,
    방법.
  5. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    주어진 벡터 표현은 적어도 응답 벡터 표현을 포함하고,
    상기 응답 벡터 표현은 질의에 대한 상기 응답을 나타내는 데이터의 벡터 표현이며, 상기 응답 벡터 표현은 대응하는 질의를 나타내는 데이터와 페어를 이루며,
    상기 벡터 표현을 클러스터링하는 단계는,
    벡터 공간 내의 상기 응답 벡터 표현 사이의 거리에 기초해 상기 응답 벡터 표현을 클러스터링하는 단계를 포함하고,
    주어진 클러스터에 대한 기준 질의는 상기 주어진 클러스터 내의 응답 벡터 표현과 페어를 이룬 상기 질의 데이터의 빈도에 기초하여 상기 클러스터링된 벡터 표현 내에 선택되는,
    방법.
  6. 제 5항에 있어서,
    상기 벡터 표현을 클러스터링하는 단계는
    별개의 클러스터들을 반복적으로 결합하기 위해 계층적(hierarchical) 클러스터링 방법을 적용하는 단계를 포함하는,
    방법.
  7. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    벡터 표현을 획득하는 단계는,
    적어도 상기 질의에 대한 상기 응답의 텍스트 표현을 획득하는 단계와,
    상기 텍스트 표현을 위한 임베딩(embedding) 벡터를 생성하는 단계와,
    상기 벡터 표현을 출력하기 위해 상기 임베딩 벡터를 저차원 벡터 공간에 투영하는 단계를 포함하는,
    방법.
  8. 제 7항에 있어서,
    상기 텍스트 표현을 위한 임베딩 벡터를 생성하는 단계는,
    상기 텍스트 표현을 토큰화하는 단계와,
    상기 임베딩 벡터를 생성하기 위해 상기 토큰화된 텍스트 표현에 트랜스포머 신경망 아키텍처를 적용하는 단계를 포함하는,
    방법.
  9. 제 7항에 있어서,
    상기 임베딩 벡터를 저차원 공간에 투영하는 단계는,
    주요 구성요소(principal component)의 서브집합을 선택하는 단계를 포함하되,
    상기 주요 구성요소는 질의 데이터 샘플의 주요 구성요소 분석(principal component analysis)에 따라 결정되는,
    방법.
  10. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 벡터 표현을 클러스터링 하는 단계는
    질의에 대한 응답의 벡터 표현에 기초해 제 1 클러스터링 단계를 수행하는 단계와,
    상기 응답에 선행하는 상기 질의의 벡터 표현에 기초해 제 2 클러스터링 단계를 수행하는 단계를 포함하는,
    방법.
  11. 제 1항에 있어서,
    상기 페어링된 데이터 샘플을 생성하기 이전에 상기 클러스터링된 벡터 표현을 필터링하는 단계를 포함하는,
    방법.
  12. 제 11항에 있어서, 주어진 클러스터에 대해, 상기 필터링은,
    상기 클러스터링된 벡터 표현에서 상기 주어진 클러스터에 대한 중심(centroid)을 결정하는 단계와,
    상기 중심으로부터 사전 정의된 거리보다 더 큰 상기 주어진 클러스터에 대한 질의의 벡터 표현을 할당 해제하는 단계를 포함하는,
    방법.
  13. 제 11항에 있어서,
    주어진 클러스터에 대해, 상기 필터링은,
    상기 주어진 클러스터의 크기를 결정하는 단계와
    사전 정의된 임계값 미만의 상기 크기에 응답하여 상기 주어진 클러스터에 대한 질의의 벡터 표현을 할당 해제하는 단계를 포함하는,
    방법.
  14. 제 12항 또는 제 13항에 있어서,
    상기 필터링은,
    할당 해제된 질의의 벡터 표현을 가장 가까운 클러스터로 재할당하는 단계를 더 포함하는,
    방법.
  15. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    페어링된 데이터 샘플을 생성하는 단계는
    생성된 페어링된 데이터 샘플을 필터링하는 단계를 포함하는,
    방법.
  16. 제 15항에 있어서,
    상기 필터링하는 단계는,
    기준 질의의 개체명 태그가 상기 질의 그룹으로부터의 상기 대응하는 선택 내의 상기 개체명 태그와 일치하지 않는, 상기 기준 질의를 갖는 페어링된 데이터 샘플을 제거하는 단계와,
    상기 기준 질의와 상기 질의 그룹으로부터의 상기 대응하는 선택에 관한 의미론적 거리 척도(semantic distance metrics)의 비교에 기초하여 페어링된 데이터를 제거하는 단계 중 하나 이상을 포함하는,
    방법.
  17. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 방법은,
    하나 이상의 클러스터링 거리 임계값;
    하나 이상의 클러스터 크기 임계값; 및
    기준 질의의 상기 선택을 위한 하나 이상의 빈도 임계값
    중 하나 이상의 척도(metric)를 최적화하는 단계를 더 포함하는,
    방법.
  18. 디지털 어시스턴트에 대한 질의 처리 방법에 있어서,
    질의를 나타내는 초기 데이터를 수신하는 단계와,
    상기 질의를 나타내는 상기 초기 데이터로부터 입력 시퀀스 데이터를 생성하는 단계와,
    인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처를 사용하여 상기 입력 시퀀스 데이터를 상기 질의에 대한 기준 데이터 표현을 나타내는 출력 시퀀스 데이터에 매핑하는 단계와,
    상기 질의에 대한 응답을 결정하기 위해 상기 기준 데이터 표현을 처리하는 단계와,
    상기 질의에 대한 상기 응답을 제공하는 단계를 포함하는,
    방법.
  19. 제 18항에 있어서,
    상기 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 기준 질의 및 대응하는 초기 질의를 나타내는 페어링된 데이터 샘플로 훈련되며,
    상기 페어링된 데이터 샘플은 질의를 나타내는 데이터와 상기 질의에 대한 응답을 나타내는 데이터를 포함하는 질의 데이터 샘플의 벡터 표현을 클러스터링하여 생성되는,
    방법.
  20. 제 18항 또는 제 19항에 있어서,
    상기 질의에 대한 응답을 결정하기 위해 상기 기준 데이터 표현을 처리하는 단계는,
    상기 출력 시퀀스 데이터에 제공된 출력 시퀀스의 상위 K개의 집합 중 하나를 선택하는 단계와,
    언어 모델을 사용하여 상기 출력 시퀀스 데이터에서 파생된 데이터를 적어도 파싱하고 상기 언어 모델이 적용된 점수를 기초로 출력 시퀀스를 선택하는 단계와,
    상기 질의를 나타내는 상기 초기 데이터와 상기 출력 시퀀스 데이터에서 파생된 데이터를 적어도 개체명 인식기로 파싱하고 상기 파싱된 데이터 내의 개체명 사이의 비교에 기초하여 출력 시퀀스를 선택하는 단계 중 하나 이상을 포함하는,
    방법.
  21. 디지털 어시스턴트를 위한 머신 러닝 시스템에 있어서,
    질의를 나타내는 초기 데이터를 수신하고 상기 초기 데이터로부터 파생된 입력 시퀀스 데이터를 출력하는 질의 인터페이스와,
    상기 입력 시퀀스 데이터를 상기 질의에 대한 기준 데이터 표현을 나타내는 출력 시퀀스 데이터로 매핑하는 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처와,
    상기 질의에 대한 응답을 제공하는 데 사용하기 위한 상기 출력 시퀀스 데이터를 제공하는 출력 인터페이스를 포함하는,
    머신 러닝 시스템.
  22. 제 21항에 있어서,
    상기 질의 인터페이스는 음성 인식(speech-to-text) 인터페이스를 포함하는,
    머신 러닝 시스템.
  23. 제 21항 또는 제 22항에 있어서,
    상기 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처에서 복수의 출력 시퀀스를 수신하고 적어도 하나의 자연어 처리 척도에 기초하여 상기 복수의 출력 시퀀스 중 하나를 선택하기 위한 출력 시퀀스 필터를 포함하는,
    머신 러닝 시스템.
  24. 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 명령어가 적어도 하나의 프로세서에 의해 실행되는 경우, 상기 적어도 하나의 프로세서가,
    질의 데이터 샘플을 포함하는 훈련 데이터를 획득하고,
    상기 질의 데이터 샘플의 벡터 표현을 획득하며,
    상기 벡터 표현을 클러스터링하고,
    클러스터링된 상기 벡터 표현에 기초하여 기준 질의 및 대응하는 질의 그룹을 결정하며,
    선택된 상기 기준 질의와 각 선택된 기준 질의에 대응하는 질의 그룹으로부터의 선택들에 기초하여 페어링된 데이터 샘플을 생성하고,
    상기 페어링된 데이터 샘플을 사용하여 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처를 훈련시키게 하되,
    상기 페어링된 데이터 샘플 내 상기 질의 그룹으로부터의 상기 선택들은 입력 시퀀스 데이터로서 공급되고, 상기 대응하는 기준 질의는 출력 시퀀스 데이터로서 공급되며,
    훈련된 상기 인코더-디코더 시퀀스-투-시퀀스 신경망 아키텍처는 질의 인터페이스 내에서 초기 질의를 나타내는 데이터를 수정된 질의를 나타내는 데이터로 매핑하기 위해 사용할 수 있고, 상기 수정된 질의를 나타내는 상기 데이터는 상기 초기 질의에 대한 응답을 제공하기 위해 또한 처리되는,
    비일시적 컴퓨터 판독 가능 저장 매체.
  25. 제 24항에 있어서,
    상기 질의 데이터 샘플은 음성 질의와 연관되는,
    비일시적 컴퓨터 판독 가능 저장 매체.
KR1020210080973A 2020-06-23 2021-06-22 디지털 어시스턴트를 위한 머신 러닝 시스템 KR20210158344A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202062705360P 2020-06-23 2020-06-23
US62/705,360 2020-06-23

Publications (1)

Publication Number Publication Date
KR20210158344A true KR20210158344A (ko) 2021-12-30

Family

ID=76553599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210080973A KR20210158344A (ko) 2020-06-23 2021-06-22 디지털 어시스턴트를 위한 머신 러닝 시스템

Country Status (5)

Country Link
US (1) US20210397610A1 (ko)
EP (1) EP3992859A1 (ko)
JP (1) JP2022003520A (ko)
KR (1) KR20210158344A (ko)
CN (1) CN113836277A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102666388B1 (ko) * 2022-12-29 2024-05-14 광운대학교 산학협력단 유망기술 발전가능성 예측정보 생성 장치 및 방법

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3671490A1 (en) * 2018-12-20 2020-06-24 Technische Universität Wien A method for validating a hardware system
US11586826B2 (en) 2020-10-01 2023-02-21 Crowdsmart, Inc. Managing and measuring semantic coverage in knowledge discovery processes
US11481210B2 (en) 2020-12-29 2022-10-25 X Development Llc Conditioning autoregressive language model to improve code migration
US11461081B2 (en) 2021-01-27 2022-10-04 X Development Llc Adapting existing source code snippets to new contexts
US11880890B2 (en) * 2021-02-08 2024-01-23 Mastercard International Incorporated Detecting money laundering activities using drift in a trained Siamese neural network
CA3209050A1 (en) * 2021-02-19 2022-08-25 Suryatapa ROY Methods and systems for controlled modeling and optimization of a natural language database interface
US20220318283A1 (en) * 2021-03-31 2022-10-06 Rovi Guides, Inc. Query correction based on reattempts learning
US11615120B2 (en) * 2021-06-03 2023-03-28 Sap Se Numeric embeddings for entity-matching
CN118215913A (zh) * 2021-11-04 2024-06-18 三星电子株式会社 用于提供与查询语句相关的搜索结果的电子设备和方法
US11442775B1 (en) 2021-12-03 2022-09-13 FriendliAI Inc. Dynamic batching for inference system for transformer-based generation tasks
US11514370B1 (en) * 2021-12-03 2022-11-29 FriendliAI Inc. Selective batching for inference system for transformer-based generation tasks
US11948378B2 (en) * 2021-12-23 2024-04-02 Unitedhealth Group Incorporated Machine learning techniques for determining predicted similarity scores for input sequences
US11977527B2 (en) * 2022-01-03 2024-05-07 Capital One Services, Llc Systems and methods for using machine learning to manage data
CN114492476A (zh) * 2022-01-30 2022-05-13 天津大学 一种无监督神经机器翻译的语码转换词汇交叠增强方法
US20230315993A1 (en) * 2022-03-17 2023-10-05 Smarsh, Inc. Systems and processes for natural language processing
WO2023177401A1 (en) * 2022-03-17 2023-09-21 Smarsh, Inc. Systems and processes for natural language processing
US11909611B2 (en) 2022-07-20 2024-02-20 Google Llc Standardizing analysis metrics across multiple devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110574021B (zh) * 2017-04-29 2023-10-13 谷歌有限责任公司 使用经过训练的生成模型生成查询变体
EP3486842A1 (en) * 2017-11-17 2019-05-22 Digital Genius Limited Template generation for a conversational agent
US10503834B2 (en) * 2017-11-17 2019-12-10 Digital Genius Limited Template generation for a conversational agent
US10515155B2 (en) * 2018-02-09 2019-12-24 Digital Genius Limited Conversational agent
US11423068B2 (en) * 2018-11-27 2022-08-23 Google Llc Canonicalizing search queries to natural language questions
US10997495B2 (en) * 2019-08-06 2021-05-04 Capital One Services, Llc Systems and methods for classifying data sets using corresponding neural networks
GB201916307D0 (en) * 2019-11-08 2019-12-25 Polyal Ltd A dialogue system, a method of obtaining a response from a dialogue system, and a method of training a dialogue system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102666388B1 (ko) * 2022-12-29 2024-05-14 광운대학교 산학협력단 유망기술 발전가능성 예측정보 생성 장치 및 방법

Also Published As

Publication number Publication date
EP3992859A1 (en) 2022-05-04
US20210397610A1 (en) 2021-12-23
JP2022003520A (ja) 2022-01-11
CN113836277A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
KR20210158344A (ko) 디지털 어시스턴트를 위한 머신 러닝 시스템
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
US10346540B2 (en) Self-learning statistical natural language processing for automatic production of virtual personal assistants
US11055355B1 (en) Query paraphrasing
US20210142794A1 (en) Speech processing dialog management
Haridas et al. A critical review and analysis on techniques of speech recognition: The road ahead
US11016968B1 (en) Mutation architecture for contextual data aggregator
Kheddar et al. Deep transfer learning for automatic speech recognition: Towards better generalization
US11580145B1 (en) Query rephrasing using encoder neural network and decoder neural network
CN114830148A (zh) 可控制有基准的文本生成
WO2022252636A1 (zh) 基于人工智能的回答生成方法、装置、设备及存储介质
US11741950B2 (en) Method and apparatus with speech processing
Pimentel et al. Phonotactic complexity and its trade-offs
KR101677859B1 (ko) 지식 베이스를 이용하는 시스템 응답 생성 방법 및 이를 수행하는 장치
US10872601B1 (en) Natural language processing
CN110807333A (zh) 一种语义理解模型的语义处理方法、装置及存储介质
GB2574098A (en) Interactive systems and methods
US11170765B2 (en) Contextual multi-channel speech to text
Basak et al. Challenges and Limitations in Speech Recognition Technology: A Critical Review of Speech Signal Processing Algorithms, Tools and Systems.
Thomson et al. N-best error simulation for training spoken dialogue systems
KR20210051523A (ko) 도메인 자동 분류 대화 시스템
Ons et al. Fast vocabulary acquisition in an NMF-based self-learning vocal user interface
US11626107B1 (en) Natural language processing
CN113609873A (zh) 翻译模型训练方法、装置及介质
KR20230120790A (ko) 가변적 언어모델을 이용한 음성인식 헬스케어 서비스

Legal Events

Date Code Title Description
A201 Request for examination