KR20220025026A - 자연어 이해(nlu) 프레임워크를 이용하여 의미 검색을 수행하기 위한 시스템 및 방법 - Google Patents

자연어 이해(nlu) 프레임워크를 이용하여 의미 검색을 수행하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220025026A
KR20220025026A KR1020227002950A KR20227002950A KR20220025026A KR 20220025026 A KR20220025026 A KR 20220025026A KR 1020227002950 A KR1020227002950 A KR 1020227002950A KR 20227002950 A KR20227002950 A KR 20227002950A KR 20220025026 A KR20220025026 A KR 20220025026A
Authority
KR
South Korea
Prior art keywords
semantic
search
expressions
utterance
representations
Prior art date
Application number
KR1020227002950A
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 KR20220025026A publication Critical patent/KR20220025026A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/686Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title or artist information, time, location or usage information, user ratings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • 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/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Acoustics & Sound (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

본 개시내용은 사용자 발화들로부터 의미를 추출하고 검색 기반 자연어 이해(NLU) 프레임워크를 이용하여 적절히 응답할 수 있는 에이전트 자동화 프레임워크에 관한 것이다. NLU 프레임워크는 주어진 자연어 발화에 대한 복수의 대안적인 의미 표현들을 검출할 수 있는 의미 추출 서브시스템을 포함한다. 또한, NLU 프레임워크는 신축적인 신뢰도 임계치들(예를 들어, 신축적인 빔-폭 의미 검색들), 강제 다이버시티, 및 인지 구축 문법(CCG) 기반 예측 스코어링 함수들을 가능하게 하여 효율적이고 효과적인 의미 검색을 제공하는 의미 검색 서브시스템을 포함한다. 이와 같이, 개시된 의미 추출 서브시스템 및 의미 검색 서브시스템은 NLU 프레임워크의 성능, 도메인 특정성, 추론 품질, 및/또는 효율을 개선한다.

Description

자연어 이해(NLU) 프레임워크를 이용하여 의미 검색을 수행하기 위한 시스템 및 방법
상호 참조들
본 출원은 "SYSTEM AND METHOD FOR PERFORMING A MEANING SEARCH USING A NATURAL LANGUAGE UNDERSTANDING (NLU) FRAMEWORK"라는 명칭으로 2019년 7월 2일에 출원된 미국 가출원 제62/869,864호의 우선권 및 그 이익을 주장하며, 이 가출원은 모든 목적들을 위해 그 전체가 본 명세서에 참조로 포함된다. 본 출원은 또한 발명의 명칭이 "PREDICTIVE SIMILARITY SCORING SUBSYSTEM IN A NATURAL LANGUAGE UNDERSTANDING (NLU) FRAMEWORK"인 미국 가출원 제62/869,817호; 발명의 명칭이 "DERIVING MULTIPLE MEANING REPRESENTATIONS FOR AN UTTERANCE IN A NATURAL LANGUAGE UNDERSTANDING (NLU) FRAMEWORK"인 미국 가출원 제62/869,826호; 및 발명의 명칭이 "PINNING ARTIFACTS FOR EXPANSION OF SEARCH KEYS AND SEARCH SPACES IN A NATURAL LANGUAGE UNDERSTANDING (NLU) FRAMEWORK"인 미국 가출원 제62/869,811호와 관련되며, 이들 가출원들은 각각 2019년 7월 2일에 출원되었고 모든 목적들을 위해 그 전체가 본 명세서에 참조로 포함된다.
본 개시내용은 일반적으로 자연어 이해(NLU) 및 인공 지능(AI)의 분야들에 관한 것으로, 보다 구체적으로는, NLU에 대한 하이브리드 학습 시스템에 관한 것이다.
이 섹션은 아래에서 설명되고/되거나 청구되는 본 개시내용의 다양한 양태들과 관련될 수 있는 기술의 다양한 양태들에 대해 독자에게 소개하기 위해 의도된다. 이 논의는 본 개시내용의 다양한 양태들의 더 나은 이해를 용이하게 하기 위해 배경 정보를 독자에게 제공하는 데 도움이 되는 것으로 믿어진다. 따라서, 이러한 진술들은 이러한 관점에서 읽혀져야 하고 종래 기술에 대한 인정들이 아님을 이해해야 한다.
클라우드 컴퓨팅은 일반적으로 인터넷을 통해 액세스되는 컴퓨팅 자원들의 공유에 관한 것이다. 특히, 클라우드 컴퓨팅 인프라스트럭처는 개인들 및/또는 기업들과 같은 사용자들이 서버들, 저장 디바이스들, 네트워크들, 애플리케이션들 및/또는 다른 컴퓨팅 기반 서비스들과 같은 컴퓨팅 자원들의 공유 풀에 액세스할 수 있도록 한다. 그렇게 함으로써, 사용자들은 원격 위치들에 위치되는 맞춤형 컴퓨팅 자원들에 액세스할 수 있으며, 이들 자원들은 다양한 컴퓨팅 기능들(예를 들어, 대량의 컴퓨팅 데이터의 저장 및/또는 처리)을 수행하는데 이용될 수 있다. 기업 및 다른 조직 사용자들의 경우, 클라우드 컴퓨팅은 고가의 네트워크 장비를 구입하거나 또는 사설 네트워크 인프라스트럭처를 구축하는데 많은 양의 시간을 투자하는 것과 같은 많은 초기 비용들을 들이지 않고도 클라우드 컴퓨팅 자원들에 액세스할 수 있는 유연성을 제공한다. 대신, 사용자들은 클라우드 컴퓨팅 자원들을 활용함으로써, 그 자원들을 그 기업의 핵심 기능들에 집중할 수 있도록 전용시킬 수 있다.
이러한 클라우드 컴퓨팅 서비스는 클라이언트 인스턴스의 사용자로부터의 자연어 요청들에 기반하여 클라이언트 인스턴스에서의 문제들에 자동으로 응답하도록 설계되는 채팅 에이전트와 같은 가상 에이전트를 호스팅할 수 있다. 예를 들어, 사용자는 패스워드 문제에 대한 지원을 위해 가상 에이전트에 요청을 제공할 수 있으며, 가상 에이전트는 자연어 처리(Natural Language Processing)(NLP) 또는 자연어 이해(Natural Language Understanding)(NLU) 시스템의 일부이다. NLP는 자연어 입력 처리의 일부 형태를 포함하는 컴퓨터 과학 및 AI의 일반적인 영역이다. NLP에 의해 다루어지는 영역들의 예들은 언어 번역, 음성 생성, 파스(parse) 트리 추출, 품사(part-of-speech) 식별 등을 포함한다. NLU는 구체적으로 사용자 발화(user utterance) 이해에 중점을 둔 NLP의 하위 영역이다. NLU에 의해 다루어지는 영역들의 예들은 질문-답변(예를 들어, 독해 질문들), 기사 요약 등을 포함한다. 예를 들어, NLU는 다운스트림 가상 에이전트에 의한 소비를 위해 알려진 심볼들의 세트로 인간 언어(예를 들어, 구두(spoken) 또는 서면(written))를 줄이기 위한 알고리즘들을 이용할 수 있다. NLP는 일반적으로 추가 분석을 위해 프리 텍스트(free text)를 해석하는데 이용된다. NLP에 대한 현재 접근법들은 통상적으로 프로그램의 이해를 향상시키기 위해 데이터의 패턴들을 검사하고 이를 이용하는 AI 유형인 심층 학습(deep learning)에 기반한다.
특정 NLU 시스템들은 인지 구축 문법(cognitive constructive grammar)의 언어 원리들에 기반한다. 이러한 원리들 중 하나는 발화의 형상 또는 형태가 발화의 의미와 밀접하게 관련된다는 것이다. 이와 같이, NLU 시스템들이 NLU 시스템의 동작을 개선하기 위해 발화들을 이해하는 복수의 가능한 방식들을 추출하거나 결정할 수 있는 것이 중요하다는 것이 현재 인식되고 있다. 또한, 의도 추론(intent inference)은 더 관리가능한 검색 문제로 변환됨으로써 해결될 수 있는 어려운 문제를 제시한다는 것이 인식되고 있다.
특정 NLU 시스템들에서의 하나의 주요 문제는 검색 공간에서 의미 매치를 찾으려고 시도할 때의 정적 검색 범위이다. 예를 들어, NLU 시스템이 트리형 데이터 구조의 형태로 검색 공간의 의미 검색을 수행하고 있을 때, 시스템은 그 각각이 특정 검색 솔루션들 또는 의미 매치들을 나타내는 트리의 말단 포인트들 또는 리프들을 찾을 수 있다. NLU 시스템은 데이터 구조의 루트로부터 시작할 수 있고, 정의된 검색 기준들에 기반하여 어느 브랜치들을 따를지를 결정하기 위해 각각의 브랜치에서 고려할 수 있다. 선택된 브랜치들은 그 후 확장될 수 있고, 검색 기준들은 탐색을 위한 다음 브랜치들을 선택하기 위해 데이터 구조의 대응하는 하위 브랜치들에 적용될 수 있다. NLU 시스템이 데이터 구조의 리프들에 도달할 때까지 이러한 방식으로 의미 검색이 진행되고, 선택된 리프들 또는 의미 매치들은 결과 세트를 형성한다.
그러나, 이러한 의미 검색 동작에서, 검색 공간을 나타내는 데이터 구조는 매우 클 수 있다(예를 들어, 크기가 기가바이트 또는 테라바이트일 수 있다). 또한, 특정 경우들에서, 특정 검색 기준들은 자원 이용(예를 들어, 처리 시간, 메모리 공간)의 관점에서 적용하기에 비쌀 수 있다. 이러한 상황들에 대해, 모든 정의된 검색 기준들을 이용하여 데이터 구조의 모든 브랜치들을 탐색하는 것은 비실용적이거나 실현불가능하다. 이와 같이, NLU 시스템은 임의의 한 번에 고려될 수 있는 브랜치들의 수를 제한하는 고정된 또는 정적인 검색 폭을 적용할 수 있고, 결과적으로 데이터 구조의 하나 이상의 브랜치가 전지(prune)되거나 또는 고려로부터 제거된다. 그러나, 브랜치가 실제로 높은 스코어링, 및 잠재적으로 최상의 매칭, 리프들 또는 의미 매치들을 포함하더라도 검색 기준들이 적용될 때 브랜치가 낮은 스코어를 나타낼 수 있는 것이 가능하다. 이와 같이, 적극적이거나 비효과적인 전지는 이러한 브랜치가 고려로부터 제거되는 것을 초래할 수 있고, 따라서 높은 스코어링 솔루션이 의미 검색에 의해 찾아지는데 실패한다. 추가적으로, 브랜치들을 아래로 검색하는 것은 자체 충족되는 경향이 있고, 이는 검색들이 몇 개의 좁은 경로들을 따라 깊게 뒤짐으로써 보상을 받는 경향이 있다는 것을 의미한다. 그 결과, 의미 검색은 의미 검색을 바람직하지 않게 편향시키는 깊이-우선 트리 횡단이 되는 쪽으로 이동할 수 있다. 따라서, 의미 검색 동작 동안, 고려로부터 잠재적인 의미 매치들을 조기에 전지하는 것을 피하고, 심층-트리 검색 문제 및 연관된 편향을 해결하기 위해 개선된 의미 검색 기술이 요망된다고 인식되고 있다.
본 명세서에 개시된 특정 실시예들의 요약이 아래에 제시된다. 이러한 양태들은 단지 독자에게 이러한 특정 실시예들의 간단한 요약을 제공하기 위해 제시되고, 이러한 양태들은 본 개시내용의 범위를 제한하도록 의도되지 않는다는 점이 이해되어야 한다. 실제로, 본 개시내용은 아래에 제시되지 않을 수 있는 다양한 양태들을 포함할 수 있다.
본 실시예들은 가상 에이전트(예를 들어, 채팅 에이전트)에 의해 수신된 요청들과 같은 사용자 발화들로부터 의미를 추출하고, 이러한 사용자 발화들에 적절히 응답할 수 있는 에이전트 자동화 프레임워크에 관한 것이다. 이를 행하기 위해, 에이전트 자동화 프레임워크는 샘플 발화들과 연관되는 정의된 의도들 및 엔티티들을 갖는 의도-엔티티 모델 및 NLU 프레임워크를 포함한다. NLU 프레임워크는 이해 모델을 구성하기 위해 의도-엔티티 모델의 샘플 발화들에 대한 의미 표현들을 생성할 뿐만 아니라, 발화 의미 모델을 구성하기 위해 수신된 사용자 발화에 대한 의미 표현들을 생성하도록 설계되는 의미 추출 서브시스템을 포함한다. 또한, 개시된 NLU 프레임워크는 (검색 키라고도 지칭되는) 발화 의미 모델의 의미 표현들에 대한 매치들을 찾기 위해 (검색 공간이라고도 지칭되는) 이해 모델의 의미 표현들을 검색하도록 설계되는 의미 검색 서브시스템을 포함한다. 이와 같이, 본 실시예들은 일반적으로 NLU를 관리가능한 검색 문제로 변환함으로써 NLU에 의해 제기되는 어려운 문제를 해결한다.
위에 제시된 다른 NLU 시스템들의 단점들을 해결하기 위해, 중점 임계치(예를 들어, 빔 폭)가 의미 검색의 자원 소비에 대한 제한들 또는 한계들을 확립하는데 이용될 수 있다는 것이 현재 인식되고 있다. 상이한 검색 기준들이 상이한 자원 소비 또는 비용과 연관될 수 있기 때문에, 검색 기준들은 점진적 검색-기준 예측 함수들(prediction functions)로 조직화되어야 하고, 초기에 적용된 검색 기준들은 비교적 저렴하고 부정확하지만, 나중에 적용된 검색 기준들은 비교적 더 비싸고 더 정확하다는 것이 또한 현재 인식되고 있다. 추가적으로, 중점 임계치(예를 들어, 빔 폭)가 적용되는 검색-기준 예측 함수의 정확도의 레벨에 기반하여 동적으로 조정되는 것이 바람직하다는 것이 현재 인식되고 있다. 예를 들어, 중점 임계치는 적용된 검색-기준 예측 함수의 정확도가 비교적 낮을 때 더 낮을 수 있고(예를 들어, 동적으로 완화된 중점 임계치, 더 넓은 빔 폭), 적용된 검색-기준 예측 함수의 정확도가 비교적 더 높을 때 더 높을 수 있다(예를 들어, 동적으로 제한된 중점 임계치, 더 좁은 빔 폭). 이것은 낮은 초기 검색-기준 예측 함수 스코어를 갖는 브랜치가 고려 하에 남아서, 검색 동작의 자원 소비를 여전히 감소시키면서, 잠재적으로 양호한 의미 매치들의 조기 손실을 방지하는 것을 가능하게 한다. 또한, 심층-트리 검색 문제 및 연관된 편향이 강제적 다이버시티를 이용함으로써 완화될 수 있다는 것이 현재 인식되고, 이는 고려된 솔루션들이 서로 충분히 상이한 것을 보장한다. 또한, 개시된 동적 중점 임계치들, 점진적 검색-기준 예측 함수들, 및 강제적 다이버시티가 2개의 스테이지에서, 예컨대 이해 모델에서의 의도-엔티티 아티팩트들에 걸친 제1 검색 스테이지에서, 그리고 또한 추가 탐색을 행했던 제1 스테이지로부터의 각각의 의도-엔티티 아티팩트 내의 후속 제2 검색 스테이지에서 적용될 수 있다는 것이 이해될 수 있다.
또한, 비교를 위해, 발화 의미 모델에서의 사용자 발화의 복수의 의미 표현뿐만 아니라, 이해 모델에서의 샘플 발화들의 복수의 의미 표현을 가짐으로써, 의미 검색의 성능이 향상된다는 것을 현재 인식하고 있다. 또한, 특정의 대안적인 의미 표현들은 의미 검색 동안 매치들을 식별할 가능성을 향상시키지만, 의미 검색이 또한 분명히 잘못된 또는 실질적으로 중복적인 의미 표현들을 검색하는 추가적인 컴퓨팅 자원들을 소비할 수 있다는 것을 또한 현재 인식하고 있다. 따라서, 의미 검색을 향상시키기 위해 발화의 특정의 높은 가치의 대안적인 의미 표현들이 추구되어야 하지만, 컴퓨팅 자원 이용을 제한하고 NLU 프레임워크의 효율을 향상시키기 위해 다른 대안적인 의미 표현들이 폐기되어야 한다는 것을 인식하고 있다.
이러한 내용을 염두에 두고, 본 실시예들은 의도-엔티티 모델 내의 샘플 발화들 및 사용자로부터 수신된 발화들을 포함하는, 발화들에 대한 복수의 의미 표현들을 생성할 수 있는 의미 추출 서브시스템을 포함하는 NLU 프레임워크에 관한 것이다. 개시된 의미 추출 서브시스템은 향상된 유연성을 위한 플러그-인(plug-in)들로서 구현될 수 있는 다수의 상이한 구성요소들을 포함한다. 특정 실시예들에서, 이들은 품사(POS) 플러그-인, 정정 플러그-인, 변동 필터(VF) 플러그-인, 파서 플러그-인, 및 최종 스코어링 및 필터링(FSF) 플러그-인을 포함한다. 예를 들어, POS 플러그-인은 발화 및 POS 임계값을 수신하고, POS 임계값에 기반하여, 발화에 대한 잠재적인 POS 태깅들의 세트를, 이들 POS 태깅들에 대한 대응하는 신뢰도 스코어들과 함께 생성하는 기계 학습(ML) 기반 구성요소를 포함할 수 있다. 정정 플러그-인은 잠재적인 POS 태깅들의 세트를 수신하고 규칙 기반 또는 ML 기반 기술들을 적용하여 잠재적인 POS 태깅들의 세트 내의 엔트리들을 수정 또는 제거할 수 있다. VF 플러그-인은 잠재적인 POS 태깅들의 세트 및 변동 임계값을 수신할 수 있고, 변동 임계값에 기반하여 다른 엔트리들과 충분히 상이하지 않은 특정 엔트리들을 잠재적인 POS 태깅들의 세트로부터 제거할 수 있다. 파서 플러그-인은 (예를 들어, 정정 및/또는 변동성 필터링 후에) 잠재적인 POS 태깅들의 세트를 수신하고, 잠재적인 POS 태깅들의 세트 내의 각각의 엔트리에 대한 각각의 의미 표현(예를 들어, 의존성 파스 트리) 및 대응하는 신뢰도 스코어를 생성하는 ML 기반 또는 규칙 기반 구성요소를 포함할 수 있다. FSF 플러그-인은 의미 표현들의 세트, POS 태깅 및 파싱으로부터의 신뢰도 스코어들, 및 FSF 임계치를 수신하고, FSF 임계치에 기반하여 발화에 대한 의미 표현들의 최종 세트를 결정할 수 있다.
또한, 의미 검색의 성능은 의미 검색의 다양한 스테이지들을 수행할 때 신축적인(elastic)(예를 들어, 비-정적, 가변) 임계치들을 이용함으로써 향상될 수 있다는 것이 현재 인식되고 있다. 예를 들어, 의미 표현들이 사용자 발화에 대해 생성되었고 샘플 공간이 샘플 발화들의 의미 표현들로 채워졌다면, 제1 검색 동작은 신축적인 빔-폭 CCG 형태 기반 검색을 이용하여 컨텐더 매칭 의미 표현들(contender matching meaning representations)의 세트를 식별할 수 있다. 이 검색은 잠재적인 신뢰도 값들(예를 들어, 추론 레벨 신뢰도 값들, 모델 레벨 신뢰도 값들, 아티팩트 레벨 신뢰도 값들)의 집합의 최소 신뢰도 값인 집계 최소 신뢰도 임계치(aggregate minimum confidence threshold)(AMCT) 값에 기반하는 신축적인 신뢰도 임계치를 갖는다. AMCT 값은 CCG 형태 기반 검색에 대한 동적 임계치를 정의하는 완화된 AMCT 값을 산출하기 위해 완화 함수(relaxation function)에 의해 추가로 확장된다. 신축적인 신뢰도 임계치를 이용함으로써, CCG 형태 기반 검색은 잠재적인 매칭 의미 표현에 검색 동작의 초기 비교로부터 낮은 신뢰도 스코어를 수신함에도 존속할 기회를 제공하여, 그 의미 표현이 검색 동작의 후속 비교에서 그 신뢰도 스코어를 증가시킬 수 있고, 최종적인 아티팩트(예를 들어, 의도 및/또는 엔티티) 추출을 위해 매칭 의미 표현들의 최종 세트에 도달하기에 적격일 수 있다는 것이 현재 인식되고 있다.
유사하게, 의미 검색의 다른 양태들은 신축적인(예를 들어, 비-정적, 가변) 임계치들을 이용함으로써 향상될 수 있다. 예를 들어, 제2 검색 동작은 신축적인 빔-폭 CCG 형태 기반 검색에 의해 식별된 각각의 잠재적인 매칭 의미 표현을 신축적인 빔-폭 아티팩트내 검색(elastic beam-width intra-artifact search)을 이용하는 잠재적인 매칭 의미 표현과 공통 의도를 공유하는 검색 공간의 부분들과 비교할 수 있다. CCG 형태 기반 검색과 같이, 신축적인 빔-폭 아티팩트내 검색은 비교되는 특정 아티팩트(예를 들어, 의도 또는 엔티티)에 대한 이해 모델 내의 아티팩트 레벨 신뢰도 값인 모델 아티팩트 신뢰도 임계치(MACT) 값에 기반하는 신축적인 신뢰도 임계치를 갖는다. MACT 값은 제2 완화 함수에 의해 추가로 확장되어 아티팩트내 검색에 대한 동적 임계치를 정의하는 완화된 MACT 값을 산출한다. 신축적인 신뢰도 임계치를 이용함으로써, 아티팩트내 검색은 잠재적인 매칭 의미 표현에 검색 동작의 초기 비교로부터 낮은 신뢰도 스코어를 수신함에도 존속할 기회를 제공하여, 그 의미 표현이 검색 동작의 후속 비교에서 그 신뢰도 스코어를 증가시킬 수 있고, 최종적인 아티팩트(예를 들어, 의도 및/또는 엔티티) 추출을 위해 매칭 의미 표현들의 최종 세트에 도달하기에 적격일 수 있다는 것이 현재 인식되고 있다.
본 개시내용의 다양한 양태들은 다음의 상세한 설명을 읽고 도면들을 참조함으로써 더 잘 이해될 수 있다.
도 1은 본 기술의 실시예들이 동작할 수 있는 클라우드 컴퓨팅 시스템의 실시예의 블록도이다.
도 2는 본 기술의 실시예들이 동작할 수 있는 멀티-인스턴스 클라우드 아키텍처의 실시예의 블록도이다.
도 3은 본 기술의 양태들에 따른, 도 1 또는 도 2에 존재할 수 있는 컴퓨팅 시스템에서 이용되는 컴퓨팅 디바이스의 블록도이다.
도 4a는 본 기술의 양태들에 따른, 클라우드 컴퓨팅 시스템에 의해 호스팅되는 클라이언트 인스턴스의 일부인 NLU 프레임워크를 포함하는 에이전트 자동화 프레임워크의 실시예를 예시하는 개략도이다.
도 4b는 본 기술의 양태들에 따른, NLU 프레임워크의 부분들이 클라우드 컴퓨팅 시스템에 의해 호스팅되는 기업 인스턴스의 일부인 에이전트 자동화 프레임워크의 대안적인 실시예를 예시하는 개략도이다.
도 5는 본 기술의 양태들에 따른, NLU 프레임워크 및 거동 엔진 프레임워크를 포함하는 에이전트 자동화 프레임워크가 사용자 발화로부터 의도들 및/또는 엔티티들을 추출하고 사용자 발화에 응답하는 프로세스의 실시예를 예시하는 흐름도이다.
도 6은 본 기술의 양태들에 따른, 의미 추출 서브시스템 및 의미 검색 서브시스템을 포함하는 NLU 프레임워크의 실시예를 예시하는 블록도이며, 의미 추출 서브시스템은 수신된 사용자 발화로부터 의미 표현들을 생성하여 발화 의미 모델을 산출하고, 이해 모델의 샘플 발화들로부터 의미 표현들을 생성하여 이해 모델을 산출하고, 의미 검색 서브시스템은 발화 의미 모델의 의미 표현들을 이해 모델의 의미 표현들과 비교하여 수신된 사용자 발화로부터 아티팩트들(예를 들어, 의도들 및 엔티티들)을 추출한다.
도 7은 본 기술의 양태들에 따른, 발화에 대한 의미 표현을 생성하기 위해, NLU 프레임워크의 어휘 서브시스템, 구조 서브시스템, 및 운율 서브시스템 내의 규칙 기반 방법들 및 기계 학습(ML) 기반 방법들의 조합을 이용하는 의미 추출 서브시스템의 실시예를 예시하는 블록도이다.
도 8은 본 기술의 양태들에 따른, 발화에 대해 생성된 발화 트리의 예를 나타내는 도면이다.
도 9는 본 기술의 양태들에 따른, 의미 추출 서브시스템이 수신된 사용자 발화에 기반하여 발화 의미 모델(검색 키)을 생성하고, 하나 이상의 이해 모델에 기반하여 검색 공간을 생성하고, 의미 검색 서브시스템이 검색 키에 기반하여 검색 공간을 검색하여 사용자 발화의 아티팩트들을 추출하는 프로세스의 실시예를 예시하는 흐름도이다.
도 10은 본 기술의 양태들에 따른, 의미 추출 서브시스템이 복수의 이해 모델로부터 검색 공간을 생성하고 사용자 발화의 복수의 의미 표현을 의미 검색의 검색 키로서 생성하여 사용자 발화의 아티팩트들을 추출하는 실시예를 예시하는 정보 흐름도이다.
도 11은 본 기술의 양태들에 따른, 어휘 서브시스템 및 구조 서브시스템을 포함하는 NLU 프레임워크의 의미 추출 서브시스템이 발화의 재표현들 및 의미 표현들을 생성하는 프로세스의 실시예를 예시하는 흐름도이다.
도 12는 본 기술의 양태들에 따른, NLU 프레임워크의 구조 서브시스템이 발화에 대한 상이한 의미 표현들을 생성하는 프로세스의 실시예를 예시하는 흐름도이다.
도 13은 본 기술의 양태들에 따른, 임의의 적절한 수의 의미 표현들 간의 효율적인 비교들을 가능하게 하는 수학적 비교 함수 리스트들(mathematical comparison function lists)을 검색하기 위해 NLU 프레임워크의 의미 검색 서브시스템 내에서 구현될 수 있는 유사도 스코어링 서브시스템의 실시예를 예시하는 흐름도이다.
도 14는 본 기술의 양태들에 따른, 의미 검색 서브시스템이 신축적인 빔-폭 CCG 형태 기반 검색을 수행하는 프로세스의 실시예의 흐름도이다.
도 15는 본 기술의 양태들에 따른, 의미 검색 서브시스템이 발화 기반 의미 표현과 매칭되는 의미 표현들을 식별하기 위해 관심 있는 검색 부분 공간을 선택적으로 좁히기 위해 비교 함수 리스트를 적용하는 실시예를 예시하는 개략도이다.
도 16은 본 기술의 양태들에 따른, 신축적인 빔-폭 CCG 형태 기반 검색 동안 이용되는 완화된 집계 최소 신뢰도 임계치(AMCT)에 의해 제공되는 실시예의 유효 빔-폭을 예시하는 개략도이다.
도 17은 본 기술의 양태들에 따른, 의미 검색 서브시스템이 신축적인 빔-폭 아티팩트내 검색을 수행하는 프로세스의 실시예의 흐름도이다.
도 18은 본 기술의 양태들에 따른, 신축적인 빔-폭 아티팩트내 검색 동안 이용되는 완화 모델 아티팩트 신뢰도 임계치(MACT)에 의해 제공되는 실시예의 유효 빔-폭을 예시하는 개략도이다.
하나 이상의 특정 실시예가 아래에서 설명될 것이다. 이러한 실시예들의 간결한 설명을 제공하기 위한 노력으로, 실제 구현의 모든 특징들이 명세서에서 설명되지는 않는다. 임의의 엔지니어링 또는 설계 프로젝트에서와 같이 임의의 이러한 실제 구현을 개발할 때, 구현마다 달라질 수 있는 시스템-관련 및 비지니스-관련 제약들의 준수와 같은 개발자들의 특정 목표들을 달성하기 위해 수많은 구현-특정 결정들이 이루어져야 한다는 것이 이해되어야 한다. 또한, 이러한 개발 노력은 복잡하고 시간 소모적일 수 있지만, 그럼에도 불구하고 본 개시내용의 이점을 갖는 통상의 기술자를 위한 설계, 제작 및 제조의 일상적인 작업이 될 것이라는 점이 이해되어야 한다.
본 명세서에서 사용되는 바와 같이, 용어 "컴퓨팅 시스템" 또는 "컴퓨팅 디바이스"는 단일 컴퓨터, 가상 기계, 가상 컨테이너, 호스트, 서버, 랩톱, 및/또는 모바일 디바이스와 같은, 그러나 이에 제한되지 않는 전자 컴퓨팅 디바이스, 또는 컴퓨팅 시스템 상에서 또는 컴퓨팅 시스템에 의해 수행되는 것으로서 설명되는 기능을 수행하기 위해 함께 작동하는 복수의 전자 컴퓨팅 디바이스들을 지칭한다. 본 명세서에서 사용되는 바와 같이, 용어 "기계 판독가능한 매체"는 하나 이상의 명령어 또는 데이터 구조를 저장하는 단일 매체 또는 복수의 매체들(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 및/또는 연관된 캐시들 및 서버들)을 포함할 수 있다. 용어 "비일시적 기계 판독가능한 매체"는 또한 컴퓨팅 시스템에 의해 실행하기 위한 명령어들을 저장, 인코딩, 또는 운반할 수 있고 컴퓨팅 시스템으로 하여금 본 주제의 방법론들 중 임의의 하나 이상을 수행하게 하거나, 이러한 명령어들에 의해 이용되거나 이러한 명령어들과 연관되는 데이터 구조들을 저장, 인코딩, 또는 운반할 수 있는 임의의 유형적 매체를 포함하는 것으로 고려되어야 한다. 용어 "비일시적 기계 판독가능한 매체"는 이에 따라 솔리드 스테이트 메모리들, 및 광학 및 자기 매체를 포함하지만 이에 제한되지 않는 것으로 고려되어야 한다. 비일시적 기계 판독가능한 매체의 특정 예들은, 예로서, 반도체 메모리 디바이스들(예를 들어, 소거가능한 프로그래머블 판독 전용 메모리(EPROM), 전기적 소거가능한 프로그래머블 판독 전용 메모리(EEPROM), 및 플래시 메모리 디바이스들), 내부 하드 디스크들 및 이동식 디스크들과 같은 자기 디스크들, 자기-광학 디스크들, 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리를 포함하지만 이에 제한되지 않는다.
본 명세서에서 사용되는 바와 같이, 용어들 "애플리케이션", "엔진" 및 "플러그-인"은 특정 기능을 제공하기 위해 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 소프트웨어 명령어들(예로서, 컴퓨터 프로그램들 및/또는 스크립트들)의 하나 이상의 세트를 지칭한다. 컴퓨터 소프트웨어 명령어들은 C, C++, C#, 파스칼, 포트란, 펄(Perl), MATLAB, SAS, SPSS, 자바스크립트, AJAX 및 JAVA와 같은 임의의 적절한 프로그래밍 언어들로 기입될 수 있다. 이러한 컴퓨터 소프트웨어 명령어들은 데이터 입력 및 데이터 디스플레이 모듈들을 갖는 독립 애플리케이션을 포함할 수 있다. 대안적으로, 개시되는 컴퓨터 소프트웨어 명령어들은 분산 객체들로서 인스턴스화되는 클래스들일 수 있다. 개시되는 컴퓨터 소프트웨어 명령어들은 또한 구성요소 소프트웨어, 예를 들어 JAVABEANS 또는 ENTERPRISE JAVABEANS일 수 있다. 추가로, 개시되는 애플리케이션들 또는 엔진들은 컴퓨터 소프트웨어, 컴퓨터 하드웨어 또는 이들의 조합으로 구현될 수 있다.
본 명세서에서 사용되는 바와 같이, "프레임워크"라는 용어는 하나 이상의 전체 기능을 수행하기 위해 협력하는 애플리케이션들 및/또는 엔진들의 시스템뿐만 아니라, 임의의 다른 지원 데이터 구조들, 라이브러리들, 모듈들, 및 임의의 다른 지원 기능을 지칭한다. 특히, "자연어 이해 프레임워크" 또는 "NLU 프레임워크"는 이해 모델에 기반하여 자연어 발화들로부터 의미(예를 들어, 의도들, 엔티티들, 아티팩트들)를 처리하고 도출하도록 설계된 컴퓨터 프로그램들의 집합을 포함한다. 본 명세서에서 사용되는 바와 같이, 추론 에이전트 또는 RA/BE로도 알려진 "거동 엔진" 또는 "BE"는 대화 모델에 기반하여 사용자들과 상호작용하도록 설계된 가상 에이전트와 같은 규칙 기반 에이전트를 지칭한다. 예를 들어, "가상 에이전트"는 특정 대화 또는 통신 채널에서 자연어 요청들을 통해 사용자들과 상호작용하도록 설계된 BE의 특정 예를 지칭할 수 있다. 이를 염두에 두고, "가상 에이전트" 및 "BE"라는 용어들은 본 명세서에서 상호교환가능하게 사용된다. 특정 예로서, 가상 에이전트는 채팅방 환경에서 자연어 요청들 및 응답들을 통해 사용자들과 상호작용하는 채팅 에이전트일 수 있거나 이를 포함할 수 있다. 가상 에이전트들의 다른 예들은 이메일, 포럼 게시물들, 및 서비스 티켓들, 전화 호출들 등에 대한 자동 응답들과 관련하여 사용자들과 상호작용하는 이메일 에이전트, 포럼 에이전트, 티켓팅 에이전트, 전화 호출 에이전트 등을 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, "의도"는 발화와 같은 통신의 기본 목적과 관련될 수 있는 사용자의 욕구 또는 목표를 지칭한다. 본 명세서에서 사용되는 바와 같이, "엔티티"는 목적어(object), 주어(subject) 또는 의도의 일부 다른 파라미터화를 지칭한다. 본 실시예들에서, 특정 엔티티들은 대응하는 의도의 파라미터들로서 취급된다는 점에 유의한다. 더 구체적으로, 특정 엔티티들(예로서, 시간 및 위치)은 모든 의도들에 대해 전역적으로 인식되고 추출될 수 있는 반면, 다른 엔티티들은 의도-특정적(예로서, 구매 의도들과 연관된 상품 엔티티들)이고 일반적으로 이들을 정의하는 의도들 내에서 발견될 때에만 추출된다. 본 명세서에서 사용되는 바와 같이, "아티팩트"는 발화의 의도들 및 엔티티들 둘 다를 집합적으로 지칭한다. 본 명세서에서 사용되는 바와 같이, "이해 모델"은 자연어 발화들의 의미를 추론하기 위해 NLU 프레임워크에 의해 이용되는 모델들의 집합이다. 이해 모델은 특정 토큰들(예로서, 단어들 또는 구들)을 특정 단어 벡터들, 의도-엔티티 모델, 엔티티 모델 또는 이들의 조합과 연관시키는 어휘 모델을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "의도-엔티티 모델"은 특정 의도들을 특정 샘플 발화들과 연관시키는 모델을 지칭하며, 의도와 연관된 엔티티들은 모델의 샘플 발화들 내에서 의도의 파라미터로서 인코딩될 수 있다. 본 명세서에서 사용되는 바와 같이, "에이전트들"이라는 용어는 대화 채널 내에서 서로 상호작용하는 컴퓨터 생성 페르소나들(예로서, 채팅 에이전트들 또는 다른 가상 에이전트들)을 지칭할 수 있다. 본 명세서에서 사용되는 바와 같이, "코퍼스"는 다양한 사용자들과 가상 에이전트들 사이의 상호작용들을 포함하는 소스 데이터의 캡처된 보디를 지칭하며, 그 상호작용들은 하나 이상의 적절한 유형의 미디어(예로서, 전화 상담 서비스(help line), 채팅방 또는 메시지 스트링, 이메일 스트링) 내의 통신들 또는 대화들을 포함한다. 본 명세서에서 사용되는 바와 같이, "발화 트리"는 발화의 의미 표현을 저장하는 데이터 구조를 지칭한다. 논의되는 바와 같이, 발화 트리는 발화의 구문론적 구조를 나타내는 트리 구조(예로서, 의존성 파스 트리 구조)를 가지며, 트리 구조의 노드들은 발화의 의미론적 의미를 인코딩하는 벡터들(예로서, 단어 벡터들, 서브트리 벡터들)을 저장한다.
본 명세서에서 사용되는 바와 같이, "소스 데이터" 또는 "대화 로그들"은 채팅 로그들, 이메일 스트링들, 문서들, 도움말 문서화, 자주 문의되는 질문들(FAQ들), 포럼 엔트리들, 티켓팅을 지원하는 아이템들, 전화 상담 서비스 호출들의 기록들 등을 포함하지만 이에 제한되지 않는 다양한 에이전트들 간의 임의의 적절한 캡처된 상호작용들을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "발화"는 하나 이상의 의도를 포함할 수 있는 사용자 또는 에이전트에 의해 이루어진 단일 자연어 진술을 지칭한다. 이와 같이, 발화는 소스 데이터의 이전에 캡처된 코퍼스의 일부일 수 있고, 발화는 또한 가상 에이전트와의 상호작용의 일부로서 사용자로부터 수신된 새로운 진술일 수 있다. 본 명세서에서 사용되는 바와 같이, "기계 학습" 또는 "ML"은 감독, 무감독, 및 반감독 학습 기술들을 포함하는 기계 학습 기술들을 이용하여 훈련될 수 있는 인공 지능의 임의의 적절한 통계 형태를 지칭하는데 사용될 수 있다. 예를 들어, 특정 실시예들에서, ML 기반 기술들은 인공 신경망(ANN)(예를 들어, 심층 신경망(DNN), 순환 신경망(RNN), 재귀적 신경망, 피드포워드 신경망)을 이용하여 구현될 수 있다. 대조적으로, "규칙 기반" 방법들 및 기술들은 발화들로부터 의미 표현들을 도출하기 위해 언어 구조 및 의미 이해의 정확한 판단을 가능하게 하는 정밀 규칙 세트들 및 수동으로 제작된 온톨로지들의 이용을 지칭한다. 본 명세서에서 사용되는 바와 같이, "벡터"(예를 들어, 워드 벡터, 의도 벡터, 주어 벡터, 서브트리 벡터)는 발화의 일부(예를 들어, 단어 또는 구, 의도, 엔티티, 토큰)의 의미론적 의미의 수학적 표현을 제공하는 부동 소수점 값들(예를 들어, 1xN 또는 Nx1 행렬)의 순서화된 n차원 리스트(예를 들어, 300차원 리스트)인 선형 대수 벡터를 지칭한다. 본 명세서에서 사용되는 바와 같이, "도메인 특정성"은 시스템이 주어진 도메인 및/또는 대화 채널에서 실제 대화들로 표현되는 의도들 및 엔티티들을 정확하게 추출하는 것에 대해 어떻게 조율되는지를 지칭한다.
언급된 바와 같이, 컴퓨팅 플랫폼은 플랫폼 상에서 기능들을 수행하거나 문제들을 해결하라는 사용자 요청들에 자동으로 응답하도록 설계되는 채팅 에이전트, 또는 다른 유사한 가상 에이전트를 포함할 수 있다. 자연어 발화로부터 사용자 의도를 도출하려고 시도할 때, 단일 발화가 발화의 토큰들에 대한 상이한 잠재적인 품사(POS) 태깅들을 가질 수 있고, 이러한 상이한 POS 태깅들이 발화의 상이한 형태-도출들을 나타낸다는 것이 현재 인식되고 있다. 그 결과, 다수의 상이한 의미 표현들(예를 들어, 발화 트리들)이 단일 발화에 대해 생성될 수 있고, 그 각각은 발화의 별개의 형태-도출을 나타낸다. 고려로 인한 발화의 모든 가능한 형태-도출들을 제공하는 것이 NLU 프레임워크의 의도 추론 능력들을 개선한다는 것이 현재 인식되고 있다. 그러나, 발화의 특정 형태-도출들이 이미 고려되고 있는 다른 형태들에 대해 잘못되거나 실질적으로 중복될 수 있고, 이는 NLU 프레임워크의 의도 추론 능력들을 실질적으로 개선하지 않고 처리 및 메모리 자원 소비를 실질적으로 증가시킬 수 있다는 것이 또한 현재 인식되고 있다.
따라서, 본 실시예들은 자연어 발화에 대한 복수의 의미 표현들을 생성하기 위해 ML 기반 및 규칙 기반 기술들을 적용하는 의미 추출 서브시스템을 포함하는 NLU 프레임워크에 관한 것이다. 의미 추출 서브시스템은 검색 공간을 확장하기 위해 이해 모델의 샘플 발화들의 복수의 의미 표현들을 생성할 수 있고/있거나 검색 키를 확장하기 위해 수신된 사용자 발화의 복수의 의미 표현들을 생성할 수 있는 구조 서브시스템을 포함한다. 개시된 구조 서브시스템은 발화에 대한 복수의 잠재적인 품사(POS) 태깅들을 생성하기 위해 ML 기반 기술들을 이용하고, 여기서 미리 정의된 임계값보다 큰 대응하는 신뢰도 스코어들을 갖는 잠재적인 POS 태깅들만이 진전된다. 개시된 구조 서브시스템은 잘못된 잠재적인 POS 태깅들을 수정하거나 제거하기 위해 규칙 기반 및/또는 ML 기반 정정 기술들을 적용할 수 있다. 개시된 구조 서브시스템은 또한 미리 정의된 변동 임계값에 기반하여 서로 충분히 상이하지 않은 잠재적인 POS 태깅들을 제거하기 위해 변동성 필터를 적용할 수 있다. 정정 및/또는 변동성 필터링 후에, 개시된 구조 서브시스템은 각각의 남아 있는 잠재적인 POS 태깅에 대한 각각의 의미 표현(예를 들어, 발화 트리)을 생성하기 위해 ML 기반 또는 규칙 기반 기술들을 이용하고, 여기서 미리 정의된 임계치보다 큰 대응하는 신뢰도 스코어들을 갖는 의미 표현들만이 진전된다. 마지막으로, 개시된 구조 서브시스템은 진전된 의미 표현들의 신뢰도 스코어들뿐만 아니라 대응하는 POS 태깅들의 기본 신뢰도 스코어들을 고려하는 최종 스코어링 및 필터링 단계를 적용하여, 최종 스코어를 생성하고, 미리 정의된 임계치 미만의 최종 스코어들을 갖는 의미 표현들을 제거한다. 이와 같이, 개시된 구조 서브시스템은 의미 검색의 검색 키 및/또는 검색 공간에 대해 생성되는 형태-도출들의 수를 효과적으로 확장하여, NLU 프레임워크의 의도 추론 능력들을 개선하면서 잘못된 또는 실질적으로 중복된 형태-도출들을 제거함으로써 자원 소비를 감소시키고 NLU 프레임워크의 효율을 개선한다.
또한, 의미 검색의 품질은 의미 검색의 다양한 스테이지들을 수행할 때 신축적인(예를 들어, 비-정적, 가변) 임계치들을 이용함으로써 향상될 수 있다는 것이 현재 인식되고 있다. 이와 같이, 본 실시예들은 신축적인 임계치들을 이용하여 의미 검색 동작들을 수행할 수 있는 의미 검색 서브시스템을 포함하는 NLU 프레임워크에 관한 것이다. 예를 들어, 일단 의미 표현들이 사용자 발화에 대해 생성되었고 샘플 공간이 샘플 발화들의 의미 표현들로 채워졌다면, 제1 검색 동작은 신축적인 빔-폭 CCG 형태 기반 검색을 이용하여 컨텐더 매칭 의미 표현들의 세트를 식별할 수 있다. 검색의 각각의 CCG 비교는 잠재적인 신뢰도 값들(예를 들어, 추론 레벨 신뢰도 값들, 모델 레벨 신뢰도 값들, 아티팩트 레벨 신뢰도 값들)의 집합의 최소 신뢰도 값인 집계 최소 신뢰도 임계치(AMCT) 값에 기반하는 신축적인 신뢰도 임계치를 갖는다. AMCT 값은 CCG 형태 기반 검색에 대한 동적 임계치를 정의하는 완화된 AMCT 값을 산출하기 위해 완화 함수에 의해 추가로 확장된다. 신축적인 신뢰도 임계치를 이용함으로써, CCG 형태 기반 검색은 잠재적인 매칭 의미 표현에 검색 동작의 초기 비교로부터 낮은 신뢰도 스코어를 수신함에도 존속할 기회를 제공하여, 의미 표현이 검색 동작의 후속 비교에서 그 신뢰도 스코어를 증가시킬 수 있고, 최종적인 아티팩트(예를 들어, 의도 및/또는 엔티티) 추출을 위해 매칭 의미 표현들의 최종 세트에 도달하기에 적격일 수 있다는 것이 현재 인식되고 있다.
유사하게, 의미 검색의 다른 양태들은 신축적인(예를 들어, 비-정적, 가변) 임계치들을 이용함으로써 향상될 수 있다. 예를 들어, 의미 검색 서브시스템에 의해 수행되는 제2 검색 동작은 신축적인 빔-폭 CCG 형태 기반 검색에 의해 식별되는 각각의 잠재적인 매칭 의미 표현을 신축적인 빔-폭 아티팩트내 검색을 이용하는 잠재적인 매칭 의미 표현과 공통 의도를 공유하는 검색 공간의 부분들과 비교할 수 있다. CCG 형태 기반 검색과 같이, 신축적인 빔-폭 아티팩트내 검색에서의 각각의 비교 동작은 이해 모델에서의 아티팩트(예를 들어, 의도 또는 엔티티)에 대한 아티팩트 레벨 신뢰도 값인 모델 아티팩트 신뢰도 임계치(MACT) 값에 기반하는 신축적인 신뢰도 임계치를 갖는다. MACT 값은 아티팩트내 검색에 대한 동적 임계치를 정의하는 완화된 MACT 값을 산출하기 위해 제2 완화 함수에 의해 추가로 확장된다. 신축적인 신뢰도 임계치를 이용함으로써, 아티팩트내 검색은 잠재적인 매칭 의미 표현에 검색 동작의 초기 비교로부터 낮은 신뢰도 스코어를 수신함에도 존속할 기회를 제공하여, 의미 표현이 검색 동작의 후속 비교에서 그 신뢰도 스코어를 증가시킬 수 있고, 최종적인 아티팩트(예를 들어, 의도 및/또는 엔티티) 추출을 위해 매칭 의미 표현들의 최종 세트에 도달하기에 적격일 수 있다는 것이 현재 인식되고 있다. 이와 같이, 개시된 의미 검색 서브시스템은 그렇지 않으면 의미 검색 동안 조기에 도태될 수 있는 매칭 의미 표현들을 더 효과적이고 포괄적으로 식별하여, NLU 프레임워크의 동작 및 성능을 개선한다.
이상의 내용을 염두에 두고, 이하의 도면들은 멀티-인스턴스 프레임워크 내의 조직에 서비스들을 제공하는데 이용될 수 있고 본 접근법들이 이용될 수 있는 다양한 유형들의 일반화된 시스템 아키텍처들 또는 구성들에 관한 것이다. 이에 대응하여, 이러한 시스템 및 플랫폼 예들은 또한 본 명세서에서 논의되는 기술들이 구현되거나 다른 방식으로 이용될 수 있는 시스템들 및 플랫폼들에 관한 것일 수 있다. 이제 도 1을 참조하면, 본 개시내용의 실시예들이 동작할 수 있는 클라우드 컴퓨팅 시스템(10)의 실시예의 개략도가 예시되어 있다. 클라우드 컴퓨팅 시스템(10)은 클라이언트 네트워크(12), 네트워크(18)(예컨대, 인터넷), 및 클라우드 기반 플랫폼(20)을 포함할 수 있다. 일부 구현들에서, 클라우드 기반 플랫폼(20)은 구성 관리 데이터베이스(CMDB) 플랫폼일 수 있다. 일 실시예에서, 클라이언트 네트워크(12)는 스위치들, 서버들, 및 라우터들을 포함하지만 이들로 제한되지 않는 다양한 네트워크 디바이스들을 갖는 LAN(local area network)과 같은 로컬 사설 네트워크일 수 있다. 다른 실시예에서, 클라이언트 네트워크(12)는 하나 이상의 LAN, 가상 네트워크, 데이터 센터(22), 및/또는 다른 원격 네트워크를 포함할 수 있는 기업 네트워크를 나타낸다. 도 1에 도시된 바와 같이, 클라이언트 네트워크(12)는 클라이언트 디바이스들이 서로 그리고/또는 플랫폼(20)을 호스팅하는 네트워크와 통신할 수 있도록 하나 이상의 클라이언트 디바이스(14A, 14B, 및 14C)에 접속될 수 있다. 클라이언트 디바이스들(14)은, 예를 들어, 웹 브라우저 애플리케이션을 통해 또는 클라이언트 디바이스들(14)과 플랫폼(20) 사이의 게이트웨이로서 작용할 수 있는 에지 디바이스(16)를 통해 클라우드 컴퓨팅 서비스들에 액세스하는 사물 인터넷(IoT) 디바이스들이라고 일반적으로 지칭되는 컴퓨팅 시스템들 및/또는 다른 유형들의 컴퓨팅 디바이스들일 수 있다. 도 1은 또한 클라이언트 네트워크(12)가 플랫폼(20), 다른 외부 애플리케이션들, 데이터 소스들 및 서비스들을 호스팅하는 네트워크와 클라이언트 네트워크(12) 간의 데이터의 통신을 용이하게 하는 MID(management, instrumentation, and discovery) 서버(17)와 같은 관리 또는 운영(administration or managerial) 디바이스, 에이전트 또는 서버를 포함하는 것을 예시한다. 도 1에 구체적으로 예시되지 않았지만, 클라이언트 네트워크(12)는 또한 접속 네트워크 디바이스(예컨대, 게이트웨이 또는 라우터) 또는 고객 방화벽 또는 침입 방지 시스템을 구현하는 디바이스들의 조합을 포함할 수 있다.
예시된 실시예에 있어서, 도 1은 클라이언트 네트워크(12)가 네트워크(18)에 결합되는 것을 예시한다. 네트워크(18)는 클라이언트 디바이스들(14A-C)과 플랫폼(20)을 호스팅하는 네트워크 사이에서 데이터를 전송하기 위해, 다른 LAN들, 광역 네트워크들(WAN), 인터넷, 및/또는 다른 원격 네트워크들과 같은 하나 이상의 컴퓨팅 네트워크를 포함할 수 있다. 네트워크(18) 내의 컴퓨팅 네트워크들 각각은 전기 및/또는 광학 도메인에서 동작하는 유선 및/또는 무선 프로그래머블 디바이스들을 포함할 수 있다. 예를 들어, 네트워크(18)는 셀룰러 네트워크들(예를 들어, GSM(Global System for Mobile Communications) 기반 셀룰러 네트워크), IEEE 802.11 네트워크들, 및/또는 다른 적절한 라디오 기반 네트워크들과 같은 무선 네트워크들을 포함할 수 있다. 네트워크(18)는 또한 TCP(Transmission Control Protocol) 및 IP(Internet Protocol)와 같은 임의의 수의 네트워크 통신 프로토콜들을 이용할 수 있다. 도 1에 명시적으로 도시되지는 않았지만, 네트워크(18)는 네트워크(18)를 통해 데이터를 전송하도록 구성된 서버들, 라우터들, 네트워크 스위치들, 및/또는 다른 네트워크 하드웨어 디바이스들과 같은 다양한 네트워크 디바이스들을 포함할 수 있다.
도 1에서, 플랫폼(20)을 호스팅하는 네트워크는 클라이언트 네트워크(12) 및 네트워크(18)를 통해 클라이언트 디바이스들(14)과 통신할 수 있는 원격 네트워크(예를 들어, 클라우드 네트워크)일 수 있다. 플랫폼(20)을 호스팅하는 네트워크는 클라이언트 디바이스들(14) 및/또는 클라이언트 네트워크(12)에 추가적인 컴퓨팅 자원들을 제공한다. 예를 들어, 플랫폼(20)을 호스팅하는 네트워크를 이용함으로써, 클라이언트 디바이스들(14)의 사용자들은 다양한 기업, IT, 및/또는 다른 조직 관련 기능들을 위한 애플리케이션들을 구축하고 실행할 수 있다. 일 실시예에서, 플랫폼(20)을 호스팅하는 네트워크는 하나 이상의 데이터 센터(22) 상에 구현되고, 여기서 각각의 데이터 센터는 상이한 지리적 위치에 대응할 수 있다. 데이터 센터들(22) 각각은 복수의 가상 서버들(24)(본 명세서에서 애플리케이션 노드들, 애플리케이션 서버들, 가상 서버 인스턴스들, 애플리케이션 인스턴스들, 또는 애플리케이션 서버 인스턴스들이라고도 지칭됨)을 포함하고, 여기서 각각의 가상 서버(24)는 단일 전자 컴퓨팅 디바이스(예를 들어, 단일 물리적 하드웨어 서버)와 같은 물리적 컴퓨팅 시스템 상에 또는 복수의 컴퓨팅 디바이스들(예를 들어, 복수의 물리적 하드웨어 서버들)에 걸쳐 구현될 수 있다. 가상 서버들(24)의 예들은 웹 서버(예를 들어, 단일 아파치(Apache) 설치), 애플리케이션 서버(예를 들어, 단일 JAVA 가상 기계), 및/또는 데이터베이스 서버(예를 들어, 단일 관계형 데이터베이스 관리 시스템(RDBMS) 카탈로그)를 포함하지만, 이에 제한되지 않는다.
플랫폼(20) 내의 컴퓨팅 자원들을 이용하기 위해, 네트워크 운영자들은 다양한 컴퓨팅 인프라스트럭처들을 이용하여 데이터 센터들(22)을 구성하도록 선택할 수 있다. 일 실시예에서, 데이터 센터들(22) 중 하나 이상은, 서버 인스턴스들(24) 중 하나가 복수의 고객으로부터의 요청들을 처리하고 복수의 고객을 서빙하도록 멀티-테넌트 클라우드 아키텍처를 이용하여 구성된다. 멀티-테넌트 클라우드 아키텍처를 갖는 데이터 센터들(22)은 복수의 고객으로부터의 데이터를 혼합 및 저장하고, 복수의 고객 인스턴스가 가상 서버들(24) 중 하나에 할당된다. 멀티-테넌트 클라우드 아키텍처에서, 특정한 가상 서버(24)는 다양한 고객들의 데이터 및 기타의 정보를 구분하고 분리한다. 예를 들어, 멀티-테넌트 클라우드 아키텍처는 각각의 고객으로부터의 데이터를 식별하고 분리하기 위해 각각의 고객에 대해 특정한 식별자를 할당할 수 있다. 일반적으로, 멀티-테넌트 클라우드 아키텍처를 구현하는 것은, 서버 인스턴스들(24) 중 특정한 하나의 고장이 특정한 서버 인스턴스에 할당된 모든 고객들에 대한 장애를 야기하는 등의, 다양한 단점들을 겪을 수 있다.
다른 실시예에서, 데이터 센터들(22) 중 하나 이상은 모든 고객에게 그 자신의 고유 고객 인스턴스 또는 인스턴스들을 제공하기 위해 멀티-인스턴스 클라우드 아키텍처를 이용하여 구성된다. 예를 들어, 멀티-인스턴스 클라우드 아키텍처는 각각의 고객 인스턴스에 그 자신의 전용 애플리케이션 서버 및 전용 데이터베이스 서버를 제공할 수 있다. 다른 예들에서, 멀티-인스턴스 클라우드 아키텍처는 각각의 고객 인스턴스에 대해, 단일 물리적 또는 가상 서버(24) 및/또는 하나 이상의 전용 웹 서버, 하나 이상의 전용 애플리케이션 서버, 및 하나 이상의 데이터베이스 서버와 같은 물리적 및/또는 가상 서버들(24)의 다른 조합들을 배치할 수 있다. 멀티-인스턴스 클라우드 아키텍처에서, 복수의 고객 인스턴스들은 하나 이상의 각각의 하드웨어 서버 상에 설치될 수 있고, 여기서 각각의 고객 인스턴스는 컴퓨팅 메모리, 저장소, 및 처리 능력과 같은 물리적 서버 자원들의 특정 부분들을 할당받는다. 그렇게 함으로써, 각각의 고객 인스턴스는 데이터 분리, 고객들이 플랫폼(20)에 액세스하기 위한 비교적 더 적은 가동 중지 시간, 및 고객 중심의 업그레이드 스케줄들의 이점을 제공하는 그 자신의 고유 소프트웨어 스택을 갖게 된다. 멀티-인스턴스 클라우드 아키텍처 내에서 고객 인스턴스를 구현하는 예는 도 2를 참조하여 아래에서 더 상세하게 논의될 것이다.
도 2는 본 개시내용의 실시예들이 동작할 수 있는 멀티-인스턴스 클라우드 아키텍처(40)의 실시예의 개략도이다. 도 2는 멀티-인스턴스 클라우드 아키텍처(40)가 서로 지리적으로 분리될 수 있는 2개의(예를 들어, 페어링된) 데이터 센터(22A 및 22B)에 접속하는 클라이언트 네트워크(12) 및 네트워크(18)를 포함하는 것을 도시한다. 예로서 도 2를 이용하여, 네트워크 환경 및 서비스 제공자 클라우드 인프라스트럭처 클라이언트 인스턴스(42)(본 명세서에서 클라이언트 인스턴스(42)로도 지칭됨)는 전용 가상 서버들(예를 들어, 가상 서버들(24A, 24B, 24C, 및 24D)) 및 전용 데이터베이스 서버들(예를 들어, 가상 데이터베이스 서버들(44A 및 44B))과 연관된다(예를 들어, 이들에 의해 지원 및 인에이블된다). 달리 말하면, 가상 서버들(24A-24D) 및 가상 데이터베이스 서버들(44A 및 44B)은 다른 클라이언트 인스턴스들과 공유되지 않고 각각의 클라이언트 인스턴스(42)에 특정적이다. 도시된 예에서, 클라이언트 인스턴스(42)의 가용성을 용이하게 하기 위해, 가상 서버들(24A-24D) 및 가상 데이터베이스 서버들(44A 및 44B)은 2개의 상이한 데이터 센터(22A 및 22B)에 할당되어, 데이터 센터들(22) 중 하나가 백업 데이터 센터로서 역할을 한다. 멀티-인스턴스 클라우드 아키텍처(40)의 다른 실시예들은 웹 서버와 같은 다른 유형들의 전용 가상 서버들을 포함할 수 있다. 예를 들어, 클라이언트 인스턴스(42)는 전용 가상 서버들(24A-24D), 전용 가상 데이터베이스 서버들(44A 및 44B), 및 추가적인 전용 가상 웹 서버들(도 2에 도시되지 않음)과 연관될 수 있다(예를 들어, 이들에 의해 지원 및 인에이블될 수 있다).
도 1 및 도 2는 각각 클라우드 컴퓨팅 시스템(10) 및 멀티-인스턴스 클라우드 아키텍처(40)의 특정 실시예들을 도시하지만, 본 개시내용은 도 1 및 도 2에 도시된 특정 실시예들로 제한되지 않는다. 예를 들어, 도 1은 플랫폼(20)이 데이터 센터들을 이용하여 구현되는 것을 도시하지만, 플랫폼(20)의 다른 실시예들은 데이터 센터들로 제한되지 않고, 다른 유형들의 원격 네트워크 인프라스트럭처들을 이용할 수 있다. 또한, 본 개시내용의 다른 실시예들은 하나 이상의 상이한 가상 서버를 단일 가상 서버로 결합하거나, 역으로, 복수의 가상 서버들을 이용하여 단일 가상 서버에 기인하는 동작들을 수행할 수 있다. 예를 들어, 도 2를 예로서 이용하여, 가상 서버들(24A, 24B, 24C, 24D) 및 가상 데이터베이스 서버들(44A, 44B)은 단일 가상 서버로 결합될 수 있다. 또한, 본 접근법들은 멀티-테넌트 아키텍처들, 일반화된 클라이언트/서버 구현들을 포함하지만 이에 제한되지 않는 다른 아키텍처들 또는 구성들로, 그리고/또는 심지어 본 명세서에서 논의된 동작들 중 일부 또는 전부를 수행하도록 구성된 단일 물리적 프로세서 기반 디바이스 상에서도 구현될 수 있다. 유사하게, 가상 서버들 또는 기계들이 구현의 논의를 용이하게 하기 위해 참조될 수 있지만, 물리적 서버들이 적절히 대신 이용될 수 있다. 도 1 및 도 2의 이용 및 논의는 서술 및 설명의 편의를 용이하게 하기 위한 예들일 뿐이고, 본 개시내용을 본 명세서에 도시된 특정 예들로 제한하는 것으로 의도되지 않는다.
이해될 수 있는 바와 같이, 도 1 및 도 2와 관련하여 논의된 각각의 아키텍처들 및 프레임워크들은 전반에 걸쳐 다양한 유형들의 컴퓨팅 시스템들(예를 들어, 서버들, 워크스테이션들, 클라이언트 디바이스들, 랩톱들, 태블릿 컴퓨터들, 셀룰러 전화기들 등)을 포함한다. 완전함을 위해, 이러한 시스템들에서 전형적으로 발견되는 구성요소들의 간략하고 높은 레벨의 개요가 제공된다. 이해될 수 있는 바와 같이, 이러한 개요는 이러한 컴퓨팅 시스템들에서 전형적인 구성요소들의 높은 레벨의 일반화된 뷰를 제공하기 위한 것일 뿐이며, 논의되거나 논의에서 생략된 구성요소들의 관점에서 제한적인 것으로 고려되어서는 안 된다.
배경으로서, 본 접근법은 도 3에 도시된 것과 같은 하나 이상의 프로세서 기반 시스템을 이용하여 구현될 수 있다는 것을 알 수 있다. 마찬가지로, 본 접근법에서 이용되는 애플리케이션들 및/또는 데이터베이스들은 이러한 프로세서 기반 시스템들 상에 저장, 이용 및/또는 유지될 수 있다. 알 수 있는 바와 같이, 도 3에 도시된 것과 같은 이러한 시스템들은 분산 컴퓨팅 환경, 네트워크화된 환경, 또는 다른 멀티-컴퓨터 플랫폼 또는 아키텍처에 존재할 수 있다. 마찬가지로, 도 3에 도시된 것과 같은 시스템들은 본 접근법이 구현될 수 있는 하나 이상의 가상 환경 또는 계산 인스턴스를 지원하거나 이와 통신하는데 이용될 수 있다.
이를 염두에 두고, 예시적인 컴퓨터 시스템은 도 3에 도시된 컴퓨터 구성요소들 중 일부 또는 전부를 포함할 수 있다. 도 3은 일반적으로 컴퓨팅 시스템(80)의 예시적인 구성요소들 및 하나 이상의 버스를 따르는 것과 같은 그 잠재적인 상호접속들 또는 통신 경로들의 블록도를 도시한다. 도시된 바와 같이, 컴퓨팅 시스템(80)은 하나 이상의 프로세서(82), 하나 이상의 버스(84), 메모리(86), 입력 디바이스들(88), 전원(90), 네트워크 인터페이스(92), 사용자 인터페이스(94), 및/또는 본 명세서에 설명된 기능들을 수행하는데 유용한 다른 컴퓨터 구성요소들과 같은, 그러나 이에 제한되지 않는 다양한 하드웨어 구성요소들을 포함할 수 있다.
하나 이상의 프로세서(82)는 메모리(86)에 저장된 명령어들을 수행할 수 있는 하나 이상의 마이크로프로세서를 포함할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 프로세서(82)는 주문형 집적 회로(ASIC)들, 필드 프로그래머블 게이트 어레이(FPGA)들, 및/또는 메모리(86)로부터 명령어들을 호출하지 않고 본 명세서에서 논의된 기능들 중 일부 또는 전부를 수행하도록 설계된 다른 디바이스들을 포함할 수 있다.
다른 구성요소들과 관련하여, 하나 이상의 버스(84)는 컴퓨팅 시스템(80)의 다양한 구성요소들 사이에 데이터 및/또는 전력을 제공하기에 적절한 전기 채널들을 포함한다. 메모리(86)는 임의의 유형적, 비일시적, 및 컴퓨터 판독가능한 저장 매체를 포함할 수 있다. 도 1에서 단일 블록으로 도시되지만, 메모리(86)는 하나 이상의 물리적 위치에서 동일한 또는 상이한 유형들의 복수의 물리적 유닛들을 이용하여 구현될 수 있다. 입력 디바이스들(88)은 하나 이상의 프로세서(82)에 데이터 및/또는 명령들을 입력하기 위한 구조들에 대응한다. 예를 들어, 입력 디바이스들(88)은 마우스, 터치패드, 터치스크린, 키보드 등을 포함할 수 있다. 전원(90)은 라인 전력 및/또는 배터리 소스와 같은, 컴퓨팅 디바이스(80)의 다양한 구성요소들의 전력을 위한 임의의 적절한 소스일 수 있다. 네트워크 인터페이스(92)는 하나 이상의 네트워크(예를 들어, 통신 채널)를 통해 다른 디바이스들과 통신할 수 있는 하나 이상의 트랜시버를 포함할 수 있다. 네트워크 인터페이스(92)는 유선 네트워크 인터페이스 또는 무선 네트워크 인터페이스를 제공할 수 있다. 사용자 인터페이스(94)는 하나 이상의 프로세서(82)로부터 그것으로 전송되는 텍스트 또는 이미지들을 표시하도록 구성되는 디스플레이를 포함할 수 있다. 디스플레이에 추가적으로 및/또는 대안적으로, 사용자 인터페이스(94)는 조명들(예를 들어, LED들), 스피커들 등과 같은, 사용자와 인터페이싱하기 위한 다른 디바이스들을 포함할 수 있다.
위에서 논의된 클라우드 기반 플랫폼(20)은 NLU 기술들을 이용할 수 있는 아키텍처의 예를 제공한다는 것이 이해되어야 한다. 특히, 클라우드 기반 플랫폼(20)은 의도-엔티티 모델을 포함하는, 다수의 출력들의 생성을 용이하게 하기 위해, 마이닝될 수 있는 소스 데이터의 큰 코퍼스를 포함하거나 이를 저장할 수 있다. 예를 들어, 클라우드 기반 플랫폼(20)은 특정 시스템들의 변경들 또는 수리들에 대한 요청들, 요청자와 서비스 기술자 또는 문제를 해결하려고 시도하는 관리자 사이의 대화, 티켓이 결국 어떻게 해결되었는지에 대한 설명 등을 갖는 티켓팅 소스 데이터를 포함할 수 있다. 그 후, 생성된 의도-엔티티 모델은 장래의 요청들에서 의도들을 분류하기 위한 기반으로서 역할을 할 수 있고, 사용자들로부터의 자연어 요청들에 기반하여 클라우드 기반 플랫폼(20) 내의 장래의 문제들을 자동으로 해결할 수 있는 가상 에이전트를 지원하기 위해 대화 모델을 생성 및 개선하는데 이용될 수 있다. 이와 같이, 본 명세서에 설명된 특정 실시예들에서, 개시된 에이전트 자동화 프레임워크는 클라우드 기반 플랫폼(20)에 통합되는 반면, 다른 실시예들에서, 에이전트 자동화 프레임워크는, 아래에 논의되는 바와 같이, 발화들을 처리하기 위해 클라우드 기반 플랫폼(20)에 통신가능하게 결합되는 적절한 시스템에 의해 (클라우드 기반 플랫폼(20)과는 별도로) 호스팅 및 실행될 수 있다.
이상의 내용을 염두에 두고, 도 4a는 클라이언트 인스턴스(42)와 연관된 에이전트 자동화 프레임워크(100)(본 명세서에서 에이전트 자동화 시스템(100)이라고도 함)를 나타내고 있다. 보다 구체적으로는, 도 4a는 앞서 논의된 클라우드 기반 플랫폼(20)을 비롯한 서비스 제공자 클라우드 인프라스트럭처의 일부분의 예를 나타내고 있다. 클라우드 기반 플랫폼(20)은 (예컨대, 클라이언트 디바이스(14D)의 웹 브라우저를 통해) 클라이언트 인스턴스(42) 내에서 실행 중인 네트워크 애플리케이션들에 대한 사용자 인터페이스를 제공하기 위해 네트워크(18)를 통해 클라이언트 디바이스(14D)에 접속된다. 클라이언트 인스턴스(42)는 도 2와 관련하여 설명된 것들과 유사한 가상 서버들에 의해 지원되고, 클라이언트 인스턴스(42) 내에서 본 명세서에서 설명되는 개시된 기능에 대한 지원을 보여주기 위해 본 명세서에 예시되어 있다. 클라우드 제공자 인프라스트럭처는 일반적으로 클라이언트 디바이스(14D)와 같은 복수의 최종 사용자 디바이스들을 동시에 지원하도록 구성되어 있고, 여기서 각각의 최종 사용자 디바이스는 단일 클라이언트 인스턴스(42)와 통신하고 있다. 또한, 클라우드 제공자 인프라스트럭처는 클라이언트 인스턴스(42)와 같은 임의의 수의 클라이언트 인스턴스들을 동시에 지원하도록 구성될 수 있고, 여기서 인스턴스들 각각은 하나 이상의 최종 사용자 디바이스와 통신하고 있다. 앞서 언급된 바와 같이, 최종 사용자는 또한 웹 브라우저 내에서 실행되는 애플리케이션을 이용하여 클라이언트 인스턴스(42)와 인터페이싱할 수 있다.
도 4a에 도시된 에이전트 자동화 프레임워크(100)의 실시예는 거동 엔진(BE)(102), NLU 프레임워크(104), 및 데이터베이스(106)를 포함하고, 이들은 클라이언트 인스턴스(42) 내에서 통신가능하게 결합된다. BE(102)는 자연어 사용자 요청들(122)(본 명세서에서 사용자 발화들(122) 또는 발화들(122)이라고도 지칭됨) 및 에이전트 응답들(124)(본 명세서에서 에이전트 발화들(124)이라고도 지칭됨)을 통해 클라이언트 디바이스(14D)의 사용자와 상호작용하는 임의의 적절한 수의 가상 에이전트들 또는 페르소나들을 호스팅하거나 이들을 포함할 수 있다. 실제 구현들에서, 에이전트 자동화 프레임워크(100)는 본 개시내용에 따라, 의미 추출 서브시스템, 의미 검색 서브시스템 등을 포함하는 다수의 다른 적절한 구성요소들을 포함할 수 있다는 점에 유의할 수 있다.
도 4a에 도시된 실시예에 있어서, 데이터베이스(106)는 데이터베이스 서버 인스턴스(예를 들어, 도 2와 관련하여 논의된 바와 같은 데이터베이스 서버 인스턴스(44A 또는 44B)), 또는 데이터베이스 서버 인스턴스들의 집합일 수 있다. 도시된 데이터베이스(106)는 의도-엔티티 모델(108), 대화 모델(110), 발화들(112)의 코퍼스, 및 규칙들(114)의 집합을 데이터베이스(106)의 하나 이상의 테이블(예를 들어, 관계형 데이터베이스 테이블)에 저장한다. 의도-엔티티 모델(108)은 특정 샘플 발화들을 통해 특정 의도들과 특정 엔티티들 사이의 연관들 또는 관계들을 저장한다. 특정 실시예들에서, 의도-엔티티 모델(108)은 적절한 저작 툴을 이용하여 설계자에 의해 저작될 수 있다. 다른 실시예들에서, 에이전트 자동화 프레임워크(100)는 데이터베이스(106)의 하나 이상의 테이블에 저장된 발화들(112)의 코퍼스 및 규칙들(114)의 집합으로부터 의도-엔티티 모델(108)을 생성한다. 의도-엔티티 모델(108)은 또한 일부 실시예들에서, 저작 및 ML 기술들의 조합에 기반하여 결정될 수 있다. 여하튼, 개시된 의도-엔티티 모델(108)은 의도들 및/또는 엔티티들의 임의의 적절한 조합을 발화들(112)의 코퍼스의 각각의 것들과 연관시킬 수 있다는 것을 이해해야 한다. 아래에 논의되는 실시예들에 있어서, 의도-엔티티 모델(108)의 샘플 발화들은 의미 검색을 위한 검색 공간을 정의하기 위해 이해 모델의 의미 표현들을 생성하는데 이용된다.
도 4a에 도시된 실시예에 있어서, 대화 모델(110)은 의도-엔티티 모델(108)의 의도들과 일반적으로 BE(102)의 거동을 정의하는 특정 응답들 및/또는 액션들 사이의 연관들을 저장한다. 특정 실시예들에서, 대화 모델 내의 연관들의 적어도 일부는 설계자가 BE(102)가 처리된 발화들 내의 특정 식별된 아티팩트들에 어떻게 응답하기를 원하는지에 기반하여 BE(102)의 설계자에 의해 수동으로 생성되거나 미리 정의된다. 상이한 실시예들에서, 데이터베이스(106)는 컴파일 모델 템플릿 데이터(예를 들어, 클래스 호환성 규칙들, 클래스 레벨 스코어링 계수들, 트리 모델 비교 알고리즘들, 트리 하위구조 벡터화 알고리즘들), 의미 표현들 등에 관한 정보를 저장하는 테이블들과 같은, 의도 분류에 관련된 다른 정보를 저장하는 다른 데이터베이스 테이블들을 포함할 수 있다는 점에 유의해야 한다.
예시된 실시예에 있어서, NLU 프레임워크(104)는 NLU 엔진(116) 및 어휘 관리자(118)를 포함한다. NLU 프레임워크(104)는 임의의 적절한 수의 다른 구성요소들을 포함할 수 있다는 것을 알 수 있다. 특정 실시예들에서, NLU 엔진(116)은, 발화들의 단어 또는 구들로부터 단어 벡터들(예를 들어, 의도 벡터들, 주어 또는 엔티티 벡터들, 서브트리 벡터들)을 생성하는 것은 물론, 이러한 벡터들 사이의 거리들(예를 들어, 유클리드 거리들)을 결정하는 것을 포함하여, NLU 프레임워크(104)의 다수의 기능들을 수행하도록 설계된다. 예를 들어, NLU 엔진(116)은 일반적으로 분석된 발화의 각각의 의도에 대한 각각의 의도 벡터를 생성할 수 있다. 이와 같이, 2개의 상이한 발화 사이의 유사도 척도 또는 거리는 2개의 의도에 대해 NLU 엔진(116)에 의해 생성된 각각의 의도 벡터들을 이용하여 계산될 수 있고, 유사도 척도는 2개의 의도 사이의 의미에서의 유사도의 표시를 제공한다.
(아래에 논의되는 어휘 서브시스템의 일부일 수 있는) 어휘 관리자(118)는 어휘 훈련 동안 NLU 프레임워크(104)가 마주치지 않았던 어휘 외 단어들 및 심볼들을 다룬다. 예를 들어, 특정 실시예들에서, 어휘 관리자(118)는 (예를 들어, 규칙들(114)의 집합에 기반하여) 에이전트 자동화 프레임워크(100)에 의해 분석된 발화들 내의 단어들 및 약어들의 동의어들 및 도메인-특정 의미들을 식별하고 대체할 수 있으며, 이는 NLU 프레임워크(104)의 성능을 개선하여 맥락-특정 발화들 내의 의도들 및 엔티티들을 적절히 식별할 수 있다. 추가로, 기존 단어들에 대한 새로운 이용들을 채택하는 자연어의 경향을 수용하기 위해, 특정 실시예들에서, 어휘 관리자(118)는 맥락의 변화에 기반하여 다른 의도들 또는 엔티티들과 이전에 연관된 단어들의 재창출을 처리한다. 예를 들어, 어휘 관리자(118)는 특정 클라이언트 인스턴스 및/또는 대화 채널로부터의 발화들의 맥락에서 단어 "자전거"가 실제로 자전거가 아닌 오토바이를 지칭하는 상황을 처리할 수 있다.
의도-엔티티 모델(108) 및 대화 모델(110)이 생성되었으면, 에이전트 자동화 프레임워크(100)는 사용자 발화(122)를 (자연어 요청의 형태로) 수신하고, 그 요청을 다루기 위한 액션을 적절히 취하도록 설계된다. 예를 들어, 도 4a에 예시된 실시예에 있어서, BE(102)는 네트워크(18)를 통해, 클라이언트 네트워크(12) 상에 배치된 클라이언트 디바이스(14D)에 의해 제출된 발화(122)(예를 들어, 채팅 통신에서의 자연어 요청)를 수신하는 가상 에이전트이다. BE(102)는 발화(122)를 NLU 프레임워크(104)에 제공하고, NLU 엔진(116)은 아래에 논의되는 NLU 프레임워크의 다양한 서브시스템들과 함께, 의도-엔티티 모델(108)에 기반하여 발화(122)를 처리하여, 발화 내의 아티팩트들(예를 들어, 의도들 및/또는 엔티티들)을 도출한다. NLU 엔진(116)에 의해 도출된 아티팩트들뿐만 아니라 대화 모델(110) 내의 연관들에 기반하여, BE(102)는 하나 이상의 특정의 미리 정의된 액션을 수행한다. 예시된 실시예에 있어서, BE(102)는 또한 네트워크(18)를 통해 클라이언트 디바이스(14D)에 응답(124)(예를 들어, 가상 에이전트 발화(124) 또는 확인)을 제공하며, 이는 예를 들어 수신된 사용자 발화(122)에 응답하여 BE(102)에 의해 수행되는 액션들을 표시한다. 또한, 특정 실시예들에서, 발화(122)는 NLU 프레임워크(104) 내의 계속적인 학습을 위해 데이터베이스(106)에 저장된 발화들(112)에 추가될 수 있다.
다른 실시예들에서, 에이전트 자동화 프레임워크(100) 및/또는 NLU 프레임워크(104)의 하나 이상의 구성요소가 개선된 성능을 위해 다른 방식으로 배열, 위치, 또는 호스팅될 수 있다는 점이 이해될 수 있다. 예를 들어, 특정 실시예들에서, NLU 프레임워크(104)의 하나 이상의 부분은 클라이언트 인스턴스(42)와 별개이고 이에 통신가능하게 결합되는 인스턴스(예를 들어, 공유 인스턴스, 기업 인스턴스)에 의해 호스팅될 수 있다. 이러한 실시예들은 클라이언트 인스턴스(42)의 크기를 유리하게 감소시킬 수 있어서, 클라우드 기반 플랫폼(20)의 효율을 개선시킬 수 있다는 점이 현재 인식되고 있다. 특히, 특정 실시예들에서, 아래에 논의되는 유사도 스코어링 서브시스템의 하나 이상의 구성요소는, 발화(122)에 대한 아티팩트 매치들의 식별을 가능하도록 검색 공간 내의 적절한 매칭 의미 표현들에 대한 개선된 의미 검색을 가능하게 하기 위해, 클라이언트 인스턴스(42)뿐만 아니라 다른 클라이언트 인스턴스들에 통신가능하게 결합되는 별개의 인스턴스(예를 들어, 기업 인스턴스)에 의해 호스팅될 수 있다.
이상의 내용을 염두에 두고, 도 4b는 NLU 프레임워크(104)의 부분들이 클라우드 기반 플랫폼(20)에 의해 호스팅되는 별개의 공유 인스턴스(예를 들어, 기업 인스턴스(125))에 의해 대신 실행되는 에이전트 자동화 프레임워크(100)의 대안적인 실시예를 예시한다. 예시된 기업 인스턴스(125)는 적절한 프로토콜을 통해(예를 들어, 적절한 REST(Representational State Transfer) 요청들/응답들을 통해) 임의의 적절한 수의 클라이언트 인스턴스들과 아티팩트 마이닝 및 분류에 관련된 데이터를 교환하도록 통신가능하게 결합된다. 이와 같이, 도 4b에 예시된 설계에 대해, 복수의 클라이언트 인스턴스들(42)에 액세스가능한 공유 자원으로서 NLU 프레임워크의 일부분을 호스팅함으로써, 클라이언트 인스턴스(42)의 크기가 (예를 들어, 도 4a에 예시된 에이전트 자동화 프레임워크(100)의 실시예에 비해) 실질적으로 감소될 수 있고, 에이전트 자동화 프레임워크(100)의 전체 효율이 개선될 수 있다.
특히, 도 4b에 도시된 NLU 프레임워크(104)는 NLU 프레임워크(104) 내에서 별개의 프로세스들을 수행하는 3개의 별개의 구성요소로 분할된다. 이러한 구성요소들은 기업 인스턴스(125)에 의해 호스팅되는 공유 NLU 훈련자(126), 기업 인스턴스(125)에 의해 호스팅되는 공유 NLU 주석자(127), 및 클라이언트 인스턴스(42)에 의해 호스팅되는 NLU 예측자(128)를 포함한다. 도 4a 및 도 4b에 도시된 조직들은 단지 예들이고, 다른 실시예들에서, NLU 프레임워크(104) 및/또는 에이전트 자동화 프레임워크(100)의 다른 조직들이 본 개시내용에 따라 이용될 수 있다는 것을 알 수 있다.
도 4b에 예시된 에이전트 자동화 프레임워크(100)의 실시예에 있어서, 공유 NLU 훈련자(126)는 클라이언트 인스턴스(42)로부터 발화들(112)의 코퍼스를 수신하고, 의도-엔티티 모델(108)의 생성을 용이하게 하기 위해 의미론적 마이닝(예를 들어, 의미론적 파싱, 문법 조작(grammar engineering) 등을 포함함)을 수행하도록 설계된다. 의도-엔티티 모델(108)이 생성되었으면, BE(102)가 클라이언트 디바이스(14D)에 의해 제공되는 사용자 발화(122)를 수신할 때, NLU 예측자(128)는 발화(122)의 파싱 및 주석부기를 위해 발화(122) 및 의도-엔티티 모델(108)을 공유 NLU 주석자(127)에 전달한다. 공유 NLU 주석자(127)는 의도-엔티티 모델(108)에 기반하여 발화(122)의 의미론적 파싱, 문법 조작 등을 수행하고, 발화(122)의 의미 표현들(예를 들어, 발화 트리들)을 클라이언트 인스턴스(42)의 NLU 예측자(128)에 반환한다. 그 후, NLU 예측자(128)는 아래에 더 상세히 논의되는 발화(122)의 이러한 주석부기된 구조들을 이용하여, 의도-엔티티 모델(108)로부터 매칭 의도들을 식별하고, 이에 따라 BE(102)는 식별된 의도들에 기반하여 하나 이상의 액션을 수행할 수 있다. 아래에 논의되는 바와 같이, 공유 NLU 주석자(127)는 의미 추출 서브시스템(150)에 대응할 수 있고, NLU 예측자는 NLU 프레임워크(104)의 의미 검색 서브시스템(152)에 대응할 수 있다는 점이 이해될 수 있다.
도 5는 거동 엔진(BE)(102) 및 NLU 프레임워크(104)가 에이전트 자동화 프레임워크(100)의 실시예 내에서 각각의 역할들을 수행하는 프로세스(145)를 도시하는 흐름도이다. 예시된 실시예에 있어서, NLU 프레임워크(104)는 수신된 사용자 발화(122)를 처리하여 의도-엔티티 모델(108)에 기반하여 아티팩트들(140)(예를 들어, 의도들 및/또는 엔티티들)을 추출한다. 추출된 아티팩트들(140)은 BE(102)에 의해 소모가능한 형태로 사용자 발화(122)의 의도들 및 엔티티들을 나타내는 심볼들의 집합으로서 구현될 수 있다. 이와 같이, 이러한 추출된 아티팩트들(140)은 BE(102)에 제공되고, BE(102)는 대화 모델(110)에 기반하여 수신된 아티팩트들(140)을 처리함으로써, 수신된 사용자 발화(122)에 응답하여 적절한 액션들(142)(예를 들어, 패스워드를 변경하는 것, 기록을 생성하는 것, 아이템을 구매하는 것, 계정을 닫는 것) 및/또는 가상 에이전트 발화들(124)을 결정한다. 화살표(144)에 의해 표시된 바와 같이, 프로세스(145)는 에이전트 자동화 프레임워크(100)가 대화 포맷으로 동일한 사용자 및/또는 다른 사용자들로부터 추가적인 사용자 발화들(122)을 수신하고 다룸에 따라 연속적으로 반복될 수 있다.
도 5에 도시된 바와 같이, 특정 상황들에서, 적절한 액션들(142)이 수행되었으면 더 이상의 액션 또는 통신이 발생하지 않을 수 있다는 것을 알 수 있다. 또한, 사용자 발화(122) 및 에이전트 발화(124)가 본 명세서에서 서면 대화 매체 또는 채널(예를 들어, 채팅, 이메일, 티켓팅 시스템, 텍스트 메시지들, 포럼 게시물들)을 이용하여 전달되는 것으로 논의되지만, 다른 실시예들에서는, 음성 대 텍스트 및/또는 텍스트 대 음성 모듈들 또는 플러그-인들은 본 개시내용에 따라 구두 사용자 발화(122)를 텍스트로 변환하고/하거나 텍스트 기반 에이전트 발화(124)를 음성으로 변환하여 음성 대화형 시스템을 가능하게 하도록 포함될 수 있음에 유의해야 한다. 또한, 특정 실시예들에서, 사용자 발화(122) 및 가상 에이전트 발화(124) 둘 다는 에이전트 자동화 프레임워크(100) 내에서 새로운 구조 및 어휘의 계속된 학습을 가능하게 하기 위해 데이터베이스(106)에(예를 들어, 발화들(112)의 코퍼스에) 저장될 수 있다.
언급된 바와 같이, NLU 프레임워크(104)는 NLU의 어려운 문제를 관리가능한 검색 문제, 즉, 의미 추출 서브시스템 및 의미 검색 서브시스템으로 변환하기 위해 협력하는 2개의 주요 서브시스템을 포함한다. 예를 들어, 도 6은 에이전트 자동화 프레임워크(100)의 실시예 내의 NLU 프레임워크(104)의 의미 추출 서브시스템(150) 및 의미 검색 서브시스템(152)의 역할들을 예시하는 블록도이다. 예시된 실시예에 있어서, 도 6의 우측 부분(154)은 모델의 다양한 아티팩트들 각각에 대한 샘플 발화들(155)을 포함하는, 의도-엔티티 모델(108)을 수신하는 NLU 프레임워크(104)의 의미 추출 서브시스템(150)을 예시한다. 의미 추출 서브시스템(150)은 의도-엔티티 모델(108)의 샘플 발화들(155)의 의미 표현들(158)(예를 들어, 샘플 의미 표현들)을 포함하는 이해 모델(157)을 생성한다. 다시 말해서, 이해 모델(157)은 아래에 더 상세히 논의되는 바와 같이, 의미 검색 서브시스템(152)에 의한 검색(예를 들어, 비교 및 매칭)을 가능하게 하기 위한 의미 표현들(158)(예를 들어, 검색 키 의미 표현들)을 포함하는 의도-엔티티 모델(108)의 변환된 또는 증강된 버전이다. 이와 같이, 도 6의 우측 부분(154)은 일반적으로, 예를 들어 일상적으로, 스케줄링 기반으로 또는 의도-엔티티 모델(108)에 대한 업데이트들에 응답하여 사용자 발화(122)를 수신하기 전에 수행된다는 것을 알 수 있다.
도 6에 도시된 실시예의 경우, 좌측 부분(156)은 적어도 하나의 의미 표현(162)을 갖는 발화 의미 모델(160)(본 명세서에서 검색 키(160)로도 지칭됨)을 생성하기 위해 사용자 발화(122)를 또한 수신 및 처리하는 의미 추출 서브시스템(150)을 도시한다. 아래에 더 상세히 논의되는 바와 같이, 이러한 의미 표현들(158 및 162)은 발화의 문법적 구문 구조를 캡처하는 형태를 갖는 데이터 구조들이며, 데이터 구조들의 서브트리들은 발화의 부분들의 의미론적 의미들을 인코딩하는 서브트리 벡터들을 포함한다. 이와 같이, 주어진 발화에 대해, 대응하는 의미 표현은 아래에 더 상세히 설명되는 바와 같이, 의미 검색 서브시스템(152)에 의한 검색, 비교 및 매칭을 가능하게 하는 공통 의미 표현 포맷으로 구문론적 및 의미론적 의미 둘 다를 캡처한다. 따라서, 발화 의미 모델(160)의 의미 표현들(162)은 일반적으로 검색 키와 같은 것으로 생각될 수 있는 반면, 이해 모델(157)의 의미 표현들(158)은 검색 키가 추구될 수 있는 검색 공간을 정의한다. 따라서, 의미 검색 서브시스템(152)은 이해 모델(157)의 의미 표현들(158)을 검색하여, 아래에 논의되는 바와 같이 발화 의미 모델(160)의 의미 표현(162)과 매칭되는 하나 이상의 아티팩트를 찾음으로써, 추출된 아티팩트들(140)을 생성한다.
도 6의 의미 추출 서브시스템 자체는 의미 표현들(158 및 162)을 생성하기 위해 협력하는 NLU 프레임워크(104)의 다수의 서브시스템들을 이용한다. 예를 들어, 도 7은 에이전트 자동화 프레임워크(100)(본 명세서에서 에이전트 자동화 시스템으로도 지칭됨)의 NLU 프레임워크(104)의 의미 추출 서브시스템(150)의 실시예를 예시하는 블록도이다. 의미 추출 서브시스템(150)의 예시된 실시예는 도 6과 관련하여 전술한 바와 같이, 사용자 발화(122) 또는 의도-엔티티 모델(108)의 샘플 발화들(155) 중 하나일 수 있는 발화(168)에 대한 발화 트리(166)를 생성하기 위해 ML 기반 방법들과 인터리빙된 규칙 기반 방법들을 이용한다. 더 구체적으로, 도 7은 의미 추출 서브시스템(150)의 실시예들이 어떻게 전체 NLU 프레임워크(104)에 플러그-인될 수 있는 규칙 기반 및 ML 기반(예를 들어, 통계) 모델들 및 프로그램들의 조합들을 포함하는 다수의 최상의 모델들을 이용할 수 있는지를 예시한다. 예를 들어, 예시된 의미 추출 서브시스템(150)의 플러깅가능한 설계 때문에, 어휘 서브시스템(170)은 다양한 단어들 또는 구들에 대한 단어 벡터들을 정의하는 임의의 적절한 단어 벡터 분포 모델을 포함할 수 있다. 즉, 상이한 단어 분포 모델들이 주어진 대화 채널, 언어, 맥락 등에서 다른 것들에 비해 우수할 수 있는 것으로 인식되기 때문에, 개시된 플러깅가능한 설계는 의미 추출 서브시스템(150)이 특정 환경들 및 애플리케이션들에 맞춤화될 수 있게 한다. 도 7에 예시된 실시예에 있어서, 의미 추출 서브시스템(150)은 NLU 프레임워크(104)의 3개의 플러그-인 지원 서브시스템, 즉 어휘 서브시스템(170), 구조 서브시스템(172) 및 운율 서브시스템(174)을 이용하고, 이러한 서브시스템들의 다양한 출력들은 발화(168)로부터 발화 트리(166)를 생성하기 위해 저장된 규칙들(114)에 따라 조합된다.
도 7에 도시된 의미 추출 서브시스템(150)의 실시예의 경우, 어휘 서브시스템(170)은 일반적으로 의미 추출 서브시스템(150)의 어휘를 처리한다. 이와 같이, 도시된 의미 추출 서브시스템(150)은 발화들의 어휘의 분석 및 추출을 가능하게 하는 다수의 어휘 플러그-인(176)을 포함한다. 예시된 실시예의 경우, 어휘 플러그-인들(176)은 학습된 멀티모드 단어 벡터 분포 모델(178), 학습된 유니모드 단어 벡터 분포 모델(180), 및 임의의 다른 적절한 단어 벡터 분포 모델(182)을 포함한다. 이러한 맥락에서, "유니모드"는 각각의 단어에 대한 단일의 각각의 벡터를 갖는 단어 벡터 분포 모델들을 지칭하는 반면, "멀티모드"는 상이한 맥락들에서 상이한 의미들을 가질 수 있는 특정 단어들(예를 들어, 동음이의어들, 다의어들)에 대한 복수의 벡터를 지원하는 단어 벡터 분포 모델들을 지칭한다(예를 들어, "뱅크(bank)"는 돈을 보관하기 위한 장소, 돈 자체, 항공기의 조종, 또는 강 근처의 위치를 지칭할 수 있다). 모델들(178, 180 및 182)은 언어, 대화 스타일, 대화 채널 등과 같은 적절한 파라미터들에 기반하여 선택될 수 있는 단어 벡터들의 플러깅가능한 집합들을 제공한다.
예를 들어, 학습된 멀티모드 분포 모델(178) 및 학습된 유니모드 분포 모델(180)은 도 12와 관련하여 아래에 논의되는 바와 같이, 무감독 학습 또는 다른 일반 클러스터링 알고리즘들을 이용하여 생성되는 단어 분포들(예를 들어, 단어 벡터들의 정의된 벡터 공간들)을 제공할 수 있다. 즉, 발화들 내에서 아주 근접하여 흔히 이용되는 단어들이 종종 관련된 의미들을 갖는다는 것을 인식하면, 학습된 멀티모드 분포 모델(178) 및 학습된 유니모드 분포 모델(180)은 (예를 들어, 발화들(112)의 코퍼스로부터) 발화들의 통계적 분석을 수행한 다음, 단어가 이들 발화들 내의 다른 단어들과 관련하여 흔히 이용되는 방법에 기반하여 단어들에 대한 벡터들을 정의함으로써 생성될 수 있다. 이와 같이, 이들 어휘 플러그-인들(176)은 어휘 서브시스템(170)이 사용자 발화(122) 및 샘플 발화들(155)을 처리할 때, 동의어들, 오기 단어들, 인코딩된 심볼들(예를 들어, 웹 주소들, 네트워크 경로들, 이모티콘들, 및 이모지들), 어휘 외 용어들 등을 인식하고 다룰 수 있게 한다. 특정 실시예들에서, 어휘 서브시스템(170)은 아래에 논의되는 바와 같이, 발화 트리(166)의 노드들에 대한 단어 벡터들을 생성하기 위해 저장된 규칙들(114)에 기반하여 다양한 어휘 플러그-인들(176)에 의해 출력되는 단어 벡터들을 조합하거나 이들로부터 선택할 수 있다. 또한, 단어 벡터 분포 모델들(178, 180, 및/또는 182)은 도 12와 관련하여 아래에 논의되는 바와 같이, 수신된 사용자 발화들(122)에 대해 수행되는 무감독 학습에 기반하여 계속 업데이트될 수 있다.
도 7에 도시된 실시예에 있어서, 의미 추출 서브시스템(150)의 구조 서브시스템(172)은 규칙 기반 및 ML 기반 구조 파싱 플러그-인들(184)의 조합을 이용하여 발화(168)의 언어학적 형상을 분석한다. 즉, 도시된 구조 플러그-인들(184)은 발화들(122 및 155)의 구문론적 및 문법적 구조의 분석 및 추출을 가능하게 한다. 예시된 실시예에 있어서, 구조 플러그-인들(184)은 규칙 기반 파서들(186), ML 기반 파서들(188)(예로서, DNN 기반 파서들, RNN 기반 파서들 등) 및 다른 적절한 파서 모델들(190)을 포함한다. 예를 들어, 이러한 구조 플러그-인들(184) 중 하나 이상은 발화의 각각의 단어 또는 구에 대한 클래스 주석부기들 또는 태깅을 (예를 들어, 동사, 주어 또는 엔티티, 직접 목적어, 수식어 등으로서) 가능하게 한다. 특정 실시예들에서, 구조 서브시스템(172)은 후술하는 바와 같이 발화 트리들(166)의 구조 또는 형상을 정의하는데 이용되는 데이터베이스(106) 내에 저장된 하나 이상의 규칙(114)에 기반하여 다양한 구조 플러그-인들(184)에 의해 출력되는 파스 구조들을 조합하거나 이들로부터 선택할 수 있다.
도 7에 도시된 실시예의 경우, 의미 추출 서브시스템(150)의 운율 서브시스템(174)은 규칙 기반 및 ML 기반 운율 플러그-인들(196)의 조합을 이용하여 발화(168)의 운율을 분석한다. 도시된 운율 플러그-인들(192)은 규칙 기반 운율 시스템들(194), ML 기반 운율 시스템들(196) 및 다른 적절한 운율 시스템들(198)을 포함한다. 이러한 플러그-인들을 이용하여, 운율 서브시스템(174)은 예를 들어 의도들 간의 경계들, 상이한 의도들에 대한 긴급도 또는 상대적 중요도 등을 결정하는데 이용될 수 있는 리듬(예로서, 발화 버스트들, 구두점 또는 일시정지들에 의해 표시되는 세그먼트화들과 같은 채팅 리듬), 강조(예로서, 대문자 사용, 볼드체 사용, 밑줄, 별표들), 중점 또는 주의(예로서, 특정 용어들 또는 스타일들의 반복) 등과 같은 기입된 운율 큐들을 포함하는 운율적 큐들에 대해 발화(168)를 분석한다. 이와 같이, 특정 실시예들에서, 운율 서브시스템(174)은 후술하는 바와 같이 발화 트리(166)를 생성하기 위해 데이터베이스(106)에 저장된 규칙들(114)에 기반하여 다양한 운율 플러그-인들(192)에 의해 출력되는 운율 파싱된 구조들을 조합하거나 이들로부터 선택할 수 있다.
이와 같이, 도 7에 도시된 의미 추출 서브시스템(150)의 실시예에 있어서, NLU 프레임워크(104)의 어휘 서브시스템(170), 구조 서브시스템(172), 및 운율 서브시스템(174)은 하나 이상의 규칙(114)에 기반하여 발화(168)로부터 발화 트리(166)를 생성하도록 협력한다. 특정 실시예들에서, 하나의 서브시스템(예를 들어, 운율 서브시스템(174))의 출력의 일부는 발화(168)로부터 발화 트리(166)를 생성할 때 다른 서브시스템(예를 들어, 구조 서브시스템(172))에 대한 입력으로서 제공될 수 있다는 것을 알 수 있다. 의미 추출 서브시스템(150)에 의해 생성된 결과적인 발화 트리(166) 데이터 구조는 다수의 노드를 포함하고, 각각의 노드는 어휘 서브시스템(170)에 의해 제공된 각각의 단어 벡터와 연관된다. 또한, 이러한 노드들은 저장된 규칙들(114)에 따라 구조 서브시스템(172) 및 운율 서브시스템(174)의 출력에 기반하여 트리 구조를 형성하도록 함께 배열되고 결합된다.
예를 들어, 도 8은 본 접근법의 실시예에 따른, 발화(168)에 대해 생성된 발화 트리(166)의 예를 나타내는 도면이다. 언급된 바와 같이, 발화 트리(166)는 발화(168)에 기반하여 의미 추출 서브시스템(150)에 의해 생성되는 데이터 구조이다. 특정 실시예들에서, 발화 의미 모델(160)의 의미 표현들(162) 및 이해 모델(157)의 의미 표현들(158)이 발화 트리들인(또는 발화 트리들로부터 도출되는) 반면, 다른 실시예들에서는, 다른 파스 구조들이 이용될 수 있다. 도 8에 도시된 예의 경우, 발화 트리(166)는 예시적인 발화, "나는 오늘 쇼핑몰 옆에 있는 가게에 가서 파란색 깃이 있는 셔츠와 검은색 바지를 사고 또한 일부 결함이 있는 배터리들을 반품하고 싶다"에 기반한다. 도시된 발화 트리(166)는 트리 구조로 배열된 노드들(202)의 세트(예를 들어, 노드들(202A, 202B, 202C, 202D, 202E, 202F, 202G, 202H, 202I, 202J, 202K, 202L, 202M, 202N, 및 202P))를 포함하고, 각각의 노드는 발화(168)의 특정 단어 또는 구를 나타낸다. 노드들(202)의 각각이 또한 발화 트리(166)의 특정 서브트리를 나타내는 것으로 설명될 수 있고, 서브트리가 하나 이상의 노드(202)를 포함할 수 있다는 점에 유의할 수 있다.
언급된 바와 같이, 도 8에 도시된 발화 트리(166)의 형태 또는 형상은 운율 서브시스템(174) 및 구조 서브시스템(172)에 의해 결정되고, 예시적인 발화의 구문론적인 문법적 의미를 나타낸다. 더 구체적으로, 운율 서브시스템(174)은 발화를 의도 세그먼트들로 분해하는 반면, 구조 서브시스템(172)은 이러한 의도 세그먼트들로부터 발화 트리(166)를 구성한다. 노드들(202) 각각은 발화의 특정 단어 또는 구의 의미론적 의미를 표시하기 위해 어휘 서브시스템(170)에 의해 결정되는 각각의 단어 벡터를 저장 또는 참조한다. 언급된 바와 같이, 각각의 단어 벡터는 발화의 일부의 의미론적 의미의 수학적 표현을 제공하는 부동 소수점 값들(예를 들어, 1xN 또는 Nx1 행렬)의 순서화된 n차원 리스트(예를 들어, 300차원 리스트)이다.
또한, 노드들(202) 각각은 그 노드에 의해 표현되는 단어 또는 구에 관한 추가적인 정보로 구조 서브시스템(172)에 의해 주석부기된다. 예를 들어, 도 8에서, 노드들(202) 각각은 클래스 또는 품사(POS) 주석부기를 갖는다. 특히, 도 8에 도시된 예시적인 발화 트리의 경우, 특정 서브트리들 또는 노드들(예를 들어, 노드들(202A, 202B, 202C, 및 202D))은 동사 노드들이 되도록 주석부기되고, 특정 서브트리들 또는 노드들(예를 들어, 노드들(202E, 202F, 202G, 202H, 202I, 및 202J))은 주어 또는 목적어 노드들이 되도록 주석부기되고, 특정 서브트리들 또는 노드들(예를 들어, 노드들(202K, 202L, 202M, 202N, 및 202P))은 구조 서브시스템(172)에 의해 수식어 노드들(예를 들어, 주어 수식어 노드들, 목적어 수식어 노드들, 동사 수식어 노드들)이 되도록 주석부기된다. 이러한 클래스 주석부기들은 도 8에 도시된 예시적인 발화 트리(166)와 같이 발화 트리들로부터 생성되는 의미 표현들을 비교할 때 의미 검색 서브시스템(152)에 의해 이용된다. 이와 같이, 의미 표현들이 생성되는 발화 트리(166)는 의도 및/또는 엔티티 추출을 위한 기반(예를 들어, 초기 기반)으로서 역할을 한다는 것을 알 수 있다.
도 6을 간략히 참조하면, 언급된 바와 같이, NLU 프레임워크(104)에 의한 의미 검색의 성능은 NLU 프레임워크가 수신된 사용자 발화들(122)의 복수의 대안적인 형태들을 도출하여 의도-엔티티 모델(108)의 샘플 발화들(155)의 복수의 대안적인 형태들과 비교할 수 있게 함으로써 개선될 수 있다. 예를 들어, 특정 실시예들에서, 의미 검색 서브시스템(152)에 의해 수행되는 의미 검색 동안, 이해 모델(157)의 의미 표현들(158), 및 잠재적으로 추가적인 이해 모델들의 의미 표현들을 포함하는 검색 공간이 정의될 수 있다. 추가적으로, 특정 실시예들에서, 이 검색 공간은 검색 중인 사용자 발화(122)의 CCG 형태에 기반하여 반복적으로 전지될 수 있고, 여기서 CCG 형태는 발화 의미 모델(160)의 의미 표현들(162)의 구조 내에 캡처된다. 특히, 사용자 발화(122)로부터 도출된 복수의 대안적인 의미 표현들은 검색 공간 내에 어떤 다른 비교가능한 의미 표현들(158)이 존재하는지를 결정하는데 이용될 수 있고, 여기서 비-비교가능한 의미 표현들은 검색 레이턴시 및 전체 모든 컴퓨팅 자원 이용을 개선하기 위해 고려로부터 제거될 수 있다. 이와 같이, 발화 의미 모델(160)에서 상이한 CCG 형태들을 갖는 사용자 발화(122)의 복수의 대안적인 의미 표현들(162)을 갖는 것은 의미 검색 동안 검색 공간의 현저히 상이한 전지를 낳을 수 있어서, 검색 공간의 더 포괄적인 의미 검색을 가능하게 한다.
또한, 의미 검색 서브시스템(152)이 발화 의미 모델(160)의 의미 표현들(162)을 이해 모델(157)의 의미 표현들(158)과 비교하고 있을 때, 의미 표현들(162 및 158)의 복수의 대안적인 형태들을 갖는 것이 또한 유리할 수 있다. 예를 들어, 특정 실시예들에서, CCG 형태 클래스 데이터베이스(예를 들어, 데이터베이스(106)의 일부)는 다수의 상이한 CCG 형태들(예를 들어, 동사-주도(verb-led) CCG 형태, 명사-주도(noun-led) CCG 형태)을 저장할 수 있다. 각각의 CCG 형태는 의미 검색 서브시스템(152)이 CCG 형태를 갖는 발화 의미 모델(160)의 의미 표현들(162)과 동일한 CCG 형태(또는 상이한, 비교가능한 CCG 형태)를 갖는 이해 모델(157)의 의미 표현들(158) 사이의 유사도 스코어를 계산할 수 있게 하는 수학적 함수들의 집합과 연관된다. 또한, 특정 실시예들에서, 의미 검색 서브시스템(152)은 이러한 수학적 함수들을 이용하여 2개의 비교가능한 의미 표현의 확장되는 수의 노드들을 반복적으로 비교할 수 있고, 노드들이 고려되는 순서는 또한 의미 표현들의 형태 또는 형상에 의존한다. 이와 같이, 발화 의미 모델(160)에서 상이한 CCG 형태들을 갖는 복수의 대안적인 의미 표현들(162)을 갖는 것은 상이한 수학적 함수들을 이용하여 이해 모델(157)의 상이한 의미 표현들(158)과의 상이한 비교들을 가능하게 하고, 이는 또한 더 포괄적인 의미 검색을 가능하게 한다.
이상의 내용을 염두에 두고, 도 9는 NLU 프레임워크(104)의 의미 추출 서브시스템(150)이 수신된 사용자 발화(122)에 기반하여 발화 의미 모델(160)의 하나 이상의 검색 키를 생성하고 하나 이상의 이해 모델(157)에 기반하여 검색 공간을 생성하는 프로세스(250)의 실시예를 나타내는 흐름도이다. 프로세스(250)는 또한 일반적으로 의미 검색 서브시스템(152)이 사용자 발화(122)의 아티팩트들(140)(예를 들어, 의도 및/또는 엔티티들)을 추출하기 위해 검색 키들에 기반하여 검색 공간을 검색하는 것을 포함한다. 다른 실시예들에서, 프로세스(250)의 단계들은 NLU 프레임워크(104)의 다른 적절한 구성요소들에 의해 수행될 수 있다. 또한, 프로세스(250)는 도 3, 도 4a 및 도 4b와 관련하여 전술한 바와 같이 클라이언트 인스턴스(42) 또는 기업 인스턴스(125)와 연관된 적절한 프로세서(예를 들어, 프로세서(들)(82))에 의해 실행되고 적절한 메모리(예를 들어, 메모리(86))에 저장될 수 있다.
프로세스(250)의 예시된 실시예는 의미 추출 서브시스템(150)이 사용자 발화(122)로부터 발화 의미 모델(160)을 생성하는 것(블록 252)으로 시작한다. 언급된 바와 같이, 발화 의미 모델(160)은 각각이 나중의 의미 검색 동작을 위한 검색 키로서 역할하는 하나 이상의 의미 표현을 포함한다. 발화 의미 모델(160)의 검색 키들의 생성은 도 10 내지 도 12와 관련하여 아래에 더 상세히 논의된다. 또한, 도 9에 도시된 바와 같이, 의미 추출 서브시스템(150)은 또한 하나 이상의 이해 모델(157)로부터 검색 공간(256)(예를 들어, 컴파일링된 검색 공간)을 생성한다(블록 254). 검색 공간(256)은 의미 검색 동작 동안 발화 의미 모델(160)의 검색 키 의미 표현들과 비교되는 적어도 하나의 이해 모델(157)로부터의 의미 표현들을 포함한다. 검색 공간의 생성은 또한 도 10 내지 도 12와 관련하여 아래에 더 상세히 논의된다.
이어서, 의미 추출 서브시스템(150)에 의해 준비된 검색 공간(256) 및 검색 키들(160)은 의미 검색(본 명세서에서 "의도 추론"으로도 지칭됨)을 수행하기 위해 의미 검색 서브시스템(152)에 제공되거나 이용가능하게 된다. 도 9에 도시된 실시예에 있어서, 의미 검색 서브시스템(152)은 발화 의미 모델(160)의 검색 키에 기반하여 검색 공간(256)의 비교가능한 의미 표현들의 신축적인 빔-폭 인지 구축 문법(CCG) 형태 기반 검색을 수행하여, 컨텐더 매칭 의미 표현들의 세트(260)를 식별한다(블록 258). 본 명세서에서 사용되는 바와 같이, "신축적인 빔-폭", "동적 빔-폭" 또는 "가변 빔-폭"은 신축적인(예를 들어, 동적, 가변) 신뢰도 임계치에 기반한 각각의 비교에 대한 가변 수의 검색 매치들을 식별하도록 정의되는 검색 동작들을 지칭한다. 예를 들어, 후술하는 바와 같이, 신축적인 빔-폭 검색 동작은 원하는 신뢰도 임계값을 제공받을 수 있고, 의미 검색 서브시스템(152)은 신뢰도 임계값을 만족시키는 가변 수의 잠재적인 검색 매치들을 식별할 수 있다. 이것은 정적 또는 비-신축적인 빔 폭으로서 설명될 수 있는, 의미 검색 동작 동안 식별될 수 있는 정적인 최대 수의 잠재적인 매치들을 정의하는 다른 의미 검색 실시예들과 대조적이다. 또한, 후술하는 바와 같이, 특정 실시예들에서, 검색 동작과 관련된 신뢰도 임계값은 검색 동작 동안 신축적인 빔-폭(식별된 잠재적인 검색 매치들의 수)을 넓히거나 확장하기 위해 완화 함수를 이용하여 추가로 완화될 수 있다. 예를 들어, 신축적인 빔-폭 검색의 신뢰도 임계치는 초기 값(예를 들어, 80% 신뢰도)을 정의할 수 있지만, 완화된 신뢰도 임계치는 실질적으로 더 낮아서(예를 들어, 50% 신뢰도), 추가적인 검색 매치들의 식별을 가능하게 할 수 있다. 신축적인 빔-폭 CCG 형태 기반 검색은 도 14 내지 도 17과 관련하여 더 상세히 논의된다.
도 9에 도시된 실시예의 경우, 프로세스(250)는 의미 검색 서브시스템(152)이 블록(258)에서 식별된 컨텐더 매칭 의미 표현들의 세트(260)에 기반하여 신축적인 빔-폭 아티팩트내 검색을 수행하여(블록 262) 매칭 의미 표현들의 최종 세트(264)를 생성하는 것으로 계속된다. 특히, 세트(264) 내의 각각의 컨텐더는 샘플 공간(256)의 컨텐더-아티팩트-특정 부분을 탐색함으로써 더 정밀화된다. 예를 들어, 특정 의도(예로서, "MeetingRequest")와 연관된 의미 표현이 세트(260) 내의 컨텐더인 경우, 신축적인 빔-폭 아티팩트내 검색은 의미 표현을 비교하기 위해 이 의도의 범위 내에 드는 샘플 공간(256)의 부분(예로서, 검색 부분 공간)에 초점을 맞춘다. 신축적인 빔-폭 아티팩트내 검색의 일반적인 목표는 컨텐더 매칭 의미 표현들의 세트(260)의 아티팩트들에 의해 정의되는 검색 부분 공간을 통해 점진적으로 검색하고, 마지막으로 비교되는 의미 표현들의 점진적으로 더 큰 부분들을 고려함으로써 유사도 신뢰도 척도들에 도달하는 것에 의해 블록(258)의 신축적인 빔-폭 CCG 형태 기반 검색 동안 결정되는 신뢰도 값들을 정밀화하는 것이다. 신축적인 빔-폭 아티팩트내 검색은 도 17 및 도 18과 관련하여 더 상세히 논의된다.
예시된 실시예에서, 프로세스(250)는 의미 검색 서브시스템(152)이 매칭 의미 표현들의 최종 세트(264)로부터 아티팩트들(140)(예를 들어, 의도들 및/또는 엔티티들)을 추출하는 것(블록 266)으로 종료된다. 특정 실시예들에서, 추출된 아티팩트들(140)은 사용자 발화(122)의 의도들 및/또는 엔티티들을 나타내고, 그 각각은 각각의 신뢰도 값들(예를 들어, 블록(262)에서 생성되고 블록(266)에서 정밀화됨)과 연관될 수 있다. 추출된 아티팩트들(140)뿐만 아니라, 이들 각각의 신뢰도 값들은 후속하여 BE(102)에 제공되고, 여기서 BE(102)는 도 5와 관련하여 논의된 바와 같이, 액션(142)을 수행하고/하거나 에이전트 발화(124)(예를 들어, 확인 메시지 또는 추가적인 정보에 대한 프롬프트)를 제공함으로써 응답한다.
도 10은 의미 추출 서브시스템(150)이 복수의 이해 모델들(157)로부터 검색 공간(256)을 컴파일링하고, 이어서 발화 의미 모델(160)의 검색 키들을 검색 공간(256)의 의미 표현들(158)과 비교하여 아티팩트들(140)을 추출하는 것의 실시예를 나타내는 정보 흐름도이다. 검색 공간(256)의 생성과 관련하여, 의미 추출 서브시스템(150)은 특정 목적 또는 도메인에 각각 맞는 복수의 의도-엔티티 모델들(108)과 같은 의도-엔티티 모델들의 세트(270)의 샘플 발화들(155)을 집계할 수 있다. 언급된 바와 같이, 세트(270)의 각각의 의도-엔티티 모델(108)은, 많은 다른 적절한 상호작용들 중에서도, 인사말 사용자들, 회의 관리, 기업의 특정 제품 관리, 인적 자원 액션들의 관리, 및/또는 사용자들과의 대화 종료와 같은, 사용자들과의 임의의 적절한 자연어 상호작용과 관련한 의미 검색들을 수행하기 위해 NLU 프레임워크(104)에 대한 안내를 제공하는 샘플 발화들(155)을 포함할 수 있다. 샘플 발화들(155)은 각각의 제각기의 샘플 발화(155)에 가능한 형태들을 할당할 뿐만 아니라 각각의 제각기의 샘플 발화(155)의 다의어 표현을 고려하는 의미 표현들의 세트(272)를 생성하기 위해 의미 추출 서브시스템(150)에 의해 분석된다. 의미 표현들의 세트(272)에 대해, 이해 모델들의 세트(274)의 각각의 이해 모델이 생성될 수 있고, 세트(274)의 각각의 이해 모델은 각각의 모델 특정 검색 공간(276)을 정의한다.
유사하게, 검색 키 생성 및 이용 동안, 의미 추출 서브시스템(150)은 사용자 발화(122)를 수신하고, 사용자 발화(122)에 대한 의미 표현들의 세트(278)를 도출한다. 따라서, 의미 추출 서브시스템(150)은 검색 공간(256)과의 비교를 위해 의미 표현들의 세트(278)로부터 발화 의미 모델(160)(검색 키들)을 생성한다. 실제로, 아래에 더 상세히 논의되는 바와 같이, 의미 검색 서브시스템(152)은 검색 키들(160)을 정의하는 세트(278)의 의미 표현들을 검색 공간(256)의 의미 표현들(158)과 비교하여, 임의의 적절한 매칭 의미 표현들(280)을 식별하고, 이는 NLU 프레임워크(104)가 그로부터 추출된 아티팩트들(140)을 식별할 수 있게 한다. 의미 검색 서브시스템(152)은 또한 매칭 의미 표현들(280) 및/또는 그 안의 아티팩트들을 동반되는 신뢰도 레벨로 스코어링하여, 의미 표현들(158)로부터 가장 가능성 있는 추출된 아티팩트들(140)에 대한 적절한 에이전트 응답들(124) 및/또는 액션들(142)을 용이하게 할 수 있다.
이상의 내용을 염두에 두고, 도 11은 NLU 프레임워크(104)의 의미 추출 서브시스템(150)이 원래 발화(302)의 재표현들을 생성한 후, 이러한 재표현들 및 원래 발화(302)에 기반하여 의미 표현들의 세트(304)를 생성하는 프로세스(300)의 실시예를 나타내는 흐름도이다. 특정 경우들에서, 원래 발화(302)는 수신된 사용자 발화(122)일 수 있고, 의미 표현들의 결과적인 세트(304)는 본 명세서에서 검색 키로도 지칭되는 발화 의미 모델(160)의 의미 표현들(162)이 될 수 있다는 것을 알 수 있다. 다른 경우들에서, 원래 발화(302)는 검색 공간(256)을 채우는데 이용되는 의도-엔티티 모델(108)의 샘플 발화들(155) 중 하나일 수 있다. 도 11에 도시된 실시예에서, 프로세스(300)의 일부는 NLU 프레임워크(104)의 의미 추출 서브시스템(150)의 어휘 서브시스템(170)에 의해 수행되는 반면, 다른 부분은 의미 추출 서브시스템(150)의 구조 서브시스템(172)에 의해 수행된다. 다른 실시예들에서, 프로세스(300)의 단계들은 NLU 프레임워크(104)의 다른 적절한 구성요소들에 의해 수행될 수 있다. 또한, 프로세스(300)는 도 3, 도 4a 및 도 4b와 관련하여 전술한 바와 같이, 클라이언트 인스턴스(42) 또는 기업 인스턴스(125)와 연관된 적절한 프로세서(예를 들어, 프로세서(들)(82))에 의해 실행되고 적절한 메모리(예를 들어, 메모리(86))에 저장될 수 있다.
도 11에 도시된 실시예의 경우, 프로세스(300)는 NLU 프레임워크(104)의 어휘 서브시스템(170)이 원래 발화(302)를 클렌징하는 것(블록 306)으로 시작한다. 예를 들어, 어휘 서브시스템(170)은 발화의 특정 토큰들(예를 들어, 단어들, 구들, 구두점, 이모지들)을 수정하기 위해 데이터베이스(106)에 저장된 규칙들(114)에 액세스하고 이를 적용할 수 있다. 예를 들어, 특정 실시예들에서, 클렌징은 원래 발화(302)로부터 비-텍스트 요소들(예를 들어, 이모티콘들, 이모지들, 구두점)을 제거하는 규칙을 적용하는 것을 수반할 수 있다. 특정 실시예들에서, 클렌징은 발화에서의 오철자들 또는 오타 에러들을 정정하는 것을 수반할 수 있다. 추가적으로, 특정 실시예들에서, 클렌징은 특정 토큰들을 다른 토큰들로 대체하는 것을 수반할 수 있다. 예를 들어, 어휘 서브시스템(170)은 모든 엔티티들이 일반 또는 전역 엔티티(예를 들어, "TIME", "COLOR")를 갖는 시간 또는 컬러를 참조한다는 규칙을 적용할 수 있다.
도 11에 도시된 실시예에 있어서, 프로세스(300)는 어휘 서브시스템(170)이 원래 발화(302)에 대해 어휘 주입을 수행하는 것(블록 308)으로 계속된다. 어휘 주입은 일반적으로 원래 발화(302)의 복수의 리렌더링을 도입하는 것을 수반한다. 예를 들어, 어법 및/또는 용어는 이해 모델(157)의 어휘 모델(310)에 의해 지시되는 바와 같이, 더 담화(discourse) 적합 구들 및/또는 용어들로 대체될 수 있다. 특정 실시예들에서, 복수의 구들 및/또는 용어들이 대체될 수 있고, 이러한 대체들의 다양한 순열들은 원래 발화(302)에 기반하여 발화들의 세트(312)를 생성하는데 이용된다. 예를 들어, 특정 실시예들에서, 어휘 서브시스템(170)은 상이한 토큰들을 갖는 발화들의 재표현들을 생성하는데 이용될 수 있는 대안적인 어휘를 식별하기 위해 이해 모델(157)의 어휘 모델(310)에 액세스할 수 있다. 특정 예로서, 실시예에서, 어휘 서브시스템(170)은 "개발자"에 대한 동의어가 "직원"인 것으로 결정할 수 있고, 용어 "개발자"가 용어 "직원"에 의해 대체되는 새로운 발화를 생성할 수 있다.
도 11에 도시된 실시예의 경우, 클렌징 및 어휘 주입 후에, 발화들의 세트(312)는 POS 태깅 및 파싱을 위해 구조 서브시스템(172)에 제공된다. 발화들의 세트(312)는 원래 발화(302) 또는 그 클렌징된 버전을 포함할 수 있고, 블록(308)의 어휘 주입을 통해 생성된 임의의 적절한 수의 대안적인 재표현 발화들을 포함할 수 있다는 것을 알 수 있다. 특정 상황들에서, 블록(308)의 어휘 주입은 원래 발화(302)의 재표현들을 생성하지 않을 수 있고, 따라서, 발화들의 세트(312)는 원래 발화(302) 또는 그 클렌징된 버전만을 포함할 수 있다는 점에 유의할 수 있다. 다른 실시예들에서, 원래 발화(302)는 블록(306)의 클렌징 또는 블록(308)의 어휘 주입 없이 구조 서브시스템(172)에 직접 제공될 수 있다.
발화들의 세트(312)의 수신 시에, 구조 서브시스템(172)은 플러그-인들(314)의 세트를 이용하여, 원래 발화(302)를 나타내는 하나 이상의 의미 표현의 세트(304)를 생성한다(블록 316). 다른 실시예들에서, 플러그-인들(314)의 세트는 그 대신에 의미 추출 서브시스템(150) 또는 NLU 프레임워크(104)의 비-플러깅가능한 애플리케이션들 또는 모듈들로서 구현될 수 있다. 그러나, 도시된 구조 서브시스템(172)의 개시된 플러깅가능한 설계는 NLU 프레임워크(104)가 더 큰 유연성을 갖는 것을 가능하게 한다는 것이 현재 인식되고 있다. 예를 들어, 추가적인 언어들에 대한 지원은 플러그-인들(314)의 세트를 상이한 언어 또는 상이한 도메인에 대해 설계된(예를 들어, 프로그래밍되고, 훈련된) 다른 세트로 스위칭함으로써 NLU 프레임워크(104)에 추가될 수 있다.
도 11에 도시된 실시예에 있어서, 구조 서브시스템(172)의 플러그-인들(314)의 세트는 품사(POS) 플러그-인(318), 하나 이상의 정정 플러그-인(들)(320), 변동 필터(VF) 플러그-인(322), 파서 플러그-인(354), 및 최종 스코어링 및 필터링(FSF) 플러그-인(326)을 포함한다. 플러그-인들(314)의 기능들은 도 12와 관련하여 더 상세히 논의된다. 일반적으로, POS 플러그-인(318)은 연관된 품사(예를 들어, 동사, 명사, 형용사, 대명사, 부사)로 발화의 각각의 토큰의 POS 태깅을 수행하도록 훈련되는 ML 기반 구성요소(예를 들어, 피드포워드 인공 신경망)를 포함한다. POS 플러그-인(318)은 발화의 복수의 잠재적인 POS 태깅들뿐만 아니라 발화의 각각의 잠재적인 POS 태깅에 대한 대응하는 신뢰도 스코어들을 출력하도록 설계된다. 정정 플러그-인(들)(320)은 잘못된 것으로 알려진 POS 플러그-인(318)에 의해 생성된 잠재적인 POS 태깅들을 수정 또는 제거하기 위해 ML 기반 기술들을 적용하거나 규칙들(예를 들어, 데이터베이스(106)에 저장됨)을 적용하는 POS 정정 플러그-인을 포함한다. VF 플러그-인(322)은 POS 플러그-인(318)에 의해 생성된 잠재적인 POS 태깅들의 수학적 비교를 적용하고, 서로 충분히 상이하지 않은 POS 태깅들을 제거한다. 파서 플러그-인(324)은 남아 있는 후보 POS 태깅들 각각에 대한 각각의 의미 표현뿐만 아니라 파싱 동작에 대한 대응하는 신뢰도 스코어들을 생성하도록 설계 및/또는 훈련되는 규칙 기반 또는 ML 기반 구성요소(예를 들어, 피드포워드 인공 신경망)를 포함할 수 있다. 정정 플러그-인(들)(320)은 또한 잘못된 것으로 알려진 파서 플러그-인(324)에 의해 생성된 잠재적인 의미 표현들을 수정 또는 제거하기 위해 ML 기반 기술들을 적용하거나 규칙들(예를 들어, 데이터베이스(106)에 저장됨)을 적용하는 파서 정정 플러그-인을 포함한다. FSF 플러그-인(326)은 각각의 생성된 의미 표현에 대한 최종 신뢰도 스코어를 결정하고, 그 후 미리 정의된 임계치보다 큰 대응하는 최종 신뢰도 스코어를 갖는 의미 표현들의 최종 세트(304)를 출력한다.
도 12는 NLU 프레임워크(104)의 구조 서브시스템(172)이 발화(344)에 대한 복수의 대안적인 의미 표현들(342)을 생성할 수 있는 프로세스(340)의 실시예를 나타내는 흐름도이다. 이와 같이, 도 12의 프로세스(340)는 도 11의 블록(316)에 대응한다. 도 11을 참조하면, 발화(344)는 수신된 사용자 발화(122), 의도-엔티티 모델(108)의 샘플 발화들(155) 중 하나, 클렌징(블록 306)으로부터 생성된 발화, 또는 어휘 주입(블록 308)으로부터 생성된 발화와 같은 발화들의 세트(312) 중 하나일 수 있는 반면, 결과적인 의미 표현들(342)은 원래 발화(302)의 의미 표현들의 세트(304)의 일부 또는 전부일 수 있다는 것을 알 수 있다. 도 12에 도시된 실시예에 있어서, 프로세스(340)는 도 3, 도 4a 및 도 4b와 관련하여 전술한 바와 같이 클라이언트 인스턴스(42) 또는 기업 인스턴스(125)와 연관된 적절한 프로세서(예를 들어, 프로세서(들)(82))에 의해 실행되고 적절한 메모리(예를 들어, 메모리(86))에 저장될 수 있다.
도 12에 도시된 실시예의 경우, 프로세스(340)는 2개의 스테이지, 즉 POS 태깅 스테이지(346) 및 파스 스테이지(347)로 분할된다. POS 태깅 스테이지(348)는 구조 서브시스템(172)이 발화(344)의 POS 태깅을 수행(블록 348)하여 잠재적인 POS 태깅들의 세트(350)는 물론, 각각의 잠재적인 POS 태깅에 대한 대응하는 신뢰도 스코어들(352)을 생성하는 것으로 시작한다. 발화(344)에 더하여, POS 플러그-인(318)은 또한 POS 임계값을 수신한다. 예를 들어, POS 플러그-인(318)은 특정 신뢰도 레벨(예로서, 80%)을 나타내는 POS 임계값(354)을 제공받을 수 있으며, 따라서 잠재적인 POS 태깅들의 세트(350)는 POS 임계값(354) 이상인 대응하는 신뢰도 스코어를 갖는 태깅들만을 포함할 것이다. 다른 실시예들에서, POS 플러그-인(318)은 추가적으로 또는 대안적으로 POS 태깅 한계값(예로서, 10)을 수신할 수 있으며, 따라서 POS 플러그-인(318)에 의해 생성되는 잠재적인 POS 태깅들의 수는 POS 태깅 한계값으로 제한될 것이다. 특정 상황들에서, 잠재적인 POS 태깅들의 세트(350)는 단일 POS 태깅만을 포함할 수 있다는 점에 유의할 수 있다.
도 12에 도시된 실시예에 있어서, 프로세스(340)는 구조 서브시스템(172)이 정정 플러그-인(들)(320)을 이용하여 잠재적인 POS 태깅들의 세트(350)의 자동 정정(블록 356)을 수행함으로써 잠재적인 POS 태깅들의 정정된 세트(358)를 생성하는 것으로 계속된다. 예를 들어, 언급된 바와 같이, POS 플러그-인(318)은 ML 기반 구성요소를 포함할 수 있다. 이와 같이, POS 플러그-인(318)은, 예를 들어, 결함있는 훈련 데이터의 결과로서, 훈련 동안 부정확한 POS 태깅을 부주의하게 학습할 수 있다. 따라서, 정정 플러그-인(들)(320) 중 적어도 하나는 결함있는 POS 태깅들이 프로세스(340)의 남아 있는 단계들로 이월되는 것을 차단하기 위해 세트(358)로부터의 잠재적인 POS 태깅들을 수정 또는 제거하도록 설계된다. 특정 실시예들에서, 정정 플러그-인(들)(320)은 토큰-외관 형태들(예를 들어, 단어-외관 형태들)이 그 토큰에 대한 선택된 POS 태그와 매칭하는 것을 보장하기 위해 외부 어휘 데이터베이스(예를 들어, 데이터베이스(106)에 저장되고, 이해 모델(157)의 일부로서 저장됨)를 참고할 수 있다. 이러한 유형의 정정은 POS 플러그-인(318)이 보조 단어(sub-word) 학습 모델들(예를 들어, 문자-임베딩 기반 모델들, 형태소 모델들 등)에 기반하여 훈련될 때 특히 효과적일 수 있다는 것이 이해될 수 있다. 다른 실시예들에서, 정정 플러그-인(들)(320)은 특정 토큰들을 특정 POS 태그들과 연관시키도록 훈련되는 ML 기반 구성요소(예를 들어, 인공 신경망)를 포함할 수 있다. 이러한 실시예들에 있어서, 정정 플러그-인(들)(320)은 세트(350) 내의 잠재적인 POS 태깅의 각각의 태그에 대한 태깅 스코어를 결정하고, (예를 들어, 데이터베이스(106)에 저장된) 미리 결정된 태깅 임계값 미만인 태깅 스코어를 갖는 모든 잠재적인 POS 태깅들을 제거할 수 있다.
예를 들어, 특정 실시예들에서, 정정 플러그-인(들)(320)은 규칙 기반 정정 기술을 구현할 수 있다. 이러한 실시예들에 있어서, 정정 플러그-인(들)(320) 중 적어도 하나는 잠재적인 POS 태깅들의 세트(350)를 정정하기 위해 개발자에 의해 정의되고 데이터베이스(106)에 저장된 규칙들(114)에 액세스하여 이들을 적용할 수 있다. 예를 들어, POS 플러그-인(318)의 ML 기반 구성요소는 훈련 동안 토큰 "정지"가 구두점을 나타내고 동사 또는 명사를 나타내지 않는다고 잘못 학습할 수 있다. 이와 같이, 개발자는 이 부정확한 POS 태깅을 포함하는 세트(350)로부터 잠재적인 POS 태깅들을 제거하거나, 또는 잘못된 POS 태깅을 정확한 POS 태깅으로 대체하기 위해 세트(350)로부터의 잠재적인 POS 태깅들을 수정하기 위해 정정 플러그-인(들)(320)에 의해 적용될 하나 이상의 규칙(114)을 정의할 수 있다. 특정 실시예들에서, 정정 플러그-인(들)(320)은 그 대신에 잠재적인 POS 태깅들의 세트(350) 내의 엔트리들을 제거하거나 수정하기 위해 이러한 기술들의 조합을 이용할 수 있다.
도 12에 도시된 실시예의 경우, 프로세스(340)의 POS 태깅 스테이지(346)는 구조 서브시스템(172)이 VF 플러그-인(322)을 이용하여 잠재적인 POS 태깅들의 정정된 세트(358)의 변동성 필터링(블록 360)을 수행함으로써 잠재적인 POS 태깅들의 최종 후보 세트(362)를 생성하는 것으로 종료된다. 잠재적인 POS 태깅들의 정정된 세트(358)에 더하여, VF 플러그-인(322)은 또한, 정정된 세트(358) 내의 잠재적인 POS 태깅들이 서로 얼마나 상이해야 하는지를 정의하는 변동 임계값(364)을 수신한다. 변동성 필터링의 목적은, 정정된 세트(358) 내의 다른 잠재적인 POS 태깅들과 너무 유사한 것으로 고려되고, 따라서 추구할 컴퓨팅 자원 소모를 정당화할 충분히 뚜렷한 경로를 나타내지 않는 잠재적인 POS 태깅들을 제거함으로써 프로세스(340)의 효율성뿐만 아니라 후속 의미 검색을 개선하는 것이다.
변동성 필터링은 다수의 상이한 방식으로 달성될 수 있다. 일반적으로, 태깅 거리 또는 변동성 함수는, 정정된 세트(358) 내의 상이한 2개의 잠재적인 POS 태깅이 서로 얼마나 상이한지를 결정하는데 이용된다. 변동성 필터링은 의미 검색이 추가적인 컴퓨팅 자원들을 소비하여 최소한의 그리고/또는 허울뿐인 차이들만이 있는 의미 표현들로 이어지는 잠재적인 POS 태깅들 사이의 "피상적인" 차이들을 탐색하는 것을 차단하거나 방지한다. 예를 들어, 변동성 스코어는 잠재적인 POS 태깅들의 정정된 세트(358) 내의 임의의 2개의 엔트리에 대해 계산될 수 있고, 변동성 스코어가 변동 임계치(364) 미만일 때, 잠재적인 POS 태깅들 중 하나는 충분히 중복적인 것으로 고려되고 잠재적인 POS 태깅들의 최종 후보 세트(362)에 포함되지 않는다. 이와 같이, 잠재적인 POS 태깅들의 수가 비교적 작을 때(예를 들어, 10 이하일 때), 정정된 세트(358) 내의 각각의 잠재적인 POS 태깅은 이러한 방식으로 비교될 수 있다. 그러나, 더 많은 수의 잠재적인 POS 태깅들이 POS 태깅들의 정정된 세트(358) 내에 존재하는 실시예들의 경우, 클러스터링 기술들이 적용될 수 있다. 예를 들어, 태깅 거리 함수는 잠재적인 POS 태깅들이 이들 태깅 거리들에 기반하여 (예를 들어, 클러스터들 사이의 거리를 최대화함으로써, 미리 정의된 수의 클러스터들을 형성함으로써) 그룹들로 클러스터링될 수 있도록 잠재적인 POS 태깅들 사이의 태깅 거리를 결정하는데 이용될 수 있다. 후속하여, 대표적 잠재적인 POS 태깅이 각각의 그룹(예를 들어, 각각의 클러스터의 중심의 잠재적인 POS 태깅)으로부터 선택되고 프로세스(340)의 다음 단계로 진행한다. 본 개시내용에 따라, 다른 변동성 필터링 기술들이 이용될 수 있다는 것을 이해할 수 있다.
POS 태깅들의 비교적 작은 정정된 세트(358)를 갖는 일 예에서, VF 플러그-인(322)은 다이버시티 기반 포함 기술을 이용할 수 있다. 이 예에서, 발화(344)는 "내 패스워드를 변경한다"일 수 있다. 블록(348)에서, POS 플러그-인(318)은 발화(344)의 토큰들이 순서대로 (1) 동사, 형용사 및 명사의 명령 형태; 또는 (2) 동사, 형용사 및 명사; 또는 (3) 명사, 형용사 및 명사; 또는 (4) 동사, 대명사 및 명사인 것을 나타내는 잠재적인 POS 태깅들의 세트(350)를 결정할 수 있다. 블록(356)에서의 정정 후에, VF 플러그-인(322)은 잠재적인 POS 태깅들의 정정된 세트(358)를 수신하고, 잠재적인 POS 태깅들이 서로 얼마나 상이한지를 결정하기 위해 변동성 함수를 적용한다. 이 예에서, VF 플러그-인(322)은 잠재적인 POS 태깅들의 정정된 세트(358) 내의 제1 엔트리를 고려함으로써 시작한다. VF 플러그-인(322)은 비교를 위한 기준이 없기 때문에, 제1 엔트리가 충분히 상이하고 잠재적인 POS 태깅들의 최종 후보 세트(362)에 포함되어야 한다고 결정한다. 다음으로, VF 플러그-인(322)은 변동성 함수를 이용하여 제1 엔트리와 비교함으로써 잠재적인 POS 태깅들의 정정된 세트(358) 내의 제2 엔트리를 고려할 수 있다. 예시적인 변동성 함수는 가중된 평균일 수 있다. 이 예에서, 제1 및 제2 엔트리들이 비교될 때, 제1 엔트리의 제1 태그(예를 들어, 동사의 명령 형태)와 제2 엔트리의 제1 태그(예를 들어, 동사)가 비교된다. 상이한 태그 비교들에 대한 차이 값들은 규칙들(114)의 일부로서 데이터베이스(106)에 저장될 수 있다. 예를 들어, 데이터베이스(106) 내에서, 동사-동사 비교, 명사-명사 비교, 형용사-형용사 등에 할당된 차이 값은 0일 수 있고; 명령 형태의 동사-동사 비교에 할당된 차이 값은 0보다 약간 클 수 있고(예를 들어, 0.1); 동사-명사 비교, 동사-형용사, 명사-형용사 등에 할당된 차이 값은 1일 수 있으며, 다른 것들에 대해서도 그러하다. 특정 실시예들에서, 데이터베이스(106)는, 특정 POS 태그들(예를 들어, 동사들)이 다른 POS 태그들(예를 들어, 명사들, 대명사들)보다 변동성 함수의 출력에 더 크게 기여하도록, 상이한 POS 태그들에 대한 가중 값들을 추가로 저장할 수 있다. 이 예에서, POS 태그들의 가중치들은 동등하다. 이와 같이, 변동성 함수는 제1 및 제2 엔트리들 사이의 변동성 스코어를 계산하고(예를 들어, (제1 태그들 사이의 차이에 대한 0.1 + 제2 태그들 사이의 차이에 대한 0 + 제3 태그들 사이의 차이에 대한 0)/(비교된 3개의 태그) = 0.03), 그 후 이 변동성 스코어를 변동 임계값(364)(예를 들어, 0.3)과 비교할 수 있다. 이 변동성 스코어가 변동 임계값(364) 미만이기 때문에, 제2 엔트리는 POS 태깅들의 최종 후보 세트(362)에 포함되지 않는다. 이 프로세스는 잠재적인 POS 태깅들의 정정된 세트(358) 내의 제3 엔트리가 제1 엔트리와 비교되는 것(예를 들어, (제1 태그들 사이의 차이에 대한 1 + 제2 태그들 사이의 차이에 대한 0 + 제3 태그들 사이의 차이에 대한 0)/(비교된 3개의 태그) = 0.3, 이는 0.3의 변동 임계값에 있음)으로 계속되고, 제3 엔트리는 잠재적인 POS 태깅들의 최종 후보 세트(362)에 포함된다. 후속하여, 잠재적인 POS 태깅들의 정정된 세트(358) 내의 제4 엔트리는 제1 엔트리와 비교되고(예를 들어, (제1 태그들 사이의 차이에 대한 0.1 + 제2 태그들 사이의 차이에 대한 1 + 제3 태그들 사이의 차이에 대한 0)/(비교된 3개의 태그) = 0.33, 이는 0.3의 변동 임계값보다 큼), 또한 제3 엔트리와 비교되고(예를 들어, (제1 태그들 사이의 차이에 대한 1 + 제2 태그들 사이의 차이에 대한 1 + 제3 태그들 사이의 차이에 대한 0)/(비교된 3개의 태그) = 0.66, 이는 0.3의 변동 임계값보다 큼), 또한 프로세스(340)에서 이월되는 잠재적인 POS 태깅들의 최종 후보 세트(362)에 포함된다.
도 12에 도시된 실시예의 경우, 파스 스테이지(347)는 구조 서브시스템(172)이 파서 플러그-인(324)을 이용하여 파스 추론을 수행함으로써(블록 366) 잠재적인 POS 태깅들의 최종 후보 세트(362)로부터의 잠재적인 의미 표현들의 세트(368)뿐만 아니라 그 세트(368) 내의 각각의 잠재적인 의미 표현의 파싱을 위한 대응하는 신뢰도 스코어(370)를 생성하는 것으로 시작한다. 잠재적인 POS 태깅들의 최종 후보 세트(362)에 더하여, POS 플러그-인(318)은 또한 데이터베이스(106)에 저장될 수 있는 파스 임계값(372)을 수신한다. 예를 들어, 파서 플러그-인(324)은 특정 신뢰도 레벨(예를 들어, 80%)을 나타내는 파스 임계값(372)을 제공받을 수 있고, 따라서, 잠재적인 의미 표현들의 세트(368)는 파스 임계값(372) 이상인 대응하는 신뢰도 스코어를 갖는 의미 표현들만을 포함할 것이다. 특정 경우들에서, 파서 플러그-인(324)은 특정 잠재적인 POS 태깅들에 대한 의미 표현을 생성하지 못할 수 있다는 점에 유의할 수 있다.
특정 실시예들에서, 프로세스(340)는 최종 스코어링 및 필터링이 수행되기 전에 잠재적인 의미 표현들의 세트(368) 내의 엔트리들을 수정하거나 제거하기 위한 제2 자동 정정 단계(블록 374)를 포함할 수 있다는 것을 알 수 있다. 예를 들어, 언급된 바와 같이, 파서 플러그-인(324)은 ML 기반 구성요소를 포함할 수 있다. 이와 같이, 파서 플러그-인(324)은 예를 들어, 결함있는 훈련 데이터의 결과로서, 훈련 동안 부정확한 파스 트리 구조 생성을 부주의하게 학습할 수 있다. 따라서, 특정 실시예들에서, 구조 서브시스템(172)은 결함있는 의미 표현들이 프로세스(340)의 남아 있는 단계들로 이월되는 것을 차단하기 위해 세트(368)로부터 잠재적인 의미 표현들을 수정하거나 제거하도록 설계된, 정정 플러그-인(들)(320)의 일부로서, 파서 정정 플러그-인을 포함할 수 있다. 특정 실시예들에서, 이 파서 정정 플러그-인은 특정 POS 태깅들을 특정 파스 트리 구조들과 연관시키도록 훈련되는 ML 기반 구성요소(예를 들어, 인공 신경망)를 포함할 수 있다. 다른 실시예들에서, 파서 정정 플러그-인은 위에서 POS 정정 플러그-인에 대해 논의된 바와 같이, 규칙 기반 정정 기술, 또는 규칙 기반 및 ML 기반 기술들의 조합을 구현할 수 있다.
도 12에 도시된 실시예의 경우, 프로세스(340)의 파스 스테이지(347)는 구조 서브시스템(172)이 FSF 플러그-인(326)을 이용하여 블록(366)에서 파서 플러그-인(324)에 의해 생성된 잠재적인 의미 표현들의 세트(368)의 최종 스코어링 및 필터링(블록 376)을 수행하는 것으로 종료된다. 예를 들어, 도 12에 예시된 바와 같이, 특정 실시예들에서, FSF 플러그-인(326)은 파서 플러그-인(324)에 의해 생성된 잠재적인 의미 표현들의 세트(368), 잠재적인 의미 표현들 각각에 대한 대응하는 신뢰도 스코어들(370), 및 잠재적인 의미 표현들의 세트(368)를 생성하는데 이용된 잠재적인 POS 태깅들에 대한 대응하는 신뢰도 스코어들(352)을 수신한다. 또한, FSF 플러그-인(326)은 또한, 데이터베이스(106)에 저장될 수 있는 FSF 임계값(378)을 수신한다. FSF 플러그-인(326)은 이들 신뢰도 값들에 기반하여 잠재적인 의미 표현들의 세트(368) 내의 각각의 엔트리에 대한 최종(예를 들어, 전체, 누적) 스코어를 계산하는 최종 스코어링 함수를 정의하고, FSF 임계값(378) 이상인 최종 스코어를 갖는 의미 표현들만을 진행시킨다.
상이한 실시예들에서, FSF 플러그-인(326)의 최종 스코어링 함수는 상이한 방식들로 POS 태깅으로부터의 신뢰도 스코어들(352) 및 파싱으로부터의 신뢰도 스코어(370)를 조합할 수 있다. 예를 들어, 특정 실시예들에서, 최종 스코어링 함수는 잠재적인 의미 표현들의 세트(368) 내의 각각의 엔트리에 대한 신뢰도 스코어들(352 및 370)을 각각 곱셈 및/또는 합산할 수 있다. 특정 실시예들에서, 이 곱셈 및/또는 합산 프로세스는 최종 스코어들에 대한 POS 태깅으로부터의 신뢰도 스코어들(352) 또는 파싱으로부터의 신뢰도 스코어들(370)의 영향을 증가시키기 위해 가중될 수 있다. 특정 예로서, 실시예에서, 잠재적인 의미 표현들의 세트(368) 내의 의미 표현의 대응하는 최종 스코어는 POS 태깅으로부터의 신뢰도 스코어(352)에 파싱으로부터의 신뢰도 스코어(370)를 더한 것의 5배일 수 있다. 다른 실시예들에서, 신뢰도 스코어들(352 및 370)은 가중된 평균으로서 조합될 수 있고, 각각의 신뢰도 스코어에 대한 상대 가중치들은 데이터베이스(106) 내에서 미리 정의될 수 있다.
예로서, 도 13은 NLU 프레임워크(104)의 의미 검색 서브시스템(152) 내에서 구현될 수 있는 유사도 스코어링 서브시스템(388)의 실시예를 예시하는 정보 흐름도이다. 아래에 논의되는 바와 같이, 유사도 스코어링 서브시스템(388)은 수학적 비교 함수들을 검색하고 이들을 이용하여, 점점 더 고가의 함수들을 통해 임의의 적절한 수의 의미 표현들을 서로 반복적으로 비교한다. 예로서, 도 13의 본 실시예는 제1 의미 표현(390) 및 제2 의미 표현(392)이 검색 공간(256)의 의미 표현들(158)과 비교되는 유사도 스코어링 서브시스템(388)의 기능들에 관한 것이지만, 아래에 논의되는 기술들은 NLU 프레임워크(104)의 각각의 의미 표현에 적용가능하다는 것을 이해해야 한다. 이해되는 바와 같이, 제1 의미 표현(390)은 위에서 논의된 의미 표현들(162) 중 제1 의미 표현에 대응할 수 있고, 제2 의미 표현(164)은 의미 표현들(162) 중 제2 의미 표현에 대응할 수 있다. 다른 실시예들에서, 의미 표현들(390, 392)은 사용자 발화(122)에 대응하는 것으로서 본 명세서에서 주로 논의되는 발화(266)로부터 각각 도출될 수 있지만, 위에서 논의된 샘플 발화들(155) 중 하나에 대응할 수 있다.
일반적으로, 각각의 의미 표현(390, 392)은 의미 표현(390, 392)의 형상(예를 들어, 발화 트리 구조 및 품사 태깅)에 기반하여 할당되는 0개, 1개 또는 복수의 인지 구축 문법(CCG) 형태 클래스에 속한다. 즉, CCG 기술들에 기반하여, 유사도 스코어링 서브시스템(388)은 각각의 의미 표현(390, 392)이 CCG 형태들에 집합적으로 매핑가능한 노드들(예를 들어, 단어 벡터들 및/또는 단어 벡터들의 조합)에 대한 품사 태그들을 포함하는 형상 또는 구조(예를 들어, 발화 트리 또는 다른 적절한 메타-구조에 의해 정의됨)를 갖는다는 것을 인식한다. 따라서, 유사도 스코어링 서브시스템(388)은 의미 표현들(390, 392)에 대한 아티팩트 매치들을 포함하는 적절한 매칭 의미 표현들(158)을 식별하기 위해 의미 표현들(390, 392)의 형상들에 기반하여 검색들을 수행할 수 있다.
예시된 실시예에서, 유사도 스코어링 서브시스템(388)은 그 안에 형태 클래스 테이블(398)을 포함하는 형태 클래스 데이터베이스(396)를 포함한다. 주로 테이블로서 논의되지만, 형태 클래스 테이블(398)은 다른 실시예들에서 임의의 적절한 데이터 구조로 구현될 수 있다. 일부 실시예들에서, 형태 클래스 데이터베이스(396) 및 형태 클래스 테이블(398)은 에이전트 자동화 프레임워크(100)의 데이터베이스(106) 내에 저장될 수 있다. 본 명세서에서 인식되는 바와 같이, 형태 클래스 테이블(398)의 각각의 엔트리(400)(예를 들어, 형태 클래스 엔트리)는 의미 검색 서브시스템(152)에 의해 지원되는 일대일 형태 클래스 비교(CCG 형태 클래스 비교라고도 함)를 설명한다. 특히, 형태 클래스 테이블(398)은 제1 의미 표현의 CCG 형태와 연관된 제1 축(402) 및 비교되는 제2 의미 표현의 CCG 형태와 연관된 제2 축(404)을 포함한다. 각각의 축 라벨은 유사도 스코어링 서브시스템(388)이 지원하는 제각기의 CCG 형태들 각각에 대한 형태 패턴, 예컨대 동사-주도 구, 명사-주도 구 등과 연관되고, f1-fN의 지원되는 CCG 형태 범위 내의 적절한 기능 식별자에 의해 표현된다. 따라서, 특정 의미 표현에 대한 형태 패턴은 특정 의미 표현에 대한 CCG 형태 클래스 멤버십을 정의한다는 것을 이해해야 한다.
본 실시예에서, 형태 클래스 테이블(398)은 2개의 연관된 CCG 형태가 비교가능한지 그리고 그렇다면, 비교의 수행에 관한 명령어들을 나타내기 위해 CCG 형태들 중 2개의 CCG 형태의 각각의 교차점에 대한 엔트리들(400)의 각각의 엔트리를 포함한다. 형태 클래스 테이블(398)이 비교된 CCG 형태 클래스들의 각각의 가능한 순열에 대응하는 임의의 적절한 수의 엔트리들(400)을 포함할 수 있다는 것을 이해해야 한다. 특히, 각각이 동일한 CCG 형태 클래스에 속하는 의미 표현들은 그 자체로 서로 비교가능하고, 형태 클래스 테이블(398)의 중앙 대각선(406)을 따라 각각의 엔트리(400) 내에 나타내어져 있는 이하에서 논의되는 비교 함수 리스트에 의해 표현된다. 현재 예시되는 바와 같이, 형태 클래스 테이블(398)은 중앙 대각선(406)을 따라 반사 대칭선을 가지며, 이는 형태 클래스 테이블(398)의 본 실시예의 비교 기능들이 가환적(commutative)이라는 것을 나타낸다. 즉, 제1 의미 표현을 제2 의미 표현과 비교하는 것은 제2 의미 표현을 제1 의미 표현과 비교하는 것과 동일한 결과를 낳는다. 다른 실시예들에서, 형태 클래스 테이블(398)은 반사 대칭선을 포함하지 않을 수 있고, 따라서 유사도 스코어링 서브시스템(388)이 의미 표현들이 비교되고 있는 순서 또는 방향에 기반하여 이하에서 논의되는 비교 함수 리스트를 조정할 수 있게 한다. 특정 예로서, 형태 클래스 테이블(398)의 하나의 엔트리(400)는 동사-주도 CCG 형태를 갖는 의미 표현이 동사-주도 CCG 형태, 명사-주도 CCG 형태 등을 갖는 다른 의미 표현들과 비교될 수 있다는 것을 지정할 수 있다. 본 실시예들에서, 유사도 스코어링 서브시스템(388)은 비교를 위한 엔트리(400)가 비어 있다고(예컨대, 널(null), 정의되지 않음) 결정하는 것에 응답하여 한 쌍의 의미 표현들이 비교가능하지 않다고 결정하고, 따라서 비교불가능한 의미 표현들 간의 비교들을 수행하지 않는다.
언급된 바와 같이, 유사도 스코어링 서브시스템(388)의 각각의 지원되는 CCG 형태 클래스 비교를 위한 형태 클래스 테이블(398)의 엔트리(400)는 또한 유사도 스코어링 서브시스템(388)을 포함하거나 이를 하나 또는 복수의 함수(410)(예를 들어, 비교 함수)를 갖는 수학적 비교 함수 리스트(408)(예를 들어, 형태-대수 함수 리스트, 처리 규칙들)에 지향시킨다. 각각의 수학적 비교 함수 리스트(408)의 함수들(410)은 아래에 더 상세히 설명되는 바와 같이, 의미 표현들(390, 392)의 각각의 의미 표현이 검색 공간(256)과 비교될 수 있게 하는 점진적으로 더 고가의 스코어링 기능들을 제공하는 내포된 함수들의 세트이다. 수학적 비교 함수 리스트(408)는 벡터 대수, 코사인 유사도 함수들, 외부 데이터베이스들에 대한 질의들, 및/또는 유사도 스코어링 서브시스템(388)이 임의의 적절한 수의 의미 표현들 사이의 유사도 스코어들을 결정하는데 이용할 수 있는 임의의 다른 적절한 수학적 함수들 또는 공식들을 포함할 수 있다. 함수들(410)은 수학적 비교 함수 리스트(408)의 이전 함수를 추가로 정의할 수 있거나, 또는 대안적으로, 이전 함수들(410)로부터 완전히 독립적일 수 있다는 점이 이해되어야 한다. 일부 실시예들에서, 형태 클래스 테이블(398)의 각각의 엔트리(400)에 대한 수학적 비교 함수 리스트(408)는 언어학자들 또는 사용자들에 의해 수동으로 지정되고, ML 기술들 등에 의해 도출된다.
일반적으로, 수학적 비교 함수 리스트(408)의 함수들(410)은 각각 검색 공간(256)의 의미 표현들(158)과 적절히 매칭하는 의미 표현들(390, 392)의 고려된 부분들에 응답하여 특정 임계 스코어를 초과하는 유사도 스코어를 부여함으로써 의미 표현들(390, 392) 및 검색 공간(256)의 비교가능한 것들 사이의 유사도를 제각기 스코어링한다. 특정 실시예들에서, 함수들(410)은 각각의 의미 표현들(158)이 대응하는 검색 키 의미 표현(390, 392)의 중요한 또는 유의한 노드들을 배제하거나 이들과 매칭되지 않는 것에 응답하여, 검색 공간(256)의 각각의 의미 표현들(158)과 연관된 유사도 스코어에 0들을 할당하거나, 다른 방식으로 이에 페널티를 줄 수 있다. 이해되는 바와 같이, 유사도 스코어링 서브시스템(388)은, 형태 클래스 테이블(398)의 빈 엔트리들(400)에 의해 표시되는 바와 같이, 형태 클래스 데이터베이스(396)의 형태 클래스 호환성 규칙들에 기반한 비교에 부적절한 CCG 형태를 갖는 다른 의미 표현과 그 의미 표현을 비교하지 않는다.
다른 실시예들에서, 유사도 스코어링 서브시스템(388)은 일부 실시예들에서 0의 유사도 스코어를 비교불가능한 쌍들의 의미 표현들에 즉시 할당할 수 있다. 추가적인 실시예들에서, 유사도 스코어링 서브시스템(388)은 유사도 스코어링 서브시스템(388)으로 하여금 비교가능하지 않은 의미 표현들 사이에 0의 유사도 스코어를 생성하게 하는 함수들(410)을 갖는 수학적 비교 함수 리스트(408)를 구현함으로써 비교를 수행할 수 있다. 이러한 실시예들에서, 수학적 비교 함수 리스트들(408)은 자연스럽게 유사도 스코어링 서브시스템(388)으로 하여금 의미 표현(390, 392)과의 비교에 부적절한 CCG 형태들을 갖는 의미 표현들(158)에 0 또는 널 유사도 스코어들을 할당하게 할 수 있기 때문에, 형태 클래스 테이블(398)은 형태 클래스 테이블(398)의 각각의 엔트리(400)에 적절한 수학적 비교 함수 리스트(408)를 포함할 수 있다.
또한, 특정 실시예들에서, 유사도 스코어링 서브시스템(388)은 발화 의미 모델(160)로부터 발화(394)의 복수의 표현의 표현들을 수신할 수 있다. 예를 들어, 검색 키 의미 표현들(390, 392)은 발화(266)에 대한 대안적인 형태들을 나타내는 것으로서 발화 의미 모델(160) 내에 포함될 수 있다. 일반적으로, (의미 추출 서브시스템(150)에 의해 생성되고 발화 의미 모델(160)에 포함된) 의미 표현들(390, 392) 각각은 발화(394)의 아티팩트들에 대응하는 적절히 구별되는 의미 표현을 나타낸다. 의미 표현들(390, 392)의 각각의 비교가능한 쌍을 고려함으로써, 본 실시예의 유사도 스코어링 서브시스템(388)은 대응하는 추출된 아티팩트들(140)에 대한 더 철저한 검색을 제공하거나, 대응하는 추출된 아티팩트들에 대한 더 큰 네트를 만들기 위해 발화(394)의 복수의 해석을 평가할 수 있다.
도 14는 의미 검색 서브시스템(152)이 비교 함수 리스트(408)가 검색 공간(256)으로부터 매칭 의미 표현들을 반복적으로 식별하는데 이용되는 신축적인 빔-폭 CCG 형태 기반 검색을 수행하는 프로세스(420)의 실시예의 흐름도이다. 이해되는 바와 같이, 프로세스(420)는 의미 검색 서브시스템(152)이 발화 의미 모델(160)의 각각의 의미 표현(162)과 검색 공간(256) 내의 방대한 수의 의미 표현들(158) 사이의 유사도를 예측적으로 평가할 수 있게 한다. 프로세스(420)는 도 3, 도 4a 및 도 4b와 관련하여 전술한 바와 같이, 클라이언트 인스턴스(42) 또는 기업 인스턴스(125)와 연관된 적절한 프로세서(예를 들어, 프로세서(들)(82))에 의해 실행되고 적절한 메모리(예를 들어, 메모리(86))에 저장될 수 있다.
프로세스(420)의 예시된 실시예에 있어서, 예시된 실시예의 의미 검색 서브시스템(152)은 for-each 루프(422)로 발화 의미 모델(160)의 의미 표현들(162) 각각을 통해 반복한다. 의미 검색 서브시스템(152)은 발화 의미 모델(160)의 의미 표현들(162) 각각에 대한 유사도 스코어들의 생성을 가능하게 하는 for-each 루프 대신에 임의의 다른 적절한 처리 스킴을 구현할 수 있다는 것을 이해해야 한다. 예를 들어, 의미 검색 서브시스템(152)은 대안적으로 do-while 루프, for 루프, while 루프, do-until 루프 등을 구현할 수 있다. 어쨌든, 발화 의미 모델(160)의 의미 표현들(162) 각각에 대해, 유사도 스코어링 서브시스템은 도 13에 도시된 바와 같이, 각각의 의미 표현의 CCG 형태를 결정하고(블록 424), 형태 클래스 데이터베이스(396)로부터 연관된 비교 함수 리스트(408)를 검색한다. 프로세스(420)에 대한 반복 파라미터들을 초기화할 때, 의미 검색 서브시스템(152)은 또한 의미 표현의 CCG 형태에 대응하는 비교 함수 리스트(408)의 제1 함수(410)를 선택하고(블록 426), 관심 있는 검색 부분 공간을 처음에 전체 검색 공간(256)이 되도록 정의한다.
프로세스(420)의 예시된 실시예에 있어서, 의미 검색 서브시스템(152)은 대응하는 비교 함수 리스트(408)의 제1 비교 함수(410)를 이용하여 (사용자 발화(122)로부터 도출된) 의미 표현(162)을 검색 부분 공간의 비교가능한 의미 표현들(158)과 비교하고(블록 428), 이에 의해 검색 부분 공간의 비교가능한 의미 표현들에 대한 의미 표현(162)의 비교들에 대응하는 유사도 스코어들의 세트(430)를 생성하고 정밀화한다. 일부 실시예들에서, 의미 검색 서브시스템(152)은 비교된 의미 표현들의 의미 벡터들(예를 들어, 단어 벡터들, 서브트리 벡터들) 사이의 거리에 기반하여 유사도 스코어들의 세트(430)를 결정할 수 있다. 언급된 바와 같이, 제1 비교 함수(410)는 비교 함수 리스트(408)의 비교 함수들의 최소량의 계산 자원들을 소비한다. 이와 같이, 의미 검색 서브시스템(152)은 사용자 발화의 의미 표현 전체를 검색 공간 또는 이해 모델에서의 의미 표현들 전체와 포괄적으로 비교하는 다른 검색 시스템들보다 더 신속하고 그리고/또는 효율적으로 이러한 초기 CCG 형태 검색 및 유사도 스코어링을 수행할 수 있다.
예를 들어, 이제 도 15를 참조하면, 이 도면은 의미 검색 서브시스템(152)이 비교 함수 리스트(408)를 적용하여 검색 공간(256)을 적절한 검색 부분 공간들로 선택적으로 정밀화하는 실시예의 개략도를 도시한다. 예를 들어, 제1 비교(432) 동안, 의미 검색 서브시스템(152)은 제1 비교 함수(410A)를 적용하여, 검색 공간(256)의 전체, 또는 더 정확하게는 검색 공간(256)의 모든 비교가능한 의미 표현들(158)이 되도록 초기화되는 검색 부분 공간(434) 내의 비교가능한 의미 표현들(158)과 의미 표현(162)을 비교할 수 있다. 본 명세서에서 인식되는 바와 같이, 가장 덜 정확하고 가장 효율적인 비교 함수(410A)의 이러한 적용은 의미 검색 서브시스템(152)이 검색 공간(256)에 걸쳐 제1 패스 검색을 효율적으로 수행할 수 있게 한다. 도시된 예에서, 제1 비교 함수(410A)는 의미 표현(162)의 루트 노드(436)를 고려하지만, 의미 표현(162)의 다른 적절한 부분(예를 들어, 다른 노드들 또는 노드들의 조합들)이 제1 비교 함수(410A)를 통해 분석될 수 있다는 것을 이해해야 한다.
도 14로 돌아가서, 의미 검색 서브시스템(152)은 검색 부분 공간(434)으로부터 의미 표현들(158)을 제거 또는 전지하고(블록 438), 전지된 의미 표현들은 CCG 형태 기반 검색의 신축적인 빔-폭을 정의하는 신축적인 또는 가변 임계치인 완화된 집계 최소 신뢰도 스코어(완화된 AMCT) 미만인 유사도 스코어들의 세트(430) 내의 대응하는 유사도 스코어들을 갖는다. AMCT 및 완화된 AMCT의 결정은 도 16과 관련하여 설명된다. 따라서, 의미 검색 서브시스템(152)은 검색 부분 공간(434)의 감소된 수의 의미 표현들(158)에 대한 비교 함수 리스트(408)의 후속 비교 함수들(410)의 효율적인 적용을 위해 검색 부분 공간(434)을 축소시킬 수 있다. 실제로, 도 15로 돌아가서, 검색 부분 공간(434)은 제1 비교(432) 후에, 완화된 AMCT 미만인 유사도 스코어와 연관되는 의미 표현들(158)을 검색 부분 공간(434)으로부터 제거함으로써 좁아진다(예를 들어, 수축되고, 잘라내진다).
도 14의 프로세스(420)로 돌아가서, 의미 검색 서브시스템(152)은 CCG 형태 비교(예를 들어, for-each 루프(422)의 현재 반복)가 계속되어야 하는지를 결정한다(블록 440). 본 명세서에서 인식되는 바와 같이, 의미 검색 서브시스템(152)은 하나 또는 복수의 적절한 정지 조건이 충족되는 것에 기반하여 CCG 형태 비교를 계속하기로 결정할 수 있다. 예를 들어, 의미 검색 서브시스템(152)은 모든 의미 표현들(158)이 검색 부분 공간(434)으로부터 전지되는 것(예를 들어, 어떠한 매치들도 없음을 나타냄), 임계 수의 의미 표현들(158)이 검색 부분 공간 내에 남아 있는 것(예를 들어, 가장 가능성 있는 매치들을 나타냄), 최근에 적용된 비교 함수(410)가 함수 내에 정의된 임베딩된 정지 조건들이 충족되었음을 표시하는 것, 비교 함수 리스트(408)의 모든 함수들이 적용되었던 것 등에 응답하여 CCG 형태 비교를 종료할 수 있다.
블록(440)에서 정지 조건들이 충족되지 않았다고 결정하는 것에 응답하여, 의미 검색 서브시스템(152)은 비교 함수 리스트(408)의 다음 비교 함수(410)를 선택한다(블록 442). 그 후, 화살표(444)로 표시된 바와 같이, 의미 검색 서브시스템(152)은 블록(428)으로 복귀하여, 의미 표현(162)을 검색 부분 공간(434)의 남아 있는 비교가능한 의미 표현들(158)과 비교한다. 그 후, 의미 검색 서브시스템(152)은 비교 함수 리스트(408)의 후속의 더 계산적으로 고가의 비교 함수(410)를 이용함으로써 검색 부분 공간(434)의 남아 있는 비교가능한 의미 표현들(158)과 연관된 유사도 스코어들의 세트(430)를 정밀화(예를 들어, 수정, 업데이트)한다. 각각의 비교 후에, 의미 검색 서브시스템(152)은 이전 반복을 통해 생성된 유사도 스코어들의 세트(430)를 정밀화하거나, 또는 대안적으로, 세트(430)의 각각의 이전에 생성된 유사도 스코어를 그의 더 정확한 대응물로 대체할 수 있다. 실제로, 후속 비교 함수들(410)의 적용 동안 더 많은 처리 자원들이 이용되기 때문에, 유사도 스코어들의 세트(430)는 일반적으로 추가적인 비교 함수들(410)이 적용됨에 따라 정확도 및/또는 정밀도가 개선된다. 유사도 스코어들의 세트(430)에 기반하여, 의미 검색 서브시스템(152)은 완화된 AMCT 미만인, 세트(430)의 각각의 유사도 스코어들을 갖는 의미 표현들(158)의 검색 부분 공간(434)을 다시 전지한다(블록 438).
도 15를 다시 참조하면, 유사도 스코어들의 세트(430)를 정밀화하고 검색 부분 공간(434)을 전지하기 위해, 의미 검색 서브시스템(152)은 제2 비교(446) 동안 제2 비교 함수(410B)를 적용하여 크기-축소된 검색 부분 공간(434) 내의 남아 있는 의미 표현들(158)과 의미 표현(162)을 비교한다. 따라서, 의미 검색 서브시스템(152)은 완화된 AMCT를 충족시키는 적절한 후보들만을 포함하도록 검색 부분 공간(434)을 추가로 축소시킬 수 있다. 특정 실시예들에서, 각각의 비교 함수(410)는 비교된 의미 표현들의 각각의 노드들의 노출 또는 확장을 안내한다. 예를 들어, 제1 비교 함수(410A)는 의미 표현(162)의 루트 노드(436)를 검색 부분 공간(434)의 의미 표현들(158)과 비교하는 단일 용어를 포함할 수 있는 반면, 제2 비교 함수(410B)는 의미 표현(162)의 확장된 부분을 검색 부분 공간(434)의 의미 표현들(158)과 비교하는 하나 또는 복수의 용어를 포함할 수 있다.
따라서, 의미 검색 서브시스템(152)은 주어진 비교를 위해 검색 부분 공간(434)의 존속하는 (예를 들어, 빔 내) 의미 표현들(158)에 점점 더 정확하고 자원 집약적인 비교 함수들(410)을 반복적으로 적용한다. 도 15와 관련하여 도 14의 프로세스(420)를 계속하면, 의미 검색 서브시스템(152)은 제3 비교(448) 동안 제3 비교 함수(410C)를 구현하여 의미 표현(162)의 일부(예를 들어, 노출되거나 고려된 부분)를 추가로 전지된 검색 부분 공간(434) 등과 비교할 수 있다. 이와 같이, 의미 검색 서브시스템(152)은 최종 비교(450) 동안 최종 비교 함수(410D)를 구현하여 의미 표현(162) 전체를 추가로 전지된 검색 부분 공간(434)과 비교함으로써, 현저하게 감소된 수의 남아 있는 의미 표현(158) 후보들에 대해 가장 계산 집약적인 최종 비교 함수(410D)의 실행을 보존하도록 설계된다. 실제로, 특정 경우들에서, 도 15의 최종 비교(450)는 검색 공간(256)으로부터 컨텐더 매칭 의미 표현들(158)을 식별하기 위해 의미 표현(162) 내에서 이용가능한 정보 전체를 활용할 수 있다(예를 들어, 모든 노드들을 고려할 수 있다).
이와 같이, 도 14로 돌아가서, 의미 검색 서브시스템(152)은 블록(440)에서 CCG 형태 비교의 정지 파라미터들이 충족되었다고 결정할 수 있고, 이에 응답하여, 발화 의미 모델(160)의 다음 의미 표현(162)을 처리하기 위해 for-each 루프(422)를 반복할 수 있다(블록 441). 모든 의미 표현들(162)이 처리되었으면, 의미 검색 서브시스템(152)은 컨텐더 매칭 의미 표현들의 초기 세트들(452)을 식별하고, 초기 세트들(452) 각각은 발화 의미 모델(160)의 특정 의미 표현(162)에 대한 매칭 의미 표현들을 포함한다. 또한, 컨텐더 매칭 의미 표현들의 이러한 초기 세트들(452)은 의미 검색의 후속 부분들 동안 중점을 너무 좁히는 것을 피하기 위해 다이버시티 스코어링에 제출된다. 본 명세서에서 논의된 다이버시티 스코어링은 위에서 논의된 변동성 필터링과 별개라는 점에 유의해야 한다.
이와 같이, 예시된 실시예에 있어서, 의미 검색 서브시스템(152)은 컨텐더 매칭 의미 표현들의 모든 초기 세트들(452)에 걸쳐 다이버시티 스코어링을 수행하고(블록 454), 미리 정의된 다이버시티 임계치 미만의 각각의 다이버시티 스코어를 갖는 엔트리들을 제거한다. 예를 들어, 실시예에서, 의미 검색 서브시스템(152)은 검색 공간(256)의 2개의 의미 표현(158)을 비교하고, 의미 표현들이 서로 얼마나 상이한지를 표시하는 다이버시티 스코어를 반환하도록 설계되는 다이버시티 스코어링 구성요소를 포함할 수 있다. 특정 예로서, 실시예에서, 다이버시티 스코어링 함수는 어느 특정 이해 모델(157) 그리고 어느 의도가 다이버시티 스코어링을 겪는 각각의 의미 표현과 연관되는지를 결정하기 위해 검색 공간(256)을 생성하는데 이용되는 하나 이상의 이해 모델(157)에 액세스할 수 있다. 이 예에 있어서, 다이버시티 스코어링 함수는 공통 의도 또는 이해 모델을 공유하지 않는 의미 표현들에 대한 최고 상대 다이버시티 스코어(예를 들어, 1); 공통 이해 모델을 공유하고 공통 의도를 공유하지 않는 의미 표현들뿐만 아니라 공통 의도를 공유하고 공통 이해 모델을 공유하지 않는 의미 표현들에 대한 더 낮은 상대 다이버시티 스코어(예를 들어, 0.5); 및 공통 이해 모델 및 공통 의도 둘 다를 공유하는 의미 표현들에 대한 최저 상대 다이버시티 스코어(예를 들어, 0)를 결정할 수 있다.
블록(454)의 다이버시티 스코어링 동안, 의미 검색 서브시스템(152)은 컨텐더 매칭 의미 표현들의 초기 세트들(452)로부터의 의미 표현들을 "컨텐더 백(bag-of-contenders)"으로서 컨텐더 매칭 의미 표현들의 (최종) 세트(260)에 선택적으로 추가한다. 이와 같이, 최종 세트(260)에 의미 표현을 추가하기 전에, 의미 표현은 다이버시티 스코어링 함수를 이용하여 현재 최종 세트(260) 내의 임의의 및 모든 의미 표현들에 대해 측정된다. 의미 표현이 컨텐더 의미 표현들의 최종 세트(260) 내의 모든 엔트리들과 비교될 때 미리 정의된 다이버시티 임계치 초과의 다이버시티 스코어를 갖지 않는다면, 그 의미 표현은 폐기되고 최종 세트(260)에 추가되지 않는다. 그러나, 새로운 컨텐더가 모든 백 내 컨텐더들과 비교될 때 미리 정의된 다이버시티 임계치보다 큰 다이버시티 측정치를 갖는다면, 이는 최종 세트(260)에 추가된다. 특정 실시예들에서, 의미 검색 서브시스템(152)은 아래에 논의되는 바와 같이, 컨텐더 의미 표현들의 세트(260)를 이용하여 아티팩트간 검색을 수행한다.
도 16은 도 13의 신축적인 빔-폭 CCG 형태 기반 검색의 실시예 동안 이용되는 완화된 집계 최소 신뢰도 임계치(AMCT)에 의해 제공되는 유효 빔-폭을 나타내는 개략도이다. 예시된 실시예에 있어서, 각각의 원은 도 14의 블록(438)에서와 같이, 신축적인 빔-폭 CCG 형태 기반 검색의 일부 동안 전지를 견디는 의미 표현(470)을 나타낸다. 유효 빔-폭(472)은 완화된 AMCT 값보다 크거나 같은 각각의 신뢰도 스코어들을 갖는 컨텐더 매칭 의미 표현들(470)을 나타내며, 따라서 검색 부분 공간에 유지되고/되거나 검색 동작의 다음 비교 또는 스테이지로 진행된다. 예를 들어, 도 14 및 도 15에 도시된 바와 같이, 유효 빔-폭(472) 내의 의미 표현들(158)은 함수 비교 리스트(408)의 후속 비교 함수(410)를 이용하여 발화 의미 모델(160)의 검색 키들과 비교되는 검색 부분 공간(434)을 정의할 수 있거나, 또는 블록(454)에서 다이버시티 스코어링에 제출되는 컨텐더 매칭 의미 표현들의 초기 세트들(452)에 포함될 수 있다. 도 16에 도시된 바와 같이, 완화된 AMCT 값 미만의 각각의 신뢰도 스코어들을 갖는 남아 있는 의미 표현들(470)은 폐기되거나 제거된다.
언급된 바와 같이, 신축적인 빔-폭 가능 검색 동작들은 신축적인 신뢰도 임계치에 기반하여 가변 수의 검색 매치들을 식별할 수 있다. 예를 들어, AMCT 값은 신뢰도 임계값들의 집계 세트로부터 선택된 최소 신뢰도 임계값일 수 있다. 예를 들어, 실시예에서, 신뢰도 값들의 세트는, 의미 검색 동작에 대한 원하는 신뢰도 임계치를 정의하기 위해 사용자 발화와 함께 제공되는 신뢰도 값; 특정 의도 또는 엔티티에 대해 정의된 아티팩트 레벨 신뢰도 임계값과 같은, 검색 공간과 연관된 이해 모델에 정의된 신뢰도 값; 및 NLU 프레임워크(104)의 구성에 의해 정의된 디폴트 신뢰도 값 중 하나 이상을 포함할 수 있다. 신뢰도 임계치들의 세트의 최저 또는 최소 신뢰도 임계값이 AMCT 값으로서 선택된다. 이와 같이, 신축적인 빔-폭 CCG 형태 기반 검색 동안, 특정 비교들이 (예를 들어, 상이한 아티팩트 레벨 신뢰도 임계값들로 인해) 상이한 AMCT 값들과 연관될 수 있고, 따라서, 상이한 유효 빔-폭들이 각각의 비교 스테이지에서 가변 수들의 컨텐더 매칭 의미 표현들을 식별하는데 이용된다는 점이 이해될 수 있다.
추가적으로, 특정 실시예들에서, AMCT는 도 13의 신축적인 빔-폭 CCG 형태 기반 검색 동안 신축적인 빔-폭(식별된 잠재적인 검색 매치들의 수)을 넓히거나 확장하기 위해 완화 함수를 이용하여 추가적으로 완화될 수 있다. 예를 들어, 완화 함수는 AMCT 값을 완화된 AMCT 값으로 수정 및 확장(예를 들어, 감소)하기 위한 하나 이상의 수학적 연산을 정의할 수 있고, 이는 비교 동안 식별될 수 있는 잠재적인 매칭 의미 표현들의 수에 대한 정적 한계 또는 정적 임계값에 의해 고려로부터 제거될 더 낮은 스코어링 잠재적인 의미 표현 매치들이 유지될 수 있게 한다. 특정 예로서, AMCT 값이 초기 임계값(예를 들어, 75% 신뢰도)을 지정할 수 있지만, 완화된 AMCT는 실질적으로 더 낮을 수 있고(예를 들어, 50% 신뢰도), 이는 도 17의 신축적인 빔-폭 아티팩트내 검색으로 결국 진행될 수 있는 추가의 잠재적인 매칭 의미 표현들의 식별을 가능하게 한다. 이와 같이, 의미 검색 서브시스템(152)은 완화된 AMCT 값을 결정하고, 그 후 신축적인 빔-폭 CCG 형태 기반 검색의 비교들 동안 완화된 AMCT 값을 충족시키는 가변 수의 잠재적인 매칭 의미 표현들을 식별할 수 있다.
도 17은 의미 검색 서브시스템(152)이 컨텐더 의미 표현들의 세트에 대해 신축적인 빔-폭 아티팩트내 검색을 수행하는 프로세스(480)의 실시예의 흐름도이다. 예를 들어, 특정 실시예들에서, 의미 검색 서브시스템(152)은 신축적인 빔-폭 CCG 형태 기반 검색에 의해 출력된 컨텐더 의미 표현들의 세트(260)에 대해 신축적인 빔-폭 아티팩트내 검색을 수행하여, 관심 있는 검색 부분 공간을 CCG 형태 기반 검색에 의해 식별된 특정 의도들에 추가로 집중시키고, 발화 의미 모델(160)의 의미 표현들(162) 또는 검색 키들과 검색 공간(256)의 의미 표현들(158) 사이의 유사도 스코어들의 세트(430)를 추가로 정밀화할 수 있다. 도 17의 프로세스(480)의 구조는 도 14의 프로세스(480)의 구조와 유사하고, 따라서 아래의 논의는 프로세스들(420 및 480) 사이의 차이들에 중점을 둔다는 것을 알 수 있다. 프로세스(480)는 도 3, 도 4a 및 도 4b와 관련하여 전술한 바와 같이 클라이언트 인스턴스(42) 또는 기업 인스턴스(125)와 연관된 적절한 프로세서(예를 들어, 프로세서(들)(82))에 의해 실행되고 적절한 메모리(예를 들어, 메모리(86))에 저장될 수 있다.
도 17에 예시된 실시예에 있어서, 프로세스(480)는 컨텐더 의미 표현들의 세트(260) 내의 각각의 엔트리를 통해 반복되고 각각에 대해 일련의 단계들을 수행하는 for-each 루프(482)를 포함한다. 예시된 바와 같이, 의미 검색 서브시스템(152)은 for-each 루프(482)의 현재 선택된 의미 표현에 대한 의도, CCG 형태, 및 비교 함수 리스트(408)를 결정한다(블록 484). 예를 들어, 의미 검색 서브시스템(152)은 검색 공간(256)의 기본 이해 모델(157)로부터 의미 표현의 의도를 검색할 수 있다. 그 후, 의미 검색 서브시스템은 비교 함수 리스트(408)의 제1 비교 함수를 선택하고(블록 486), 검색된 의도를 갖는 검색 공간(256)의 의미 표현들(158)만을 포함하도록 관심 있는 검색 부분 공간을 정의한다.
for-each 루프(482) 내의 블록들의 나머지는 일반적으로 도 14와 관련하여 전술한 바와 같이 기능한다. 그러나, 완화된 AMCT 값을 이용하기보다는, 프로세스(480)는 완화된 모델 아티팩트 신뢰도(MACT) 임계치에 기반하여 반복적으로 좁혀진 검색 부분 공간으로부터 의미 표현들을 제거하거나 전지한다(블록 488). 완화된 AMCT와 같이, 완화된 MACT 값은 아티팩트내 검색의 신축적인 빔-폭을 정의하는 신축적인 또는 가변 임계치이다. MACT 및 완화된 MACT의 결정은 도 18과 관련하여 설명된다. 컨텐더 매칭 의미 표현들의 세트(260) 내의 엔트리의 아티팩트내 비교 동안 적어도 하나의 정지 조건이 충족되는 것으로 결정되면(블록 490), 의미 검색 서브시스템(152)은 for-each 루프(482)를 반복하고(블록 492), 세트(260) 내의 다음 엔트리에 대한 for-each 루프(482) 내의 단계들을 수행한다. 세트(260) 내에 엔트리들이 남아 있지 않을 때, for-each 루프(482)는 종료하고, 점진적으로 전지된 검색 부분 공간 내에 남아 있는 임의의 의미 표현들은 아티팩트 추출을 위해 진행되는 매칭 의미 표현들의 최종 세트(264)에 추가된다.
도 18은 신축적인 빔-폭 아티팩트내 검색의 실시예 동안 이용되는 완화된 모델 아티팩트 신뢰도 임계치(MACT)에 의해 제공되는 유효 빔-폭을 나타내는 개략도이다. 예시된 실시예에 있어서, 각각의 원은 도 17의 블록(488)에서와 같이 신축적인 빔-폭 아티팩트내 검색의 일부 동안 전지를 견디는 의미 표현(500)을 나타낸다. 유효 빔-폭(502)은 완화된 MACT 값보다 크거나 같은 각각의 신뢰도 스코어들을 갖는 다수의 컨텐더 매칭 의미 표현을 나타내며, 따라서 검색 부분 공간에 유지되고/되거나 검색 동작의 다음 비교 또는 스테이지로 진행된다. 예를 들어, 도 17에 도시된 바와 같이, 유효 빔-폭 내의 의미 표현들은 함수 비교 리스트(408)의 후속 비교 함수를 이용하여 발화 의미 모델(160)의 검색 키들과 비교되는 검색 부분 공간을 정의할 수 있거나, 또는 의도/엔티티 추출에 제출되는 의미 표현들의 최종 세트(264)에 포함될 수 있다. 완화된 MACT 값 미만의 각각의 신뢰도 스코어들을 갖는 남아 있는 의미 표현들(500)은 폐기되거나 제거된다.
언급된 바와 같이, 신축적인 빔-폭은 신축적인 신뢰도 임계치에 기반하여 가변 수의 검색 매치들을 식별할 수 있는 검색 동작들을 가능하게 한다. 예를 들어, MACT 값은 특정 의도 또는 엔티티에 대해 정의된 아티팩트 레벨 신뢰도 임계값과 같은, 검색 공간(256)과 연관된 이해 모델(157)에 정의된 신뢰도 값인 신뢰도 임계값일 수 있다. 또한, 특정 실시예들에서, MACT는 도 17의 신축적인 빔-폭 아티팩트내 검색 동안 신축적인 빔-폭(식별된 잠재적인 검색 매치들의 수)을 넓히거나 확장하는 완화 함수(AMCT를 완화시키는데 이용된 완화 함수와는 별개임)를 이용하여 추가로 완화될 수 있다. 예를 들어, 이 완화 함수는 MACT 값을 완화된 MACT 값으로 수정 및 확장(예를 들어, 감소)하기 위한 하나 이상의 수학적 연산을 정의할 수 있고, 이는 비교 동안 식별될 수 있는 잠재적인 매칭 의미 표현들의 수에 대한 정적 한계 또는 정적 임계값에 의해 고려로부터 제거될 더 낮은 스코어링 잠재적인 의미 표현 매치들이 유지될 수 있게 한다. 특정 예로서, MACT가 초기 임계값(예를 들어, 60% 신뢰도)을 정의할 수 있지만, 완화된 MACT는 실질적으로 더 낮을 수 있고(예를 들어, 30% 신뢰도), 이는 의도 및/또는 엔티티 추출로 결국 진행될 수 있는 추가의 잠재적인 매칭 의미 표현들의 식별을 가능하게 한다. 이와 같이, 의미 검색 서브시스템(152)은 완화된 MACT 값을 결정하고 신축적인 빔-폭 아티팩트내 검색 동안 완화된 MACT 값을 충족시키는 가변 수의 잠재적인 매칭 의미 표현들을 식별할 수 있다.
본 개시내용의 기술적 효과들은, 가상 에이전트(예를 들어, 채팅 에이전트)에 의해 수신된 요청들 등의 사용자 발화들로부터 의미를 추출할 수 있고 이들 사용자 발화들에 적절히 응답할 수 있는 에이전트 자동화 프레임워크를 제공하는 것을 포함한다. 또한, 본 실시예는 주어진 자연어 발화에 대한 복수의 대안적인 의미 표현(예를 들어, 발화 트리)을 검출할 수 있는 구조 서브시스템을 갖는 NLU 프레임워크를 제공한다. 개시된 구조 서브시스템은, 발화의 형태 또는 형상의 상이한 패싯들을 검출하는 ML 기반 및 규칙 기반 기술들의 결과들에 대해 일련의 정밀화를 적용함으로써 이들 복수의 의미 표현을 생성한다. 개시된 구조 서브시스템은, 의미 검색 동안 적절한 고려가 주어져야 하는 복수의 가능한 형태-도출들로서 고려함으로써 자연어 요청들의 개선된 의도 추론을 가능하게 하면서, 고려로부터 잘못된 또는 사실상 중복된 형태-도출들을 효과적으로 전지한다. 또한, 개시된 의미 검색 서브시스템은, 의미 검색의 다양한 스테이지들을 수행할 때 신축적인(예를 들어, 비-정적, 가변) 임계치들을 가능하게 한다. 예를 들어, 신축적인 빔-폭 CCG 형태 기반 검색 동안에, 완화된 AMCT가 이용될 수 있는 반면, 신축적인 빔-폭 아티팩트내 검색 동안에, 완화된 MACT가 이용될 수 있다. 신축적인 신뢰도 임계치를 이용함으로써, 의미 검색 서브시스템은 잠재적인 매칭 의미 표현에 검색 동작의 초기 비교로부터 낮은 신뢰도 스코어를 수신함에도 존속할 기회를 제공하여, 그 의미 표현이 검색 동작의 후속 비교에서 그 신뢰도 스코어를 증가시킬 수 있고, 최종적인 아티팩트(예를 들어, 의도 및/또는 엔티티) 추출을 위해 매칭 의미 표현들의 최종 세트에 도달하기에 적격일 수 있다는 것이 현재 인식되고 있다. 이와 같이, 개시된 기술들은 NLU 프레임워크의 성능, 도메인 특정성, 추론 품질, 및/또는 효율을 개선한다.
위에서 설명된 특정 실시예들은 예로서 도시되었고, 이러한 실시예들은 다양한 수정들 및 대안적인 형태들이 가능할 수 있다는 점이 이해되어야 한다. 청구항들은 개시된 특정 형태들로 제한되는 것이 아니라, 오히려 본 개시내용의 사상 및 범위 내에 드는 모든 수정들, 등가물들, 및 대안들을 포괄하도록 의도된다는 점이 추가로 이해되어야 한다.
본 명세서에 제시되고 청구되는 기술들은 본 기술 분야를 명백하게 개선하고, 따라서 추상적이거나, 무형적이거나, 순수하게 이론적이지 않은 실제적인 성질의 물질적 대상들 및 구체적인 예들에 참조되고 적용된다. 또한, 본 명세서의 끝에 첨부되는 임의의 청구항들이 "~[기능]을 [수행]하기 위한 수단" 또는 "~[기능]을 [수행]하기 위한 단계"로서 지정되는 하나 이상의 요소를 포함하는 경우, 이러한 요소들은 35 U.S.C. 112(f) 하에서 해석되는 것으로 의도된다. 그러나, 임의의 다른 방식으로 지정되는 요소들을 포함하는 임의의 청구항들에 대해, 이러한 요소들은 35 U.S.C. 112(f) 하에서 해석되지 않는 것으로 의도된다.

Claims (20)

  1. 에이전트 자동화 시스템으로서,
    자연어 이해(NLU) 프레임워크 및 검색 공간을 저장하도록 구성된 메모리 - 상기 NLU 프레임워크는 의미 추출 서브시스템 및 의미 검색 서브시스템을 포함하고, 상기 검색 공간은 샘플 의미 표현들을 포함함 -; 및
    상기 NLU 프레임워크의 명령어들을 실행하여 상기 에이전트 자동화 시스템으로 하여금 액션들을 수행하게 하도록 구성된 프로세서
    를 포함하며, 상기 액션들은,
    상기 의미 추출 서브시스템을 통해, 사용자 발화(user utterance)로부터 발화 의미 모델을 생성하는 것 - 상기 발화 의미 모델은 검색 키 의미 표현들의 세트를 포함함 -;
    상기 의미 검색 서브시스템을 통해, 신축적인 빔-폭 인지 구축 문법(cognitive construction grammar)(CCG) 형태 기반 검색을 수행하여 상기 발화 의미 모델의 상기 검색 키 의미 표현들의 세트를 상기 검색 공간의 상기 샘플 의미 표현들과 비교하고 컨텐더 매칭 의미 표현들(contender matching meaning representations)의 세트를 선택하는 것;
    상기 의미 검색 서브시스템을 통해, 신축적인 빔-폭 아티팩트내 검색을 수행하여 상기 컨텐더 매칭 의미 표현들의 세트를 상기 검색 공간의 샘플 의미 표현들과 비교하고 매칭 의미 표현들의 최종 세트를 선택하는 것; 및
    상기 의미 검색 서브시스템을 통해, 상기 매칭 의미 표현들의 최종 세트로부터 상기 사용자 발화의 의도들, 엔티티들, 또는 이들의 조합을 추출하는 것
    을 포함하는, 시스템.
  2. 제1항에 있어서,
    상기 NLU 프레임워크의 상기 의미 추출 서브시스템은 어휘 서브시스템 및 구조 서브시스템을 포함하고, 상기 구조 서브시스템은 품사(part-of-speech)(POS) 구성요소, 정정 구성요소, 변동성 필터 구성요소, 파서 구성요소, 및 최종 스코어링 및 필터링 구성요소를 포함하는, 시스템.
  3. 제2항에 있어서,
    상기 발화 의미 모델을 생성하기 위해, 상기 프로세서는 상기 NLU 프레임워크의 명령어들을 실행하여 상기 에이전트 자동화 시스템으로 하여금 액션들을 수행하게 하도록 구성되고, 상기 액션들은,
    상기 어휘 서브시스템을 이용하여 어휘 주입을 수행함으로써 상기 사용자 발화에 기반하여 발화들의 세트를 생성하는 것 - 상기 발화들의 세트는 상기 사용자 발화, 및 상이한 어구, 상이한 용어, 또는 이들의 조합을 갖는 상기 사용자 발화의 하나 이상의 재표현을 포함함 -;
    상기 POS 구성요소를 이용하여 상기 발화들의 세트의 품사(POS) 태깅을 수행함으로써 상기 발화들의 세트로부터 잠재적인 POS 태깅들의 세트를 생성하는 것;
    상기 변동성 필터 구성요소를 이용하여 상기 잠재적인 POS 태깅들의 세트 내의 다른 POS 태깅들과 실질적으로 유사한 하나 이상의 POS 태깅을 상기 잠재적인 POS 태깅들의 세트로부터 제거하는 것;
    상기 파서 구성요소를 이용하여 상기 잠재적인 POS 태깅들의 세트로부터 잠재적인 의미 표현들의 세트를 생성하는 것; 및
    상기 최종 스코어링 및 필터링 구성요소를 이용하여 상기 잠재적인 의미 표현들의 세트 내의 각각의 잠재적인 의미 표현에 대한 각각의 최종 스코어를 계산하고, 상기 잠재적인 의미 표현들의 세트로부터의 잠재적인 의미 표현들을 그 각각의 최종 스코어에 기반하여 상기 발화 의미 모델의 상기 검색 키 의미 표현들의 세트로서 선택하는 것
    을 포함하는, 시스템.
  4. 제2항에 있어서,
    상기 프로세서는 상기 NLU 프레임워크의 명령어들을 실행하여 상기 에이전트 자동화 시스템으로 하여금 액션들을 수행하게 하도록 구성되고, 상기 액션들은,
    상기 어휘 서브시스템을 이용하여 어휘 주입을 수행함으로써 적어도 하나의 이해 모델의 의도-엔티티 모델의 샘플 발화들에 기반하여 발화들의 세트를 생성하는 것 - 상기 발화들의 세트는 상기 샘플 발화들, 및 상이한 어구, 상이한 용어, 또는 이들의 조합을 갖는 상기 사용자 발화의 하나 이상의 재표현을 포함함 -;
    상기 POS 구성요소를 이용하여 상기 발화들의 세트의 품사(POS) 태깅을 수행함으로써 상기 발화들의 세트로부터 잠재적인 POS 태깅들의 세트를 생성하는 것;
    상기 변동성 필터 구성요소를 이용하여 상기 잠재적인 POS 태깅들의 세트 내의 다른 POS 태깅들과 실질적으로 유사한 하나 이상의 POS 태깅을 상기 잠재적인 POS 태깅들의 세트로부터 제거하는 것;
    상기 파서 구성요소를 이용하여 상기 잠재적인 POS 태깅들의 세트로부터 잠재적인 의미 표현들의 세트를 생성하는 것; 및
    상기 최종 스코어링 및 필터링 구성요소를 이용하여 상기 잠재적인 의미 표현들의 세트 내의 각각의 잠재적인 의미 표현에 대한 각각의 최종 스코어를 계산하고, 상기 잠재적인 의미 표현들의 세트로부터 잠재적인 의미 표현들을 그 각각의 최종 스코어에 기반하여 상기 샘플 공간의 상기 샘플 의미 표현들로서 선택하는 것
    에 의해 상기 메모리에 저장된 적어도 하나의 이해 모델로부터 상기 검색 공간을 생성하는 것을 포함하는, 시스템.
  5. 제1항에 있어서,
    상기 신축적인 빔-폭 CCG 형태 기반 검색을 수행하기 위해, 상기 프로세서는 상기 NLU 프레임워크의 명령어들을 실행하여 상기 에이전트 자동화 시스템으로 하여금 액션들을 수행하게 하도록 구성되고, 상기 액션들은,
    상기 발화 의미 모델의 상기 검색 키 의미 표현들의 세트의 각각의 검색 키 의미 표현에 대해,
    (A) 상기 검색 키 의미 표현과 연관된 CCG 형태 및 비교 함수 리스트(comparison function list)를 결정하는 것;
    (B) 상기 비교 함수 리스트로부터 제1 비교 함수를 선택하고 상기 검색 공간의 전체로서 검색 부분 공간을 정의하는 것;
    (C) 선택된 비교 함수를 이용하여 상기 검색 키 의미 표현을 상기 검색 공간의 비교가능한 샘플 의미 표현들과 비교함으로써 대응하는 유사도 스코어들의 세트를 계산 또는 정밀화하는 것;
    (D) 완화된 집계 최소 신뢰도 임계치(AMCT) 미만인 대응하는 유사도 스코어들의 세트 내의 대응하는 유사도 스코어들을 갖는 의미 표현들을 상기 검색 부분 공간으로부터 전지(prune)하는 것;
    (E) 상기 비교 함수 리스트로부터의 추가적인 비교 함수들이 적용되어야 한다고 결정하는 것에 응답하여, 상기 비교 함수 리스트로부터 다음 비교 함수를 선택하고 단계(C)로 복귀하는 것; 및
    (F) 상기 검색 부분 공간에 남아 있는 상기 샘플 의미 표현들을 컨텐더 매칭 의미 표현들의 초기 세트에 추가하는 것; 및
    상기 컨텐더 매칭 의미 표현들의 초기 세트들의 다이버시티 스코어링을 수행하여 상기 컨텐더 매칭 의미 표현들의 초기 세트들로부터 의미 표현들을 상기 컨텐더 매칭 의미 표현들의 세트로서 선택하는 것
    을 포함하는, 시스템.
  6. 제1항에 있어서,
    상기 신축적인 빔-폭 아티팩트내 검색을 수행하기 위해, 상기 프로세서는 상기 NLU 프레임워크의 명령어들을 실행하여 상기 에이전트 자동화 시스템으로 하여금 액션들을 수행하게 하도록 구성되고, 상기 액션들은,
    상기 컨텐더 매칭 의미 표현들의 세트의 각각의 컨텐더 매칭 의미 표현에 대해,
    (A) 상기 컨텐더 매칭 의미 표현과 연관된 의도, CCG 형태, 및 비교 함수 리스트를 결정하는 것;
    (B) 상기 비교 함수 리스트로부터 제1 비교 함수를 선택하고, 상기 의도를 갖는 상기 검색 공간의 모든 샘플 의미 표현들로서 검색 부분 공간을 정의하는 것;
    (C) 선택된 비교 함수를 이용하여 상기 컨텐더 매칭 의미 표현을 상기 검색 공간의 비교가능한 샘플 의미 표현들과 비교함으로써 대응하는 유사도 스코어들의 세트를 계산 또는 정밀화하는 것;
    (D) 완화된 모델 아티팩트 신뢰도 임계치(MACT) 미만인 대응하는 유사도 스코어들의 세트 내의 대응하는 유사도 스코어들을 갖는 의미 표현들을 상기 검색 부분 공간으로부터 전지하는 것;
    (E) 상기 비교 함수 리스트로부터의 추가적인 비교 함수들이 적용되어야 한다고 결정하는 것에 응답하여, 상기 비교 함수 리스트로부터 다음 비교 함수를 선택하고 단계(C)로 복귀하는 것; 및
    (F) 상기 검색 부분 공간에 남아 있는 상기 샘플 의미 표현들을 상기 매칭 의미 표현들의 최종 세트에 추가하는 것
    을 포함하는, 시스템.
  7. 제1항에 있어서,
    상기 샘플 의미 표현들 및 상기 검색 키 의미 표현들은 발화 트리들을 포함하는, 시스템.
  8. 사용자 발화의 의미 검색을 수행하는 방법으로서,
    상기 사용자 발화로부터 발화 의미 모델을 생성하는 단계 - 상기 발화 의미 모델은 검색 키 의미 표현들의 세트를 포함함 -;
    신축적인 빔-폭 인지 구축 문법(CCG) 형태 기반 검색을 수행하여 상기 발화 의미 모델의 상기 검색 키 의미 표현들의 세트를 검색 공간의 샘플 의미 표현들과 비교하고 컨텐더 매칭 의미 표현들의 세트를 선택하는 단계;
    신축적인 빔-폭 아티팩트내 검색을 수행하여 상기 컨텐더 매칭 의미 표현들의 세트를 상기 검색 공간의 샘플 의미 표현들과 비교하고 매칭 의미 표현들의 최종 세트를 선택하는 단계; 및
    상기 매칭 의미 표현들의 최종 세트로부터 상기 사용자 발화의 의도들, 엔티티들, 또는 이들의 조합을 추출하는 단계
    를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 발화 의미 모델을 생성하는 단계는,
    어휘 주입을 수행함으로써 상기 사용자 발화에 기반하여 발화들의 세트를 생성하는 단계 - 상기 발화들의 세트는 상기 사용자 발화 및 상기 사용자 발화의 하나 이상의 재표현을 포함함 -;
    상기 발화들의 세트의 품사(POS) 태깅을 수행하여 상기 발화들의 세트에 대한 잠재적인 POS 태깅들의 세트를 생성하는 단계;
    변동성 필터링을 수행하여 상기 잠재적인 POS 태깅들의 세트 내의 다른 POS 태깅들과 실질적으로 유사한 POS 태깅들을 상기 잠재적인 POS 태깅들의 세트로부터 제거하는 단계;
    상기 잠재적인 POS 태깅들의 세트를 파싱하여 잠재적인 의미 표현들의 세트를 생성하는 단계; 및
    상기 잠재적인 의미 표현들의 세트 내의 각각의 잠재적인 의미 표현에 대한 각각의 최종 스코어를 계산하고, 상기 잠재적인 의미 표현들의 세트 내의 각각의 잠재적인 의미 표현의 각각의 최종 스코어에 기반하여 상기 잠재적인 의미 표현들의 세트로부터 상기 발화 의미 모델에 대한 상기 검색 키 의미 표현들의 세트를 선택하는 단계
    를 포함하는, 방법.
  10. 제8항에 있어서,
    상기 신축적인 빔-폭 CCG 형태 기반 검색을 수행하는 단계는,
    상기 검색 키 의미 표현들의 세트의 각각의 검색 키 의미 표현에 대해,
    (A) 상기 검색 키 의미 표현과 연관된 CCG 형태 및 비교 함수 리스트를 결정하는 단계;
    (B) 상기 비교 함수 리스트로부터 제1 비교 함수를 선택하고 상기 검색 공간의 전체로서 검색 부분 공간을 정의하는 단계;
    (C) 선택된 비교 함수를 이용하여 상기 검색 키 의미 표현을 상기 검색 공간의 비교가능한 샘플 의미 표현들과 비교함으로써 대응하는 유사도 스코어들의 세트를 계산 또는 정밀화하는 단계;
    (D) 완화된 집계 최소 신뢰도 임계치(AMCT) 미만인 대응하는 유사도 스코어들의 세트 내의 대응하는 유사도 스코어들을 갖는 의미 표현들을 상기 검색 부분 공간으로부터 전지하는 단계;
    (E) 상기 비교 함수 리스트로부터의 추가적인 비교 함수들이 적용되어야 한다고 결정하는 것에 응답하여, 상기 비교 함수 리스트로부터 다음 비교 함수를 선택하고 단계(C)로 복귀하는 단계; 및
    (F) 상기 검색 부분 공간에 남아 있는 상기 샘플 의미 표현들을 컨텐더 매칭 의미 표현들의 초기 세트에 추가하는 단계; 및
    상기 컨텐더 매칭 의미 표현들의 초기 세트들의 다이버시티 스코어링을 수행하여 상기 컨텐더 매칭 의미 표현들의 초기 세트들로부터 의미 표현들을 상기 컨텐더 매칭 의미 표현들의 세트로서 선택하는 단계
    를 포함하는, 방법.
  11. 제10항에 있어서,
    신뢰도 값들의 세트로부터 최소 신뢰도 값이 될 AMCT 값을 선택하는 단계 - 상기 신뢰도 값들의 세트는 상기 사용자 발화와 연관된 신뢰도 값, 상기 검색 공간과 연관된 이해 모델에서 정의된 신뢰도 값, 또는 디폴트 신뢰도 값 중 적어도 하나를 포함함 -; 및
    완화 함수를 적용하여 상기 AMCT 값을 확장하고 상기 완화된 AMCT를 생성하는 단계
    에 의해 상기 완화된 AMCT를 결정하는 단계를 포함하는, 방법.
  12. 제10항에 있어서,
    다이버시티 스코어링을 수행하는 단계는,
    상기 컨텐더 매칭 의미 표현들의 초기 세트들 내의 각각의 컨텐더 매칭 의미 표현과 연관된 의도 및 이해 모델을 결정하는 단계; 및
    고유 이해 모델, 고유 의도, 또는 이들의 조합을 갖는 상기 컨텐더 매칭 의미 표현들의 초기 세트들로부터 의미 표현들을 선택하는 단계
    를 포함하는, 방법.
  13. 제10항에 있어서,
    상기 비교 함수 리스트는 계산 비용이 가장 적게 계산적으로 비싼 비교 함수로부터 가장 많게 계산적으로 비싼 비교 함수로 증가하는 것과 관련하여 정렬되는, 방법.
  14. 제13항에 있어서,
    증가하는 계산 비용의 적어도 일부는 이전의 비교 함수에 대해, 상기 검색 키 의미 표현의 추가적인 노드들 또는 상기 검색 공간의 상기 비교가능한 샘플 의미 표현들의 추가적인 노드들을 비교한 결과인, 방법.
  15. 제8항에 있어서,
    상기 신축적인 빔-폭 아티팩트내 검색을 수행하는 단계는,
    상기 컨텐더 매칭 의미 표현들의 세트의 각각의 컨텐더 매칭 의미 표현에 대해,
    (A) 상기 컨텐더 매칭 의미 표현과 연관된 의도, CCG 형태, 및 비교 함수 리스트를 결정하는 단계;
    (B) 상기 비교 함수 리스트로부터 제1 비교 함수를 선택하고, 상기 의도를 갖는 상기 검색 공간의 모든 샘플 의미 표현들로서 검색 부분 공간을 정의하는 단계;
    (C) 선택된 비교 함수를 이용하여 상기 컨텐더 매칭 의미 표현을 상기 검색 공간의 비교가능한 샘플 의미 표현들과 비교함으로써 대응하는 유사도 스코어들의 세트를 계산 또는 정밀화하는 단계;
    (D) 완화된 모델 아티팩트 신뢰도 임계치(MACT) 미만인 대응하는 유사도 스코어들의 세트 내의 대응하는 유사도 스코어들을 갖는 의미 표현들을 상기 검색 부분 공간으로부터 전지하는 단계;
    (E) 상기 비교 함수 리스트로부터의 추가적인 비교 함수들이 적용되어야 한다고 결정하는 것에 응답하여, 상기 비교 함수 리스트로부터 다음 비교 함수를 선택하고 단계(C)로 복귀하는 단계; 및
    (F) 상기 검색 부분 공간에 남아 있는 상기 샘플 의미 표현들을 상기 매칭 의미 표현들의 최종 세트에 추가하는 단계
    를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 비교가능한 샘플 의미 표현들의 아티팩트들에 대해 이해 모델에서 정의된 최소 아티팩트 레벨 신뢰도 값이 되도록 MACT 값을 선택하는 단계; 및
    완화 함수를 적용하여 상기 MACT 값을 확장하고 상기 완화된 MACT를 생성하는 단계
    에 의해 상기 완화된 MACT를 결정하는 단계를 포함하는, 방법.
  17. 제8항에 있어서,
    추출된 의도들, 엔티티들, 또는 이들의 조합을 거동 엔진(BE)에 제공하는 단계를 포함하고, 상기 BE는 상기 사용자 발화의 상기 추출된 의도들, 엔티티들, 또는 이들의 조합에 응답하여 하나 이상의 액션을 수행하는, 방법.
  18. 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행가능한 자연어 이해(NLU) 프레임워크의 명령어들을 저장하는 비일시적 컴퓨터 판독가능한 매체로서, 상기 명령어들은,
    적어도 하나의 이해 모델로부터 검색 공간을 생성하고 - 상기 검색 공간은 샘플 의미 표현들을 포함함 -;
    사용자 발화로부터 발화 의미 모델을 생성하고 - 상기 발화 의미 모델은 검색 키 의미 표현들의 세트를 포함함 -;
    신축적인 빔-폭 인지 구축 문법(CCG) 형태 기반 검색을 수행하여 상기 발화 의미 모델의 상기 검색 키 의미 표현들의 세트를 상기 검색 공간의 샘플 의미 표현들과 비교하고 컨텐더 매칭 의미 표현들의 세트를 선택하고;
    신축적인 빔-폭 아티팩트내 검색을 수행하여 상기 컨텐더 매칭 의미 표현들의 세트를 상기 검색 공간의 샘플 의미 표현들과 비교하고 매칭 의미 표현들의 최종 세트를 선택하고;
    상기 매칭 의미 표현들의 최종 세트로부터 상기 사용자 발화의 의도들, 엔티티들, 또는 이들의 조합을 추출하기 위한
    명령어들을 포함하는, 비일시적 컴퓨터 판독가능한 매체.
  19. 제18항에 있어서,
    상기 신축적인 빔-폭 CCG 형태 기반 검색을 수행하기 위한 명령어들은,
    상기 검색 키 의미 표현들의 세트의 각각의 검색 키 의미 표현에 대해,
    (A) 상기 검색 키 의미 표현과 연관된 CCG 형태 및 비교 함수 리스트를 결정하고;
    (B) 상기 비교 함수 리스트로부터 제1 비교 함수를 선택하고 상기 검색 공간의 전체로서 검색 부분 공간을 정의하고;
    (C) 선택된 비교 함수를 이용하여 상기 검색 키 의미 표현을 상기 검색 공간의 비교가능한 샘플 의미 표현들과 비교함으로써 대응하는 유사도 스코어들의 세트를 계산 또는 정밀화하고;
    (D) 완화된 집계 최소 신뢰도 임계치(AMCT) 미만인 대응하는 유사도 스코어들의 세트 내의 대응하는 유사도 스코어들을 갖는 의미 표현들을 상기 검색 부분 공간으로부터 전지하고;
    (E) 상기 비교 함수 리스트로부터의 추가적인 비교 함수들이 적용되어야 한다고 결정하는 것에 응답하여, 상기 비교 함수 리스트로부터 다음 비교 함수를 선택하고 단계(C)로 복귀하고;
    (F) 상기 검색 부분 공간에 남아 있는 상기 샘플 의미 표현들을 컨텐더 매칭 의미 표현들의 초기 세트에 추가하고;
    상기 컨텐더 매칭 의미 표현들의 초기 세트들의 다이버시티 스코어링을 수행하여 상기 컨텐더 매칭 의미 표현들의 초기 세트들로부터 의미 표현들을 상기 컨텐더 매칭 의미 표현들의 세트로서 선택하기 위한
    명령어들을 포함하는, 비일시적 컴퓨터 판독가능한 매체.
  20. 제18항에 있어서,
    상기 신축적인 빔-폭 아티팩트내 검색을 수행하기 위한 명령어들은,
    상기 컨텐더 매칭 의미 표현들의 세트의 각각의 컨텐더 매칭 의미 표현에 대해,
    (A) 상기 컨텐더 매칭 의미 표현과 연관된 의도, CCG 형태, 및 비교 함수 리스트를 결정하고;
    (B) 상기 비교 함수 리스트로부터 제1 비교 함수를 선택하고, 상기 의도를 갖는 상기 검색 공간의 모든 샘플 의미 표현들로서 검색 부분 공간을 정의하고;
    (C) 선택된 비교 함수를 이용하여 상기 컨텐더 매칭 의미 표현을 상기 검색 공간의 비교가능한 샘플 의미 표현들과 비교함으로써 대응하는 유사도 스코어들의 세트를 계산 또는 정밀화하고;
    (D) 완화된 모델 아티팩트 신뢰도 임계치(MACT) 미만인 대응하는 유사도 스코어들의 세트 내의 대응하는 유사도 스코어들을 갖는 의미 표현들을 상기 검색 부분 공간으로부터 전지하고;
    (E) 상기 비교 함수 리스트로부터의 추가적인 비교 함수들이 적용되어야 한다고 결정하는 것에 응답하여, 상기 비교 함수 리스트로부터 다음 비교 함수를 선택하고 단계(C)로 복귀하고;
    (F) 상기 검색 부분 공간에 남아 있는 상기 샘플 의미 표현들을 상기 매칭 의미 표현들의 최종 세트에 추가하기 위한
    명령어들을 포함하는, 비일시적 컴퓨터 판독가능한 매체.
KR1020227002950A 2019-07-02 2020-07-02 자연어 이해(nlu) 프레임워크를 이용하여 의미 검색을 수행하기 위한 시스템 및 방법 KR20220025026A (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201962869826P 2019-07-02 2019-07-02
US201962869864P 2019-07-02 2019-07-02
US201962869811P 2019-07-02 2019-07-02
US201962869817P 2019-07-02 2019-07-02
US62/869,864 2019-07-02
US62/869,811 2019-07-02
US62/869,817 2019-07-02
US62/869,826 2019-07-02
US16/749,828 2020-01-22
US16/749,828 US11556713B2 (en) 2019-07-02 2020-01-22 System and method for performing a meaning search using a natural language understanding (NLU) framework
PCT/US2020/040728 WO2021003408A1 (en) 2019-07-02 2020-07-02 System and method for performing a meaning search using a natural language understanding (nlu) framework

Publications (1)

Publication Number Publication Date
KR20220025026A true KR20220025026A (ko) 2022-03-03

Family

ID=74065244

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227003413A KR20220027220A (ko) 2019-07-02 2020-07-01 자연어 이해(nlu) 프레임워크에서의 예측 유사도 스코어링 서브시스템
KR1020227003162A KR20220027198A (ko) 2019-07-02 2020-07-02 자연어 이해(nlu) 프레임워크에서 검색 키들 및 검색 공간들의 확장을 위한 아티팩트들의 피닝
KR1020227002950A KR20220025026A (ko) 2019-07-02 2020-07-02 자연어 이해(nlu) 프레임워크를 이용하여 의미 검색을 수행하기 위한 시스템 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020227003413A KR20220027220A (ko) 2019-07-02 2020-07-01 자연어 이해(nlu) 프레임워크에서의 예측 유사도 스코어링 서브시스템
KR1020227003162A KR20220027198A (ko) 2019-07-02 2020-07-02 자연어 이해(nlu) 프레임워크에서 검색 키들 및 검색 공간들의 확장을 위한 아티팩트들의 피닝

Country Status (5)

Country Link
US (3) US11487945B2 (ko)
JP (3) JP7420842B2 (ko)
KR (3) KR20220027220A (ko)
AU (3) AU2020299384B2 (ko)
WO (3) WO2021003311A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11615645B2 (en) * 2019-11-19 2023-03-28 International Business Machines Corporation Automated presentation contributions
US11651250B2 (en) * 2019-11-20 2023-05-16 International Business Machines Corporation Automatically generated conversation output
US11487948B2 (en) * 2020-02-19 2022-11-01 Conduent Business Services, Llc Method and system for automated autonomous intent mining
US11301273B2 (en) * 2020-03-11 2022-04-12 Atlassian Pty Ltd. Computer user interface for a virtual workspace having multiple application portals displaying context-related content
US11507862B2 (en) * 2020-04-12 2022-11-22 International Business Machines Corporation Determining skill adjacencies using a machine learning model
US11037549B1 (en) * 2020-06-05 2021-06-15 Inference Communications Pty Ltd System and method for automating the training of enterprise customer response systems using a range of dynamic or generic data sets
US11263407B1 (en) 2020-09-01 2022-03-01 Rammer Technologies, Inc. Determining topics and action items from conversations
US11568862B2 (en) * 2020-09-29 2023-01-31 Cisco Technology, Inc. Natural language understanding model with context resolver
US11093718B1 (en) * 2020-12-01 2021-08-17 Rammer Technologies, Inc. Determining conversational structure from speech
US11636134B2 (en) * 2021-01-18 2023-04-25 Fidelity Information Services, Llc Systems and methods for automatic change request management using similarity metric computations
US20220229986A1 (en) * 2021-01-21 2022-07-21 Servicenow, Inc. System and method for compiling and using taxonomy lookup sources in a natural language understanding (nlu) framework
US11361846B1 (en) 2021-02-03 2022-06-14 Vignet Incorporated Systems and methods for customizing monitoring programs involving remote devices
US11296971B1 (en) 2021-02-03 2022-04-05 Vignet Incorporated Managing and adapting monitoring programs
US11196656B1 (en) 2021-02-03 2021-12-07 Vignet Incorporated Improving diversity in cohorts for health research
US11521714B1 (en) 2021-02-03 2022-12-06 Vignet Incorporated Increasing diversity of participants in health research using adaptive methods
US11789837B1 (en) 2021-02-03 2023-10-17 Vignet Incorporated Adaptive data collection in clinical trials to increase the likelihood of on-time completion of a trial
US11316941B1 (en) 2021-02-03 2022-04-26 Vignet Incorporated Remotely managing and adapting monitoring programs using machine learning predictions
US11823666B2 (en) * 2021-10-04 2023-11-21 International Business Machines Corporation Automatic measurement of semantic similarity of conversations
US20230127907A1 (en) * 2021-10-22 2023-04-27 International Business Machines Corporation Intention identification in dialogue system
US11302314B1 (en) * 2021-11-10 2022-04-12 Rammer Technologies, Inc. Tracking specialized concepts, topics, and activities in conversations
WO2023235565A1 (en) * 2022-06-02 2023-12-07 University Of Central Florida Research Foundation, Inc. Medical language model
US11599713B1 (en) 2022-07-26 2023-03-07 Rammer Technologies, Inc. Summarizing conversational speech

Family Cites Families (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0477955A (ja) * 1990-07-20 1992-03-12 Nippon Telegr & Teleph Corp <Ntt> 日本語複文解析装置
JPH0782357B2 (ja) * 1993-03-29 1995-09-06 株式会社エイ・ティ・アール自動翻訳電話研究所 適応的探索方法
US5978594A (en) 1994-09-30 1999-11-02 Bmc Software, Inc. System for managing computer resources across a distributed computing environment by first reading discovery information about how to determine system resources presence
JPH09231221A (ja) * 1996-02-26 1997-09-05 Oki Electric Ind Co Ltd 文章解析方法および文章解析装置
US6321229B1 (en) 1999-02-26 2001-11-20 Hewlett-Packard Company Method and apparatus for using an information model to organize an information repository into a hierarchy of information
WO2002005154A2 (en) 2000-07-10 2002-01-17 It Masters Technologies S.A. System and method of enterprise systems and business impact management
US6609122B1 (en) 2000-08-01 2003-08-19 Bmc Software, Inc. Navigation of view relationships in database system
US6816898B1 (en) 2000-08-16 2004-11-09 Proactivenet, Inc. Interfacing external metrics into a performance management system
US6895586B1 (en) 2000-08-30 2005-05-17 Bmc Software Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US7027411B1 (en) 2000-10-31 2006-04-11 Hewlett-Packard Development Company, L.P. Method and system for identifying and processing changes to a network topology
US6944630B2 (en) 2000-11-22 2005-09-13 Bmc Software Database management system and method which monitors activity levels and determines appropriate schedule times
US7028301B2 (en) 2000-12-08 2006-04-11 Bmc Software, Inc. System and method for automatic workload characterization
US7170864B2 (en) 2001-03-08 2007-01-30 Bmc Software, Inc. System and method for WAP server management using a single console
US7506047B2 (en) 2001-03-30 2009-03-17 Bmc Software, Inc. Synthetic transaction monitor with replay capability
US7350209B2 (en) 2001-06-29 2008-03-25 Bmc Software System and method for application performance management
US20030009331A1 (en) 2001-07-05 2003-01-09 Johan Schalkwyk Grammars for speech recognition
US7089245B1 (en) 2001-08-31 2006-08-08 Bmc Software, Inc. Service desk data transfer interface
US6799189B2 (en) 2001-11-15 2004-09-28 Bmc Software, Inc. System and method for creating a series of online snapshots for recovery purposes
US7877783B1 (en) 2001-11-15 2011-01-25 Bmc Software, Inc. System and method for secure communications with a remote software program
AU2003212608A1 (en) 2002-03-01 2003-09-16 Bmc Software, Inc. System and method for assessing and indicating the health of components
US7131037B1 (en) 2002-06-05 2006-10-31 Proactivenet, Inc. Method and system to correlate a specific alarm to one or more events to identify a possible cause of the alarm
US7020706B2 (en) 2002-06-17 2006-03-28 Bmc Software, Inc. Method and system for automatically updating multiple servers
US7062683B2 (en) 2003-04-22 2006-06-13 Bmc Software, Inc. Two-phase root cause analysis
US7925981B2 (en) 2003-05-14 2011-04-12 Hewlett-Packard Development Company, L.P. Systems and methods for managing web services via a framework of interfaces
US7945860B2 (en) 2003-05-14 2011-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for managing conversations between information technology resources
US7882213B2 (en) 2003-06-03 2011-02-01 Bmc Software, Inc. Network management system to monitor managed elements
US7689628B2 (en) 2005-05-19 2010-03-30 Atul Garg Monitoring several distributed resource elements as a resource pool
US8224683B2 (en) 2003-07-08 2012-07-17 Hewlett-Packard Development Company, L.P. Information technology service request level of service monitor
KR100577387B1 (ko) 2003-08-06 2006-05-10 삼성전자주식회사 음성 대화 시스템에서의 음성 인식 오류 처리 방법 및 장치
US7133884B1 (en) 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
US7392300B2 (en) 2004-01-08 2008-06-24 Hewlett-Packard Development Company, L.P. Method and system for modelling a communications network
US7509653B2 (en) 2004-01-22 2009-03-24 International Business Machines Corporation Efficient and scalable event partitioning in business integration applications using multiple delivery queues
US9137115B2 (en) 2004-12-06 2015-09-15 Bmc Software, Inc. System and method for resource reconciliation in an enterprise management system
US8683032B2 (en) 2004-12-06 2014-03-25 Bmc Software, Inc. Generic discovery for computer networks
US7941506B2 (en) 2004-12-06 2011-05-10 Bmc Software, Inc. User interface for network discovery operations
US20060130038A1 (en) 2004-12-15 2006-06-15 Claussen Christopher S Apparatus, system, and method for facilitating dynamic modification of existing software objects defined in a strongly-typed programming language
AU2005318955A1 (en) 2004-12-21 2006-06-29 Bmc Software, Inc. System and method for business service management and building business service model
US8112354B2 (en) 2005-04-08 2012-02-07 Billeo, Inc Method and system for virtual consolidation of biller direct web sites
US7617500B2 (en) 2005-05-20 2009-11-10 International Business Machines Corporation Generic framework for integrating components with different interfaces in an enterprise application integration environment
US7849201B1 (en) 2005-06-14 2010-12-07 Billeo, Inc Method and system for capturing, organizing, searching and sharing web pages
US7630784B2 (en) 2005-07-22 2009-12-08 International Business Machines Corporation Method and apparatus for independent deployment of roles
US7971147B2 (en) 2005-07-25 2011-06-28 Billeo, Inc. Methods and systems for automatically creating a site menu
US8006240B2 (en) 2005-12-01 2011-08-23 International Business Machines Corporation Support continuous availability by allowing the use of multiple concurrent versions of shared artifact libraries, with proper bind-drain semantics, for long-lived process application consumers
US7958031B2 (en) 2005-12-13 2011-06-07 International Business Machines Corporation Apparatus, system, and method for automated identity relationship maintenance
US7653650B2 (en) 2005-12-13 2010-01-26 International Business Machines Corporation Apparatus, system, and method for synchronizing change histories in enterprise applications
US7716353B2 (en) 2005-12-21 2010-05-11 Bmc Software, Inc. Web services availability cache
US7610512B2 (en) 2006-01-06 2009-10-27 Hewlett-Packard Development Company, L.P. System and method for automated and assisted resolution of it incidents
WO2007105615A1 (ja) * 2006-03-10 2007-09-20 Nec Corporation 要求内容識別システム、自然言語による要求内容の識別方法及びプログラム
US20070261065A1 (en) 2006-04-20 2007-11-08 Astl Kenneth L Framework for generating pre-packaged business integration component group pattern-based applications
US8887133B2 (en) 2006-04-28 2014-11-11 Bmc Software, Inc. Bi-directional communication between change management tool and implementation tools
US8555287B2 (en) 2006-08-31 2013-10-08 Bmc Software, Inc. Automated capacity provisioning method using historical performance data
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20080075444A1 (en) 2006-09-25 2008-03-27 Murali Subbarao Blur equalization for auto-focusing
US7899670B1 (en) 2006-12-21 2011-03-01 Escription Inc. Server-based speech recognition
US7685167B2 (en) 2007-01-30 2010-03-23 Bmc Software, Inc. Configuration management database reference instance
US7996214B2 (en) 2007-11-01 2011-08-09 At&T Intellectual Property I, L.P. System and method of exploiting prosodic features for dialog act tagging in a discriminative modeling framework
US8156479B2 (en) 2007-12-07 2012-04-10 International Business Machines Corporation System and method of monitoring dynamic scopes in synchronous and asynchronous calls
US8051164B2 (en) 2007-12-14 2011-11-01 Bmc Software, Inc. Impact propagation in a directed acyclic graph having restricted views
GB2458461A (en) 2008-03-17 2009-09-23 Kai Yu Spoken language learning system
US8266096B2 (en) 2008-10-24 2012-09-11 Bmc Software, Inc. Vendor portfolio management in support of vendor relationship management analysis, planning and evaluation
US8380749B2 (en) 2009-01-14 2013-02-19 Bmc Software, Inc. MDR federation facility for CMDBf
US8554750B2 (en) 2009-01-15 2013-10-08 Bmc Software, Inc. Normalization engine to manage configuration management database integrity
US8346752B2 (en) 2009-02-03 2013-01-01 Bmc Software, Inc. Software title discovery
US8646093B2 (en) 2009-03-31 2014-02-04 Bmc Software, Inc. Method and system for configuration management database software license compliance
US8743121B2 (en) 2009-12-23 2014-06-03 Bmc Software, Inc. Smart impact views
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
US9122536B2 (en) 2009-12-30 2015-09-01 Bmc Software, Inc. Automating application provisioning for heterogeneous datacenter environments
US8694304B2 (en) 2010-03-26 2014-04-08 Virtuoz Sa Semantic clustering and user interfaces
US8712979B2 (en) 2010-03-26 2014-04-29 Bmc Software, Inc. Statistical identification of instances during reconciliation process
US8832652B2 (en) 2010-03-26 2014-09-09 Bmc Software, Inc. Method for customizing software applications
US9467344B2 (en) 2010-03-26 2016-10-11 Bmc Software, Inc. Mechanism to display graphical IT infrastructure using configurable smart navigation
US9378202B2 (en) 2010-03-26 2016-06-28 Virtuoz Sa Semantic clustering
US8457928B2 (en) 2010-03-26 2013-06-04 Bmc Software, Inc. Automatic determination of dynamic threshold for accurate detection of abnormalities
US8478569B2 (en) 2010-03-26 2013-07-02 Bmc Software, Inc. Auto adjustment of baseline on configuration change
US8433654B2 (en) 2010-05-10 2013-04-30 Billeo, Inc Method and system for paying directly at biller websites from within a bill pay website
US8380645B2 (en) 2010-05-27 2013-02-19 Bmc Software, Inc. Method and system to enable inferencing for natural language queries of configuration management databases
US8674992B2 (en) 2010-06-24 2014-03-18 Bmc Software, Inc. Spotlight graphs
US8402127B2 (en) 2010-06-28 2013-03-19 Bmc Software, Inc. System and method for offering virtual private clouds within a public cloud environment
US8473361B2 (en) 2010-09-23 2013-06-25 Billeo, Inc. Method and system for assisting users during online
US20120158791A1 (en) 2010-12-21 2012-06-21 Microsoft Corporation Feature vector construction
US8650078B2 (en) 2011-03-04 2014-02-11 Billeo, Inc. Methods and systems for paying with loyalty currency during in-store shopping
US8612289B2 (en) 2011-03-04 2013-12-17 Billeo, Inc. Methods and systems for paying with loyalty currency during online payment
US20120246073A1 (en) 2011-03-21 2012-09-27 Billeo, Inc. Systems and methods for transferring transaction instructions from a remote repository to a merchant website using a transaction agent
US20120290938A1 (en) 2011-05-11 2012-11-15 Billeo, Inc. Systems and Methods for Context Aware Interaction Across Websites and Apps
US8818994B2 (en) 2011-06-27 2014-08-26 Bmc Software, Inc. Mobile service context
US8745040B2 (en) 2011-06-27 2014-06-03 Bmc Software, Inc. Service context
US8907988B2 (en) 2011-06-30 2014-12-09 Bmc Software, Inc. Systems and methods for displaying and viewing data models
US8843907B2 (en) 2011-08-25 2014-09-23 Myezapp Inc. Compiler with error handling
US9015188B2 (en) 2011-09-28 2015-04-21 Bmc Software, Inc. Methods and apparatus for monitoring execution of a database query program
US8689241B2 (en) 2011-09-30 2014-04-01 Bmc Software, Inc. Dynamic evocations for computer event management
KR101475284B1 (ko) 2011-11-29 2014-12-23 에스케이텔레콤 주식회사 작문 자동 평가를 위해 샬로우 파서를 이용한 오류 검출 장치 및 방법
US8914768B2 (en) 2012-03-28 2014-12-16 Bmc Software, Inc. Automated blueprint assembly for assembling an application
US8812539B2 (en) 2012-03-31 2014-08-19 Bmc Software, Inc. Unique attribute constraints for versioned database objects
US9122552B2 (en) 2012-06-29 2015-09-01 Bmc Software, Inc. Hybrid cloud infrastructures
KR101629415B1 (ko) 2012-08-10 2016-06-10 에스케이텔레콤 주식회사 문법 오류 검출 방법 및 이를 위한 오류검출장치
US20140111520A1 (en) 2012-10-23 2014-04-24 Bmc Software, Inc. User-centric annotated location aware asset mapping
KR101364774B1 (ko) 2012-12-07 2014-02-20 포항공과대학교 산학협력단 음성 인식의 오류 수정 방법 및 장치
US9645833B2 (en) 2012-12-31 2017-05-09 Bmc Software, Inc. Additive independent object modification
US10235358B2 (en) 2013-02-21 2019-03-19 Microsoft Technology Licensing, Llc Exploiting structured content for unsupervised natural language semantic parsing
US9317327B2 (en) 2013-02-28 2016-04-19 Bmc Software, Inc. Computing infrastructure planning
US20140279274A1 (en) 2013-03-13 2014-09-18 Billeo, Inc. Methods and systems for facilitating web-based purchases
US9158799B2 (en) 2013-03-14 2015-10-13 Bmc Software, Inc. Storing and retrieving context sensitive data in a management system
US9098322B2 (en) 2013-03-15 2015-08-04 Bmc Software, Inc. Managing a server template
US9613070B2 (en) 2013-03-15 2017-04-04 Bmc Software, Inc. Multi-entity normalization
US10430856B2 (en) 2013-03-26 2019-10-01 Paymentus Corporation Systems and methods for marketplace catalogue population
US9626717B2 (en) 2013-03-26 2017-04-18 Billeo, Inc. Methods and systems for dynamic and embeddable storefront widget
US10366437B2 (en) 2013-03-26 2019-07-30 Paymentus Corporation Systems and methods for product recommendation refinement in topic-based virtual storefronts
KR20140121580A (ko) 2013-04-08 2014-10-16 한국전자통신연구원 자동 번역 및 통역 장치 및 그 방법
CN104216913B (zh) 2013-06-04 2019-01-04 Sap欧洲公司 问题回答方法、系统和计算机可读介质
US20140365206A1 (en) 2013-06-06 2014-12-11 Xerox Corporation Method and system for idea spotting in idea-generating social media platforms
US9654473B2 (en) 2013-06-28 2017-05-16 Bmc Software, Inc. Authentication proxy agent
JP6143883B2 (ja) * 2013-11-29 2017-06-07 株式会社東芝 対話支援システム、方法、及びプログラム
US10073840B2 (en) 2013-12-20 2018-09-11 Microsoft Technology Licensing, Llc Unsupervised relation detection model training
KR102131099B1 (ko) 2014-02-13 2020-08-05 삼성전자 주식회사 지식 그래프에 기초한 사용자 인터페이스 요소의 동적 수정 방법
US9870356B2 (en) 2014-02-13 2018-01-16 Microsoft Technology Licensing, Llc Techniques for inferring the unknown intents of linguistic items
US11295304B2 (en) 2014-03-20 2022-04-05 Paymentus Corporation Bifurcated digital wallet systems and methods for processing transactions using information extracted from multiple sources
US10191999B2 (en) * 2014-04-30 2019-01-29 Microsoft Technology Licensing, Llc Transferring information across language understanding model domains
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10210246B2 (en) * 2014-09-26 2019-02-19 Oracle International Corporation Techniques for similarity analysis and data enrichment using knowledge sources
US9626358B2 (en) * 2014-11-26 2017-04-18 Abbyy Infopoisk Llc Creating ontologies by analyzing natural language texts
US9659051B2 (en) 2014-12-22 2017-05-23 Bladelogic Inc. Enforcing referential integrity for object data documents
US9535737B2 (en) 2015-01-30 2017-01-03 Bladelogic, Inc. Dynamic virtual port provisioning
US10049199B2 (en) 2015-03-18 2018-08-14 International Business Machines Corporation Securing a device using graphical analysis
US10049198B2 (en) 2015-03-18 2018-08-14 International Business Machines Corporation Securing a device using graphical analysis
US9672814B2 (en) 2015-05-08 2017-06-06 International Business Machines Corporation Semi-supervised learning of word embeddings
US9607616B2 (en) 2015-08-17 2017-03-28 Mitsubishi Electric Research Laboratories, Inc. Method for using a multi-scale recurrent neural network with pretraining for spoken language understanding tasks
US20170069309A1 (en) 2015-09-03 2017-03-09 Google Inc. Enhanced speech endpointing
US10134389B2 (en) * 2015-09-04 2018-11-20 Microsoft Technology Licensing, Llc Clustering user utterance intents with semantic parsing
US10262062B2 (en) 2015-12-21 2019-04-16 Adobe Inc. Natural language system question classifier, semantic representations, and logical form templates
US20170242886A1 (en) * 2016-02-19 2017-08-24 Jack Mobile Inc. User intent and context based search results
US20170243107A1 (en) 2016-02-19 2017-08-24 Jack Mobile Inc. Interactive search engine
US10515086B2 (en) 2016-02-19 2019-12-24 Facebook, Inc. Intelligent agent and interface to provide enhanced search
US10878191B2 (en) 2016-05-10 2020-12-29 Nuance Communications, Inc. Iterative ontology discovery
US10146859B2 (en) 2016-05-13 2018-12-04 General Electric Company System and method for entity recognition and linking
US10606952B2 (en) 2016-06-24 2020-03-31 Elemental Cognition Llc Architecture and processes for computer learning and understanding
US10339169B2 (en) 2016-09-08 2019-07-02 Conduent Business Services, Llc Method and system for response evaluation of users from electronic documents
US10249294B2 (en) 2016-09-09 2019-04-02 Electronics And Telecommunications Research Institute Speech recognition system and method
JP7441650B2 (ja) 2016-09-16 2024-03-01 オラクル・インターナショナル・コーポレイション エンティティベースの通信を有する、インターネットクラウドによってホストされた自然言語インタラクティブメッセージングシステム
US10528605B2 (en) * 2016-11-18 2020-01-07 DefinedCrowd Corporation Crowdsourced training of textual natural language understanding systems
US10268679B2 (en) 2016-12-02 2019-04-23 Microsoft Technology Licensing, Llc Joint language understanding and dialogue management using binary classification based on forward and backward recurrent neural network
US10109275B2 (en) 2016-12-19 2018-10-23 Asapp, Inc. Word hash language model
US10762892B2 (en) 2017-02-23 2020-09-01 Semantic Machines, Inc. Rapid deployment of dialogue system
US10229683B2 (en) * 2017-03-10 2019-03-12 Soundhound, Inc. Speech-enabled system with domain disambiguation
JP7086993B2 (ja) * 2017-05-10 2022-06-20 オラクル・インターナショナル・コーポレイション コミュニケーション用談話ツリーの使用による修辞学的分析の可能化
US11960844B2 (en) * 2017-05-10 2024-04-16 Oracle International Corporation Discourse parsing using semantic and syntactic relations
US10275452B2 (en) 2017-05-12 2019-04-30 International Business Machines Corporation Automatic, unsupervised paraphrase detection
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
JP6980411B2 (ja) 2017-05-23 2021-12-15 株式会社日立製作所 情報処理装置、対話処理方法、及び対話処理プログラム
US10678816B2 (en) 2017-08-23 2020-06-09 Rsvp Technologies Inc. Single-entity-single-relation question answering systems, and methods
US10431219B2 (en) 2017-10-03 2019-10-01 Google Llc User-programmable automated assistant
US11087090B2 (en) 2018-03-23 2021-08-10 Servicenow, Inc. System for focused conversation context management in a reasoning agent/behavior engine of an agent automation system
US10497366B2 (en) 2018-03-23 2019-12-03 Servicenow, Inc. Hybrid learning system for natural language understanding
US10740566B2 (en) 2018-03-23 2020-08-11 Servicenow, Inc. Method and system for automated intent mining, classification and disposition
US10664662B2 (en) * 2018-04-18 2020-05-26 Microsoft Technology Licensing, Llc Multi-scale model for semantic matching
US11016966B2 (en) * 2018-06-26 2021-05-25 Adobe Inc. Semantic analysis-based query result retrieval for natural language procedural queries
US11030260B2 (en) * 2018-08-29 2021-06-08 Ip.Com I, Llc System and method for dynamically normalized semantic distance and applications thereof
US11501065B2 (en) * 2019-09-11 2022-11-15 Oracle International Corporation Semantic parser including a coarse semantic parser and a fine semantic parser

Also Published As

Publication number Publication date
JP7346609B2 (ja) 2023-09-19
JP7383737B2 (ja) 2023-11-20
WO2021003408A1 (en) 2021-01-07
WO2021003311A1 (en) 2021-01-07
JP2022539138A (ja) 2022-09-07
JP2022538861A (ja) 2022-09-06
AU2020299608A1 (en) 2022-01-27
AU2020299634B2 (en) 2023-03-02
JP7420842B2 (ja) 2024-01-23
AU2020299634A1 (en) 2022-01-27
US11556713B2 (en) 2023-01-17
AU2020299384A1 (en) 2022-01-27
KR20220027198A (ko) 2022-03-07
AU2020299384B2 (en) 2023-03-09
US20210004442A1 (en) 2021-01-07
US11487945B2 (en) 2022-11-01
AU2020299608B2 (en) 2023-04-13
KR20220027220A (ko) 2022-03-07
WO2021003423A1 (en) 2021-01-07
JP2022538591A (ja) 2022-09-05
US20210004537A1 (en) 2021-01-07
US20210004443A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
JP7346609B2 (ja) 自然言語理解(nlu)フレームワークを使用して意味探索を実行するシステムおよび方法
US10497366B2 (en) Hybrid learning system for natural language understanding
US11720756B2 (en) Deriving multiple meaning representations for an utterance in a natural language understanding (NLU) framework
US11520992B2 (en) Hybrid learning system for natural language understanding
US20220245353A1 (en) System and method for entity labeling in a natural language understanding (nlu) framework
US20220229994A1 (en) Operational modeling and optimization system for a natural language understanding (nlu) framework
US20220245361A1 (en) System and method for managing and optimizing lookup source templates in a natural language understanding (nlu) framework
US20220229990A1 (en) System and method for lookup source segmentation scoring in a natural language understanding (nlu) framework
US20220229986A1 (en) System and method for compiling and using taxonomy lookup sources in a natural language understanding (nlu) framework
US20220229987A1 (en) System and method for repository-aware natural language understanding (nlu) using a lookup source framework
US20220237383A1 (en) Concept system for a natural language understanding (nlu) framework
US20220245352A1 (en) Ensemble scoring system for a natural language understanding (nlu) framework
US20240176962A1 (en) CROSS-LINGUAL NATURAL LANGUAGE UNDERSTANDING MODEL FOR MULTI-LANGUAGE NATURAL LANGUAGE UNDERSTANDING (mNLU)