KR102364400B1 - 다수의 코퍼스들로부터 응답 정보 획득 - Google Patents

다수의 코퍼스들로부터 응답 정보 획득 Download PDF

Info

Publication number
KR102364400B1
KR102364400B1 KR1020197036558A KR20197036558A KR102364400B1 KR 102364400 B1 KR102364400 B1 KR 102364400B1 KR 1020197036558 A KR1020197036558 A KR 1020197036558A KR 20197036558 A KR20197036558 A KR 20197036558A KR 102364400 B1 KR102364400 B1 KR 102364400B1
Authority
KR
South Korea
Prior art keywords
user
corpus
documents
specific
request
Prior art date
Application number
KR1020197036558A
Other languages
English (en)
Other versions
KR20200006107A (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 구글 엘엘씨
Publication of KR20200006107A publication Critical patent/KR20200006107A/ko
Application granted granted Critical
Publication of KR102364400B1 publication Critical patent/KR102364400B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/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
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination

Landscapes

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

Abstract

정보를 대한 다양한 대안적 코퍼스들을 검색하는 자동화된 어시스턴트에 대한 기법이 본 명세서에 기술된다. 다양한 구현예들에서, 방법은 자동화된 어시스턴트에 의해, 제1 클라이언트 디바이스의 입력 컴포넌트를 통해, 자유 형식 입력을 수신하는 단계, 상기 자유 형식 입력은 특정 정보에 대한 요청을 포함하며; 상기 특정 정보에 대한 요청에 대한 후보 응답(들)의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스를 검색하는 단계; 상기 특정 정보에 대한 요청에 대한 후보 응답(들)의 제2 세트를 획득하기 위해 활성 문서(들)의 사용자 특정 코퍼스를 검색하는 단계; 상기 후보 응답들의 제1 및 제2 세트들을 비교하는 단계; 상기 비교에 기초하여, 상기 제1 또는 제2 세트로부터 상기 특정 정보에 대한 요청에 대한 주어진 응답을 선택하는 단계; 및 상기 자동화된 어시스턴트에 의해, 상기 주어진 응답을 표시하는 출력을 제공하는 단계를 포함한다.

Description

다수의 코퍼스들로부터 응답 정보 획득
사람은 본 명세서에서 "자동화된 어시스턴트"("챗봇", "인터랙티브 퍼스널 어시스턴트", "지능형 퍼스널 어시스턴트", "개인 음성 어시스턴트", "대화형 에이전트들"로도 지칭됨)로 지칭되는 인터렉티브 소프트웨어 어플리케이션과의 사람-컴퓨터 간 대화에 참여할 수 있다. 예를 들어, 사람(자동화된 어시스턴트와 인터렉션할 때 "사용자"라고 할 수 있음)은 일부 경우에 텍스트로 변환된 다음 프로세싱될 수 있는 발화된 자연어 입력(즉, 발언, 자유 형식 입력)을 사용하여 및/또는 텍스트(예를 들어, 타이핑된) 자연어 입력을 제공함으로써 명령, 쿼리 및/또는 요청(집합적으로 "쿼리"로 지칭됨)을 제공할 수 있다.
일반적으로, 사용자가 특정 정보에 대한 종래의 자동화된 어시스턴트에게 요청을 발행하는 경우(예를 들어, 질문을 한다면), 종래의 자동화된 어시스턴트는 사용자가 웹브라우저를 사용하여 검색 엔진에 검색을 단순히 발행한 경우와 유사한 기법을 이용할 수 있다. 즉, 문서들의 코퍼스에서 응답 문서들을 검색할 수 있고, 응답 문서는 다양한 신호에 기초하여 랭킹될 수 있고, 최고 순위의 응답 문서들 중 하나 이상으로부터 추출된 정보가 예를 들어, 사용자의 질문에 직접 대답하는 응답 문서의 발췌를 포함하는 정보 박스에 제공될 수 있다. 일부 경우에, 검색 엔진은 한 단계 더 나아가서, 높은 순위가 매겨진 응답 문서들에 포함된 정보에 기초하여 자기 고유의 자연어 응답(예를 들어, 사용자의 질문에 직접 대답하는 문장)을 만들어 낼 수 있다. 어느 쪽이든, 웹브라우저 검색 컨텍스트에서, 응답 문서의 목록이 응답 정보와 함께 제시될 수 있다. 자동화된 어시스턴트 컨텍스트에서, 특히 사용자가 독립형 인터렉티브 스피커와 같은 디스플레이가 없는 디바이스를 사용하여 자동화된 어시스턴트에 참여하는 경우, 응답 정보만이 제공될 수 있다.
일부 자동화된 어시스턴트는 최근에 소비된 컨텐츠/문서 및/또는 사용자와 자동화된 어시스턴트 사이의 인간-대-컴퓨터 대화의 현재 대화 컨텍스트(예를 들어, 최근 사용자 요청 및/또는 최근 자동화된 어시스턴트 답변)에 기초하여, 사용자의 요청을 명확하게 할 수 있다. 사용자가 자동화된 어시스턴트에게 "What is the Capitol of Kentucky?"라는 질문을 한다고 가정한다. 자동화된 어시스턴트는 문서들(예를 들어, 인터넷상의 공개적으로 사용가능한 문서)의 종래(예를 들어, 범용)의 코퍼스로부터 응답 문서들을 검색할 수 있으며, 이러한 응답 문서들의 컨텐츠에 기초하여 "The Capitol of Kentucky is Frankfort."와 같은 응답을 만들어낼 수 있다. 다음으로 사용자가 "How far is that from Louisville?"라고 묻는다고 가정한다. 사용자의 이전 검색 및/또는 자동화된 어시스턴트의 이전 답변에 기초하여, 자동화된 어시스턴트는 "that"이라는 용어를 "Frankfort"로 명확히 하고, 사용자의 두 번째 질문을 예를 들어 "How far is Frankfort from Louisville?"로 재구성할 수 있다. 그 다음, 이 재구성이 문서들의 동일한 기존 코퍼스에 대한 표준 독립형 검색으로 제출될 수 있다.
자동화된 어시스턴트(보다 일반적으로 검색 엔진)는 인간-대-컴퓨터 대화의 대화 컨텍스트에 기초하여 사용자의 후속 요청을 명확하게(즉, 재구성) 할 수 있지만, 상기 재구성된 후속 요청은 여전히 사용자의 이전 요청에 응답하는데 사용되었던 것과 동일한 문서들의 기존 코퍼스로부터 새로운 응답 문서들의 세트를 검색하기 위해 사용된다. 이러한 새로운 응답 문서들은 사용자와 자동화된 어시스턴트 간의 대화의 대화 컨텍스트에 기초하여 랭킹될 수 있지만, 사용자의 후속 요청이 사용자의 이전 요청에 대해 응답을 제공하기 위해 사용되었던 것과 동일한 문서로부터 정보가 추출될 것이라는 보장은 없다. 더욱이, 자동화된 어시스턴트는 현재 사용자가 보고 있거나 사용자가 최근에 소비한 문서 또는 사용자의 현재 컨텍스트와 관련된다고 결정된 문서(예: 현재 위치, 활성 브라우징 세션, 활성 인간 대 컴퓨터 대화 등)와 같이, 사용자에게 보다 즉각적으로 관련성이 있거나 "주제에 관한 것"일 수 있는 문서들의 다른 코퍼스들을 검색하지 않는다.
본 명세서에서는 사용자의 요청에 대한 응답인 정보에 대한 온라인 문서의 종래의 범용 코퍼스들 외부에서 검색하는 자동화된 어시스턴트를 구현하기 위한 기법이 설명된다. 아래에 설명되는 바와 같이, 기법은 자동화된 어시스턴트를 구현하는 하나 이상의 컴퓨팅 디바이스들로/로부터의 입력 및 출력의 수를 감소시킬 수 있다. 이 기법들은 또한 하나 이상의 컴퓨팅 디바이스들 또는 어시스턴트에 의해 제공된 정보에 따라 동작하는 다른 장치들에 의해 소비되는 전력량을 감소시킬 수 있다. 일부 구현예에서, 본 개시의 선택된 양태들로 구성된 자동화된 어시스턴트는 그것의 검색을 하나 이상의 "활성" 문서들의 사용자 특정 코퍼스에 확장 및/또는 제한할 수 있다. "활성" 문서들(예를 들어, html/xml 문서, 비디오, 노래, 프리젠테이션, pdf 문서, 이메일 등)은 클라이언트 디바이스에서 현재 열려 있는(예를 들어, 디스플레이되는) 문서, 자동화된 어시스턴트가 사용자와 자동화된 어시스턴트 사이의 현재 인간 대 컴퓨터 대화 세션 동안 사용자에게 정보를 청각적으로 제공하는 문서, 사용자가 웹브라우저를 동작하는 현재 세션 동안 사용자에게 이전에 제시된 문서(들) 등을 포함할 수 있다. 일부 구현예에서, 휘발성 메모리와 같은 클라이언트 디바이스의 메모리에 로드된 문서는 이것이 필요하지 않더라도 "활성"인 것으로 간주될 수 있다.
추가적으로 또는 대안적으로, 본 개시의 선택된 양태들로 구성된 자동화된 어시스턴트는 그것의 검색을 사용자의 현재 컨텍스트에 기초하여 식별된 하나 이상의 문서들의 컨텍스트 특정 코퍼스에 확장 및/또는 제한할 수 있다. 사용자의 현재 컨텍스트는 클라이언트 디바이스에 의해 생성된 포지션 좌표, 예를 들어 사용자와 현재 관련된 하나 이상의 토픽들을 식별하기 위해 사용될 수 있는 최근 검색 활동 등과 같은 다양한 신호들에 기초하여 결정될 수 있다. 일부 방식이 겹칠 수 있지만, 규칙은 없지만, 컨텍스트 특정 코퍼스의 문서들이 "활성"일 필요가 없기 때문에, 문서들의 컨텍스트 특정 코퍼스는 활성 문서들의 사용자 특정 코퍼스와 상이하다. 일부 실시예들에서, 예를 들어, 사용자 특정 코퍼스들과 컨텍스트 특정 코퍼스들 둘 모두는 예를 들어, 온라인 문서들의 범용 코퍼스들의 보다 통상적인 검색과 함께, 동시에 검색될 수 있다.
일부 구현예에서, 자동화된 어시스턴트는 활성 문서들의 사용자 특정 코퍼스 또는 컨텍스트 특정 코퍼스로부터 획득된 응답 정보를 문서들의 보다 통상적인 코퍼스로부터 획득된 다른 잠재적 응답 정보의 배제에 제공할 수 있다. 추가적으로 또는 대안적으로, 일부 구현예에서, 자동화된 어시스턴트는 문서들의 보다 통상적인 코퍼스로부터 획득된 응답 정보에 대해 사용자/컨텍스트 특정 코퍼스들로부터 획득된 문서들로부터 추출된 응답 정보를 편향시키거나 승격시킬 수 있다.
사용자 특정 코퍼스들의 활성 문서들은 다양한 방식으로 응답 컨텐츠에 대해 자동화된 어시스턴트에 의해 검사될 수 있다. 일부 실시예들에서, 온라인 문서와 연관된 URL(Uniform Resource Locator)과 같은 네트워크 식별자는, 예를 들어, 사용자에 의해 동작되는 클라이언트 디바이스에 의해, (아래에 설명되는 바와 같이 집합적으로 소위 "클라우드"를 형성하는 하나 이상의 컴퓨팅 시스템에서 적어도 부분적으로 구현될 수 있는) 자동화된 어시스턴트에 제공될 수 있다. 자동화된 어시스턴트는 사용자의 요청을 또한 포함하는 (예를 들어, 특별히 맞춤화된) 검색 쿼리의 일부로서 이 네트워크 식별자를 문서들의 통상적인 코퍼스를 검색하기 위한 표준 검색 엔진에 제출할 수 있다. 문서들의 통상적인 코퍼스로부터 응답 컨텐츠를 검색하는 것에 더하여, 네트워크 식별자는 활성 문서를 찾는데 사용될 수 있다. 일부 구현예에서, 활성 문서로부터 추출된 응답 컨텐츠는 보다 통상적인 응답 검색 결과들로부터 추출된 컨텐츠에 비해 편향되거나 승격될 수 있고, 이는 많은 경우에 통상적인 응답 검색 결과는 사용자의 요청의 잠재적 모호성으로 인해 관련성이 제한될 수 있기 때문에 기본적으로 발생할 수 있다. 다른 구현예에서, 검색은 문서들의 통상적인 코퍼스를 배제하고, 활성 문서(들)로 제한될 수 있다.
추가적으로 또는 대안적으로, 일부 구현예에서, 자동화된 어시스턴트는 사용자의 요청이 적절한 응답을 생성하기에 너무 모호하고 요청을 명확하기 위해 사용할 수 있는 다른 신호들이 없는 상황에서만 본 명세서에 기술된 기법들을 이용할 수 있다. 예를 들어, 사용자가 모호하지 않은 요청(예를 들어, "what is the capitol of France?")을 발행하고 응답성이 높은 검색 결과를 반환하면, 자동화된 어시스턴트는 온라인 문서들의 통상적인 범용 코퍼스로부터 응답 정보를 찾을 수 있다. 그러나, 자동화된 어시스턴트가 사용자에게 명확하게 정보를 프롬프트하지 않으면 해결 불가능한 모호한 요청을 발행한다고 가정한다. 일부 구현예에서, 자동화된 어시스턴트는 그러한 프롬프트들을 제공하기 전에, 사용자의 요청에 대한 응답인 정보를 식별하기 위해 컨텍스트 특정 코퍼스에서 활성 문서들 또는 문서들 검사할 수 있다.
일부 구현예들에서, 하나 이상의 프로세서들에 의해 수행되는 방법이 제공되며, 자동화된 어시스턴트에 의해, 사용자에 의해 동작되는 하나 이상의 클라이언트 디바이스들 중 제1 클라이언트 디바이스의 입력 컴포넌트를 통해, 자유 형식 입력을 수신하는 단계, 상기 자유 형식 입력은 특정 정보에 대한 요청을 포함하며; 상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스를 검색하는 단계; 상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제2 세트를 획득하기 위해 활성 문서들의 사용자 특정 코퍼스를 검색하는 단계; 상기 후보 응답들의 제1 및 제2 세트들을 비교하는 단계; 상기 비교에 기초하여, 상기 제1 또는 제2 세트로부터 상기 특정 정보에 대한 요청에 대한 주어진 응답을 선택하는 단계; 및 상기 자동화된 어시스턴트에 의해, 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나 이상을 통해, 상기 주어진 응답을 표시하는 출력을 제공하는 단계를 포함한다.
본 명세서에서 논의된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
다양한 구현예에서, 상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나의 디스플레이 디바이스 상에 현재 디스플레이된 문서를 포함할 수 있다. 다양한 구현예에서, 상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 자동화된 어시스턴트가 상기 사용자와 상기 자동화된 어시스턴트 간의 현재 인간-대-컴퓨터 대화 세션 동안 상기 사용자에게 정보를 청각적으로 제공하는 문서를 포함할 수 있다. 다양한 구현예에서, 상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 사용자가 웹브라우저를 동작하는 현재 세션 동안 상기 사용자에게 이전에 제시된 문서를 포함할 수 있다.
다양한 구현예에서, 상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 엔터티를 설명하는 웹페이지를 포함할 수 있고, 상기 특정 정보에 대한 요청은 상기 엔터티에 관한 특정 정보에 대한 요청을 포함하고, 상기 응답 컨텐츠는 상기 엔터티에 관한 상기 특정 정보에 대한 요청에 대한 응답이다. 다양한 구현예에서, 상기 사용자 특정 코퍼스로부터 획득된 상기 하나 이상의 후보 응답들의 제2 세트는 상기 범용 코퍼스로부터 획득된 상기 하나 이상의 후보 응답들의 제1 세트에 비해 승격될 수 있다. 다양한 구현예에서, 상기 자유 형식 입력에 기초하여, 상기 특정 정보에 대한 요청이 모호하다고 결정하는 단계를 더 포함할 수 있고, 상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 결정에 기초하여 검색된다.
다른 양태에서, 방법은 자동화된 어시스턴트에 의해, 사용자에 의해 동작되는 하나 이상의 클라이언트 디바이스들 중 제1 클라이언트 디바이스의 입력 컴포넌트를 통해, 자유 형식 입력을 수신하는 단계, 상기 자유 형식 입력은 특정 정보에 대한 요청을 포함하며; 상기 제1 클라이언트 디바이스에서 생성된 하나 이상의 신호들에 기초하여, 상기 사용자의 현재 컨텍스트를 결정하는 단계; 상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스를 검색하는 단계; 상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제2 세트를 획득하기 위해 하나 이상의 문서들의 개별 컨텍스트 특정 코퍼스를 검색하는 단계, 상기 컨텍스트 특정 코퍼스는 상기 사용자의 현재 컨텍스트에 기초하여 식별되며; 상기 후보 응답들의 제1 및 제2 세트들을 비교하는 단계; 상기 비교에 기초하여, 상기 제1 또는 제2 세트로부터 상기 특정 정보에 대한 요청에 대한 주어진 응답을 선택하는 단계; 및 상기 자동화된 어시스턴트에 의해, 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나 이상을 통해, 상기 주어진 응답을 표시하는 출력을 제공하는 단계를 포함한다.
추가로, 일부 구현예들은 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은 연관된 메모리에 저장된 명령어들을 실행하도록 동작가능하며, 상기 명령어들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 구성된다. 또한, 일부 구현예들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 하나 이상의 프로세서들에 의해 실행가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.
본 명세서에서 매우 상세히 기술된 상기 개념들 및 추가적 개념들의 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려되어야 한다. 예를 들면, 본 명세서의 끝부분에 나타나는 청구된 발명의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 구현예들이 구현될 수 있는 예시적 환경의 블록도이다.
도 2, 3, 4, 5 및 6은 다양한 구현들에 따라 개시된 기법들이 이용될 수 있는 예들을 도시한다.
도 7은 본 명세서에 개시된 구현예들에 따른 예시적 방법을 도시하는 흐름도이다.
도 8은 컴퓨팅 디바이스의 예시적 아키텍처를 도시한다.
이제 도 1로 돌아가면, 본 명세서에 개시된 기법들이 구현될 수 있는 예시적 환경이 도시된다. 예시적 환경은 하나 이상의 클라이언트 컴퓨팅 디바이스들(106)을 포함한다(명확하고 명료하게 하기 위해 도 1에서 하나만 도시됨). 클라이언트 디바이스(106)는 자동화된 어시스턴트 클라이언트(118)의 인스턴스를 실행할 수 있다. 자연어 프로세서(122)와 같은 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트들(119)은 일반적으로 (110i)에 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스(106)에 통신가능하게 연결된 하나 이상의 컴퓨팅 시스템(집합적으로 "클라우드" 컴퓨팅 시스템으로 통칭)에서 구현될 수 있다.
배경기술에서 언급된 바와 같이, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(119)와의 인터렉션들에 의한 자동화된 어시스턴트 클라이언트(118)의 인스턴스는 사용자의 관점에서 사용자가 인간-대-컴퓨터 대화에 참여할 수 있게 하는 자동화된 어시스턴트(120)의 논리적 인스턴스로 보이는 것을 형성할 수 있다. 이러한 자동화된 어시스턴트(120)의 일 예는 점선으로 둘러싸인 도 1에 도시된다. 따라서, 클라이언트 디바이스(106)상에서 실행되는 자동화된 어시스턴트 클라이언트(118)를 사용하는 각 사용자는 사실상 자동화된 어시스턴트(120)의 자신의 논리적 인스턴스를 사용할 수 있음을 이해해야 한다. 간결하고 간단하게하기 위해, 본 명세서에서 특정한 사용자에게 "서비스하는 것"으로 사용되는 "자동화된 어시스턴트"라는 용어는 사용자에 의해 동작되는 클라이언트 디바이스(106)에서 실행되는 자동화된 어시스턴트 클라이언트(118) 및 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트들(119)(여러 자동화된 어시스턴트 클라이언트들(118) 간에 공유될 수 있음)의 조합을 지칭할 것이다.
클라이언트 디바이스(106)는 예를 들어, 데스크톱 컴퓨터 디바이스, 랩톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일폰 컴퓨팅 디바이스, 사용자의 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템), 단독형 인터렉티브 스피커 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 구비한 사용자의 시계, 컴퓨팅 디바이스를 구비한 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가적 및/또는 대안적 클라이언트 컴퓨팅 디바이스들이 제공될 수 있다.
일부 구현예에서, 주어진 사용자는 집합적으로 컴퓨팅 디바이스들의 조정된 "에코시스템"로부터 복수의 클라이언트 컴퓨팅 디바이스들(106)을 이용하여 자동화된 어시스턴트(120)와 통신할 수 있다. 일부 이러한 구현예에서, 자동화된 어시스턴트(120)는 주어진 사용자, 예를 들어, 자동화된 어시스턴트(120)에 액세스가 "서비스되는" 사용자에 의해 제어되는 사용자 제어 컨텐츠(예를 들어, 리소스, 문서 등)에 대한 향상된 액세스를 부여하는 것을 "서비스"하는 것으로 간주될 수 있다.
클라이언트 컴퓨팅 디바이스(106)는 메시지 교환 클라이언트(107) 및 전술한 자동화된 어시스턴트 클라이언트(118)와 같은 다양한 상이한 애플리케이션을 동작시킬 수 있다. 메시지 교환 클라이언트(107)는 다양한 형태로 제공될 수 있고, 형태는 클라이언트 컴퓨팅 디바이스에 따라 달라질 수 있고 및/또는 다수의 형태가 단일 클라이언트 컴퓨팅 디바이스(106) 상에서 동작될 수 있다. 일부 구현예들에서, 메시지 교환 클라이언트(107)는 단문 메시징 서비스("SMS") 및/또는 멀티미디어 메시징 서비스("MMS") 클라이언트, 온라인 채팅 클라이언트(예를 들어, 인스턴트 메신저, 인터넷 릴레이 채팅, 또는 "IRC" 등), 소셜 네트워크와 연관된 메시징 어플리케이션, 자동화된 어시스턴트(120)과의 대화 전용 개인 어시스턴트 메시징 서비스 등의 형태로 존재할 수 있다. 일부 구현예들에서, 메시지 교환 클라이언트(107)는 웹페이지 또는 웹브라우저(도시되지 않음)에 의해 렌더링된 다른 리소스들 또는 클라이언트 컴퓨팅 디바이스(106)의 다른 애플리케이션을 통해 구현될 수 있다.
본 명세서에서보다 상세하게 설명된 바와 같이, 자동화된 어시스턴트(120)는 클라이언트 디바이스(106)의 사용자 인터페이스 입력 및 출력 디바이스(들)를 통해 하나 이상의 사용자와 인간 대 컴퓨터 대화 세션에 참여한다. 일부 구현예에서, 자동화된 어시스턴트(120)는 클라이언트 디바이스들(106)의 하나 이상의 사용자 인터페이스 입력 디바이스들을 통해 사용자에 의해 제공되는 사용자 인터페이스 입력에 응답하여 사용자와 인간 대 컴퓨터 대화 세션에 참여할 수 있다. 이러한 구현들 중 일부에서, 사용자 인터페이스 입력은 명시적으로 자동화된 어시스턴트(120)에 보내진다. 예를 들어, 메시지 교환 클라이언트(107)는 자동화된 어시스턴트(120)와의 대화 전용 개인 어시스턴트 메시징 서비스일 수 있고, 상기 개인 어시스턴트 메시징 서비스를 통해 제공되는 사용자 인터페이스 입력은 자동화된 어시스턴트(120)에 자동으로 제공될 수 있다. 또한, 예를 들어, 사용자 인터페이스 입력은 자동화된 어시스턴트(120)가 호출되는 것을 나타내는 특정한 사용자 인터페이스 입력에 기초하여 메시지 교환 클라이언트(107)에서 자동화된 어시스턴트(120)에 명시적으로 향해질 수 있다. 예를 들어, 특정한 사용자 인터페이스 입력은 하나 이상의 타이핑된 문자(예를 들어, @AutomatedAssistant), 하드웨어 버튼 및/또는 가상 버튼(예를 들어, 탭, 긴 탭)과의 사용자 인터렉션, 구두 명령(예를 들어, "Hey Automated Assistant") 및/또는 기타 특정한 사용자 인터페이스 입력일 수 있다. 일부 구현예에서, 자동화된 어시스턴트(120)는 사용자 인터페이스 입력이 자동화된 어시스턴트(120)로 명시적으로 향하지 않은 경우에도 사용자 인터페이스 입력에 응답하여 대화 세션에 참여할 수 있다. 예를 들어, 자동화된 어시스턴트(120)는 사용자 인터페이스 입력의 컨텐츠를 검사하고, 사용자 인터페이스 입력에 존재하는 특정 용어에 응답하여 및/또는 다른 큐에 기초하여 대화 세션에 참여할 수 있다.
본 명세서에서 사용되는 "대화 세션"은 사용자와 자동화된 어시스턴트(120) 사이의 하나 이상의 메시지의 논리적으로 자체 포함된 교환을 포함할 수 있다. 자동화된 어시스턴트(120)는 세션들 간의 시간의 경과, 세션들 간의 사용자 컨텍스트의 변화(예를 들어, 위치, 예정된 미팅 전/중/후 등), 사용자와 자동화된 어시스턴트 사이의 대화 이외의 사용자와 클라이언트 디바이스 사이의 하나 이상의 개입 인터렉션들의 검출(예를 들어, 사용자가 잠시 동안 애플리케이션을 전환하고, 사용자는 멀어졌다가 나중에 독립형 음성 활성화 스피커로 돌아옴), 세션들 사이의 클라이언트 디바이스의 잠금/슬립, 자동화된 어시스턴트(120)의 하나 이상의 인스턴스와의 인터페이스에 사용되는 클라이언트 디바이스의 변경 등과 같은 다양한 신호들에 기초하여 사용자와의 다수의 대화 세션들을 구별할 수 있다.
도 1에 도시된 각 컴퓨팅 디바이스는 데이터 및 소프트웨어 어플리케이션의 저장을 위한 하나 이상의 메모리들, 데이터에 액세스하고 어플리케이션을 실행하기 위한 하나 이상의 프로세서 및 네트워크를 통해 통신을 지원하는 다른 컴포넌트들을 포함할 수 있다. 클라이언트 디바이스(106) 및/또는 자동화된 어시스턴트(120)에 의해 수행되는 동작들은 다수의 컴퓨터 시스템들에 걸쳐 분산될 수 있다. 자동화된 어시스턴트(120)는 예를 들면, 네트워크를 통해 서로 연결된 하나 이상의 위치들에서 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램들로서 구현될 수 있다.
위에서 언급된 바와 같이, 다양한 구현예에서, 클라이언트 컴퓨팅 디바이스(106)는 자동화된 어시스턴트 클라이언트(118)를 동작할 수 있다. 다양한 실시예에서, 자동화된 어시스턴트 클라이언트(118)는 대응하는 음성 캡처/텍스트 음성 변환("TTS")/음성 텍스트 변환("STT") 모듈(114)을 포함할 수 있다. 다른 구현예에서, 음성 캡처/TTS/STT 모듈(114)의 하나 이상의 양태들은 자동화된 어시스턴트 클라이언트(118)와 별도로 구현될 수 있다.
음성 캡처/TTS/STT 모듈(114)은 하나 이상의 기능을 수행하도록 구성될 수 있다: 예를 들어, 마이크로폰(도시되지 않음)을 통해 사용자의 음성을 캡처하고; 캡처한 오디오를 텍스트로 변환; 및/또는 텍스트를 음성으로 변환. 예를 들어, 일부 구현예에서, 클라이언트 디바이스(106)는 컴퓨팅 리소스들(예를 들어, 프로세서 사이클들, 메모리, 배터리 등)과 관련하여 상대적으로 제한될 수 있기 때문에, 클라이언트 디바이스(106)에 대해 로컬적인 음성 캡처/TTS/STT 모듈(114)은 한정된 수의 상이한 발화된 문구, 특히 자동화된 어시스턴트(120)를 호출하는 특정한 문구를 텍스트로 변환하도록 구성될 수 있다. 다른 음성 입력은 클라우드 기반 자동화된 어시스턴트 컴포넌트(119)로 송신될 수 있으며, 이는 클라우드 기반 TTS 모듈(116) 및/또는 클라우드 기반 STT 모듈(117)을 포함할 수 있다.
STT 모듈(117)은 음성 캡쳐/TTS/STT 모듈(114)에 의해 캡처된 오디오 데이터를 텍스트(이후 자연어 프로세서(122)에 제공될 수 있음)로 변환하기 위해 클라우드의 사실상 무한한 자원을 활용하도록 구성될 수 있다. TTS 모듈(116)은 텍스트 데이터(예를 들어, 자동화된 어시스턴트(120)에 의해 생성된 자연어 응답)를 컴퓨터 생성 음성 출력으로 변환하기 위해 클라우드의 사실상 무한한 자원을 활용하도록 구성될 수 있다. 일부 구현예에서, TTS 모듈(116)은 컴퓨터 생성된 음성 출력을 클라이언트 디바이스(106)에 제공하여, 예를 들어 하나 이상의 스피커를 사용하여 직접 출력될 수 있다. 다른 구현예에서, 자동화된 어시스턴트(120)에 의해 생성된 텍스트 데이터(예를 들어, 자연어 응답)는 음성 캡처/TTS/STT 모듈(114)에 제공될 수 있고, 음성 캡처/TTS/STT 모듈(114)은 텍스트 데이터를 로컬적으로 출력되는 컴퓨터 생성 음성으로 변환할 수 있다.
자동화된 어시스턴트(120)(및 특히 클라우드 기반 자동화된 어시스턴트 컴포넌트(119))는 자연어 프로세서(122), 전술한 TTS 모듈(116), 전술한 STT 모듈(117), 소위 "코퍼스들 선택 엔진"(138) 및 도 1에 도시되지 않은 기타 컴포넌트를 포함할 수 있다. 일부 구현예들에서, 자동화된 어시스턴트(120)의 엔진들 및/또는 모듈들 중 하나 이상은 생략, 조합될 수 있고 및/또는 자동화된 어시스턴트(120)와 별개인 컴포넌트에서 구현될 수 있다. 예를 들어, 코퍼스들 선택 엔진(138)은 자동화된 어시스턴트(120)와 별도로 구현될 수 있다.
일부 구현예에서, 자동화된 어시스턴트(120)는 자동화된 어시스턴트(120)와의 인간 대 컴퓨터 대화 세션 동안 클라이언트 디바이스(106)의 사용자에 의해 생성된 다양한 입력들에 응답하여 응답 컨텐츠를 생성한다. 자동화된 어시스턴트(120)는 대화 세션의 일부로서 사용자에게 제시하기 위해(예를 들어, 사용자의 클라이언트 디바이스로부터 분리될 때 하나 이상의 네트워크를 통해) 응답 컨텐츠를 제공할 수 있다. 예를 들어, 자동화된 어시스턴트(120)는 클라이언트 디바이스(106)를 통해 제공되는 자유 형식의 자연어 입력에 응답하여 응답 컨텐츠를 생성할 수 있다. 본 명세서에서 사용된 바와 같이, 자유 형식의 입력은 사용자에 의해 진술된 입력이며, 사용자에 의한 선택을 위한 제시된 옵션들의 그룹에 제한되지 않는 입력이다.
자동화된 어시스턴트(120)의 자연어 프로세서(122)는 클라이언트 디바이스(106)에서 생성된 자연어 입력을 프로세싱하고, 자동화된 어시스턴트(120)의 하나 이상의 다른 컴포넌트에 의해 사용하기 위해 주석이 달린 출력을 생성할 수 있다. 예를 들면, 자연어 프로세서(122)는 클라이언트 디바이스(106)의 하나 이상의 사용자 인터페이스 입력 디바이스들을 통해 사용자에 의해 생성된 자연어 자유 형식의 입력을 프로세싱할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석들 및 선택적으로 자연어 입력의 용어들 중 하나 이상(예를 들어, 전부)을 포함한다.
일부 구현예들에서, 자연어 프로세서(122)는 자연어 입력에서 문법적 정보의 다양한 유형들을 식별하고 주석을 달도록 구성된다. 예를 들면, 자연어 프로세서(122)는 용어들에 그들의 문법적 역할들로 주석을 달도록 구성된 품사 태그기를 포함할 수 있다. 예를 들면, 품사 태그기는 각 용어에 "명사", "동사", "형용사", "대명사" 등과 같은 그것의 품사를 태그(tag)할 수 있다. 또한, 예를 들면, 일부 구현예들에서, 자연어 프로세서(122)는 추가적으로 및/또는 대안적으로 자연어 입력에서 용어들 간의 구문론적 관계들을 결정하도록 구성된 종속성 파서(dependency parser)를 포함할 수 있다. 예를 들면, 종속성 파서는 어떤 용어들아 문장들의 다른 용어들, 주어들 및 동사들을 수정하는지 등을 결정할 수 있고(예를 들어, 파싱 트리), 그리고 상기 종속성들의 주석들을 만들 수 있다.
일부 구현예들에서, 자연어 프로세서(122)는 추가적으로 및/또는 대안적으로 사람들(예를 들어, 문학적 캐릭터, 유명인, 공인 등을 포함), 조직들, 위치들(실제 및 가상) 등에 대한 참조들과 같은 하나 이상의 세그먼트들에서 엔터티 참조들을 주석을 달도록 구성된 엔터티 태그기(entity tagger)(도시되지 않음)를 포함할 수 있다. 일부 구현예에서, 엔터티들에 관한 데이터는 지식 그래프(도시되지 않음)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현에서, 지식 그래프는 알려진 엔터티(및 경우에 따라 엔터티 속성)를 나타내는 노드뿐만 아니라 노드를 연결하고 엔터티 사이의 관계를 나타내는 에지를 포함할 수 있다. 예를 들어, "바나나" 노드는 (예를 들어, 자식으로서) "과일" 노드에 연결될 수 있고, 이는 (예를 들어, 자식으로서) "상품" 및/또는 "음식" 노드에 연결될 수 있다. 다른 예로서, "가상 카페(Hypothetical Cafe)"라는 음식점은 주소, 제공되는 음식의 종류, 영업시간, 연락처 정보 등과 같은 속성을 포함하는 노드로 표현될 수 있다. 일부 구현예에서, "가상 카페" 노드는 에지(예를 들어, 부모-자식 관계를 표현)에 의해 하나 이상의 다른 노드들 예를 들어, "레스토랑" 노드, "비즈니스" 노드, 레스토랑이 위치된 있는 도시 및/또는 주를 나타내는 노드 등에 연결될 수 있다.
자연어 프로세서(122)의 엔터티 태그기는 높은 입상도(예를 들어, 사람들과 같은 엔터티 클래스에 대한 모든 참조들의 식별을 가능하게 하기 위해) 및/또는 낮은 입상도(예를 들어, 특정한 사람과 같은 특정한 엔터티에 대한 모든 참조들의 식별을 가능하게 하기 위해)에서 엔터티에 대한 참조들을 주석을 달을 수 있다. 엔터티 태그기는 특정한 엔터티를 리졸브(resolve)하기 위해 자연어 입력의 컨텐츠에 의존할 수 있고 및/또는 선택적으로 특정한 엔터티를 리졸브하기 위해 지식 그래프 또는 다른 엔터티 데이터베이스와 통신할 수 있다.
일부 구현예들에서, 자연어 프로세서(122)는 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트적 큐(cue)들에 기초하여 동일한 엔터티에 대한 참조인 그룹 또는 "클러스터"로 구성된 공동참조 리졸버(coreference resolver)(도시되지 않음)를 포함할 수 있다. 예를 들어, 공동참조 리졸버는 자연어 입력에서 "지난 번에 거기 가상 카페에서 먹었을 때 좋았어"에서 "거기"를 "가상 카페"로 해석하는데 사용될 수 있다.
일부 구현예들에서, 자연어 프로세서(122)의 하나 이상의 컴포넌트들은 자연어 프로세서(122)의 하나 이상의 다른 컴포넌트들로부터의 주석들에 의존할 수 있다. 예를 들면, 일부 구현예들에서, 명명된 엔터티 태그기는 특정한 엔터티에 대한 모든 언급들에 주석을 다는 것에 있어 공동참조 리졸버 및/또는 종속성 파서로부터의 주석들에 의존할 수 있다. 또한, 예를 들면, 일부 구현예들에서, 공동참조 리졸버는 동일한 엔터티에 대한 참조들을 클러스터링하는 것에 있어 종속성 파서로부터의 주석들에 의존할 수 있다. 일부 구현예들에서, 특정한 자연어 입력을 프로세싱함에 있어서, 자연어 프로세서(122)의 하나 이상의 컴포넌트들은 하나 이상의 주석들을 결정하기 위해 관련된 이전 입력 및/또는 특정한 자연어 입력 밖의 다른 관련된 데이터를 사용할 수 있다.
상기 언급된 바와 같이, 다양한 실시예들에서, 본 명세서에서는 사용자의 요청에 대한 응답인 정보에 대한 온라인 문서의 종래의 범용 코퍼스들 외부에서 검색하는 자동화된 어시스턴트(120)를 구현하기 위한 기법이 설명된다. 도 1에서, 자동화된 어시스턴트(120)(보다 구체적으로, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들)(119))는 일반적으로 (1102)에 표시된 하나 이상의 네트워크(예를 들어, 인터넷)를 통해 온라인 문서들의 하나 이상의 범용 코퍼스들(126)과 네트워크 통신한다. 온라인 문서들의 범용 코퍼스(126)는 종래의 검색 엔진에 의해 검색될 수 있고 및/또는 다양한 종래의 기법들을 사용하여 인덱싱된 종래의 데이터 저장소 또는 온라인 문서들의 인덱스일 수 있다.
배경기술에서 언급된 바와 같이, 자동화된 어시스턴트(120)는 사용자의 요청에 따라 특정 정보에 대한 범용 코퍼스(126)를 검색할 수 있다. 예를 들어, 사용자는 "What is the capitol of Germany?"라고 물을 수 있다. 자동화된 어시스턴트(120)는 이 검색을(원본 또는 재구성된 형식으로) 검색 엔진(도시되지 않음)으로 포워딩할 수 있고, 검색 엔진은 응답 문서들에 대한 범용 코퍼스(126)를 검색할 수 있다. 많은 경우에, 검색 엔진(또는 자동화된 어시스턴트(120) 또는 다른 컴포넌트)은 도시 "베를린"과 같이 사용자의 질문에 직접 응답하는 하나 이상의 응답 문서로부터 정보를 추출할 수 있다. 일부 경우에, 자동화된 어시스턴트(120) 또는 다른 구성 요소(예를 들어, 검색 엔진)는 추출된 정보를 완전한 문장으로 형성하여 "Berlin is the capitol of Germany"와 같이 사용자에게 출력되도록 한다.
상기 종래의 검색에 더하여 또는 그 대신에, 본 명세서에 기술된 기법은 응답 정보에 대한 다른 잠재적으로 더 관련성 있는(또는 "주제에 맞는") 문서의 코퍼스들을 검색하게 할 수 있다. 이렇게 함으로써, 사용자에게 불명확한 것에 대해 프롬프트하지 않고, 모호한 사용자 질문에 보다 쉽게 응답할 수 있다. 결과적으로, 이는 질문에 응답하기 위해 하나 이상의 전자 디바이스들을 통해 어시스턴트로부터의 추가 출력 및 어시스턴트로의 추가 입력이 필요한 경우의 수를 감소시킨다. 이러한 방식으로, 어시스턴트가 질문에 응답하는데 걸리는 전체 시간이 감소되고 하나 이상의 전자 디바이스들에 의해 소비되는 전력량도 감소된다. 이것은 적어도 하나 이상의 디바이스들에 대한/그로부터의 입력 및 출력의 수가 감소되어 스피커 및 디바이스의 다른 컴포넌트들에 의해 더 적은 전력이 소비됨을 의미하기 때문이다. 이는 특히 디바이스가 배터리 전원에 의존하는 경우 디바이스에 긍정적인 영향을 줄 수 있다. 추가적으로 또는 대안적으로, 사용자는 범용 코퍼스(126)만을 검색함으로써 획득되었을 수 있는 것보다 더 직접적이거나 더 관련성 있는(또는 "주제에 맞는") 응답 정보를 수신할 수 있다. 다양한 실시예들에서, 이러한 대안적 코퍼스들은 예를 들어, 사용자와 자동화된 어시스턴트(120) 사이의 인간-대-컴퓨터 대화 세션의 시작에서, 사용자가 요청을 제출할 때 필요에 따라 코퍼스들 선택 엔진(138)에 의해 생성될 수 있다. 다른 구현예에서, 이러한 대안적 코퍼스들은 사용자 및/또는 클라이언트 디바이스(106)의 현재 컨텍스트/상태를 반영하도록 주기적으로 유지 및 업데이트될 수 있다. 일부 구현예에서, 대안적 코퍼스들은 예를 들어 필요에 따라 일시적으로 생성될 수 있고, 더 이상 필요하지 않을 때 폐기된다(예를 들어, 사용자와 자동화된 어시스턴트(120) 사이의 인간 대 컴퓨터 대화 세션이 종료됨).
예를 들어, 일부 구현예에서, 코퍼스들 선택 엔진(138)은 범용 코퍼스(126)보다 임의의 주어진 시점에 사용자에게 더 주제에 맞는 문서의 대안적 코퍼스들을 생성 및/또는 유지하도록 구성될 수 있다. 도 1에서, 문서(128)의 사용자 특정 코퍼스는 소위 "활성" 문서(104)를 포함하기 위해, 예를 들어 코퍼스들 선택 엔진(138)에 의해 생성/유지될 수 있다. 위에서 언급된 바와 같이, "활성" 문서(104)는 클라이언트 디바이스(106)에서 (또는 클라이언트 디바이스(106)를 포함하는 클라이언트 디바이스들의 조정된 에코시스템의 다른 클라이언트 디바이스에서) 현재 열려 있는(예컨대, 디스플레이 된) 문서들(예를 들어, 웹페이지, 워드 프로세싱 문서, pdf 문서, 비디오, 음악 파일, 이메일 등), 자동화된 어시스턴트(120)가 (예를 들어, 클라이언트 디바이스(106)과 같은 클라이언트 디바이스의 조정된 생태계의 임의의 클라이언트 디바이스 상의) 사용자와 자동화된 어시스턴트(120) 사이의 현재의 인간-대-컴퓨터 대화 세션 동안 사용자에게 정보를 청각적으로 제공한 문서들, 사용자가 클라이언트 디바이스(106)의 웹브라우저를 동작하는 현재 세션 동안 사용자에게 제시된 문서들, 들어오는 스트리밍 문서들 등을 포함할 수 있다. 일부 구현예에서, 클라이언트 디바이스(106)의 메모리(예를 들어, 휘발성 메모리)에 (또는 조정된 에코시스템의 다른 클라이언트 디바이스에) 로딩된 문서는 "활성"인 것으로 간주될 수 있다. 반드시 필요한 것은 아니지만, 컴퓨팅 시스템에서 "활성" 문서를 식별할 수 있는 기술적으로 편리하고 효율적인 방법이다. 일부 구현예에서, 문서들은 열려 있는 소프트웨어 애플리케이션이 백그라운드에서 동작하더라도 문서는 활성인 것으로 간주될 수 있다.
일반적으로 말해서, 활성 문서(104)는 사용자가 이들 문서에 포함되거나 또는 연관된(예를 들어, 메타데이터로서) 정보를 소비하기 위해 클라이언트 디바이스의 조정된 에코시스템의 하나 이상의 클라이언트 디바이스들을 동작하고 있거나 매우 최근에 동작했기 때문에, 사용자와 현재 관련된 정보를 포함할 가능성이 상대적으로 매우 높다. 따라서, 검색을 위해 활성 문서(104)의 사용자-특정 코퍼스(128)를 제공함으로써, 자동화된 어시스턴트(120)에 관한 사용자의 질문은 이러한 관련성 높을 문서를 검색하고, 잠재적으로 더 나은 응답 정보, 특히 특정 정보에 대한 사용자 요청에 대한 정보를 획득하는데 사용될 수 있다. 활성 문서(104)가 클라이언트 디바이스(106)와 일체로 도 1에 도시되어 있지만, 이는 제한적인 의미가 아니다. 다양한 구현예에서, URL과 같은 활성 문서의 식별자는 클라이언트 디바이스(106)에 저장된 유일한 정보일 수 있다. 이러한 일부 실시예에서, 클라이언트 디바이스(106)는 코퍼스들 선택 엔진(138)에 URL(들)을 제공하여, 코퍼스들 선택 엔진(138)이 검색 목적으로 문서를 획득할 수 있도록 한다. 추가적으로 또는 대안적으로, 다양한 구현예에서, 활성 문서(또는 그 식별자들)는 예를 들어, 사용자가 다양한 문서로부터 정보를 소비함에 따라 업데이트되는 클라우드 기반 사용자 프로필의 일부로서 클라이언트 디바이스(106)와 별도로 유지될 수 있다.
사용자가 예를 들어, 기사 텍스트를 포함하는 웹페이지를 디스플레이하는 웹브라우저(도시되지 않음)를 통해 특정한 농구 팀에 관한 기사를 읽고 있다고 가정한다. 사용자가 자동화된 어시스턴트에게 "When is the last time they won a championship?"라고 물을 수 있다. 어떠한 컨텍스트도 없이, 자동화된 어시스턴트(120)는 "Whom are you referring to?"와 같이, 질문에 응답하기 위해 사용자로부터 불명확한 정보에 대해 찾아야할 수 있다. 그러나, 개시된 기술을 사용하면, 예를 들어 코퍼스들 선택 엔진(138)에 의해 자동화된 어시스턴트(120)는 사용자가 보고 있는 현재 웹페이지를 사용자 특정 코퍼스(128)의 일부인 활성 문서로서 식별할 수 있다. 자동화된 어시스턴트(120)는 현재 디스플레이된 웹페이지를 포함하는 사용자-특정 코퍼스(128)를 검색(또는 다른 컴포넌트가 검색하도록 요청)하여, 문서 자체(또는 활성 문서에 의해 링크된 다른 문서)가 2012년에 마지막으로 우승한 농구팀을 표시한다고 결정할 수 있다. 자동화된 어시스턴트(120)는 이 정보를 예를 들어 기사 텍스트 위에 겹쳐서, 가청 출력 등으로 사용자에게 제공할 수 있다.
일부 구현예에서, 코퍼스들 선택 엔진(138)은 사용자의 현재 컨텍스트에 기초하여 식별되는 문서들(130)의 하나 이상의 컨텍스트 특정 코퍼스들를 추가로 또는 대안 적으로 생성 및/또는 유지할 수 있다. 사용자의 현재 컨텍스트는 클라이언트 디바이스(106)에 의해 생성된 포지션 좌표(105), 예를 들어 사용자와 현재 관련된 하나 이상의 토픽들을 식별하기 위해 사용될 수 있는 최근 검색 활동(103) 등과 같은 다양한 신호들에 기초하여 결정될 수 있다. 일단 사용자의 컨텍스트가 결정되면, 사용자의 현재 컨텍스트와 관련될 가능성이 있는 하나 이상의 문서들(활성 문서(104)일 수도 있고 아닐 수도 있음)을 식별하는데 사용될 수 있다.
예를 들어, 클라이언트 디바이스(106)로부터 획득된 포지션 좌표(105)가 사용자가 특정한 상점에 있고, 사용자가 자동화된 어시스턴트(120)에게 "Do they carry circular saws?"라고 묻는다고 가정한다. 컨텍스트 없이, 자동화된 어시스턴트(120)는 "Whom are you referring to?"와 같이, 질문에 응답하기 위해 사용자로부터 불명확한 정보에 대해 찾아야할 수 있다. 그러나, 개시된 기술을 사용하면, 예를 들어 코퍼스들 선택 엔진(138)에 의해 자동화된 어시스턴트(120)는 사용자의 현재 포지션 좌표(105)를 결정하고 이를 특정한 상점에 매칭시킬 수 있다. 이는 코퍼스들 선택 엔진(138)이 예를 들어 상기 특정한 상점과 연관된 웹페이지를 포함하도록 컨텍스트-특정 코퍼스(130)를 생성(예를 들어, 업데이트) 할 수 있게 할 수 있다. 특히, 사용자가 상점의 웹페이지를 보거나 최근에 방문할 필요 없다. 즉, 상점의 웹페이지가 활성 문서(104)일 필요가 없다. 자동화된 어시스턴트(120)는 상점의 원형 톱을 가지거나 가지지 않는다는 것을 결정하기 위해, 상점의 웹페이지를 포함하여, 컨텍스트 특정 코퍼스(130)를 검색(또는 다른 컴포넌트가 검색하도록 요청)할 수 있다.
일부 방식이 겹칠 수 있지만, 그에 대한 규칙은 없지만, 컨텍스트 특정 코퍼스(130)의 문서들이 "활성"일 필요가 없기 때문에, 컨텍스트 특정 코퍼스(130)는 활성 문서들(104)의 사용자 특정 코퍼스(128)와 상이하다. 일부 실시예들에서, 예를 들어, 사용자 특정 코퍼스들(128)과 컨텍스트 특정 코퍼스들(130) 둘 모두는 예를 들어, 온라인 문서들의 범용 코퍼스들(126)의 보다 통상적인 검색과 함께, 동시에 검색될 수 있다. 다양한 구현예에서, 사용자-특정 코퍼스(128)의 활성 문서(104) 및/또는 컨텍스트-특정 코퍼스(130)로부터 추출된 응답 정보는 범용 코퍼스(126)로부터 획득된 응답 정보와 함께 제시되거나 대신에 제시되거나 승격될 수 있다. 일부 구현예에서, 각각의 코퍼스들로부터의 결과들이 예를 들어 랭킹되어 비교될 수 있고, 출처에 관계없이 최고 순위 결과(들)가 사용자에게 응답 정보를 제공하기 위해 사용될 수 있다. 코퍼스들(128 및 130)의 문서는 특정 시점에서 사용자에게 더 주제에 맞을 가능성이 높기 때문에, 코퍼스들(128/130)에서 획득된 응답이 범용 코퍼스(126)에서 획득된 응답보다 순위가 높을 수 있다(보증 또는 필수는 아님).
도 2는 태블릿 컴퓨터 또는 스마트폰 형태의 예시적 클라이언트 디바이스(206)를 도시한다. 도 2의 클라이언트 디바이스(206)는 터치 스크린(240) 및 사용자가 자유 형식 입력(텍스트 또는 오디오 형식)을 자동화된 어시스턴트(120)(도 2에 도시되지 않음)에 제공할 수 있는 입력 필드(244)를 포함한다. 다른 구현예에서, 사용자는 소프트 키와 같은 하나 이상의 입력 컴포넌트를 작동 시키거나 제스처를 함으로써 (예를 들어, 입력 필드(244)를 가져오는 것을 포함하여) 자동화된 어시스턴트(120)를 호출할 수 있다. 현재 터치 스크린(240)에 디스플레이된 것은 Fake Camera Corporation의 가상 모델 123456789 카메라와 연관된 웹페이지 또는 다른 문서(예를 들어, PDF, 독점 형식의 텍스트 문서 등)이다. 광학 줌 기능, 장착 가능한 렌즈 수 및 고해상도("HD") 모드와 같은 카메라에 대한 다양한 정보가 제공된다. 또한 "상세 기술 사양", "사용자 리뷰" 및 "서드 파티 리뷰"에 대한 확장 가능한 엘리먼트들이 도시되어 있다. 확장 가능한 엘리먼트를 선택(예를 들어, 클릭)함으로써, 선택된 확장 가능한 엘리먼트와 연관된 숨겨진 정보는 예를 들어 텍스트의 "확장"으로서 공개될 수 있다. 일부 구현예에서, 숨겨진 정보는 웹페이지에 포함될 수 있지만, JavaScript와 같은 다양한 기술을 사용하여 숨겨질 수 있다.
사용자가 특정 기술적 세부 사항, 특정 사용자 리뷰 등과 같은 카메라에 대한 자세한 정보를 얻으려면 확장 가능한 엘리먼트를 동작하여 숨겨진 텍스트를 표시되게 할 수 있다. 그런 다음 사용자는 표시된 텍스트를 읽고 원하는 정보를 수동으로 찾을 수 있다. 그러나, 본 발명의 선택된 양태로 구성된 자동화된 어시스턴트(120)는 이 작업을 대폭 단순화할 수 있으며, 예를 들어, 사용자가 필요한 정보를 찾기 위해 요구되는 입력의 수를 감소시켜, 제한된 능력을 가진 사용자가 입력을 제공하는 것을 도울 수 있다(예를 들어, 운전 중이거나 신체 장애가 있는 사용자 등). 제한된 손을 가진 사용자들에 대한 이러한 이점은 컴퓨팅 시스템으로/로부터의 입력 및 출력의 수를 감소시키는 것과 연관하여 위에서 이미 논의된 다른 효과와 함께 발생할 수 있다.
도 3은 도 2의 카메라 웹 페이지에서 특정 정보를 신속하게 추적하기 위해 자동화된 어시스턴트(120)가 사용자에 의해 어떻게 관여될 수 있는지의 예를 도시한다. 도 3에서, 사용자(도 3의 "YOU")는 자동화된 어시스턴트(120)에예를 들어 입력 필드(244)를 통해 특정 정보에 대한 요청을 포함하는 입력을 제공했다: "What is the charging time?" 그러한 질문이 어떠한 컨텍스트 없이 진공 상태로 자동화된 어시스턴트(120)에 제출되면, 자동화된 어시스턴트(120)는 사용자로부터 명확한 정보를 얻는 것이 필요할 수 있다. 그러나, 사용자는 현재 클라이언트 디바이스(206)에서 카메라 웹 페이지를 연 상태이다. 다양한 구현예에서, 카메라 웹 페이지는 예를 들어 코퍼스들 선택 엔진(138)에 의해 사용자-특정 코퍼스(128)에 (적어도 일시적으로) 포함되거나 (또는 이미 포함되었던) 활성 문서로서 식별될 수 있다(또는 식별되었을 수 있다).
따라서, 사용자의 검색에 응답하여, 자동화된 어시스턴트(120)는 범용 코퍼스(126)에 추가하여 또는 대신에, 사용자의 질문에 대한 응답인 정보에 대해 사용자 특정 코퍼스(128)를 검색할 수 있다. 사용자 특정 코퍼스(128)는 적어도 일시적으로 카메라의 웹 페이지를 포함하기 때문에, 카메라의 웹 페이지가 검색될 수 있다. 웹 페이지에 포함된 숨겨진 텍스트(처음에는 사용자에게 보이지는 않지만 숨겨진 HTML은 일반적으로 기본 HTML/XML 문서에 포함됨)를 검색하여 카메라의 충전 시간을 나타내는 정보를 찾기 위해 검색될 수 있다. 해당 정보는 필요한 경우 재구성될 수 있으며(정보가 이미 완전한 문장에 포함되어 있는 경우에는 필요하지 않을 수 있음), 자동화된 어시스턴트(도 3의 "AA")에 의해 도 3에 도시된 바와 같이 사용자에게 제공한다: "The charging time is listed as two hours." 일부 구현예에서, 자동화된 어시스턴트(120)는 사용자가 답을 검증하고자 하는 경우에, 충전 시간이 포함된 카메라 웹 페이지의 위치에 대한 하이퍼링크( "제품 사양")와 같은 추가 정보를 제공할 수 있다.
도 3에서, 사용자와 자동화된 어시스턴트(120) 사이의 인간 대 컴퓨터 대화는 카메라의 웹 페이지 위에 겹쳐지는 풍선에 포함된다. 그러나 이것은 제한하려는 것이 아니다. 특히 사용자가 쿼리를 자동화된 어시스턴트(120)에 청각적으로 제공하는, 다양한 구현예에서, 자동화된 어시스턴트(120)는 그 응답을 청각적으로 제공할 수 있다. 이 경우, 카메라 웹 페이지 위에 풍선이 겹치지 않을 수 있다. 또한, 사용자의 질문이 도 3에서 웹 페이지 컨텐츠 위에 겹쳐지지만, 다른 구현예에서, 사용자의 질문은 예를 들어 자동화된 어시스턴트(120)가 그 응답을 시각적으로 제공하더라도 더 많은 카메라의 웹 페이지가 계속 보이도록 시각적으로 도시되거나 도시되지 않을 수 있다. 그리고 도 3의 예(및 본 명세서의 일부 다른예)에서, 사용자의 마지막 질문에 응답하여 텍스트만이 제공되지만, 이는 제한적인 것으로 의도되지 않는다. 다양한 구현예에서, 이미지들, 사운드들, 비디오 클립들 등과 같은 다른 유형의 정보는 대안적인 코퍼스들의 문서들로부터 추출될 수 있다.
도 4는 본 명세서에서 설명되는 기법의 다른 예가 구현되는 것을 도시한다. 도 4에서, 다른 클라이언트 디바이스(406)는 다시 한번 태블릿 또는 스마트폰의 형태를 취하는 것으로 도시된다. 그러나, 이는 제한적인 것으로 의도되지 않으며, 본 명세서에 기술된 기법들은 다양한 상이한 클라이언트 디바이스 유형을 사용하여 구현될 수 있으며, 이들 중 일부는 위에서 언급되었다. 클라이언트 디바이스(406)는 도 2-3의 클라이언트 디바이스(206)와 유사한 컴포넌트들을 포함할 수 있다.
도 4에서, 사용자는 구체적으로 문서를 보기 위해 클라이언트 디바이스(406)를 동작하고 있지 않다. 대신에, 사용자(도 4의 "YOU")는 자동화된 어시스턴트(120)와의 인간 대 컴퓨터 대화 세션에 참여한다. 사용자는 "Where can I find the best Chinese food around here?"라고 물음으로써 시작한다. 자동화된 어시스턴트(도 4의 "AA")(120)는 예를 들어 포지션 좌표(105)에 기초하여 사용자의 위치를 결정할 수 있고, 현지 중국 음식점을 식별하기 위해(예를 들어, 5-10 마일 내) 예를 들어 범용 코퍼스(126)에 의해 검색 엔진을 통해 종래의 검색을 수행할 수 있다. 이러한 결과는 예를 들어, 검색 엔진 또는 자동화된 어시스턴트(120)에 의해, 사용자 랭킹에 의해 랭킹될 수 있고, 다음 진술: "Here is the highest rated Chinese restaurant in the area" 후에 자동화된 어시스턴트(120)에 의해 최고 순위 결과로부터의 정보가 제시될 수 있다. 일부 구현예에서, 예를 들어, 코퍼스들 선택 엔진(138)에 의해 자동화된 어시스턴트(120)는 "레스토랑", "중국 음식점", "아시아 음식점" 등과 같은 이 교환 동안 제기된 하나 이상의 주제들을 식별할 수 있다. 식별된 주제에 기초하여, 코퍼스들 선택 엔진(138)은 음식점 리뷰, 사용자 리뷰(예를 들어, 음식점 순위 웹사이트에 포함됨) 등과 같은 이들 주제와 관련된 문서를 포함하도록 컨텍스트 특정 코퍼스(130)를 생성 및/또는 업데이트할 수 있다.
다음으로, 사용자는 "Is it open for lunch?"라고 묻는다. 본 명세서에 설명된 예들 중 적어도 일부와 같이, 단독으로(즉, 컨텍스트 없이) 취해진 이러한 요청은 사용자로부터 추가적인 명확한 정보를 찾지 않고 자동화된 어시스턴트(120)가 처리하기에 너무 모호할 수 있다. 그러나, 여기에 설명된 기법을 사용하면, 예를 들어, 코퍼스들 선택 엔진(138)에 의해 자동화된 어시스턴트(120)는 음식점과 연관된 웹 페이지와 같은 문서를 포함하기 위해 사용자의 위치에 기초하여 컨텍스트 특정 코퍼스(130)를 생성(또는 업데이트)할 수 있다(사용자가 이전에 방문하지 않아도 됨). 음식점의 웹 페이지는 현재 영업 중임을 표시할 수 있다. 컨텍스트 특정 코퍼스(130)에 이러한 시간과 상반되는 다른 문서가 없다면, 자동화된 어시스턴트(120)는 "Yes, it is open now."라고 응답할 수 있다.
그러나 음식점의 웹 페이지가 오래되었다고 가정한다. 최근 리노베이션을 위해 음식점이 며칠/몇 주 문을 닫았으며, 그 사실이 음식점의 웹 페이지에 반영되지 않았다고 가정한다. 일부 구현예에서, 자동화된 어시스턴트(120)(또는 자동화된 어시스턴트(120)를 대신하는 다른 컴포넌트)는 더 최신 정보를 얻기 위해 식당의 웹 페이지 외에 컨텍스트 기반 코퍼스(130)에서 다른 문서들을 검색할 수 있다. 예를 들어, 도 4에서, 자동화된 어시스턴트(120)는 특정 음식점 리뷰 웹 사이트에서 다수의 리뷰에 기초하여, 음식점이 현재 공사를 위해 폐쇄되었다는 것을 결정한다. 이에 따라, 자동화된 어시스턴트(120)는 "While its website says it will be open, according to multiple reviewers on <website>, it is temporarily closed for construction."라고 응답한다. 일부 구현예에서, 컨텍스트-특정 코퍼스(130)로부터 추출된 정보(예를 들어, 리뷰)는 범용 코퍼스(126)의 문서들로부터 추출된 정보에 대해 승격/편향될 수 있어서, 사용자에게 음식점이 일시적으로 문을 닫았다는 것을 적절히 알릴 가능성을 더 높게한다. 한편, 범용 코퍼스(126)에 대한 종래의 검색의 일부로서 리뷰가 검출된 경우, 리뷰로부터 추출된 정보는 중요하게 승격되지 않았으므로, 사용자에게 가장 최신 정보가 제공되지 않았을 수 있다. 이러한 이점은 사용자에 의해서 뿐만 아니라 컨텍스트 특정 코퍼스로부터 추출된 정보에 반응하는 자동화된 디바이스들 또는 다른 장치에 의해 추가로 또는 대안적으로 느껴질 수 있다. 예를 들어, 특정한 유형의 물품을 수집 및/또는 배달하는 임무가 부여된 자율 차량은 개별 음식점 또는 상점과 같은 특정 시설이 개방 또는 폐쇄되어 있는지를 보다 정확하게 결정할 수 있다. 이를 기초로, 자율 주행 차량의 주행 거리 및 주행 시간은 차량이 문을 연 것으로 알려진 음식점 및/또는 상점으로 직접 진행할 수 있고, 일시적을 문을 닫은 것으로는 가지 않음으로써 단축될 수 있다.
도 5는 예를 들어, 클라이언트 디바이스(506)상의 마이크로폰(도시되지 않음)에 의해 검출되는 오디오 입력을 제공함으로써, 사용자(501)가 자동화된 어시스턴트(120)와 청각적으로 인터렉션할 수 있는 독립형 인터렉티브 스피커의 형태를 취하는 사용자(501)와 클라이언트 디바이스(506) 사이의 인간 대 컴퓨터 대화 동안 구현되는 본 명세서에 설명된 기술의 다른 예를 도시한다. 클라이언트 디바이스(506)는 하나 이상의 스피커들(도시되지 않음)을 통해 가청 출력을 제공한다. 이 예에서, 사용자(501)는 "How do I make Tiramisu?"라고 묻는다. 자동화된 어시스턴트(120)(도 5에 도시되지 않음; 도 1 참조)는 사용자의 질문에 기초하여 검색을 수행(또는 검색 엔진에 검색을 요청)한다. 이 검색은 티라미수를 만들기 위한 단계별 레시피를 포함하는 웹페이지를 예를 들어 범용 코퍼스(126)에서 찾는다. 자동화된 어시스턴트(120)는 웹페이지로부터 재료 및 단계를 추출하여 사용자(501)에게 청각적으로 렌더링한다.
그 다음, 사용자(501)는 "Wait, how many eggs again?"라고 묻는다. 이 후속 질문은 종래의 자동화된 어시스턴트가 추가 컨텍스트 없이 직접 응답하기에는 너무 모호하다. 따라서, 종래의 자동화 시스템은 사용자에게 명확한 정보를 요구해야 한다(예: "I'm sorry, I don't understand your question."). 그러나, 본 개시의 선택된 양태로 구성된 자동화된 어시스턴트(120)는 문서의 대안적인 코퍼스들(예를 들어, 코퍼스들 선택 엔진(138)에 의해 생성/유지)를 검색하여 답변을 직접 얻을 수 있다. 이 예에서, 자동화된 어시스턴트(120)는 자동화된 어시스턴트(120)가 티라미수 레시피의 재료 및 단계를 판독하는 웹 페이지를 포함할 수 있는 활성 문서(104)의 사용자 특정 코퍼스(128)를 검색할 수 있다. 일부 구현예에서, 이 웹페이지는 여전히 클라이언트 디바이스(506)의 메모리에 로딩될 수 있다. 다른 구현예에서, 자동화된 어시스턴트(120)는 질문과 함께 URL과 같은 웹페이지의 식별자를 검색 엔진에 제공할 수 있고, 검색 엔진(본 개시의 선택된 양태들로 구성될 수 있음)은 웹페이지에서 추출된 정보를 다른 기존 검색 결과보다 승격시킬 수 있다. 어느 경우이든, 자동화된 어시스턴트(120)는 "you need three eggs."고 응답할 수 있다.
본 명세서에 기술된 기법은 현재 사용자에 의해 동작되는 클라이언트 디바이스 상에 출력을 제공하는 것으로 제한되지 않는다. 일부 구현예에서, 출력은 현재 사용자에 의해 동작되는 것과 다른 클라이언트 디바이스, 예를 들어, 사용자에 의해 제어되는 클라이언트 디바이스들의 조정된 에코시스템의 다른 클라이언트 디바이스 상에 제공될 수 있다. 사용자가 스마트 TV에서 특정 영화를 보고 있다고 가정한다. 또한, 스마트 TV는 TV 근처에 위치된 독립형 스피커 형태의 다른 클라이언트 디바이스와 함께, 사용자의 조정된 클라이언트 디바이스 에코시스템의 일부를 구성한다고 가정한다. 이제 사용자는 "What else has she been in?"와 같은 질문을 한다고 가정한다. 앞에서 설명한 예와 마찬가지로, 이 질문은 컨텍스트 없이 직접 대답하기에는 너무 모호하다. 그러나, 예를 들어, 코퍼스들 선택 엔진(138)에 의해 자동화된 어시스턴트(120)는 사용자가 보고 있는 영화의 형태로 활성 문서를 포함하도록 사용자 특정 코퍼스(128)를 생성/유지할 수 있다. 따라서, 사용자의 질문은 사용자의 질문에 대해 직접 응답하는 정보를 위해 범용 코퍼스(126)에 더하여 또는 대신에 사용자 특정 코퍼스(128)를 검색하는데 사용될 수 있다. 이 예에서, 사용자가 보고 있는 영화는 활성 문서로서, 사용자가 영화에서 특정 여배우(예를 들어, 사용자가 질문을 할 때 스크린 상에 있는 여배우)를 언급하고 있는지를 결정하기 위해 사용될 수 있다. 예를 들어, 여배우는 영화 파일/스트림과 연관된 메타데이터에서 식별될 수 있다.
그 후, 여배우의 신원에 기초하여, 자동화된 어시스턴트(120)는 예를 들어 범용 코퍼스(126)의 일부로서 추가 데이터 소스를 검색하여 여배우가 출연하는 다른 영화를 식별하고 그 목록을 사용자에게 청각적으로 렌더링할 수 있다. 보조 클라이언트 디바이스가 이용 가능하지 않은 다른 구현예에서, 여배우가 출연하는 영화의 목록은 예를 들어, 스크린 상에(예를 들어, 중첩된 텍스트, 사이드 텍스트, 블랙 바 내 등) 또는 청각적으로(이 경우 영화의 오디오가 일시적으로 줄어들거나 목록이 청각적으로 렌더링되는 동안 영화가 일시 정지 될 수 있음) 스마트 TV에 의해 제시될 수 있다.
도 6은 다수의 클라이언트 디바이스들이 특정 정보에 대한 요청에 대한 응답인 정보를 사용자에게 제공하기 위해 협력할 수 있는 다른 예를 도시한다. 도 6에서, 사용자(601)는 태블릿 컴퓨터의 형태를 취하는 제1 클라이언트 디바이스(606A)에서 레시피 웹페이지를 열었고, 태블릿 컴퓨터가 오븐과 같은 부엌 표면에 있는 동안 사용자(601)는 레시피를 시각적으로 읽을 수 있도록 한다. 전술한 바와 같이, 코퍼스들 선택 엔진(138)은 레시피가 있는 웹페이지를 활성 문서(104)로서 사용자 특정 코퍼스(128)에 추가할 수 있다. 사용자 특정 코퍼스(128)(및 컨텍스트 특정 코퍼스(130))는 사용자(601)에 의해 동작되는 다수의 클라이언트 디바이스들에 걸쳐 이용 가능할 수 있다. 나중에, 클라이언트 디바이스(606A)가 예를 들어, 그 스크린이 비어 있고 더 이상 레시피를 디스플레이하지 않도록 대기 모드로 갔다고 가정한다. 한편, 사용자(601)는 레시피를 준비하는 도중에 있을 수 있고, 예를 들어, 레시피를 다시 보기 위해 클라이언트 디바이스(606A)를 재활성화하기 전에 세척하고자 하는 재료가 손에 묻어있을 수 있다.
클라이언트 디바이스(606A)를 재활성화하기 위해 손을 씻는 대신에, 사용자(601)는 "Hey Assistant, how many eggs again?"라고 청각적으로 물을 수 있다. 그의 질문의 제1 부분인 "Hey Assistant"는 독립형 대화형 스피커(클라이언트 디바이스(506)에 유사)의 형태를 취하는 제2 클라이언트 디바이스(606B))와 같은, 가청 범위 내의 하나 이상의 클라이언트 디바이스에서 자동화된 어시스턴트(120)를 호출하는 미리 결정된 문구일 수 있다. 그의 질문의 나머지 부분은 자동화된 어시스턴트(120)에 의해 쿼리로서 프로세싱될 수 있다. 본 명세서에 설명된 기법을 사용하여, 자동화된 어시스턴트(120)는 쿼리를 사용하여 검색을 수행할 수 있다. 범용 코퍼스(126)로부터 획득된 응답 결과는 아무리 해도 품질이 낮을 수 있으며, 일부 경우에 사용자의 질문은 범용 코퍼스(126)의 검색을 수행하기에는 너무 모호한 것으로 간주될 수 있다. 그러나, 사용자 질문이 사용자 특정 코퍼스(128)를 검색하기 위해 사용되는 경우, 레시피를 갖는 웹페이지가 사용자 질문에 대한 답변을 결정하기 위해 검색될 수 있다. 결과적으로, 자동화된 어시스턴트(120)는 클라이언트 디바이스(606B)에서 "you need three eggs"라고 사용자의 질문에 대답할 수 있다.
도 7은 다양한 실시예에 따른 본 개시의 선택된 양태를 실시하기 위한 예시적 방법(700)을 도시한다. 편의상, 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 자동화된 어시스턴트(120) 및/또는 코퍼스들 선택 엔진(138)을 포함하는 다양한 컴퓨터 시스템의 다양한 컴포넌트들을 포함할 수 있다. 추가로, 방법(700)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 또는 추가될 수 있다.
블록(702)에서, 시스템은 예를 들어, 자동화된 어시스턴트(120)에 의해, 사용자에 의해 동작되는 하나 이상의 클라이언트 디바이스들(예를 들어, 클라이언트 디바이스들의 조정된 에코시스템) 중 제1 클라이언트 디바이스의 입력 컴포넌트를 통해 자유 형식 입력을 수신할 수 있다. 다양한 구현예에서, 자유 형식 입력은 엔터티(예를 들어, 사람, 장소, 사물)에 관한 정보에 대한 요청과 같은 특정 정보에 대한 요청을 포함할 수 있다. 다양한 구현예에서, 자유 형식 입력은 음성(예를 들어, 컴포넌트(114 및/또는 117)에 의해 텍스트로 변환될 수 있음)을 사용하여 및/또는 타이핑된 입력을 통해 사용자에 의해 제공될 수 있다.
블록(704)에서, 시스템은 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스(126)를 검색할 수 있다. 예를 들어, 자동화된 어시스턴트(120)는 사용자의 자유 형식 입력을 검색 쿼리로서 종래의 검색 엔진에 제출할 수 있다. 다양한 검색 엔진은 예를 들어, 완전한 문장으로서 재구성된 특정 정보에 대한 사용자의 요청에 대한 답변을 포함하는 응답을 제공하도록 구성될 수 있다. 이러한 답변은 예를 들어, 매칭되는 문서와 같이, 보다 "표준" 검색 결과와는 별개로 디스플레이되는 박스에서 제시될 수 있다.
블록(706)에서, 시스템은 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제2 세트를 획득하기 위해 하나 이상의 활성 문서들(104)의 사용자 특정 코퍼스(128)를 검색할 수 있다. 위에서 언급한 바와 같이, 사용자-특정 코퍼스(128)는 코퍼스들 선택 엔진(138)에 의해 지속적으로 또는 필요에 따라 생성/유지될 수 있다. 일부 구현예에서, 사용자-특정 코퍼스(128)는 하나 이상의 클라이언트 디바이스(106) 및/또는 소위 "클라우드" 컴퓨팅 환경의 일부를 형성하는 하나 이상의 원격 컴퓨팅 시스템 상에 저장될 수 있는 활성 문서들(104)의 실제 사본을 포함할 수 있다. 다른 구현예에서, 활성 문서(104) 중 적어도 일부는 사용자의 자유 형식 입력을 사용하여 수행된 검색의 일부로서 제출될 수 있는 문서 식별자, 예를 들어 URL로서 사용자 특정 코퍼스(128)에서 유지될 수 있다.
블록(708)에서, 시스템은 상기 제1 클라이언트 디바이스에서 생성된 하나 이상의 신호들에 기초하여, 상기 사용자의 현재 컨텍스트를 결정할 수 있다. 사용자의 현재 컨텍스트는 예를 들어, 사용자의 위치(예를 들어, GPS 센서 또는 Wi-Fi 또는 셀룰러 삼각 측량 방식과 같은 포지션 좌표 센서에 의해 결정됨), 현재 관련된 하나 이상의 주제(또는 "주제에 맞는"을 포함)를 포함할 수 있다. 관련 주제는 현재 세션 동안 사용자에 의한 사전 검색, 최근 검색 이력, 최근 브라우징 이력, 인간 대 컴퓨터 대화 내용 등의 다양한 신호에 기초하여 결정될 수 있다.
일부 구현예에서, 주제는 주제 분류기(topic classifier)를 사용하여 결정될 수 있다. 주제 분류기는 기계 학습 모델(감독 또는 비감독) 또는 규칙 기반 모델의 형태를 취할 수 있다. 기계 학습 기반 주제 분류기를 사용하여, 일부 구현에서, 주제 분류기는 특정 주제가 관련성이 있는지, 예를 들어, 현재 인간 대 컴퓨터 대화 세션 동안 논의되거나 또는 더 최근에 소비된 문서에서 언급되었는지 여부를 표시하는 출력을 제공하도록 트레이닝될 수 있다. 다른 구현예에서, 주제 분류기는 복수의 상이한 주제가 현재 관련되어 있는지 여부를 표시하는 출력을 제공하도록 트레이닝될 수 있다. 예를 들어, 주제 분류기는 복수의 상이한 주제들이 인간 대 컴퓨터 대화에서 논의될 가능성 또는 신뢰도를 표시하는 출력을 제공하도록 구성될 수 있다. 일부 구현예에서, 하나 이상의 임계치를 만족할 가능성/신뢰도를 갖는 주제만이 관련 주제로 식별될 수 있다. 다른 구현예에서, n개의 가장 높은 가능성/신뢰도를 갖는 주제만이 관련 주제로 식별될 수 있다. 기대 최대화, 용어 빈도-역 문서 빈도("td-idf"), 나이브 베이즈 분류기, 신경 네트워크들(예를 들어, 즉시 트레이닝된 신경 네트워크들), 지원 벡터 머신, 다양한 자연어 프로세싱 방식(예: 주제 분류), 감정 분석 등을 포함하지만 이에 한정되지 않는 다양한 공지된 기법이 주제 분류를 위해 사용될 수 있다.
블록(710)에서, 시스템은 자유 형식 입력에 대한 하나 이상의 후보 응답들의 제3 세트를 획득하기 위해 하나 이상의 활성 문서들(104)의 컨텍스트 특정 코퍼스(130)를 검색할 수 있다. 위에서 언급한 바와 같이, 다양한 실시예들에서, 컨텍스트-특정 코퍼스(130)는 블록(708)에서 결정된 사용자의 현재 컨텍스트에 기초하여 식별/생성/유지될 수 있다. 따라서, 예를 들어, 컨텍스트-특정 코퍼스(130)는 문서, 웹사이트, 또는 관련 정보를 포함할 가능성이 높은 다른 정보 소스를 포함할 수 있다. 예를 들어, 사용자가 현재 "영화"라는 주제를 중심으로 하는 자동화된 어시스턴트(120)와의 인간 대 컴퓨터 대화 세션에 참여하고 있다고 가정한다. 다양한 구현예에서, 영화에 관한 정보(예를 들어, 캐스트, 승무원, 상식, 리뷰 등)의 온라인 데이터베이스가 컨텍스트 특정 코퍼스(130)에 추가될 수 있고(예를 들어, 링크로서), 데이터베이스로부터 획득된 응답 정보가 범용 코퍼스(126)로부터 획득된 응답 정보 대신에 승격되거나 제시될 수 있다.
블록(712)에서, 시스템은 제1, 제2 및/또는 제3 세트의 후보 응답을 비교할 수 있다. 예를 들어, 일부 구현에서, 시스템은 후보 응답과 연관된 관련성 점수 또는 순위를 검사할 수 있다. 일부 구현예에서, 시스템은 모든 후보 응답들을 단일 목록에서 랭킹할 수 있고, 최고 순위 응답이 어느 코퍼스로부터 획득되었든지 간에 최고 순위 응답을 식별할 수 있다.
비교에 기초하여, 블록(714)에서, 시스템은 제1, 제2 및/또는 제3 세트로부터 자유 형식 입력에 대한 주어진 응답을 선택할 수 있다. 위에서 언급한 바와 같이, 일부 구현예에서, 주어진 응답은 그것이 어떤 코퍼스에서 왔든 상관없이 단순히 최고 순위 응답일 수 있다. 블록(716)에서, 시스템은 상기 자동화된 어시스턴트에 의해, 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나 이상을 통해, 상기 주어진 응답을 표시하는 출력을 제공할 수 있다. 그러한 출력이 제공될 수 있는 방법의 비-제한적인 예가 위에서 설명되었다.
도 8은 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적 컴퓨팅 디바이스(810)의 블록도이다. 일부 구현예들에서, 클라이언트 컴퓨팅 디바이스, 사용자 제어 리소스 엔진(130) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적 컴퓨팅 디바이스(810) 중 하나 이상의 컴포넌트들을 포함할 수 있다.
컴퓨팅 디바이스(810)는 일반적으로 적어도 하나의 프로세서(814)를 포함하며, 버스 서브시스템(812)을 통해 다수의 주변 디바이스들과 통신한다. 이들 주변 디바이스들은 예를 들면, 메모리 서브시스템(825) 및 파일 저장 서브시스템(826)을 포함하는 저장 서브시스템(824), 사용자 인터페이스 출력 디바이스(820), 사용자 인터페이스 입력 디바이스(822) 및 네트워크 인터페이스 서브시스템(816)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(810)와 사용자 인터렉션을 하게 한다. 네트워크 인터페이스 서브시스템(816)은 외부 네트워크에 대한 인터페이스를 제공하며, 다른 컴퓨팅 디바이스들의 대응하는 인터페이스 디바이스들과 연결된다.
사용자 인터페이스 입력 디바이스(822)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿, 스캐너, 디스플레이에 통합된 터치스크린과 같은 포인팅 디바이스, 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, 용어 "입력 디바이스"의 사용은 정보를 컴퓨팅 디바이스(810) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(820)는 디스플레이 서브시스템, 프린터, 팩스 기계 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 CRT, LCD와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 또한, 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"의 사용은 정보를 컴퓨팅 디바이스(810)로부터 사용자에게 또는 다른 기계 또는 컴퓨팅 디바이스에 정보를 출력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
저장 서브시스템(824)은 본 명세서에 기술된 일부 또는 전부의 모듈들의 기능을 제공하기 위한 프로그래밍 및 데이터 구조를 저장한다. 예를 들면, 저장 서브시스템(824)은 도 7의 방법의 선택된 양태들을 수행하고 뿐만 아니라 도 1에 도시된 다양한 컴포넌트들을 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(814) 단독으로 또는 다른 프로세서들과의 조합에 의해 실행된다. 저장 서브시스템(824)에서 사용된 메모리(825)는 프로그램 실행 중에 명령어들 및 데이터의 저장을 위한 메인 RAM(830) 및 고정된 명령어들이 저장되는 ROM(832)을 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(826)은 프로그램 및 데이터 파일에 대한 영구적 저장을 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께인 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 저장 서브시스템(826)에 의해 저장 서브시스템(824)에 또는 프로세서(들)(814)에 의해 엑세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(812)은 의도된 대로 컴퓨팅 디바이스(810)의 다양한 컴포넌트들 및 서브시스템들이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템(812)이 개략적으로 단일의 버스로 도시되었지만, 버스 서브시스템의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(810)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서퍼팜 또는 임의의 기타 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 8에 도시된 컴퓨팅 디바이스(810)는 일부 구현예들을 설명하기 위한 목적의 특정 예로서만 의도된다. 컴퓨팅 디바이스(810)의 많은 다른 구성들이 도 8에 도시된 컴퓨팅 디바이스보다 많거나 적은 컴포넌트들을 가질 수 있다.
본 명세서에서 논의된 특정 구현예들이 사용자에 관한 개인 정보(예를 들어, 다른 전자 통신으로부터 추출된 사용자 데이터, 사용자의 소셜 네트워크에 관한 정보, 사용자의 위치, 사용자의 시간, 사용자의 생체 정보 및 사용자의 활동 및 인구통계적 정보, 사용자들 간의 관계 등)를 수집하거나 사용하는 상황들에서, 사용자에게 정보가 수집될지 여부, 개인정보가 저장될지 여부, 개인 정보가 사용될지 여부 및 사용자에 관한 정보가 어떻게 수집되고 저장되고 사용될지를 제어하기 위한 하나 이상의 기회들이 제공된다. 즉, 본 명세서에서 논의된 시스템들 및 방법들은 관련된 사용자로부터 명시적 인가를 수신함에 따라서만 사용자 개인 정보를 수집하고 저장하고 및/또는 사용한다.
예를 들면, 프로그램 또는 구성들이 그 특정한 사용자 또는 프로그램 또는 구성과 관련된 다른 사용자들에 관한 사용자 정보를 수집할지 여부에 관한 제어권이 사용자에게 제공된다. 개인정보가 수집될 각 사용자에게 그 사용자에 관한 정보 수집에 대해 제어하게 하고, 정보가 수집될지 여부에 관한 그리고 정보의 어떤 부분이 수집될지 허가 또는 인가를 제공하기 위한 하나 이상의 옵션들이 제시된다. 예를 들면, 통신 네트워크를 통해 사용자들에게 하나 이상의 상기 제어 옵션들이 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 일 예시로서, 사용자의 신원은 개인적으로 식별가능한 정보가 결정될 수 없도록 취급될 수 있다. 다른 예시로서, 사용자의 지리적 위치는 넓은 지역으로 일반화되어 사용자의 특정한 위치가 결정될 수 없도록 한다.
몇몇 구현예가 본 명세서에서 기술되고 도시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본 명세서에 기술된 하나 이상의 이점을 획득하기 위한 다양한 다른 수단들 및/또는 구조들가 활용될 수 있으며, 그러한 변형들 및/또는 수정들은 본 명세서에서 기술된 구현예들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것으로 의도되었으며, 실제 파라미터, 치수, 재료 및/또는 구성은 교시를 사용되는 특정 어플리케이션 또는 어플리케이션들에 의존할 것이다. 통상의 기술자는 일상적인 실험만을 사용하여 본 명세서에 기술된 특정 구현예들에 대한 많은 균등물들을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예들은 단지 예일 뿐이며, 첨부된 청구범위 및 그 균등물의 범위 내에서 구현은 구체적으로 기술되고 청구된 것과 다르게도 실시 될 수 있음을 이해해야 한다. 본 개시의 구현은 본 명세서에 기술된 각각의 개별적인 구성, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한 구성, 시스템, 물품, 재료, 키트 및/또는 방법이 상호 불일치하지 않는다면, 그러한 두 개 이상의 구성, 시스템, 물품, 재료, 키트 및/또는 방법의 모든 조합이 본 발명의 범위 내에 포함된다.

Claims (20)

  1. 하나 이상의 프로세서들에서 구현되는 방법으로서,
    자동화된 어시스턴트에 의해, 사용자에 의해 동작되는 하나 이상의 클라이언트 디바이스들 중 제1 클라이언트 디바이스의 입력 컴포넌트를 통해, 상기 사용자와 상기 자동화된 어시스턴트 간에 발화된 인간-대-컴퓨터 대화 세션 동안, 자유 형식 음성 입력을 수신하는 단계, 상기 자유 형식 음성 입력은 특정 정보에 대한 요청을 포함하며;
    상기 제1 클라이언트 디바이스에서 생성된 하나 이상의 신호에 기초하여, 상기 사용자의 현재 컨텍스트를 결정하는 단계;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스를 검색하는 단계, 상기 제1 세트의 하나 이상의 후보 응답들은 상기 범용 코퍼스의 온라인 문서들로부터 추출되며;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제2 세트를 획득하기 위해 하나 이상의 활성 문서들의 사용자 특정 코퍼스를 검색하는 단계, 상기 제2 세트의 하나 이상의 후보 응답들은 상기 사용자 특정 코퍼스의 문서들로부터 추출되며, 상기 사용자 특정 코퍼스는 상기 수신하는 단계 이전에 설정되며 그리고 상기 수신하는 단계 이전에 상기 자동화된 어시스턴스가 상기 사용자에게 정보를 제공한 문서를 포함하며, 상기 문서는 상기 사용자의 이전의 자유 형식 음성 입력에 기초하여 상기 온라인 문서들의 범용 코퍼스로부터 획득된 복수의 검색 결과로부터 자동적으로 선택되며, 상기 이전의 자유 형식 음성 입력은 특정 정보에 대한 상기 사용자의 이전의 요청을 포함하며;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제3 세트를 획득하기 위해 하나 이상의 문서들의 별개의 컨텍스트 특정 코퍼스를 검색하는 단계, 상기 컨텍스트 특정 코퍼스는 상기 사용자의 현재 컨텍스트에 기초하여 식별되며, 상기 제3 세트의 하나 이상의 후보 응답들은 상기 컨텍스트 특정 코퍼스의 문서들로부터 추출되며;
    상기 후보 응답들의 제1, 제2 및 제3 세트들을 비교하는 단계;
    상기 비교에 기초하여, 상기 제1, 제2 또는 제3 세트로부터 상기 특정 정보에 대한 요청에 대한 주어진 응답을 선택하는 단계; 및
    상기 자동화된 어시스턴트에 의해, 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나 이상을 통해, 상기 주어진 응답을 전달하는 청각적 자연어 출력을 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나의 디스플레이 디바이스 상에 현재 디스플레이된 문서를 포함하는 것을 특징으로 하는 방법.
  3. 청구항 1에 있어서,
    상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 사용자가 웹브라우저를 동작하는 현재 세션 동안 상기 사용자에게 이전에 제시된 문서를 포함하는 것을 특징으로 하는 방법.
  4. 청구항 1에 있어서,
    상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 엔터티를 설명하는 웹페이지를 포함하며, 상기 특정 정보에 대한 요청은 상기 엔터티에 관한 특정 정보에 대한 요청을 포함하고, 상기 주어진 응답은 상기 엔터티에 관한 상기 특정 정보에 대한 요청에 대한 응답인 것을 특징으로 하는 방법.
  5. 청구항 1에 있어서,
    상기 사용자 특정 코퍼스로부터 획득된 상기 하나 이상의 후보 응답들의 제2 세트는 상기 범용 코퍼스로부터 획득된 상기 하나 이상의 후보 응답들의 제1 세트에 비해 승격되는 것을 특징으로 하는 방법.
  6. 청구항 1에 있어서,
    상기 자유 형식 음성 입력에 기초하여, 상기 특정 정보에 대한 요청이 모호한지 여부를 결정하는 단계를 더 포함하고, 상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 결정에 기초하여 검색되는 것을 특징으로 하는 방법.
  7. 청구항 1에 있어서,
    상기 사용자의 현재 컨텍스트는 상기 제1 클라이언트 디바이스에 의해 생성된 포지션 좌표에 적어도 부분적으로 기초하여 생성되는 것을 특징으로 하는 방법.
  8. 청구항 7에 있어서,
    상기 문서들의 컨텍스트 특정 코퍼스는 상기 포지션 좌표로부터 배타적으로 식별된 문서를 포함하는 것을 특징으로 하는 방법.
  9. 청구항 1에 있어서,
    상기 컨텍스트 특정 코퍼스로부터 획득된 상기 하나 이상의 후보 응답들의 제3 세트는 상기 범용 코퍼스로부터 획득된 상기 하나 이상의 후보 응답들의 제1 세트에 비해 승격되는 것을 특징으로 하는 방법.
  10. 청구항 1에 있어서,
    상기 하나 이상의 문서들의 컨텍스트 특정 코퍼스는 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나의 디스플레이 디바이스 상에 현재 디스플레이된 문서를 포함하는 것을 특징으로 하는 방법.
  11. 청구항 1에 있어서,
    상기 하나 이상의 문서들의 컨텍스트 특정 코퍼스는 상기 사용자가 웹브라우저를 동작하는 현재 세션 동안 상기 사용자에게 이전에 제시된 문서를 포함하는 것을 특징으로 하는 방법.
  12. 명령어들을 포함하는 적어도 하나의 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 하나 이상의 프로세서에 의한 명령어들의 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 하며, 상기 동작들은:
    자동화된 어시스턴트에 의해, 사용자에 의해 동작되는 하나 이상의 클라이언트 디바이스들 중 제1 클라이언트 디바이스의 입력 컴포넌트를 통해, 상기 사용자와 상기 자동화된 어시스턴트 간에 발화된 인간-대-컴퓨터 대화 세션 동안, 자유 형식 음성 입력을 수신하는 동작, 상기 자유 형식 음성 입력은 특정 정보에 대한 요청을 포함하며;
    상기 제1 클라이언트 디바이스에서 생성된 하나 이상의 신호에 기초하여, 상기 사용자의 현재 컨텍스트를 결정하는 동작;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스를 검색하는 동작, 상기 제1 세트의 하나 이상의 후보 응답들은 상기 범용 코퍼스의 온라인 문서들로부터 추출되며;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제2 세트를 획득하기 위해 하나 이상의 활성 문서들의 사용자 특정 코퍼스를 검색하는 동작, 상기 제2 세트의 하나 이상의 후보 응답들은 상기 사용자 특정 코퍼스의 문서들로부터 추출되며, 상기 사용자 특정 코퍼스는 상기 수신하는 단계 이전에 설정되며 그리고 상기 수신하는 단계 이전에 상기 자동화된 어시스턴스가 상기 사용자에게 정보를 제공한 문서를 포함하며, 상기 문서는 상기 사용자의 이전의 자유 형식 음성 입력에 기초하여 상기 온라인 문서들의 범용 코퍼스로부터 획득된 복수의 검색 결과로부터 자동적으로 선택되며, 상기 이전의 자유 형식 음성 입력은 특정 정보에 대한 상기 사용자의 이전의 요청을 포함하며;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제3 세트를 획득하기 위해 하나 이상의 문서들의 별개의 컨텍스트 특정 코퍼스를 검색하는 단계, 상기 컨텍스트 특정 코퍼스는 상기 사용자의 현재 컨텍스트에 기초하여 식별되며, 상기 제3 세트의 하나 이상의 후보 응답들은 상기 컨텍스트 특정 코퍼스의 문서들로부터 추출되며;
    상기 후보 응답들의 제1, 제2 및 제3 세트들을 비교하는 동작;
    상기 비교에 기초하여, 상기 제1, 제2 또는 제3 세트로부터 상기 특정 정보에 대한 요청에 대한 주어진 응답을 선택하는 동작; 및
    상기 자동화된 어시스턴트에 의해, 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나 이상을 통해, 상기 주어진 응답을 전달하는 청각적 자연어 출력을 제공하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  13. 청구항 12에 있어서,
    상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나의 디스플레이 디바이스 상에 현재 디스플레이된 문서를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  14. 청구항 12에 있어서,
    상기 하나 이상의 활성 문서들의 사용자 특정 코퍼스는 상기 사용자가 웹 브라우저를 동작하는 현재 세션 동안에 상기 사용자에게 이전에 제시된 문서를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  15. 하나 이상의 프로세서 및 명령어들을 저장하는 메모리를 포함하는 시스템으로서, 상기 명령어들은 상기 하나 이상의 프로세서에 의한 명령어들의 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 하며, 상기 동작들은:
    자동화된 어시스턴트에 의해, 사용자에 의해 동작되는 하나 이상의 클라이언트 디바이스들 중 제1 클라이언트 디바이스의 입력 컴포넌트를 통해, 상기 사용자와 상기 자동화된 어시스턴트 간에 발화된 인간-대-컴퓨터 대화 세션 동안, 자유 형식 음성 입력을 수신하는 동작, 상기 자유 형식 음성 입력은 특정 정보에 대한 요청을 포함하며;
    상기 제1 클라이언트 디바이스에서 생성된 하나 이상의 신호에 기초하여, 상기 사용자의 현재 컨텍스트를 결정하는 동작;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제1 세트를 획득하기 위해 온라인 문서들의 범용 코퍼스를 검색하는 동작, 상기 제1 세트의 하나 이상의 후보 응답들은 상기 범용 코퍼스의 온라인 문서들로부터 추출되며;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제2 세트를 획득하기 위해 하나 이상의 활성 문서들의 사용자 특정 코퍼스를 검색하는 동작, 상기 제2 세트의 하나 이상의 후보 응답들은 상기 사용자 특정 코퍼스의 문서들로부터 추출되며, 상기 사용자 특정 코퍼스는 상기 수신하는 단계 이전에 설정되며 그리고 상기 수신하는 단계 이전에 상기 자동화된 어시스턴스가 상기 사용자에게 정보를 제공한 문서를 포함하며, 상기 문서는 상기 사용자의 이전의 자유 형식 음성 입력에 기초하여 상기 온라인 문서들의 범용 코퍼스로부터 획득된 복수의 검색 결과로부터 자동적으로 선택되며, 상기 이전의 자유 형식 음성 입력은 특정 정보에 대한 상기 사용자의 이전의 요청을 포함하며;
    상기 특정 정보에 대한 요청에 대한 하나 이상의 후보 응답들의 제3 세트를 획득하기 위해 하나 이상의 문서들의 별개의 컨텍스트 특정 코퍼스를 검색하는 단계, 상기 컨텍스트 특정 코퍼스는 상기 사용자의 현재 컨텍스트에 기초하여 식별되며, 상기 제3 세트의 하나 이상의 후보 응답들은 상기 컨텍스트 특정 코퍼스의 문서들로부터 추출되며;
    상기 후보 응답들의 제1, 제2 및 제3 세트들을 비교하는 동작;
    상기 비교에 기초하여, 상기 제1, 제2 또는 제3 세트로부터 상기 특정 정보에 대한 요청에 대한 주어진 응답을 선택하는 동작; 및
    상기 자동화된 어시스턴트에 의해, 상기 사용자에 의해 동작되는 상기 클라이언트 디바이스들 중 하나 이상을 통해, 상기 주어진 응답을 전달하는 청각적 자연어 출력을 제공하는 동작을 포함하는 것을 특징으로 하는 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020197036558A 2017-07-03 2018-07-02 다수의 코퍼스들로부터 응답 정보 획득 KR102364400B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762528425P 2017-07-03 2017-07-03
US62/528,425 2017-07-03
US15/703,205 2017-09-13
US15/703,205 US11017037B2 (en) 2017-07-03 2017-09-13 Obtaining responsive information from multiple corpora
PCT/US2018/040650 WO2019010138A1 (en) 2017-07-03 2018-07-02 OBTAINING ADAPTIVE INFORMATION FROM MULTIPLE CORPUS

Publications (2)

Publication Number Publication Date
KR20200006107A KR20200006107A (ko) 2020-01-17
KR102364400B1 true KR102364400B1 (ko) 2022-02-17

Family

ID=64738146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036558A KR102364400B1 (ko) 2017-07-03 2018-07-02 다수의 코퍼스들로부터 응답 정보 획득

Country Status (6)

Country Link
US (1) US11017037B2 (ko)
EP (1) EP3549027A1 (ko)
JP (1) JP6942821B2 (ko)
KR (1) KR102364400B1 (ko)
CN (1) CN110770694B (ko)
WO (1) WO2019010138A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220092608A1 (en) * 2020-09-22 2022-03-24 Ebay Inc. Counterfeit item detection system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10685648B2 (en) * 2017-11-08 2020-06-16 International Business Machines Corporation Sensor fusion model to enhance machine conversational awareness
US11016729B2 (en) 2017-11-08 2021-05-25 International Business Machines Corporation Sensor fusion service to enhance human computer interactions
US20210065708A1 (en) * 2018-02-08 2021-03-04 Sony Corporation Information processing apparatus, information processing system, information processing method, and program
US11868734B2 (en) * 2018-04-16 2024-01-09 Ntt Docomo, Inc. Dialogue system
US11663420B2 (en) * 2018-04-17 2023-05-30 Ntt Docomo, Inc. Dialogue system
US11074918B2 (en) * 2019-03-22 2021-07-27 Adobe Inc. Real-time agreement comprehension tool
US11449547B2 (en) * 2019-03-27 2022-09-20 Slack Technologies, Llc Expandable data object management and indexing architecture for intersystem data exchange compatibility
US11106536B2 (en) * 2019-07-23 2021-08-31 Microsoft Technology Licensing, Llc Error recovery for conversational systems
US11195523B2 (en) * 2019-07-23 2021-12-07 Microsoft Technology Licensing, Llc Ambiguity resolution with dialogue search history
US11610584B2 (en) * 2020-06-01 2023-03-21 Adobe Inc. Methods and systems for determining characteristics of a dialog between a computer and a user
CN112464627B (zh) * 2020-11-05 2021-12-03 北京科技大学 一种面向共指关系的手动文本标注工具及方法
US11295731B1 (en) * 2020-12-02 2022-04-05 Lucas GC Limited Artificial intelligence (AI) enabled prescriptive persuasion processes based on speech emotion recognition and sentiment analysis
US11461339B2 (en) * 2021-01-30 2022-10-04 Microsoft Technology Licensing, Llc Extracting and surfacing contextually relevant topic descriptions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198869A1 (en) * 2001-06-20 2002-12-26 Barnett Russell Clark Metasearch technique that ranks documents obtained from multiple collections
US20050102282A1 (en) * 2003-11-07 2005-05-12 Greg Linden Method for personalized search
US20160103876A1 (en) * 2014-10-14 2016-04-14 Google Inc. Assistive browsing using context

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920448B2 (en) * 2001-05-09 2005-07-19 Agilent Technologies, Inc. Domain specific knowledge-based metasearch system and methods of using
US7392278B2 (en) * 2004-01-23 2008-06-24 Microsoft Corporation Building and using subwebs for focused search
US20180096203A1 (en) * 2004-04-12 2018-04-05 Google Inc. Adding value to a rendered document
US7953720B1 (en) 2005-03-31 2011-05-31 Google Inc. Selecting the best answer to a fact query from among a set of potential answers
JP4810339B2 (ja) 2006-07-12 2011-11-09 株式会社リコー ネットワーク通信装置、ネットワーク通信装置の制御方法、ネットワーク通信装置の制御プログラムおよび記録媒体
EP2067102A2 (en) 2006-09-15 2009-06-10 Exbiblio B.V. Capture and display of annotations in paper and electronic documents
US8296294B2 (en) * 2007-05-25 2012-10-23 Veveo, Inc. Method and system for unified searching across and within multiple documents
US7933896B2 (en) * 2008-02-22 2011-04-26 Tigerlogic Corporation Systems and methods of searching a document for relevant chunks in response to a search request
KR20110134909A (ko) 2009-03-13 2011-12-15 인벤션 머신 코포레이션 텍스트 문서들 및 사용자 질문들의 의미적 라벨링에 기초한 질문-응답 시스템 및 방법
US8392394B1 (en) * 2010-05-04 2013-03-05 Google Inc. Merging search results
KR101683083B1 (ko) * 2011-09-30 2016-12-07 애플 인크. 가상 비서에서 커맨드 처리를 용이하게 하기 위한 컨텍스트 정보의 이용
US20130166543A1 (en) 2011-12-22 2013-06-27 Microsoft Corporation Client-based search over local and remote data sources for intent analysis, ranking, and relevance
US8433719B1 (en) * 2011-12-29 2013-04-30 Google Inc. Accelerating find in page queries within a web browser
US9342601B1 (en) * 2012-02-24 2016-05-17 Google Inc. Query formulation and search in the context of a displayed document
US9009169B2 (en) * 2012-09-20 2015-04-14 Intelliresponse Systems Inc. Disambiguation framework for information searching
US9171092B2 (en) 2012-12-07 2015-10-27 Empire Technology Development Llc Personal assistant context building
US9710545B2 (en) * 2012-12-20 2017-07-18 Intel Corporation Method and apparatus for conducting context sensitive search with intelligent user interaction from within a media experience
US9477759B2 (en) 2013-03-15 2016-10-25 Google Inc. Question answering using entity references in unstructured data
JP6115941B2 (ja) 2013-03-28 2017-04-19 Kddi株式会社 対話シナリオにユーザ操作を反映させる対話プログラム、サーバ及び方法
JP6162009B2 (ja) 2013-09-18 2017-07-12 株式会社Nttドコモ ユーザのデータ入力に応じて情報提供を行うためのサーバ装置、プログラム、システムおよび方法
JP6110264B2 (ja) 2013-09-18 2017-04-05 株式会社Nttドコモ ユーザのデータ入力に応じて情報提供を行うためのサーバ装置、プログラム、システムおよび方法
US20150278358A1 (en) 2014-04-01 2015-10-01 Microsoft Corporation Adjusting serp presentation based on query intent
US9183303B1 (en) * 2015-01-30 2015-11-10 Dropbox, Inc. Personal content item searching system and method
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US20180365318A1 (en) * 2017-06-19 2018-12-20 Microsoft Technology Licensing, Llc Semantic analysis of search results to generate snippets responsive to receipt of a query

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198869A1 (en) * 2001-06-20 2002-12-26 Barnett Russell Clark Metasearch technique that ranks documents obtained from multiple collections
US20050102282A1 (en) * 2003-11-07 2005-05-12 Greg Linden Method for personalized search
US20160103876A1 (en) * 2014-10-14 2016-04-14 Google Inc. Assistive browsing using context

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220092608A1 (en) * 2020-09-22 2022-03-24 Ebay Inc. Counterfeit item detection system
US11507962B2 (en) * 2020-09-22 2022-11-22 Ebay Inc. Counterfeit item detection system

Also Published As

Publication number Publication date
JP2020526812A (ja) 2020-08-31
EP3549027A1 (en) 2019-10-09
CN110770694A (zh) 2020-02-07
KR20200006107A (ko) 2020-01-17
US20190005138A1 (en) 2019-01-03
JP6942821B2 (ja) 2021-09-29
CN110770694B (zh) 2023-07-14
US11017037B2 (en) 2021-05-25
WO2019010138A1 (en) 2019-01-10

Similar Documents

Publication Publication Date Title
KR102364400B1 (ko) 다수의 코퍼스들로부터 응답 정보 획득
KR102461920B1 (ko) 컨퍼런스 기능을 갖는 자동화된 어시스턴트
US11971936B2 (en) Analyzing web pages to facilitate automatic navigation
US11552814B2 (en) Proactive provision of new content to group chat participants
US11775254B2 (en) Analyzing graphical user interfaces to facilitate automatic interaction
KR20200003871A (ko) 인간-대-컴퓨터 대화들에 요청되지 않은 콘텐츠의 선행적 통합
US20200226216A1 (en) Context-sensitive summarization
KR20180127510A (ko) 메시지 교환 스레드의 증대
US11842206B2 (en) Generating content endorsements using machine learning nominator(s)
KR102668732B1 (ko) 인간-대-컴퓨터 대화들에 요청되지 않은 콘텐츠의 선행적 통합

Legal Events

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