CN109074402A - 基于示例会话使用自然语言机器学习来响应用户请求的技术 - Google Patents

基于示例会话使用自然语言机器学习来响应用户请求的技术 Download PDF

Info

Publication number
CN109074402A
CN109074402A CN201780028343.0A CN201780028343A CN109074402A CN 109074402 A CN109074402 A CN 109074402A CN 201780028343 A CN201780028343 A CN 201780028343A CN 109074402 A CN109074402 A CN 109074402A
Authority
CN
China
Prior art keywords
user
robot
developer
message
interactive
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201780028343.0A
Other languages
English (en)
Other versions
CN109074402B (zh
Inventor
威利·布兰丁
亚历山大·勒布伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
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 Facebook Inc filed Critical Facebook Inc
Publication of CN109074402A publication Critical patent/CN109074402A/zh
Application granted granted Critical
Publication of CN109074402B publication Critical patent/CN109074402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/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
    • G06F40/35Discourse or dialogue representation
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • 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
    • 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/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

描述了基于示例会话使用自然语言机器学习来响应用户请求的技术。在一个实施方式中,装置可以包括,机器人应用程序接口组件,用于接收示例交互存储库,该示例交互存储库包括多个示例用户到机器人交互;以及交互处理组件,用于将示例交互存储库提交给自然语言机器学习组件;响应于提交示例交互存储库,从自然语言机器学习组件接收序列模型;以及基于序列模型执行用户到机器人会话。描述并要求其他实施方式。

Description

基于示例会话使用自然语言机器学习来响应用户请求的技术
相关申请
本申请要求于2016年12月15日提交的代理人案卷号1360F0136的题为“Techniques to Respond to User Requests Using Natural-Language MachineLearning Based on Example Conversations”的美国专利申请号15/380,112的优先权,其全部内容通过引用并入本文。
本申请依据35U.S.C.§119(e)要求于2016年4月11日提交的代理人案卷号1360F0136Z的题为“Techniques to Respond to User Requests Using Natural-Language Machine Learning Based on Example Conversations”的美国临时专利申请号62/320,869的优先权,其全部内容通过引用并入本文。
背景技术
用户可以在消息收发***中彼此交互,在两个或更多个用户之间的基于文本的会话中彼此来回发送消息。用户可以在消息收发***中具有与他们相关联的用户账户,用户账户提供用户的在线身份、指向用户的消息的目的地、并且通常协调用户对消息收发***的访问和使用。用户可以从各种端点访问消息收发***,包括移动设备(例如,手机)、台式计算机、网络浏览器、专用消息收发应用程序等。
发明内容
以下呈现了简化的概述,以便提供对本文描述的一些新颖实施方式的基本理解。该概述不是广泛的概述,并且不旨在标识关键/重要元素或描绘其范围。一些概念以简化形式呈现,作为稍后呈现的更详细描述的序言。
各种实施方式总体上指向基于示例会话使用自然语言机器学习来响应用户请求的技术。一些实施方式具体指向基于用于满足用户服务请求的示例会话使用自然语言机器学习来响应用户请求的技术。在一个实施方式中,例如,装置可以包括操作以接收示例交互存储库的机器人应用程序接口组件,该示例交互存储库包括多个示例用户到机器人交互;以及交互处理组件,操作以将示例交互存储库提交给自然语言机器学习组件;响应于提交示例交互存储库而从自然语言机器学习组件接收序列模型;并基于序列模型执行用户到机器人会话。描述并要求保护了其他实施方式。
为了实现前述和相关目的,在本文中结合以下描述和附图描述了某些例示性方面。这些方面指示可以实践本文公开的原理的各种方式,并且所有方面及其等同物旨在落入所要求保护的主题的范围内。当结合附图考虑时,从以下详细描述中,其他优点和新颖特征将变得显而易见。
附图说明
图1示出了用户请求通信***的实施方式。
图2A示出了用户客户端的用户界面的实施方式。
图2B示出了用户客户端的用户界面的实施方式。
图3A示出了用于配置具有示例机器人消息的示例会话的开发人员控制台的用户界面的实施方式。
图3B示出了用于配置具有示例机器人动作的示例会话的开发人员控制台的用户界面的实施方式。
图3C示出了用于开发人员控制台的用户界面的实施方式。
图4示出了用于图1的***的分支逻辑流程的实施方式。
图5示出了由用户请求通信***执行的用户到机器人会话的实施方式。
图6示出了用于图1的***的逻辑流程的实施方式。
图7示出了用于图1的***的集中式***的实施方式。
图8示出了用于图1的***的分布式***的实施方式。
图9示出了计算体系结构的实施方式。
图10示出了通信体系结构的实施方式。
图11示出了无线电设备体系结构的实施方式。
具体实施方式
网络连接的计算设备可以为其用户提供参与人际交流的前所未有的能力。人们可以与他们的好友、家人、同事和其他同伴进行消息收发交互。用户与其联系人的消息交换可以各自保持在不同的消息线程内。
这些网络连接的计算设备还可以向其用户提供对网络可访问服务的访问。例如,交通服务、餐饮服务、娱乐服务和其他服务可以使用网站、网络应用、客户端应用或其他网络可访问性技术来使人们能够使用他们的客户端设备来参与他们的服务。在某些情况下,例如一些娱乐或媒体服务,可以经由客户端设备来安排和传递服务。例如,可以经由客户端设备购买音乐并将其传递到客户端设备以进行回放。在其他情况下,例如交通、餐饮和面对面娱乐,可以经由客户端设备安排服务,但是在客户端设备外部执行服务。例如,乘车共享服务可以经由客户端设备安排,但是通过向用户提供乘车共享的车辆和驾驶员来执行。
在一些情况下,网络可访问服务的使用可涉及不止一个人。具体地,在用户对服务的访问是他们也用于消息收发的客户端设备的情况下,用户可以从将他们对消息收发客户端中的网络可访问服务的参与与涉及服务的其他人共享中受益。因此,消息线程可以充当用户与其联系人的在线社交关系的中枢,其中消息线程包括经由用于消息收发的相同客户端所请求、监视或参与的服务。
为了帮助用户经由消息收发上下文与服务交互,可以将服务表示为消息收发***内的消息收发机器人。消息收发机器人可以是网络可访问服务的自动前端,其可以表示为消息线程内的参与者。在一些情况下,消息收发机器人可以与明确包括消息收发机器人的消息线程(例如特定用户和消息收发机器人之间的一对一消息线程)相对应。在其他情况下,消息收发机器人可以与其中消息收发机器人不是常规参与者的消息线程中与之相对应,该消息收发机器人是消息线程中的临时参与者用于与服务交互的目的。消息收发机器人可以作为临时参与者包括在任何其他线程中,无论是两个用户之间的一对一线程还是多个用户之间的组线程。
因而,用户可以参与在消息收发客户端的熟悉体验内的网络服务。此外,通过使用消息收发客户端,用户可以参与消息收发上下文内的网络服务,以便允许包括其他人。在某些情况下,这可能仅仅向通知其他人服务,例如让好友或家人了解交通细节。在其他情况下,这可以为多人授权服务的执行,例如晚餐、乘车、娱乐或其他服务被安排以供多人使用的情况。因此,实施方式可以改善使用网络可访问服务的体验,并且可以将网络可访问服务的范围扩展到消息收发***的用户。
消息收发机器人的开发可能受到生成自然语言处理(NLP)***的困难的约束。因而,消息收发***可以提供NLP***以执行消息收发会话的分析,并且将与消息收发机器人提供的服务的性能相关的NLP信息提供给实现消息收发机器人的机器人应用程序。
生成自动机器人的一种可能方法是通过规则的说明。开发人员可以提供关于自动机器人应如何响应各种情况的命令性指令。规则的开发最初可能很简单:具有两个规则的自动机器人可能具有非常有限的能力,但在其有限的范围内,该能力可以起作用。但是,为了适应新情况、新功能或其他新元素,该规则将被补充附加规则。预编码推理链变得更长、更复杂,并且因此在规则之间没有冲突的情况下变得更加难以保持一致。
因此,与基于规则的机器人相比,机器学习可能是期望的。然而,基于训练数据集的机器学习给开发人员带来了生成或收集训练数据集的负担。这对于专注于单个项目的拥有大量资源的大型开发人员而言是可能的,但对于较小的开发人员甚至是在合理的预算和时间范围内尝试引入各种服务的大型开发人员而言是不切实际的。
因此,机器人平台可以受益于提供机器学***台鼓励机器人的创建,并且从而为机器人平台的消费者提供服务。
可以通过向其提供自然方式来指定消息收发机器人应该如何收集与其服务的性能相关的信息的结构,来辅助开发人员。机器人平台可以提供机器人引擎,机器人引擎使得开发人员能够使用故事来定义他们的机器人的行为。故事是示例会话。除了用户消息和机器人消息之外,故事还可能包含实施机器人提供的服务的机器人动作。故事也可以用机器人应该从用户消息中提取的信息的示例来注释,从而教导机器人学习什么以及如何学习。
可以授权开发人员通过在假设的用户和消息收发机器人之间提供带注释的示例会话来配置信息收集过程,该会话说明信息收集过程可以如何工作。开发人员可以编写多个示例会话,其中每个会话代表消息收发机器人的场景。可以对这些示例会话进行注释,以说明对于从用户接收的每个消息,消息收发机器人应该提取什么信息以构建所请求服务的上下文。示例会话可以构建为对机器人应用程序的应用程序接口(API)调用,其中API调用使用通过示例会话构建的上下文。
当创建机器人时,开发人员可以从描述最可能的会话路径的几个故事开始。在这个阶段,机器人引擎可以构建故意过度拟合故事数据集的机器学习模型。由此,开发人员可以通过一些示例会话的规范来创建功能性消息收发机器人。然而,由于示例有限,基于这些示例会话的消息收发机器人可能很难适应开发人员考虑和说明的情况之外的情况。实际上,这意味着故事的行为几乎像规则一样、没有灵活性或者只有限制性的灵活性,以应对故事未预料到的情况。这在某种程度上可能对应于基于规则的NLP***所面临的困难:当真实世界的用户在规则结构中隐含的用户行为的假设之外行动时,它们就倾向于失败。
这使得开发人员能够在仅生成几个故事之后开始测试机器人。这种测试,无论是私下还是在实时环境中都会导致会话的创建。开发人员可以将测试或现实会话转换为额外故事,将这些额外故事添加到机器人的现有故事中,将其馈送到机器人引擎中以产生更新和改进的机器学习模型。与规则不同,机器人引擎可以解决故事相互冲突的情况。作为示例,而不是命令,当发现了新的使用情况时,可以添加额外故事而无需开发人员考虑所有以前的故事,其中机器人引擎能够忽略不一致的故事。因此,这种方法可以提供基于规则的开发的快速和有效的初始开发,并且随着故事数据集的增长而具有灵活性和更强的能力来成功管理机器学习的复杂性。简单的***可以扩展为复杂的***,每个故事的添加其本身就是开发人员的简单动作,这是因为开发人员不需要处理任何矛盾的解决方案,也不需要指定一个故事如何与另一个故事相关。因而,对于开发人员来说,向复杂性扩展可能是简单且因此可管理的过程。
因而,可以通过扩展示例交互的存储库来弥补基于规则的方法的初始缺点,不仅包括由开发人员精心制作的初始示例,还包括由在实时生产环境或预启动实时测试环境中的消息收发机器人从真实世界交互而生成的附加示例。消息收发***可以记录与用户的会话并呈现这些会话以供开发人员或其他管理员进行编辑和验证。可以对导致消息收发机器人成功动作的实时实例进行注释并且将其用作未来消息收发机器人的示例。可以编辑导致失败的实时实例,以显示消息收发机器人应该如何表现,然后将其注释并用作消息收发机器人的示例。无论成功还是失败,都可以生成新的示例,将可用的示例扩展到NLP***以学习如何处理消息收发机器人的自然语言。这可以用于将消息收发机器人的行为从经受与基于规则的***相同的基于刚性的故障转变为更抽象的***的适应性。
由于可以基于实际发生的问题来实现这种转变,因此可以最快速地解决最突出且经历最多的问题,将开发人员的注意力集中在最重要的领域上进行改进。类似地,当这种转换响应于实际使用机器人的真实用户而发生时,机器人可以被精炼并扩展到用户实际为服务带来的期望。此外,由于这种转换在消息收发机器人的生命周期中发生,因此开发人员可以启动服务并利用功能产品参与市场,从而准予他们收入以便随着时间改善他们的服务。因此,由消息收发***提供的学习NLP***可以提高为开发人员提供基于NLP的服务的实用性。
现在参考附图,其中相同的参考标号始终用于表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对其透彻的理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施方式。在其他情况下,众所周知的结构和设备以框图形式示出,以便于其描述。其目的是涵盖与所要求保护的主题一致的所有修改、等同物和替代物。
值得注意的是,本文使用的“a”和“b”和“c”以及类似的指示符旨在表示任何正整数的变量。因此,例如,如果实施方式设置a=5的值,则示为组件122-1到122-a的一组完整组件122可以包括组件122-1、122-2、122-3、122-4和122-5。实施方式不限于此上下文。
图1示出了用户请求通信***100的框图。在一个实施方式中,用户请求通信***100可以包括具有包括一个或多个组件的软件应用程序的计算机实现的***。虽然图1中所示的用户请求通信***100具有特定拓扑中的有限数量的元件,但是可以理解,用户请求通信***100可以根据给定实现方式的需要在替代拓扑中包括更多或更少的元件。
可能由多个机器人应用程序构成的机器人应用程序可以在包括授权消息和其他信息的交换的消息收发***的网络环境中操作。机器人应用程序190可以包括在计算机***上执行的软件应用程序。机器人应用程序190可以使用消息收发***来交换包括用户消息和机器人消息的消息。用户消息可以包括用户请求和阐明且指定用户请求的消息。机器人消息可以阐明与用户请求有关的信息的请求和与用户请求有关的性能信息。在一些情况下,消息收发***可以包括也用于其他消息的通用消息收发***。在其他情况下,消息收发***可以包括专用于与机器人应用程序通信的消息收发***。
消息收发服务器110可以包括由作为用户请求通信***100的一部分的消息收发***操作的一个或多个消息收发服务器。消息收发服务器可以包括互联网可访问服务器,其中网络120将至少部分地包括互联网的用户请求通信***100的各种设备连接。
用户可拥有并操作智能电话设备150。智能电话设备150可包括设备、设备、设备或符合智能电话形式的任何其他移动计算设备。智能电话设备150可以是能够使用蜂窝信号135经由蜂窝***130连接到网络120的蜂窝设备。在一些实施方式中并且在一些情况下,智能电话设备150可以附加地或替代地使用Wi-Fi或其他联网技术以连接到网络120。智能电话设备150可以执行消息收发客户端、网络浏览器或其他本地应用程序以访问消息收发服务器110。
同一用户可以拥有并操作平板设备160。平板设备150可以包括设备、平板设备、Kindle设备或符合平板电脑形式的任何其他移动计算设备。平板设备160可以是能够使用Wi-Fi信号145经由Wi-Fi接入点140连接到网络120的Wi-Fi设备。在一些实施方式中并且在一些情况下,平板设备160可以附加地或替代地使用蜂窝或其他联网技术以连接到网络120。平板设备160可以执行消息收发客户端、网络浏览器或其他本地应用程序以访问消息收发服务器110。
同一用户可以拥有并操作个人计算机设备180。个人计算机设备180可以包括Mac设备、设备、设备或运行另一个操作***的其他计算机设备。个人计算机设备180可以是能够经由以太网连接而连接到网络120的以太网设备。在一些实施方式中并且在一些情况下,个人计算机设备180可以附加地或替代地使用蜂窝、Wi-Fi或其他联网技术到网络120。个人计算机设备180可以执行消息收发客户端、网络浏览器170或其他本地应用程序以访问消息收发服务器110。
消息收发客户端可以是专用消息收发客户端。专用消息收发客户端可以具体地与管理包括消息收发服务器110的消息收发***的消息收发提供商相关联。专用消息收发客户端可以是操作以与多个不同的消息收发提供商一起工作的通用客户端,该多个不同消息收发提供商包括管理包括消息收发服务器110的消息收发***的消息收发提供商。消息收发客户端可以授权访问机器人应用程序以用于服务的性能,例如,机器人应用程序是可经由消息收发服务器110访问的多个端点和/或服务之一。
消息收发客户端可以是提供附加功能的应用程序的组件。例如,社交网络服务可以提供在移动设备上使用以访问和使用社交网络服务的社交网络应用。社交网络服务可以包括例如可以由消息收发服务器110提供的消息收发功能。将认识到,消息收发服务器110可以是用于社交网络服务的计算设备的一个组件,其中计算设备提供社交网络服务的附加功能。类似地,社交网络应用程序可以提供消息收发功能和附加功能。
在一些情况下,消息收发端点可以保留用户会话之间的状态,并且在一些情况下,消息收发端点可以放弃用户会话之间的状态。消息收发端点可以使用本地存储来保留消息收件箱的当前状态。该本地存储可以保存在永久存储设备中,使得可以在一个会话和下一个会话之间检索状态,包括例如本地应用程序退出或以其他方式从存储器移除或者设备断电和再通电的情况。可替代地,消息收发端点可以使用存储器缓存来保留消息收件箱的当前状态,但是避免将消息收件箱的状态提交给永久存储设备。
保留消息收件箱的状态的消息收发端点可以包括集成到另一本地应用程序(例如社交网络应用程序)中的专用消息收发应用程序或消息收发实用程序。放弃消息收件箱的状态的消息收发端点可以包括在网络浏览器内实现的消息收发访问。在一个实施方式中,诸如在个人计算机设备180上执行的网络浏览器170的网络浏览器可以执行与消息收发服务器交互以向用户呈现消息收发功能的HTML5代码。
用户可以从包括智能电话设备150、平板设备160和个人计算机设备180的多个设备发送和接收消息。用户可以使用智能电话设备150上的第一消息收发应用程序、平板设备160上的第二消息收发应用程序以及个人计算机设备180上的网络浏览器170。不同设备上的消息收发应用程序可以包括在两个设备上的相同应用程序的安装。不同设备上的消息收发应用程序可以包括通用应用程序的智能电话专用和平板电脑专用版本。不同设备上的消息收发应用程序可包括不同的应用程序。
用户可以从使其消息收件箱在他们的设备之间保持一致而受益。用户可以在离开他们家时在小区***130上使用他们的智能电话设备150、经由小区***130发送和接收消息。用户可以短暂停留咖啡店或提供Wi-Fi的其他位置,并将他们的平板设备160连接到Wi-Fi接入点140。平板设备160可以检索消息收件箱的其现有已知状态,并且接收自从平板设备160最后一次访问网络以来发生的更新,包括由智能电话设备150发送的任何消息以及用户在操作智能电话设备150时可能已经由用户接收到的任何消息。然后,用户可以返回家中并使用个人计算机设备180上的网络浏览器170访问他们的消息收件箱。网络浏览器170可以从消息收发服务器110接收消息收件箱的当前状态的快照,因为它没有维护或以其他方式不能访问消息收件箱的现有状态。只要它维护与消息收发服务器110的用户会话,网络浏览器170然后可以检索对消息收件箱状态的任何新改变的增量更新,在会话结束时(例如当用户关闭网络浏览器170时)丢弃消息收件箱的其已知状态。在没有限制的情况下,更新可以对应于向收件箱添加消息、从收件箱删除消息以及读取回执。
用户请求通信***100可以通过将消息收发收件箱定义为包括多个消息来操作,其中每个消息是两个或更多个参与者之间的通信的单独交易。消息收发服务器可以通过维护消息收发收件箱的消息索引来操作。消息收发服务器可以接收消息并将消息存储在消息存档中,通过引用消息索引可以从消息存档中检索消息。消息收发客户端可以连接到消息收发服务器,并检索自上次更新以来已添加到其消息存档中的消息。消息收发客户端可以从消息存档接收指示消息存档中存储了哪些消息的消息索引。消息收发客户端可以将消息存档与其当前的收件箱进行比较,以确定它们丢失了哪些消息,然后从消息存档中请求该消息。消息收发客户端可以对其收件箱进行更改,这导致消息收件箱指令被传输到消息存档,该指令指示消息存档修改以在消息存档上作出其消息收件箱的表示。
由消息收发***调解的消息收发交互可以被组织成称为消息线程的共享空间。消息线程可以将在特定用户组之间共享的消息收集在一起。在一对用户之间单独发送的消息可以被收集到与该对用户之间的私人消息收发唯一相关联的一对一消息线程中。在一组三个或更多个用户之间发送的消息可以不由其成员资格唯一地定义,而是在一些实施方式中由唯一地标识组线程的标识符来定义。在一些实施方式中,组线程中的成员资格可以随时间变化,添加和/或丢失成员。消息线程可以处于例如用户和消息收发机器人之间,其中,用户访问消息线程以参与与消息收发机器人的消息收发,以便提交请求并参与关于请求的对话。
用户请求通信***100可以使用从用户之间的交互生成的知识。用户请求通信***100可以包括社交网络***的组件,并且可以使用从社交网络***的更广泛的交互生成的知识。因而,为了保护用户请求通信***100和更大的社交网络***的用户的隐私,用户请求通信***100可以包括授权服务器(或其他合适的组件),该授权服务器允许用户例如通过设置适当的隐私设置来选择或选择不使其动作由用户请求通信***100记录或与其他***(例如,第三方***)共享。用户的隐私设置可以确定可以记录与用户相关联的哪些信息、如何记录与用户相关联的信息、何时可以记录与用户相关联的信息、谁可以记录与用户相关联的信息、与用户相关联的信息可以与谁共享,以及为了什么目的可以记录或共享与用户相关联的信息。授权服务器或其他授权组件可以用于在适当时通过阻挡、数据散列、匿名化或其他合适技术来强制实施用户请求通信***100的用户和社交网络***的其他元素的一个或多个隐私设置。
图2A示出了用户客户端的用户界面200的实施方式。
用户界面200可以显示在客户端设备220上。客户端设备220可以对应于但不限于智能电话设备150、个人计算机设备180、平板设备160或任何其他形式的客户端设备。用户界面200可以经由网络浏览器显示,例如可以在智能电话设备150、平板设备160、个人计算机设备180或其他设备上执行。用户界面200可以显示在消息收发应用程序中,例如可以在智能电话设备150、平板设备160、个人计算机设备180或其他设备上执行。用户界面200可以显示在自动机器人服务应用程序中,例如可以在智能电话设备150、平板设备160、个人计算机设备180或其他设备上执行。可以使用各种技术来显示用户界面200,而不限于这里列出的示例。
用户界面200可以包括消息收发交互显示210。消息收发交互显示210可以包括在客户端设备220的用户和由机器人应用程序190实现的自动机器人之间交换的一系列消息。消息收发交互显示210可以包括多个用户消息的用户消息215。用户消息可以与用户的化身相关联地显示。消息收发交互显示210可以包括多个机器人消息中的机器人消息217。如对应于机器人应用程序190,机器人消息可以与机器人的化身相关联地显示。在一些情况下,例如由于客户端设备220的屏幕空间有限,消息收发交互显示210可以仅可见地包括用户消息和机器人消息的一部分。
客户端设备220可以包括用于操作用户界面200的控制。控制可以包括文本输入控制222,其授权针对基于文本的消息的组合的文本输入。控制可以包括硬件控制。在一些实施方式中,控制可以是基于触摸屏的控制。
图2B示出了用户客户端的用户界面225的实施方式。
消息收发客户端可以显示消息收发客户端标头227。消息收发客户端标头227可以包括消息线程的标题,例如用户可以经由该消息线程参与的消息收发机器人的名称。消息收发客户端标头227可以包括用于将用户返回到消息收发客户端的收件箱视图的控制。收件箱视图控制可以扩增有带未读消息的多个最近消息线程。
用户界面225可以包括消息收发交互显示230。消息收发交互显示230可以包括在客户端设备220的用户和由机器人应用程序190实现的自动机器人之间交换的一系列消息。消息收发交互显示230可以包括多个用户消息。由于用户不需要对自己进行识别,因此可以在没有客户端设备220的用户的化身的情况下显示用户消息。消息收发交互显示230可以包括多个机器人消息。如对应于机器人应用程序190,机器人消息可以与机器人的化身相关联地显示。在一些情况下,例如由于客户端设备220的屏幕空间有限,消息收发交互显示230可以仅可见地包括用户消息和机器人消息的一部分。消息收发交互显示230可以包括显示社交批准图标(例如竖起大拇指)的社交批准图标显示235。社交批准图标显示235的发送和接收可以包括使用消息收发***发送和接收消息的特定情况,其中社交批准图标显示235是嵌入在消息内的元素。消息收发交互显示230可以包括检测到的事件240,例如可以用下划线标记,以指示文本的可操作部分。选择检测到的事件240可以将用于将检测到的事件240添加到用户的日历的界面实例化。
图3A示出了用于配置与示例机器人消息310的示例会话的开发人员控制台的用户界面300的实施方式。所示出的用户界面300可以仅包括示例会话的一部分,例如可以在可滚动界面中显示。
消息收发机器人的开发人员可以使用开发人员控制台来配置消息收发机器人以用于针对用户的一个或多个服务的执行。开发人员控制台可用于编写和注释开发人员编写的示例会话。开发人员控制台也可用于编辑和注释生产使用派生的示例会话。用户界面300可以对应于这些情况中的任一种。
开发人员控制台可以显示并授权创建带有注释的消息收发会话。示例消息收发会话可以是说明消息收发机器人的计划行为的故事。故事还可以包括实际的会话,而不仅仅是计划好的。例如,当消息收发机器人投入使用时,***会收集实际的会话,然后可以将其用作训练故事。示例消息收发会话可以包括示例用户消息305,示例用户消息305从实时用户到机器人消息收发会话生成或者由消息收发机器人的开发人员编写。示例消息收发会话可以包括示例机器人消息310,示例机器人消息310基于实时用户到机器人消息收发会话放置在会话中,或者由消息收发机器人的开发人员放置。应当理解,由于机器人消息可以从开发人员编写的示例中导出,因此基于实时用户到机器人消息收发会话而放置在会话中的示例机器人消息310可能最初仍然由机器人开发人员起草。
可以用示例结构化数据提取来注释示例用户消息。消息收发机器人可以具有由开发人员定义的用于存储用户请求上下文的结构化数据对象。用户请求上下文可以将上下文信息封装在多个数据字段中。结构化数据提取可以向多个数据字段中的一个或多个提供值。例如,表示用于交互的一般用户意图的第一示例用户消息305(在本例中,订购披萨)可以用示例结构化数据提取307来注释,该示例结构化数据提取307指示消息收发机器人应该将示例用户消息305解释为将特定的结构化数据字段(这里是“wants_pizza”字段)设置为真。类似地,第二示例用户消息315(在本例中,特别请求大披萨)可以用示例结构化数据提取317来注释,该示例结构化数据提取317指示消息收发机器人应该将示例用户消息315解释为将“pizza_size”字段设置为等于从示例用户消息315中提取的值,即词语“大”。对于整个第一消息,从第一消息的提取可以是整体的而不是特定值的提取。然而,从第二消息中提取的是包含在示例用户消息315中的特定值,其中提取的值被标记在开发人员控制台中。在一些实施方式中,可以在示例结构化数据提取317中指定可以与示例用户消息中的值不同的特定值以例如进行通信,其中期望消息收发机器人识别值的替代形式,如同义词。
示例机器人消息310可以包括对示例用户消息305的示例机器人响应。示例机器人消息310可以通过指定的文本应当作为消息由消息收发机器人发送的指示,而在机器人响应条目中被指示。示例机器人消息310可以与变量添加控制312相关联。变量添加控制312可以授权向机器人响应添加变量,例如示例机器人消息310。
图3B示出了用于配置具有示例机器人动作340的示例会话的开发人员控制台的用户界面325的实施方式。
其中用户在示例用户消息330中指定他们想要他们的披萨上的一对配料的示例结构化数据提取335,示出了可以从用户消息中提取多个值。在这种情况下,这些多个值可以作为特定数据字段的列表连接在一起,但是在其他情况下,可以为多个数据字段分配从单个用户消息中提取的值。
用户和机器人之间的消息收发交互可以通过针对用户的消息收发机器人来构建服务的性能,尽管该动作可能不代表用户和机器人之间的会话的结束。可以在开发人员控制台中指定示例机器人动作340。可以根据由开发人员提供的对机器人应用程序190的机器人API调用来定义示例机器人动作340。机器人API调用可以采用用户请求上下文和用户请求实体作为输入。用户请求上下文可以包括结构化数据对象,该结构化数据对象包括由NLP***提取的值。用户请求实体可以包括NLP***对用户输入的语义分析的输出。用户请求实体可以包括对于会话中的所有用户消息或者用户消息的一些其他集的最新用户消息的语义分析的输出,但不限于此。
开发人员可以在机器人应用程序190中实现机器人API调用,由NLP***确定特定的机器人API调用,以形成可以为消息收发机器人指定的多个机器人API调用。机器人API调用可以返回更新用户请求上下文的一个或多个值。在所示实施方式中,基于机器人API调用更新用户请求上下文的“delivery_time”字段。机器人应用程序190可以由开发人员实现以执行比萨饼的排序并且将派送时间作为结构化数据对象的“delivery_time”字段的值返回给用户请求上下文。可以使用上下文更新添加控制343来添加附加的上下文更新。
可以在开发人员控制台中示出对示例用户消息的多个机器人响应,并且因此由消息收发机器人执行。例如,机器人可以在执行动作时被模式化,然后经由消息向用户报告该动作。可以在示例会话中指定示例机器人消息345。变量添加控制347可用于将特定变量的值(例如,来自用户请求上下文的结构化数据对象的字段)添加到示例机器人消息345。在所示实施方式中,在执行先前机器人动作期间指定的值然后被包括在以下示例机器人消息345中。在一些实施方式中,可以将多个机器人响应(诸如机器人动作和机器人消息)定义为单元,并且因此作为一个不可分割的单元由消息收发机器人训练和再现。在某些情况下,机器人动作可能涉及将当前的用户请求上下文传递给开发人员***执行的机器人应用程序,其中作为响应从机器人应用程序接收更新的用户请求上下文,此外,还涉及可以由机器人应用程序对开发人员***执行的任何动作。
图3C示出了用于开发人员控制台的用户界面350的实施方式。在一些实施方式中,开发人员控制台可以在访问用户请求通信***100的网站的网络浏览器中显示,其中开发人员控制台由用户请求通信***100托管。
开发人员控制台可以包括多个部分(包括故事部分)。可以通过选择故事选择控制355来选择故事部分。故事部分可以用于配置故事以用于向自然语言机器学习组件教导消息收发机器人的期望行为。开发人员控制台可以包括附加的部分,例如收件箱部分(用于接收与消息收发机器人相关的消息)、动作部分(用于配置用于由消息收发机器人执行的机器人动作)、实体部分(用于配置结构化数据对象以用于存储消息收发交互的用户上下文)、日志部分(用于查看消息收发机器人的消息收发交互的日志,例如可用于生成附加的故事),以及设置部分(用于配置消息收发机器人的设置)。可以使用其他或替代部分。
在某些情况下,可以经由日志部分到达故事部分。日志部分可以显示消息收发机器人已参与的一些或所有会话的日志。开发人员可以查看这些会话以确定消息收发机器人所需的附加功能、消息收发机器人应该能够处理的附加请求、消息收发机器人应该能够理解的附加语句、以及通常适合于消息收发机器人的附加训练。在某些情况下,开发人员可以选择转换到故事部分并编写故事以提供附加的训练。在某些情况下,开发人员可以选择将记录的会话复制到故事部分,并编辑和注释记录的会话以生成故事。
开发人员控制台可以包括创建故事控制359。创建故事控制359可以授权创建用于配置消息收发机器人的附加故事。
开发人员控制台可以包括重试保存控制358。重试保存控制358可以用于启动保存操作和/或重试保存操作。
开发人员控制台可以包括删除控制357。删除控制357可以授权删除在开发人员控制台中正在编辑的当前故事。
开发人员控制台可以包括示例用户消息360。示例用户消息360可以包括由开发人员经由开发人员控制台编写的文本段,以示出用于与消息收发机器人交互的预期或可能的用户消息。
开发人员控制台可以包括实体名称规范364。实体名称规范364可以指定在结构化数据对象中配置的实体的名称。该实体的该规范将实体标识为在示例用户消息360中出现。
开发人员控制台可以包括示例结构化数据提取366。示例结构化数据提取366可以指定与实体名称规范364相关联的消息收发机器人应该被训练以从类似的示例中提取的示例用户消息360的部分。可以经由下拉菜单指定示例结构化数据提取366,其中下拉菜单包括示例用户消息360中的每个文本段。
可以经由预定义实体规范368来指定一些实体。预定义实体规范368可以对应于具有用户请求通信***100的实体的预定义类型。预定义实体类型可以包括但不限于地名类型、地址类型、人名类型、电话号码类型、电子邮件地址类型或基于用户请求通信***100在消息收发交互中的共同外观而预定义的任何其他类型。
开发人员控制台可以包括示例机器人消息370。示例用户消息370可以包括由开发人员经由开发人员控制台编写的文本段,以示出用于与用户交互的预期或可能的机器人消息。
开发人员控制台可以包括变量添加控制372。变量添加控制374可以授权将可变元素添加到示例机器人消息370,使得在发送给用户时可变元素的值包括在示例机器人消息370中。
图4示出了用于图1的用户请求通信***100的分支逻辑流程400的实施方式。分支逻辑流程400可以代表由本文描述的一个或多个实施方式执行的一些或全部操作。
在图4示出的所示实施方式中,逻辑流程400可以在框405处接收用户消息。该逻辑流程400通常可以从接收用户消息开始,并且因此开始逻辑流程400的过程。然后逻辑流程400可以进行到框410。
在框410处,逻辑流程400可以更新用户请求上下文。更新用户请求上下文可以包括从接收的用户消息中提取一个或多个值并将该一个或多个值存储在结构化数据对象中。然后,逻辑流程400可以进行到框415。
在框415处,逻辑流程400可以生成对所接收的用户消息的一个或多个机器人响应。生成一个或多个机器人响应可以包括生成多个机器人响应选项并选择特定的一个或多个以用于响应用户消息。然后,逻辑流程400可以进行到框420。
逻辑流程400可以基于未执行的机器人响应是否可用而在框420处分支。应当理解,可以对机器人响应进行排序,并且因而可以存在下一个可用的机器人响应。如果下一个可用的机器人响应是机器人动作,则逻辑流程400可以进行到框430。如果下一个可用的机器人响应是机器人响应消息,则逻辑流程400可以进行到框450。如果没有更多的可用的机器人响应,则逻辑流程400可以进行到框460。
在框430处,逻辑流程400可以检索API信息。可以通过利用一个或多个输入执行对机器人应用程序190的API调用来实施机器人动作。可以检索API调用的输入信息并使其可用。然后,逻辑流程400可以进行到框435。
在框435处,逻辑流程400可以执行机器人API调用。执行机器人API调用可以包括参与对机器人应用程序190的API调用。一些机器人应用程序可以由执行逻辑流程400的计算机***在本地执行,并且因而API调用可以是本地API调用。一些机器人应用程序可以由与执行逻辑流程400的不同的计算机***远程执行,并且因而API调用可以是使用对机器人应用程序190的网络访问的远程API调用。然后逻辑流程400可以进行到框440。
在框440处,逻辑流程400可以基于机器人API调用来更新用户请求上下文。在一些情况下,机器人API调用可以返回用户请求上下文的值。在一些实施方式中,可以将返回值作为返回值提供给机器人API调用。在其他情况下,体现用户请求上下文的结构化数据对象可以由机器人应用程序190修改并作为修改的结构化数据对象返回,其中返回的修改的结构化数据对象替换NLP***使用的先前结构化数据对象。然后,逻辑流程400可以继续循环回到框420。
在框450处,逻辑流程400可以检索机器人响应消息的变量。在一些情况下,机器人响应消息可以是静态消息,其中静态地指定机器人响应消息的所有元素。在其他情况下,机器人响应消息可以包括在执行时用特定值填充的一个或多个变量条目。逻辑流程400可以检索这些值以基于用户请求上下文指定变量。然后,逻辑流程400可以进行到框455。
在框455处,逻辑流程400可以发送机器人响应消息。发送机器人响应消息可以包括经由消息收发***向用户的客户端设备发送消息。机器人响应消息可以在发送之前将一个或多个变量设置为检索的值。然后,逻辑流程400可以继续循环回到框420。
在框460处,逻辑流程400可以更新会话历史。可以更新会话历史以包括所接收的用户消息和任何执行的机器人动作以及发送的机器人消息。将理解,在一些实施方式中,可以在接收任何用户消息之后、在执行任何机器人动作之后、以及在发送任何机器人消息之后立即更新会话历史。然后,逻辑流程400可以继续循环回到框405。
逻辑流程400可以继续直到会话结束。在一些情况下,可以在成功执行用户请求之后完成会话,包括向用户提供关于执行的信息以及接收任何用户反馈。在某些情况下,可以在未能满足用户请求之后完成会话。在某些情况下,可以在用户停止提交用户消息之后完成会话。在一些情况下,可以结束会话,并且清除用户请求上下文和会话历史,并且逻辑流程400仍然可用于在后续会话中接收用户消息。
图5示出了由用户请求通信***100执行的用户到机器人会话的实施方式。
用户到机器人会话可以由机器人服务器525调解。机器人服务器525可以耦接到消息收发服务器110以用于消息收发***。消息收发服务器110可以在机器人服务器525和用户客户端520之间执行消息的发送和接收。消息收发服务器110可以在机器人服务器525和机器人应用程序190之间、或可以使用机器人应用程序前端来执行信息的发送和接收。
用户客户端520可以包括消息收发客户端、用于访问机器人应用程序190或多个机器人应用程序190的专用客户端,或包括消息收发功能的任何其他客户端。用户客户端520可以在客户端设备上执行。用户客户端520可以使用客户端通信组件540与机器人服务器525进行用户消息交换530。客户端通信组件540可以向机器人服务器525提供客户端前端,客户端前端可以通过由消息收发***进行的消息的发送来调解。用户消息交换530可以包括从用户客户端520向机器人服务器525发送用户编写的消息以及从机器人服务器525向用户客户端520发送机器人消息。
机器人应用程序190可以包括软件程序,例如可以在开发人员计算机***上执行或者可以由用户请求通信***100托管的软件程序。机器人应用程序190可以经由机器人应用程序接口组件580与机器人服务器525进行机器人信息交换590。机器人应用程序接口组件580可以充当机器人服务器525的前端和/或机器人应用程序的消息收发***。机器人信息交换590可以包括向机器人服务器525提交示例会话以及由机器人应用程序接口组件580与机器人应用程序190执行机器人API调用。
交互处理组件560可以与自然语言机器学习(NLML)组件550接口连接以生成序列模型510。交互处理组件560可以使用序列模型510来生成机器人响应,包括机器人消息和机器人动作。交互处理组件560可以充当客户端通信组件540和机器人应用程序接口组件580之间的中介。NLML组件550可以使用已知的自然语言处理(NLP)和机器学习(ML)技术来实现。
交互处理组件560可以接收示例交互存储库570,示例交互存储库570包括多个示例用户到机器人交互。交互处理组件560可以经由机器人应用程序接口组件580从机器人应用程序访问示例交互存储库570,作为机器人信息交换590的一部分。交互处理组件560可以将示例交互存储库570提交给自然语言机器学习组件550并且响应于提交示例交互存储库570而从自然语言机器学习组件550接收序列模型510。机器人服务器525(包括客户端通信组件540、交互处理组件560和机器人应用程序接口组件580)可以基于序列模型510执行用户到机器人会话。
可以根据消息收发会话描绘用户到机器人会话(即,故事)。在一些实施方式中,机器人应用程序190可以负责检测消息收发会话中断并且通知机器人服务器525已经发生消息收发会话中断,作为机器人信息交换590的一部分。在一些实施方式中,交互处理组件560可以使用会话中断技术检测到消息收发会话中断,这可能取决于会话的语义分析和/或会话中的时间间隔的长度。
基于序列模型510执行用户到机器人会话可以包括将序列模型510应用于用户请求上下文、用户到机器人会话历史以及用于一个或多个用户消息的语义分析信息。可以根据开发人员定义的结构化数据对象存储用户请求上下文,其中,开发人员定义的结构化数据对象包括多个字段。可以基于从用户到机器人会话中的用户消息中提取的语义分析信息,在用户到机器人会话的长度上迭代地确定这些字段。用户到机器人会话历史可以包括用户到机器人会话的用户消息和机器人消息的完整交换、以及机器人动作。序列模型510可以按顺序合并用户到机器人会话历史,以及其他可能的用途,以避免重复消息和动作。语义分析信息可以包括由NLML组件550从用户消息中提取意图和其他语义信息。
执行用户到机器人会话可以包括从客户端设备接收用户消息并基于用户消息和序列模型510生成机器人响应。机器人响应可以包括机器人响应消息,客户端通信组件540将机器人响应消息发送到客户端设备。可替代地,机器人响应可以包括机器人动作。在一些实施方式中,机器人服务器525可以为托管消息收发机器人执行机器人动作。在其他实施方式中,机器人应用程序接口组件580可以将机器人动作传送到机器人应用程序190。将机器人动作传送到机器人应用程序190可以包括执行机器人API调用。
机器人动作可以由机器人应用程序190在开发人员服务器上执行,以使开发人员自由开发在机器人动作的执行。开发人员能够在他们的***上实现和执行的任何动作可以经由消息收发机器人作为服务提供给用户。这可以消除开发人员在什么平台上执行、他们使用什么平台开发、机器人的执行范围(例如,机器人可用于执行的资源)、所使用的编程语言、机器人可以调用哪些API等方面的任何限制。
基于用户消息和序列模型510生成机器人响应可以包括生成用户消息的语义分析信息并基于将序列模型510应用于语义分析信息来生成机器人响应。语义分析信息可以是使用NLP技术从用户消息中提取意图。
可以根据消息收发机器人与用户的会话来更新用户请求上下文。交互处理组件560可以基于利用与当前的用户请求上下文相关联的序列模型处理用户消息来生成更新的用户请求上下文。在一些实施方式中,用户请求上下文的更新可以由机器人应用程序190执行。交互处理组件560可以基于利用与当前的用户请求上下文相关联的序列模型510处理用户消息来生成用户请求上下文更新。机器人应用程序接口组件580可以将用户请求上下文更新发送到机器人应用程序190,并且作为响应从机器人应用程序190接收更新的用户请求上下文。交互处理组件560可以存储更新的用户请求上下文以用于处理将来的用户消息。
与在开发人员***上执行机器人动作一样,开发人员***上的上下文的更新可以使开发人员自由地如何基于机器人动作更新上下文。此外,通过组合动作的执行和上下文的更新,机器学习可以变得更加实用,即将部分逻辑封装到NLML组件550可以学习作为单个动作进行操作的单元中,而不必将可能作为单个机器人动作的一部分发生的多个子动作:一个或多个API调用、一个或多个计算、对上下文的一个或多个更改等拼凑在一起。这可能使NLML组件550在没有数百个故事的情况下学习功能模型更加实用,这些故事可以用于训练机器人,以学习将可以封装在单个机器人动作中的独立步骤连接在一起。
机器人响应的生成可以涉及使用序列模型510处理用户到机器人会话的当前状态以生成可能的机器人响应的集合。序列模型510可以包括多个示例用户到机器人交互的表示。使用序列模型510处理用户到机器人会话的当前状态可以导致从多个示例用户到机器人交互中选择多个机器人响应,该序列模型510指示对匹配当前状态的后续步骤的最佳对应。
然而,在一些情况下,这些所选择的机器人响应中的一些可能是不合适的。因而,生成机器人响应可以包括:接收多个建议机器人响应,多个建议机器人响应中的每一个与响应排名分数相关联;排除多个建议机器人响应中的一个或多个无效机器人响应,以生成多个后处理的建议机器人响应;并选择具有最高响应排名分数的机器人响应作为后处理的建议机器人响应中的建议机器人响应。
在一些情况下,基于缺乏建议机器人动作的完整上下文,可以排除一个或多个无效机器人响应。由机器人应用程序190支持的每个机器人动作可以使用存储在存储用户请求上下文的结构化数据对象的字段中的信息。向用户请求通信***100注册消息收发机器人可以包括所支持的机器人动作的规范。支持的机器人动作的规范可以包括由机器人应用程序接口组件580使用的API调用来向机器人应用程序190实例化机器人动作以及因此必须在进行API调用之前指定的用于执行机器人动作的结构化数据对象的字段。序列模型510可以不合并这些限制,并且因此,交互处理组件560可以基于交互处理组件560确定并非结构化数据对象的所有指定字段已具有为其输入的值,而在后处理步骤中排除对应于机器人动作的建议机器人响应。
在一些实施方式中,用户请求通信***100可以包括建模相干会话的语义结构的相干性模型。可以基于包括多个相干聊天会话的相干聊天会话存储库来生成该相干性模型。这些相干聊天会话可以由用户请求通信***100的人类操作员选择。可以构建相干性模型以模拟人类会话的相干流,该相干流对应于人类觉得自然的讨论的交换意见(give andtake)。例如,相干性模型可以避免在没有解决当前主题的情况下将会话移动到后续主题。相干性模型可以引导用户到机器人会话以从服务请求信息(例如,所请求的服务、所请求的服务选项)中解析服务执行信息(例如,提取/递送地址、联系电话号码等)。例如,可以引导用于订购披萨的消息收发机器人在解决应该如何以及在何处递送披萨的配置之前或之后,在一系列连续问题中解决披萨的配置。
交互处理组件560可以使用相干性模型来为多个建议机器人响应中的每一个生成相干性分数。相干性分数可以是多个建议机器人响应中的每一个与用户到机器人会话的现有历史的相干性程度的0到1之间的评级。相干性分数可以是用户到机器人会话与多个建议机器人响应中的每一个的添加的相干性程度的0到1之间的评级。因此,可以基于多个建议机器人响应中的每一个的相干性分数来确定多个建议机器人响应中的每一个的响应排名分数,其中选择具有最高响应排名分数的建议机器人响应以供使用。
执行用户到机器人会话可以包括基于序列模型510迭代更新用户请求上下文。可以迭代地更新用户请求上下文以确定与消息收发机器人交互的用户的意图和偏好,机器人动作取决于用户请求上下文中某些信息对其执行的可用性。用户到机器人会话可以是通过发送机器人消息和接收用户消息来从用户收集该信息的尝试。因而,执行用户到机器人会话可以包括经由消息收发***交换一系列用户消息和机器人消息以生成用户请求上下文。
执行用户到机器人会话可以包括经由消息收发***交换一系列用户消息和机器人消息以生成推断的用户请求动作。该推断的用户请求动作可以包括基于序列模型510生成的一个或多个机器人动作。然后机器人应用程序接口组件580可以基于用户请求上下文执行推断的用户请求动作。可以基于API调用来定义推断的用户请求动作,其中基于用户请求上下文来定义API调用的一个或多个参数。
对于示例交互存储库570,示例用户到机器人交互中的一个或多个可以包括开发人员所编写用户到机器人假设交互。开发人员可以生成这些开发人员所编写用户到机器人假设交互,以描述消息收发机器人的优选行为。机器人应用程序接口组件580可以经由开发人员控制台接收一个或多个开发人员所编写用户到机器人交互。
对于示例交互存储库570,示例用户到机器人交互中的一个或多个可以包括基于使用的用户到机器人交互。这些基于使用的用户到机器人交互可以从消息收发机器人与用户的执行开发,而不是由开发人员编写脚本。但是,开发人员可以在将用户部署为示例之前编辑消息收发机器人的会话。
机器人应用程序接口组件580可以接收从执行生产的用户到机器人会话所生成的一个或多个生产式用户到机器人交互。开发人员控制台可以显示一个或多个生产式用户到机器人交互,并接收一个或多个生产式用户到机器人交互的开发人员验证,以生成基于使用的用户到机器人交互。响应于接收到一个或多个基于使用的用户到机器人交互的开发人员验证,交互处理组件560可以包括示例交互存储库570中的一个或多个基于使用的用户到机器人交互。
在一些情况下,开发人员可以在将其验证为基于使用的用户到机器人交互之前,编辑生产式用户到机器人交互以包括在示例交互存储库570中。开发人员控制台可以接收对一个或多个生产式用户到机器人交互的一个或多个开发人员修改,以生成基于使用的用户到机器人交互。因此,包括在示例交互存储库570中的用户到机器人交互的版本可以包括开发人员修改。在一些情况下,可以执行这些开发人员修改以审查记录的用户到机器人的个人信息交互。可以排除个人信息以保护用户的隐私。可以保留特定请求信息,但是对其进行注释,以指示从其确定用户请求上下文的用户到机器人交互的部分。
在一些实施方式中,NLML组件550可以依赖于示例用户到机器人交互的注释来确定应该从用户消息中提取的信息以添加到用户请求上下文。开发人员控制台可以接收一个或多个生产式用户到机器人交互的一个或多个开发人员注释,以生成基于使用的用户到机器人交互。交互处理组件560可以包括在示例交互存储库570中的一个或多个基于使用的用户到机器人交互的一个或多个开发人员注释。一个或多个开发人员注释可以包括上下文更新注释。
在一些实施方式中,语义信息的提取可以指向结构化数据对象的字段的值的确定。因而,语义信息的提取可以是监督信息提取,监督的基础是将自然语言处理约束为仅确定这些字段的值。因此,可以仅基于结构化数据对象的字段来执行在示例交互存储库570中并且因此在序列模型510中表示的不同机器人响应之间的区别。
然而,在其他实施方式中,可以采用非结构化语义信息的非监督信息提取。基于序列模型510执行用户到机器人会话的交互处理组件560可以包括将提取的非监督信息合并到一个或多个建议机器人响应中。NLML组件550和交互处理组件560可以提取非监督信息,并使用非监督信息来区分仅基于结构化语义信息的监督信息提取而可能无法区分的不同机器人响应。建议机器人响应的选择或建议机器人响应的排名可以使用该非监督信息。非结构化语义信息可以包括对用于执行用户到机器人会话的序列模型510的附加输入。因而,基于序列模型510执行用户到机器人会话可以包括将序列模型510应用于用户请求上下文、用户到机器人会话历史、针对一个或多个用户消息的语义分析信息、以及从最近的用户消息中提取的非监督信息。
例如,通过将来自用户的开场白的礼貌性意图非结构化地提取到示例机器人响应消息中的礼貌性意图的非结构化检测,用户的礼貌开场白可以与消息收发机器人的礼貌开场响应相匹配。通常,可以分析机器人响应以确定机器人响应的非监督语义信息。可以分析用户消息以确定用户消息的非监督语义信息。可以比较非监督语义信息并将其用于选择和/或排名机器人响应。例如通过各种排名分数或排名权重的数学组合,可以组合各种排名标准。
还可以采用跨信使机器人学习。用户到机器人会话的某些部分可以独立于消息收发机器人提供的特定服务。例如,在会话开始或结束时的友好玩笑可以跨多个机器人通用。在一些实施方式中,用于一个消息收发机器人的序列模型510可以合并基于其他消息收发机器人的示例会话而生成的与服务无关的机器人响应。可替代地或另外地,在一些实施方式中,可以针对类似服务采用跨信使机器人学习,在为另一个消息收发机器人生成序列模型510时,包括基于一个消息收发机器人的示例会话而生成的特定于服务的机器人响应。
在一些实施方式中,可以将用于相同服务或不同服务的多个消息收发机器人的示例会话连接在一起以生成序列模型510。在提供相同或类似服务的多个消息收发机器人的示例会话被连接在一起的情况下,由于服务超出了一个消息收发机器人的单组示例会话将提供的服务,可以部署所产生的序列模型510以提高该服务的用户请求通信***100的质量。在将提供不同服务的多个消息收发机器人的示例会话连接在一起的情况下,可以部署所产生的序列模型510,以提高用户请求通信***100响应单个消息收发会话中的不同类型的服务请求时的灵活性。在多个消息收发机器人的示例会话被连接在一起的情况下,机器人动作可以仍然是特定于特定消息收发机器人并因此特定于机器人应用程序,其中机器人应用程序对应于正在使用的所选机器人动作的特定机器人API调用。
本文包括一组流程图,其表示用于执行所公开的体系结构的新颖方面的示例性方法。虽然为了简化说明的目的,本文所示的一种或多种方法,例如以流程图或流程图表的形式被示出并被描述为一系列动作,但应明白和理解,这些方法不受行为顺序的限制,因为根据其行为,某些行为可以以不同的顺序发生和/或与本文所示和所述的其他行为同时发生。例如,本领域技术人员将明白并理解,例如在状态图中,方法可替代地表示为一系列相互关联的状态或事件。此外,一种新颖实现可能不需要方法中示出的所有行为。
图6示出了逻辑流程600的一个实施方式。逻辑流程600可以代表由本文描述的一个或多个实施方式执行的一些或全部操作。
在图6中示出的所示实施方式中,在框602处,逻辑流程600可以接收示例交互存储库,示例交互存储库包括多个示例用户到机器人交互。
在框604处,逻辑流程600可以将示例交互存储库提交给自然语言机器学习组件。
在框606处,响应于提交示例交互存储库,逻辑流程600可以从自然语言机器学习组件接收序列模型。
在框608处,逻辑流程600可以基于序列模型执行用户到机器人会话。
实施方式不限于该示例。
图7示出了集中式***700的框图。集中式***700可以在单个计算实体中(例如完全在单个集中式服务器设备720内)实现用户请求通信***100的一些或全部结构和/或操作。
中央服务器设备720可以包括能够为用户请求通信***100接收、处理和发送信息的任何电子设备。电子设备的示例可以包括但不限于超移动设备、移动设备、个人数字助理(PDA)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、电子书阅读器、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型轻便电脑、笔记本电脑,上网本电脑、掌上电脑、平板电脑、服务器、服务器阵列或服务器场、网络(web)服务器、网络(network)服务器、互联网服务器、工作站、小型计算机、主机计算机、超级计算机、网络(network)设备、网络(web)设备、分布式计算***、多处理器***、基于处理器的***、消费电子产品、可编程消费电子产品、游戏设备、电视、数字电视、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。实施方式不限于此上下文。
中央服务器设备720可以使用处理组件730来执行用户请求通信***100的处理操作或逻辑。处理组件730可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、***程序、软件开发程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、单词、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件实现实施方式可以根据任意数量的因素而变化,例如期望的计算速率、功率水平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及根据给定实现的需要的其他设计或性能约束。
中央服务器设备720可以使用通信组件740为用户请求通信***100执行通信操作或逻辑。通信组件740可以实现任何公知的通信技术和协议,例如适合与分组交换网络(例如,诸如互联网的公共网络、诸如企业内联网的专用网络等)、电路交换网络(例如,公共交换电话网络)或分组交换网络和电路交换网络(具有合适的网关和转换器)的组合一起使用的技术。通信组件740可以包括各种类型的标准通信元件,例如一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电、无线发送器/接收器(收发器)、有线和/或无线通信介质、物理连接器等。作为示例而非限制,通信介质712包括有线通信介质和无线通信介质。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤、传播信号等等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外和其他无线介质。
中央服务器设备720可以经由通信组件740使用通信信号714通过通信介质712与其他设备通信。根据给定实现的需要,这些设备可以在集中式服务器设备720的内部或外部。中央服务器设备720可以实现机器人服务器525、自然语言机器学习组件550和机器人应用程序190。这可以包括由消息收发***执行的机器人应用程序190的实施方式。在一些实施方式中,集中式服务器设备720可以与机器人提供商执行的机器人应用程序190一起使用。中央服务器设备720可以与多个用户客户端设备725通信,每个用户客户端设备725执行用户客户端520。
图8示出了分布式***800的框图。分布式***800可以将用户请求通信***100的结构和/或操作的部分分布到多个计算实体。分布式***800的示例可以包括但不限于客户端服务器体系结构、3层体系结构、N层体系结构、紧密耦接或集群体系结构、对等体系结构、主从体系结构、共享数据库体系结构和其他类型的分布式***。实施方式不限于此上下文。
分布式***800可以包括多个消息收发服务器设备810、机器人服务器设备850和自然语言机器学习服务器设备860。通常,服务器设备810、850和860以及860可以与如参考图8描述的集中式服务器设备820相同或相似。例如,服务器设备810、850和860可以各自包括处理组件830和通信组件840,它们分别与如参考图8所描述的处理组件830和通信组件840相同或相似。在另一示例中,服务器设备810、850和860可以经由通信组件840使用通信信号814通过通信介质812进行通信。
消息收发服务器设备810可以包括或采用一个或多个程序,这些程序用于根据所描述的实施方式执行各种方法。在一个实施方式中,例如,消息收发服务器设备810可以实现多个机器人服务器525。
机器人服务器设备850可以包括或采用一个或多个程序,这些程序用于根据所描述的实施方式执行各种方法。在一个实施方式中,例如,机器人服务器设备850可以实现多个自然语言机器学习组件550。
自然语言机器学习(NLML)服务器设备850可以包括或采用一个或多个程序,这些程序用于根据所描述的实施方式执行各种方法。在一个实施方式中,例如,自然语言机器学习服务器设备850可以实现多个消息收发服务器815。
服务器设备810、850和860可以与多个机器人应用程序890通信。多个机器人应用程序890中的每一个可以提供不同的自动服务,但是也可能存在例如可以提供竞争的自动服务的重复。服务器设备810、850和860可以与多个用户客户端设备825通信,每个用户客户端设备825执行用户客户端520。
图9示出了适用于实现如前所述的各种实施方式的示例性计算体系结构900的实施方式。在一个实施方式中,计算体系结构900可以包括或实现为电子设备的一部分。电子设备的示例可以包括参考图7、图8等描述的示例。实施方式不限于此上下文。
如在本申请中所使用的,术语“***”和“组件”旨在指代与计算机相关的实体,或者是硬件、硬件和软件的组合、软件或执行中的软件,示例性计算体系结构900提供了这些示例。例如,组件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、(光学和/或磁存储介质的)多存储驱动器、对象、可执行文件、执行的线程、程序和/或计算机。举例来说,在服务器上运行的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦接以协调操作。协调可以涉及单向或双向信息交换。例如,组件可以以通过通信介质传送的信号的形式传送信息。该信息可以实现为分配给各种信号线的信号。在这种分配中,每条消息都是一个信号。然而,其他实施方式可以替代地采用数据消息。可以通过各种连接发送这样的数据消息。示例性连接包括并行接口、串行接口和总线接口。
计算体系结构900包括各种公共计算元件,例如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、***设备、接口、振荡器、定时设备、显卡、声卡、多媒体输入/输出(I/O)组件、电源等。然而,实施方式不限于计算体系结构900的实现。
如图9所示,计算体系结构900包括处理单元904、***存储器906和***总线908。处理单元904可以是各种商用处理器中的任何一种,包括但不限于处理器;应用程序、嵌入式和安全处理器;处理器;IBM和Cell处理器;Core(2) 处理器;以及类似的处理器。双微处理器、多核处理器和其他多处理器体系结构也可以用作处理单元904。
***总线908为***组件提供接口,包括但不限于***存储器906到处理单元904。***总线908可以是几种类型的总线结构中的任何一种,总线结构可以使用各种商用可用总线体系结构中的任意一种进一步互连到存储器总线(带或不带存储器控制器)、***总线和本地总线。接口适配器可以通过插槽体系结构连接到***总线908。示例插槽体系结构可包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准体系结构((E)ISA)、微通道体系结构(MCA)、NuBus、***组件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA)等。
计算体系结构900可以包括或实现各种制品。制品可包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等等。逻辑的示例可以包括使用任何合适类型的代码(例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。实施方式还可以至少部分地实现为包含在非暂时性计算机可读介质中或非暂时性计算机可读介质上的指令,其可以由一个或多个处理器读取和执行以使得能够执行本文描述的操作。
***存储器906可以包括以一个或多个高速存储器单元形式的各种类型的计算机可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(如铁电聚合物存储器、奥弗辛斯基(ovonic)存储器、相变或铁电存储器,氧化硅-氮化物-氧化物-硅(SONOS)存储器)、磁卡或光卡,一系列设备(如独立磁盘冗余阵列(RAID)驱动器、固态存储器设备(例如,USB存储器、固态驱动器(SSD))以及适于存储信息的任何其他类型的存储介质。在图9示出的所示实施方式中,***存储器906可包括非易失性存储器910和/或易失性存储器912。基本输入/输出***(BIOS)可存储在非易失性存储器910中。
计算机902可以包括一个或多个低速存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)914、用于读取或写入可移动磁盘918的磁性软盘驱动器(FDD)916以及用于读取或写入可移动光盘922(例如,CD-ROM或DVD)的光盘驱动器920。HDD 914、FDD 916和光盘驱动器920可以分别通过HDD接口924、FDD接口926和光盘驱动器接口928连接到***总线908。用于外部驱动器实现的HDD接口924可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或两者。
驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,许多程序模块可以存储在驱动器和存储器单元910、912中,包括操作***930、一个或多个应用程序932、其他程序模块934和程序数据936。在一个实施方式中,一个或多个应用程序932、其他程序模块934和程序数据936可以包括例如用户请求通信***100的各种应用程序和/或组件。
用户可以通过一个或多个有线/无线输入设备(例如,键盘938和诸如鼠标940的指示设备)将命令和信息输入到计算机902中。其他输入设备可以包括麦克风、红外线(IR)遥控器、射频(RF)遥控器、游戏手柄、手写笔、读卡器、加密狗、指纹读卡器、手套、图形板、操纵杆、键盘、视网膜读卡器、触摸屏(例如,电容式、电阻式等)、轨迹球、触控板、传感器、触控笔等。这些和其他输入设备通常通过耦接到***总线908的输入设备接口942连接到处理单元904,但是可以通过其他接口连接,例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等。
监视器944或其他类型的显示设备也经由诸如视频适配器946的接口连接到***总线908。监视器944可以在计算机902的内部或外部。除了监视器944之外,计算机通常包括其他***输出设备,例如扬声器、打印机等。
计算机902可以使用经由有线和/或无线通信与一个或多个远程计算机(例如远程计算机948)的逻辑连接在网络环境中操作。远程计算机948可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且通常包括相对于计算机902描述的许多或所有元件,但是出于简洁的目的,仅示出了存储器/存储装置950。所描述的逻辑连接包括到局域网(LAN)952和/或大型网络(例如,广域网(WAN)954)的有线/无线连接。这种LAN和WAN网络环境在办公室和公司中是常见的,并且促进企业范围内的计算机网络(例如内联网),所有这些都可以连接到全球通信网络(例如互联网)。
当在LAN网络环境中使用时,计算机902通过有线和/或无线通信网络接口或适配器956连接到LAN 952。适配器956可以促进到LAN 952的有线和/或无线通信,LAN 952还可以包括设置在其上的无线接入点,用于与适配器956的无线功能通信。
当在WAN联网环境中使用时,计算机902可以包括调制解调器958,或者连接到WAN954上的通信服务器,或者具有用于通过WAN 954建立通信的其他装置,例如通过互联网。调制解调器958可以是内部的或外部的以及有线和/或无线设备,经由输入设备接口942连接到***总线908。在网络环境中,相对于计算机902或其部分描述的程序模块,可以理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。
计算机902可操作以与使用IEEE802系列标准的有线和无线设备或实体通信,例如可操作地设置在无线通信中的无线设备(例如,IEEE802.11空中调制技术)。这至少包括Wi-Fi(或无线保真)、WiMax和BluetoothTM无线技术等。因此,通信可以是与传统网络一样的预定义结构,或者仅仅是至少两个设备之间的临时通信。Wi-Fi网络使用称为IEEE 802.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接,连接到互联网以及连接有线网络(使用IEEE 802.3相关介质和功能)。
图10示出了适合于实现如前所述的各种实施方式的示例性通信体系结构1000的框图。通信体系结构1000包括各种通用通信元件,例如发射器、接收器、收发器、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施方式不限于通信体系结构1000的实现。
如图10所示,通信体系结构1000包括一个或多个客户端1002和服务器1004。客户端1002可以实现一个或多个用户客户端520和/或一个或多个机器人应用程序190。服务器1004可以实现一个或多个机器人服务器525、一个或多个自然语言机器学习组件550和/或一个或多个消息收发服务器815。客户端1002和服务器1004可操作地连接到一个或多个相应的客户端数据存储1008和服务器数据存储1010,其可用于存储各个客户端1002和服务器1004本地的信息,例如小程序和/或相关的上下文信息。
客户端1002和服务器1004可以使用通信框架1006在彼此之间传送信息。通信框架1006可以实现任何公知的通信技术和协议。通信框架1006可以实现为分组交换网络(例如,诸如互联网的公共网络、诸如企业内联网的专用网络等)、电路交换网络(例如,公共交换电话网络)或分组交换网络和电路交换网络(具有合适的网关和转换器)的组合。
通信框架1006可以实现被安排为接受、传送和连接到通信网络的各种网络接口。网络接口可以被视为输入输出接口的专用形式。网络接口可以采用连接协议,包括但不限于直接连接、以太网(例如,厚、薄、双绞线10/100/1000Base T等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等。此外,可以使用多个网络接口来与各种通信网络类型进行交互。例如,可以采用多个网络接口以允许通过广播、多播和单播网络进行通信。如果处理要求指示了更大的速度和容量,则可以类似地采用分布式网络控制器体系结构来集中、负载平衡,或以其他方式增加客户端1002和服务器1004所需的通信带宽。通信网络可以是有线和/或无线网络中的任何一个和组合,包括但不限于直接互连、安全定制连接、专用网络(例如,企业内联网)、公共网络(例如,互联网)、个人区域网络(PAN)、本地区域网(LAN)、城域网(MAN)、作为互联网上的节点的操作任务(OMNI)、广域网(WAN)、无线网络、蜂窝网络和其他通信网络。
图11示出了用于多载波OFDM***(例如用户请求通信***100)的设备1100的实施方式。设备1100可以实现例如参考用户请求通信***100和/或逻辑电路1135描述的软件组件1160。逻辑电路1135可以包括物理电路,以执行为用户请求通信***100描述的操作。如图11所示,设备1100可以包括无线电接口1110、基带电路1120和计算平台1130,但是实施方式不限于该配置。
设备1100可以在单个计算实体中(例如完全在单个设备内)实现用户请求通信***100和/或逻辑电路1135的一些或全部结构和/或操作。可替代地,设备1100可以使用分布式***体系结构(例如客户端服务器体系结构、3层体系结构、N层体系结构、紧密耦接或集群体系结构、对等体系结构、主从体系结构、共享数据库体系结构和其他类型的分布式***),将用于用户请求通信***100和/或逻辑电路1135的结构和/或操作的部分分布在多个计算实体之间。实施方式不限于此上下文。
在一个实施方式中,尽管该实施方式不限于任何特定的空中接口或调制方案,无线电接口1110可以包括适于发送和/或接收单载波或多载波调制信号的组件或组件的组合(例如,包括互补码键控(CCK)和/或正交频分复用(OFDM)符号)。无线电接口1110可以包括例如接收器1112、发射器1116和/或频率合成器1114。无线电接口1110可以包括偏置控制、晶体振荡器和/或一个或多个天线1118。在另一个实施方式中,根据需要,无线电接口1110可以使用外部压控振荡器(VCO)、表面声波滤波器、中频(IF)滤波器和/或RF滤波器。由于各种潜在的RF接口设计,因此省略其扩展描述。
基带电路1120可以与无线电接口1110通信以处理接收和/或发送信号,并且可以包括例如用于下行转换接收信号的模数转换器1122、用于上行转换发送信号的数字模拟转换器1124。此外,基带电路1120可以包括基带或物理层(PHY)处理电路1156,用于各个接收/发送信号的PHY链路层处理。基带电路1120可以包括例如用于介质访问控制(MAC)/数据链路层处理的处理电路1128。基带电路1120可以包括存储器控制器1132,用于例如经由一个或多个接口1134与处理电路1128和/或计算平台1130通信。
在一些实施方式中,PHY处理电路1126可以包括帧构造和/或检测模块,结合诸如缓冲存储器的附加电路,以构造和/或解构通信帧,例如无线电帧。替代地或另外地,MAC处理电路1128可以共享用于这些功能中的某些功能的处理或者独立于PHY处理电路1126执行这些处理。在一些实施方式中,MAC和PHY处理可以集成到单个电路中。
计算平台1130可以为设备1100提供计算功能。如图所示,计算平台1130可以包括处理组件1140。除了基带电路1120之外或作为其替代,设备1100可以使用处理组件1140对用户请求通信***100和逻辑电路1135执行处理操作或者逻辑。处理组件1140(和/或PHY1126和/或MAC 1128)可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、***程序、软件开发程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、单词、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件实现实施方式可以根据任何数量的因素而变化,例如期望的计算速率、功率水平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及对于给定实现所期望的其他设计或性能约束。
计算平台1130还可以包括其他平台组件1150。其他平台组件1150包括公共计算元件,例如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、***设备、接口、振荡器、定时装置、显卡、音频卡、多媒体输入/输出(I/O)组件(例如,数字显示器)、电源等。存储器单元的示例可以包括但不限于以一个或多个高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(如铁电聚合物存储器、奥弗辛斯基(ovonic)存储器、相变或铁电存储器、氧化硅-氮化物-氧化物-硅(SONOS)存储器)、磁卡或光卡、一系列设备(如独立磁盘冗余阵列(RAID)驱动器、固态存储器设备(例如,USB存储器、固态驱动器(SSD))以及适于存储信息的任何其他类型的存储介质。
设备1100可以是例如超移动设备、移动设备、固定设备、机器对机器(M2M)设备、个人数字助理(PDA)、移动计算设备、智能手机、电话、数字电话、移动电话、用户设备、电子书阅读器、手机、单向寻呼机、双向寻呼机、消息设备、计算机、个人计算机(PC)、台式计算机、膝上型轻便电脑、笔记本电脑、上网本电脑、掌上电脑、平板电脑、服务器、服务器阵列或服务器场、网络(web)服务器、网络(network)服务器、互联网服务器、工作站、小型计算机、主机计算机、超级计算机、网络(network)设备、网络(web)设备、分布式计算***、多处理器***、基于处理器的***、消费电子产品、可编程消费电子产品、游戏设备、电视、数字电视、机顶盒、无线接入点、基站、节点B、演进节点B(eNB)、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。因此,在这里描述的设备1100的功能和/或特定配置可以根据需要在设备1100的各种实施方式中包括或省略。在一些实施方式中,设备1100可以被配置为与本文引用的用于WMAN的3GPP LTE规范和/或IEEE 1102.16标准、和/或其他宽带无线网络中的一个或多个相关联的协议和频率兼容,尽管实施方式在这方面不受限。
可以使用单输入单输出(SISO)体系结构来实现设备1100的实施方式。然而,某些实现可以包括用于使用用于波束成形或空分多址(SDMA)的自适应天线技术和/或使用MIMO通信技术进行发送和/或接收的多天线(例如,天线1118)。
可以使用离散电路、专用集成电路(ASIC)、逻辑门和/或单芯片体系结构的任何组合来实现设备1100的组件和特征。此外,设备1100的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或前述的适当合适的任何组合来实现。注意,硬件、固件和/或软件元件可以在本文中统称或单独称为“逻辑”或“电路”。
应当理解,图11的框图中所示的示例性设备1100可以表示许多潜在实现的一个功能描述性示例。因此,附图中描述的块功能的划分、省略或包含并不意味着用于实现这些功能的硬件组件、电路、软件和/或元件将必须被划分、省略或包括在实施方式中。
计算机实现的方法可以包括接收示例交互存储库,该示例交互存储库包括多个示例用户到机器人交互;将示例交互存储库提交给自然语言机器学习组件;响应于提交示例交互存储库,从自然语言机器学习组件接收序列模型;以及基于序列模型执行用户到机器人会话。
计算机实现的方法还可以包括,其中,根据消息收发会话描述用户到机器人会话,还包括:检测消息收发会话中断。
计算机实现的方法还可以包括,其中,基于序列模型执行用户到机器人会话包括将序列模型应用于用户请求上下文、用户到机器人会话历史以及针对一个或多个用户消息的语义分析信息。
计算机实现的方法还可以包括:执行用户到机器人会话,包括:从客户端设备接收用户消息;并基于用户消息和序列模型生成机器人响应。
计算机实现的方法还可以包括:包含机器人响应消息的机器人响应,还包括:将机器人响应消息发送到客户端设备。
计算机实现的方法还可以包括:包含机器人动作的机器人响应,还包括:执行机器人动作。
计算机实现的方法还可以包括:包含机器人动作的机器人响应,还包括:将机器人动作发送到机器人应用程序,发送到机器人应用程序的机器人动作与用户请求上下文相关联;以及从机器人应用程序接收更新的用户请求上下文。
计算机实现的方法还可以包括:基于用户消息和序列模型生成机器人响应包括:生成针对用户消息的语义分析信息;并且基于将序列模型应用于语义分析信息来生成机器人响应。
计算机实现的方法还可以包括基于利用与当前的用户请求上下文相关联的序列模型处理用户消息来生成更新的用户请求上下文。
计算机实现的方法还可以包括,基于利用与当前的用户请求上下文相关联的序列模型处理用户消息来生成用户请求上下文更新;将用户请求上下文更新发送到机器人应用程序;并从机器人应用程序接收更新的用户请求上下文。
计算机实现的方法还可以包括生成机器人响应,包括:接收多个建议机器人响应,多个建议机器人响应中的每一个与响应排名分数相关联;排除多个建议机器人响应中的一个或多个无效机器人响应,以生成多个后处理的建议机器人响应;并选择具有最高响应排名分数的机器人响应作为后处理建议机器人响应中的建议机器人响应。
计算机实现的方法还可以包括基于建议机器人动作缺少完整上下文而排除的一个或多个无效机器人响应。
计算机实现的方法还可以包括基于多个建议机器人响应中的每一个的相干性得分而确定的多个建议机器人响应中的每一个的响应排名分数。
计算机实现的方法还可以包括基于相干性模型确定的多个建议机器人响应中的每一个的相干性得分,还包括:基于相干的聊天会话存储库生成相干性模型。
计算机实现的方法还可以包括,其中,执行用户到机器人会话包括基于序列模型迭代更新用户请求上下文。
计算机实现的方法还可以包括根据开发人员定义的结构化数据对象存储的用户请求上下文。
计算机实现的方法还可以包括,其中,执行用户到机器人会话包括经由消息收发***交换一系列用户消息和机器人消息以生成用户请求上下文。
计算机实现的方法还可以包括,其中,执行用户到机器人会话包括经由消息收发***交换一系列用户消息和机器人消息以生成推断的用户请求动作。
计算机实现的方法还可以包括基于用户请求上下文执行推断的用户请求动作。
计算机实现的方法还可以包括基于应用程序接口调用定义的推断的用户请求动作,其中,基于用户请求上下文定义应用程序接口调用的一个或多个参数。
计算机实现的方法还可以包括,其中,示例用户到机器人交互中的一个或多个包括开发人员所编写用户到机器人假设交互,还包括:经由开发人员控制台接收一个或多个开发人员所编写用户到机器人交互。
计算机实现的方法还可以包括,其中,示例用户到机器人交互中的一个或多个包括基于使用的用户到机器人交互。
计算机实现的方法还可以包括接收从执行生产的用户到机器人会话生成的一个或多个生产式用户到机器人交互;经由开发人员控制台显示一个或多个生产式用户到机器人交互;经由开发人员控制台接收一个或多个生产式用户到机器人交互的开发人员验证,以生成基于使用的用户到机器人交互;并且响应于接收到一个或多个基于使用的用户到机器人交互的开发人员验证,在示例交互存储库中包括一个或多个基于使用的用户到机器人交互。
计算机实现的方法还可以包括经由开发人员控制台接收针对一个或多个生产式用户到机器人交互的一个或多个开发人员修改,以生成基于使用的用户到机器人交互。
计算机实现的方法还可以包括经由开发人员控制台接收一个或多个生产式用户到机器人交互的一个或多个开发人员注释,以生成基于使用的用户到机器人交互;并且在示例交互存储库中包括一个或多个基于使用的用户到机器人交互的一个或多个开发人员注释。
计算机实现的方法还可以包括,一个或多个开发人员注释包括上下文更新注释。
计算机实现的方法还可以包括,基于序列模型执行用户到机器人会话包括:将提取的非监督信息合并到一个或多个建议机器人响应中。
一种装置可包括处理器电路;交互处理组件,在处理器电路上操作以将示例交互存储库提交给自然语言机器学习组件,该示例交互存储库包括多个示例用户到机器人交互,并响应于提交示例交互存储库而从自然语言机器学习组件接收序列模型;客户端通信组件,操作以执行与用户客户端的用户消息交换,以基于序列模型执行用户到机器人会话;以及机器人应用程序接口组件,操作以从机器人应用程序接收示例交互存储库,并与机器人应用程序执行机器人信息交换,以基于序列模型执行用户到机器人会话,其中,基于序列模型执行用户到机器人会话包括将序列模型应用于用户请求上下文、用户到机器人会话历史、针对一个或多个用户消息的语义分析信息、以及针对一个或多个用户消息的所提取的非监督信息。该装置可用于实现本文所述的任何计算机实现的方法。
至少一个计算机可读存储介质可以包括指令,该指令在被执行时使***执行本文描述的任何计算机实现的方法。
可以使用表达“一个实施方式”或“实施方式”及其派生词来描述一些实施方式。这些术语意味着结合该实施方式描述的特定特征、结构或特性包括在至少一个实施方式中。在说明书中各处出现的短语“在一个实施方式中”不一定都指的是同一实施方式。此外,可以使用表达“耦接”和“连接”以及它们的派生词来描述一些实施方式。这些术语不一定是彼此的同义词。例如,可以使用术语“连接”和/或“耦接”来描述一些实施方式,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦接”还可以表示两个或更多个元件彼此不直接接触,但仍然彼此协作或交互。
通过对本文使用的符号和术语的一般引用,本文的详细描述可以根据在计算机或计算机网络上执行的程序步骤来呈现。本领域技术人员使用这些步骤描述和表示来最有效地将他们工作的实质传达给本领域其他技术人员。
这里的步骤通常被认为是导致期望结果的自我一致的操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采用能够被存储、传输、组合、比较和以其他方式操纵的电信号、磁信号或光信号的形式。有时,主要出于通用的原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。然而,应该注意,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。
此外,所执行的操作通常以诸如添加或比较的术语来指代,这些术语通常与人类操作员执行的心理操作相关联。在本文描述的形成一个或多个实施方式的一部分的任何操作中,在大多数情况下,人类操作员的这种能力不是必需的,或者是期望的。相反,操作是机器操作。用于执行各种实施方式的操作的有用机器包括通用数字计算机或类似设备。
各种实施方式还涉及用于执行这些操作的装置或***。该装置可以为所需目的而专门构造,或者它可以包括通用计算机,该通用计算机由存储在计算机中的计算机程序选择性地激活或重新配置。这里给出的步骤与特定计算机或其他装置没有内在的联系。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置以执行所需的方法步骤是方便的。从给出的描述中可以看出各种这些机器所需的结构。
需要强调的是,提供了本公开的摘要以允许读者快速确定技术公开的本质。提交时的理解是,它不会用于解释或限制权利要求的范围或含义。另外,在前面的具体实施方式中,可以看出,为了简化本公开,将各种特征一起组合在单个实施方式中。该公开的方法不应被解释为反映所要求保护的实施方式需要比每个权利要求中明确记载的更多特征的意图。而是,如以下权利要求所反映的,发明主题不在于单个公开的实施方式的所有特征。因此,以下权利要求在此并入具体实施方式中,每个权利要求作为单独的实施方式而独立存在。在所附权利要求中,术语“包括”和“其中”分别用作相应术语“包括”和“其中”的普通英语对应词。此外,术语“第一”、“第二”、“第三”等仅仅用作标签,并不旨在对其对象施加数字要求。
以上描述的内容包括所公开的体系结构的示例。当然,不可能描述组件和/或方法的每个可想到的组合,但是本领域普通技术人员可以认识到许多其他组合和排列是可能的。因此,该新颖的体系结构旨在涵盖属于所附权利要求的精神和范围内的所有这些改动、修改和变化。

Claims (20)

1.一种计算机实现的方法,包括:
接收示例交互存储库,所述示例交互存储库包括多个示例用户到机器人交互;
将所述示例交互存储库提交给自然语言机器学习组件;
响应于提交所述示例交互存储库,从所述自然语言机器学习组件接收序列模型;以及
基于所述序列模型执行用户到机器人会话。
2.根据权利要求1所述的方法,其中,基于所述序列模型执行所述用户到机器人会话包括将所述序列模型应用于用户请求上下文、用户到机器人会话历史以及针对一个或多个用户消息的语义分析信息。
3.根据权利要求1所述的方法,执行所述用户到机器人会话包括从客户端设备接收用户消息并基于所述用户消息和所述序列模型生成机器人响应,所述机器人响应包括机器人动作,所述方法进一步包括:
将所述机器人动作发送到机器人应用程序,传送到所述机器人应用程序的所述机器人动作与用户请求上下文相关联;以及
从所述机器人应用程序接收更新的用户请求上下文。
4.根据权利要求1所述的方法,执行所述用户到机器人会话包括从客户端设备接收用户消息并基于所述用户消息和所述序列模型生成机器人响应,所述方法进一步包括:
基于利用与当前的用户请求上下文相关联的所述序列模型处理所述用户消息来生成更新的用户请求上下文。
5.根据权利要求1所述的方法,其中,执行所述用户到机器人会话包括经由消息收发***交换一系列用户消息和机器人消息以生成用户请求上下文和推断的用户请求动作,所述推断的用户请求动作基于应用程序接口调用定义,其中,所述应用程序接口调用的一个或多个参数基于所述用户请求上下文定义。
6.根据权利要求1所述的方法,其中,所述示例用户到机器人交互中的一个或多个包括开发人员所编写用户到机器人假设交互,所述方法进一步包括:
经由开发人员控制台接收一个或多个所述开发人员所编写用户到机器人交互。
7.根据权利要求1所述的方法,其中,所述示例用户到机器人交互中的一个或多个包括基于使用的用户到机器人交互,所述方法进一步包括:
接收从执行生产的用户到机器人会话所生成的一个或多个生产式用户到机器人交互;
经由开发人员控制台显示所述一个或多个生产式用户到机器人交互;
经由所述开发人员控制台接收对于所述一个或多个生产式用户到机器人交互的一个或多个开发人员修改,以生成所述基于使用的用户到机器人交互;
经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的开发人员验证,以生成所述基于使用的用户到机器人交互;
经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的一个或多个开发人员注释,以生成所述基于使用的用户到机器人交互,所述一个或多个开发人员注释包括上下文更新注释;
响应于接收到所述一个或多个基于使用的用户到机器人交互的所述开发人员验证,在所述示例交互存储库中包括所述一个或多个基于使用的用户到机器人交互;以及
在所述示例交互存储库中包括所述一个或多个基于使用的用户到机器人交互的所述一个或多个开发人员注释。
8.根据权利要求1所述的方法,基于所述序列模型执行所述用户到机器人会话包括:
将提取的非监督信息合并到一个或多个建议机器人响应中。
9.一种装置,包括:
处理器电路;
在所述处理器电路上操作的交互处理组件,用于将示例交互存储库提交给自然语言机器学习组件并且响应于提交所述示例交互存储库而从所述自然语言机器学习组件接收序列模型,所述示例交互存储库包括多个示例用户到机器人交互;
客户端通信组件,操作以执行与用户客户端的用户消息交换,以基于所述序列模型执行用户到机器人会话;以及
机器人应用程序接口组件,操作以从机器人应用程序接收所述示例交互存储库,并与所述机器人应用程序执行机器人信息交换以基于所述序列模型执行所述用户到机器人会话,其中,基于所述序列模型执行所述用户到机器人会话包括将所述序列模型应用于用户请求上下文、用户到机器人会话历史、针对一个或多个用户消息的语义分析信息以及针对所述一个或多个用户消息的所提取的非监督信息。
10.根据权利要求9所述的装置,与所述用户客户端的用户消息交换包括从客户端设备接收用户消息,所述用户到机器人会话包括基于所述用户消息和所述序列模型的机器人响应,所述机器人响应包括机器人动作,所述装置进一步包括:
所述机器人应用程序接口组件操作以将所述机器人动作传送到所述机器人应用程序,传送到所述机器人应用程序的所述机器人动作与用户请求上下文相关联;并从所述机器人应用程序接收更新的用户请求上下文。
11.根据权利要求9所述的装置,执行所述用户到机器人会话包括从客户端设备接收用户消息并基于所述用户消息和所述序列模型生成机器人响应,所述装置进一步包括:
所述交互处理组件操作以基于利用与当前的用户请求上下文相关联的所述序列模型处理所述用户消息来生成更新的用户请求上下文。
12.根据权利要求9所述的装置,其中,执行所述用户到机器人会话包括经由消息收发***交换一系列用户消息和机器人消息,以生成所述用户请求上下文和推断的用户请求动作,所述推断的用户请求动作基于应用程序接口调用定义,其中,所述应用程序接口调用的一个或多个参数基于所述用户请求上下文定义。
13.根据权利要求9所述的装置,其中,所述示例用户到机器人交互中的一个或多个包括开发人员所编写用户到机器人假设交互,所述装置进一步包括:
开发人员控制台,操作以接收一个或多个所述开发人员所编写用户到机器人交互。
14.根据权利要求9所述的装置,其中,所述示例用户到机器人交互中的一个或多个包括基于使用的用户到机器人交互,所述装置进一步包括:
开发人员控制台,操作以接收从执行生产的用户到机器人会话所生成的一个或多个生产式用户到机器人交互;经由开发人员控制台显示所述一个或多个生产式用户到机器人交互;经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的一个或多个开发人员修改,以生成所述基于使用的用户到机器人交互;经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的开发人员验证,以生成所述基于使用的用户到机器人交互;并且经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的一个或多个开发人员注释,以生成所述基于使用的用户到机器人交互,所述一个或多个开发人员注释包括上下文更新注释;以及
所述交互处理组件响应于接收到所述一个或多个基于使用的用户到机器人交互的所述开发人员验证,而在所述示例交互存储库中包括所述一个或多个基于使用的用户到机器人交互;并且在所述示例交互存储库中包括所述一个或多个基于使用的用户到机器人交互的所述一个或多个开发人员注释。
15.至少一种包括指令的计算机可读存储介质,所述指令在被执行时使***:
接收示例交互存储库,所述示例交互存储库包括多个示例用户到机器人交互;
将所述示例交互存储库提交给自然语言机器学习组件;
响应于提交所述示例交互存储库,从所述自然语言机器学习组件接收序列模型;以及
基于所述序列模型执行用户到机器人会话,其中,基于所述序列模型执行所述用户到机器人会话包括将所述序列模型应用于用户请求上下文、用户到机器人会话历史、针对一个或多个用户消息的语义分析信息、以及针对所述一个或多个用户消息的所提取的非监督信息。
16.根据权利要求15所述的计算机可读存储介质,执行所述用户到机器人会话包括从客户端设备接收用户消息并基于所述用户消息和所述序列模型生成机器人响应,所述机器人响应包括机器人动作,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使***:
将所述机器人动作传送到机器人应用程序,传送到所述机器人应用程序的所述机器人动作与用户请求上下文相关联;以及
从所述机器人应用程序接收更新的用户请求上下文。
17.根据权利要求15所述的计算机可读存储介质,执行所述用户到机器人会话包括从客户端设备接收用户消息并基于所述用户消息和所述序列模型生成机器人响应,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使***:
基于利用与当前的用户请求上下文相关联的所述序列模型处理所述用户消息来生成更新的用户请求上下文。
18.根据权利要求15所述的计算机可读存储介质,其中,执行所述用户到机器人会话包括经由消息收发***交换一系列用户消息和机器人消息以生成所述用户请求上下文和推断的用户请求动作,所述推断的用户请求动作基于应用程序接口调用定义,其中,所述应用程序接口调用的一个或多个参数基于所述用户请求上下文定义。
19.根据权利要求15所述的计算机可读存储介质,其中,所述示例用户到机器人交互中的一个或多个包括开发人员所编写用户到机器人假设交互,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使***:
经由开发人员控制台接收一个或多个所述开发人员所编写用户到机器人交互。
20.根据权利要求15所述的计算机可读存储介质,其中,所述示例用户到机器人交互中的一个或多个包括基于使用的用户到机器人交互,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使***:
接收从执行生产的用户到机器人会话生成的一个或多个生产式用户到机器人交互;
经由开发人员控制台显示所述一个或多个生产式用户到机器人交互;
经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的一个或多个开发人员修改,以生成所述基于使用的用户到机器人交互;
经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的开发人员验证,以生成所述基于使用的用户到机器人交互;
经由所述开发人员控制台接收所述一个或多个生产式用户到机器人交互的一个或多个开发人员注释,以生成所述基于使用的用户到机器人交互,所述一个或多个开发人员注释包括上下文更新注释;
响应于接收到所述一个或多个基于使用的用户到机器人交互的所述开发人员验证,在所述示例交互存储库中包括所述一个或多个基于使用的用户到机器人交互;以及
在所述示例交互存储库中包括所述一个或多个基于使用的用户到机器人交互的所述一个或多个开发人员注释。
CN201780028343.0A 2016-04-11 2017-03-16 基于示例会话使用自然语言机器学习来响应用户请求的技术 Active CN109074402B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662320869P 2016-04-11 2016-04-11
US62/320,869 2016-04-11
US15/380,112 2016-12-15
US15/380,112 US10831802B2 (en) 2016-04-11 2016-12-15 Techniques to respond to user requests using natural-language machine learning based on example conversations
PCT/US2017/022700 WO2017180286A1 (en) 2016-04-11 2017-03-16 Techniques to respond to user requests using natural-language machine learning based on example conversations

Publications (2)

Publication Number Publication Date
CN109074402A true CN109074402A (zh) 2018-12-21
CN109074402B CN109074402B (zh) 2022-07-26

Family

ID=59998104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780028343.0A Active CN109074402B (zh) 2016-04-11 2017-03-16 基于示例会话使用自然语言机器学习来响应用户请求的技术

Country Status (5)

Country Link
US (2) US10831802B2 (zh)
JP (1) JP2019518292A (zh)
KR (1) KR102363006B1 (zh)
CN (1) CN109074402B (zh)
WO (1) WO2017180286A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339266A (zh) * 2020-02-13 2020-06-26 深圳市人马互动科技有限公司 聊天机器人的开发***和聊天机器人模块
CN111651348A (zh) * 2020-05-06 2020-09-11 深圳市人马互动科技有限公司 一种聊天机器人的调试***
CN112348632A (zh) * 2020-06-30 2021-02-09 北京来也网络科技有限公司 基于ai的在线交易rpa机器人的方法、装置和设备
CN112800195A (zh) * 2021-01-18 2021-05-14 南京奥拓电子科技有限公司 一种对话机器人的配置方法及***
CN113334371A (zh) * 2020-02-18 2021-09-03 尤帕斯公司 用于机器人流程自动化的自动化窗口
CN113647067A (zh) * 2019-04-12 2021-11-12 艾赛普公司 跨通信信道维护机器语言模型状态
US11392477B2 (en) 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
CN115982336A (zh) * 2023-02-15 2023-04-18 创意信息技术股份有限公司 动态对话状态图学习方法、装置、***及存储介质
US11818223B2 (en) 2020-02-18 2023-11-14 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068174B2 (en) 2012-08-02 2018-09-04 Artifical Solutions Iberia S.L. Hybrid approach for developing, optimizing, and executing conversational interaction applications
EP3395018A1 (en) 2015-12-21 2018-10-31 Google LLC Automatic suggestions for message exchange threads
EP3395019B1 (en) 2015-12-21 2022-03-30 Google LLC Automatic suggestions and other content for messaging applications
US10567312B2 (en) 2016-04-11 2020-02-18 Facebook, Inc. Techniques for messaging bot controls based on machine-learning user intent detection
US20200036658A1 (en) * 2016-04-18 2020-01-30 Inzane Labs Private Limited System and method for assisting user communications using bots
US10162817B2 (en) * 2016-06-14 2018-12-25 Microsoft Technology Licensing, Llc Computer messaging bot creation
US10360906B2 (en) 2016-06-14 2019-07-23 Microsoft Technology Licensing, Llc Computer proxy messaging bot
US10387461B2 (en) 2016-08-16 2019-08-20 Google Llc Techniques for suggesting electronic messages based on user activity and other context
US10511450B2 (en) * 2016-09-20 2019-12-17 Google Llc Bot permissions
US10015124B2 (en) * 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
WO2018057541A1 (en) 2016-09-20 2018-03-29 Google Llc Suggested responses based on message stickers
US11233760B2 (en) 2016-09-21 2022-01-25 Facebook, Inc. Module ranking for a modular inbox
US10356029B2 (en) 2016-09-21 2019-07-16 Facebook, Inc. Methods and systems for presenting modules in an inbox interface
US11176931B2 (en) * 2016-09-23 2021-11-16 Microsoft Technology Licensing, Llc Conversational bookmarks
CA182557S (en) 2016-10-07 2018-09-04 Siemens Ag Transformer
US10361975B2 (en) * 2016-10-10 2019-07-23 Microsoft Technology Licensing, Llc Messaging bot selection in multi-bot chat sessions
US10437841B2 (en) * 2016-10-10 2019-10-08 Microsoft Technology Licensing, Llc Digital assistant extension automatic ranking and selection
USD817993S1 (en) 2016-10-27 2018-05-15 Apple Inc. Display screen or portion thereof with graphical user interface
US10416846B2 (en) 2016-11-12 2019-09-17 Google Llc Determining graphical element(s) for inclusion in an electronic communication
CN108075959B (zh) * 2016-11-14 2021-03-12 腾讯科技(深圳)有限公司 一种会话消息处理方法和装置
US11138388B2 (en) * 2016-12-22 2021-10-05 Verizon Media Inc. Method and system for facilitating a user-machine conversation
US20180188905A1 (en) * 2017-01-04 2018-07-05 Google Inc. Generating messaging streams with animated objects
US10146768B2 (en) 2017-01-25 2018-12-04 Google Llc Automatic suggested responses to images received in messages using language model
US20180331979A1 (en) * 2017-05-09 2018-11-15 ROKO Labs, LLC System and method for creating conversations to launch within applications
US10455378B2 (en) 2017-05-09 2019-10-22 ROKO Labs, LLC System and method for generating analytics for conversations within applications
WO2018212822A1 (en) 2017-05-16 2018-11-22 Google Inc. Suggested actions for images
US10289456B2 (en) 2017-06-01 2019-05-14 International Business Machines Corporation Software bot conflict-resolution service agent
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US11699039B2 (en) * 2017-06-28 2023-07-11 Microsoft Technology Licensing, Llc Virtual assistant providing enhanced communication session services
US10585991B2 (en) 2017-06-29 2020-03-10 Microsoft Technology Licensing, Llc Virtual assistant for generating personalized responses within a communication session
US10977319B2 (en) * 2017-07-10 2021-04-13 Ebay Inc. Expandable service architecture with configurable dialogue manager
US10599402B2 (en) * 2017-07-13 2020-03-24 Facebook, Inc. Techniques to configure a web-based application for bot configuration
US11777875B2 (en) * 2017-09-15 2023-10-03 Microsoft Technology Licensing, Llc Capturing and leveraging signals reflecting BOT-to-BOT delegation
US10951558B2 (en) 2017-09-27 2021-03-16 Slack Technologies, Inc. Validating application dialog associated with a triggering event identification within user interaction data received via a group-based communication interface
US10884598B2 (en) * 2017-09-29 2021-01-05 Oracle International Corporation Analytics for a bot system
US10594817B2 (en) * 2017-10-04 2020-03-17 International Business Machines Corporation Cognitive device-to-device interaction and human-device interaction based on social networks
US10691764B2 (en) * 2017-10-23 2020-06-23 International Business Machines Corporation Search engine optimization techniques
US10742572B2 (en) * 2017-11-09 2020-08-11 International Business Machines Corporation Chatbot orchestration
US10771406B2 (en) 2017-11-11 2020-09-08 Microsoft Technology Licensing, Llc Providing and leveraging implicit signals reflecting user-to-BOT interaction
KR20190057687A (ko) * 2017-11-20 2019-05-29 삼성전자주식회사 챗봇 변경을 위한 위한 전자 장치 및 이의 제어 방법
US11144811B2 (en) 2017-11-20 2021-10-12 Ebay Inc. Aspect pre-selection using machine learning
US11836592B2 (en) * 2017-12-15 2023-12-05 International Business Machines Corporation Communication model for cognitive systems
KR102047010B1 (ko) * 2017-12-21 2019-11-20 주식회사 카카오 중계 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
US11886823B2 (en) 2018-02-01 2024-01-30 International Business Machines Corporation Dynamically constructing and configuring a conversational agent learning model
JP7081245B2 (ja) * 2018-03-20 2022-06-07 富士フイルムビジネスイノベーション株式会社 メッセージ提供装置、プログラム、及び表示制御方法
JP7102888B2 (ja) * 2018-04-13 2022-07-20 富士フイルムビジネスイノベーション株式会社 メッセージ提供装置及びプログラム
US11676220B2 (en) * 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US10782986B2 (en) 2018-04-20 2020-09-22 Facebook, Inc. Assisting users with personalized and contextual communication content
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US20190340527A1 (en) * 2018-05-07 2019-11-07 Microsoft Technology Licensing, Llc Graphical user interface features for updating a conversational bot
US10949616B1 (en) 2018-08-21 2021-03-16 Facebook, Inc. Automatically detecting and storing entity information for assistant systems
USD950587S1 (en) 2018-08-31 2022-05-03 Zoox, Inc. Display screen or portion thereof having a graphical user interface
US11521114B2 (en) 2019-04-18 2022-12-06 Microsoft Technology Licensing, Llc Visualization of training dialogs for a conversational bot
CA3142939A1 (en) * 2019-06-12 2020-12-17 Liveperson, Inc. Systems and methods for external system integration
US11057320B2 (en) * 2019-06-27 2021-07-06 Walmart Apollo, Llc Operation for multiple chat bots operation in organization
US11989237B2 (en) 2019-08-26 2024-05-21 International Business Machines Corporation Natural language interaction with automated machine learning systems
US10951554B1 (en) * 2019-09-12 2021-03-16 Genesys Telecommunications Laboratories, Inc. Systems and methods facilitating bot communications
US12026630B2 (en) 2019-09-23 2024-07-02 Adaptai Ltd. Artificial intelligence methods and systems for improving user adaptability using textual communication
JP7453513B2 (ja) * 2020-01-23 2024-03-21 株式会社Mixi 情報処理装置及びプログラム
JP7419849B2 (ja) 2020-02-06 2024-01-23 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム
KR102560298B1 (ko) * 2020-03-25 2023-07-26 한전케이디엔 주식회사 챗봇 서비스를 위한 자연어 처리 관리 시스템 및 그 방법
US11961509B2 (en) 2020-04-03 2024-04-16 Microsoft Technology Licensing, Llc Training a user-system dialog in a task-oriented dialog system
US11209964B1 (en) * 2020-06-05 2021-12-28 SlackTechnologies, LLC System and method for reacting to messages
US11763804B2 (en) 2020-06-29 2023-09-19 Microsoft Technology Licensing, Llc Leveraging dialogue history in updated dialogue
US11562410B2 (en) 2020-12-17 2023-01-24 Kyndryl, Inc. Pre-packaging and pre-configuration of software products using chatbots
CA3200467A1 (en) 2020-12-22 2022-06-30 Michael Higgins Conversational bot evaluation and reinforcement using meaningful automated connection scores
CN112632251B (zh) * 2020-12-24 2023-12-29 北京百度网讯科技有限公司 回复内容的生成方法、装置、设备和存储介质
US11811585B2 (en) 2021-03-23 2023-11-07 International Business Machines Corporation Measuring incident management process efficiency metrics utilizing real-time conversation analysis
US20220343901A1 (en) * 2021-04-23 2022-10-27 Kore.Ai, Inc. Systems and methods of implementing platforms for bot interfaces within an intelligent development platform
US11855934B2 (en) 2021-12-09 2023-12-26 Genpact Luxembourg S.à r.l. II Chatbot with self-correction on response generation
WO2023220256A1 (en) * 2022-05-11 2023-11-16 ClearVector, Inc. Computer-implemented methods, systems comprising computer-readable media, and electronic devices for enabled intervention into a network computing environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100042404A1 (en) * 2004-01-09 2010-02-18 At&T Corp. Method for building a natural language understanding model for a spoken dialog system
US20120041903A1 (en) * 2009-01-08 2012-02-16 Liesl Jane Beilby Chatbots
US20120081371A1 (en) * 2009-05-01 2012-04-05 Inci Ozkaragoz Dialog design tool and method
CN102541855A (zh) * 2010-12-10 2012-07-04 ***股份有限公司 信息数据处理***及方法
CN103778407A (zh) * 2012-10-23 2014-05-07 南开大学 一种迁移学习框架下基于条件随机场的手势识别算法
CN104169909A (zh) * 2012-06-25 2014-11-26 株式会社东芝 上下文解析装置及上下文解析方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168480A1 (en) 2006-01-13 2007-07-19 Microsoft Corporation Interactive Robot Creation
US8738739B2 (en) * 2008-05-21 2014-05-27 The Delfin Project, Inc. Automatic message selection with a chatbot
US8850449B2 (en) * 2008-12-19 2014-09-30 At&T Intellectual Property I, L.P. Method and apparatus for providing resource allocation policy
US9602444B2 (en) * 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US9501802B2 (en) * 2010-05-04 2016-11-22 Qwest Communications International Inc. Conversation capture
KR101359718B1 (ko) 2012-05-17 2014-02-13 포항공과대학교 산학협력단 대화 관리 시스템 및 방법
US20140122618A1 (en) * 2012-10-26 2014-05-01 Xiaojiang Duan User-aided learning chatbot system and method
US10417567B1 (en) * 2013-02-14 2019-09-17 Verint Americas Inc. Learning user preferences in a conversational system
US9318113B2 (en) * 2013-07-01 2016-04-19 Timestream Llc Method and apparatus for conducting synthesized, semi-scripted, improvisational conversations
US9311430B2 (en) * 2013-12-16 2016-04-12 Mitsubishi Electric Research Laboratories, Inc. Log-linear dialog manager that determines expected rewards and uses hidden states and actions
US9380010B2 (en) * 2014-06-03 2016-06-28 International Business Machines Corporation Conversation branching for more efficient resolution
US9542298B2 (en) * 2014-07-08 2017-01-10 International Business Machines Corporation Reducing resource overhead in verbose trace using recursive object pruning prior to string serialization
US9786299B2 (en) * 2014-12-04 2017-10-10 Microsoft Technology Licensing, Llc Emotion type classification for interactive dialog system
US10274911B2 (en) * 2015-06-25 2019-04-30 Intel Corporation Conversational interface for matching text of spoken input based on context model
US9715498B2 (en) * 2015-08-31 2017-07-25 Microsoft Technology Licensing, Llc Distributed server system for language understanding
US10956666B2 (en) * 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US20170228500A1 (en) * 2016-02-09 2017-08-10 Justin Massengale Process of generating medical records
US20170250930A1 (en) * 2016-02-29 2017-08-31 Outbrain Inc. Interactive content recommendation personalization assistant

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100042404A1 (en) * 2004-01-09 2010-02-18 At&T Corp. Method for building a natural language understanding model for a spoken dialog system
US20120041903A1 (en) * 2009-01-08 2012-02-16 Liesl Jane Beilby Chatbots
US20120081371A1 (en) * 2009-05-01 2012-04-05 Inci Ozkaragoz Dialog design tool and method
CN102541855A (zh) * 2010-12-10 2012-07-04 ***股份有限公司 信息数据处理***及方法
CN104169909A (zh) * 2012-06-25 2014-11-26 株式会社东芝 上下文解析装置及上下文解析方法
CN103778407A (zh) * 2012-10-23 2014-05-07 南开大学 一种迁移学习框架下基于条件随机场的手势识别算法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11956187B2 (en) 2019-04-12 2024-04-09 Asapp, Inc. Natural language processing for information extraction
CN113647067A (zh) * 2019-04-12 2021-11-12 艾赛普公司 跨通信信道维护机器语言模型状态
CN111339266A (zh) * 2020-02-13 2020-06-26 深圳市人马互动科技有限公司 聊天机器人的开发***和聊天机器人模块
CN113334371A (zh) * 2020-02-18 2021-09-03 尤帕斯公司 用于机器人流程自动化的自动化窗口
US11931899B2 (en) 2020-02-18 2024-03-19 UiPath, Inc. Automation windows for robotic process automation
CN113334371B (zh) * 2020-02-18 2022-08-12 尤帕斯公司 用于机器人流程自动化的自动化窗口
US11818223B2 (en) 2020-02-18 2023-11-14 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots
CN111651348B (zh) * 2020-05-06 2023-09-29 深圳市人马互动科技有限公司 一种聊天机器人的调试***
CN111651348A (zh) * 2020-05-06 2020-09-11 深圳市人马互动科技有限公司 一种聊天机器人的调试***
CN112348632A (zh) * 2020-06-30 2021-02-09 北京来也网络科技有限公司 基于ai的在线交易rpa机器人的方法、装置和设备
US11740990B2 (en) 2020-07-09 2023-08-29 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
US11392477B2 (en) 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
CN112800195A (zh) * 2021-01-18 2021-05-14 南京奥拓电子科技有限公司 一种对话机器人的配置方法及***
CN112800195B (zh) * 2021-01-18 2024-04-16 南京奥拓电子科技有限公司 一种对话机器人的配置方法及***
CN115982336A (zh) * 2023-02-15 2023-04-18 创意信息技术股份有限公司 动态对话状态图学习方法、装置、***及存储介质

Also Published As

Publication number Publication date
US10831802B2 (en) 2020-11-10
WO2017180286A1 (en) 2017-10-19
KR20180125031A (ko) 2018-11-21
CN109074402B (zh) 2022-07-26
US20170293681A1 (en) 2017-10-12
KR102363006B1 (ko) 2022-02-16
JP2019518292A (ja) 2019-06-27
US10866978B2 (en) 2020-12-15
US20170293834A1 (en) 2017-10-12

Similar Documents

Publication Publication Date Title
CN109074402A (zh) 基于示例会话使用自然语言机器学习来响应用户请求的技术
Russell Mining the social web: data mining Facebook, Twitter, LinkedIn, Google+, GitHub, and more
US20190087707A1 (en) Artificial conversational entity methods and systems
Guo et al. Toward a cooperative programming framework for context-aware applications
CN105453520B (zh) 用于管理web服务的状态信息的技术的方法和装置
US20090307189A1 (en) Asynchronous workflow participation within an immersive collaboration environment
CN110383772A (zh) 用于消息收发机器人丰富通信的技术
CN110785970B (zh) 使网页的机器人创建自动化的技术
EP3298559A1 (en) Interactive command line for content creation
KR20060004909A (ko) 시맨틱 지식의 검색, 관리, 포착, 공유, 발견, 전달 및프리젠테이션 시스템 및 방법
KR20040020933A (ko) 지식 검색, 관리, 전달 및 프리젠테이션을 위한 시스템 및방법
US10599402B2 (en) Techniques to configure a web-based application for bot configuration
US20150039694A1 (en) Synchronized web-browsing
CN106780210A (zh) 儿童素质行为教育引导平台***及其构建方法
US9536445B2 (en) System and method for visually tracking a learned process
US20140123075A1 (en) System and method for generating and accessing trails
Livingstone Models for understanding collective intelligence on Wikipedia
Barrat et al. Agreement dynamics on interaction networks with diverse topologies
Almadani et al. Performance evaluation of DDS-based middleware over wireless channel for reconfigurable manufacturing systems
US20140122404A1 (en) System and method for displaying a trail
US9292883B2 (en) System and method for managing a trail
Valderrama et al. Personalized knowledge management in environments of web-based Education
Dasgupta Learning with Data: A toolkit to democratize the computational exploration of data
US11547942B1 (en) Voice separated server architecture systems for privacy of massively multiplayer online games
Zare Hands-On Artificial Intelligence and Cybersecurity Education in High Schools

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant