KR102178738B1 - 적절한 에이전트의 자동화된 어시스턴트 호출 - Google Patents

적절한 에이전트의 자동화된 어시스턴트 호출 Download PDF

Info

Publication number
KR102178738B1
KR102178738B1 KR1020187033048A KR20187033048A KR102178738B1 KR 102178738 B1 KR102178738 B1 KR 102178738B1 KR 1020187033048 A KR1020187033048 A KR 1020187033048A KR 20187033048 A KR20187033048 A KR 20187033048A KR 102178738 B1 KR102178738 B1 KR 102178738B1
Authority
KR
South Korea
Prior art keywords
agent
agents
input
request
natural language
Prior art date
Application number
KR1020187033048A
Other languages
English (en)
Other versions
KR20180134994A (ko
Inventor
일야 게나드예비치 겔펜베인
아르템 곤차루크
파벨 시로틴
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020207032178A priority Critical patent/KR102297394B1/ko
Publication of KR20180134994A publication Critical patent/KR20180134994A/ko
Application granted granted Critical
Publication of KR102178738B1 publication Critical patent/KR102178738B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/527Centralised call answering arrangements not requiring operator intervention

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Abstract

사용자와 자동화된 어시스턴트 간의 대화 동안에 에이전트를 호출하는 것. 일부 구현예들은 사람-대-자동화된 어시스턴트 대화 동안에, 에이전트를 관련시킬 것을 원함을 표시하지만, 관련될 특정한 에이전트를 표시하지는 못하는 사용자의 자연어 입력을 수신하는 것에 관한 것이다. 이들 구현예들은 복수의 사용가능한 에이전트들로부터 특정한 에이전트를 선택하는 것 그리고 호출 요청을 선택된 특정한 에이전트에 전송하는 것에 관한 것이다. 일부 구현예들에서, 기계 학습 모델과 같은 에이전트 선택 모델이 상기 특정한 에이전트를 선택하는 것에 활용될 수 있다. 기계 학습 모델은 복수의 사용가능한 에이전트들(그리고 선택적으로 그들 에이전트들에 대한 의도(들)) 각각에 대해, 사용가능한 에이전트(그리고 선택적으로 의도)가 적절한 응답형 컨텐츠를 생성할 확률을 표시하는 출력을 생성할 수 있도록 트레이닝될 수 있다.

Description

적절한 에이전트의 자동화된 어시스턴트 호출
자동화된 어시스턴트(“퍼스널 어시스턴트”, “모바일 어시스턴트”로도 알려짐)는 스마트폰, 태블릿 컴퓨터, 웨어러블 디바이스, 오토모빌 시스템, 단독형 퍼스널 어시스턴트 디바이스 등과 같은 다양한 클라이언트 디바이스들을 통해 사용자에 의해 인터렉션될 수 있다. 자동화된 어시스턴트는 사용자로부터 입력(예를 들어, 타이핑된 및/또는 발화된 자연어 입력)을 수신하고, 응답형 컨텐츠(예를 들어, 시각적 및/또는 청각적 자연어 출력)로 응답한다. 클라이언트 디바이스를 통해 인터렉션하는 자동화된 어시스턴트는 클라이언트 디바이스 그 자체를 통해 및/또는 상기 클라이언트 디바이스와 네트워크 통신을 하는 하나 이상의 원격 컴퓨팅 디바이스들(예를 들어 “클라우드”의 컴퓨팅 디바이스(들))을 통해 구현될 수 있다.
본 명세서는 일반적으로 사용자와 자동화된 어시스턴트 간의 대화 중에 에이전트를 호출하기 위한 방법들, 시스템들 및 컴퓨터 판독가능 매체에 관한 것이다. 에이전트를 호출하는 것은 호출 파라미터(들)에 대한 값(들)(예를 들어, 의도 파라미터에 대한 값, 의도 슬롯 파라미터(들)에 대한 값(들) 및/또는 다른 파라미터(들)에 대한 값(들))을 포함하고 그리고 상기 에이전트로 하여금 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해(예를 들어, 자동화된 어시스턴트와의 대화에 활용된 사용자 인터페이스 출력 디바이스들 중 하나 이상을 통해) 사용자에게 제시하기 위한 컨텐츠를 생성하게 하는 호출 요청을 전송하는 것(예를 들어, 어플리케이션 프로그래밍 인터페이스(API)를 활용하는 것)을 포함할 수 있다. 에이전트에 의해 생성된 응답형 컨텐츠는 상기 호출 요청의 호출 파라미터들에 대해 다듬어질 수 있다.
일부 구현예들은 사람-대-자동화된 어시스턴트 대화 동안에, 에이전트를 관련시킬 것을 원함을 표시하지만, 관련될 특정한 에이전트를 표시하지는 못하는 사용자의 자연어 입력을 수신하는 것에 관한 것이다. 예를 들면, “시카고에 있는 호텔을 예약해줘”는 에이전트가 “호텔 예약” 의도 파라미터 및 “시카고” 위치 파라미터와 관련되기를 원함을 표시하지만, 호출하기 위한 특정한 에이전트를 특정하지는 못한다. 이들 구현예들은 복수의 사용가능한 에이전트들로부터 특정한 에이전트를 선택하는 것 그리고 호출 요청을 선택된 특정한 에이전트에 전송하는 것에 관한 것이다. 예를 들면, 호출 요청은 사용가능한 에이전트들 중 임의의 다른 것에 호출 요청을 전송하지 않고 선택된 특정한 에이전트에 전송될 수 있다. 상기 구현예들 중 일부에서, 특정한 에이전트 및 특정한 에이전트에 대한 특정한 의도가 선택된다(예를 들어, 특정한 에이전트가 다수의 이질적인 의도들 중 임의의 하나에 응답하여 응답형 컨텐츠를 생성하도록 동작가능한 경우).
복수의 사용가능한 에이전트들로부터 특정한 에이전트를 선택하는 구현예들 주 일부에서, 에이전트 선택 모델이 특정한 에이전트를 선택하는데 활용된다. 상기 구현예들 중 일부 버전들에서, 에이전트 선택 모델은 딥 신경 네트워크 모델과 같은 적어도 하나의 기계 학습 모델을 포함한다. 기계 학습 모델은 복수의 사용가능한 에이전트들(그리고 선택적으로 그들 에이전트들에 대한 의도(들)) 각각에 대해, 사용가능한 에이전트(그리고 선택적으로 의도)가 적절한 응답형 컨텐츠를 생성할 확률을 표시하는 출력을 생성할 수 있도록 트레이닝될 수 있다. 생성된 출력은 기계 학습 모델에 적용된 입력에 기초하며, 상기 입력은 자동화된 어시스턴트와의 현재 대화 및 선택적으로 추가적인 컨텍스트적 값들에 기초한다. 예를 들면, 현재 대화에 기초한 입력은 현재 대화에서 자동화된 어시스턴트에 제공된 가장 최근의 자연어 입력 및/또는 현재 대화에서 제공된 과거 자연어 입력에 기초한 다양한 값들을 포함할 수 있다. 또한, 선택적 추가적인 컨텍스트적 값들은 예를 들면, 클라이언트 디바이스의 사용자의 이력적 인터렉션들, 클라이언트 디바이스에 현재 렌더링된 및/또는 최근에 렌더링된 컨텐츠, 클라이언트 디바이스의 위치, 현재 날짜 및/또는 시간 등에 기초한 값(들)과 같은 클라이언트 디바이스 컨텍스트적 값들을 포함할 수 있다.
에이전트 선택 모델이 적어도 하나의 기계 학습 모델을 포함하는 일부 구현예들에서, 기계 학습 모델들 중 적어도 하나는 사용가능한 에이전트들과의 과거 인터렉션들에 기초하는 트레이닝 인스턴스들에 기초하여 트레이닝될 수 있다.
일 예시로서, 복수의 트레이닝 인스턴스들은 대응하는 사람-대-자동화된 어시스턴트 대화 동안에 제공된 자연어 입력에 기초하여 생성된 대응하는 에이전트 요청에 기초하여 각각 생성될 수 있다(예를 들어, 특정한 에이전트를 식별하지 못한 자연어 입력). 에이전트 요청은 복수의 사용가능한 에이전트들 각각에 전송될 수 있고(예를 들어, 모든 사용가능한 에이전트들), 그리고 에이전트 요청이 전송된 사용가능한 에이전트들 중 하나 이상으로부터 응답들이 수신된다. 트레이닝 인스턴스들 각각은 에이전트 요청(예를 들어, 대응하는 자연어 입력 및 선택적으로 컨텍스트적 값들)에 기초하는 트레이닝 인스턴스 입력 및 응답(들)에 기초하는 트레이닝 인스턴스 출력을 포함할 수 있다. 응답들은 에이전트 요청을 리졸브하기 위한 에이전트들 중 대응하는 에이전트의 능력을 각각 표시할 수 있다. 예를 들면, 주어진 에이전트로부터의 응답은 바이너리 표시(예를 들어, “리졸브가능”, “리졸브불가능”; 또는 “응답형 컨텐츠”, “비 응답형 컨텐츠 / 에러”), 비-바이너리 신뢰도(예를 들어, “70% 리졸브가능”), 실제 응답형 컨텐츠(또는 컨텐츠 없음 / 에러) 등일 수 있다. 또한, 예를 들면, 주어진 에이전트로부터 응답의 수신은 그것이 응답할 수 있다고 표시할 수 있는 반면 주어진 에이전트로부터의 무응답은 그것이 응답할 수 없음을 표시할 수 있다. 에이전트 요청은 대화에서 사용가능한 에이전트들의 활동적 호출 없이 에이전트들에 전송될 수 있다. 예를 들면, 에이전트 요청은 호출 요청과 유사할 수 있으나, “비-호출” 플래그 및/또는 에이전트가 즉각적으로 호출되지 않아야 한다는 다른 표시를 포함할 수 있다. 또한, 예를 들면, 응답들은 대화에서 임의의 대응하는 컨텐츠를 제공하지 않고 자동화된 어시스턴트에 의해 추가적으로 또는 대안적으로 프로세싱될 수 있다.
한 번 트레이닝된 기계 학습 모델은 현재 대화(예를 들어, 현재 대화의 자연어 입력 및 선택적으로 컨텍스트적 값(들)), 복수의 사용가능한 에이전트들 각각에 대한 확률(그리고 선택적으로 의도들)에 기초하여 예측하는데 활용될 수 있고, 여기서 상기 확률들 각각은 에이전트가 대화에 기초하여 호출 요청을 적절하게 처리할 수 있는 확률(예를 들어, 바이너리 또는 비-바이너리)을 표시한다. 특정한 에이전트의 선택은 상기 확률들에 적어도 부분적으로 기초할 수 있고, 호출 요청은 특정한 에이전트에게만 전송된다.
일부 구현예들에서, 기계 학습 모델들 중 적어도 하나는 에이전트들의 호출 이후에 에이전트들에 제공된 자연어 입력들에 기초하여 생성될 수 있다. 예를 들면, 에이전트들의 호출 이후에 즉각적으로 에이전트들에 제공된 자연어 입력들은 상기 에이전트들과 연관되어 저장될 수 있다. 예를 들어, 자연어 입력들은 “단순” 호출들인 호출들 이후에 즉각적으로 에이전트들에 제공된 것들일 수 있다. 에이전트의 단순 호출은 에이전트에 대한 호출 요청에 기초한 에이전트의 호출이지만, 의도 파라미터에 대한 값을 포함하지 않고 및/또는 임의의 의도 슬롯 파라미터들에 대한 값을 포함하지 않는다. 예를 들면, “에이전트 X를 열어”의 자연어 입력에 응답하여, “에이전트 X”의 단순 호출이 의도 파라미터들에 대한 임의의 값을 포함하지 않고 그리고 임의의 의도 슬롯 파라미터들에 대한 임의의 값을 포함하지 않는 “에이전트 X”에 전송된 호출 요청에 응답하여 발생할 수 있다. 또한, 예를 들면, “에이전트 X에 리마인더를 설정해”의 자연어 입력에 응답하여, “에이전트 X”의 단순 호출이 의도 파라미터들에 대해 “리마인더” 값을 포함하지만 임의의 의도 슬롯 파라미터들에 대한 임의의 값을 포함하지 않는 “에이전트 X”에 전송된 호출 요청에 응답하여 발생할 수 있다. 자연어 입력들과 상기 자연어 입력들이 제공된 대응하는 에이전트(들)(및 선택적으로 의도) 사이의 맵핑들(또는 기타 연관들)을 포함하는 선택 모델이 생성될 수 있다. 이 방식에서, 상기 맵핑들은 에이전트들의 단순 호출들 이후의 사용자들에 의해 제공된 초기 대화에 기초할 수 있고, 어떤 에이전트(들)이 다양한 자연어 입력들에 응답하는데 능숙할 가능성이 가장 높은지에 대한 통찰을 제공하는 에이전트 선택 모델의 생성을 가능하게 한다. 추가적인 및/또는 대안적인 선택 모델(들)이 특정한 에이전트를 선택하는데 활용될 수 있다. 일 예시로서, 다양한 사용자들에 의한 에이전트들의 과거의 명시적 선택들에 기초하여 생성된 선택 모델이 특정한 에이전트를 선택하는데 추가적으로 또는 대안적으로 활용될 수 있다.
일부 구현예들에서, 다양한 추가적 및/또는 대안적 기준이 특정한 에이전트(및 선택적으로 의도)를 선택하는데 활용된다. 일 예시로서, 에이전트 요청들은 (상기 기술된 바와 같이) 복수의 후보 에이전트들에 “라이브”가 전송될 수 있고, 상기 에이전트들로부터의 응답들은 호출할 특정한 에이전트를 선택하는 것을 결정하는 것에 분석된다. 다른 예시로서, 추가적 및/또는 대안적 기준은 클라이언트 디바이스의 사용자의 이력적 인터렉션들(예를 들어, 특정한 에이전트가 사용자에 의해 얼마나 자주 활용되었는지, 특정한 에이전트가 사용자에 의해 얼마나 최근에 활용되었는지), 클라이언트 디바이스에 현재 렌더링된 및/또는 최근에 렌더링된 컨텐츠(예를 들어, 컨텐츠가 에이전트 구성(들)에 대응하는지), 클라이언트 디바이스의 위치, 현재 날짜 및/또는 시간, 특정한 에이전트의 랭킹(예를 들어, 사용자들의 집단에 의한 랭킹), 특정한 에이전트의 인기도(예를 들어, 사용자들의 집단 중의 인기도)등을 포함할 수 있다. 특정한 에이전트를 선택하는데 기계 학습 모델(들)이 활용되는 구현예들에서, 상기 기준이 기계 학습 모델(들)에 대한 입력으로서 적용되고 및/또는 기계 학습 모델(들)에서 생성된 출력과 결합되어 고려될 수 있다.
상기 기술된 다양한 기법들 및/또는 본 명세서의 다른 기재는 특정한 에이전트의 선택을 가능하게 하며, 상기 선택된 특정한 에이전트가 호출 요청을 적절하게 처리할 가능성을 증가시킬 수 있다. 이는 호출하기 위해 선택된 특정한 에이전트가 호출 요청의 의도(선택적으로 호출 요청의 추가적인 파라미터들에 대한 값들을 가지는)를 수행할 수 없는 리스크를 경감시킬 수 있고, 이는 다양한 컴퓨터적 리소스들을 절약할 수 있다. 예를 들면, 의도를 수행하기 위해 에이전트를 활용하기 위한 초기의 실패한 시도에 의해 소비될 수 있고, 그 후 상기 의도를 수행하기 위한 다른 시도에서 대안적 에이전트를 호출하는 것이 잇따르는, 네트워크 및/또는 프로세스 리소스들을 절약할 수 있다. 추가로, 특정한 에이전트가 사용자에게 다수의 사용가능한 에이전트들 중에서 선택할 것을 프롬프트하지 않고 선택되는 구현예들에서, 이는 호출 전에 요구되는 사람-대-자동화된 어시스턴트의 “턴들(turns)”의 후를 감소시킬 수 있다. 또한, 이는 상기 턴들에 의해 소비될 수 있는 다양한 네트워크 및/또는 프로세서 리소스들을 절약할 수 있다. 추가로, 트레이닝된 기계 학습 모델을 활용하는 구현예들에서, 기계 학습 모델은 에이전트들이 특정한 호출을 처리할 수 있는 확률을 결정하는데 활용될 수 있고, 상기 결정을 하기 위해 에이전트들 중 하나 이상과의 “라이브” 인터렉션들을 통해 소비되는 네트워크 리소스들을 필요로 하지 않는다. 또한, 이는 상기 라이브 인터렉션들에서 소비될 수 있는 다양한 네트워크 및/또는 프로세서 리소스들을 절약할 수 있다.
일부 상황들에서, 본 명세서에서 개시된 기법들에 따른 특정한 에이전트의 호출에 응답하여, 사람-대 자동화된 어시스턴트 대화는 적어도 일시적으로 (실제적으로 또는 효과적으로) 특정한 에이전트에 이송될 수 있다. 예를 들면, 특정한 에이전트의 응답형 컨텐츠에 기초하는 출력은 대화에 추가하여 사용자에게 제공될 수 있고, 상기 출력에 응답하여 추가적 사용자 입력이 수신된다. 추가적 사용자 입력(또는 그들의 대화)은 특정한 에이전트에 제공될 수 있다. 특정한 에이전트는 대화에 추가하여 제공하기 위한 추가적 출력을 생성하는데 사용될 수 있는 추가적 응답형 컨텐츠를 생성하는데 그것 고유의 의미론적 엔진들 및/또는 다른 컴포넌트들을 활용할 수 있다. 이 일반적 프로세스는 예를 들면, 특정한 에이전트가 특정한 에이전트 대화를 종료시키는 응답형 컨텐츠(예를 들어, 대답 또는 프롬프트 대신의 해결안), 특정한 에이전트 대화를 종료시키는 사용자의 추가적인 사용자 인터페이스 입력(예를 들어, 자동화된 어시스턴트 또는 다른 에이전트로부터 응답을 대신 호출) 등을 제공할 때까지 계속될 수 있다.
일부 상황들에서, 자동화된 어시스턴트는 대화가 효과적으로 특정한 에이전트에 전달된 경우 중간자로서 여전히 서비스할 수 있다. 예를 들면, 사용자의 자연어 입력이 음성 입력인 경우 중간자로서 서비스하는 것에서, 자동화된 어시스턴트는 음성 입력을 텍스트로 변환하고, 텍스트(선택적으로 텍스트의 주석들)를 특정한 에이전트에 제공하고, 특정한 에이전트로부터 응답형 컨텐츠를 수신하고 그리고 사용자에게 제시하기 위한 특정한 응답형 컨텐츠에 기초하는 출력을 제공할 수 있다. 또한, 예를 들면, 중간자로서 서비스하는 것에서, 자동화된 어시스턴트는 사용자 입력 및/또는 특정한 에이전트의 응답형 컨텐츠를 분석하여, 특정한 에이전트와의 대화가 종료되어야 하는지, 사용자가 대안적 에이전트로 전달되어야만 하는지, 글로벌 파라미터 값들이 특정한 에이전트 대화에 기초하여 업데이트되어야만 하는지 등을 결정한다. 일부 상황들에서, 대화는 실제로 특정한 에이전트에 전달되고(일단 전달되면 자동화된 어시스턴트가 중간자로서 서비스하지 않고), 그리고 선택적으로 특정한 에이전트에 의한 종료와 같은 하나 이상의 조건들의 발생에 따라(예를 들어, 특정한 에이전트를 통한 의도의 완성에 응답하여) 자동화된 어시스턴트에 다시 전달될 수 있다.
본 명세서에 기술된 구현예들은 자동화된 어시스턴트로 하여금 사용자와의 대화에 기초하여 적절한 에이전트를 선택하게 하고, 에이전트를 호출하여 대화에서 사용자에 의해 표시된 사용자의 의도를 달성한다. 이들 구현예들은 사용자로 하여금 자동화된 어시스턴트와의 인터렉션을 통해 에이전트를 관련되게 하고, 여기서 사용자가 에이전트를 명시적으로 트리거링하기 위해 “호출 문구(들)”을 알 필요가 없게 하고 및/또는 심지어 사용자가 에이전트가 존재하는지 알 필요도 없게 한다. 추가로, 구현예들은 사용자로 하여금 복수의 이질적 의도에 걸쳐서 액션들을 수행하게 하는 복수의 이질적 에이전트들 중 임의의 것을 호출하기 위해 공통적 자동화된 어시스턴트 인터페이스를 활용하게 한다. 예를 들면, 공통적 자동화된 어시스턴트 인터페이스는 “음식점 예약” 의도를 처리하는 복수의 에이전트들 중 임의의 하나의 에이전트와 관련되도록, “전문적 서비스를 구매” 의도를 처리하는 복수의 에이전트들 중 임의의 하나의 에이전트와 관련되도록, “농담해줘” 의도를 처리하는 복수의 에이전트들 중 임의의 하나의 에이전트와 관련되도록, “리마인더” 의도를 처리하는 복수의 에이전트들 중 임의의 하나의 에이전트와 관련되도록, “여행 서비스 구매” 의도를 처리하는 복수의 에이전트들 중 임의의 하나의 에이전트와 관련되도록 및/또는 “인터렉티브 게임” 의도를 처리하는 복수의 에이전트들 중 임의의 하나의 에이전트와 관련되도록 활용될 수 있다.
본 명세서에서 사용된 바와 같이, “에이전트”는 자동화된 어시스턴트와 별개인 하나 이상의 컴퓨팅 디바이스들 및/또는 소프트웨어를 참조한다. 일부 상황들에서, 에이전트는 자동화된 어시스턴트를 관련되는 파티와는 별개인 파티에 의해 관리되는 서드 파티(3P) 에이전트일 수 있다. 에이전트는 자동화된 어시스턴트로부터 호출 요청을 수신하도록 구성된다(네트워크를 통해 및/또는 API를 통해). 호출 요청을 수신함에 응답하여, 에이전트는 호출 요청에 기초하여 응답형 컨텐츠를 생성하고, 상기 응답형 컨텐츠를 상기 응답형 컨텐츠에 기초한 출력의 제공을 위해 전송한다. 예를 들면, 에이전트는 자동화된 어시스턴트에 의해 상기 응답형 컨텐츠에 기초한 출력의 제공을 위해, 자동화된 어시스턴트에 상기 응답형 컨텐츠를 전송할 수 있다. 다른 예시로서, 에이전트 그 자신이 출력을 제공할 수 있다. 예를 들어, 사용자는 클라이언트 디바이스를 통해 자동화된 어시스턴트와 인터렉션할 수 있고(예를 들어, 자동화된 어시스턴트는 클라이언트 디바이스에서 및/또는 클라이언트 디바이스와의 네트워크 통신으로 구현될 수 있다.), 에이전트는 클라이언트 디바이스에 설치된 어플리케이션 또는 클라이언트 디바이스와 떨어져 있지만 클라이언트 디바이스에서 “스트리밍가능한” 실행가능한 어플리케이션일 수 있다. 어플리케이션이 호출된 경우, 그것은 클라이언트 디바이스에 의해 실행될 수 있고 및/또는 클라이언트 디바이스에 의해 전면에 가져와 질 수 있다(예를 들어, 그것의 컨텐츠가 클라이언트 디바이스의 디스플레이를 차지함).
사용자 인터페이스 입력 디바이스(들)를 통해, 자동화된 어시스턴트에 및/또는 에이전트에, 사용자에 의해 제공될 수 있는 다양한 유형의 입력이 본 명세서에 기술된다. 일부 경우에, 입력은 하나 이상의 사용자 인터페이스 입력 디바이스들을 통해 사용자에 의해 생성된 사용자 인터페이스 입력에 기초한 텍스트적 입력과 같은 자유 형식의 자연어 입력일 수 있다(예를 들어, 물리적 또는 가상 키보드를 통해 제공된 타이핑된 입력에 기초하거나 또는 마이크로폰을 통해 제공된 발화된 입력에 기초). 본 명세서에서 사용된 바와 같이, 자유 형식의 입력은 사용자에 의해 진술된 입력이며, 사용자에 의한 선택을 위한 제시된 옵션들의 그룹에 제한되지 않는 입력이다(예를 들어, 드롭-다운 메뉴로 제시된 옵션들의 그룹에 제한되지 않음).
일부 구현예들에서, 하나 이상의 프로세서들에 의해 수행된 방법이 제공되며, 사람-대-자동화된 어시스턴트 대화 동안의 사용자 인터페이스 입력에 기초하여 생성된 자연어 입력 인스턴스를 수신하는 단계를 포함한다. 상기 방법은, 상기 자연어 입력 인스턴스에 응답하여 임의의 에이전트를 호출하기 전에: 상기 자연어 입력 인스턴스에 기초하여 에이전트 요청을 생성하는 단계; 상기 에이전트 요청에 대해, 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들의 세트를 선택하는 단계; 상기 에이전트 요청을 상기 세트의 상기 다수의 에이전트들 각각에 전송하는 단계; 상기 전송하는 단계에 응답하여 상기 다수의 에이전트들 중 적어도 하나의 서브셋으로부터, 상기 요청에 대한 대응하는 응답을 수신하는 단계; 상기 응답들 각각으로부터, 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위해 상기 응답을 제공하는 에이전트의 상대적 능력을 결정하는 단계; 및 상기 응답들 중 적어도 하나에 기초하여 상기 다수의 에이전트들 중 특정한 에이전트를 선택하는 단계를 더 포함한다.
상기 방법은 상기 자연어 입력에 응답하여 그리고 상기 특정한 에이전트를 선택하는 단계에 기초하여 상기 특정한 에이전트를 호출하는 단계를 더 포함한다. 상기 특정한 에이전트를 호출하는 것은 상기 특정한 에이전트에 의해 생성된 응답형 컨텐츠가 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해 제시하기 위해 제공되도록 한다. 일부 구현예들에서, 상기 선택된 특정한 에이전트만이 상기 자연어 입력을 수신함에 응답하여 호출된다.
본 명세서에서 논의된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예들에서, 상기 방법은 하나 이상의 컴퓨터 판독가능 매체에, 상기 에이전트 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나에 상기 에이전트 요청의 연관을 저장하는 단계; 및 상기 에이전트 요청과 상기 에이전트 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나와의 사이의 상기 저장된 연관에 기초하여 에이전트 선택 모델을 생성하는 단계를 더 포함한다. 상기 구현예들 중 일부에서, 상기 방법은 상기 에이전트 선택 모델을 생성하는 단계에 후속하여: 추가적 사람-대-자동화된 어시스턴트 대화에서 추가적 자연어 입력을 수신하는 단계; 상기 추가적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 상기 다수의 에이전트들 중 추가적 에이전트를 선택하는 단계; 및 상기 추가적 자연어 입력에 응답하여 그리고 상기 추가적 에이전트를 선택하는 단계에 기초하여: 추가적 호출 요청을 상기 추가적 에이전트에 전송하는 단계를 더 포함한다. 상기 추가적 호출 요청은 상기 추가적 에이전트를 호출한다. 상기 추가적 자연어 입력을 수신하는 단계에 응답하여, 상기 추가적 호출 요청은 상기 선택된 추가적 에이전트에게만 선택적으로 전송된다.
일부 구현예들에서, 상기 특정한 에이전트를 선택하는 단계는: 상기 대화에서 관련된 사용자에 의한 상기 특정한 에이전트와의 다수의 인터렉션들; 상기 사용자에 의한 상기 특정한 에이전트와의 인터렉션의 최신성; 및/또는 사용자들의 집단 가운데에서 상기 특정한 에이전트의 랭킹 또는 인기도에 더 기초한다.
일부 구현예들에서, 하나 이상의 프로세서들에 의해 수행되는 방법이 제공되며, 상기 방법은, 사람-대-자동화된 어시스턴트 대화 동안의 사용자 인터페이스 입력에 기초하여 생성된 복수의 자연어 입력 인스턴스들 각각에 대해: 상기 자연어 입력 인스턴스에 기초하여 에이전트 요청을 생성하는 단계; 상기 에이전트 요청에 대해, 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들의 세트를 선택하는 단계; 하나 이상의 어플리케이션 프로그래밍 인터페이스들을 통해, 상기 에이전트 요청을 상기 세트의 상기 다수의 에이전트들 각각에 전송하는 단계; 상기 전송하는 단계에 응답하여 상기 다수의 에이전트들 각각으로부터, 상기 요청에 대응하는 응답을 수신하는 단계; 및 하나 이상의 컴퓨터 판독가능 매체에, 상기 에이전트 요청과 상기 에이전트 요청에 대한 상기 응답들 사이의 하나 이상의 연관들을 저장하는 단계를 포함한다. 상기 응답들은 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위한 상기 다수의 에이전트들 중 대응하는 에이전트의 능력을 각각 표시할 수 있다. 상기 방법은 상기 에이전트 요청들과 그에 대한 응답들 사이의 상기 저장된 연관들에 기초하여 에이전트 선택 모델을 생성하는 단계를 더 포함한다. 상기 방법은 상기 에이전트 선택 모델을 생성하는 단계에 후속하여: 상기 사용자와 상기 자동화된 어시스턴트 사이의 대화의 일부로서 자동화된 어시스턴트를 향하는 사용자의 후속적 자연어 입력을 수신하는 단계; 상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 특정한 에이전트를 선택하는 단계, 상기 특정한 에이전트는 상기 사용가능한 에이전트들 중 하나이며; 및 상기 후속적 자연어 입력을 수신하는 단계에 응답하여 그리고 상기 특정한 에이전트를 선택하는 단계에 응답하여: 하나 이상의 어플리케이션 프로그래밍 인터페이스들을 통해, 상기 선택된 특정한 에이전트에 대한 호출 요청을 전송하는 단계를 더 포함한다. 상기 호출 요청은 상기 특정한 에이전트를 호출하고 그리고 상기 특정한 에이전트로 하여금 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해 상기 사용자에게 제시하기 위한 특정한 응답형 컨텐츠를 생성하게 한다. 일부 구현예들에서, 상기 추가적 자연어 입력을 수신하는 단계에 응답하여, 상기 추가적 호출 요청은 상기 선택된 추가적 에이전트에게만 선택적으로 전송된다.
본 명세서에서 논의된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예들에서, 복수의 자연어 입력 인스턴스들 중 주어진 자연어 입력 인스턴스에 대해, 상기 응답들의 제1 서브셋은 응답형 컨텐츠를 생성하기 위한 능력을 각각 표시하고 그리고 상기 응답들의 제2 서브셋은 응답형 컨텐츠를 생성하기 위한 무능력을 각각 표시한다. 상기 구현예들 중 일부에서, 상기 제2 서브셋의 상기 응답들은 에러를 표시하는 것 또는 임계치를 만족하지 못하는 신뢰도를 표시하는 것에 기초하여 무능력을 표시한다.
일부 구현예들에서, 에이전트 선택 모델은 기계 학습 모델이다. 상기 구현예들 중 일부에서, 상기 기계 학습 모델을 생성하는 것은 상기 에이전트 요청들 및 그에 대한 응답들에 기초하여 복수의 트레이닝 인스턴스들을 생성하는 것 및 상기 트레이닝 인스턴스들에 기초하여 상기 기계 학습 모델을 트레이닝하는 것을 포함한다. 상기 트레이닝 인스턴스들 각각을 생성하는 것은: 상기 에이전트 요청들의 대응하는 에이전트 요청에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 입력을 생성하는 것, 그리고 상기 대응하는 에이전트 요청과 연관되어 저장된 상기 응답들에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 출력을 생성하는 것을 포함할 수 있다. 상기 구현예들 중 일부에서, 상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 상기 특정한 에이전트를 선택하는 단계는: 상기 기계 학습 모델에 대한 입력으로서, 상기 후속적 자연어 입력에 기초하는 입력 구성들을 적용하는 것; 상기 입력에 기초하여 상기 기계 학습 모델을 통해 상기 특정한 에이전트에 대한 값을 포함하는 출력을 생성하는 것; 및 상기 특정한 에이전트에 대한 상기 값에 기초하여 상기 특정한 에이전트를 선택하는 것을 포함한다.
상기 구현예들 중 일부 버전은, 상기 특정한 에이전트를 선택하는 단계는 하나 이상의 컨텍스트적 값들에 더 기초한다. 예를 들면, 상기 하나 이상의 컨텍스트적 값들에 기초하여 상기 특정한 에이전트를 선택하는 것은 상기 하나 이상의 컨텍스트적 값들을 추가적 입력으로서 상기 기계 학습 모델에 적용하는 것을 포함한다.
일부 구현예들에서, 상기 방법은 상기 복수의 자연어 입력 인스턴스들이 임의의 에이전트를 특정하지 못함을 결정함에 기초하여 상기 복수의 자연어 입력 인스턴스들을 선택하는 단계를 더 포함한다.
일부 구현예들에서, 상기 방법은 상기 복수의 자연어 입력 인스턴스들 중 주어진 자연어 입력 인스턴스에 대해: 상기 세트의 상기 다수의 에이전트들 중 주어진 에이전트를 선택하기 위해 상기 에이전트 요청에 대한 상기 응답들을 사용하는 단계; 및 선택된 호출 요청을 상기 선택된 주어진 에이전트에 전송하는 단계를 더 포함하며, 상기 선택된 호출 요청은 상기 주어진 자연어 입력 인스턴스에 기초한다.
일부 구현예들에서, 상기 다수의 에이전트들의 세트는 상기 자연어 입력 인스턴스에서 표현된 의도 파라미터에 대한 값과 각각 연관되는 상기 다수의 에이전트들의 세트에 기초하여 상기 사용가능한 에이전트들의 코퍼스로부터 선택된다.
일부 구현예들에서, 하나 이상의 프로세서들에 의해 수행되는 방법이 제공되며, 상기 방법은, 사람-대-자동화된 어시스턴트 대화 동안의 사용자 인터페이스 입력에 기초하여 생성된 복수의 자연어 입력 인스턴스들 각각에 대해: 상기 자연어 입력 인스턴스에 기초하여 에이전트 요청을 생성하는 단계; 상기 에이전트 요청에 대해, 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들의 세트를 선택하는 단계; 상기 에이전트 요청을 상기 세트의 상기 다수의 에이전트들 각각에 전송하는 단계; 및 상기 전송하는 단계에 응답하여 상기 다수의 에이전트들 각각으로부터, 상기 요청에 대응하는 응답을 수신하는 단계를 포함한다. 상기 방법은 상기 응답들 각각으로부터, 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위해 상기 응답을 제공하는 에이전트의 상대적 능력을 결정하는 단계를 더 포함한다. 상기 방법은 하나 이상의 컴퓨터 판독가능 매체에, 상기 에이전트 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나에 상기 에이전트 요청의 연관을 저장하는 단계를 더 포함한다. 상기 방법은 상기 에이전트 요청들과 상기 에이전트 요청들에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 사이의 상기 저장된 연관들에 기초하여 에이전트 선택 모델을 생성하는 단계를 더 포함한다. 상기 방법은 상기 에이전트 선택 모델을 생성하는 단계에 후속하여: 상기 사용자와 상기 자동화된 어시스턴트 사이의 대화의 일부로서 자동화된 어시스턴트를 향하는 사용자의 후속적 자연어 입력을 수신하는 단계; 상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 특정한 에이전트를 선택하는 단계, 상기 특정한 에이전트는 상기 사용가능한 에이전트들 중 하나이며; 및 상기 특정한 에이전트를 선택하는 단계에 응답하여: 상기 선택된 특정한 에이전트에 대한 호출 요청을 전송하는 단계를 더 포함한다. 상기 호출 요청은 상기 특정한 에이전트를 호출하고 그리고 상기 특정한 에이전트로 하여금 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해 상기 사용자에게 제시하기 위한 특정한 응답형 컨텐츠를 생성하게 한다.
본 명세서에서 논의된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예들에서, 상기 특정한 에이전트를 선택하는 단계는 상기 사용자에게 상기 사용자가 상기 특정한 에이전트와 상기 사용가능한 에이전트들 중 하나 이상의 다른 에이전트들 사이에서 선택할 것을 명시적으로 요구하는 출력을 제공하지 않고 발생한다.
일부 구현예들에서, 에이전트 선택 모델은 기계 학습 모델이다. 상기 구현예들 중 일부에서, 상기 기계 학습 모델을 생성하는 것은 상기 에이전트 요청들 및 상기 에이전트 요청들에 응답할 수 있을 것으로 결정된 에이전트들에 기초하여 복수의 트레이닝 인스턴스들을 생성하는 것; 상기 트레이닝 인스턴스들에 기초하여 상기 기계 학습 모델을 트레이닝하는 것을 포함한다. 상기 트레이닝 인스턴스들 각각을 생성하는 것은: 상기 에이전트 요청들의 대응하는 에이전트 요청에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 입력을 생성하는 것, 그리고 상기 요청에 응답할 수 있을 것으로 결정된 에이전트들 중 적어도 하나의 에이전트에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 출력을 생성하는 것을 포함할 수 있다. 상기 구현예들 중 일부에서, 상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 상기 특정한 에이전트를 선택하는 단계는: 상기 기계 학습 모델에 대한 입력으로서, 상기 후속적 자연어 입력에 기초하는 입력 구성들을 적용하는 것; 상기 입력에 기초하여 상기 기계 학습 모델을 통해 상기 특정한 에이전트에 대한 값을 포함하는 출력을 생성하는 것; 및 상기 특정한 에이전트에 대한 상기 값에 기초하여 상기 특정한 에이전트를 선택하는 것을 포함한다.
추가로, 일부 구현예들은 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은 연관된 메모리에 저장된 명령어들을 실행하도록 동작가능하며, 상기 명령어들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 구성된다. 또한, 일부 구현예들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 하나 이상의 프로세서들에 의해 실행가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.
본 명세서에서 매우 상세히 기술된 상기 개념들 및 추가적 개념들의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려되어야 한다. 예를 들면, 본 명세서의 끝부분에 나타나는 청구된 발명의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 구현예들이 구현될 수 있는 예시적 환경의 블록도이다.
도 2는 도 1의 에이전트 선택 모듈에 포함될 수 있는 다양한 컴포넌트들의 예시이다.
도 3은 에이전트 요청과 응답(들)이 특정한 에이전트를 선택하는 것에서 활용될 수 있는지 및/또는 에이전트 선택 모델(들)을 생성하는데 사용하기 위해 기록 데이터베이스에 저장되는지의 예시를 도시한다.
도 4는 본 명세서에 개시된 구현예들에 따라 호출할 단일의 에이전트를 선택하는 예시적 방법을 도시하는 흐름도이다.
도 5는 본 명세서에 개시된 구현예들에 따라 에이전트 선택 모델을 생성하는 예시적 방법을 도시하는 흐름도이다.
도 6은 본 명세서에 개시된 구현예들에 따라 호출할 단일의 에이전트를 선택하는 다른 예시적 방법을 도시하는 흐름도이다.
도 7은 본 명세서에 개시된 구현예들에 따라 에이전트에 의해 수행될 수 있는 예시적 방법을 도시하는 흐름도이다.
도 8과 도 9는 본 명세서에 개시된 구현예들에 따라 사용자; 클라이언트 디바이스; 및 사용자, 클라이언트 디바이스와 연관된 자동화된 어시스턴트 및 에이전트 사이의 예시적 대화를 각각 도시한다.
도 10은 본 명세서에 개시된 구현예들에 따라 추가적 클라이언트 디바이스; 클라이언트 디바이스의 사용자, 클라이언트 디바이스와 연관된 자동화된 어시스턴트 및 에이전트 사이의 예시적 대화를 도시한다.
도 11은 컴퓨팅 디바이스의 예시적 아키텍처를 도시한다.
일부 상황들에서, 자동화된 어시스턴트를 통해 특정한 의도에 대한 특정한 에이전트를 호출하기 위해, 사용자는 그 특정한 에이전트를 명시적으로 호출하는 입력을 제공해야만 한다. 예를 들면, “음식점 예약” 의도를 위한 “가상의 에이전트”로 명명된 에이전트를 호출하기 위해, 사용자는 “가상의 에이전트로 음식점 예약해”와 같은 에이전트에 대한 “호출 문구”를 말하는 법을 알아야만 한다. 상기 명시적 호출은 사용자가 처음부터 어떤 에이전트가 의도에 대해 가장 적절한지 알고 있을 것을 요구하고, 상기 사용자는 상기 의도의 해결을 시도하기 위해 상기 에이전트와의 인터렉션을 통해 그 에이전트에 직접 송신해야 한다.
그러나, 종종 사용자가 다양한 에이전트들의 사용가능성을 모르는 경우가 있고, 다양한 자동화된 어시스턴트 인터페이스들에 대해 사용가능한 에이전트들 및 연관된 기능의 리스트를 명시적으로 제공하는 것은 보통 제한된 자동화된 어시스턴트 인터페이스에서 사용자에게 실용적이지 않거나 및/또는 바람직하지 않다. 예를 들면, 일부 자동화된 어시스턴트 인터페이스들은 “음성” 뿐이며, 에이전트들 및 연관된 기능의 “리스트를 읽는 것”은 사용자에게 실용적이지 않거나 및/또는 바람직하지 않다. 추가로, 자동화된 어시스턴트가 다양한 사용가능한 에이전트들의 능력들을 알지 못하는 경우도 있을 수 있다.
본 명세서에 개시된 다양한 구현예들은 에이전트와 관련시키기 원함을 표시하지만 관련시킬 특정한 에이전트를 표시하지는 못하는 자연어 입력과 같은 사용자의 “불명료한” 자연어 입력에 응답하여 적절한 에이전트의 선택과 호출을 가능하게 한다.
이제 도 1로 돌아가면, 본 명세서에 개시된 기법들이 구현될 수 있는 예시적 환경이 도시된다. 예시적 환경은 클라이언트 디바이스(106), 자동화된 어시스턴트(110) 및 복수의 에이전트들(140A-N)을 포함한다. 클라이언트 디바이스(106)는 예를 들어, 단독형 음성-활성화된 스피커 디바이스, 데스크톱 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일폰 컴퓨팅 디바이스, 사용자의 차량의 컴퓨팅 디바이스 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 구비한 사용자의 시계, 컴퓨팅 디바이스를 구비한 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가적 및/또는 대안적 클라이언트 디바이스가 제공될 수 있다.
도 1에서 자동화된 어시스턴트(110)는 클라이언트 디바이스(106)와 별개인 것으로 도시되었지만, 일부 구현예들에서 자동화된 어시스턴트(110)의 모든 또는 일부 양태들은 클라이언트 디바이스(106)에 의해 구현될 수 있다. 예를 들면, 일부 구현예들에서, 입력 프로세싱 엔진(110)은 클라이언트 디바이스(106)에 의해 구현될 수 있다. 자동화된 어시스턴트(110)의 하나 이상의(예를 들어, 모든) 양태들이 클라이언트 디바이스(106)로부터 원격인 하나 이상의 컴퓨팅 디바이스들에 의해 구현되는 구현예들에서, 클라이언트 디바이스(106) 및 자동화된 어시스턴트(110)의 상기 양태들은 광역 네트워크(WAN)(예를 들어, 인터넷)과 같은 하나 이상의 네트워크들을 통해 통신한다.
단지 하나의 클라이언트 디바이스(106)가 자동화된 어시스턴트(110)와 조합하여 도시되었지만, 많은 구현예들에서, 자동화된 어시스턴트(110)는 원격적일 수 있고 다수의 사용자들의 복수의 클라이언트 디바이스 각각과 인터페이스할 수 있다. 예를 들면, 자동화된 어시스턴트(110)는 상이한 세션을 통해 다수의 디바이스들 각각과의 통신을 관리할 수 있고, 병렬로 다수의 세션들을 관리할 수 있다. 예를 들어, 일부 구현예들에서, 자동화된 어시스턴트(110)는 예를 들어, 다수의 사용자들로부터의 요청들의 많은 양을 처리하기에 적절한 소프트웨어를 실행하는 고성능 컴퓨터들의 서버 팜 또는 클러스터를 사용하는 클라우드 인프라를 이용하는 클라우드-기반 서비스로서 구현될 수 있다. 그러나, 단순화를 위해, 본 명세서의 많은 예시들은 단일의 클라이언트 디바이스(106)와 관련하여 기술된다.
자동화된 어시스턴트(110)는 에이전트(140A-N)와 별개이며, API를 통해 및/또는 하나 이상의 통신 채널들(예를 들어, 클라이언트 디바이스(106)의 내부 통신 채널들 및/또는 WAN과 같은 네트워크)을 통해 에이전트(140A-N)와 통신한다. 일부 구현예들에서, 하나 이상의 에이전트들(140A-N)은 자동화된 어시스턴트(110)를 관리하는 파티와는 별개인 각각의 파티에 의해 각각 관리된다.
하나 이상의 에이전트들(140A-N)은 각각 선택적으로 에이전트 데이터베이스(152)에 저장하기 위한 데이터를 직접적으로 또는 간접적으로 제공할 수 있다. 그러나, 특정 에이전트들(140A-N)이 특정 데이터를 제공하지 않거나, 불완전한 데이터를 제공하거나 및/또는 부정확한 데이터를 제공하는 경우가 종종 있을 수 있다. 본 명세서에 개시된 특정 구현예들은 불명료한 사용자 입력들에 대해 적절한 에이전트들을 선택하는 것에서 다양한 추가적 기법들의 활용을 통해 이러한 상황들을 완화시킬 수 있다. 주어진 에이전트에 대해 제공된 데이터는 예를 들면 상기 주어진 에이전트에 의해 리졸브될 수 있는 의도(들)을 정의할 수 있다. 추가로, 주어진 에이전트에 대해 제공된 데이터는 각 의도에 대해, 상기 의도(들)에 대해 정의된 복수의 의도 슬롯 파라미터들에 대해 상기 에이전트에 의해 처리될 수 있는 사용가능한 값들을 정의할 수 있다. 일부 구현예들에서, 자동화된 어시스턴트(110) 및/또는 다른 컴포넌트는 의도들 및 상기 의도 슬롯 파라미터들 각각에 대해 정의될 수 있는 수용가능한 값들을 정의할 수 있다. 예를 들면, 상기 기준은 자동화된 어시스턴트(110)에 의해 유지되는 API를 통해 정의될 수 있다. 그 후, 하나 이상의 에이전트들(140A-N)은 그것의 의도(들)과 의도 슬롯 파라미터들에 대한 그것의 사용가능한 값들을 자동화된 어시스턴트(110) 및/또는 에이전트 데이터베이스(152)에 데이터를 검증하고 저장할 수 있는 다른 컴포넌트에 전송할 수 있다(예를 들어, WAN을 통한 전송). 에이전트 데이터베이스(152)는 추가적으로 또는 대안적으로 에이전트들의 랭킹, 에이전트들의 인기도 등과 같은 다양한 에이전트들에 대한 다른 구성들을 저장할 수 있다.
자동화된 어시스턴트(110)는 입력 프로세싱 엔진(112), 로컬 컨텐츠 엔진(130), 에이전트 엔진(120) 및 출력 엔진(135)을 포함한다. 일부 구현예들에서, 자동화된 어시스턴트(110)의 엔진들 중 하나 이상은 생략, 조합될 수 있고 및/또는 자동화된 어시스턴트(110)와 별개인 컴포넌트에서 구현될 수 있다. 추가로, 자동화된 어시스턴트(110)는 단순화를 위해 본 명세서에 도시되지 않은 추가적 엔진을 포함할 수 있다.
자동화된 어시스턴트(110)는 클라이언트 디바이스(106)로부터 사용자 입력의 인스턴스들을 수신한다. 예를 들면, 자동화된 어시스턴트(110)는 스트리밍 오디오 레코딩의 형태로 자유 형식의 자연어 음성 입력을 수신할 수 있다. 스트리밍 오디오 레코딩은 클라이언트 디바이스(106)의 사용자의 발화된 입력을 캡처하는 클라이언트 디바이스(106)의 마이크로폰으로부터 수신된 신호들에 응답하여, 클라이언트 디바이스(106)에 의해 생성될 수 있다. 다른 예시로서, 일부 구현예들에서, 자동화된 어시스턴트(110)는 자유 형식의 자연어 타이핑된 입력 및/또는 심지어 구조화된 입력(비-자유 형식)을 수신할 수 있다. 일부 구현예들에서, 사용자 입력은 클라이언트 디바이스(106)에 의해 생성될 수 있고 및/또는 클라이언트 디바이스(106)의 사용자에 의한 자동화된 어시스턴트(110)의 명시적 호출에 응답하여 자동화된 어시스턴트(110)에 제공된다. 예를 들면, 호출은 클라이언트 디바이스(106)에 의한 사용자의 특정 음성 입력(예를 들어, “헤이 어시스턴트”와 같은 자동화된 어시스턴트(110) 핫워드/문구), 하드웨어 버튼 및/또는 가상 버튼과의 사용자 인터렉션(예를 들어, 하드웨어 버튼의 탭, 클라이언트 디바이스(106)에 의해 디스플레이된 그래픽 인터페이스 엘리먼트의 선택) 및/또는 다른 특정한 사용자 인터페이스 입력의 검출일 수 있다.
자동화된 어시스턴트(110)는 클라이언트 디바이스(106)로부터 사용자 입력의 인스턴스들을 수신하는 것에 응답하여, 출력의 인스턴스를 제공한다. 출력의 인스턴스는 예를 들면, 디바이스(106)에 의해 청각적으로 제시될 오디오(예를 들어, 클라이언트 디바이스(106)의 스피커를 통한 출력), 디바이스(106)에 의해 그래픽적으로 제시될 텍스트 및/또는 그래픽 컨텐츠(예를 들어, 클라이언트 디바이스(106)의 디스플레이를 통해 렌더링) 등일 수 있다. 본 명세서에 기술된 바와 같이, 출력의 일부 인스턴스들은 자동화된 어시스턴트(110)에 의해 생성된 로컬 응답형 컨텐츠에 기초할 수 있으며, 출력의 다른 인스턴스들은 에이전트들(140A-N) 중 선택된 한 에이전트에 의해 생성된 응답형 컨텐츠에 기초할 수 있다.
자동화된 어시스턴트(110)의 입력 프로세싱 엔진(112)은 자연어 입력 및/또는 클라이언트 디바이스들(106)을 통해 수신된 다른 사용자 입력을 프로세싱하고, 로컬 컨텐츠 엔진(130) 및/또는 에이전트 엔진(120)과 같은 자동화된 어시스턴트(110)의 하나 이상의 다른 컴포넌트들에 의해 사용되기 위한 주석이 달린 출력을 생성한다. 예를 들면, 입력 프로세싱 엔진(112)은 클라이언트 디바이스(106)의 하나 이상의 사용자 인터페이스 입력 디바이스들을 통해 사용자에 의해 생성된 자연어 자유 형식의 입력을 프로세싱할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석들 및 선택적으로 자연어 입력의 용어들 중 하나 이상(예를 들어, 전부)을 포함한다. 다른 예시로서, 입력 프로세싱 엔진(112)은 추가적으로 또는 대안적으로 음성 입력의 인스턴스를 수신하고(예를 들어, 디지털 오디오 데이터의 형태로) 그리고 상기 음성 입력을 하나 이상의 텍스트 단어들 또는 문구들을 포함하는 텍스트로 변환하는 보이스-투-텍스트 모듈을 포함할 수 있다. 일부 구현예들에서, 보이스-투-텍스트 모듈은 스트리밍 보이스-투-텍스트 엔진이다. 보이스-투-텍스트 모듈은 언어에서 단어 시퀀스들과 함께 언어에서 오디오 신호와 표음 단위들 사이의 관계를 모델링하는 하나 이상의 저장된 보이스-투-텍스트 모델들(언어 모델들로도 지칭됨)에 의존한다.
일부 구현예들에서, 입력 프로세싱 엔진(112)은 자연어 입력에서 문법적 정보의 다양한 유형들을 식별하고 주석을 달도록 구성된다. 예를 들면, 입력 프로세싱 엔진(112)은 용어들에 그들의 문법적 역할들로 주석을 달도록 구성된 품사 태그기를 포함할 수 있다. 예를 들면, 품사 태그기는 각 용어에 “명사”, “동사”, “형용사”, “대명사” 등과 같은 그것의 품사를 태그(tag)할 수 있다. 또한, 예를 들면, 일부 구현예들에서, 입력 프로세싱 엔진(112)은 추가적으로 및/또는 대안적으로 자연어 입력에서 용어들 간의 구문론적 관계들을 결정하도록 구성된 종속성 파서(dependency parser)를 포함할 수 있다. 예를 들면, 종속성 파서는 어떤 용어들아 문장들의 다른 용어들, 주어들 및 동사들을 수정하는지 등을 결정할 수 있고(예를 들어, 파싱 트리), 그리고 상기 종속성들의 주석들을 만들 수 있다.
일부 구현예들에서, 입력 프로세싱 엔진(112)은 추가적으로 및/또는 대안적으로 사람들, 조직들, 위치들 등에 대한 참조들과 같은 하나 이상의 세그먼트들에서 엔터티 참조들을 주석을 달도록 구성된 엔터티 태그기(entity tagger)를 포함할 수 있다. 엔터티 태그기는 높은 입상도(예를 들어, 사람들과 같은 엔터티 클래스에 대한 모든 참조들의 식별을 가능하게 하기 위해) 및/또는 낮은 입상도(예를 들어, 특정한 사람과 같은 특정한 엔터티에 대한 모든 참조들의 식별을 가능하게 하기 위해)에서 엔터티에 대한 참조들을 주석을 달을 수 있다. 엔터티 태그기는 특정한 엔터티를 리졸브(resolve)하기 위해 자연어 입력의 컨텐츠에 의존할 수 있고 및/또는 선택적으로 특정한 엔터티를 리졸브하기 위해 지식 그래프 또는 다른 엔터티와 통신할 수 있다.
일부 구현예들에서, 입력 프로세싱 엔진(112)은 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트적 큐(cue)들에 기초하여 동일한 엔터티에 대한 참조인 그룹 또는 “클러스터”로 구성된 공동참조 리졸버(coreference resolver)를 포함할 수 있다. 예를 들면, 공동참조 리졸버는 사용자 입력의 인스턴스에서 용어 “그것(it)”을 사용자 입력의 바로 선행하는 인스턴스에서 “음식점 A”의 선행하는 언급으로 리졸브하는데 활용될 수 있다.
일부 구현예들에서, 입력 프로세싱 엔진(112)의 하나 이상의 컴포넌트들은 입력 프로세싱 엔진(112)의 하나 이상의 다른 컴포넌트들로부터의 주석들에 의존할 수 있다. 예를 들면, 일부 구현예들에서, 명명된 엔터티 태그기는 특정한 엔터티에 대한 모든 언급들에 주석을 다는 것에 있어 공동참조 리졸버 및/또는 종속성 파서로부터의 주석들에 의존할 수 있다. 또한, 예를 들면, 일부 구현예들에서, 공동참조 리졸버는 동일한 엔터티에 대한 참조들을 클러스터링하는 것에 있어 종속성 파서로부터의 주석들에 의존할 수 있다. 일부 구현예들에서, 특정한 자연어 입력을 프로세싱함에 있어서, 입력 프로세싱 엔진(112)의 하나 이상의 컴포넌트들은 하나 이상의 주석들을 결정하기 위해 관련된 이전 입력 및/또는 특정한 자연어 입력 밖의 다른 관련된 데이터를 사용할 수 있다.
입력 프로세싱 엔진(112)은 사용자 입력의 의미론 또는 의미를 파악하기 위해 시도할 수 있고, 사용자 입력 의미적 표시들을 로컬 컨텐츠 엔진(130) 및/또는 에이전트 엔진(120)에 상기 엔진들에 의한 사용을 위해 제공한다. 입력 프로세싱 엔진(112)은 텍스트(또는 다른 입력)을 특정한 액션들에 맵핑하기 위해 그리고 상기 액션들의 수행을 제한하는 속성들 예를 들면, 상기 액션들에 대한 입력 변수들을 식별하기 위해 하나 이상의 저장된 문법 모델들에 의존할 수 있다.
로컬 컨텐츠 엔진(130)은 사용자 입력이 “로컬 액션”과 연관된 경우(에이전트 액션의 반대로서), 수신된 사용자 입력에 대한 응답을 생성할 수 있다. 일부 구현예들에서, 입력 프로세싱 엔진(112)은 사용자 입력이 로컬 액션 또는 에이전트 액션과 연관되었는지 여부를 결정한다. 로컬 컨텐츠 엔진(130)은 상기 입력 프로세싱 엔진(112)과 함께 동작할 수 있고, 입력 프로세싱 엔진(112)에 의해 제공된 파싱된 텍스트(예를 들어, 액션(들) 및 액션 파라미터(들))에 의해 지시된 바와 같은 하나 이상의 액션들을 수행한다. 로컬 의도들에 대해, 로컬 컨텐츠 엔진(130)은 로컬 응답형 컨텐츠를 생성할 수 있고, 디바이스(106)를 통해 사용자에게 제시하기 위해 대응하는 출력을 제공하기 위해 상기 로컬 응답형 컨텐츠를 출력 엔진(135)에 제공한다. 로컬 컨텐츠 엔진(130)은 로컬 컨텐츠를 생성하고 및/또는 다른 액션들을 수행하기 위한 하나 이상의 저장된 로컬 컨텐츠 모델들(154)을 활용할 수 있다. 예를 들면, 로컬 컨텐츠 모델들(154)은 로컬 응답형 컨텐츠를 생성하기 위한 다양한 규칙들을 통합할 수 있다. 일부 구현예들에서, 로컬 컨텐츠 엔진(130)은 로컬 응답형 컨텐츠를 생성함에 있어, 로컬 대화 모듈(대화 모듈(126)과 동일하거나 유사할 수 있는)과 같은 하나 이상의 다른 “로컬” 컴포넌트들과 통신할 수 있다.
출력 엔진(135)은 클라이언트 디바이스(106)에 출력의 인스턴스들을 제공한다. 출력의 인스턴스는 (로컬 컨텐츠 엔진(130)으로부터의) 로컬 응답형 컨텐츠 및/또는 에이전트들(140A-N) 중 하나로부터의 응답형 컨텐츠(자동화된 어시스턴트(110)가 중간자로서 동작하는 경우)에 기초할 수 있다. 일부 구현예들에서, 출력 엔진(135)은 응답형 컨텐츠의 텍스트적 컴포넌트들을 오디오 포맷으로 전환하는 텍스트-투-스피치 엔진을 포함할 수 있고, 상기 출력 엔진(135)에 의해 제공된 출력은 오디오 포맷(예를 들어, 스트리밍 오디오로서)이다. 일부 구현예들에서, 응답형 컨텐츠는 이미 오디오 포맷일 수 있다. 일부 구현예들에서, 출력 엔진(135)은 추가적으로 또는 대안적으로 텍스트적 회답(reply) 컨텐츠를 출력(선택적으로 디바이스(106)에 의한 오디오로의 변환을 위해)으로서 제공하고 및/또는 클라이언트 디바이스(106)에 의한 그래픽 디스플레이를 위해 다른 그래픽 컨텐츠를 출력으로서 제공한다.
에이전트 엔진(120)은 파라미터 모듈(122), 에이전트 선택 모듈(124), 대화 모듈(126) 및 호출 모듈(128)을 포함한다. 일부 구현예들에서, 에이전트 엔진(120)의 모듈(들)은 생략, 조합될 수 있고 및/또는 에이전트 엔진(120)과 별개인 컴포넌트에서 구현될 수 있다. 추가로, 에이전트 엔진(120)은 단순화를 위해 본 명세서에 도시되지 않은 추가적 모듈들을 포함할 수 있다.
파라미터 모듈(122)은 의도 파라미터, 의도 슬롯 파라미터(들), 컨텍스트적 파라미터(들) 등과 같은 파라미터(들)에 대한 값(들)을 결정한다. 파라미터 모듈(122)은 자동화된 어시스턴트(110)와의 대화에서 사용자에 의해 제공된 입력에 기초하여 그리고 선택적으로 클라이언트 디바이스 컨텍스트에 기초하여 값들을 결정한다. 의도 파라미터에 대한 값은 대화에서 입력을 제공한 사용자에 의해 표시되거나 및/또는 다른 데이터에 의해 표시된 의도를 표시한다. 예를 들면, 대화의 의도에 대한 값은 “예약”, “예약되는 음식점 예약”, “호텔 예약”, “전문 서비스 구매”, “농담하기”, “리마인더”, 여행 서비스 구매” 및/또는 다른 의도와 같은 다수의 사용가능한 의도들 중 하나일 수 있다. 파라미터 모듈(122)은 대화에서 자동화된 어시스턴트에 제공된 가장 최근의 자연어 입력 및/또는 대화에서 제공된 과거 자연어 입력에 기초하여 의도를 결정할 수 있다.
의도 슬롯 파라미터(들)에 대한 값(들)은 의도의 더 세밀한 파라미터들에 대한 값(들)을 표시한다. 예를 들면, “예약되는 음식점 예약” 의도는 “사람 수”, “날짜”, “시간”, “요리 유형”, “특정한 음식점”, “음식점 지역” 등에 대한 의도 슬롯 파라미터들을 가질 수 있다. 파라미터 모듈(122)은 대화에서의 입력을 제공한 사용자에 기초하여 및/또는 다른 고려사항들(예를 들어, 사용자 설정 선호들, 과거 사용자 인터렉션들)에 기초하여 의도 슬롯 파라미터(들)에 대한 값(들)을 결정할 수 있다. 예를 들면, “예약되는 음식점 예약 의도”에 대한 하나 이상의 의도 슬롯 파라미터(들)에 대한 값(들)은 대화에서 자동화된 어시스턴트에 제공된 가장 최근의 자연어 입력 및/또는 대화에서 제공된 과거 자연어 입력에 기초할 수 있다. 예를 들어, “오늘 저녁 6:30에 음식점 예약해줘”의 자연어 입력은 “날짜” 의도 슬롯 파라미터에 “오늘 날짜”의 값 그리고 “시간” 의도 슬롯 파라미터에 “18:30”의 값을 결정하기 위해 파라미터 모듈(122)에 의해 사용될 수 있다. 많은 대화들에 대해, 파라미터 모듈(122)은 의도의 의도 슬롯 파라미터들 전부(또는 심지어 0개)에 대한 값들을 리졸브하지 않을 수 있다는 것이 이해된다. 상기 값들은 (리졸브 한다고 하더라도) 의도를 만족시키기 위해 호출되는 에이전트에 의해 리졸브될 수 있다.
컨텍스트적 파라미터들에 대한 값들은 예를 들면, 클라이언트 디바이스의 사용자의 이력적 인터렉션들, 클라이언트 디바이스에 현재 렌더링된 및/또는 최근에 렌더링된 컨텐츠, 클라이언트 디바이스의 위치, 현재 날짜 및/또는 시간 등에 기초한 값(들)과 같은 클라이언트 디바이스 컨텍스트적 값들을 포함할 수 있다.
대화 모듈(126)은 특정한 에이전트를 선택하기 위해 클라이언트 디바이스(106)를 통해 사용자와 인터렉션하는데 있어서 하나 이상의 문법 모델들, 규칙들 및/또는 입력 프로세싱 엔진(112)로부터의 주석들을 활용할 수 있다. 파라미터 모듈(122) 및/또는 에이전트 선택 모듈(124)은 특정한 에이전트를 선택하는 것과 관련된 추가적 사용자 입력을 요구하기 위한 프롬프트(들)을 생성하기 위해 대화 모듈(126)과 선택적으로 인터렉션할 수 있다. 대화 모듈(126)에 의해 생성된 임의의 프롬프트(들)은 출력 엔진(135)에 의해 사용자에게 제시하기 위해 제공될 수 있고, 추가적 응답형 사용자 입력이 수신된다. 추가적 사용자 입력(들)은 특정한 에이전트의 선택을 보조하기 위해 파라미터 모듈(122)(선택적으로 입력 프로세싱 엔진(112)에 의해 주석이 달리는 것으로서) 및 에이전트 선택 모듈(124)에 의해 각각 분석될 수 있다. 일 예시로서, 3개의 후보 에이전트들이 본 명세서에 기술된 기법들에 따라 잠재적 에이전트들로서 에이전트 선택 모듈(124)에 의해 초기적으로 선택될 수 있고, 대화 모듈(126)은 사용자가 상기 3개의 후보 에이전트들 중 특정한 하나의 에이전트를 선택할 것을 요구하는 하나 이상의 프롬프트들을 사용자에게 제시할 수 있다. 그 후, 에이전트 선택 모듈(124)은 상기 사용자 선택에 기초하여 특정한 에이전트를 선택할 수 있다.
에이전트 선택 모듈(124)은 에이전트들(140A-N)로부터 호출할 특정한 에이전트를 선택하기 위해 파라미터 모듈(122)에 의해 결정된 값(들)을 활용한다. 에이전트 선택 모듈(124)은 추가적으로 또는 대안적으로 특정한 에이전트를 선택하는 것에 있어 다른 기준을 활용할 수 있다. 예를 들면, 에이전트 선택 모듈(124)은 선택 모델(들) 데이터베이스(156)의 하나 이상의 선택 모델들을 활용하거나 및/또는 특정한 에이전트를 선택하는 것에 있어서 에이전트 데이터베이스(152)를 사용할 수 있다.
도 2를 참조하면, 예시는 에이전트 선택 모듈(124)에 포함될 수 있는 다양한 컴포넌트들(124A-E)을 도시한다.
요청 컴포넌트(124A)는 “라이브” 에이전트 요청들을 하나 이상의 에이전트들(140A-N)에 전송하고, 상기 에이전트들로부터 응답(들)(및/또는 응답(들)의 부재)을 활용하여 상기 에이전트 요청들에 응답하여 응답형 컨텐츠를 생성하기 위한 에이전트들 각각의 능력을 결정한다. 예를 들면, 요청 컴포넌트(124A)는 라이브 에이전트 요청을 파라미터 모듈(122)에 의해 결정된 의도 파라미터에 대한 값에 맞는 의도와 연관된 에이전트들(140A-N)(예를 들어, 에이전트 데이터베이스(152)에서)에 전송할 수 있다. 본 명세서에 기술된 바와 같이, 에이전트 요청은 파라미터 모듈(122)에 의해 결정된 파라미터들에 대한 값들에 기초할 수 있다. 에이전트 요청은 호출 요청과 유사(또는 동일)할 수 있지만, 임의의 에이전트를 즉각적으로 호출하지는 않는다. 에이전트 요청에 응답한 에이전트로부터의 응답(또는 응답의 부재)은 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위한 상기 에이전트의 능력을 직접적으로 또는 간접적으로 표시할 수 있다.
에이전트 컨텍스트 컴포넌트(124B)는 파라미터 모듈(122)에 의해 결정된 의도 파라미터에 대한 값에 맞는 의도와 연관된 에이전트들(140A-N)(예를 들어, 에이전트 데이터베이스(152)에서)과 같은, 하나 이상의 에이전트들(140A-N)에 대한 구성(들)을 결정한다. 에이전트 컨텍스트 컴포넌트(124B)는 에이전트 데이터베이스(152)로부터 구성(들)을 결정할 수 있다. 에이전트에 대한 구성(들)은 예를 들어, 특정한 에이전트의 저장된 랭킹(예를 들어, 사용자들의 집단에 의한 랭킹), 일반적인 특정한 에이전트의 인기도, 파라미터 모듈(122)에 의해 결정된 의도에 대한 특정한 에이전트의 인기도 등을 포함할 수 있다.
클라이언트 컨텍스트 컴포넌트(124C)는 자동화된 어시스턴트(110)와 클라이언트 디바이스의 사용자의 이력적 인터렉션들에 기초한 구성들과 같은 클라이언트 디바이스(106)의 사용자(및/또는 클라이언트 디바이스(106) 그 자체)와 연관된 구성(들)을 결정한다. 예를 들면, 구성(들)은 다양한 에이전트들 각각이 얼마나 자주 사용자에 의해 활용되었는지; 다양한 에이전트들 각각이 얼마나 최근에 사용자에 의해 활용되었는지; 클라이언트 디바이스에 현재 렌더링된 및/또는 최근에 렌더링된 컨텐츠(예를 들어, 렌더링된 컨텐츠에서 제시된 엔터티들, 최근에 활용된 어플리케이션(들)), 클라이언트 디바이스의 위치, 현재 날짜 및/또는 시간 등에 기초한 구성들을 포함할 수 있다.
선택 모델 컴포넌트(124D)는 호출에 적절할 수 있는 하나 이상의 에이전트들(140A-N)을 결정하기 위해 선택 모델(들) 데이터베이스(156) 중 하나 이상의 선택 모델들을 활용한다. 예를 들면, 선택 모델 컴포넌트(124D)는 복수의 에이전트들(140A-N) 각각에 대해, 에이전트를 호출하는 적절성을 표시하는 하나 이상의 확률들 또는 다른 수치(들)을 결정하기 위해 선택 모델(들)을 활용할 수 있다. 선택 모델 컴포넌트(124D)는 선택 모델들 각각에, 파라미터 모듈(122)에 의해 결정된 하나 이상의 파라미터 값들 및/또는 컴포넌트(들)(124A, 124B 및/또는 124C)에 의해 결정된 값(들)을 적용할 수 있다.
선택 컴포넌트(124E)는 하나 이상의 에이전트들(140A-N)을 선택함에 있어서 컴포넌트들(124A, 124B, 124C 및/또는 124D)에 의해 제공된 출력을 활용한다. 일부 구현예들 및/또는 상황들에서, 선택 컴포넌트(124E)는 사용자에게 다수의 에이전트들 중 선택할 것을 프롬프트하지 않고 에이전트들(140A-N) 중 단지 하나만 선택한다. 일부 다른 구현예들 및/또는 상황들에서, 선택 컴포넌트(124E)는 에이전트들(140A-N)의 서브셋을 선택할 수 있고, 상기 서브셋의 에이전트들 중 하나의 에이전트를 선택하도록 사용자에게 사용자 인터페이스 입력을 제공하도록 요구하는 사용자에 대한 프롬프트를 제공한다(예를 들어, 대화에서 대화 모듈(126)에 의해 생성된 프롬프트를 통해). 선택 컴포넌트(124E)는 선택된 에이전트의 표시를 호출 모듈(128)에 제공할 수 있다.
호출 모듈(128)은 (에이전트들(140A-N) 중) 에이전트 선택 모듈(124)에 의해 선택된 에이전트에, 파라미터 모듈(122)에 의해 결정된 파라미터들을 포함하는 호출 요청을 전송한다. 상기 전송된 호출 요청은 상기 특정한 에이전트를 호출한다. 본 명세서에 기술된 바와 같이, 일부 상황들에서, 자동화된 어시스턴트(110)는 특정한 에이전트가 호출되는 경우 여전히 중간자로서 서비스할 수 있다. 예를 들면, 사용자의 자연어 입력이 음성 입력인 경우 중간자로서 서비스하는 것에서: 자동화된 어시스턴트의 입력 프로세싱 엔진(122)은 음성 입력을 텍스트로 변환하고; 자동화된 어시스턴트(110)는 텍스트(선택적으로 입력 프로세싱 엔진(122)로부터의 텍스트의 주석들)를 특정한 에이전트에 제공하고, 특정한 에이전트로부터 응답형 컨텐츠를 수신하고; 그리고 출력 엔진(135)은 클라이언트 디바이스(106)를 통해 사용자에게 제시하기 위한 특정한 응답형 컨텐츠에 기초하는 출력을 제공할 수 있다. 또한, 예를 들면, 중간자로서 서비스하는 것에서, 자동화된 어시스턴트(110)는 추가적으로 또는 대안적으로 사용자 입력 및/또는 응답형 컨텐츠를 분석하여 에이전트와의 대화가 종료되어야 하는지, 대안적 에이전트로 이송되어야 하는지 등을 결정한다. 또한 본 명세서에 기술된 바와 같이, 일부 상황들에서, 대화는 실제로 에이전트에 이송될 수 있고(일단 이송되면 자동화된 어시스턴트(110)가 중간자로서 서비스하지 않음), 하나 이상의 조건들의 발생에 따라 다시 자동화된 어시스턴트(110)로 이송될 수 있다. 추가로, 본 명세서에 기술된 바와 같이, 일부 상황들에서, 호출된 에이전트는 클라이언트 디바이스(106)에 의해 실행될 수 있고 및/또는 클라이언트 디바이스(106)에 의해 전면에 가져와 질 수 있다(예를 들어, 그것의 컨텐츠가 클라이언트 디바이스(106)의 디스플레이를 차지함).
에이전트들(140A-N) 각각은 컨텍스트적 파라미터 엔진, 컨텐츠 엔진 및/또는 다른 엔진들을 포함할 수 있다. 추가로, 많은 구현예들에서, 에이전트는 응답형 컨텐츠를 생성함에 있어 다양한 저장된 모델들 및/또는 다른 리소스들에 엑세스할 수 있다(예를 들어, 그것 고유의 문법 모델(들) 및/또는 컨텐츠 모델(들)).
또한 도 1에 도시된 것은 모델(들) 엔진(150) 및 기록 데이터베이스(158)이다. 본 명세서에서 더 상세히 기술된 바와 같이, 기록 데이터베이스(158)는 에이전트들(140A-N)과의 다양한 자동화된 어시스턴트(110) 인터렉션들에 기초하여 저장된 정보를 포함할 수 있다. 모델(들) 엔진(150)은 상기 정보를 선택 모델(들) 데이터베이스(156) 중 하나 이상의 선택 모델들을 생성하는데 활용할 수 있다. 추가적 설명이 본 명세서에서 제공된다.
이제 도 3-10으로 돌아가면, 도 1의 환경의 다양한 컴포넌트들의 추가적 설명이 기술된다.
도 3은 어떻게 에이전트 요청과 응답(들)이 특정한 에이전트를 선택하는 것에서 활용될 수 있는지 및/또는 에이전트 선택 모델(들)을 생성하는데 사용하기 위해 기록 데이터베이스에 저장되는지의 예시를 제공한다.
도 3에서, 자연어 입력(171)이 자동화된 어시스턴트(110)의 입력 프로세싱 엔진(112)에 의해 수신된다. 동작 예시로서, 자연어 입력(171)은 “음식점 A, 외부 자리, 4명 테이블”일 수 있다. 입력 프로세싱 엔진(112)은 주석이 달린 입력(172)을 생성하고 상기 주석이 달린 입력(172)를 파라미터 모듈(122)에 제공한다.
파라미터 모듈(122)은 주석이 달린 입력(172)에 기초하여 및/또는 클라이언트 디바이스 컨텍스트에 기초하여 파라미터(173)에 대한 값들을 생성한다. 동작 예시를 계속하면, 파라미터 모듈(122)은 의도 파라미터로 “음식점 예약” 값, 자리 선호 의도 슬롯 파라미터로 “바깥” 값 그리고 음식점 위치 의도 슬롯 파라미터로 “음식점 A” 값을 생성할 수 있다.
요청 컴포넌트(124A)는 파라미터들(173)에 대한 값들에 기초하여 에이전트 요청을 생성한다. 도 3의 방향이 지시된 화살표 “AR”에 의해 표시된 바와 같이, 요청 컴포넌트(124A)는 다수의 에이전트들(140A-D) 각각에 상기 에이전트 요청을 전송한다. 일부 구현예들에서, 요청 컴포넌트(124A)는 그들이 “음식점 예약” 의도와 연관되었다는 결정에 기초하여 에이전트들(140A-D)을 선택할 수 있다. 일부 다른 구현예들에서, 요청 컴포넌트(124A)는 에이전트들(140A-D) 및/또는 추가적 에이전트들에(예를 들어, 에이전트들(140A-N) 모두에 송신할 수 있음) 의도와 관계없이 에이전트 요청들을 송신할 수 있다. 예를 들면, 다양한 에이전트들에 의해 처리되는 의도(들)은 알려지지 않을 수 있고 및/또는 의도는 대화로부터 도출될 수 없을 수 있다.
도 3의 방향이 지시된 화살표 “R”에 의해 표시된 바와 같이, 요청 컴포넌트(124A)는 에이전트 요청을 에이전트들(140A-D)에 전송함에 응답하여 에이전트들(140A-D) 각각으로부터 응답들을 수신한다. 응답들은 에이전트 요청을 리졸브할 수 있는 에이전트들(140A-D) 중 대응하는 에이전트의 능력을 각각 표시한다. 예를 들면, 주어진 에이전트로부터의 응답은 바이너리 표시, 비-바이너리 신뢰도, 실제 응답형 컨텐츠(또는 컨텐츠 없음/에러) 등일 수 있다. 에이전트들 각각으로부터의 응답들이 도 3에 도시되었지만, 일부 구현예들에서 또는 상황들에서 하나 이상의 에이전트들(140A-D)이 응답하지 않을 수 있고, 이는 대응하는 에이전트가 응답할 수 없다는 것을 표시할 수 있다(예를 들어, 에이전트는 에이전트 요청을 프로세싱할 수 없거나 오프라인임). 에이전트 요청은 에이전트들(140A-D)의 활동적 호출 없이 에이전트들(140A-D)에 전송될 수 있다.
요청 컴포넌트(124A)는 기록 데이터베이스(158)에 응답들(및/또는 상기 응답들에 기초하여 만들어진 결정(들)) 및 에이전트 요청을 저장한다. 예를 들면, 요청 컴포넌트(124A)는 에이전트 요청 및 에이전트들(140A-D) 각각에 대한 응답의 표시를 저장할 수 있다. 예를 들어, 요청 컴포넌트(124A)는 에이전트 요청 및 에이전트(140A)가 응답할 수 없었음, 에이전트(140B)가 응답할 수 있었음, 에이전트(140C) 응답할 수 없었음의 표시들을 저장할 수 있다.
또한, 요청 컴포넌트(124A)는 선택 컴포넌트(124E)에 응답들(174)(및/또는 상기 응답들에 기초하여 만들어진 결정(들))을 제공한다.
선택 컴포넌트(124E)는 특정한 에이전트(176)를 선택하기 위해 응답들(174)을 활용하고, 선택적으로 에이전트 컨텍스트 컴포넌트(124B) 및/또는 클라이언트 컨텍스트 컴포넌트(124C)에 의해 제공된 구성들을 추가적으로 활용할 수 있다. 일 예시로서, 선택 컴포넌트(124E)는 응답들(174)에만 기초하여 특정한 에이전트(176)를 선택할 수 있다(예를 들어, 응답하기에 가장 좋은 능력의 표시를 응답한 에이전트를 선택). 다른 예시로서, 선택 컴포넌트(124E)는 응답들(174) 및 에이전트 컨텍스트 컴포넌트(124B)에 의해 제공된 하나 이상의 에이전트들(140A-D)의 랭킹을 활용할 수 있다. 예를 들어, 선택 컴포넌트(124E)는 초기적으로 응답하기에 가장 좋은 능력을 표시하는 응답들을 가지는 에이전트들(140A-D) 중 2개를 선택할 수 있고, 그 후, 선택되지 않은 에이전트보다 높은 랭킹을 가지는 선택된 에이전트에 기초하여 상기 2개의 에이전트 중 단 하나를 선택한다. 또 다른 예시로서, 선택 컴포넌트(124E)는 응답들(174) 및 클라이언트 컨텍스트 컴포넌트(124C)에 의해 제공된 이력적 사용 구성들을 활용할 수 있다. 예를 들어, 선택 컴포넌트(124E)는 초기적으로 응답하기에 가장 좋은 능력을 표시하는 응답들을 가지는 에이전트들(140A-D) 중 2개를 선택할 수 있고, 그 후, 더 빈번하게 및/또는 더 최근에 사용자에 의해 자동화된 어시스턴트(110)와의 인터렉션에 활용된 것으로 선택된 에이전트에 기초하여 상기 2개의 에이전트 중 단 하나를 선택한다.
선택 컴포넌트(124E)는 특정한 에이전트(176)를 호출 모듈(128)에 제공한다. 호출 모듈(128)은 특정한 에이전트를 호출할 수 있다. 예를 들면, 호출 모듈(128)은 특정한 에이전트에 파라미터들(173)의 값들에 기초한 호출 요청을 전송함으로써 특정한 에이전트를 호출할 수 있다. 또한, 예를 들면, 호출 모듈(128)은 특정한 에이전트로부터 이미 수신된 응답형 컨텐츠에 기초한 출력을 제공하기 위해 출력 엔진(135)을 사용할 수 있고, 출력을 제공하는 것에 응답하여 수신된 추가적 수신 사용자 인터페이스 입력(있는 경우)에 응답하여 추가적 응답형 컨텐츠를 생성하기 위해 특정한 에이전트를 선택적으로 호출할 수 있다.
도 4는 본 명세서에 개시된 구현예들에 따라 예시적 방법(400)을 도시하는 흐름도이다. 편의상, 도 4의 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 자동화된 어시스턴트(110)의 하나 이상의 컴포넌트들과 같은 다양한 컴퓨터 시스템들의 다양한 컴포넌트들을 포함할 수 있다. 추가로, 방법(400)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 또는 추가될 수 있다.
블록(450)에서, 시스템은 사용자 입력을 수신한다. 일부 구현예들에서, 블록(450)에서 수신된 사용자 입력은 자유 형식인 자연어 입력이다.
블록(452)에서, 시스템은 수신된 사용자 입력이 에이전트 액션을 표시하는지 여부를 결정한다. 예를 들면, 시스템은 수신된 자연어 입력의 텍스트(또는 수신된 오디오 자연어 입력으로부터 변환된 텍스트)를 파싱하고, 상기 파싱된 텍스트가 임의의 에이전트 액션에 맵핑되는지 여부를 결정한다. 예를 들어, 시스템은 텍스트에 포함된 용어들/문구들이 에이전트 액션과 연관되어 저장된 용어들/문구들과 일치하는지 여부에 기초하여 파싱된 텍스트가 임의의 에이전트 액션에 맵핑되는지 여부를 결정할 수 있다. 또한, 예를 들어, 시스템은 텍스트로부터 도출된 하나 이상의 엔터티들이 에이전트 액션과 연관되어 저장된 하나 이상의 엔터티들과 일치하는지 여부를 결정할 수 있다. 다른 예시로서, 시스템은 시스템이 입력에 응답하여 로컬 응답형 컨텐츠를 생성할 수 없다고 결정하면 입력이 에이전트 액션에 맵핑되는 것으로 가정할 수 있다. 일부 구현예들에서, 시스템은 시스템이 입력에 응답하여 로컬 응답형 컨텐츠를 생성할 수 있는 경우에도 입력이 에이전트 액션에 맵핑되는 것으로 결정할 수 있다는 점이 주목되어야 한다. 예를 들면, 시스템은 로컬 응답형 컨텐츠를 생성할 수 있음을 그리고 하나 이상의 에이전트들 또한 잠재적으로 응답형 컨텐츠를 생성할 수 있음을 결정할 수 있다. 이들 예시들 중 일부에서, 시스템은 (아래에 기술된) 블록들(462, 464, 466, 및 468)에서 고려될 에이전트들 중에서 로컬 에이전트(들)을 포함할 수 있다.
블록(452)에서, 시스템이 액션이 의도된 에이전트가 표시되지 않았다고 결정하면, 시스템은 블록들(454, 456 및 458)로 진행한다. 블록(454)에서, 시스템은 에이전트의 호출 없이 로컬 응답형 컨텐츠를 생성한다. 예를 들면, 시스템은 로컬 문법 모델들 및/또는 시스템의 로컬 컨텐츠 모델들을 활용하여 로컬 응답형 컨텐츠를 생성할 수 있다. 블록(456)에서, 시스템은 로컬 응답형 컨텐츠에 기초한 출력을 제공한다. 예를 들면, 출력은 로컬 응답형 컨텐츠 또는 상기 로컬 응답형 컨텐츠의 변환(예를 들어, 텍스트-투-스피치 변환)일 수 있다. 출력은 클라이언트 디바이스를 통해 (예를 들어, 청각적 또는 그래픽적) 제시하기 위해 제공된다. 블록(458)에서, 시스템은 추가적 음성 입력을 대기하고 추가적 음성 입력을 수신함에 따라 블록(450)으로 다시 진행한다.
블록(452)의 반복에서, 시스템이 에이전트 액션이 표시되었다고 결정하면, 시스템은 블록(460)으로 진행한다. 블록(460)에서, 시스템은 단일의 에이전트가 블록(450)의 사용자 입력에서 특정되었는지 및/또는 이와 달리 단일의 에이전트가 불명료하게 리졸브되는지 여부를 결정한다.
블록(460)에서, 시스템이 단일의 에이전트가 표시되었다고 결정하면, 시스템은 블록(474)으로 진행한다.
블록(460)에서, 시스템이 단일의 에이전트가 표시되지 않았다고 결정하면, 시스템은 블록들(462, 464, 466 및 468)로 진행한다. 블록(462)에서, 시스템은 블록(450)의 가장 최근의 반복에서 사용자 입력에 기초하여 및/또는 이전의 사용자 입력 및/또는 다른 기준에 기초하여 에이전트 요청을 생성한다. 블록(464)에서, 시스템은 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들을 선택한다. 예를 들면, 시스템은 코퍼스의 모든 에이전트들 또는 에이전트들의 서브셋(예를 들어, 에이전트 요청에 의해 표시된 의도를 가지는 것들)을 선택할 수 있다. 에이전트들은 비-로컬 에이전트들만 및/또는 로컬 및 비-로컬 에이전트들을 포함할 수 있다. 블록(466)에서, 시스템은 블록(462)의 에이전트 요청을 블록(464)에서 선택된 에이전트들 각각에 전송한다.
블록(468)에서 시스템은 블록(466)의 전송에 응답하여, 에이전트들로부터 하나 이상의 응답들을 수신한다. 블록(470), 시스템에서 블록(468)에서 수신된 응답들(또는 상기 응답들에 기초하여 이루어진 결정)과 블록(466)에서 전송된 에이전트 요청 간의 연관을 결정한다. 상기 저장된 연관은 에이전트 선택 모델을 생성하는데 사용될 수 있다(도 5의 방법(500)에서). 블록(472)에서, 시스템은 블록(468)에서 수신된 응답들에 기초하여 및/또는 다른 기준에 기초하여 단일의 에이전트를 선택한다.
일부 구현예들에서, 블록(472)에서 시스템은 블록(468)에서 수신된 응답들을 사용하여 에이전트들의 서브셋을 선택하고, 상기 서브셋의 에이전트들의 표시들을 사용자에게 제시하기 위한 출력으로서 제공하고, 그리고 상기 서브셋의 에이전트들로부터 단일의 에이전트를 선택하기 위해 출력에 응답하여 사용자 선택을 활용한다. 상기 구현예들 중 일부 버전은, 또한, 시스템은 블록(470)에서 사용자에 의해 선택된 단일의 에이전트의 표시를 저장할 수 있다. 에이전트들의 표시들은 예를 들면, 에이전트들의 이름(들) 또는 다른 식별자들 및/또는 블록(468)에서 수시된 응답들에 포함된 에이전트들의 응답형 컨텐츠의 표시들일 수 있다.
블록(474)에서, 시스템은 단일의 에이전트에 대한 호출 요청을 전송한다. 단일의 에이전트는 블록(472)에서 선택된 한 에이전트(블록(460)에서 결정이 “아니오”인 경우)이거나 또는 사용자 입력에서 표시된 단일의 에이전트일 수 있다(블록(460)에서 결정이 “예”인 경우). 예를 들면, 시스템은 하나 이상의 통신 채널들을 통해 호출 요청을 전송할 수 있고, 선택적으로 API를 활용할 수 있다. 일부 구현예들에서, 호출 요청은 본 명세서에 기술된 바와 같이 다양한 호출 파라미터(들)에 대한 값(들)을 포함한다. 일부 구현예들에서, 시스템은 블록(472)로부터 블록(474)로 진행하기 전에, 사용자가 단일의 에이전트를 활용하기 원하는지 확인하기 위해 사용자에게 우선 프롬프트할 수 있다. 상기 구현예들에서, 시스템은 블록(472)로부터 블록(474)로 진행하기 전의 프롬프트에 대한 응답으로, 긍정적 사용자 입력을 요구할 수 있다. 다른 구현예들에서, 시스템은 사용자에게 확인을 위해 먼저 프롬프트하지 않고 블록(472)로부터 블록(474)로 자동적으로 진행한다.
선택적 블록(476)에서, 시스템은 단일의 에이전트와 사용자의 인터렉션에 기초하여 글로벌 파라미터 값(들)을 업데이트할 수 있다. 예를 들면, 단일의 에이전트에 대한 사용자에 의해 제공된 추가적 자연어 입력은 이전에 정의되지 않은 글로벌 파라미터(예를 들어, 특정 의도 슬롯 파라미터)에 대한 값을 정의하는 단일의 에이전트를 결과로 하거나 또는 파라미터에 대해 이전에 정의된 값을 수정하는 단일의 에이전트를 결과로 한다. 단일의 에이전트는 상기 업데이트된 값(들)을 시스템에 제공할 수 있고, 시스템은 업데이트된 값(들)을 반영하기 위해 글로벌 파라미터 값(들)을 업데이트할 수 있다.
블록(478)에서, 시스템은 에이전트 교체 입력을 수신한다. 에이전트 교체 입력은 다른 에이전트로 교체하기 원함을 표시하는 사용자로부터의 입력이다(예를 들어, 자연어 입력). 예를 들어, “다른 에이전트에 얘기해”, “다른 에이전트”, “에이전트 X로 시도해봐” 등과 같은 입력들이 에이전트 교체 입력들일 수 있다.
에이전트 교체 입력을 수신함에 응답하여, 블록(480)에서 시스템은 대안적 에이전트에 호출 요청을 전송한다. 대안적 에이전트에 대한 호출 요청은 블록(474)에서 호출된 단일의 에이전트 대신에 대안적 에이전트를 호출한다. 호출 요청은 선택적으로 블록(476)에서 업데이트된, 업데이트된 글로벌 파라미터 값(들)을 포함할 수 있다. 이 방식에서, 제1 에이전트와 인터렉션을 통해 도출된 값들은 후속적으로 호출된 에이전트에 이송될 수 있으며, 그에 따라 후속적으로 호출된 에이전트와의 인터렉션들의 효율성을 증가시킨다. 일부 상황들에서, 어떤 대안적 에이전트가 추가적 호출 요청을 전송하기 위해 선택되는지는 에이전트 교체 입력 그 자체에 기초하고(예를 들어, 이름 또는 특징에 의해 대안적 에이전트 중 하나를 참조하는 경우) 및/또는 다른 요소들에 기초할 수 있다(예를 들어, 에이전트 요청들이 업데이트된 글로벌 파라미터 값(들)에 기초하여 다시 송신될 수 있고, 응답(들)이 대안적 에이전트를 선택하기 위해 활용된다). 일부 구현예들에서, 블록(480)에서 호출 요청을 대안적 에이전트에 전송하기 전에, 시스템은 대안적 에이전트가 응답형 컨텐츠를 생성할 가능성이 크다는 것을 보장하기 위해 확인할 수 있다. 예를 들면, 시스템은 에이전트 요청을 대안적 에이전트에 송신할 수 있고, 응답에 기초하여 그러한 결정을 하고 및/또는 에이전트 데이터베이스(152)에서의 에이전트에 대한 정보에 기초하여 그러한 결정을 할 수 있다.
도 5는 본 명세서에 개시된 구현예들에 따라 다른 예시적 방법(500)을 도시하는 흐름도이다. 도 5는 에이전트 요청들 및 연관된 응답들에 기초하여, 선택 모델(들) 데이터베이스(156)의 선택 모델을 생성하는 예시를 도시한다. 도 5의 예시에서, 선택 모델은 딥 신경 네트워크 모델과 같은 기계 학습 모델이다.
편의상, 도 5의 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 모델(들) 엔진(150)과 같은 다양한 컴퓨터 시스템들의 다양한 컴포넌트들을 포함할 수 있다. 추가로, 방법(500)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 또는 추가될 수 있다.
블록(552)에서, 시스템은 에이전트 요청 및 연관된 응답들을 선택한다. 일 예시로서, 에이전트 요청 및 연관된 응답들은 기록 데이터베이스(158)로부터 선택될 수 있다. 일부 구현예들에서, 선택된 에이전트 요청 및 연관된 응답들은 도 3에서 도시된 바와 같이 요청 컴포넌트(124A)에 의해 생성되었을 수 있고 및/또는 도 4의 방법(400)의 블록(470)의 반복에서 저장되었을 수 있다. 일부 다른 구현예들에서, 다른 기법들을 통해 생성된 에이전트 요청들 및/또는 연관된 응답들이 활용될 수 있다. 예를 들면, 에이전트 요청들이 에이전트들에 전송될 수 있고, 응답들이 “비-라이브” 방식으로 수신된다. 다시 말해서, 에이전트 요청들 및 응답들은 반드시 과거의 사람-대-자동화된 어시스턴트 대화 동안에 능동적으로 특정한 에이전트를 선택하는 것에서 생성된 것들일 필요는 없다. 일 비-제한적 예시로서, 에이전트 요청들은 “초기(bare)” 호출인 호출들 직후에 에이전트들에 제공된 자연어 입력들에 기초하는 것들을 포함할 수 있다. 예를 들어, “에이전트 A”의 초기 호출 직후에 “에이전트 A”에 제공된 자연어 입력이 이후에 다수의 추가적 에이전트들에 전송되는 에이전트 요청을 생성하기 위해 활용될 수 있다.
동작 예시를 계속하면, 블록(552)의 반복에서 선택된 에이전트 요청은 의도 파라미터로 “음식점 예약” 값, 자리 선호 의도 슬롯 파라미터로 “바깥” 값 그리고 음식점 위치 의도 슬롯 파라미터로 “음식점 A” 값을 포함한다고 가정한다. 추가로, 선택된 연관된 응답들은 “예”(응답형 컨텐츠를 생성할 수 있음) 또는 “아니오”(응답형 컨텐츠 생성할 수 없음)의 에이전트 요청에 대한 바이너리 응답을 포함한다고 가정한다. 특히, 연관된 응답들은 에이전트들(1-5)이 “예” 응답을 생성했고, 에이전트들(6-200)이 “아니오” 응답을 생성했다고 표시한다.
블록(554)에서, 시스템은 선택된 에이전트 요청 및 연관된 응답(들)에 기초하여 트레이닝 인스턴스를 생성한다. 블록(554)는 서브-블록(5541 및 5542)을 포함한다.
서브-블록(5541)에서, 시스템은 에이전트 요청에 기초하여 그리고 선택적으로 추가적 값들에 기초하여 트레이닝 인스턴스의 트레이닝 인스턴스 입력을 생성한다. 동작 예시를 계속하면, 시스템은 의도 파라미터, 자리 선호 의도 슬롯 파라미터 및 음식점 위치 의도 슬롯 파라미터에 대한 에이전트 요청의 값들을 포함하는 트레이닝 인스턴스 입력을 생성할 수 있다. 시스템은 에이전트 요청에 의해 정의되지 않은 트레이닝 인스턴스 입력의 디멘전들에 대해 트레이닝 인스턴스에 “null” 값(또는 다른 값(들))을 포함할 수 있다. 예를 들면, 트레이닝될 기계 학습 모델의 입력 디멘전들이 (동일한 의도 및/또는 다른 의도들의) 다른 의도 슬롯 파라미터(들)에 대한 입력들을 포함하는 경우, null 값들이 상기 입력들에 대한 트레이닝 인스턴스에 활용될 수 있다.
서브-블록(5542)에서, 시스템은 응답(들)에 기초하여 트레이닝 인스턴스의 트레이닝 인스턴스 출력을 생성한다. 동작 예시를 계속하면, 시스템은 (“예” 응답들 생성한) 에이전트들(1-5)에 대응하는 출력 디멘전들 각각에 대해 “1”(또는 다른 “긍정적” 값) 및 (“아니오” 응답을 생성한) 에이전트들(6-200)에 대응하는 출력 디멘전들 각각에 대해 “0”(또는 다른 “부정적” 값을 포함하는 트레이닝 인스턴스 출력을 생성할 수 있다.
블록(556)에서, 시스템은 추가적 에이전트 요청들 및 연관된 응답들이 있는지 여부를 결정한다. 있다면, 시스템은 블록(552)로 돌아가 진행하고, 다른 에이전트 요청 및 연관된 응답들을 선택하고, 그 후 상기 선택된 에이전트 요청 및 연관된 응답들에 기초하여 다른 트레이닝 인스턴스를 생성한다.
블록들(558-566)은 블록들(552, 554 및 556)의 다수의 반복들에 후속하여 또는 병렬로 수행될 수 있다.
블록(558)에서, 시스템은 블록(554)의 반복에서 생성된 트레이닝 인스턴스를 선택한다.
블록(560)에서, 시스템은 트레이닝 인스턴스를 기계 학습 모델에 대한 입력으로서 적용한다. 예를 들면, 기계 학습 모델은 블록(5541)에서 생성된 트레이닝 인스턴스 입력의 디멘전들에 대응하는 입력 디멘전들을 가질 수 있다.
블록(562)에서, 시스템은 적용된 트레이닝 인스턴스 입력에 기초하여 기계 학습 모델 상에 출력을 생성한다. 예를 들면, 기계 학습 모델은 블록(5541)에서 생성된 트레이닝 인스턴스 출력의 디멘전들에 대응하는 출력 디멘전들을 가질 수 있다(예를 들어, 출력의 각 디멘전은 에이전트 및/또는 에이전트 및 의도에 대응할 수 있음).
블록(564)에서, 시스템은 생성된 출력 및 트레이닝 인스턴스 출력에 기초하여 기계 학습 모델을 업데이트한다. 예를 들면, 시스템은 블록(562)에서 생성된 출력 및 트레이닝 인스턴스 출력에 기초하여 에러를 결정할 수 있고, 기계 학습 모델에 상기 에러를 역전파한다.
블록(566)에서, 시스템은 하나 이상의 추가적인 프로세싱되지 않은 트레이닝 인스턴스들이 있는지 여부를 결정한다. 있다면, 시스템은 블록(558)로 돌아가 진행하고, 추가적 트레이닝 인스턴스를 선택하고, 그 후 상기 추가적인 프로세싱되지 않은 트레이닝 인스턴스에 기초하여 블록들(560, 562 및 564)을 수행한다. 일부 구현예들에서, 블록(566)에서, 시스템은 하나 이상의 트레이닝 기준이 만족된 경우(예를 들어, 에포치들(epochs)의 임계수가 발생했거나 및/또는 트레이닝의 임계 기간이 발생함), 임의의 추가적인 프로세싱되지 않은 트레이닝 인스턴스들을 프로세싱하지 않을 것을 결정할 수 있다. 비록 방법(500)이 비-배치(non-batch) 학습 기법과 관련하여 기술되었지만, 배치 학습(batch learning)이 추가적으로 및/또는 대안적으로 활용될 수 있다.
방법(500)에 따라 트레이닝된 기계 학습 모델은 그 후에 현재 대화, 복수의 사용가능한 에이전트들 각각에 대한 확률(그리고 선택적으로 의도들)에 기초하여 예측하는데 활용될 수 있고, 여기서 상기 확률들 각각은 에이전트가 대화에 기초하여 호출 요청을 적절하게 처리할 수 있는 확률을 표시한다. 예를 들면, 현재 대화에 기초한 값들은 상기 모델에서 출력을 생성하기 위해 트레이닝된 기계 학습 모델에 입력으로서 적용될 수 있고, 상기 출력은 에이전트에 각각 대응하는 복수의 값들을 포함하고, 상기 값들은 상기 대응하는 에이전트가 호출된 경우 적절한 응답형 컨텐츠를 생성할 수 있는 확률(예를 들어, 0 부터 1까지의 값들)을 각각 표시한다. 예를 들면, 200개의 사용가능한 에이전트들이 모델에 의해 표현된 경우, 200개의 값들이 출력에 포함될 수 있고, 각 값은 에이전트들 중 하나에 대응하고, 상기 에이전트가 적절한 응답형 컨텐츠를 생성할 수 있는 확률을 표시한다. 이 방식에서, 트레이닝된 기계 학습 모델은 다양한 현실 에이전트 요청들에 대한 상기 에이전트들의 응답들에 기초한 트레이닝을 통해 다양한 에이전트들의 능력에 대한 통찰력을 효율적으로 제공한다. 트레이닝된 기계 학습 모델은 입력에 기초하여, 상기 입력에 대한 응답을 생성하기 위한 다양한 에이전트들의 능력을 결정하는데 사용될 수 있다(심지어 에이전트 데이터베이스(152) 및/또는 다른 리소스들이 상기 입력에 대한 에이전트들의 능력을 명시적으로 표시하지 않더라도).
도 5는 생성되고 활용될 수 있는 에이전트 선택 모델의 일 예시를 도시한다. 그러나, 본 명세서에 기술된, 추가적인 및/또는 대안적인 에이전트 선택 모델들이 특정한 에이전트를 선택하는데 활용될 수 있다. 상기 추가적인 및/또는 대안적인 에이전트 선택 모델들은 선택적으로 도 5와 관련하여 기술된 것과 다른 다양한 트레이닝 인스턴스들에 기초하여 트레이닝된 기계 학습 모델들일 수 있다.
일 예시로서, 선택 모델은 다양한 사용자들에 의한 에이전트들의 과거의 명시적 선택들에 기초하여 생성될 수 있고, 상기 선택 모델은 특정한 에이전트를 선택하는데 추가적으로 또는 대안적으로 활용될 수 있다. 예를 들어, 도 4의 블록(472)와 관련하여 기술된 바와 같이, 일부 구현예들에서, 다수의 에이전트들의 표시들은 사용자에게 제시될 수 있고, 다수의 에이전트들 중 단일의 에이전트의 사용자 선택이 다수의 에이전트들로부터 단일의 에이전트를 선택하는데 활용될 수 있다. 다수의 사용자들의 명시적 선택들은 선택 모델을 생성하는데 활용될 수 있다. 예를 들면, 방법(500)과 관련하여 상기 기술된 것과 유사한 트레이닝 인스턴스들이 생성될 수 있으나, 각 트레이닝 인스턴스의 트레이닝 인스턴스 출력이 사용자에 의해 선택된 에이전트에 기초하여 생성될 수 있다. 예를 들어, 트레이닝 인스턴스로, “1”(또는 다른 “긍정적” 값)이 선택된 에이전트에 대응하는 출력 디멘전에 대해 활용될 수 있고, “0”(또는 다른 “부정적” 값)이 다른 모든 에이전트들에 대응하는 출력 디멘전들 각각에 대해 활용될 수 있다. 또한, 예를 들어, 트레이닝 인스턴스로, “1”(또는 다른 “긍정적” 값)이 선택된 에이전트에 대응하는 출력 디멘전에 대해 활용될 수 있고, “0.5”(또는 다른 “중간” 값)이 사용자에게 제시되나 선택되지 않은 다른 에이전트(들)에 대응하는 출력 디멘전(들)에 대해 활용될 수 있고, 그리고 “0”(또는 다른 “부정적” 값)이 다른 모든 에이전트들에 대응하는 출력 디멘전들 각각에 대해 활용될 수 있다. 이 방식 및 다른 방식에서, 사용자들에 의한 에이전트들의 명시적 선택은 하나 이상의 에이전트 선택 모델들을 생성하는데 레버리징될 수 있다.
도 6는 본 명세서에 개시된 구현예들에 따라 다른 예시적 방법(600)을 도시하는 흐름도이다. 도 6은 호출하기 위한 단일의 에이전트를 선택하는 것에서 도 5의 방법(500)에 기초하여 생성된 에이전트 선택 모델과 같은 에이전트 선택 모델을 활용하는 예시를 도시한다.
편의상, 도 6의 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 자동화된 어시스턴트(110)의 하나 이상의 컴포넌트들과 같은 다양한 컴퓨터 시스템들의 다양한 컴포넌트들을 포함할 수 있다. 추가로, 방법(600)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 또는 추가될 수 있다.
블록(650)에서, 시스템은 사용자 입력을 수신한다. 블록(650)은 도 4의 블록(450)과 공통되는 하나 이상의 양태들을 공유할 수 있다.
블록(652)에서, 시스템은 수신된 사용자 입력이 에이전트 액션을 표시하는지 여부를 결정한다. 블록(652)은 도 4의 블록(452)과 공통되는 하나 이상의 양태들을 공유할 수 있다.
블록(652)에서, 시스템이 액션이 의도된 에이전트가 표시되지 않았다고 결정하면, 시스템은 블록들(654, 656 및 658)로 진행한다. 블록(654)에서, 시스템은 에이전트의 호출 없이 로컬 응답형 컨텐츠를 생성한다. 블록(656)에서, 시스템은 로컬 응답형 컨텐츠에 기초한 출력을 제공한다. 블록(658)에서, 시스템은 추가적 음성 입력을 대기하고 추가적 음성 입력을 수신함에 따라 블록(650)으로 다시 진행한다. 블록(654, 656 및 658)은 도 4의 블록(454, 456 및 458)과 공통되는 하나 이상의 양태들을 공유할 수 있다.
블록(652)의 반복에서, 시스템이 에이전트 액션이 표시되었다고 결정하면, 시스템은 블록(660)으로 진행한다. 블록(660)에서, 시스템은 단일의 에이전트가 사용자 입력(650)에서 특정되었는지 및/또는 이와 달리 단일의 에이전트가 불명료하게 리졸브되는지 여부를 결정한다. 블록(660)은 도 4의 블록(460)과 하나 이상의 양태들을 공유할 수 있다.
블록(660)에서, 시스템이 단일의 에이전트가 표시되었다고 결정하면, 시스템은 블록(680)으로 진행한다.
블록(660)에서, 시스템이 단일의 에이전트가 표시되지 않았다고 결정하면, 시스템은 블록들(672, 674, 676 및 678)로 진행한다. 블록(672)에서, 시스템은 블록(650)의 가장 최근의 반복에서 사용자 입력에 기초하여 및/또는 이전의 사용자 입력 및/또는 다른 기준에 기초하여 입력 구성들을 생성한다. 예를 들면, 시스템은 의도 파라미터에 대한 값(들), 의도 슬롯 파라미터(들) 등 과 같은 사용자 입력에 기초하여 결정된 파라미터(들)에 대한 값(들)을 포함하는 입력 구성들을 생성할 수 있다. 또한, 예를 들면, 시스템은 현재 클라이언트 디바이스 컨텍스트에 기초한 값들을 생성할 수 있다.
블록(674)에서, 시스템은 입력 구성들을 에이전트 선택 모델에 적용한다.
블록(676)에서, 시스템은 에이전트 선택 모델에 대한 입력의 어플리케이션에 기초하여, 다수의 에이전트들 각각에 대한 확률들을 생성한다. 확률들 각각은 적절한 응답형 컨텐츠를 생성하기 위한 대응하는 에이전트의 능력을 표시한다.
블록(678)에서, 시스템은 상기 확률들 및/또는 다른 기준에 기초하여 단일의 에이전트를 선택한다. 일부 구현예들에서, 시스템은 적절한 응답형 컨텐츠를 생성하기 위해 가장 높은 확률을 가지는 것에 기초하여 단일의 에이전트를 선택한다. 일부 다른 구현예들에서, 시스템은 추가적인 기준에 기초하여 단일의 에이전트를 선택한다. 예를 들면, 시스템은 상기 확률들에 기초하여 에이전트들의 초기 서브셋을 선택할 수 있고, “라이브” 에이전트 요청들을 상기 서브셋의 에이전트들에게 전송하고, 단일의 에이전트를 선택하는 것에 에이전트 요청들에 대한 “라이브” 응답들을 활용한다. 다른 예시로서, 시스템은 추가적으로 또는 대안적으로 클라이언트 디바이스의 사용자의 이력적 인터렉션들(예를 들어, 얼마나 자주 단일의 에이전트가 사용자에 의해 활용되었는지), 현재 렌더링된 및/또는 클라이언트 디바이스에서 현재 렌더링된 및/또는 최근에 렌더링된 컨텐츠, 클라이언트 디바이스의 위치, 현재 날짜 및/또는 시간, 단일의 에이전트의 랭킹(예를 들어, 사용자들의 집단에 의한 랭킹), 단일의 에이전트의 인기도(예를 들어, 사용자들의 집단 중에서의 인기도) 등에 기초하여 단일의 에이전트를 선택할 수 있다.
블록(680)에서, 시스템은 단일의 에이전트에 대한 호출 요청을 전송한다. 단일의 에이전트는 블록(678)에서 선택된 한 에이전트(블록(660)에서 결정이 “아니오”인 경우)이거나 또는 사용자 입력에서 표시된 단일의 에이전트일 수 있다(블록(660)에서 결정이 “예”인 경우). 블록(680)은 도 4의 블록(474)과 공통되는 하나 이상의 양태들을 공유할 수 있다.
도 7는 본 명세서에 개시된 구현예들에 따라 다른 예시적 방법(700)을 도시하는 흐름도이다. 도 7은 하나 이상의 에이전트 선택 모델에 의해 수행될 수 있는 방법의 예시를 도시한다.
편의상, 도 7의 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 에이전트들(140A-N) 중 하나의 하나 이상의 컴포넌트들과 같은 다양한 컴퓨터 시스템들의 다양한 컴포넌트들을 포함할 수 있다. 추가로, 방법(700)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 또는 추가될 수 있다.
블록(752)에서, 시스템은 자동화된 어시스턴트로부터 에이전트 요청을 수신한다. 일부 구현예들에서, 에이전트 요청은 플래그(flag)되거나 또는 이와 달리 에이전트 요청으로 표시된다.
블록(754), 시스템은 에이전트 요청에 기초하여 응답을 생성한다. 예를 들면, 시스템은 에이전트 요청의 컨텐츠를 파싱하고, 시스템이 요청에 응답할 수 있는지 결정하고 그리고 요청에 응답할 수 있는지 여부에 기초하여 응답을 생성할 수 있다. 예를 들면, 요청은 의도 파라미터에 대한 값을 포함할 수 있고, 시스템은 상기 값에 의해 표시된 의도에 응답할 수 있는지 여부에 기초하여 요청에 응답할 수 있는지 여부를 결정할 수 있다. 예를 들어, 의도 파라미터에 대한 값이 “예약”이나, 시스템은 “게임” 의도만 처리할 수 있는 경우, 응답할 수 없다고 결정하고, 완전히 응답할 수 없다고 표시하는 응답을 생성한다(예를 들어, “0” 또는 다른 “부정적” 응답 값). 또한, 예를 들면, 요청은 의도 슬롯 파라미터에 대한 값을 포함할 수 있고, 시스템은 상기 의도 슬롯 파라미터 및/또는 상기 값에 응답할 수 있는지 여부에 기초하여 요청에 응답할 수 있는지 여부를 결정할 수 있다. 예를 들어, 의도 슬롯 파라미터가 시스템에 의해 지원되지 않으나, 에이전트 요청의 다른 파라미터들 및 값들은 지원되는 경우, 시스템은 일부만 처리할 수 있고, 에이전트 요청의 모든 파라미터들을 처리할 수 없다고 표시하는 응답을 생성할 수 있다(예를 들어, “0.5” 또는 다른 “부분적” 응답 값). 다른 예시로서로서, 의도 슬롯 파라미터가 시스템에 의해 지원되지만, 특정한 값이 시스템에 의해 지원되지 않을 수 있다. 예를 들어, 의도 슬롯 파라미터는 “지리적 지역” 파라미터일 수 있고, 값은 시스템에 의해 서비스되지 않는 지리적 지역일 수 있다. 상기 시나리오에서, 시스템은 응답할 수 없다고 표시하거나 또는 더 정확하게 일부는 처리할 수 있으나, 에이전트 요청의 모든 값들을 처리할 수는 없다고 표시하는 응답을 생성할 수 있다.
블록(756)에서, 시스템은 자동화된 어시스턴트에 의해 호출되지 않은 에이전트 응답을 자동화된 어시스턴트에 제공(예를 들어, 전송)한다.
블록(758)에서, 시스템은 그 후에 자동화된 어시스턴트로부터 호출 요청을 수신한다. 일부 구현예들에서, 호출 요청은 효과적으로 또는 실제적으로 시스템이 대화를 이어 받아야 함을 표시할 수 있다. 호출 요청이 시스템이 실제적으로 대화를 이어 받아야 함을 표시하는 경우, 시스템은 직접적 네트워크 통신 세션을 대응하는 클라이언트 디바이스와 설정할 수 있다. 호출 요청이 시스템이 효과적으로 대화를 이어 받아야 함을 표시하는 경우, 시스템은 호출 요청을 제공한 컴포넌트 및/또는 관련 컴포넌트와 여전히 통신하면서 대화를 이어 받을 수 있다.
블록(760)에서, 시스템은 호출 요청에 포함된 파라미터(들)에 대한 값(들)에 기초하여 응답형 컨텐츠를 생성한다.
블록(762)에서, 시스템은 응답형 컨텐츠를 제공한다. 예를 들면, 호출 요청이 시스템이 효과적으로 대화를 이어 받고 및/또는 대화와 관계없이 의도된 액션을 수행해야만 함을 표시하는 경우, 시스템은 호출 요청을 보낸 컴포넌트(또는 관련된 컴포넌트)에 응답형 컨텐츠를 전송할 수 있다. 또한, 예를 들면, 호출 요청이 시스템이 실제적으로 대화를 이어 받아야 함을 표시하는 경우, 시스템은 응답형 컨텐츠를 대응하는 클라이언트 디바이스에 전송할 수 있다.
블록들(758, 760 및 762)은 그들이 일부 상황들에서는 수행되지 않을 수 있다고 표시하기 위해 도 7에서 파선으로 도시된다. 예를 들면, 본 명세서에 기술된 바와 같이, 일부 구현예들에서, 시스템은 대응하는 호출 요청을 수신한 적이 없이 에이전트 요청을 수신할 수 있다.
도 8 및 도 9는 사용자(101), 음성 사용가능 클라이언트 디바이스(806) 및 사용자(101), 클라이언트 디바이스(806)와 연관된 자동화된 어시스턴트 및 에이전트 간에 발생할 수 있는 대화의 예시를 각각 도시한다. 클라이언트 디바이스(806)는 하나 이상의 마이크로폰 및 하나 이상의 스피커들을 포함한다. 도 1의 자동화된 어시스턴트(110)의 하나 이상의 양태들은 클라이언트 디바이스(806) 및/또는 클라이언트 디바이스(806)와 네트워크 통신하는 하나 이상의 컴퓨팅 디바이스들에서 구현될 수 있다. 따라서, 쉬운 설명을 위해 자동화된 어시스턴트(110)는 도 8 및 도 9의 기재를 참조한다.
도 8에서, 사용자는 “어시스턴트, 오늘 내 집에 꽃을 배달해줘”의 발화된 입력(880A)을 제공한다. 발화된 입력에 대응하는 음성 입력이 디바이스(806)에 의해 생성되고 자동화된 어시스턴트(110)에 제공된다(예를 들어, 스트리밍 음성 입력으로서). 발화된 입력(880A)이 특정한 에이전트를 특정하지 않더라도, 자동화된 어시스턴트(110)는 발화된 입력(880A)을 활용하여 본 명세서에 기술된 하나 이상의 기법들에 기초하여(예를 들어, 에이전트 선택 모델에 기초하여) 다수의 사용가능한 에이전트들로부터 단일의 에이전트를 선택할 수 있다.
발화된 입력(880A)에 응답하여, 그리고 단일의 에이전트를 선택하는 것에서, 자동화된 어시스턴트(110)는 출력(882A) “물론입니다. 에이전트 1이 처리할 수 있습니다”를 생성하고 제공할 수 있다. 추가로, 자동화된 어시스턴트(110)는 “안녕하세요? 에이전트 1입니다. 어떤 종류의 꽃을 원하세요?”의 에이전트 출력(882B)을 제공하는 “에이전트 1”을 호출한다.
에이전트 출력(882B)에 응답하여, 사용자는 “장미꽃 12 송이”의 추가적 발화된 입력(880B)을 제공한다. 발화된 입력에 대응하는 음성 입력이 디바이스(806)에 의해 생성되고 자동화된 어시스턴트(110)에 제공되며, 상기 자동화된 어시스턴트(110)는 상기 발화된 입력(또는 그것의 변환 및/또는 주석들)을 “에이전트 1”에 포워딩한다. 추가적 발화된 입력(880B)는 “꽃 주문” 의도의 이전의 불특정된 “꽃 유형” 의도 슬롯 파라미터에 대한 값을 특정한다. 자동화된 어시스턴트(110)는 추가적 발화된 입력(880B)에 기초하여 “꽃 유형” 의도 슬롯 파라미터에 대한 글로벌 값을 업데이트할 수 있다(또는 직접적으로, 또는 “에이전트 1”에 의해 제공된 상기 값의 표시에 기초하여).
추가적 발화된 입력(880B)에 응답하여, “에이전트 1”은 “총 60달러로 5시에 배달되도록 할 수 있습니다. 주문할까요?”의 추가적 에이전트 출력(882C)을 제공한다.
추가적 에이전트 출력(882C)에 응답하여, 사용자는 “어시스턴트, 다른 꽃 에이전트로 교체(스위치)해 줘”의 추가적 발화된 입력(880C)을 제공한다. 자동화된 어시스턴트(110)는 상기 추가적 발화된 입력을 교체 입력으로서 인식하고, 적절한 대안적 에이전트를 선택할 수 있다. 예를 들면, 자동화된 어시스턴트(110)는 에이전트 선택 모델 및/또는 “라이브” 에이전트 요청들에 기초하여, “에이전트 2”가 (“꽃 유형”에 대한 값을 포함하는) 의도 슬롯 파라미터에 대한 다양한 값들을 가지는 상기 의도를 처리할 수 있다고 결정한다.
추가적 발화된 입력(880C)에 응답하여, 그리고 대안적 에이전트를 선택하는 것에서, 자동화된 어시스턴트(110)는 출력(882D) “물론입니다. 에이전트 2도 처리할 수 있습니다.”를 생성하고 제공할 수 있다. 추가로, 자동화된 어시스턴트(110)는 “에이전트 2”를 호출하고, 그리고 “꽃 유형” 의도 슬롯 파라미터에 대한 업데이트된 글로벌 값을 포함하는 호출 요청과 함께 “에이전트 2”를 호출한다. 그 후, “에이전트 2”는 “안녕하세요? 저는 에이전트 2입니다. 저는 총 50달러에 5시에 장미꽃 12송이를 배달할 수 있습니다. 주문할까요?”의 에이전트 출력(882E)을 제공한다. 특히, 이 출력은 “꽃 유형” 의도 슬롯 파라미터에 대한 업데이트된 글로벌 값에 기초하여 생성되며, 이는 이전에 호출된 “에이전트 1”과의 인터렉션에 응답하여 업데이트되었다.
그 후, 사용자는 “응”의 추가적 발화된 입력(880F)을 제공하여 “에이전트 2”로 하여금 의도 슬롯 파라미터에 대한 특정된 값들로 의도를 만족시키게 한다.
도 9에서, 사용자는 “어시스턴트, 오늘 6시, 가상 카페에, 2명용 테이블, 바깥 자리”의 발화된 입력(980A)을 제공한다. 발화된 입력에 대응하는 음성 입력이 디바이스(806)에 의해 생성되고 자동화된 어시스턴트(110)에 제공된다(예를 들어, 스트리밍 음성 입력으로서). 발화된 입력(980A)이 특정한 에이전트를 특정하지 않더라도, 자동화된 어시스턴트(110)는 발화된 입력(980A)을 활용하여 본 명세서에 기술된 하나 이상의 기법들에 기초하여(예를 들어, 에이전트 선택 모델에 기초하여) 다수의 사용가능한 에이전트들로부터 단일의 에이전트를 선택할 수 있다.
발화된 입력(980A)에 응답하여, 그리고 단일의 에이전트를 선택하는 것에서, 자동화된 어시스턴트(110)는 “에이전트 3”을 호출할 수 있다. “에이전트 3”은 사용자와의 임의의 추가적 대화 없이도, 의도 슬롯 파라미터에 대한 특정된 값들로 의도를 만족시킬 수 있다. “에이전트 3”은 예약이 완료되었고 텍스트 확인 문자가 사용자(101)에게 보내질 것이라고 표시하는, 자동화된 어시스턴트(110)에 제공하기 위한 응답형 컨텐츠를 생성한다. 응답으로, 자동화된 어시스턴트(110)는 “에이전트 3으로 예약되었습니다. 텍스트 확인 문자가 발송됩니다.”의 출력(982A)을 제공한다.
도 10은 다른 클라이언트 디바이스(1006) 및 클라이언트 디바이스(1006)의 디스플레이 스크린(1040)을 도시한다. 클라이언트 디바이스(1006)는 자동화된 어시스턴트(110)를 포함하거나 및/또는 그와 통신할 수 있다. 디스플레이 스크린(1040)은 사용자가 가상 키보드를 통해 사용자 입력을 생성하기 위해 선택할 수 있는 회답 인터페이스 엘리먼트(1088) 및 사용자가 마이크로폰을 통해 사용자 입력을 생성하기 위해 선택할 수 있는 음성 회답 인터페이스 엘리먼트(1089)를 포함한다. 일부 구현예들에서, 사용자는 음성 회답 인터페이스 엘리먼트(1089)의 선택 없이도 마이크로폰을 통해 사용자 입력을 생성할 수 있다. 예를 들면, 대화 동안에, 사용자가 음성 회답 인터페이스 엘리먼트(1089)를 선택해야하는 필요를 제거하기 위해 마이크로폰을 통해 청각적 사용자 인터페이스 입력에 대한 능동적 모니터링이 발생할 수 있다. 상기 구현예들 중 일부 및/또는 다른 구현예들에서, 음성 회답 인터페이스 엘리먼트(1089)는 생략될 수 있다. 추가로, 일부 구현예들에서, 회답 인터페이스 엘리먼트(1088)는 추가적으로 및/또는 대안적으로 생략될 수 있다(예를 들어, 사용자는 청각적 사용자 인터페이스 입력만 제공할 수 있다). 또한, 디스플레이 스크린(1040)은 클라이언트 디바이스(1010)로 하여금 하나 이상의 액션들을 수행하게 하기 위해 사용자와 인터렉션할 수 있는 시스템 인터페이스 엘리먼트들(1081, 1082, 1083)을 포함한다.
도 10에서, 입력(1080A)은 도 8에서의 입력(880A)와 동일하다. 유가하게, 출력들(1082A 및 1082B)은 도 8의 출력들(882A 및 882B)과 동일하다. 도 10은 (도 8의 발화된/청각적 인터렉션들 대신에) 자동화된 어시스턴트(110) 및/또는 에이전트들과의 그래픽적 인터렉션들의 예시로서 도시된다. 도 10은 그래픽적 인터렉션들의 일 예시를 도시하지만, 다른 예들도 고려된다. 예를 들면, 도 10에 도시된 바와 같이 공통 인터페이스를 통해 출력(1082B)을 자동화된 어시스턴트에 제공하는 “에이전트 1” 대신에 - “에이전트 1”은 호출에 응답하여 런칭되거나 및/또는 전면으로 가져와 지는 별개의 어플리케이션일 수 있다. 예를 들어, 도 10의 출력(1082A) 후에, “에이전트 1” 어플리케이션 인터페이스는 도 10의 자동화된 어시스턴트 인터페이스를 대신할 수 있고, 그 후 출력(1082B)과 유사한 출력을 제공한다.
도 11은 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적 컴퓨팅 디바이스(1110)의 블록도이다. 일부 구현예들에서, 하나 이상의 디바이스(106), 자동화된 어시스턴트(110), 3P 에이전트 및/또는 다른 컴포넌트(들)은 예시적 컴퓨팅 디바이스(1110) 중 하나 이상의 컴포넌트들을 포함할 수 있다.
컴퓨팅 디바이스(1110)는 일반적으로 적어도 하나의 프로세서(1114)를 포함하며, 버스 서브시스템(1112)을 통해 다수의 주변 디바이스들과 통신한다. 이들 주변 디바이스들은 예를 들면, 메모리 서브시스템(1125) 및 파일 저장 서브시스템(1126)을 포함하는 저장 서브시스템(1124), 사용자 인터페이스 출력 디바이스(1120), 사용자 인터페이스 입력 디바이스(1122) 및 네트워크 인터페이스 서브시스템(1116)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(1110)와 사용자 인터렉션을 하게 한다. 네트워크 인터페이스 서브시스템(1116)은 외부 네트워크에 대한 인터페이스를 제공하며, 다른 컴퓨팅 디바이스들의 대응하는 인터페이스 디바이스들과 연결된다.
사용자 인터페이스 입력 디바이스(1122)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿, 스캐너, 디스플레이에 통합된 터치스크린과 같은 포인팅 디바이스, 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, 용어 “입력 디바이스”의 사용은 정보를 컴퓨팅 디바이스(1110) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스들와 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(1120)는 디스플레이 서브시스템, 프린터, 팩스 기계 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 CRT, LCD와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 또한, 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 “출력 디바이스”의 사용은 정보를 컴퓨팅 디바이스(1110)로부터 사용자에게 또는 다른 기계 또는 컴퓨팅 디바이스에 정보를 출력하기 위한 모든 가능한 유형의 디바이스들와 방식들을 포함하도록 의도된다.
저장 서브시스템(1124)은 본 명세서에 기술된 일부 또는 전부의 모듈들의 기능을 제공하기 위한 프로그래밍 및 데이터 구조를 저장한다. 예를 들면, 저장 서브시스템(1124)은 도 4, 5, 6 및/또는 7의 방법(들)의 선택된 양태들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(1114) 단독으로 또는 다른 프로세서들과의 조합에 의해 실행된다. 저장 서브시스템(1124)에서 사용된 메모리(1125)는 프로그램 실행 중에 명령어들 및 데이터의 저장을 위한 메인 RAM(1130) 및 고정된 명령어들이 저장되는 ROM(1132)을 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(1126)은 프로그램 및 데이터 파일에 대한 영구적 저장을 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께인 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 저장 서브시스템(1126)에 의해 저장 서브시스템(1124)에 또는 프로세서(들)(1114)에 의해 엑세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(1112)은 의도된 대로 컴퓨팅 디바이스(1110)의 다양한 컴포넌트들 및 서브시스템들이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템(1112)이 개략적으로 단일의 버스로 도시되었지만, 버스 서브시스템의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(1110)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서퍼팜 또는 임의의 기타 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터들 및 네트워크들의 변하지 않는 성질 때문에, 도 11에 도시된 컴퓨팅 디바이스(1110)의 기술은 일부 구현예들을 도시하기 위한 목적의 특정 예시로만 의도된다. 컴퓨팅 디바이스(1110)의 많은 다른 구성들이 도 11에 도시된 컴퓨팅 디바이스보다 많거나 적은 컴포넌트들을 가질 수 있다.
본 명세서에서 논의된 특정 구현예들이 사용자에 관한 개인 정보(예를 들어, 다른 전자 통신으로부터 추출된 사용자 데이터, 사용자의 소셜 네트워크에 관한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보 및 사용자의 활동 및 인구통계적 정보)를 수집하거나 사용하는 상황들에서, 사용자에게 정보가 수집될지 여부, 개인정보가 저장될지 여부, 개인 정보가 사용될지 여부 및 사용자에 관한 정보가 어떻게 수집되고 저장되고 사용될지를 제어하기 위한 하나 이상의 기회들이 제공된다. 즉, 본 명세서에서 논의된 시스템들 및 방법들의 구현예들은 관련된 사용자로부터 명시적 인가를 수신함에 따라서만 사용자 개인 정보를 수집하고 저장하고 및/또는 사용한다. 예를 들면, 프로그램 또는 구성들이 그 특정한 사용자 또는 프로그램 또는 구성과 관련된 다른 사용자들에 관한 사용자 정보를 수집할지 여부에 관한 제어권이 사용자에게 제공된다. 개인정보가 수집될 각 사용자에게 그 사용자에 관한 정보 수집에 대해 제어하게 하고, 정보가 수집될지 여부에 관한 그리고 정보의 어떤 부분이 수집될지 허가 또는 인가를 제공하기 위한 하나 이상의 옵션들이 제시된다. 예를 들면, 통신 네트워크를 통해 사용자들에게 하나 이상의 상기 제어 옵션들이 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 일 예시로서, 사용자의 신원은 개인적으로 식별가능한 정보가 결정될 수 없도록 취급될 수 있다. 다른 예시로서, 사용자의 지리적 위치는 넓은 지역으로 일반화되어 사용자의 특정한 위치가 결정될 수 없도록 한다.

Claims (20)

  1. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    사람-대-자동화된 어시스턴트 대화 동안의 사용자 인터페이스 입력에 기초하여 생성된 복수의 자연어 입력 인스턴스들 각각에 대해:
    상기 자연어 입력 인스턴스에 기초하여 에이전트 요청을 생성하는 단계;
    상기 에이전트 요청에 대해, 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들의 세트를 선택하는 단계;
    하나 이상의 어플리케이션 프로그래밍 인터페이스들을 통해, 상기 에이전트 요청을 상기 세트의 상기 다수의 에이전트들 각각에 전송하는 단계;
    상기 전송하는 단계에 응답하여 상기 다수의 에이전트들 각각으로부터, 상기 에이전트 요청에 대응하는 응답을 수신하는 단계, 상기 응답들은 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위해 상기 다수의 에이전트들 중 대응하는 하나의 에이전트의 능력을 각각 표시하며; 및
    하나 이상의 컴퓨터 판독가능 매체에, 상기 에이전트 요청과 상기 에이전트 요청에 대한 상기 응답들 사이의 하나 이상의 연관들을 저장하는 단계;
    상기 에이전트 요청들과 그에 대한 응답들 사이의 상기 저장된 연관들에 기초하여 에이전트 선택 모델을 생성하는 단계, 상기 에이전트 선택 모델은 기계 학습 모델이며, 상기 기계 학습 모델을 생성하는 것은:
    상기 에이전트 요청들 및 그에 대한 응답들에 기초하여 트레이닝 인스턴스들을 생성하는 것, 복수의 상기 트레이닝 인스턴스들 각각을 생성하는 것은:
    상기 에이전트 요청들의 대응하는 에이전트 요청에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 입력을 생성하는 것, 그리고
    상기 대응하는 에이전트 요청과 연관되어 저장된 상기 응답들에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 출력을 생성하는 것을 포함하며; 및
    상기 트레이닝 인스턴스들에 기초하여 상기 기계 학습 모델을 트레이닝하는 것을 포함하며;
    상기 에이전트 선택 모델을 생성하는 단계에 후속하여:
    상기 사용자와 상기 자동화된 어시스턴트 사이의 대화의 일부로서 자동화된 어시스턴트를 향하는 사용자의 후속적 자연어 입력을 수신하는 단계;
    상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 특정한 에이전트를 선택하는 단계, 상기 특정한 에이전트는 상기 사용가능한 에이전트들 중 하나이며, 상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 특정한 에이전트를 선택하는 단계는:
    상기 기계 학습 모델에 대한 입력으로서, 상기 후속적 자연어 입력에 기초하는 입력 구성들을 적용하는 것;
    상기 입력에 기초하여 상기 기계 학습 모델을 통해 상기 특정한 에이전트에 대한 값을 포함하는 출력을 생성하는 것; 및
    상기 특정한 에이전트에 대한 상기 값에 기초하여 상기 특정한 에이전트를 선택하는 것을 포함하며;
    상기 후속적 자연어 입력을 수신하는 단계에 응답하여 그리고 상기 특정한 에이전트를 선택하는 단계에 응답하여:
    하나 이상의 어플리케이션 프로그래밍 인터페이스들을 통해, 상기 선택된 특정한 에이전트에 대한 호출 요청을 전송하는 단계를 포함하며, 상기 호출 요청은 상기 특정한 에이전트를 호출하고 그리고 상기 특정한 에이전트로 하여금 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해 상기 사용자에게 제시하기 위한 특정한 응답형 컨텐츠를 생성하게 하며,
    상기 후속적 자연어 입력을 수신하는 단계에 응답하여, 상기 호출 요청은 상기 선택된 특정한 에이전트에게만 전송되는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 복수의 자연어 입력 인스턴스들 중 주어진 자연어 입력 인스턴스에 대해:
    상기 응답들의 제1 서브셋은 응답형 컨텐츠를 생성하기 위한 능력을 각각 표시하고 그리고 상기 응답들의 제2 서브셋은 응답형 컨텐츠를 생성하기 위한 무능력을 각각 표시하는 것을 특징으로 하는 방법.
  3. 청구항 2에 있어서,
    상기 제2 서브셋의 상기 응답들은 에러를 표시하는 것 또는 임계치를 만족하지 못하는 신뢰도를 표시하는 것에 기초하여 무능력을 표시하는 것을 특징으로 하는 방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 청구항 1에 있어서,
    상기 특정한 에이전트를 선택하는 단계는 하나 이상의 컨텍스트적 값들에 더 기초하는 것을 특징으로 하는 방법.
  8. 청구항 7에 있어서,
    상기 하나 이상의 컨텍스트적 값들에 기초하여 상기 특정한 에이전트를 선택하는 것은 상기 하나 이상의 컨텍스트적 값들을 추가적 입력으로서 상기 기계 학습 모델에 적용하는 것을 포함하는 것을 특징으로 하는 방법.
  9. 청구항 1에 있어서,
    상기 복수의 자연어 입력 인스턴스들이 임의의 에이전트를 특정하지 못함을 결정함에 기초하여, 상기 에이전트 요청들을 생성하는데 사용되는, 상기 복수의 자연어 입력 인스턴스들을 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 청구항 1에 있어서,
    상기 복수의 자연어 입력 인스턴스들 중 주어진 자연어 입력 인스턴스에 대해:
    상기 세트의 상기 다수의 에이전트들 중 주어진 에이전트를 선택하기 위해 상기 에이전트 요청에 대한 상기 응답들을 사용하는 단계; 및
    선택된 호출 요청을 상기 선택된 주어진 에이전트에 전송하는 단계를 더 포함하며, 상기 선택된 호출 요청은 상기 주어진 자연어 입력 인스턴스에 기초하는 것을 특징으로 하는 방법.
  11. 청구항 1에 있어서,
    상기 다수의 에이전트들의 세트는 상기 자연어 입력 인스턴스에서 표현된 의도 파라미터에 대한 값과 각각 연관되는 상기 다수의 에이전트들의 세트에 기초하여 상기 사용가능한 에이전트들의 코퍼스로부터 선택되는 것을 특징으로 하는 방법.
  12. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    사람-대-자동화된 어시스턴트 대화 동안의 사용자 인터페이스 입력에 기초하여 생성된 복수의 자연어 입력 인스턴스들 각각에 대해:
    상기 자연어 입력 인스턴스에 기초하여 에이전트 요청을 생성하는 단계;
    상기 에이전트 요청에 대해, 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들의 세트를 선택하는 단계;
    상기 에이전트 요청을 상기 세트의 상기 다수의 에이전트들 각각에 전송하는 단계;
    상기 전송하는 단계에 응답하여 상기 다수의 에이전트들 중 적어도 하나의 서브셋으로부터, 상기 에이전트 요청에 대한 대응하는 응답을 수신하는 단계;
    상기 응답들 각각으로부터, 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위해 상기 응답을 제공하는 에이전트의 상대적 능력을 결정하는 단계; 및
    하나 이상의 컴퓨터 판독가능 매체에, 상기 에이전트 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나에 상기 에이전트 요청의 연관을 저장하는 단계;
    상기 에이전트 요청들과 상기 에이전트 요청들에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 사이의 상기 저장된 연관들에 기초하여 에이전트 선택 모델을 생성하는 단계, 상기 에이전트 선택 모델은 기계 학습 모델이며, 상기 기계 학습 모델을 생성하는 것은:
    상기 에이전트 요청들 및 상기 에이전트 요청들에 대해 응답할 수 있을 것을 결정된 상기 에이전트들에 기초하여 복수의 트레이닝 인스턴스들을 생성하는 것, 복수의 상기 트레이닝 인스턴스들 각각을 생성하는 것은:
    상기 에이전트 요청들의 대응하는 에이전트 요청에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 입력을 생성하는 것, 그리고
    상기 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나에 기초하여 상기 트레이닝 인스턴스의 트레이닝 인스턴스 출력을 생성하는 것을 포함하며, 및
    상기 트레이닝 인스턴스들에 기초하여 상기 기계 학습 모델을 트레이닝하는 것을 포함하며;
    상기 에이전트 선택 모델을 생성하는 단계에 후속하여:
    상기 사용자와 상기 자동화된 어시스턴트 사이의 대화의 일부로서 자동화된 어시스턴트를 향하는 사용자의 후속적 자연어 입력을 수신하는 단계;
    상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 특정한 에이전트를 선택하는 단계, 상기 특정한 에이전트는 상기 사용가능한 에이전트들 중 하나이며, 상기 후속적 자연어 입력 및 상기 에이전트 선택 모델에 기초하여 상기 특정한 에이전트를 선택하는 단계는:
    상기 기계 학습 모델에 대한 입력으로서, 상기 후속적 자연어 입력에 기초하는 입력 구성들을 적용하는 것,
    상기 입력에 기초하여 상기 기계 학습 모델을 통해 상기 특정한 에이전트에 대한 값을 포함하는 출력을 생성하는 것, 및
    상기 특정한 에이전트에 대한 상기 값에 기초하여 상기 특정한 에이전트를 선택하는 것을 포함하며;
    상기 특정한 에이전트를 선택하는 단계에 응답하여:
    상기 선택된 특정한 에이전트에 대한 호출 요청을 전송하는 단계를 포함하며, 상기 호출 요청은 상기 특정한 에이전트를 호출하고 그리고 상기 특정한 에이전트로 하여금 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해 상기 사용자에게 제시하기 위한 특정한 응답형 컨텐츠를 생성하게 하는 것을 특징으로 하는 방법.
  13. 청구항 12에 있어서,
    상기 특정한 에이전트를 선택하는 단계는 상기 사용자에게 상기 사용자가 상기 특정한 에이전트와 상기 사용가능한 에이전트들 중 하나 이상의 다른 에이전트들 사이에서 선택할 것을 명시적으로 요구하는 출력을 제공하지 않고 발생하는 것을 특징으로 하는 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 하나 이상의 프로세서들에 의해 구현되는 방법으로서,
    사람-대-자동화된 어시스턴트 대화 동안의 사용자 인터페이스 입력에 기초하여 생성된 자연어 입력 인스턴스를 수신하는 단계;
    상기 자연어 입력 인스턴스에 응답하여 임의의 에이전트를 호출하기 전에:
    상기 자연어 입력 인스턴스에 기초하여 에이전트 요청을 생성하는 단계;
    상기 에이전트 요청에 대해, 사용가능한 에이전트들의 코퍼스(corpus)로부터 다수의 에이전트들의 세트를 선택하는 단계;
    상기 에이전트 요청을 상기 세트의 상기 다수의 에이전트들 각각에 전송하는 단계;
    상기 전송하는 단계에 응답하여 상기 다수의 에이전트들 중 적어도 하나의 서브셋으로부터, 상기 에이전트 요청에 대한 대응하는 응답을 수신하는 단계;
    상기 응답들 각각으로부터, 상기 에이전트 요청에 응답하여 응답형 컨텐츠를 생성하기 위해 상기 응답을 제공하는 에이전트의 상대적 능력을 결정하는 단계; 및
    상기 응답들 중 적어도 하나에 기초하여 상기 다수의 에이전트들 중 특정한 에이전트를 선택하는 단계;
    상기 자연어 입력에 응답하여 그리고 상기 특정한 에이전트를 선택하는 단계에 기초하여:
    상기 특정한 에이전트를 호출하는 단계를 포함하며, 상기 특정한 에이전트를 호출하는 것은 상기 특정한 에이전트에 의해 생성된 응답형 컨텐츠가 하나 이상의 사용자 인터페이스 출력 디바이스들을 통해 제시하기 위해 제공되도록 하며,
    상기 선택된 특정한 에이전트만이 상기 자연어 입력을 수신함에 응답하여 호출되며;
    하나 이상의 컴퓨터 판독가능 매체에, 상기 에이전트 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나에 상기 에이전트 요청의 연관을 저장하는 단계;
    상기 에이전트 요청에 대해 응답할 수 있을 것으로 결정된 상기 에이전트들 중 적어도 하나에 대한 상기 에이전트 요청의 저장된 연관에 기초하여 트레이닝 인스턴스를 생성하는 단계;
    상기 트레이닝 인스턴스에 기초하여 에이전트 선택 모델을 트레이닝하는 단계, 상기 에이전트 선택 모델을 기계 학습 모델이며;
    상기 트레이닝 인스턴스에 기초하여 상기 에이전트 선택 모델을 트레이닝하는 단계에 후속하여:
    추가적 사람-대-자동화된 어시스턴트 대화에서 추가적 자연어 입력을 수신하는 단계,
    상기 추가적 자연어 입력에 기초하는 입력 구성들을 상기 기계 학습 모델에 대한 입력으로서 적용하는 단계,
    상기 입력에 기초하여 상기 기계 학습 모델을 통해, 상기 다수의 에이전트들 중 추가적 에이전트에 대한 값을 포함하는 출력을 생성하는 단계,
    상기 값에 기초하여 상기 추가적 에이전트를 선택하는 단계, 및
    상기 추가적 자연어 입력에 응답하여 그리고 상기 추가적 에이전트를 선택하는 단계에 기초하여:
    추가적 호출 요청을 상기 추가적 에이전트에 전송하는 단계를 더 포함하며,
    상기 추가적 호출 요청은 상기 추가적 에이전트를 호출하며, 그리고
    상기 추가적 자연어 입력을 수신하는 단계에 응답하여, 상기 호출 요청은 상기 선택된 추가적 에이전트에게만 전송되는 것을 특징으로 하는 방법.
  18. 삭제
  19. 삭제
  20. 청구항 17에 있어서,
    상기 특정한 에이전트를 선택하는 단계는:
    상기 대화에서 관련된 사용자에 의한 상기 특정한 에이전트와의 다수의 인터렉션들;
    상기 사용자에 의한 상기 특정한 에이전트와의 인터렉션의 최신성; 또는
    사용자들의 집단 가운데에서 상기 특정한 에이전트의 랭킹 또는 인기도에 더 기초하는 것을 특징으로 하는 방법.
KR1020187033048A 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출 KR102178738B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207032178A KR102297394B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662323868P 2016-04-18 2016-04-18
US62/323,868 2016-04-18
US15/490,060 2017-04-18
US15/490,060 US9990591B2 (en) 2016-04-18 2017-04-18 Automated assistant invocation of appropriate agent
PCT/US2017/028110 WO2017184587A1 (en) 2016-04-18 2017-04-18 Automated assistant invocation of appropriate agent

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207032178A Division KR102297394B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출

Publications (2)

Publication Number Publication Date
KR20180134994A KR20180134994A (ko) 2018-12-19
KR102178738B1 true KR102178738B1 (ko) 2020-11-13

Family

ID=60038930

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020217027561A KR102494643B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출
KR1020207032178A KR102297394B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출
KR1020187033048A KR102178738B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020217027561A KR102494643B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출
KR1020207032178A KR102297394B1 (ko) 2016-04-18 2017-04-18 적절한 에이전트의 자동화된 어시스턴트 호출

Country Status (6)

Country Link
US (3) US9990591B2 (ko)
EP (4) EP3594814B1 (ko)
JP (4) JP6686226B2 (ko)
KR (3) KR102494643B1 (ko)
CN (2) CN109074292B (ko)
WO (1) WO2017184587A1 (ko)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD822716S1 (en) 2016-05-13 2018-07-10 Google Llc Voice interface device
KR102389313B1 (ko) 2015-01-16 2022-04-21 삼성전자주식회사 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스
WO2017141502A1 (ja) * 2016-02-18 2017-08-24 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US10509626B2 (en) 2016-02-22 2019-12-17 Sonos, Inc Handling of loss of pairing between networked devices
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US9772817B2 (en) 2016-02-22 2017-09-26 Sonos, Inc. Room-corrected voice detection
JP2019523918A (ja) 2016-05-10 2019-08-29 グーグル エルエルシー デバイス上の音声アシスタントの実装
US10402450B2 (en) 2016-05-13 2019-09-03 Google Llc Personalized and contextualized audio briefing
US10134399B2 (en) 2016-07-15 2018-11-20 Sonos, Inc. Contextualization of voice inputs
US10115400B2 (en) 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US9942678B1 (en) 2016-09-27 2018-04-10 Sonos, Inc. Audio playback settings for voice interaction
GB2554815B (en) 2016-10-03 2021-03-31 Google Llc Voice-activated electronic device assembly with separable base
US10448520B2 (en) 2016-10-03 2019-10-15 Google Llc Voice-activated electronic device assembly with separable base
US10535966B2 (en) 2016-10-03 2020-01-14 Google Llc Planar electrical connector for an electronic device
US10361975B2 (en) * 2016-10-10 2019-07-23 Microsoft Technology Licensing, Llc Messaging bot selection in multi-bot chat sessions
US10181323B2 (en) 2016-10-19 2019-01-15 Sonos, Inc. Arbitration-based voice recognition
WO2018085760A1 (en) 2016-11-04 2018-05-11 Semantic Machines, Inc. Data collection for a new conversational dialogue system
US10216832B2 (en) * 2016-12-19 2019-02-26 Interactions Llc Underspecification of intents in a natural language processing system
WO2018148441A1 (en) 2017-02-08 2018-08-16 Semantic Machines, Inc. Natural language content generator
US11069340B2 (en) 2017-02-23 2021-07-20 Microsoft Technology Licensing, Llc Flexible and expandable dialogue system
WO2018156978A1 (en) 2017-02-23 2018-08-30 Semantic Machines, Inc. Expandable dialogue system
US10762892B2 (en) * 2017-02-23 2020-09-01 Semantic Machines, Inc. Rapid deployment of dialogue system
WO2018212767A1 (en) * 2017-05-16 2018-11-22 Visa International Service Association Dynamic claims submission system
US20190019077A1 (en) * 2017-07-17 2019-01-17 Cisco Technology, Inc. Automatic configuration of cognitive assistant
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
US11132499B2 (en) 2017-08-28 2021-09-28 Microsoft Technology Licensing, Llc Robust expandable dialogue system
US10048930B1 (en) 2017-09-08 2018-08-14 Sonos, Inc. Dynamic computation of system response volume
JP6972806B2 (ja) * 2017-09-11 2021-11-24 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び制御方法
US10446165B2 (en) 2017-09-27 2019-10-15 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US10621981B2 (en) 2017-09-28 2020-04-14 Sonos, Inc. Tone interference cancellation
US10482868B2 (en) 2017-09-28 2019-11-19 Sonos, Inc. Multi-channel acoustic echo cancellation
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
US10546584B2 (en) * 2017-10-29 2020-01-28 International Business Machines Corporation Creating modular conversations using implicit routing
US11010656B2 (en) 2017-10-30 2021-05-18 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
JP2019086903A (ja) * 2017-11-02 2019-06-06 東芝映像ソリューション株式会社 音声対話端末、および音声対話端末制御方法
US10572801B2 (en) 2017-11-22 2020-02-25 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US11348576B1 (en) * 2017-12-06 2022-05-31 Amazon Technologies, Inc. Universal and user-specific command processing
US10878198B2 (en) * 2018-01-04 2020-12-29 Facebook, Inc. Intent arbitration for a virtual assistant
US10706842B2 (en) 2018-01-23 2020-07-07 Google Llc Selective adaptation and utilization of noise reduction technique in invocation phrase detection
CN111771189A (zh) 2018-01-24 2020-10-13 谷歌有限责任公司 提供在调解助理应用处的动态自动响应的系统、方法和装置
CN108363745B (zh) * 2018-01-26 2020-06-30 阿里巴巴集团控股有限公司 机器人客服转人工客服的方法和装置
US11343614B2 (en) 2018-01-31 2022-05-24 Sonos, Inc. Device designation of playback and network microphone device arrangements
US10714084B2 (en) * 2018-02-09 2020-07-14 Accenture Global Solutions Limited Artificial intelligence based service implementation
WO2019172878A1 (en) * 2018-03-05 2019-09-12 Google Llc Transitioning between prior dialog contexts with automated assistants
WO2019172868A1 (en) * 2018-03-05 2019-09-12 Clinc, Inc. Systems and method for automatically configuring machine learning models
US11114096B2 (en) 2018-03-08 2021-09-07 Google Llc Mitigation of client device latency in rendering of remotely generated automated assistant content
KR20190117837A (ko) * 2018-03-26 2019-10-17 삼성전자주식회사 사용자 입력에 대한 답변 메시지를 제공하는 디바이스 및 방법
US10303978B1 (en) 2018-03-26 2019-05-28 Clinc, Inc. Systems and methods for intelligently curating machine learning training data and improving machine learning model performance
KR102185369B1 (ko) * 2018-03-28 2020-12-01 삼성전자주식회사 사용자와의 대화를 위한 정보를 생성하는 시스템 및 방법
EP3557439A1 (en) * 2018-04-16 2019-10-23 Tata Consultancy Services Limited Deep learning techniques based multi-purpose conversational agents for processing natural language queries
US10803860B2 (en) * 2018-04-19 2020-10-13 Google Llc Dependency graph conversation modeling for use in conducting human-to-computer dialog sessions with a computer-implemented automated assistant
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US10978056B1 (en) 2018-04-20 2021-04-13 Facebook, Inc. Grammaticality classification for natural language generation in assistant systems
US11115410B1 (en) 2018-04-20 2021-09-07 Facebook, Inc. Secure authentication for assistant systems
US10782986B2 (en) 2018-04-20 2020-09-22 Facebook, Inc. Assisting users with personalized and contextual communication content
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US10679622B2 (en) 2018-05-01 2020-06-09 Google Llc Dependency graph generation in a networked system
US10878279B2 (en) 2018-05-04 2020-12-29 Google Llc Generating and/or adapting automated assistant content according to a distance between user(s) and an automated assistant interface
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US11238864B2 (en) * 2018-06-03 2022-02-01 Google Llc Selectively generating expanded responses that guide continuance of a human-to-computer dialog
EP3794473A1 (en) * 2018-08-06 2021-03-24 Google LLC Captcha automated assistant
US20240095544A1 (en) * 2018-08-07 2024-03-21 Meta Platforms, Inc. Augmenting Conversational Response with Volatility Information for Assistant Systems
US10896295B1 (en) 2018-08-21 2021-01-19 Facebook, Inc. Providing additional information for identified named-entities for assistant systems
US10949616B1 (en) 2018-08-21 2021-03-16 Facebook, Inc. Automatically detecting and storing entity information for assistant systems
WO2020040753A1 (en) * 2018-08-21 2020-02-27 Google Llc Automated assistant invocation of second interactive module using supplemental data provided by first interactive module
KR20200024511A (ko) * 2018-08-28 2020-03-09 삼성전자주식회사 대화 에이전트의 동작 방법 및 그 장치
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US10587430B1 (en) 2018-09-14 2020-03-10 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
CN109547320B (zh) * 2018-09-29 2022-08-30 创新先进技术有限公司 社交方法、装置及设备
SG11202102696TA (en) * 2018-10-15 2021-04-29 Liveperson Inc Dynamic endpoint communication channels
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load
US20190074013A1 (en) * 2018-11-02 2019-03-07 Intel Corporation Method, device and system to facilitate communication between voice assistants
EP3654249A1 (en) 2018-11-15 2020-05-20 Snips Dilated convolutions and gating for efficient keyword spotting
US11279376B2 (en) 2018-11-30 2022-03-22 Lg Electronics Inc. Vehicle control device and vehicle control method
US10839167B2 (en) * 2018-12-04 2020-11-17 Verizon Patent And Licensing Inc. Systems and methods for dynamically expanding natural language processing agent capacity
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
EP3893087A4 (en) * 2018-12-07 2022-01-26 Sony Group Corporation RESPONSE PROCESSING DEVICE, RESPONSE PROCESSING METHOD AND RESPONSE PROCESSING PROGRAM
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
WO2020123109A1 (en) 2018-12-13 2020-06-18 Clinc, Inc Systems and methods for automatically configuring training data for training machine learning models of a machine learning-based dialogue system
DE112019006677T5 (de) * 2019-01-16 2021-11-04 Sony Group Corporation Antwortverarbeitungsvorrichtung und Antwortverarbeitungsverfahren
EP3912098A1 (en) * 2019-01-17 2021-11-24 Koninklijke Philips N.V. A system for multi-perspective discourse within a dialog
JP2020119412A (ja) * 2019-01-28 2020-08-06 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US11281867B2 (en) * 2019-02-03 2022-03-22 International Business Machines Corporation Performing multi-objective tasks via primal networks trained with dual networks
US10867604B2 (en) 2019-02-08 2020-12-15 Sonos, Inc. Devices, systems, and methods for distributed voice processing
CN114041283A (zh) * 2019-02-20 2022-02-11 谷歌有限责任公司 利用事件前和事件后输入流来接洽自动化助理
EP3928478A1 (en) * 2019-02-22 2021-12-29 Liveperson, Inc. Dynamic text message processing implementing endpoint communication channel selection
JP7250946B2 (ja) * 2019-02-25 2023-04-03 ライブパーソン, インコーポレイテッド インテント駆動型コンタクトセンター
US11651196B2 (en) 2019-02-26 2023-05-16 Google Llc Reinforcement learning techniques for selecting a software policy network and autonomously controlling a corresponding software client based on selected policy network
EP3724874A1 (en) 2019-03-01 2020-10-21 Google LLC Dynamically adapting assistant responses
JP2020144274A (ja) * 2019-03-07 2020-09-10 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
JP7280066B2 (ja) * 2019-03-07 2023-05-23 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
JP7280074B2 (ja) * 2019-03-19 2023-05-23 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
US20200302331A1 (en) * 2019-03-20 2020-09-24 International Business Machines Corporation Intelligent problem solving using visual input
JP7274901B2 (ja) * 2019-03-25 2023-05-17 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
KR102213631B1 (ko) * 2019-04-01 2021-02-05 엘지전자 주식회사 차량용 사용자 인터페이스 장치
US20200349940A1 (en) * 2019-05-02 2020-11-05 Samsung Electronics Co., Ltd. Server for determining target device based on speech input of user and controlling target device, and operation method of the server
WO2020222539A1 (en) 2019-05-02 2020-11-05 Samsung Electronics Co., Ltd. Hub device, multi-device system including the hub device and plurality of devices, and method of operating the same
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
WO2020226617A1 (en) * 2019-05-06 2020-11-12 Google Llc Invoking functions of agents via digital assistant applications using address templates
CN110297702B (zh) * 2019-05-27 2021-06-18 北京蓦然认知科技有限公司 一种多任务并行处理方法和装置
CN112052313A (zh) * 2019-06-06 2020-12-08 北京三星通信技术研究有限公司 与智能应答系统交互的方法及设备
US10586540B1 (en) * 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US10629191B1 (en) 2019-06-16 2020-04-21 Linc Global, Inc. Methods and systems for deploying and managing scalable multi-service virtual assistant platform
US11501753B2 (en) 2019-06-26 2022-11-15 Samsung Electronics Co., Ltd. System and method for automating natural language understanding (NLU) in skill development
US11875231B2 (en) 2019-06-26 2024-01-16 Samsung Electronics Co., Ltd. System and method for complex task machine learning
US11442992B1 (en) 2019-06-28 2022-09-13 Meta Platforms Technologies, Llc Conversational reasoning with knowledge graph paths for assistant systems
US11657094B2 (en) 2019-06-28 2023-05-23 Meta Platforms Technologies, Llc Memory grounded conversational reasoning and question answering for assistant systems
US11211049B2 (en) * 2019-07-03 2021-12-28 International Business Machines Corporation Program dialog by example
US11468246B2 (en) * 2019-07-22 2022-10-11 Capital One Services, Llc Multi-turn dialogue response generation with template generation
US10871943B1 (en) 2019-07-31 2020-12-22 Sonos, Inc. Noise classification for event detection
CN110502368B (zh) * 2019-08-14 2022-07-26 出门问问(武汉)信息科技有限公司 一种对话容错方法、中控设备、系统以及可读存储介质
CN110503954B (zh) * 2019-08-29 2021-12-21 百度在线网络技术(北京)有限公司 语音技能启动方法、装置、设备及存储介质
KR20210026962A (ko) 2019-09-02 2021-03-10 삼성전자주식회사 보이스 어시스턴트 서비스를 제공하는 장치 및 방법
US20220293099A1 (en) * 2019-09-27 2022-09-15 Lg Electronics Inc. Display device and artificial intelligence system
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11861674B1 (en) 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
EP4022431A1 (en) * 2019-10-29 2022-07-06 Google LLC Automated assistant architecture for preserving privacy of application content
US11159457B2 (en) * 2019-11-12 2021-10-26 International Business Machines Corporation Chatbot orchestration
KR20210066651A (ko) 2019-11-28 2021-06-07 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
CN111190715B (zh) * 2019-12-31 2023-05-12 杭州涂鸦信息技术有限公司 产品服务的分发调度方法和系统、可读存储介质及计算机
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
CA3170012A1 (en) * 2020-02-07 2021-08-12 Royal Bank Of Canada System and method for conversational middleware platform
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot
KR102449948B1 (ko) * 2020-02-12 2022-10-05 한국과학기술원 지능형 에이전트에서 이종의 멘탈 모델에 기반한 대화형 메시지 제공 방법 및 그 시스템
US11562744B1 (en) 2020-02-13 2023-01-24 Meta Platforms Technologies, Llc Stylizing text-to-speech (TTS) voice response for assistant systems
US11159767B1 (en) 2020-04-07 2021-10-26 Facebook Technologies, Llc Proactive in-call content recommendations for assistant systems
JP2021182190A (ja) * 2020-05-18 2021-11-25 トヨタ自動車株式会社 エージェント制御装置、エージェント制御方法及びエージェント制御プログラム
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11658835B2 (en) 2020-06-29 2023-05-23 Meta Platforms, Inc. Using a single request for multi-person calling in assistant systems
CN111859984B (zh) * 2020-07-23 2023-02-14 中国平安人寿保险股份有限公司 意图挖掘方法、装置、设备及存储介质
CN111984355A (zh) * 2020-08-20 2020-11-24 第四范式(北京)技术有限公司 实现人机多轮对话的方法和装置
KR102425276B1 (ko) * 2020-08-24 2022-07-26 에스케이플래닛 주식회사 챗봇 서비스 제공 방법 및 장치
CN116457874A (zh) * 2020-10-07 2023-07-18 三星电子株式会社 用于理解自然语言的电子装置和参数获取方法
US11984123B2 (en) 2020-11-12 2024-05-14 Sonos, Inc. Network device interaction by range
KR102568010B1 (ko) * 2020-11-20 2023-08-22 (주)한국플랫폼서비스기술 쿼리 기반 딥러닝 추론 시스템을 이용한 공작 기계 예지 보전 시스템 및 그 방법
US11568870B2 (en) 2020-12-02 2023-01-31 Google Llc Automated assistant for facilitating communications through dissimilar messaging features of different applications
US11804211B2 (en) * 2020-12-04 2023-10-31 Google Llc Example-based voice bot development techniques
EP4047599A4 (en) * 2020-12-23 2022-12-21 Samsung Electronics Co., Ltd. METHOD FOR PROVIDING VOICE-BASED CONTENT AND ASSOCIATED ELECTRONIC DEVICE
US11563706B2 (en) 2020-12-29 2023-01-24 Meta Platforms, Inc. Generating context-aware rendering of media contents for assistant systems
US11809480B1 (en) 2020-12-31 2023-11-07 Meta Platforms, Inc. Generating dynamic knowledge graph of media contents for assistant systems
DE112021005683T5 (de) * 2021-01-05 2023-10-19 LG Electronics Inc. Anzeigevorrichtung
US11902222B2 (en) * 2021-02-08 2024-02-13 Google Llc Updating trained voice bot(s) utilizing example-based voice bot development techniques
US11115353B1 (en) * 2021-03-09 2021-09-07 Drift.com, Inc. Conversational bot interaction with utterance ranking
US11861315B2 (en) 2021-04-21 2024-01-02 Meta Platforms, Inc. Continuous learning for natural-language understanding models for assistant systems
US11856038B2 (en) 2021-05-27 2023-12-26 International Business Machines Corporation Cognitively learning to generate scripts that simulate live-agent actions and responses in synchronous conferencing
US11978453B2 (en) * 2021-06-14 2024-05-07 Amazon Technologies, Inc. Natural language processing routing
US11948580B2 (en) 2021-08-30 2024-04-02 Google Llc Collaborative ranking of interpretations of spoken utterances
US20230113607A1 (en) * 2021-09-29 2023-04-13 Intuit Inc. Automated search and presentation computing system
WO2023086229A1 (en) * 2021-11-10 2023-05-19 Google Llc Providing related queries to a secondary automated assistant based on past interactions
US11972764B2 (en) 2021-11-10 2024-04-30 Google Llc Providing related queries to a secondary automated assistant based on past interactions
US11922938B1 (en) * 2021-11-22 2024-03-05 Amazon Technologies, Inc. Access to multiple virtual assistants
US20230169072A1 (en) * 2021-11-30 2023-06-01 Sap Se Augmented query validation and realization
US20230186909A1 (en) * 2021-12-13 2023-06-15 Google Llc Selecting between multiple automated assistants based on invocation properties
WO2023113877A1 (en) * 2021-12-13 2023-06-22 Google Llc Selecting between multiple automated assistants based on invocation properties
KR20230126109A (ko) * 2022-02-22 2023-08-29 삼성전자주식회사 디스플레이 장치 및 그 동작 방법
US11983329B1 (en) 2022-12-05 2024-05-14 Meta Platforms, Inc. Detecting head gestures using inertial measurement unit signals

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156629A1 (en) * 1999-10-12 2002-10-24 International Business Machines Corporation Bi-directional natural language system for interfacing with multiple back-end applications
WO2011088053A2 (en) 2010-01-18 2011-07-21 Apple Inc. Intelligent automated assistant
US20140081633A1 (en) 2012-09-19 2014-03-20 Apple Inc. Voice-Based Media Searching

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144989A (en) * 1998-06-15 2000-11-07 Dejima, Inc. Adaptive agent-oriented software architecture
CN1313972A (zh) * 1998-08-24 2001-09-19 Bcl计算机有限公司 自适应的自然语言接口
US7313534B2 (en) * 2001-01-22 2007-12-25 W.W. Grainger, Inc. System and method for predictive maintenance and service parts fulfillment in a supply chain
US7243072B2 (en) * 2003-06-27 2007-07-10 Motorola, Inc. Providing assistance to a subscriber device over a network
US7562009B1 (en) 2005-03-23 2009-07-14 Basis Technology Corporation Linguistic processing platform, architecture and methods
US20070208730A1 (en) * 2006-03-02 2007-09-06 Microsoft Corporation Mining web search user behavior to enhance web search relevance
JP2007323233A (ja) * 2006-05-31 2007-12-13 National Institute Of Information & Communication Technology 対話ロボットを用いた理由説明サービス処理方法およびその装置,およびそのプログラム
US20080107256A1 (en) * 2006-11-08 2008-05-08 International Business Machines Corporation Virtual contact center
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
KR101980173B1 (ko) * 2012-03-16 2019-05-20 삼성전자주식회사 서드 파티 테스크 공급자들의 서비스 제공을 대행하는 협력적 퍼스널 어시스턴트 시스템 및 그에 따른 방법
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
KR20140052155A (ko) * 2012-10-19 2014-05-07 삼성전자주식회사 디스플레이 장치, 디스플레이 장치 제어 방법 및 디스플레이 장치의 제어를 위한 정보처리장치
US10019260B2 (en) * 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156629A1 (en) * 1999-10-12 2002-10-24 International Business Machines Corporation Bi-directional natural language system for interfacing with multiple back-end applications
WO2011088053A2 (en) 2010-01-18 2011-07-21 Apple Inc. Intelligent automated assistant
US20140081633A1 (en) 2012-09-19 2014-03-20 Apple Inc. Voice-Based Media Searching

Also Published As

Publication number Publication date
JP7063932B2 (ja) 2022-05-09
CN109074292A (zh) 2018-12-21
US9990591B2 (en) 2018-06-05
EP3594814B1 (en) 2022-04-06
JP2019520661A (ja) 2019-07-18
CN114357128A (zh) 2022-04-15
KR20210111343A (ko) 2021-09-10
JP7362827B2 (ja) 2023-10-17
WO2017184587A1 (en) 2017-10-26
JP2020115371A (ja) 2020-07-30
EP3594814A1 (en) 2020-01-15
KR102494643B1 (ko) 2023-02-06
KR102297394B1 (ko) 2021-09-02
US20180232664A1 (en) 2018-08-16
KR20180134994A (ko) 2018-12-19
EP3430514B1 (en) 2019-10-09
CN109074292B (zh) 2021-12-14
JP2024001127A (ja) 2024-01-09
JP2022105507A (ja) 2022-07-14
JP6686226B2 (ja) 2020-04-22
KR20200129182A (ko) 2020-11-17
EP4030295A1 (en) 2022-07-20
EP3430514A1 (en) 2019-01-23
EP4365784A2 (en) 2024-05-08
US20170300831A1 (en) 2017-10-19
US20190019112A1 (en) 2019-01-17

Similar Documents

Publication Publication Date Title
KR102178738B1 (ko) 적절한 에이전트의 자동화된 어시스턴트 호출
US11887595B2 (en) User-programmable automated assistant
KR102475719B1 (ko) 서드 파티 에이전트를 사용하기 위한 호출 요청 생성 및 전송
US11727220B2 (en) Transitioning between prior dialog contexts with automated assistants

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant