KR102249437B1 - 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대 - Google Patents

메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대 Download PDF

Info

Publication number
KR102249437B1
KR102249437B1 KR1020217003930A KR20217003930A KR102249437B1 KR 102249437 B1 KR102249437 B1 KR 102249437B1 KR 1020217003930 A KR1020217003930 A KR 1020217003930A KR 20217003930 A KR20217003930 A KR 20217003930A KR 102249437 B1 KR102249437 B1 KR 102249437B1
Authority
KR
South Korea
Prior art keywords
message
search query
message exchange
score
content
Prior art date
Application number
KR1020217003930A
Other languages
English (en)
Other versions
KR20210018553A (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 KR20210018553A publication Critical patent/KR20210018553A/ko
Application granted granted Critical
Publication of KR102249437B1 publication Critical patent/KR102249437B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/24765Rule-based classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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/06Message adaptation to terminal or network requirements
    • 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/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content
    • H04L51/16
    • 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/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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/951Indexing; Web crawling techniques
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

참가자들간에 교환되는 메시지의 분류에 기초하여 메시지 교환 스레드를 자동 증대시키기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 매체가 제공된다. 다양한 구현예에서, 참가자에 의해 하나 이상의 메시지 교환 클라이언트를 수반하는 메시지 교환 스레드에 기여하는 메시지가 결정될 수 있다. 다양한 구현에서, 메시지에 대한 분류는 상기 메시지가 검색 질의로서 사용되기에는 부적합한 정도를 나타내는 제 1 점수(유휴 잡담 점수)에 적어도 일부 기초하여 결정될 수 있다. 다양한 구현예에서, 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠 또는 메시지에 대한 대화형 응답이, 상기 분류에 적어도 일부 기초하여 메시지 교환 스레드에 선택적으로 통합될 수 있다. 일부 구현예에서, 검색 질의로서 사용되기 위한 메시지의 적합도 정도를 나타내는 제 2 점수(또는 "검색 질의 적합도 점수")가 또한 계산될 수 있다.

Description

메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대{AUTOMATICALLY AUGMENTING MESSAGE EXCHANGE THREADS BASED ON MESSAGE CLASSFICATION}
일반적으로, 본 발명은 검색 질의에 응답하는 콘텐츠로 메시지 교환 스레드를 자동으로 증대시키기 위한 방법, 디바이스 및 컴퓨터 판독가능 저장매체(일시적 및 비-일시적)에 관한 것이다.
개인 보조 모듈들(personal assistant modules)은 스마트 폰, 태블릿, 차량 내비게이션 시스템 및 스마트 시계와 같은 컴퓨팅 디바이스 뿐만 아니라 범용 컴퓨팅 디바이스(예컨대, 데스크탑, 랩탑)에 설치되어 사용자가 자연어 명령을 내릴 수 있는 사용자 친화적인 인터페이스를 제공하는 소프트웨어 프로세스들이다. 사용자는 종종 자신의 목소리를 사용하여 자연어 명령을 발행하지만, 개인 보조 모듈들은 다양한 형식의 텍스트 및/또는 이미지 입력과 같은 다른 양식에도 응답할 수 있다. 사용자는 텍스트 메시징, 온라인 채팅(예컨대, 인스턴트 메신저, 인터넷 릴레이 채팅 등), 소셜 네트워크 스레드, 대화형 음성 응답 등과 같은 다양한 기술을 사용하여 구현된 메시지 교환 스레드를 통해 개인 보조 모듈들과 및/또는 서로 통신할 수 있다. 전형적으로, 진행중인 메시지 교환 스레드는 텍스트(예컨대, 타이핑되거나 또는 음성 입력으로부터 생성됨) 또는 사용자들이 의도적으로(deliberately) 및 명시적으로(explicitly) 메시지 교환 스레드에 통합시킨 그림들과 같은 다른 데이터로 한정될 수 있다.
일반적으로, 본 발명은 검색 질의에 응답하는 콘텐츠로 메시지 교환 스레드를 자동으로 증대시키기 위한 방법, 디바이스 및 컴퓨터 판독가능 저장매체(일시적 및 비-일시적)에 관한 것으로, 상기 검색 질의는 스레드 내의 참가자에 의해 제공된 메시지에 기초한다. 이러한 콘텐츠를 메시지 스레드에 자동으로 포함시키는 것은, 사용자가 검색을 수동으로 수행할 필요성을 감소시킨다는 점에서, 매우 유용할 수 있다. 이것은 사용자 디바이스 상호작용의 분량 및 계산 리소스들의 관련된 사용량 예를 들어, 어플리케이션 변경 및/또는 검색을 수행함으로써 야기되는 프로세싱 등을 감소시킬 수 있다. 하지만, 어떤 경우들에서는, 이러한 콘텐츠를 메시지 스레드에 포함시키는 것이 적절하지 않을 수 있다(예를 들어, 메시지가 검색의 대상이 되기에는 적절치 않은 경우). 이러한 메시지에 기초하는 검색에 응답하는 콘텐츠를 메시지 교환 스레드에 자동으로 포함시키는 것은, 계산 리소스들을 효율적으로 사용하는 것이 아닐 수도 있다. 따라서, 이러한 문제를 해결하기 위하여, 본 명세서에 설명된 방법, 디바이스 및 컴퓨터 판독가능 매체(일시적 및 비-일시적)는, 참가자들 사이에서 교환된 메시지들의 분류에 기초하여, 검색 질의에 응답하는 콘텐츠를 이용하여 메시지 교환 스레드를 자동으로 증대시킬지의 여부를 결정할 수 있다. 보다 상세하게는, 본 명세서에 서술된 기술들은, 참가자에 의해서 메시지 교환 스레드에 기여되는 메시지(다른 참가자에게 보내지거나 개인 보조 모듈로 보내지는)가 검색 질의로서 적합한지 또는 적합하지 않은지를 분류하고, 그리고 이러한 분류에 기초하여, 참가자의 메시지로부터 생성된 검색 질의에 응답하는 콘텐츠를 전달하는 응답을 자동으로 그리고 선택적으로 통합시키는 것에 관한 발명이다. 일부 일례들에서, 메시지가 검색 질의로서 적합하지 않은 것으로 분류되면, 검색 질의에 응답하는 콘텐츠를 전달하지 않는 응답("잡담형(chatty)" 또는 "대화형(conversational)" 응답)이 메시지 스레드에 통합될 수 있다. 보다 상세하게는, 참가자에 의해 메시지 교환 스레드에 기여되는 메시지에는, 메시지가 검색 질의로서 사용되기에는 부적합한 정도를 나타내는 점수인 제 1 점수(유휴 잡담 점수)가 부여될 수 있으며, 및/또는 메시지가 검색 질의로서 사용되기에 적합한 정도를 나타내는 점수인 제 2 점수(검색 질의 적합도 점수)가 부여될 수도 있다. 상기 제 1 점수 및 제 2 점수는 개별적으로 또는 조합되어, 메시지의 분류를 결정하는데 사용될 수 있다. 하나 또는 두 개의 점수들 모두에 기초하여, 메시지 교환 스레드가, 예를 들어 메시지 교환 스레드에 참가하는 개인 보조 모듈을 대신하여 자동으로 증대될 수 있다.
일부 구현예에서, 컴퓨터로 구현되는 방법이 제공되는바, 상기 방법은, 하나 이상의 메시지 교환 클라이언트들을 수반하는 메시지 교환 스레드로부터, 참가자에 의해 상기 메시지 교환 스레드에 기여되는 메시지를 결정하는 단계; 상기 메시지가 검색 질의로서 사용되기에는 부적합한 정도를 나타내는 제 1 점수를 계산하는 단계; 및 상기 제 1 점수에 적어도 일부 기초하여, 상기 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠를, 상기 메시지 교환 스레드에 선택적으로 통합하는 단계를 포함한다.
일부 구현예에서, 컴퓨터로 구현되는 방법이 제공되는바, 상기 방법은, 하나 이상의 메시지 교환 클라이언트들을 수반하는 메시지 교환 스레드로부터, 참가자에 의해 상기 메시지 교환 스레드에 기여되는 메시지를 결정하는 단계; 상기 메시지와 관련된 유휴 잡담 점수(idle chatter score)를 계산하는 단계; 및 상기 유휴 잡담 점수에 적어도 일부 기초하여, 상기 메시지에 대한 대화형 응답(conversational response) 또는 상기 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠 중 하나를, 상기 메시지 교환 스레드에 선택적으로 통합하는 단계를 포함한다.
이러한 방법 및 본 명세서에 기재된 기술들의 다른 실시예들 각각은 다음 특징들 중 하나 또는 그 이상을 포함할 수 있다.
다양한 구현예들에서, 상기 통합하는 단계는, 소정의 클라이언트 컴퓨팅 디바이스 상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이되는 상기 메시지 교환 스레드의 트랜스크립트 내에 응답을 삽입하는 단계를 포함할 수 있다. 다양한 구현예들에서, 상기 유휴 잡담 점수를 계산하는 단계는 상기 메시지를 입력으로서 머신 학습 모델에 제공하는 단계를 포함하고, 상기 머신 학습 모델은 상기 유휴 잡담 점수를 출력한다. 다양한 구현예들에서, 상기 머신 학습 모델은 또한, 상기 메시지와 관련된 검색 질의 적합도 점수를 출력으로서 제공한다. 다양한 구현예들에서, 상기 방법은, 유휴 잡담 점수를 검색 질의 적합도 점수와 비교하는 단계; 및 하나 이상의 프로세서들에 의해서, 상기 비교에 일부 기초하여, 상기 메시지 교환 스레드에 통합시키기 위해, 상기 메시지에 대한 대화형 응답 또는 상기 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠를 선택하는 단계를 더 포함한다.
다양한 구현예들에서, 머신 학습 모델은 적어도 하나의 긍정적인(positive) 트레이닝 일례에서 트레이닝될 수 있다. 상기 적어도 하나의 긍정적인 트레이닝 일례는, 이전(prior) 메시지 교환 스레드의 하나 이상의 참가자들이 상기 이전 메시지 교환 스레드의 이전 메시지에 대화형 응답을 통합하는 것에 대해 긍정적으로 반응한 경우 또는 이전 메시지에 기초하여 생성된 이전의 검색 질의에 응답하는 콘텐츠를 통합하는 것에 대해 긍정적으로 반응한 경우를 포함한다.
다양한 구현예들에서, 상기 방법은, 검색 질의에 응답하는 콘텐츠와 관련된 검색 결과 점수를 계산하는 단계를 더 포함하며, 상기 통합하는 단계는 상기 검색 결과 점수에도 또한 기초할 수 있다. 다양한 구현예들에서, 상기 검색 결과 점수는, 상기 검색 질의에 응답하는 하나 이상의 부상된(surfaced) 검색 결과들의 존재에 적어도 일부 기초할 수 있다. 다양한 구현예들에서, 상기 방법은, 하나 이상의 공지된 엔티티들 혹은 상기 메시지에서 언급된 엔티티 유형들에 적어도 일부 기초하여, 상기 메시지와 관련된 검색 질의 적합도 점수를 계산하는 단계를 더 포함할 수 있다.
다른 구현예들은 전술한 방법들 중 하나 이상과 같은 방법을 수행하도록 프로세서에 의해 실행가능한 명령들을 저장하는 비-일시적 컴퓨터 판독가능한 저장매체를 포함할 수 있다. 또 다른 구현예들은 전술한 방법들 중 하나 이상과 같은 방법을 단독으로 또는 집합적으로 수행하는 하나 이상의 모듈들 또는 엔진을 구현하기 위해, 메모리 및 메모리에 저장된 명령을 실행하도록 동작가능한 하나 이상의 프로세서를 포함하는 시스템을 포함할 수 있다.
다음을 유의해야 하는바, 본 명세서에서 상세하게 설명된 전술한 개념들 및 추가적인 개념들의 모든 조합은 본원 명세서에 개시된 주제의 일부로서 고려될 수 있다. 예를 들어, 본 명세서의 끝 부분에 나타난 청구된 주제의 모든 조합들은 본 명세서에 개시된 주제의 일부분으로 고려된다.
도 1은 본 발명의 다양한 구현예에 따라 콘텐츠가 자동으로 메시지 교환 스레드에 통합되는 환경을 도시한다.
도 2는 본 발명의 다양한 구현예에 따라 개시된 기술들과 관련된 예시적인 프로세스 흐름을 도시한다.
도 3 및 도 4는 다양한 구현예에 따라 본 발명의 기술이 실시될 때, 예시적인 그래픽 사용자 인터페이스가 어떻게 영향을 받을 수 있는지를 도시한다.
도 5는 다양한 구현예들에 따라, 진행중인 메시지 교환을 콘텐츠로 증대시키는 예시적인 방법을 도시한 흐름도이다.
도 6은 컴퓨터 시스템의 예시적인 아키텍처를 개략적으로 도시한다.
도 1은 사용자들 사이에서 교환된 메시지들의 검출된 "톤(tone)"(예를 들어, 유휴 잡담(idle chatter) 대 객관적인 요청들/질문들)에 기초하여 메시지 교환 스레드가 콘텐츠로 자동으로 증대될 수 있는 환경을 도시한다. 예시적인 환경은 복수의 클라이언트 디바이스들(1061-N) 및 지식 시스템(102)을 포함한다. 지식 시스템(102)은 예를 들어 네트워크를 통해 통신하는 하나 이상의 컴퓨터들에 구현될 수 있다. 지식 시스템(102)은 여기에 기술된 시스템, 구성 요소 및 기술이 구현될 수 있고 및/또는 여기에 기술된 시스템, 구성 요소 및 기술이 인터페이스할 수 있는 정보 검색 시스템의 일례이다.
사용자는 클라이언트 디바이스(106)를 통해 지식 시스템(102)과 상호작용할 수 있다. 각각의 클라이언트 디바이스(106)는 근거리 통신망(LAN) 또는 광역 통신망(WAN)(예컨대, 인터넷)과 같은 하나 이상의 네트워크(110)를 통해 지식 시스템(102)에 연결된 컴퓨터일 수 있다. 각각의 클라이언트 디바이스(106)는 예를 들어 데스크톱 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 이동 전화 컴퓨팅 디바이스, 사용자의 차량 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템), 독립형 음성 명령 디바이스, 또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 기기(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경)가 될 수 있다. 추가적인 및/또는 대안적인 클라이언트 디바이스가 제공될 수 있다. 사용자는 사용자가 소유하거나 소유하지 않을 수 있는 컴퓨팅 디바이스들의 조정된 "생태계(ecosystem)"를 집합적으로 형성하는 복수의 컴퓨팅 디바이스들을 운영할 수도 있다. 그러나, 간결성을 위해, 본 개시에서 설명된 예들은 단일 클라이언트 디바이스(106)를 운영하는 사용자에 초점을 맞출 것이다.
각각의 클라이언트 디바이스(106)는 메시지 교환 클라이언트(107) 및/또는 개인 보조 모듈(personal assistant module)(109)과 같은 다양한 상이한 어플리케이션들을 동작시킬 수 있다. 메시지 교환 클라이언트(107)는 다양한 형태로 존재할 수 있다. 일부 구현예에서, 메시지 교환 클라이언트(107)는 단문 메시징 서비스("SMS") 및/또는 멀티미디어 메시징 서비스("MMS") 클라이언트, 온라인 채팅 클라이언트(예를 들어, 인스턴트 메신저, 인터넷 릴레이 채팅, 또는 "IRC"등), 소셜 네트워크와 관련된 메시징 어플리케이션, 개인 보조 모듈 등과 통신하기 위해 사용되는 인터페이스 등을 포함할 수 있다. 일부 구현예에서, 메시지 교환 클라이언트(107)는 웹 브라우저(도시되지 않음)에 의해 렌더링된 웹 페이지 내에 구현될 수 있다. 다양한 경우에 있어서, 메시지 교환 스레드의 참가자에 의해 운영되는 2 개의 클라이언트 디바이스들(106)은 서로 다른 메시지 교환 클라이언트들(107)을 구동할 수 있다(그럼에도 불구하고 공통 통신 프로토콜을 사용하여 통신을 용이하게 하는). 예를 들어, 클라이언트 디바이스(1061)는 설치된 하나의 벤더에 의해 배포된 하나의 SMS 어플리케이션을 가질 수 있고, 클라이언트 디바이스(106N)는 설치된 다른 벤더에 의해 배포된 다른 하나의 SMS 어플리케이션을 가질 수 있다.
배경 기술 부분에서 설명한 바와 같이, 개인 보조 모듈들(personal assistant modules)(109)은 소정의 클라이언트 컴퓨팅 디바이스에 설치되어 자연어 명령을 내릴 수 있는 사용자 친화적인 인터페이스를 사용자에게 제공하는 소프트웨어 프로세스들의 형태를 취할 수 있다. 개인 보조 모듈(109)은 개인 보조 모듈(109)을 활성화하도록 선택된 하나 이상의 코드 워드를 사용자가 말하는 것과 같은 다양한 자극에 의해 호출되거나 "각성" 될 수 있다. 본원에 기재된 다양한 구현예에서, 사용자는 예를 들어 음성 입력, 텍스트 입력 등을 사용하여 메시지 교환 스레드에서 개인 보조 모듈(109)과 통신할 수 있다. 또한, 개인 보조 모듈(109)은 다수의 클라이언트 디바이스들(106) 상에서 동작하고 다수의 참가자들에 의해 제어되는 다수의 메시지 교환 클라이언트들(107)을 포함하는 메시지 교환 스레드에 참가할 수 있다. 예를 들어, 그리고 이하에서 보다 상세히 설명되는 바와 같이, 개인 보조 모듈(109)은 메시지 교환 스레드에 기여하는 하나 이상의 참가자들에 의한 하나 이상의 메시지들에 응답하여, 메시지 교환 스레드에 콘텐츠를 자동으로 선택 및 통합시킬 수 있다.
클라이언트 디바이스(106) 및 지식 시스템(102) 각각은 데이터 및 소프트웨어 어플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 어플리케이션을 실행하기 위한 하나 이상의 프로세서 및 네트워크를 통한 통신을 용이하게 하는 다른 구성요소들을 포함할 수 있다. 클라이언트 디바이스(106) 및/또는 지식 시스템(102)에 의해 수행되는 동작들은 다수의 컴퓨터 시스템들에 분산될 수 있다. 지식 시스템(102)은 예를 들어, 네트워크를 통해 서로 결합되는 하나 이상의 위치들에 있는 하나 이상의 컴퓨터들 상에서 실행되는 컴퓨터 프로그램들로서 구현될 수 있다.
다양한 구현예에서, 지식 시스템(102)은 메시지 교환 엔진(120), 개인 보조 엔진(122), 인덱싱 엔진(126), 정보 엔진(130), 순위 엔진(134) 및 대안적인 질의 제안 엔진(136)을 포함할 수 있다. 일부 구현예에서, 엔진들(120, 122, 126, 130, 134 및/또는 136) 중 하나 이상이 생략될 수도 있다. 일부 구현예에서, 하나 이상의 엔진들(120, 122, 126, 130, 134 및/또는 136)의 전부 또는 양상들 결합될 수도 있다. 일부 구현예에서, 하나 이상의 엔진들(120, 122, 126, 130, 134 및/또는 136)은 지식 시스템(102)과 별개의 구성 요소로 구현될 수 있다. 일부 구현예에서, 하나 이상의 엔진들(120, 122, 124, 128, 134 및/또는 136) 또는 그것의 임의의 동작 부분은 클라이언트 디바이스(106)에 의해 실행되는 구성요소에서 구현될 수 있다.
다양한 구현에서, 메시지 교환 엔진(120)은 다수의 참가자들에 의해 제어되는 다수의 클라이언트 디바이스들(106) 상에서 동작하는 다수의 메시지 교환 클라이언트들(107) 간의 메시지 교환 스레드를 용이하게 하도록 구성될 수 있다. 예를 들어, 메시지 교환 엔진(120)은, 참가자들이 메시지 교환 스레드에서 서로 교환하는 메시지들 및 다른 콘텐츠의 글로벌 "트랜스크립트(transcript)"를 유지할 수 있다. 본 명세서에서 사용된 바와 같이, "트랜스크립트"는 메시지 교환 스레드에서 하나 이상의 참가자들에 의해서 교환 및/또는 보여지는 텍스트, 이미지, 사운드 및/또는 애플릿의 라이브 레코드를 지칭할 수 있다. 일부 구현에서, 메시지 교환 스레드의 트랜스크립트는 참가자들이 대화함에 따라 실시간으로 또는 거의 실시간으로 업데이트될 수 있다. 하나의 참가자가 개인 보조 모듈(109)과 통신하는 경우, 트랜스크립트는 개인 보조 모듈(109)에 의해 국부적으로 및/또는 개인 보조 엔진(122)에 의해 원격으로 유지될 수 있다.
다양한 구현예에서, 개인 보조 엔진(122)은 예를 들어, 인덱스(124)에 저장될 수 있는 다양한 온라인 음향/언어, 문법 및/또는 동작 모델에 의존하는 음성 기반의 질의 프로세서를 사용하여 음성 입력을 처리하기 위한 보완적인 기능을 포함할 수 있다. 다음을 유의해야 하는바, 일부 구현예에서, 특히 대부분의 클라이언트 디바이스들(106)은 리소스-제한적인 디바이스들이므로, 개인 보조 엔진(122)은 각 클라이언트 디바이스(106)에 대해 로컬인 것보다 더 복잡하고 리소스-집중형인 음성 프로세싱 기능을 구현할 수 있다. 또한, 다음을 유의해야 하는바, 본원에서 소정 액션이 개인 보조 모듈(109)에 의해 수행되는 것으로 서술되는 경우, 이는 개인 보조 엔진(122)에 의해 수행되는 액션의 하나 이상의 양상을 포함할 수도 있고 포함하지 않을 수도 있다.
일부 구현예에서, 다수의 개인 보조 엔진들(122)이 채용될 수 있고, 이들 각각은 하나 이상의 개별 개인 보조 모듈들(109)의 온라인 상대방(counterpart)으로서의 역할을 한다. 예를 들어, 일부 구현예에서, 사용자의 생태계의 각각의 클라이언트 디바이스들(106)은, 사용자와 관련된 개인 보조 모듈(109)의 인스턴스를 동작하도록 구성될 수 있다(예를 들어, 사용자의 선호도로 구성되고, 동일한 상호작용 히스토리와 연관되는 등). 개인 보조 엔진(122)의 하나의, 사용자 중심 온라인 인스턴스는, 사용자가 그 시간에 어떤 디바이스를 조작하고 있는지에 따라, 개인 보조 모듈(109)의 이들 다수의 인스턴스들 각각에 액세스 가능할 수 있다.
일부 구현예에서, 온라인 및 오프라인 기능 둘다가 지원될 수 있는바, 예를 들어, 클라이언트 디바이스(106)가 온라인 서비스와 통신할 때마다 온라인 기능이 이용되는 반면에, 연결성이 존재하지 않는 경우 오프라인 기능이 이용될 수 있다. 다른 구현예에서, 상이한 액션들 또는 액션 도메인들이 온라인 및 오프라인 기능에 할당될 수 있으며 그리고, 다른 구현예에서는 오프라인 기능이 특정 음성 입력을 적절히 처리하지 못할 때에만 온라인 기능이 사용될 수도 있다. 그러나 다른 구현에서는 보완적인 온라인 기능이 사용되지 않을 수도 있다.
인덱싱 엔진(126)은 지식 시스템(102)에 의한 사용을 위해 인덱스(128)를 유지할 수 있다. 인덱싱 엔진(126)은 예를 들어 종래의 및/또는 다른 인덱싱 기술을 사용하여, 문서를 프로세싱하고 인덱스(128)의 인덱스 엔트리들을 업데이트한다. 예를 들어, 인덱싱 엔진(126)은 월드 와이드 웹(World Wide Web)과 같은 하나 이상의 자원을 크롤링하고, 이러한 크롤링을 통해 액세스된 문서를 인덱스할 수 있다. 다른 예로서, 인덱싱 엔진(126)은 하나 이상의 문서와 관련된 정보를 이러한 문서를 제어하는 웹 마스터와 같은 하나 이상의 리소스로부터 수신하고 그리고 이러한 정보에 기초하여 문서를 인덱스할 수 있다. 문서는 문서 주소와 관련된 임의의 데이터이다. 문서는 웹 페이지, 워드 프로세싱 문서, PDF(portable document format) 문서, 이미지, 전자 메일, 캘린더 항목, 비디오 및 웹 피드 등을 포함한다. 각각의 문서는 예를 들어, 텍스트, 이미지, 비디오, 사운드, 내장 정보(예컨대, 메타 정보 및/또는 하이퍼 링크), 및/또는 임베디드 명령어(예컨대, JavaScript와 같은 ECMAScript 구현들)를 포함한다.
정보 엔진(130)은 지식 시스템(102)에 의한 사용을 위해, 비-문서-특정 정보(non-document-specific information)에 대한 액세스를 포함하거나 또는 액세스를 용이하게 하는 다른 인덱스(132)를 유지할 수 있다. 예를 들어, 지식 시스템(102)은 특정 정보를 찾는 것처럼 보이는 검색 질의들에 응답하여 정보를 반환하도록 구성될 수 있다. 만일, 사용자가 "로날드 레이건의 생일"을 검색한다면, 지식 시스템(102)은 정보 엔진(130)으로부터 그 날짜, 즉 "1911년 2월 6일"을 수신할 수 있다. 이러한 정보는 인덱싱 엔진(126)으로부터 수신된 문서들과는 별개인 검색 결과의 일부로서 사용자에게 반환될 수 있다. 다양한 구현에서, 인덱스(132) 자체가 정보를 포함할 수도 있으며, 또는 이것은 온라인 백과 사전, 연감(almanacs) 등과 같은 하나 이상의 다른 정보 소스에 링크될 수 있다. 다양한 구현에서, 인덱스(128) 또는 인덱스(132)는, 질의들(또는 질의 용어들)와 문서 및/또는 정보 간의 매핑들을 포함할 수 있다.
본 명세서에서, 용어 "데이터베이스" 및 "인덱스"는 임의의 데이터 집합을 지칭하기 위해 광범위하게 사용될 것이다. 데이터베이스 및/또는 인덱스의 데이터는 임의의 특정 방식으로 구조화될 필요가 없으며, 그리고 하나 이상의 지리적 위치에 있는 저장 디바이스들에 저장될 수 있다. 따라서, 예를 들어, 인덱스들(124, 128 및 132)은 다수의 데이터 집합들을 포함할 수 있으며, 각각의 데이터 집합은 다르게 구성되고 액세스될 수 있다.
순위 엔진(134)은 예를 들어 종래의 및/또는 다른 정보 검색 기술을 사용하여 검색 질의에 응답하는 문서 및 다른 정보를 식별하기 위해 인덱스(128 및/또는 132)를 사용할 수 있다. 순위 엔진(134)은 예를 들어 하나 이상의 랭킹 신호를 사용하여, 검색 질의에 응답하여 식별된 문서 및 다른 정보에 대한 점수를 계산할 수 있다. 각각의 랭킹 신호는 문서 또는 정보 자체에 관한 정보, 문서 또는 정보와 검색 질의 간의 관계 및/또는 문서 또는 정보와 검색을 수행하는 사용자 간의 관계를 제공할 수 있다.
대안적인 질의 제안 엔진(136)은 대안적인 질의 제안(도시되지 않음)의 데이터베이스 및/또는 클라이언트 디바이스(106)의 사용자에 관한 정보(예를 들어, 검색 히스토리, GPS 위치, 사용자 속성들) 등과 같은 하나 이상의 신호들 및/또는 다른 정보를 이용하여, 임의의 검색 결과들과 함께 클라이언트 디바이스(106)에 제공할 대안적인 질의 제안들을 생성할 수 있다. 사용자가 검색 질의의 연속적인 문자들을 타이핑함에 따라, 대안적인 질의 제안 엔진(136)은 사용자에게 유용한 결과를 산출할 수 있는 대안적인 질의들을 식별할 수 있다. 예를 들어, 클라이언트 디바이스(106)가 시카고에 위치하고 있으며, "restaur" 라는 문자를 입력받는다고 가정하자. 대안적인 질의 제안 엔진(136)은, 클라이언트 디바이스(106)가 시카고에 있음을 나타내는 위치 신호 및 라이브 음악이 있는 레스토랑에 대한 사용자 선호도를 나타내는 검색 히스토리 신호에 기초하여, "라이브 음악이 있는 시카고의 레스토랑(restaurants in Chicago with live music)" 이라는 질의를 제안할 수 있다. 다른 일례로서, "Ronald Reagan's birt"를 타이핑한 사용자의 경우, 대안적인 질의 제안 엔진(136)은, 예컨대, 프리픽스 매칭 기법 등을 이용하여, "로널드 레이건의 생일(Ronald Reagan's birthday)" , "로널드 레이건이 태어난 곳(Ronald Reagan's birthplace)" , "로널드 레이건의 산아 제한 정책(Ronald Reagan's birth control position)" 기타 등등의 대안적인 질의들을 결정하고 제안할 수 있다. 대안적인 질의 제안 엔진(136)은 또한 다른 제안들 가령, 부분적으로 완성된 검색 질의의 스펠링이 보정된 버전들 등을 제공할 수도 있다.
다양한 구현예에서, 메시지 교환 엔진(120) 또는 개인 보조 엔진(122)과 같은 온라인 구성요소, 또는 개별 메시지 교환 클라이언트(107) 또는 개인 보조 모듈(109)과 같은 클라이언트 디바이스(106)에 대해 로컬인 구성요소는, 하나 이상의 메시지 교환 클라이언트들(107)을 포함하는 메시지 교환 스레드로부터, 참가자에 의해 메시지 교환 스레드에 기여하는 메시지를 결정하도록 구성될 수 있다. 다음으로, 메시지와 관련된 제 1 또는 "유휴 잡담 점수(idle chatter score: ICS)"가 계산될 수 있다. 유휴 잡담 점수(ICS)에 적어도 일부 기초하여, 상기 메시지에 대한 대화형 응답(conversational response) 또는 상기 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠가, 메시지 교환 스레드에 선택적으로 통합될 수 있다.
상대적으로 높은 유휴 잡담(idle chatter) 점수들을 갖는 메시지는 참가자에 의해서 개인 보조 모듈(109)로 향하는 및/또는 다른 참가자로 향하는 메시지들이 될 수 있으며, 이들은 한가한 수다(idle chit chat), 정보 및/또는 사소한 대화(trivial conversation), 소위 스몰 토크(small talk), 주관적인 문의(subjective inquiries), 기타 등등을 포함하는 메시지들이 될 수 있다. 이러한 메시지들은 검색 질의를 생성하는데 적합하지 않을 수 있는데, 그 이유는 이러한 검색 질의에 응답하는 콘텐츠가 메시지 교환 스레드에 통합되더라도 특히 도움이 되지 않을 수 있기 때문인바, 왜냐하면 예컨대, 이러한 응답 콘텐츠는 특별히 포커싱을 잘 맞춘것이 아니거나, 별 다른 의미가 없을 수도 있으며 및/또는 메시지 교환 스레드에서 발생되고 있는 대화의 톤에 특별하게 관련되지 않을 수 있기 때문이다. 다시 말하면, 유휴 잡담 점수가 상대적으로 높은 메시지들은 메시지 교환 스레드를 증대시키는 외부적인/객관적인 정보를 획득하는 참가자에 의한 의도를 나타내지 않을 수도 있다(명시적 또는 암시적으로). 예를 들어, 참가자가 개인 보조 모듈이나 메시지 교환 스레드의 다른 참가자에게 "안녕하세요(Hi)", "안녕하세요?(How are you?)", "오바마에 대해 어떻게 생각하십니까?(What do you think about Obama?)", "좋아하는 색깔은 무엇입니까?" 등등과 같은 것들을 말하는 경우, 상대적으로 높은 유휴 잡담 점수가 이러한 메시지에 할당될 수 있다.
전술한 바와 같이, 참가자들은 개인 보조 모듈(109) 또는 다른 참가자에게 상대적으로 높은 유휴 잡담 점수를 갖는 메시지를 보낼 수 있다. 다양한 구현예에서, 이러한 메시지가 개인 보조 모듈(109)로 보내지는 경우, 소위 "대화형 응답"이 식별될 수 있으며 그리고 예를 들어, 개인 보조 모듈(109) 및/또는 메시지 교환 엔진(120)에 의해서 메시지 교환 스레드에 통합될 수 있다. 일부 구현예에서, 메시지와 관련된 유휴 잡담 점수는, 예를 들어 "퍼지(fuzzy)" 검색을 이용하여, 상기 메시지를 복수의 후보 메시지/대화형 응답 쌍들(candidate message/conversational response pairs)과 매칭함으로써 계산될 수 있다. 각각의 매칭 쌍은, 상기 메시지가 후보 메시지/대화형 응답 쌍과 얼마나 잘 매칭되는지에 기초하여, 점수를 할당받을 수 있다. 다음으로, 상기 메시지와 가장 잘 매칭되는 후보 메시지/대화형 응답 쌍으로부터(예를 들어, 가장 높은 점수를 갖는), 유휴 잡담 점수가 결정될 수 있다. 만일, 유휴 잡담 점수가 하나 이상의 임계값들을 충족시킨다면, 또는 아래에 설명된 바와 같이, 제 2의 또는 "검색 질의 적합도(search query suitability)" 점수를 소정 분량(Δ)(하나 이상의 임계값들을 충족하는) 만큼 초과한다면, 그것은 검색 질의에 적합하지 않은 것으로 분류될 수 있으며, 그리고 가장 잘 매칭되는 메시지/대화형 응답 쌍으로부터의 대화형 응답이 예컨대, 개인 보조 모듈(109)에 의해서 메시지 교환 스레드에 통합될 수 있다.
또한, 상대적으로 높은 유휴 잡담 점수(ICS)를 갖는 메시지들이 메시지 교환 스레드의 하나의 참가자에 의해서 다른 참가자로 보내질 수 있다(개인 보조 모듈 109로 보내지는 것이 아니라). 일부 구현예에서, 전술한 바와 유사한 분석이 수행될 수 있다. 하지만, 대화형 응답을 메시지 교환 스레드에 곧장(directly) 통합하는 대신에, 하나 이상의 그래픽 요소들(예를 들어, 렌더링된 버튼)이 상기 다른 참가자에게 제공될 수 있는바, 상기 다른 참가자는 상기 그래픽 요소를 선택하여 스크립트화된 자동-응답(scripted auto-response)이 메시지 교환 스레드에 통합되게 할 수 있다. 다른 구현예에서는, 참가자와 개인 보조 모듈 사이가 아니라, 참가자들 사이에서의 높은 유휴 잡담 점수(ICS)를 갖는 메시지들은 단순히 무시될 수 있다.
상대적으로 높은 유휴 잡담 점수를 갖는 메시지들과는 반대로, 상대적으로 높은 검색 질의 적합도 점수를 갖는 메시지들은 검색 질의의 생성 및 제출에 보다 더 적합할 수 있고, 따라서 그와 같이 분류될 수 있다. 이러한 메시지로부터 생성된 하나 이상의 검색 질의들에 응답하는 콘텐츠는 메시지 교환 스레드에 통합되기에 적합할 수 있는데, 이것은 포커싱을 잘 맞춘것일 수 있으며 및/또는 메시지 교환 스레드에서 발생되고 있는 대화의 톤에 관련될 가능성이 많기 때문이다. 상대적으로 높은 검색 질의 적합도 점수가 부여될 수 있는 메시지들의 일례들은, 객관적인 정보를 추구하는(혹은 적어도 관련성이 있는) 메시지들을 포함할 수 있는바, 예를 들어, "버락 오마바는 누구인가?(Who is Barack Obama?)", "메인주의 주도는 뭐지?(What is the capital of Maine)", "나는 톰 브래디가 누구랑 결혼한지 궁금하다(I wonder who Tom Brady is married to)", "새 영화의 주연은 누구야?(Who stars in that new film?)" 기타 등등을 포함할 수 있다.
일부 구현예에서, 하나 이상의 머신 학습 모델은, 하나 이상의 참가자 메시지들을 입력으로서 수신하고 그리고 유휴 잡담 점수 및/또는 검색 질의 적합도 점수를 출력하도록 트레이닝될 수 있다. 이러한 점수들에 기초하여, 다양한 콘텐츠가 메시지 교환 스레드에 선택적으로 통합될 수 있는데, 예를 들어, 스레드의 참가자가 조작하는 하나 이상의 메시지 교환 클라이언트에 의해 렌더링되는 트랜스트립트에 디스플레이되거나, 또는 청각적으로 출력될 수 있다(예를 들어, 독립형 보이스 커맨드 디바이스에 의해서). 일부 구현예에서, 유휴 잡담 점수가 검색 질의 적합도 점수보다 충분히 크거나 및/또는 유휴 잡담 점수가 소정의 임계값을 충족한다면, 상기 메시지에 가장 잘 매칭되는 메시지/대화형 응답 쌍과 관련된 대화형 응답이 스레드에 통합될 수 있다. 예를 들어, 사용자가 "헬로(Hello)"라고 말한다면, 대화형 응답은 "하이(hi)"또는 "hello to you"가 될 수 있다. 그렇지 않으면, 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠가 메시지 교환 스레드에 통합될 수 있다.
일부 구현예에서, 하나 이상의 머신 학습 모델은 하나 이상의 이전 메시지 교환 스레드들로부터 획득된 메시지들의 말뭉치(corpus: 이하, '말뭉치' 혹은 '코퍼스'라 함)를 사용하여 트레이닝될 수 있다. 예를 들어, 메시지 교환 스레드에 콘텐츠가 통합됨을 트리거링하는 참가자 메시지의 하나 이상의 이전 인스턴스들이 분석될 수 있다. 부정적인(negative) 트레이닝 일례는, 예컨대, 개인 보조 모듈에 의하여(on behalf of) 콘텐츠가 메시지 교환 스레드에 통합되었지만, 하나 이상의 참가자들에 의해서 그 콘텐츠가 거절 또는 적어도 무시되는(예컨대, 참가자(들)이 대화의 주제를 급작스럽게 변경함이 검출됨) 인스턴스를 포함할 수 있다. 긍정적인(positive) 트레이닝 일례는, 참가자들이 통합된 콘텐츠에 긍정적으로 반응하는 인스턴스들(예컨대, 유사한 방향으로 후속 대화를 이끌어 가거나 및/또는 후속 질문을 하는 경우들과 같이)을 포함할 수 있다. 일부 구현예에서는, 긍정적인 트레이닝 일례 및/또는 부정적인 트레이닝 일례만이 하나 이상의 머신 학습 모델을 트레이닝시키는데 사용될 수 있다.
입력으로서 메시지(들)를 하나 이상의 머신 학습 모델에 직접 입력하는 것 대신에 또는 이에 부가하여, 다양한 구현예에서, 메시지의 용어들(terms)(또는 토큰들(tokens))의 다양한 순열들(permutations)이 입력으로 사용될 수 있다. 일부 구현예에서, 예를 들어, 용어들/토큰들의 하나 이상의 쌍들이 하나 이상의 머신 학습 모델에 입력으로서 제공될 수 있다. 일부 구현예에서, 용어들의 하나 이상의 그룹들(예를 들어, 하나의 클래스 내의)이 입력으로서 제공될 수 있다. 다른 구현예에서, 자연 언어 프로세서 또는 다른 유사한 구성요소는는 다양한 방식으로(예를 들어, 품사(part of speech), 엔티티 해상도 등)으로 메시지에 주석을 달 수 있으며, 이들 주석들은 하나 이상의 머신 학습 모델에 대한 입력으로 사용될 수 있다.
메시지 자체의 속성들 이외에도, 다른 신호들이, 유휴 잡담 점수 및 검색 질의에 대한 적합도 점수를 계산할 때에 고려될 수 있다. 일부 구현예에서, 참가자의 위치, 현지 시간 등과 같은 참가자에 관한 하나 또는 상황별 신호(contextual signal)가 고려될 수 있다. 예를 들어, 특정 메시지는 제 1 국가에서는 높은 유휴 잡담 점수를 할당받을 수 있으며, 제 2 국가에서는 높은 검색 질의 적합도 점수를 할당받을 수 있다. 만약, 참가자가 메시지 교환 스레드에 메시지를 제공할 때 제 1 국가에 위치한다면, 상기 메시지는 참가자가 제 2 국가에 있었던 경우보다 높은 유휴 잡담 점수를 받을 수 있다.
일부 구현예에서, 메시지를 사용하여 생성된 검색 질의에 응답하는 콘텐츠의 특성들은, 검색 질의 적합도 점수를 계산할 때 고려될 수 있다. 예를 들어, 메시지로부터 생성된 특정 검색 질의에 응답하는 일부 콘텐츠는, 검색 엔진 결과 페이지(search engine results page: "SERP")에서 눈에 띄게 디스플레이되는(예를 들어, 검색 엔진 결과 페이지의 상단에 디스플레이되는) 하나 이상의 소위 "부상된(surfaced)" 피처들을 포함할 수 있다. 부상된 콘텐츠(surfaced content)는 검색 질의에 대한 직접적인 답변(이는 기본 검색 결과들(organic search results) 위에 예를 들어, 박스 안에 디스플레이되거나 되지 않을 수 있음), 탐색 검색 결과들(navigational search results), 기타 등등을 포함할 수 있다. 하나 이상의 검색 질의로서 제출할 때 하나 이상의 부상된 피처들을 산출하는 메시지는, 상대적으로 높은 검색 질의 적합도 점수를 받을 수 있다. 이와 반대로, 응답 콘텐츠가 포커싱이 맞지 않거나 및/또는 메시지 교환 스레드의 톤(tone)과 관련이 없는 경우, 이러한 것은 검색 질의 적합도 점수를 감소시킬 수 있다. 일부 구현예에서, 높은 검색 질의 적합도 점수는 유휴 잡담 점수에 영향을 줄 수 있으며, 그 반대의 경우도 마찬가지이다. 예를 들어, 메시지로부터 생성된 검색 질의에 응답하는 콘텐츠가 특별히 포커싱되거나, 인기가 있거나(popular), 및/또는 메시지 교환 스레드의 톤에 관련이 있다면, 이는 상기 메시지가 단순한 유휴 잡담이었을 가능성을 감소시킬 수 있다.
메시지의 검색 질의 적합도 점수가 임계값을 충족시키는 경우 또는 메시지의 검색 질의 적합도 점수와 유휴 잡담 점수 간의 차이가 충분히 큰 경우, 예컨대, 메시지 교환 엔진(120), 개인 보조 엔진(122), 메시지 교환 클라이언트(107), 개인 보조 모듈(109) 등에 의해서, 하나 이상의 검색 질의가 생성될 수 있으며 그리고 지식 시스템(102)의 다양한 구성요소들로 제출될 수 있다. 하나 이상의 검색 질의에 응답하는 문서들 및 정보와 같은 콘텐츠는, 인덱싱 엔진(126) 및/또는 정보 엔진(130)을 포함하지만 이에 한정되지 않는 이들 다양한 구성요소들로부터 획득될 수 있다. 다양한 구현예에서, 하나 이상의 검색 질의에 응답하는 콘텐츠는 또한, 대안적인 질의 제안 엔진(136)으로부터 리턴된 대안적인 질의 제안들을 더 포함할 수 있다. 일부 구현예에서, 하나 이상의 검색 질의에 응답하는 콘텐츠는 그것이 리턴되기 전에 순위 엔진(134)에 의해 순위가 매겨질 수 있다.
응답 콘텐츠에 기초하여, 그래픽 요소들(단어들, 이미지들, 애니메이션들, 애플릿들), 소리 등과 같은 상기 응답 콘텐츠와 관련된 다양한 아이템들이, 2 이상의 메시지 교환 클라이언트들(107)을 조작하는 2 이상의 사용자들 간의 메시지 교환 스레드에 통합될 수 있다. 메시지 교환 스레드의 트랜스크립트가 하나 이상의 참가자들(예를 들어, 각각의 그래픽 사용자 인터페이스들)에게 보여지는 구현예들에서, 통합된 아이템들은 하나 이상의 사용자들에 의해 보여질 수 있다. 대조적으로, 순전히 청각적인/음성 응답 구현예에서, 이러한 응답 콘텐츠는 참가자에게 청각적으로 전달될 수 있다.
아이템들은 다수의 메시지 교환 클라이언트들(107) 사이의 메시지 교환 스레드에 다양한 방식으로 통합될 수 있다. 일부 구현예에서, 메시지 교환 엔진(120), 개인 보조 엔진(122), 또는 개인 보조 모듈(109)은, 메시지 교환 스레드에 참여하는 적어도 하나의 메시지 교환 클라이언트(107)가, 응답 콘텐츠와 연관된 하나 이상의 그래픽 요소들을, 그래픽 사용자 인터페이스에서 디스플레이되는 진행중인 메시지 교환 스레드의 트랜스크립트 내에 삽입할 것을 요청할 수 있다. 일부 시나리오에서, 그래픽 요소들은, 2 이상의 메시지 교환 클라이언트(107)에 의해 렌더링되는 트랜스크립트들(가령, 메시지 교환 스레드에 참여하는 모든 메시지 교환 클라이언트들(107)에 의해 렌더링되는 트랜스크립트들) 내에 통합될 수 있다. 일부 구현예에서, 응답 콘텐츠는 각각의 메시지 교환 클라이언트(107)에 단순히 제공될 수 있으며, 메시지 교환 클라이언트는 메시지 교환 스레드의 트랜스크립트의 버전에 어떤 콘텐츠를 통합할지를 선택할 수 있다. 또는, 전술한 바와 같이, 구성요소들(120, 122, 107 및/또는 109) 중 임의의 하나는 청취가능한 메시지 교환 스레드에 아이템들을 청각적으로 통합할 수 있다.
다양한 유형들의 그래픽 요소들이 메시지 교환 스레드의 렌더링된 트랜스크립트 내에 통합될 수 있다. 일부 구현예에서, 하나 이상의 그래픽 요소들은 메시지 교환 엔진(120)에 의해 형성된 검색 질의에 응답하는 정보를 전달하는 텍스트를 포함할 수 있다. 제 1 참가자가 자신의 메시지 교환 클라이언트(107)를 조작하여, "미합중국(union)에 가입한 첫 번째 주(state)는 무엇이었습니까?" 라는 질문을 다른 참가자 또는 개인 보조 모듈(109)에 제기한다라고 가정하자. 메시지 교환 엔진(120), 개인 보조 모듈(109), 개인 보조 엔진(122), 또는 다른 구성요소는, 사용자의 요청에 따라 또는 자발적으로(sua sponte), 상기 질문을(또는 그 변형예들을) 인덱싱 엔진(126) 및/또는 정보 엔진(130)에 검색 질의로서 제출한다. 인덱싱 엔진(126) 및/또는 정보 엔진(130)은 이러한 검색 질의에 대응하는 정보를 제공할 수 있는바, 예컨대, 델라웨어주가 미합중국에 가입한 첫번째 주임을 나타내는 정보를 제공할 수 있다. 추가적인 응답 정보가 또한 제공될 수도 있는바, 예를 들면, 델라웨어주가 가입한 날짜, 델라웨어주 이후에 어떤 주가 가입했는지, 기타 등등이 제공될 수 있다. 이러한 정보의 일부 또는 전부가 메시지 교환 스레드에 통합될 수 있는바, 예컨대, 이러한 질문을 제기한 사용자에 의해 조작되는 메시지 교환 클라이언트(107)의 그래픽 사용자 인터페이스에 디스플레이되는 트랜스트립트에 통합될 수 있다.
다양한 구현예에서, 텍스트 이외에 또는 텍스트 대신에, 메시지 교환 스레드에 통합되는 하나 이상의 그래픽 요소들은 검색 질의에 응답하는 콘텐츠를 전달하는 하나 이상의 이미지들을 포함할 수 있다. 전술한 시나리오에서는, 예를 들어,델라웨어주의 이미지 및/또는 델라웨어주의 깃발이, 델라웨어주에 대한 텍스트에 부가하여(또는, 그 대신에), 메시지 교환 스레드에 통합될 수 있다.
많은 경우에 있어서, 검색 질의에 응답하는 정보는, 대화의 흐름을 방해함이 없이 메시지 교환 스레드 내에 용이하게 통합하기에는 너무 다루기 힘들 수 있다(예를 들어, 너무 길거나, 너무 자세하거나 기타 등등). 이러한 경우, 스레드에 통합되기 위해, 전체 응답 정보의 서브 세트가 선택될 수 있다(즉, 전체 응답 정보가 추려질 수 있다). 일부 구현예들에서, 메시지 교환 엔진(120), 개인 보조 엔진(122), 및/또는 개인 보조 모듈(109)은 메시지 교환 스레드에 통합하기 위해 서브 세트를 선택할 수 있다(또는 응답 정보를 추려낼 수 있다). 다른 구현예에서, 포괄적인 응답 정보가 클라이언트 교환 클라이언트(107)에 제공할 수 있고, 그리고 클라이언트 교환 클라이언트(107)는 추려내기(culling)를 수행할 수 있다. 예를 들어, 일부 구현예에서, 정보는 호스트 클라이언트 디바이스(106)의 스크린 크기에 기초하여 정보를 추려질 수 있다. 일부 구현예에서, 상위 N 개의 검색 결과들이 메시지 교환 스레드에 통합되기 위해 선택될 수 있다. 여기서, N 이라는 숫자는 예컨대, 스크린 크기, 참가자 선호도 등에 기초하여 선택될 수 있으며, 또는 수동으로 선택될 수도 있다(예를 들어, N은 5, 10, 2, 1 등으로 설정될 수 있다).
일부 구현예에서, 지식 시스템(102)은 예를 들어, 정보 엔진(128) 및/또는 다른 구성요소들의 일부로서, 소위 "지식 베이스"를 가질 수 있으며, 지식 베이스는 알려진 엔티티들(예를 들어, 사람, 장소, 사물), 알려진 엔티티들의 속성들(예컨대, 유형, 이름, 연령, 위치, 등등), 및 알려진 엔티티들 사이의 관련성들에 대한 기록들을 포함한다. 일부 구현예에서, 이러한 지식베이스는 예를 들어, 인덱스(132)에서 그래프로서 구현될 수 있으며, 상기 그래프에서 노드(node)들은 엔티티들(그리고 일부 경우들에서는 관련된 속성들)을 나타내고, 에지들은 엔티티들 간의 관계를 나타내지만, 반드시 그러한 것은 아니다. 일부 구현예에서, 이러한 지식 베이스로부터의 엔티티들에 대한 정보는 전술한 바와 같이 예컨대, 메시지 교환 엔진(120)에 의해서 형성 및 제출된 검색 질의에 응답하여, 메시지 교환 엔진(120)에 의해 이용될 수 있다.
일부 구현예에서, 메시지 교환 엔진(120), 개인 보조 엔진(122) 및/또는 정보 엔진(130)에 의해 지식 베이스가 사용되어, 메시지 교환 스레드의 일부로서 2 이상의 사용자들 사이에서 교환된 하나 이상의 메시지들에서 언급된 제 1 엔티티 또는 엔티티 유형을 식별할 수 있다. 엔티티 또는 엔티티 유형과 관련된 검색 질의에 응답하는 정보는 메시지 교환 스레드에 통합될 수 있다. 예를 들어, 사용자가 "베이브 루스가 최고였다!" 라는 메시지를 메시지 교환 스레드에 제출한다고 가정하자. "베이브 루스(Babe Ruth)"는 인덱스(132)에 저장된 지식 베이스에 기초하여, 베이브 루스(Babe Ruth)의 하나 이상의 속성들 및/또는 하나 이상의 관련 엔티티들(가령, 그가 활약한 하나 이상의 팀들(예컨대, 뉴욕 양키즈), 그의 가족, 동료, 활동 년도, 생존 년도, 기타 등등)과 함께, 예컨대, 정보 엔진(130)에 의해 식별될 수 있다. 이러한 정보의 하나 이상의 부분들이 선택될 수 있고 그리고 메시지 교환 스레드에 자동으로 통합될 수 있는바(예를 들어, 하나 이상의 그래픽 요소들로서), 예를 들어, 메시지 교환 엔진(120) 또는 개인 보조 엔진(122)에 의해서, 또는 메시지 교환 클라이언트(107)에 의해서 클라이언트 디바이스(106)에서 국부적으로, 혹은 개인 보조 모듈(109)에 의해서 통합될 수 있다. 예를 들어, 베이브 루스(Babe Ruth)가 메시지 교환 스레드에서 사용자에 의해 언급될 때, 베이브 루스 및/또는 다른 야구 선수들에 대한 정보가 스레드에 또한 통합될 수 있으며, 따라서 이것은 메시지 교환 클라이언트(107)의 사용자 인터페이스를 통해서 적어도 하나의 사용자에 의해서 소비될 수 있다.
다양한 구현예에서, 다중 레벨의 내포된(multi-level, nested) 머신 학습 모델(또는 보다 구체적으로 분류기)이, 유휴 잡담(chatter) 및 검색 질의 적합도를 구별하기 위해 트레이닝될 수 있다. 앞선 검색들 및 메시지 교환 스레드들과 같은 소스들로부터의 광범위한 트레이닝 데이터 세트가, 도 2의 242/244와 같은 감독되지 않은(unsupervised) 머신 학습 모델(또는 분류기)의 제 1 레벨을 트레이닝하는데 사용될 수 있다. 이들 머신 학습 모델로부터의 출력은, 검색 결과들 및 주석이 달린 질의들과 같은 다른 신호들과 함께, 감독된(supervised) 머신 학습 모델(또는 분류기)을 구축하는데 사용될 수 있다. 감독된 머신 학습 모델은 예를 들어 참가자가 메시지 교환 스레드에 메시지를 제공할 때마다 트리거링되어, 유휴 잡담 점수(ICS) 및 검색 질의 적합도 점수(search query suitability score: SQSS)를 생성할 수 있다. 이러한 점수들에 따라, 입력 메시지는 하나 이상인 다수의 계층화된(stratified) 신뢰도 레벨들로 그룹화될 수 있다. 다음으로, 순위 결정(ranking) 기능은 검색 질의에 응답하는 다양한 콘텐츠 소스로부터의 다른 신호들과 함께 ICS/SQSS를 이용하여, 메시지 교환 스레드에 통합하기에 가장 적합한 응답을 선택한다.
도 2는 본 발명의 일부 구현예에 의해 이용될 수 있는 하나의 비-제한적인 예시적인 프로세스 흐름을 도시한다. 이 일례에서, 메시지 교환 스레드로부터 식별된 메시지(240)는, ICS 머신 학습 모델(242) 및 SQSS 머신 학습 모델(244) 등과 같은 하나 이상의 머신 학습 모델들에 입력을 제공하기 위해 사용될 수 있다. ICS 머신 학습 모델(242)은 메시지(240)의 하나 이상의 속성들에 기초하여 계산된 ICS를 출력한다. SQSS 머신 학습 모델(244)은 메시지(240)의 하나 이상의 속성들에 기초하여 계산된 SQSS를 출력한다. 일부 구현예에서, 메시지(240)는 하나 또는 2개의 머신 학습 모델에 그대로 입력으로서 사용될 수 있다. 다른 구현예에서, 메시지(240)의 하나 이상의 속성들(예를 들어, 주석들, 수반되는 신호들 등)이, 메시지(240) 자체에 부가적으로 또는 메시지(240) 자체 대신에, 하나 또는 2개의 머신 학습 모델에 대한 입력으로서 사용될 수 있다. 머신 학습 모델(242 및 244)은 개별적으로 도시되어 있지만, 이는 제한하려는 것이 아니다. 일부 구현예에서, 하나의 머신 학습 모델이 메시지(240)를 입력으로서 수신하고, ICS 및 SQSS 둘다를 제공할 수 있다.
일부 구현예에서, ICS 머신 학습 모델(242)은 한가한 수다(idle chit chat)를 구성하는 것으로 알려진 메시지 교환 스레드 메시지들의 하나 이상의 코퍼스(corpus)들 상에서 트레이닝될 수 있으며, 이와 같이, 긍정적인 트레이닝 일례로서 작용할 수 있다. 일부 구현예에서, ICS 머신 학습 모델(242)은 검색 질의 생성 및 사용에 적합한 것으로 알려진 메시지 교환 스레드 메시지들와 같은 부정적인 트레이닝 일례들로 트레이닝될 수 있다. 다른 구현예에서, ICS는 머신 학습 모델 이외의 기술을 사용하여 결정될 수 있다. 예를 들어, 일부 구현예에서, 메시지(240)는 예를 들어 퍼지 검색 기술을 사용하여 최상의 매치를 결정하기 위해 복수의 메시지/대화형 응답 쌍들과 비교될 수 있다. 상기 메시지(240)가 하나 이상의 메시지/대화형 응답 쌍들에 더 유사할수록 더 높은 ICS가 그 메시지에 할당될 수 있다.
일부 구현예에서, SQSS 머신 학습 모델(244)은 검색 질의의 생성 및 제출에적합한 것으로 알려진 메시지 교환 스레드 메시지들의 하나 이상의 코퍼스(corpus) 상에서 트레이닝될 수 있으며, 따라서 긍정적인 트레이닝 일례로서 작용할 수 있다. 일부 구현예에서, SQSS 머신 학습 모델(244)은 또한, 유휴 잡담을 구성하는 것으로 알려진 메시지 교환 스레드 메시지들과 같이, 부정적인 트레이닝 일례들로 트레이닝될 수 있다. SQSS 머신 학습 모델(244)은 과거의 검색 질의들의 코퍼스를 사용하여 트레이닝될 수 있으며, 이는 과거의 메시지 교환 스레드들과 관련될 수도 있고 그렇지 않을 수도 있다. 포커싱이 잘 맞지 않거나, 이치에 맞지 않거나(nonsensical), 또는 무의미한 응답 콘텐츠를 생산하는 과거의 검색 질의들은, 부정적인 트레이닝 일례들로 이용될 수 있다.
일부 구현예에서, ICS 머신 학습 모델(242)에 의해 출력된 ICS는 블록 246에서 하나 이상의 절대 임계값들과 비교될 수 있다. 이러한 절대 임계값들이 충족되는 경우, 상기 메시지는 검색 질의에 적합하지 않은 것으로 분류될 수 있으며, 그리고 가장 잘 매칭되는 대화형 응답이 블록 248에서 메시지 교환 스레드에 통합될 수 있다. 일부 구현예에서, 블록 248의 동작의 일부로서, 메시지(240)는 베스트 매칭을 결정하도록, 예컨대, 퍼지 검색 기술을 사용하여 복수의 메시지/대화형 응답 쌍들과 비교될 수 있다. 가장 가까운 매칭에 기초하여 메시지(240)의 ICS를 계산하는 것이 아니라, 만일, 메시지(240)가 정확하게 혹은 거의 정확하게 메시지/대화형 응답 쌍과 매칭된다면, 메시지/대화형 응답 쌍으로부터 대화형 응답이 식별될 수 있으며 그리고 메시지(240)가 기원된 메시지 교환 스레드에 통합될 수 있다. 하지만, ICS가 블록 246에서 하나 이상의 임계값들을 충족하지 않는다면, ICS와 SQSS 머신 학습 모델(244)에 의해 출력된 SQSS 사이의 차이값(Δ)이 블록 250에서 결정될 수 있다. ICS와 SQSS 사이의 차이값이 하나 이상의 임계값들을 충족하면, 상기 메시지는 검색 질의에 적합하지 않은 것으로 분류될 수 있고, 그리고 대화형 응답이 식별되어 블록 248에서 메시지 교환 스레드에 다시 통합될 수 있다.
만일, 블록 250에서의 대답이 아니오(그리고 메시지는 검색 질의에 적합한 것으로 분류됨)라면, 메시지(240) 및/또는 메시지(240)의 하나 이상의 속성들(예를 들어, 주석, 용어 쌍들 등) 또는 메시지(240)에 기초하여 생성된 검색 질의는 인덱싱 엔진(126) 및/또는 정보 엔진(130)과 같은 지식 시스템(102)의 다양한 구성요소에 제공될 수 있다. 이들 구성요소들은 응답 콘텐츠(예를 들어, 검색 결과, 대안적인 질의 제안, 응답 정보 등)를 생성할 수 있으며, 이러한 응답 콘텐츠는 블록 252에서 분석되어 하나 이상의 임계값들을 만족시키는지가 결정된다. 만일, 대답이 "아니오" 이면, 최상으로 매칭되는 대화형 응답이 식별될 수 있으며 그리고 블록 248과 관련하여 서술된 바와 같이 통합될 수 있다. 예를 들어, 검색 질의에 응답하는 검색 결과의 인기도가 너무 낮으면, 메시지 교환 스레드 참가자가 이들 검색 결과의 표시를 메시지 교환 스레드에 통합하는 것이 특히 도움이 되지 않거나 흥미롭지 않을 수 있다. 그러나, 블록 252에서의 응답이 "예" 인 경우, 응답 콘텐츠의 서브 세트가 블록 254에서 메시지 교환 스레드에 통합될 수 있다.
도 2에 도시된 동작들/구성요소들은 본 명세서에 개시된 기술들이 구현될 수 있는 방법의 일례이다. 수 많은 변형예들이 본 명세서에서 고려된다. 예를 들어, 일부 구현예에서, ICS 머신 학습 모델(242)이 생략될 수 있다. 대신에, 메시지(240)는 최상의 매치를 결정하기 위해 복수의 메시지/대화형 응답 쌍들과 단순히 비교될 수 있다. 메시지/대화형 응답 쌍과 최상으로 매칭되는 메시지와 상기 메시지(240) 사이의 유사도가 단순히 ICS로서 사용될 수 있다. ICS가 하나 이상의 절대 임계값들을 만족하면(246), 추가 분석없이 대화형 응답이 메시지 교환 스레드에 통합될 수 있다. 또한, ICS와 SQSS 사이의 차이값(Δ)이 하나 이상의 임계값들을 만족시키는 경우(250) 또는 메시지(240)에 기초하여 생성된 검색 질의에 응답하는 콘텐츠가 하나 이상의 임계값들을 충족시키지 못하는 경우(252), 대화형 응답이 메시지 교환 스레드에 통합될 수 있다. 부가적으로 또는 대안적으로, 퍼지 매칭보다는, 일련의 발견적 방법(heuristics)들이 제공되어, 메시지(240)에 대한 대화형 응답을 식별하고 통합할 수 있다.
도 3은 특정 사용자("YOU" 라고 지칭됨)에 의해 조작되는 예시적인 클라이언트 디바이스(306)를 도시하며, 이는 클라이언트 디바이스(306) 상에서 동작하는 메시지 교환 클라이언트(도 3에 구체적으로 도시되지 않음)와 연관된 그래픽 사용자 인터페이스(360)를 포함한다. 그래픽 사용자 인터페이스(360)는 사용자 조작 클라이언트 디바이스(306)와 클라이언트 디바이스(306) 상에 설치된 개인 보조 모듈("PAM") 사이의 메시지 교환 스레드의 트랜스크립트(362)를 디스플레이한다. 또한, 그래픽 사용자 인터페이스(360)는 텍스트 입력 필드(364)를 포함하는바, 클라이언트 디바이스(306)의 운영자는, 예를 들어 개인 보조 모듈에 의한 이전 언급들에 응답하여, 텍스트 또는 다른 콘텐츠를 메시지 교환 스레드에 입력하는데 텍스트 입력 필드(364)를 사용할 수 있다.
먼저, 조작자는 개인 보조 모듈에게 "오늘 어땠어?(How are you today?)" 라고 질문한다. 이러한 질문(보다 일반적으로는 "메시지")은 검색 질의로서 이용되기에는 적합하지 않을 것인데, 왜냐하면 이것이 생성할 수 있는 검색 결과들은 아마도 매우 유용하지 않거나 혹은 별다른 의미가 없을 것이기 때문이다. 하지만, 상기 질문은 가령, 다음의 메시지/대화형 응답 쌍, <"오늘은 어땠어?(How's it going today?)", "나는 잘하고 있어, 너는 어때?(I'm doing just fine. How are you?)"> 과 같은 하나 이상의 메시지/대화형 응답 쌍들과 정확히 또는 적어도 매우 근접하게 매칭될 것이다. 결과적으로, 개인 보조 모듈은 다음과 같은 대화형 응답을 트랜스크립트(362)에 기여한다: "나는 잘하고 있어, 너는 어때?(I'm doing just fine. How are you?)". 다음으로, 클라이언트 디바이스(306)의 조작자는 "나는 더 나빴어(I've been worse)."라고 응답한다. 다시 한번, 이러한 메시지는 검색 질의의 생성 및 제출에 적합하지 않다. 대신에, 이러한 메시지는 다음과 같이 하나 이상의 메시지/대화형 응답 쌍들과 매칭될 확률이 높다: <"나는 더 나쁠 수 있다" , "내가 너의 하루를 향상시키기 위해 할 수 있는 일이 있으면 알려주세요"("I could be worse" , "Let me know if there is anything I can do to improve your day")>. 따라서, 개인 보조 모듈은, "내가 너의 하루를 향상시키기 위해 할 수 있는 일이 있으면 알려주세요(Let me know if there is anything I can do to improve your day)" 와 같은 대화형 응답을 제공한다.
다음으로, 조작자는 개인 보조 모듈에게 "내일 의제는 뭐야?(What's on the agenda tomorrow?)"라고 질문한다. "내일 의제는 뭐야?(What's on the agenda tomorrow?)" 라는 질문은 예컨대, 도 2에 도시된 것과 같은 머신 학습 모델에 대한 입력으로서 사용될 때, 비교적 낮은 ICS 및/또는 비교적 높은 SQSS를 산출할 수 있다. 추가적으로 또는 대안적으로, 상기 메시지가 "What"이라는 단어로 시작하고 그리고 "의제(agenda)"라는 단어를 포함한다는 사실로 인하여, 상기 메시지는 검색 질의의 생성 및 제출에 사용하기에 적합하다고 식별될 수 있다(예컨대, 하나 이상의 발견적 방법들을 통해). 결과적으로, 상기 메시지는 오늘 날짜 이후의 날에 대한 조작자의 스케줄을 획득하는 검색 질의를 생성하고 예를 들어, 지식 시스템(102)의 다양한 구성요소들로, 또는 개별 클라이언트 디바이스(106)로 제출하는데 사용된다. 개인 보조 모듈은 "당신은 AM 11:30과 PM 2:00에 미팅 약속이 스케줄링되어 있습니다. 그리고 레스토랑 7686에서 수와 함께 음료를 마십니다" 라는 응답을 산문 형태(prose form)로 트랜스크립트에 통합한다.
도 4는 도 3에 도시된 메시지 교환 스레드의 계속을 도시한다. 따라서, 사용자 인터페이스(360)에서 보이는 트랜스트립트(362)의 메시지들을 제외하고, 모든 구성요소들은 동일하다. 조작자의 내일 스케줄(위에 설명된)에 대한 개인 보조 모듈의 마지막 메시지에 후속하여, 조작자는 "Restaurant 7686은 어디에 있지?"라고 질문한다. 이러한 메시지는 예를 들어 하나 이상의 머신 학습 모델(예: 242, 244)에 대한 입력으로 제공될 때 비교적 높은 SQSS 및 상대적으로 낮은 ICS를 산출할 수 있다. 부가적으로 또는 대안적으로, 일부 구현예에서, 엔티티 "레스토랑 7686"은 레스토랑(7686)이 공지된 엔티티임을 결정하기 위해, 앞서 설명된 지식 베이스에 대해서 교차 참조될 수 있다. 일반적으로, 메시지에서 언급된 엔티티가 지식 베이스에서 식별되는 것은, 발원(originating) 시지가 그렇지 않은 경우 보다 높은 SQSS를 수신하게 할 수 있다. 따라서, 레스토랑 7686에 대한 사용자의 질문은 상대적으로 높은 SQSS를 받을 수 있다.
일부 구현예에서, 지식 베이스 내에서 엔티티를 식별하는 것은, 상기 엔티티가 개인 보조 모듈과 연관될 수없는 어떤 것으로 결정되는 경우, SQSS를 더 상승시킬 수 있다. 예를 들어, 메시지 교환 스레드 참가자가 "너의 후두개(epiglottis)가 어디입니까?"라는 질문을 했다고 가정하자. 개인 보조 모듈은 지식 베이스로부터 후두개가 그것이 가질 수 없는 인간 기관임을 결정할 수 있다. 따라서, 비교적 높은 SQSS가 참가자의 질문에 할당될 수 있다. 해당 검색 질의에 응답하는 콘텐츠(가령, 후두개에 관한 정보)가, 예를 들어 개인 보조 모듈에 의해 메시지 교환 스레드에 통합될 수 있다.
다시 도 4로 돌아가서, 개인 보조 모듈은 레스토랑에 대한 주소를 제공함으로써 응답한다. 그런 다음 조작자는, "이런! 나는 그걸 스킵(skip)했으면 좋겠다(Darn! I wish I could skip that)" 라고 소리친다. 도 2에 도시된 것과 같은 하나 이상의 머신 학습 모델에 입력으로서 제공될 때, 이 메시지는 비교적 높은 ICS 및/또는 비교적 낮은 SQSS를 받을 수 있다. 결과적으로, 개인 보조 모듈은 상기 메시지와 메시지/대화형 응답 쌍을 가능한한 최상으로 매칭시킬 수 있다. 예를 들어, 이것은 다음의 메시지/대화형 응답 쌍들과 다양한 정도로 매칭될 수 있다: <"젠장!(Shoot!) .*", "미안(I'm sorry)">, <"이런!(Dang!) .*", "미안(I'm sorry)">, <"제기랄!(Drat!) .*", "미안(I'm sorry)">. 결과적으로, 상기 일례에서, 개인 보조 모듈은 다음과 같은 대화형 응답 "죄송합니다(I'm sorry)"으로 응답한다.
비록, 도 3-4의 일례는 시각 기반 메시지 교환 스레드의 일부로서 구현되는 것으로 도시되어 있지만, 본 발명은 이것에 한정되는 것은 아니다. 다양한 실시예들에서, 여기에 서술된 기술들은 예를 들어, 독립형 음성 응답 디바이스 상에서 동작하는 개인 보조 모듈과 참가자 사이의 가청 메시지 교환 스레드들에도 적용될 수 있다.
본 명세서에 설명된 일례에서, 메시지 교환 스레드 콘텐츠에 기초하여 형성된 검색 질의에 응답하는 데이터는, 도 1의 지식 시스템(102)과 관련된 다양한 소스들로부터 획득되었다. 하지만, 본 발명은 이에 한정되지 않는다. 응답 데이터는 다른 소스들로부터 획득될 수도 있다. 경우에 따라, 사용자에게 개인적인 정보를 검색하기 위해 검색 질의들이 이용될 수도 있다(사용자가 먼저 권한을 제공한다고 가정하자). 예를 들어, 사용자 자신의 이메일, 텍스트, 캘린더 엔트리, 소셜 네트워크 상태 업데이트 및 클라이언트 디바이스(106) 상에 적어도 일부 저장될 수 있는 다른 유사한 정보는, 검색 질의들이 검색을 위해 이용될 수 있는, 잠재적으로 검색가능한 소스들로서 이용될 수 있다.
이제, 도 5를 참조하면, 메시지 교환 스레드를 증대시키는 방법(500)이 설명된다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 여기에 설명된 다양한 엔진들을 포함하는 다양한 컴퓨터 시스템의 다양한 구성요소들을 포함할 수 있다. 또한, 상기 방법(500)의 동작들은 특정 순서로 도시되어 있지만, 이는 제한하려는 것이 아니다. 하나 이상의 동작들이 재정렬, 생략 또는 추가될 수 있다.
블록(502)에서, 시스템은, 참가자에 의해서 메시지 교환 스레드에 기여되는 메시지를, 하나 이상의 메시지 교환 클라이언트들(따라서, 하나 이상의 참가자들)을 포함하는 메시지 교환 스레드로부터 획득할 수 있다. 이것은, 상기 메시지가 다른 참가자에게 보내지는지 또는 메시지 교환 스레드에 참가하는 개인 보조 모듈로 보내지는지 여부에 관계없이, 참가자에 의해서 메시지 교환 스레드에 입력되는 임의의 메시지를 포함할 수 있다. 예를 들어, 방법(500)을 설명하기 위한 목적으로, 사용자가 "오바마 대통령은 몇 살입니까?"라는 질문을 제기한다고 가정하자.
블록(504)에서, 상기 메시지와 관련된 ICS가 계산될 수 있다. 상술한 바와 같이, 일부 구현예에서, 이러한 메시지를 입력으로서 수신한 머신 학습 모델(예: 242)에 의해서 ICS가 제공될 수 있다. 부가적으로 또는 대안적으로, 일부 구현예에서는, 고려중인 메시지가 메시지/대화형 응답 쌍과 얼마나 잘 매칭하는지에 기초하여 ICS가 계산될 수 있다. 진행중인 일례에서, "오바마 대통령은 몇 살입니까?"라는 메시지는 <"당신 몇 살입니까?" , "나는 몇살[개인 보조 모듈이 활성화된 이후의 햇수를 입력] 입니다"> 라는 메시지/대화형 응답 쌍과 최상으로 매칭될 수 있다. (<"How old are you?", "I am [insert number of years since personal assistant module activated] years old">). 이러한 매칭은 특별하게 높은 ICS 를 산출하지 않을 것이다.
블록 (506)(일부 실시예에서는 블록 504의 동작들과 병렬로 발생할 수 있음)에서, 메시지와 관련된 SQSS 가 계산될 수 있다. 전술한 바와 같이, 일부 구현예에서는, 입력으로서 메시지를 수신하는 머신 학습 모델(예를 들어, 244)에 의해서 SQSS 가 제공될 수 있다. 상기 일례에서, "오바마 대통령은 몇 살입니까"라는 메시지는 상대적으로 높은 SQSS를 받을 수 있는데, 왜냐하면 이것은 공지된 엔티티를 언급하고 있으며 및/또는 제 3의 사람에 관한 질문이기 때문이다. 대안적인 구현예에서는, 메시지에 기초하여 자동으로 생성되고 다양한 소스들로 제출된 하나 이상의 검색 질의들에 응답하는 콘텐츠에 기초하여 SQSS가 생성될 수 있다. 하지만, 도 5의 구현예에서, 검색 질의는 블록(512)에서 생성되고 블록(514)에서 제출된다.
블록(508)에서, 블록(504)에서 계산된 ICS는 블록(506)에서 계산된 SQSS와 비교될 수 있다. 만일, 2개의 값들 사이의 차이값 Δ가 소정의 미리결정된 임계값을 충족시킨다면(따라서, 상기 메시지는 검색 질의로서 적합하지 않다고 충족된다), 시스템은 블록(510)으로 진행할 수 있으며 블록 510에서, 고려중인 메시지와 최상으로 매칭되는 메시지/대화형 응답 쌍과 관련된 대화형 응답이 메시지 교환 스레드에 통합될 수 있다. 하지만, 블록(508)에서의 대답이 아니오(그리고 상기 메시지는 검색 질의에 적합한 것으로 분류됨)라면, 방법(500)은 블록(512)으로 진행할 수 있다. 상기 일례에서, "오바마 대통령은 몇 살입니까?(How old is President Obama?)" 라는 메시지와 관련된 ICS는 그것의 SQSS 보다 작을 가능성이 있으므로, 방법(500)은 블록(512)으로 진행할 수 있다.
블록(512)에서, 시스템은 고려중인 메시지에 기초하여 검색 질의를 생성할 수 있다. 메시지가 질문으로 제기되거나 또는 이미 사용가능한 검색 질의의 형태로 존재한다면, 메시지는 글자 그대로(verbatim) 검색 질의로서 다양한 구성요소들로 간단히 제출될 수 있다. 그러나, 메시지가 검색 질의로서 사용하기에 적합한 형태가 아닌 경우, 다양한 소스들에 제출하기 위한 보다 적합한 형태의 검색 질의를 생성하기 위해, 다양한 자연어 처리 기술, 서술 재작성(statement rewriting), 엔티티 해석 등이 적용될 수 있다. 앞선 일례에서 "오바마 대통령은 몇 살입니까?"라는 메시지는 검색 질의로 사용하기에 매우 적합한 것으로 보이며, 실제로 직접적인 답변을 생성할 것이다(예컨대, 정보 엔진 130으로부터). 또한, 오바마 대통령의 나이와 관련된 혹은 관련될 수 있는 다수의 검색 결과들 가령, 오바마 대통령에 관한 백과사전 페이지, 온라인 약력, 온라인 자료표(online factsheet), 기타 등등이 있을 수 있다.
블록(514)에서, 시스템은 예를 들어, 지식 시스템(102)의 다양한 구성요소들에게 검색 질의를 제출하고 그리고 이에 대한 응답으로 콘텐츠를 수신함으로써, 검색 질의에 응답하는 콘텐츠를 획득할 수 있다. 본 개시로부터 명백해지는 바와 같이, "검색 질의(search query)" 라는 용어는, 응답하는 문서를 리턴받기 위해 사용자로부터 소정의 검색 엔진으로, 의도적으로 타이핑된 질문 혹은 서술만으로 한정되지 않는다. 이와 달리, "검색 질의" 라는 용어는, 응답 콘텐츠를 산출하기 위해 지식 시스템(102)의 하나 이상의 구성요소들에 제출될 수 있는 임의의 정보를 더 광범위하게 의미한다. 상술한 바와 같이, 이들 구성요소들은 인덱싱 엔진(126), 정보 엔진(130) 및 대안적인 질의 제안 엔진(136), 기타 등등을 포함할 수 있다. 일부 구현예에서, 메시지는 다수의 검색 질의들을 생성하는데 사용될 수 있으며, 다수의 검색 질의들 각각은 예를 들어, 응답 콘텐츠의 품질을 향상시키기 위해 지식 시스템(102)의 서로 다른 구성요소에 맞게 맞춤화될 수 있다.
다시 도 5를 참조하면, 블록 516에서, 시스템은 검색 질의에 응답하여 리턴된 콘텐츠의 적어도 서브세트를 메시지 교환 스레드에 통합할 수 있다. 전술한 바와 같이, 클라이언트 디바이스(106) 또는 지식 시스템(102)의 다양한 구성요소들이 이러한 동작을 수행할 수 있다. 예를 들어, 메시지 교환 엔진(120) 및/또는 개인 보조 엔진(122)은, 하나 이상의 메시지 교환 클라이언트(107)가 각각의 메시지 교환 클라이언트(107)에 의해 시각적으로 렌더링된 트랜스트립트에 응답 콘텐츠를 삽입하도록 요청할 수 있다. 부가적으로 또는 대안적으로, 응답 콘텐츠는 지식 시스템(102)의 하나 이상의 구성요소들에 의해 메시지 교환 클라이언트(107)에 제공될 수 있으며, 그리고 메시지 교환 클라이언트(107)는 메시지 교환 스레드에 통합될 응답 컨텐츠를 선택(즉, 추려내기)할 수 있다. 그리고 일부 구현예에서, 통합된 콘텐츠는 개인 보조 모듈에 의해서 참가자에게 "말해진(spoken)" 가청 콘텐츠의 형태를 취할 수 있다. 앞서 일례에서, "버락 오마바는 XX 살이다(Barack Obama is XX years old)"와 같은 문구가 메시지 교환 스레드에 통합될 수 있다.
도 6은 예시적인 컴퓨터 시스템(610)의 블록도이다. 컴퓨터 시스템(610)은 전형적으로 버스 서브시스템(612)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이들 주변 디바이스는 예컨대, 메모리 서브시스템(625) 및 파일 저장 서브시스템(626)을 포함하는 저장 서브시스템(624), 사용자 인터페이스 출력 디바이스(620), 사용자 인터페이스 입력 디바이스(622) 및 네트워크 인터페이스 서브시스템(616)을 포함한다. 입력 및 출력 디바이스들은 사용자가 컴퓨터 시스템(610)과 상호작용할 수 있게 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 인터페이스를 제공하고 다른 컴퓨터 시스템의 대응 인터페이스 디바이스에 연결된다.
사용자 인터페이스 입력 디바이스들(622)은 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 디바이스, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크로폰, 및/또는 다른 타입의 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스" 라는 용어의 사용은 컴퓨터 시스템(610) 또는 통신 네트워크 상에 정보를 입력하는 가능한 모든 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들(620)은 디스플레이 서브시스템, 프린터, 팩스 머신, 또는 오디오 출력 디바이스들과 같은 비-시각적 디스플레이들을 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 디바이스를 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨터 시스템(610)으로부터 사용자 또는 다른 머신 또는 컴퓨터 시스템으로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 여기에 설명된 모듈들의 일부 또는 모든 기능을 제공하는 프로그래밍 및 데이터 구조들을 저장한다. 예를 들어, 저장 서브시스템(624)은 방법(500)의 선택된 양상들을 수행하는 로직 및/또는 메시지 교환 클라이언트(107), 개인 보조 모듈(109), 메시지 교환 엔진(120), 개인 보조 엔진(122), 인덱싱 엔진(126), 정보 엔진(130), 순위 엔진(134) 및/또는 대안적인 질의 제안 엔진(136) 중 하나 이상을 구현하는 로직을 포함할 수 있다.
이러한 소프트웨어 모듈들은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(624)에서 사용되는 메모리(625)는 프로그램 실행 중의 명령 및 데이터를 저장하기 위한 주 랜덤 액세스 메모리(RAM)(630) 및 고정 명령이 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일을 위한 영구 저장소를 제공할 수 있으며, 하드 디스크 드라이브, 관련 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 본 구현예들의 특정 기능들을 구현하는 모듈들은 파일 저장 서브시스템(626)에 의해서 저장 서브시스템(624)에 저장되거나 또는 프로세서(들)(614)에 의해 액세스가능한 다른 머신에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨터 시스템(610)의 다양한 컴포넌트들 및 서브시스템들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(612)은 단일 버스로서 개략적으로 도시되었지만, 버스 서브시스템의 다른 구현예는 다수의 버스를 사용할 수도 있다.
컴퓨터 시스템(610)은 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨터 시스템(610)에 대한 설명은 단지 일부 구현예를 설명하기 위한 특정예로서만 의도된 것이다. 도 6에 도시된 컴퓨터 시스템 보다 더 많거나 더 적은 컴포넌트들을 갖는 컴퓨터 시스템(610)의 많은 다른 구성예들도 또한 가능하다.
본 명세서에 기재된 시스템이 사용자들(또는 본 명세서에서는 종종 "참가자"라 함)에 관한 개인 정보를 수집하는 경우, 또는 개인 정보를 이용할 수 있는 경우, 프로그램들 또는 피처들이 사용자 정보(예컨대, 사용자의 소셜 네트워크에 대한 정보, 소셜 액션 또는 소셜 활동들, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치)를 수집할 수 있는지의 여부 또는 사용자와 보다 관련성이 있을 수 있는 콘텐츠를 콘텐츠 서버로부터 수신할 수 있는지의 여부 및/또는 어떻게 수신하는지를 제어하는 기회가 사용자들에게 제공될 수 있다. 또한, 소정의 데이터는 개인 식별 정보가 제거될 수 있도록, 저장되거나 사용되기 전에 하나 이상의 방법들로 취급될 수 있다. 예를 들어, 사용자의 신원은 개인 식별 정보가 사용자에 대해 결정될 수 없도록 처리될 수 있으며, 또는 사용자의 특정 지리적 위치가 결정될 수 없도록 지리적 위치 정보가 획득되는 곳(예를 들어, 도시, 우편 번호 또는 주 수준)에 사용자의 지리적 위치가 일반화될 수 있다. 따라서, 사용자는 사용자에 관한 정보 수집 방법 및/또는 사용 방법에 대한 제어권을 가질 수 있다.
비록 여러 구현예들이 본 명세서에 설명 및 예시되었지만, 본 명세서에 설명된 기능을 수행하고 및/또는 결과들 및/또는 하나 이상의 장점들을 획득하기 위한 다양한 다른 수단들 및/또는 구조들이 활용될 수 있으며, 이러한 변형예들 및/또는 수정예들 각각은 본 명세서에서 설명된 구현예들의 범위 내에 속한 것으로 간주된다. 보다 일반적으로는, 본 명세서에 설명된 모든 파라미터들, 치수들, 재료들, 및 구성들은 예시적인 것으로 의도되며 그리고 실제 파라미터들, 치수들, 재료들, 및 구성들은 특정 응용예 또는 응용예들에 의존할 것이다. 해당 기술분야의 당업자는 일상적인 경험만을 사용하여, 본 명세서에서 설명된 특정 구현예에 대한 많은 균등물을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예는 단지 일례일 뿐이며, 첨부된 청구 범위 및 그 등가물의 범위 내에서 상기 구현예들이 구체적으로 기술되고 청구된 것과 다르게 실시될 수도 있음을 이해해야 한다. 본 개시 내용의 구현예들은 본원에 서술된 각각의 개별적인 피처들, 시스템들, 물품들, 재료들, 키트들 및/또는 방법들에 관한 것이다. 또한 그러한 피쳐들, 시스템들, 물품들, 재료들, 키트들 및/또는 방법들이 상호 모순되지 않는한, 2 이상의 그러한 피쳐들, 시스템들, 물품들, 재료들, 키트들 및/또는 방법들의 모든 조합은 본 개시의 범위 내에 속할 것이다.

Claims (12)

  1. 하나 이상의 프로세서들을 이용하여 구현되는 방법으로서,
    하나 이상의 메시지 교환 클라이언트들을 수반하는 메시지 교환 스레드로부터, 참가자에 의해 상기 메시지 교환 스레드에 기여되는 메시지를 결정하는 단계, 상기 메시지는 상기 참가자와 개인 보조 모듈 사이의 대화의 일부로서 상기 참가자에 의해서 메시지 교환 스레드에 참가하는 개인 보조 모듈로 향하는 메시지이며;
    메시지와 관련된 유휴 잡담 점수(idle chatter score)를 계산하도록 메시지를 분석하는 단계,
    상기 유휴 잡담 점수는 유휴 잡담으로 알려진 이전의 대화 콘텐츠와 상기 메시지 사이의 유사도를 나타내며;
    상기 메시지에 기초하여 생성된 검색 질의에 응답하는 콘텐츠를 획득하는 단계;
    상기 메시지와 관련된 검색 질의 적합도 점수(search query suitability score)를 계산하는 단계, 상기 검색 질의 적합도 점수는 상기 검색 질의에 응답하는 콘텐츠에 기초하여 계산되며;
    상기 유휴 잡담 점수와 검색 질의 적합도 점수를 비교하는 단계;
    상기 비교에 기초하여, 상기 메시지에 대한 응답으로서 개인 보조 모듈에 의해서 메시지 교환 스레드에 통합될 신규 콘텐츠로서, 상기 메시지에 대한 대화형 응답(conversational response) 또는 상기 검색 질의에 응답하는 콘텐츠의 적어도 일부 중 어느 하나를 선택하는 단계; 및
    개인 보조 모듈로부터의 메시지로서, 상기 신규 콘텐츠를 메시지 교환 스레드에 통합하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 통합하는 단계는,
    소정의 클라이언트 컴퓨팅 디바이스 상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이되는 메시지 교환 스레드의 트랜스크립트 내에 응답을 삽입하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 유휴 잡담 점수를 계산하는 단계는, 상기 메시지를 머신 학습 모델의 입력으로 제공하는 단계를 포함하며, 상기 머신 학습 모델은 출력으로서 상기 유휴 잡담 점수를 제공하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 머신 학습 모델은 적어도 하나의 긍정적인(positive) 트레이닝 일례에서 트레이닝되며, 상기 적어도 하나의 긍정적인 트레이닝 일례는, 이전(prior) 메시지 교환 스레드의 하나 이상의 참가자들이 상기 이전 메시지 교환 스레드의 이전 메시지에 대화형 응답을 통합하는 것에 대해 긍정적으로 반응한 경우 또는 이전 메시지에 기초하여 생성된 이전의 검색 질의에 응답하는 콘텐츠를 통합하는 것에 대해 긍정적으로 반응한 경우를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 검색 질의 적합도 점수는, 상기 검색 질의에 응답하는 하나 이상의 부상된(surfaced) 검색 결과들의 존재에 적어도 일부 기초하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 검색 질의 적합도 점수는 또한, 하나 이상의 공지된 엔티티들 혹은 상기 메시지에서 언급된 엔티티 유형들에 적어도 일부 기초하여 계산되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 신규 콘텐츠는 자동으로-생성된 대화형 응답을 상기 메시지에 통합하도록 제 2 참가자에 의해서 조작될 수 있는 그래픽 요소를 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 검색 질의 적합도 점수는 검색 질의에 응답하는 콘텐츠 내의 탐색 검색 결과들(navigational search results)의 존재 또는 부존재에 기초하여 계산되는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 검색 질의 적합도 점수는 검색 질의에 응답하는 콘텐츠 내의 지불된 검색 결과들(paid search results)의 존재 또는 부존재에 기초하여 계산되는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 검색 질의 적합도 점수는 검색 질의에 응답하는 콘텐츠 내의 상기 메시지에 대한 직접적인 답변의 존재 또는 부존재에 기초하여 계산되는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 검색 질의 적합도 점수는 검색 질의에 응답하는 콘텐츠의 적어도 일부의 인기도에 기초하여 계산되는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 검색 질의 적합도 점수는, 메시지 교환 스레드의 검출된 "톤(tone)에 대한, 검색 질의에 응답하는 콘텐츠의 관련도(measure of pertinence)에 기초하여 계산되는 것을 특징으로 하는 방법.
KR1020217003930A 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대 KR102249437B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/157,372 2016-05-17
US15/157,372 US10769155B2 (en) 2016-05-17 2016-05-17 Automatically augmenting message exchange threads based on tone of message
PCT/US2016/067059 WO2017200575A1 (en) 2016-05-17 2016-12-15 Automatically augmenting message exchange threads based on message classification

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207023906A Division KR102216629B1 (ko) 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대

Publications (2)

Publication Number Publication Date
KR20210018553A KR20210018553A (ko) 2021-02-17
KR102249437B1 true KR102249437B1 (ko) 2021-05-07

Family

ID=57750638

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207023906A KR102216629B1 (ko) 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대
KR1020187035191A KR102148444B1 (ko) 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대
KR1020217003930A KR102249437B1 (ko) 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020207023906A KR102216629B1 (ko) 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대
KR1020187035191A KR102148444B1 (ko) 2016-05-17 2016-12-15 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대

Country Status (8)

Country Link
US (4) US10769155B2 (ko)
EP (1) EP3440560A1 (ko)
JP (2) JP6851397B2 (ko)
KR (3) KR102216629B1 (ko)
CN (2) CN112800218A (ko)
DE (2) DE102016125594A1 (ko)
GB (1) GB2557363A (ko)
WO (1) WO2017200575A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769155B2 (en) 2016-05-17 2020-09-08 Google Llc Automatically augmenting message exchange threads based on tone of message
US10257126B2 (en) * 2016-08-04 2019-04-09 International Business Machines Corporation Communication fingerprint for identifying and tailoring customized messaging
US10412038B2 (en) 2017-03-20 2019-09-10 International Business Machines Corporation Targeting effective communication within communities
US11176453B2 (en) * 2017-12-28 2021-11-16 Fujifilm Business Innovation Corp. System and method for detangling of interleaved conversations in communication platforms
US11322264B2 (en) * 2018-04-23 2022-05-03 DNAFeed Inc. Systems and methods for human-augmented communications
US11544374B2 (en) * 2018-05-07 2023-01-03 Micro Focus Llc Machine learning-based security threat investigation guidance
US11924297B2 (en) 2018-05-24 2024-03-05 People.ai, Inc. Systems and methods for generating a filtered data set
US10565229B2 (en) 2018-05-24 2020-02-18 People.ai, Inc. Systems and methods for matching electronic activities directly to record objects of systems of record
US11463441B2 (en) 2018-05-24 2022-10-04 People.ai, Inc. Systems and methods for managing the generation or deletion of record objects based on electronic activities and communication policies
KR102202139B1 (ko) * 2018-12-17 2021-01-12 지속가능발전소 주식회사 협력업체 공급망 리스크 분석 방법, 이를 수행하기 위한 기록매체
JP6624539B1 (ja) * 2019-10-01 2019-12-25 株式会社トレードワークス クラス分類と回帰分類を組み合わせたaiチャットボットの構築方法
CN114936000B (zh) * 2019-12-26 2024-02-13 上海擎感智能科技有限公司 基于图片构架的车机交互方法、系统、介质及设备
US11356389B2 (en) * 2020-06-22 2022-06-07 Capital One Services, Llc Systems and methods for a two-tier machine learning model for generating conversational responses
US11405337B2 (en) * 2020-09-23 2022-08-02 Capital One Services, Llc Systems and methods for generating dynamic conversational responses using ensemble prediction based on a plurality of machine learning models
US11792141B2 (en) * 2021-01-12 2023-10-17 Meta Platforms Technologies, Llc Automated messaging reply-to
US11776542B1 (en) * 2021-03-30 2023-10-03 Amazon Technologies, Inc. Selecting dialog acts using controlled randomness and offline optimization
US11978445B1 (en) 2021-03-30 2024-05-07 Amazon Technologies, Inc. Confidence scoring for selecting tones and text of voice browsing conversations
US20220318283A1 (en) * 2021-03-31 2022-10-06 Rovi Guides, Inc. Query correction based on reattempts learning
US11507757B2 (en) * 2021-04-16 2022-11-22 Capital One Services, Llc Systems and methods for generating dynamic conversational responses based on historical and dynamically updated information
US11743215B1 (en) 2021-06-28 2023-08-29 Meta Platforms Technologies, Llc Artificial reality messaging with destination selection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015079383A (ja) 2013-10-17 2015-04-23 日本電信電話株式会社 発話生成装置、方法、及びプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3454897B2 (ja) 1994-01-31 2003-10-06 株式会社日立製作所 音声対話システム
JP4281899B2 (ja) 2003-03-14 2009-06-17 富士通株式会社 質問文書要約装置、質問応答検索装置、質問文書要約プログラム
US8200775B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
US7917582B2 (en) 2004-07-27 2011-03-29 Siemens Enterprise Communications, Inc. Method and apparatus for autocorrelation of instant messages
EP1825406A4 (en) * 2004-10-28 2010-01-20 Yahoo Inc SEARCH SYSTEM AND METHOD WITH INTEGRATION OF USER EVALUATIONS, INCLUDING TRUST NETWORKS
US7848971B1 (en) 2006-02-28 2010-12-07 Intuit Inc. Integrated online chat within an income tax preparation product
JP5229782B2 (ja) 2007-11-07 2013-07-03 独立行政法人情報通信研究機構 質問応答装置、質問応答方法、及びプログラム
CA2734613C (en) * 2008-08-19 2020-06-09 Digimarc Corporation Methods and systems for content processing
US8886234B2 (en) 2011-04-06 2014-11-11 Microsoft Corporation Techniques for unified messaging
US9043350B2 (en) * 2011-09-22 2015-05-26 Microsoft Technology Licensing, Llc Providing topic based search guidance
JP5775466B2 (ja) 2012-01-13 2015-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 会話から雑談部分を抽出するための雑談抽出システム、方法、およびプログラム
JP5710581B2 (ja) 2012-12-18 2015-04-30 日本電信電話株式会社 質問応答装置、方法、及びプログラム
KR101821358B1 (ko) 2013-01-22 2018-01-25 네이버 주식회사 다자간 메신저 서비스를 제공하는 방법 및 시스템
US20150314454A1 (en) 2013-03-15 2015-11-05 JIBO, Inc. Apparatus and methods for providing a persistent companion device
JP6280342B2 (ja) 2013-10-22 2018-02-14 株式会社Nttドコモ 機能実行指示システム及び機能実行指示方法
JP6178208B2 (ja) 2013-10-28 2017-08-09 株式会社Nttドコモ 質問分野判定装置及び質問分野判定方法
US9015192B1 (en) 2013-12-30 2015-04-21 Google Inc. Systems and methods for improved processing of personalized message queries
US9213941B2 (en) 2014-04-22 2015-12-15 Google Inc. Automatic actions based on contextual replies
CN103995872B (zh) 2014-05-21 2017-04-05 王青 一种在应用中基于场景展开讨论与聊天的方法与系统
US10445650B2 (en) * 2015-11-23 2019-10-15 Microsoft Technology Licensing, Llc Training and operating multi-layer computational models
US10769155B2 (en) 2016-05-17 2020-09-08 Google Llc Automatically augmenting message exchange threads based on tone of message

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015079383A (ja) 2013-10-17 2015-04-23 日本電信電話株式会社 発話生成装置、方法、及びプログラム

Also Published As

Publication number Publication date
KR20200100874A (ko) 2020-08-26
GB2557363A (en) 2018-06-20
KR20190005194A (ko) 2019-01-15
WO2017200575A1 (en) 2017-11-23
US20200117672A1 (en) 2020-04-16
JP6851397B2 (ja) 2021-03-31
CN107391521B (zh) 2021-02-02
US20230394049A1 (en) 2023-12-07
JP6980074B2 (ja) 2021-12-15
US20170337199A1 (en) 2017-11-23
EP3440560A1 (en) 2019-02-13
US10769155B2 (en) 2020-09-08
DE102016125594A1 (de) 2017-11-23
KR102216629B1 (ko) 2021-02-17
CN107391521A (zh) 2017-11-24
JP2019521415A (ja) 2019-07-25
KR20210018553A (ko) 2021-02-17
US11762865B2 (en) 2023-09-19
US20220027377A1 (en) 2022-01-27
JP2021012723A (ja) 2021-02-04
GB201620957D0 (en) 2017-01-25
CN112800218A (zh) 2021-05-14
KR102148444B1 (ko) 2020-08-26
DE202016008217U1 (de) 2017-04-28
US11222030B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
KR102249437B1 (ko) 메시지 분류에 기반한 메시지 교환 스레드의 자동화된 증대
JP7443407B2 (ja) 会議能力を有する自動アシスタント
JP6942821B2 (ja) 複数のコーパスからの応答情報取得
KR20200003871A (ko) 인간-대-컴퓨터 대화들에 요청되지 않은 콘텐츠의 선행적 통합
EP3513534A1 (en) Proactive provision of new content to group chat participants
KR20190003709A (ko) 메시지 교환 스레드를 사용한 효율적인 검색 촉진
KR102668732B1 (ko) 인간-대-컴퓨터 대화들에 요청되지 않은 콘텐츠의 선행적 통합

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right