CN115423070A - 用于训练模型的基于有向无环图的框架 - Google Patents

用于训练模型的基于有向无环图的框架 Download PDF

Info

Publication number
CN115423070A
CN115423070A CN202211065466.0A CN202211065466A CN115423070A CN 115423070 A CN115423070 A CN 115423070A CN 202211065466 A CN202211065466 A CN 202211065466A CN 115423070 A CN115423070 A CN 115423070A
Authority
CN
China
Prior art keywords
model
user
tasks
robot
intent
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.)
Pending
Application number
CN202211065466.0A
Other languages
English (en)
Inventor
G·辛格拉朱
C·潘
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN115423070A publication Critical patent/CN115423070A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • 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/3347Query execution using vector based model
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Robotics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开涉及一种用于训练模型的基于有向无环图DAG的框架。本公开涉及用于聊天机器人的技术,并且更具体地,用于使用基于DAG的框架来构建并训练模型的技术。在一个特定方面,提供了一种计算机实施的方法,该方法包括通过基于DAG的框架生成第一模型和第二模型、在运行时间内执行用于聊天机器人的第一模型并且在设计时间内执行用于聊天机器人的第二模型、在聊天机器人运行第一模型和第二模型时收集用于与一组话语相关联的意图分类的属性、使用一个或多个度量基于对用于意图分类的属性的分析来评估第一模型和第二模型的性能、确定第二模型与第一模型相比性能是否有所提高、以及基于性能确定在运行时间内执行用于聊天机器人的第一模型或第二模型。

Description

用于训练模型的基于有向无环图的框架
本申请是基于申请日为2020年4月23日、申请号为2020103263273、发明名称为“用于训练模型的基于有向无环图的框架”的中国发明专利申请的分案申请。
技术领域
本公开总体上涉及训练聊天机器人,并且更具体地,涉及用于使用基于有向无环图(DAG)的框架来构建并训练聊天机器人的模型的技术。
背景技术
为了获得即时反应,世界各地的许多用户使用即时消息传递或聊天平台。组织经常使用这些即时消息传递或聊天平台与客户(或最终用户)进行实时会话。然而,雇用服务人员与客户或最终用户进行实时交流对于组织来说会是非常昂贵的。已经开始开发聊天机器人或机器人来模拟与最终用户的会话,尤其是通过因特网。最终用户可以通过最终用户已经安装并使用的消息传递应用程序与机器人交流。智能机器人(通常通过人工智能(AI)提供动力)可以在实时会话中更智能地且根据背景进行交流并且因此可以允许机器人与最终用户之间进行更加自然的会话以改善会话体验。不是最终用户去学习机器人知道如何作出回应的固定的一组关键词或命令,而是智能机器人可以能够基于自然语言的用户话语来理解最终用户的意图并且相应地作出回应。
发明内容
提供了用于使用基于DAG的框架来构建并训练用于聊天机器人的模型的技术(例如,一种方法、系统、非暂态计算机可读介质,所述非暂态计算机可读介质存储有可由一个或多个处理器执行的代码或指令)。
在各种实施例中,提供了一种计算机实施的方法,所述计算机实施的方法包括:通过集成计算系统的基于有向无环图的框架生成第一模型和第二模型,其中,所述第一模型是用于执行与聊天机器人相关联的一个或多个操作的第一组任务的流水线并且所述第二模型是用于执行与所述聊天机器人相关联的所述一个或多个操作的第二组任务的流水线;通过所述集成计算系统的所述基于有向无环图的框架在运行时间内执行用于所述聊天机器人的所述第一模型并且在设计时间内执行用于所述聊天机器人的所述第二模型;在所述聊天机器人运行所述第一模型和所述第二模型时通过所述集成计算系统的事件收集器收集用于与一组话语相关联的意图分类的一个或多个属性;通过所述集成计算系统的使用一个或多个度量的分析引擎基于对用于所述意图分类的所述一个或多个属性的分析来评估所述第一模型和所述第二模型的性能;通过所述分析引擎基于所述评估确定所述第二模型的所述性能与所述第一模型的所述性能相比有所提高;以及通过所述集成计算系统的所述基于有向无环图的框架在运行时间内执行用于所述聊天机器人的所述第二模型。
在一些实施例中,所述方法进一步包括:以图形方式在GUI上显示所述第一模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务的所述第一组任务。
在一些实施例中,所述方法进一步包括:以图形方式在GUI上显示所述第二模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务的所述第二组任务。
在一些实施例中,所述方法进一步包括:通过一个或多个用户可选项中的用户可选项接收用户输入;以及基于所述用户输入训练所述第一模型和所述第二模型,其中,所述用户输入是用户考虑用于触发意图的一组话语。
在一些实施例中,在运行时间内运行的所述第一模型在数据集上执行以生成由所述聊天机器人在下游过程中使用的输出,其中,所述下游过程包括基于所述意图分类提供对话或采取行动,并且其中,在设计时间内在后台运行的所述第二模型在相同的数据集上执行以生成不同的输出,所述不同的输出不会由所述聊天机器人在所述下游过程中使用。
在一些实施例中,所述第一组任务与所述第二组任务不同,并且不同之处在于至少一个任务的添加或减少、至少一个任务的替换、处理至少一个任务的顺序、或其组合。
在一些实施例中,所述执行所述第一模型和所述第二模型包括从一个或多个通道获取包括所述一组话语的数据集或从数据库获取包括所述一组话语的所述数据集,以及基于所述一组话语使用所述第一模型和所述第二模型解析意图。
在各种实施例中,提供了一种系统,所述系统包括一个或多个数据处理器和包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部。
在各种实施例中,提供了一种计算机程序产品,所述计算机程序产品有形地体现在非暂态机器可读存储介质中并且包括被配置成使一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部的指令。
本公开的一些实施例包括一种系统,所述系统包括一个或多个数据处理器。在一些实施例中,所述系统包括包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部和/或一个或多个过程的部分或全部。本公开的一些实施例包括一种有形地体现在非暂态机器可读存储介质中的计算机程序产品,所述计算机程序产品包括被配置成使一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部和/或一个或多个过程的部分或全部的指令。
可以用多种方式并且在多种背景下实施上文和下文所描述的技术。如下文更详细地描述的,参考以下附图提供了几种示例实施方式和背景。然而,以下实施方式和背景仅是许多实施方式和背景中的一些。
附图说明
图1描绘了根据各种实施例的分布式环境的简化框图。
图2描绘了根据各种实施例的包括机器人系统和用于监测、分析、可视化并提高机器人系统的性能的机器人分析系统的集成系统。
图3描绘了根据各种实施例的流水线。
图4描绘了根据各种实施例的无效流水线。
图5描绘了根据各种实施例的用于节点的名称检查过程。
图6描绘了根据各种实施例的复杂流水线。
图7图示了根据各种实施例的用于构建、训练并实施一个或多个模型的过程流程。
图8描绘了用于实施各种实施例的分布式系统的简化图。
图9是根据各种实施例的系统环境的一个或多个部件的简化框图,通过所述系统环境,由实施例系统的一个或多个部件提供的服务可以作为云服务提供。
图10图示了可以用于实施各种实施例的示例计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或例示”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
引言
数字助理是帮助用户在自然语言会话中完成各种任务的人工智能驱动接口。针对每个数字助理,客户可以组装一个或多个技能。技能(在本文中也描述为聊天机器人、机器人或技能机器人)是聚焦于如跟踪库存、提交时间卡和创建费用报告等特定类型的任务的单独机器人。当最终用户与数字助理接洽时,数字助理评估最终用户输入并且将会话路由到适当的聊天机器人并从适当的聊天机器人路由会话。可以通过如
Figure BDA0003827460020000041
Messenger、SKYPE
Figure BDA0003827460020000042
messenger或短消息服务(SMS)等各种通道使数字助理对最终用户可用。通道使得聊天在各种消息传递平台上在最终用户与数字助理及其各种聊天机器人之间来回传送。通道还可以支持用户代理升级、事件发起的会话和测试。
意图允许聊天机器人理解用户想要聊天机器人做什么。意图包括典型的用户请求和陈述的排列,这也可以称为话语(例如,获得账户余额、进行购物等)。如本文所使用的,话语或消息可以指代在与聊天机器人的会话期间交换的一组词(例如,一个或多个句子)。意图可以通过提供说明某个用户行动的名称(例如,订披萨)并编译通常与触发行动相关联的一组现实生活用户陈述或话语来创建。因为聊天机器人的认知是源自这些意图,所以每个意图可以从鲁棒且变化的数据集(一至两打话语)创建,使得聊天机器人可以解释不明确的用户输入。丰富的一组话语使聊天机器人能够理解在其接收到如“忽略此订单”或“取消派送”等消息(意指相同的事情但以不同的方式表达的消息)时用户想要什么。意图和属于意图的话语共同构成用于聊天机器人的训练语料库。通过用语料库训练模型,客户基本上可以将所述模型变成用于将最终用户输入解析成单个意图的参考工具。客户可以通过多轮意图测试和意图训练来提高聊天机器人的认知的敏锐度。
然而,构建可以基于用户话语确定最终用户的意图的聊天机器人是有挑战性的任务,这部分地是由于自然语言的微妙性和不明确性以及输入空间的维度(例如,可能的用户话语)和输出空间的大小(意图的数目)。这样,为了改善聊天机器人的性能和与聊天机器人的用户体验,可能需要训练、监测、调试和再训练聊天机器人。在传统系统中,提供的训练模型是被硬编码成用于训练和再训练数字助理或聊天机器人的设计系统的基本上默认的训练模型。例如,可以提供仅需要小型训练语料库的第一模型,因此可以使用匹配规则来开发实体、意图和训练语料库。当训练语料库已经成熟到测试显示出非常准确的意图解析的程度时,可以使用第二模型通过基于词向量和其他基于文本的特征使用机器学习进行训练来将更深的维度添加至聊天机器人的认知。这些默认训练模型在所采用的训练方法学方面通常是不灵活的。因此,在没有更加灵活的用于训练的方法的情况下,可能难以识别聊天机器人低于期望性能的根本原因和确定如何改进聊天机器人。
因此,需要不同的方法来解决这些问题。在各种实施例中,提供了基于有向无环图(DAG)的框架(在本文中描述为spark式框架(sparky framework)或训练工具)来构建用于机器人系统的训练模型。本质上,待在模型中实施的所有任务和活动排列成离散过程在设定点处发生并且与其他任务的关系明确的清晰结构或流水线。如果存在多个任务,则每个任务具有至少一个确定的上游(先前)任务或下游(后续)任务(尽管每个任务可以容易地具有两者)。没有任务可以创建出继续引用自身的数据(这避免了无限循环的任何实例)。使用训练工具开发的一个模型可以在运行时间期间在机器人系统中实施,而同样使用训练工具开发的一个或多个另外的模型可以同时地在设计时间内(即,在幕后或对客户透明的)在机器人系统中实施。与机器人系统和基于DAG的框架集成的分析系统可以在使用模型期间收集度量并且可以用于生成每个模型的得分,使得可以作出关于在运行时间内使用哪个模型的判定(例如,用在设计时间内操作的更加鲁棒或准确的模型来代替原始的运行时间模型)。例如,度量可以提供用于作出关于任务的哪个流水线给出了最高效的模型的判定的信息(例如,考虑准确度、每秒可以处理多少查询、复杂性等)。在一些实施例中,客户可以使用训练工具在与模型结构的总体编辑/改变相比更细的粒度水平上编辑/改变模型的向量和特征。在一些实施例中,分析系统和训练工具的一个或多个图形用户界面(GUI)可以显示与基于DAG的框架有关的信息,如可用的任务或行动、训练语料库、预先配置的任务模型或流水线以及包括收集到的度量在内的分析。在一些实施例中,GUI可以被客户用于使用基于DAG的框架构建或修改一个或多个训练模型。
机器人和分析系统
机器人(也称为技能、聊天机器人、交谈机器人或谈话机器人)是可以执行与最终用户的会话的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用程序对自然语言消息(例如,问题或评论)作出回应。企业可以使用一个或多个机器人系统通过消息传递应用程序与最终用户交流。消息传递应用程序(所述消息传递应用程序可以被称为通道)可以是最终用户已经安装并且熟悉的最终用户优选的消息传递应用程序。因此,最终用户不需要下载并安装新的应用程序以与机器人系统聊天。消息传递应用程序可以包括例如过顶(OTT)消息传递通道(如Facebook Messenger、Facebook WhatsApp、WeChat、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(如Amazon Dot、Echo或Show、Google Home、Apple HomePod等)、本地或混合扩展的移动和web应用程序扩展/具有聊天能力的响应式移动应用程序或web应用程序、或基于声音的输入(如具有使用Siri、Cortana、Google Voice、或用于交互的其他语音输入的接口的设备或应用程序)。
在一些示例中,机器人系统可以与统一资源标识符(URI)相关联。URI可以使用一串字符识别机器人系统。URI可以用作用于一个或多个消息传递应用程序系统的webhook。例如,URI可以包括统一资源定位符(URL)或统一资源名称(URN)。机器人系统可以被设计成从消息传递应用程序系统接收消息(例如,超文本传送协议(HTTP)post呼叫消息)。HTTPpost呼叫消息可以涉及来自消息传递应用程序系统的URI。在一些实施例中,消息可以与HTTP post呼叫消息不同。例如,机器人系统可以从短消息服务(SMS)接收消息。虽然本文的讨论可以将机器人系统接收到的交流称作消息,但是应理解,消息可以是HTTP post呼叫消息、SMS消息或两个系统之间的任何其他类型的交流。
最终用户可以通过会话式交互(有时称为会话式用户界面(UI))与机器人系统交互,正如人之间的交互那样。在一些情况下,交互可以包括最终用户对机器人说“Hello”以及机器人用“Hi”回应并询问最终用户机器人有什么可以帮忙的。在一些情况下,交互还可以是与例如银行业机器人的交易式交互,如将钱从一个账户转移到另一个账户;与例如HR机器人的信息式交互,如检查假期结余;或与例如零售机器人的交互,如讨论退回已购商品或寻求技术支持。
在一些实施例中,机器人系统可以在没有与机器人系统的管理者或开发者交互的情况下智能地处理最终用户交互。例如,最终用户可以向机器人系统发送一个或多个消息以便实现期望的目标。消息可以包括某种内容,如文本、表情符号、音频、图像、视频或传达消息的其他方法。在一些实施例中,机器人系统可以将内容转换成标准化形式(例如,利用适当的参数针对企业服务的表征状态转移(REST)呼叫)并且生成自然语言回应。机器人系统还可以提示最终用户另外的输入参数或请求其他另外的信息。在一些实施例中,机器人系统还可以发起与最终用户的交流,而不是被动地回应最终用户话语。本文所描述的是用于识别机器人系统的显式调用并确定用于被调用的机器人系统的输入的各种技术。在某些实施例中,显式调用分析是由主机器人基于检测话语中的调用名称执行的。响应于对调用名称的检测,话语可以被细化以供输入到与调用名称相关联的技能机器人。
与机器人的会话可以遵循包括多个状态的特定会话流。所述流可以基于输入定义接下来会发生什么。在一些实施例中,可以使用包括用户定义的状态(例如,最终用户意图)和在状态中或状态之间要采取的行动的状态机来实施机器人系统。会话可以基于最终用户输入采取不同路径,这可能会影响机器人针对流程作出的决定。例如,在每个状态下,基于最终用户输入或话语,机器人可以确定最终用户的意图以便确定要采取的适当的下一个行动。如本文所使用的且在话语的背景下中,术语“意图”是指提供话语的用户的意图。例如,用户可以打算与机器人进行会话以订披萨,使得用户的意图可以通过话语“订披萨”来表示。用户意图可以涉及用户希望聊天机器人代表用户执行的特定任务。因此,话语可以表达为反映用户的意图的问题、命令、请求等。意图可以包括最终用户想要完成的目标。
在聊天机器人的配置的背景下,本文所使用的术语“意图”是指用于将用户的话语映射到聊天机器人可以执行的特定任务/行动或特定种类的任务/行动的配置信息。为了区分话语的意图(即,用户意图)与聊天机器人的意图,本文中有时将聊天机器人的意图称为“机器人意图”。机器人意图可以包括与意图相关联的一组一个或多个话语。例如,订披萨的意图可以具有表达下订单购买披萨的期望的话语的各种排列。这些相关联的话语可以用于训练聊天机器人的意图分类器以使意图分类器能够随后确定来自用户的输入话语是否与订披萨意图相匹配。机器人意图可以与用于启动与用户在某个状态中的会话的一个或多个对话流相关联。例如,针对订披萨意图的第一消息可以是问题“你想要哪种披萨?”。除了相关联的话语之外,机器人意图可以进一步包括与意图有关的命名实体。例如,订披萨意图可以包括用于执行订披萨的任务的变量或参数,例如馅料1、馅料2、披萨类型、披萨大小、披萨数量等。实体的值通常是通过与用户会话获取的。
图1是并入了示例性实施例的分布式环境100的简化框图。分布式环境100包括使企业能够创建并部署用于其用户的数字助理的数字助理构建器平台(DABP)102。出于本公开的目的,“数字助理”是通过自然语言会话帮助数字助理的用户完成各种任务的实体。可以仅使用软件(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令实施的数字实体)、使用硬件或使用硬件和软件的组合来实施数字助理。数字助理可以在如计算机、移动电话、手表、器具、载具等各种物理系统或设备中体现或实施。数字助理有时也称为聊天机器人系统。DABP 102可以用于创建一个或多个数字助理(或DA)106。DABP 102可以由多个企业用来创建用于其用户的数字助理。例如,如图1所示,代表特定企业的用户104可以使用DABP 102来创建并部署用于特定企业的用户的数字助理106。例如,餐馆(例如,披萨店)的拥有者可以使用DABP 102来创建并部署使餐馆的客户能够订购食物(例如,订披萨)的数字助理。
一旦部署了数字助理106,用户108就可以使用数字助理106通过与数字助理106的基于自然语言的会话来执行各种任务。作为会话的一部分,用户108可以提供一个或多个用户输入110并且从数字助理106获得返回的回应112。通过这些会话,用户可以请求由数字助理106执行一个或多个任务,并且作为回应,数字助理106被配置成执行用户请求的任务并以适当的回应来回应用户。
用户输入110呈自然语言并且被称为话语。用户话语可以呈文本形式(例如,当用户打字输入一些东西作为到数字助理106的输入时)或呈音频输入或语音形式(例如,当用户说出一些东西作为到数字助理106的输入时)。话语通常呈由用户108说出的语言。当用户输入110呈语音形式时,将语音输入转换成那种特定语言的文本形式话语,并且然后由数字助理106对文本话语进行处理。可以使用各种语音转文本处理技术将语音或音频输入转换成文本话语,所述文本话语然后由数字助理106来处理。
由用户108输入的或从将语音输入转换成文本形式生成的文本话语可以是文本片段、句子、多个句子等。数字助理106被配置成将自然语言理解(NLU)技术应用于文本话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106被配置成执行用于理解话语的含义的处理,所述处理涉及识别对应于话语的一个或多个意图和一个或多个实体。一旦理解了话语的含义,则数字助理106可以响应于理解的含义或意图而执行一个或多个行动或操作。
例如,用户输入110可以请求订披萨,例如“I want to order a pizza.”。数字助理106被配置成理解话语的含义并采取适当的行动,所述适当的行动可以涉及以要求用户输入用户期望订购的披萨的类型、披萨的大小、披萨的任何馅料等的问题来回应用户。数字助理106提供的回应112还可以呈自然语言形式,这可以涉及由数字助理106执行的自然语言生成(NLG)处理。一旦数字助理106从用户得到必要信息,那么,数字助理106就可以进行披萨订购。数字助理106可以通过输出指示披萨已经订购的信息来结束与用户的会话。
在某些实施例中,作为输入由数字助理106接收的话语经受一系列处理步骤或处理步骤的流水线。这些步骤可以包括例如对话语进行语法分析、理解话语的含义、细化并重组话语以开发用于话语的更加可以理解的结构、确定待响应于话语而执行的行动、使行动被执行、生成响应于用户话语而待输出到用户的回应、输出对用户的回应等。
由数字助理(如数字助理106)执行的NLU处理可以包括如句子语法分析(例如,语语切分、按屈折变化形式进行归类、识别句子的词性标签、识别句子中的命名实体、生成依存树来表示句子结构、将句子分成子句、分析单独的子句、解析指代、执行组块等)等各种NLP有关处理。数字助理106可以使用NLP引擎和/或机器学习模型(例如,意图分类器)将最终用户话语映射到特定意图(例如,聊天机器人可以执行的特定任务/行动或特定种类的任务/行动)。例如,基于机器学习的NLP引擎可以学习理解并分类来自最终用户的自然语言会话并且从会话中提取必要信息以能够采取精确的行动,如执行交易或从后端记录系统查找数据等。在某些实施例中,NLU处理或其部分是由数字助理106自身执行的。在其他一些实施例中,数字助理106可以使用其他资源来执行NLU处理的部分。例如,句子的句法和结构可以通过使用语法分析器、词性标签器和/或命名实体识别器处理句子来识别。在一种实施方式中,针对英语语言,使用由斯坦福自然语言处理(NLP)小组提供的语法分析器、词性标签器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福CoreNLP工具包的一部分提供的。
虽然本公开中提供的各种示例示出了英语语言的话语,但是这仅意味着作为示例。在某些实施例中,数字助理106还能够处理除英语以外的语言的话语。在某些实施例中,数字助理106提供被配置成用于针对不同语言执行处理的子系统(例如,实施NLU功能的部件)。这些子系统可以实施为可以使用服务呼叫而被从NLU核心服务器调用的可插单元。这使NLU处理对于每种语言而言是灵活且可扩展的,包括允许不同的处理顺序。可以为单独的语音提供语言包,其中,语言包可以注册可以从NLU核心服务器提供服务的子系统的列表,并且如果需要的话,还可以利用提供的通用子系统。
可以通过各种不同的通道(如但不限于通过某些应用程序、通过社交媒体平台、通过各种消息传递服务和应用程序以及其他应用程序或通道)使数字助理(如数字助理106)对其用户而言是可用的。单个数字助理可以为自身配置数个通道,使得单个数字助理可以同时在不同的服务上运行并通过不同的服务进行访问。
数字助理包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是被设计成与用户交互并完成特定类型的任务(如跟踪库存、提交时间卡、创建费用报告、订购食物、检查银行账户、进行预定、购买小部件等)的单独的聊天机器人(称为技能机器人)。例如,针对图1所描绘的实施例,数字助理106包括技能116-1、116-2等。出于本公开的目的,术语“技能”和“多个技能”分别与术语“技能机器人”和“多个技能机器人”同义地使用。
与数字助理相关联的每个技能通过与用户的会话帮助数字助理的用户完成任务,其中,所述会话可以包括由用户提供的文本或音频输入和由技能机器人提供的回应的组合。这些回应可以呈以下形式:给用户的文本或音频消息的形式和/或使用呈现给用户以供用户进行选择的简单的用户界面元素(例如,选择列表)的形式。
存在各种方式可以将技能或技能机器人添加到数字助理。在一些实例中,可以由企业开发技能机器人,并且然后将其添加到使用DABP 102的数字助理。在其他实例中,可以使用DABP 102开发并创建技能机器人,并且然后将其添加到使用DABP 102创建的数字助理。在又其他实例中,DABP 102提供在线数字商店(称为“技能商店”),所述在线数字商店提供涉及广泛范围的任务的多个技能。通过技能商店提供的技能可以展示各种云服务。DABP102的用户104可以通过DABP 102访问技能商店、选择期望的技能并且将所选技能添加到使用DABP 102创建的数字助理。来自技能商店的技能可以按原来的样子或以修改后形式添加到数字助理(例如,DABP 102的用户可以选择并复制技能商店提供的特定技能机器人、对所选技能机器人进行定制或修改并且然后将修改后的技能机器人添加到使用DABP 102创建的数字助理)。
在某些实施例中,使用DABP 102创建并部署的数字助理是使用主机器人/次(或子)机器人范式或架构实施的。根据此范式,数字助理被实施为与是技能机器人的一个或多个次机器人交互的主机器人。例如,在图1所描绘的实施例中,数字助理106包括主机器人114和是主机器人114的次机器人的技能机器人116-1、116-2等。在某些实施例中,数字助理106自身充当主机器人。
根据主-次机器人架构实施的数字助理使数字助理的用户能够通过统一用户界面与多个技能交互。当用户与数字助理106接洽时,用户输入由主机器人114接收,所述主机器人然后处理用户输入以识别用户请求并且基于处理确定用户请求任务是否可以由主机器人114自身处理,否则主机器人114选择适当的技能机器人116-1、116-2或116-3用于处理用户请求并且将会话路由到所选技能机器人116-1、116-2或116-3。这使用户108能够通过通用的单个界面与被配置成执行特定任务的数个技能机器人会话并且使用所述数个技能机器人。例如,针对为企业开发的数字助理106,数字助理106的主机器人114可以与具有特定功能的技能机器人116-1、116-2等接口连接,如用于执行与客户关系管理(CRM)有关的功能的CRM机器人、用于执行与企业资源规划(ERP)有关的功能的ERP机器人、用于执行与人力资本管理(HCM)有关的功能的HCM机器人等。以此方式,数字助理106的最终用户或客户108只需知道如何访问数字助理106。
在主机器人/次机器人基础设施中,主机器人被配置成了解技能机器人的列表。主机器人可以访问识别了各种可用技能机器人的元数据,并且针对每个技能机器人,访问技能机器人的能力,包括可以由技能机器人执行的任务。一旦接收到话语形式的用户请求,则主机器人被配置成从多个可用技能机器人中识别或预测可以最好地服务或处理用户请求的特定技能机器人。然后,主机器人将话语(或话语的一部分)路由到所述特定技能机器人以进行进一步的处理。因此,控制从主机器人流动到技能机器人。主机器人可以支持多个输入和输出通道。
虽然图1的实施例示出了数字助理106包括主机器人114以及技能机器人116-1、116-2和116-3,但这并不旨在是限制性的。数字助理可以包括提供数字助理的功能的各种其他部件(例如,其他系统和子系统)。这些系统和子系统可以仅在软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)中、仅在硬件中或在使用软件和硬件的组合的实施方式中实施。
DABP 102提供使DABP 102的使用能够创建包括与数字助理相关联的一个或多个技能机器人的数字助理的基础设施以及各种服务和特征。例如,技能机器人可以通过复制现有技能机器人、复制现有技能机器人并且然后对技能机器人进行修改来创建,或者可以使用DABP 102所提供的工具和服务从头创建。在某些实施例中,DABP 102提供技能商店或技能目录,所述技能商店或技能目录提供了用于执行各种任务的多个技能机器人。DABP102的用户可以从技能商店复制技能机器人并创建新的技能机器人。
DABP 102还使用户(例如,技能机器人设计者)能够从头创建技能机器人。在某些实施例中,在高层级,创建技能机器人涉及以下步骤:
(1)为新技能机器人配置设置
(2)为技能机器人配置一个或多个意图
(3)针对一个或多个意图配置实体
(4)训练技能机器人
(5)为技能机器人创建对话流
(6)将自定义部件添加到技能机器人
(7)测试并部署技能机器人
(1)为新技能机器人配置设置—技能机器人设计者可以为正在创建的技能机器人指定一个或多个调用名称。这些调用名称可以在话语中用于显式地识别并调用数字助理中的技能机器人。技能机器人设计者还可以为技能机器人指定示例话语。这些示例话语代表用于技能机器人的话语。当接收到用户输入时,数字助理的意图分析引擎将用户输入与这些示例话语进行比较以确定是否要调用特定的技能机器人。
(2)为技能机器人配置一个或多个意图—技能机器人设计者可以为正在创建的技能机器人配置一个或多个意图(也称为机器人意图)。这些意图识别技能机器人可以为数字助理的用户执行的任务。每个意图都被赋予了名称。例如,针对被配置成帮助用户执行各种银行业交易的技能机器人,意图可以由技能机器人设计者针对技能机器人指定,如“查询余额(CheckBalance)”、“转账(TransferMoney)”、“存款查询(DepositCheck)”等。针对每个意图,技能机器人设计者指定代表并说明意图的含义并且通常与通过所述意图执行的任务相关联的一组示例话语。例如,针对查询余额意图,示例话语可以包括“我的储蓄账户余额是多少?”、“我的活期存款账户里有多少钱?”、“我的账户里有多少钱?”等。因此,可以将典型的用户请求和陈述的排列指定为用于意图的示例话语。
(3)针对技能机器人的一个或多个意图配置实体—在一些实例中,可能需要另外的背景来使技能机器人能够适当地回应用户请求。例如,可能存在其中用户输入话语解析成技能机器人中的相同意图的情况。例如,在以上示例中,话语“我的储蓄账户余额是多少?”和“我的活期存款账户里有多少钱?”均解析成相同的查询余额意图,但是这些话语是请求不同事情的不同请求。为了阐明这种请求,将一个或多个实体添加到意图。使用银行业技能示例,被称为账户类型(AccountType)的实体(所述实体定义了被称为“活期存款”和“储蓄”的值)可以使技能机器人能够对用户请求进行语法分析并适当地作出回应。可以针对为技能机器人配置的某些意图指定一个或多个实体。因此,实体用于将背景添加到意图自身。实体帮助更充分地描述意图并使技能机器人能够完成用户请求。在某些实施例中,有两种类型的实体:(a)由DABP 102提供的内置实体;以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以与各种机器人一起使用的通用实体。内置实体的示例包括但不限于与时间、日期、地址、数字、电子邮件地址、持续时间、循环时间段、货币、电话号码、URL等有关的实体。自定义实体用于更多定制的应用程序。例如,针对银行业技能,帐户类型实体可以被技能机器人设计者定义为通过针对关键字(如活期存款、储蓄、信用卡等)检查用户输入来实现各种银行业交易。
(4)训练技能机器人—技能机器人被配置成接收用户输入、语法分析或以其他方式处理接收到的输入并且识别或选择与接收到的用户输相关的意图。为了使这种情况发生,不得不训练技能机器人。在某些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称训练数据)来训练技能机器人,使得技能机器人可以将用户输入解析成其配置的意图中的一个意图。在某些实施例中,技能机器人由使用训练数据进行训练并且允许技能机器人辨别用户说出(或者,在一些情况下,正试图说出)的内容的模型来表示。DABP 102提供可以被技能机器人设计者用于训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或其组合,如本文中关于基于DAG的框架详细地描述的。在某些实施例中,训练数据的一部分(例如,80%)用于训练技能机器人模型并且另一部分(例如,其余20%)用于测试或验证模型。一旦训练过,那么,技能机器人就可以用于处理并回应用户话语。在某些情况下,用户的话语可以是仅需要单一的回答并且无需另外的会话的问题。为了处理这种情况,可以为技能机器人配置Q&A(问与答)意图。这使技能机器人能够在不必更新对话定义的情况下输出对用户请求的回复。Q&A意图是以与常规意图类似的方式创建的。然而,针对Q&A意图的对话流与常规意图不同。
(5)为技能机器人创建对话流—为技能机器人指定的对话流描述了在响应于接收到的用户输入来解析技能机器人的不同意图时,技能机器人如何反应。对话流定义了技能机器人将采取的操作或行动(例如,技能机器人如何回应用户话语、技能机器人如何提示用户进行输入、技能机器人如何返回数据)。对话流像技能机器人所遵循的流程图一样。技能机器人设计者使用如标底语言等语言指定对话流。在某些实施例中,可以使用被称为OBotML的YAML版本来指定技能机器人的对话流。针对技能机器人的对话流定义充当用于会话自身的模型,所述模型使技能机器人设计者精心策划技能机器人与技能机器人所服务的用户之间的交互。
在某些实施例中,对话流定义包含三个部分:
(a)背景部分
(b)默认转变部分
(c)状态部分
背景部分—技能机器人设计者可以在背景部分中定义会话流中使用的变量。可以在背景部分中命名的其他变量包括但不限于:针对错误处理的变量、针对内置实体或自定义实体的变量、使技能机器人能够识别并坚持用户偏好的用户变量等。
默认转变部分—用于技能机器人的转变可以在对话流状态部分中或在默认转变部分中定义。在默认转变部分中定义的转变充当后备并且当状态内没有定义适用的转变或触发状态转变所需的条件无法得到满足时被触发。默认转变部分可以用于定义允许技能机器人得体地处理出乎意料的用户行动的路由。
状态部分—对话流及其有关操作被定义为管理对话流内的逻辑的暂时性状态的序列。对话流定义内的每个状态节点对提供对话中所述点处需要的功能的部件进行了命名。因此,状态是围绕部件构建的。状态包含部件特定性质并且定义了在部件执行之后被触发的向其他状态的转变。
特殊情况场景可以使用状态部分来处理。例如,你有时可能想要为用户提供用于暂时让用户与之接洽的第一技能进行数字助理内的第二技能中的事情的选项。例如,如果用户忙于与购物技能交谈(例如,用户已做出一些购买选择),则用户可能想要跳转至银行业技能(例如,用户可能想要确保自己有足够的钱用于购买)并且然后返回到购物技能以完成用户的订单。为了解决这一点,第一技能中的行动可以被配置成发起与相同数字助理中的第二不同技能的交互并且然后返回到原始流。
(6)将自定义部件添加到技能机器人—如上文所描述的,用于技能机器人的对话流中指定的状态对对应于状态提供所需的功能的部件进行了命名。部件使技能机器人能够执行功能。在某些实施例中,DABP 102提供了用于执行广泛范围的功能的一组预先配置的部件。技能机器人设计者可以选择这些预先配置的部件中的一个或多个并且将其与用于技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用DABP 102提供的工具创建自定义部件或新的部件并且将自定义部件与用于技能机器人的对话流中的一个或多个状态相关联。
(7)测试并部署技能机器人—DABP 102提供了使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后,可以将技能机器人部署并包括在数字助理中。
虽然以上描述描述了如何创建技能机器人,但是还可以使用类似的技术来创建数字助理(或主机器人)。在主机器人或数字助理层级,可以为数字助理配置内置系统意图。这些内置系统意图用于识别数字助理自身(即,主机器人)在不调用与数字助理相关联的技能机器人的情况下可以处理的一般任务。针对主机器人定义的系统意图的示例包括:(1)退出(Exit):当用户发出想要退出数字助理中的当前会话或背景的信号时适用;(2)帮助(Help):当用户请求帮助或介绍时适用;以及(3)未解析出的意图(UnresolvedIntent):适用于与退出意图和帮助意图不太匹配的用户输入。数字助理还存储有关于与数字助理相关联的所述一个或多个技能机器人的信息。
在主机器人或数字助理层级,当用户向数字助理输入短语或话语时,数字助理被配置成执行用于确定如何路由会话的处理。数字助理使用路由模型来确定这一点,所述路由模型可以是基于规则的、基于AI的或其组合的。数字助理使用路由模型来确定对应于用户输入的会话是要被路由到特定技能以进行处理、要由数字助理或主机器人自身按照内置系统意图进行处理、还是要被处理成当前会话流中的不同状态。
在某些实施例中,作为此处理的一部分,数字助理确定用户输入是否使用其调用名称识别技能机器人。如果调用名称存在于用户输入中,则所述调用名称被视为对对应于调用名称的技能机器人的显式调用。在这种场景中,数字助理可以将用户输入路由到显式调用的技能机器人以进行进一步处理。在某些实施例中,如果没有特定的调用,则数字助理评估接收到的用户输入并针对与数字助理相关联的系统意图和技能机器人计算置信度得分。针对技能机器人或系统意图计算的得分表示用户输入代表技能机器人被配置成执行的任务或代表系统意图的可能性有多大。选择相关联的计算的置信度得分超过阈值(例如,置信度阈值路由参数)的任何系统意图或技能机器人作为候选以进行进一步的评估。然后,数字助理从识别的候选中选择特定的系统意图或技能机器人用于对用户输入进行进一步的处理。在某些实施例中,在一个或多个技能机器人被识别为候选之后,对与那些候选技能相关联的意图进行评估(根据用于每个技能的意图模型)并且将置信度得分应用于每个意图。置信度得分超过阈值的任何意图通常均被视为候选流。如果选择了特定的技能机器人,则将用户输入路由到所述技能机器人以进行进一步的处理。如果选择了系统意图,则根据所选系统意图执行一个或多个行动。
图2描绘了根据某些实施例的包括机器人系统205(如关于图1描述的数字助理或机器人系统106)和用于监测、分析、可视化并提高机器人系统的性能的机器人分析系统210的集成系统200。如所图示的,机器人系统205可以包括连接器215以及如对话引擎222、意图建模器224、实体解析器226和自定义部件228等的多个机器人引擎220。机器人系统205还可以包括数据库230、管理API 235、用户界面245和UI服务器240。机器人分析系统210可以包括收集器250、丰富引擎255、数据库260和REST服务器265。机器人分析系统210还可以包括用户界面270和UI服务器275。机器人分析系统210的收集器250可以收集在机器人系统205处发生的事件290。来自机器人分析系统210的反馈285可以通过用户界面270和用户界面245提供到机器人系统205。
连接器215可以通过一个或多个通道(如通道286和287)充当机器人系统205与一个或多个最终用户之间的接口。每个通道可以是消息传递应用程序,如消息传递通道(如Facebook Messenger、Facebook WhatsApp、WeChat、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(如Amazon Dot、Echo或Show、Google Home、Apple HomePod等)、本地或混合扩展的移动和web应用程序扩展/具有聊天能力的响应式移动应用程序或web应用程序、或基于声音的输入(如具有使用Siri、Cortana、Google Voice、或用于交互的其他语音输入的接口的设备或应用程序)。在一些实施例中,连接器215可以归一化来自不同通道的内容,使得机器人系统205可以分析跨不同消息传递应用程序系统的内容。内容归一化处理可以包括将来自每种类型的消息传递应用程序的内容格式化成通用格式以进行处理。在一些实施例中,针对每个通道,机器人系统205可以包括一个或多个连接器。意图建模器228可以用于确定与最终用户话语相关联的最终用户意图。在归一化之后,可以确定单词的出现可以表明某个意图的概率。在一些示例中,可以使用基础概率算法来组合概率,正如所述概率是独立的那样。
还可以提供防止模型作出错误断言的示例。例如,特定子短语或仅针对某个意图出现的单词可能导致错误断言。类似地,可以防止模型使用属于不同意图的类似句子来进行训练而合成宽泛规则。
实体解析器224可以识别与最终用户意图相关联的实体(例如,对象)。例如,除了通过意图建模器228识别的最终用户意图(如“订披萨”)之外,实体解析器224还可以解析如披萨类型、馅料等与意图相关联的实体。
对话引擎226可以用于处理最终用户与机器人系统之间的会话。例如,对话引擎226可以基于通过意图建模器228识别的最终用户意图和通过实体解析器224识别的与最终用户意图相关联的实体来回应最终用户话语。在一些实施例中,对话引擎226可以使用包括用户定义的状态(例如,最终用户意图)和在状态中或状态之间要采取的行动的状态机来处理与最终用户的会话。
自定义部件222可以包括用于特定的机器人系统的定制模块。例如,财务机器人可以包括可以用于例如查询余额、转移资金或支付账单的自定义部件。
数据库230可以用于存储机器人系统的数据,如用于分类模型的数据、会话日志等。管理API 235可以被机器人系统的管理者或开发者用于管理机器人系统,如再训练分类模型、编辑意图或以其他方式修改机器人系统。管理者或开发者可以使用用户界面245和UI服务器240来管理机器人系统。
各种事件290可以是在机器人系统205运行时生成的。事件290可以是基于包括在机器人系统中的一个或多个指令生成的。例如,事件290可以是在机器人系统205已经进入到特定的状态时生成的,其中,所述特定的状态是由机器人系统的管理者或开发者定义的。在事件290生成时,事件290可以由机器人分析系统210收集、存储并分析。当捕获事件290时,还可以收集与事件290相关联的另外的信息,其中,所述另外的信息可以指示事件290生成的当前背景。
例如,会话事件可以通过对话引擎226生成。会话事件可以包括由机器人系统从最终用户设备接收的消息(称为msg_received)。msg_received可以包括以下参数或变量中的一个或多个:消息的内容、消息由机器人系统205接收的时间、接收到的消息的语言、设备性质(例如,版本或名称)、操作系统性质(例如,版本或名称)、地理位置性质(例如,因特网协议地址、纬度、经度等)、识别信息(例如,用户ID、会话ID、机器人系统ID、占有者ID等)、时间戳(例如,设备创建的、设备发送的、收集器得到的时间戳)、通道等。
会话事件还可以包括由机器人系统205发送到最终用户设备的消息(称为msg_sent)。msg_sent可以包括以下各项中的一项或多项:消息的内容(例如,消息的文本或HTML)、消息由机器人系统发送的时间、消息的语言、消息的创建器(例如,机器人系统或最终用户设备)、设备性质、操作系统性质、浏览器性质(例如,版本或名称)、应用程序性质(例如,版本或名称)、地理位置性质(例如,因特网协议地址、纬度、经度等)、识别信息(例如,用户ID、会话ID、机器人系统ID、占有者ID等)、通道(例如,Facebook或Webhook)等。
对话引擎226还可以生成对话状态执行事件。如上文所描述的,对话引擎226可以使用状态机来确定与最终用户的会话的流。状态机可以包括一组状态和状态之间的转变规则。对话引擎226可以针对每个最终用户会话执行状态机,并且对话状态执行事件可以是针对对话引擎226逐步通过以处理最终用户话语的每个状态而产生的。对话状态执行事件的属性可以包括例如状态名称、部件名称、下一个行动、实体匹配、意图匹配、变量、用户查询陈述、回应陈述、执行时间、交流语言、设备性质、操作系统性质、地理位置性质、识别信息、时间戳、通道等。状态名称是当前执行的状态或“错误状态”的名称。部件名称可以是针对当前状态执行的机器人部件的名称。下一个行动可以是要执行的下一个行动。实体匹配可以是在当前消息中解析的实体。意图匹配可以是用得分值解析的意图。变量可以是当前状态的变量值。查询陈述可以是由最终用户发送的消息。回应陈述可以是发送到最终用户的消息。执行时间可以是完成的状态执行的时间戳。交流语言可以是交谈的消息的语言。设备性质和/或操作系统性质可以与和机器人系统交互的最终用户相关联。浏览器性质和/或应用程序性质可以与和机器人系统交互的最终用户相关联。地理位置性质可以是与机器人系统交互的最终用户的位置。
意图解析事件可能由于意图建模器228的执行而发生。意图建模器228可以使用经过训练的或以其他方式定义的分类模型基于最终用户话语从一组意图中识别最终用户意图。可以捕获意图分类的结果作为意图解析事件属性,所述意图解析事件属性可以包括例如最终意图分类结果(例如,识别出的意图)和与所述一组意图中的每个相应的意图相关联的置信度得分。
实体解析器224可以生成实体解析器事件。实体是与最终用户意图相关联的对象。实体定义规则可以在创建机器人系统时确定。例如,除了解析如“订披萨”等最终用户意图之外,机器人系统还可以使用实体解析器224来解析如披萨大小、馅料等相关联的实体。实体解析器事件可以在实体解析时捕获。与实体解析器事件相关联的属性的示例可以包括实体名称、所应用的规则、搜索项、所解析的状态、查询陈述、实体类型、执行时间、交流语言、设备性质、操作系统性质、浏览器性质、应用程序性质、地理位置性质、识别信息、时间戳、通道等。实体名称可以是当前被解析的实体的名称。所应用的规则可以是例如前述的、后述的或聚合的。搜索项可以是来自、到、目的地、原点等。所解析的状态可以是针对实体解析的对话状态。查询陈述可以是包含实体值的消息。实体类型可以是系统的或派生的。执行时间可以是实体解析的时间戳。交流语言可以是交谈的消息的语言。设备性质和/或操作系统性质可以与和机器人系统交互的最终用户相关联。浏览器性质和/或应用程序性质可以与和机器人系统交互的最终用户相关联。地理位置性质可以是与机器人系统交互的最终用户的位置。
自定义部件222还可以生成如预定义事件或自定义事件等事件。预定义事件可以是在执行自定义部件时捕获的性质。预定义事件的属性的示例可以包括:部件名称、事件名称、有效载荷、执行时间、交流语言、设备性质、操作系统性质、浏览器性质、应用程序性质、地理位置性质、识别信息、时间戳、通道等。部件名称可以是当前被执行的自定义部件的名称。事件名称可以是被调用、调用失败、回答、回答失败等。有效载荷可以是失败原因(在失败的情况下)、堆栈踪迹等。执行时间可以是指示事件何时发生的时间戳。交流语言可以是交谈的消息的语言。设备性质和/或操作系统性质可以与和机器人系统交互的最终用户相关联。浏览器性质和/或应用程序性质可以与和机器人系统交互的最终用户相关联。地理位置性质可以是与机器人系统交互的最终用户的位置。
自定义部件222还可以在执行自定义部件期间下发自定义事件。自定义事件的属性的示例可以包括部件名称、事件名称、自定义有效载荷、执行时间、交流语言、设备性质、操作系统性质、浏览器性质、应用程序性质、地理位置性质、识别信息、时间戳、通道等。部件名称可以是当前被执行的自定义部件的名称。事件名称可以是用户定义的事件名称(例如,Balance_Retrieved(余额取得))。有效载荷可以是例如{“金额”:“100美元”,“账户”:“活期存款”}。执行时间可以是指示事件何时发生的时间戳。交流语言可以是交谈的消息的语言。设备性质和/或操作系统性质可以与和机器人系统交互的最终用户相关联。浏览器性质和/或应用程序性质可以与和机器人系统交互的最终用户相关联。地理位置性质可以是与机器人系统交互的最终用户的位置。
错误事件和超时事件也可以在执行期间由机器人系统205生成。错误事件可以在错误发生时生成。超时事件可以在最终用户会话在一段时间内已经不活跃时生成,该时间段可以在通道处进行配置。
在机器人系统205与最终用户进行会话并且生成对应的事件时,分析系统210可以收集事件290和另外的信息。例如,收集器250可以收集事件290和另外的信息并且将收集到的信息发送到队列。在一些实施例中,收集器250可以是可配置的并且可以被编程成按照需要收集上文所描述的不同事件和/或事件属性。例如,收集器250可以被配置成捕获对话状态属性、意图解析属性、实体解析属性以及错误属性和超时属性。在一些实施例中,收集器250还可以被配置成收集关于由除机器人系统以外的系统生成的事件280的信息。
丰富引擎255可以对收集到的事件和其他信息进行验证和丰富并且将收集到的事件和其他信息写入数据库260。例如,基于收集到的IP地址,丰富引擎255可以确定与IP地址相关联的最终用户的位置。作为另一个示例,丰富引擎255可以从收集到的信息中提取某些特征,如确定最终用户所使用的web浏览器或通道。REST服务器265可以分析丰富的事件和其他信息并且基于某个聚合度量295生成各种报告。报告可以通过UI服务器275在用户界面270上向机器人系统205的拥有者、管理者或开发者显示。机器人系统205的拥有者、管理者或开发者可以向机器人系统205提供反馈285以用于改善机器人系统205。
基于DAG的框架
在开发机器学习系统以及在生产中运行模型时涉及的数据处理工作流程的数量越来越多。用于建模工作流程的流水线(一个接一个执行的一组阶段)通常从摄取并清除数据经过在交互式工作台环境中的特征工程和模型选择运行到训练和实验(通常有共享结果的选项)、到部署经过训练的模型、到服务如预测和分类的结果。管理这些流水线的复杂性变得更加困难,尤其是当用户可能试图使用实时数据并频繁更新模型时。针对机器学习有各种传统工具、库和框架,并且许多用户有他们自己喜欢用来一起工作的特定组,并且工具、库和框架都以不同的方式与数据商店和运行机器学习模型的平台集成。然而,为了实现可扩展性、易于编码和可伸缩性,机器学习流水线(特别是在自然语言处理(例如,用聊天机器人)时使用的机器学习流水线)需要容易定义、构建并测试流水线的机制。
本文所公开的机制是用于以编程方式编写、建模并监测与机器人系统的机器人有关的工作流程的基于DAG的框架(在本文中也称为训练框架或训练工具)。基于DAG的框架可以被实施为关于图1所描述的数字助理构建器平台(DABP)102的一部分并且针对性能使用关于图2所描述的机器人分析系统210进行分析和监测。虽然在本文中关于示例性语言学模型进行了描述,但是基于DAG的框架应被理解为适用于处理任何机器学习模型。训练框架是用于快速开发并部署如Oracle数字助理等服务应用程序的机器学习算法的模块化机器学习框架。在一些实施例中,训练框架构建在如Apache Spark等集群计算框架上,所述集群计算框架将机器学习算法分布式地实施在计算节点的集群上,从而允许模型在训练和部署期间缩放。训练框架利用一组变换器而开箱即用(come out of box),并且可以随时间推移构建和添加另外的变换器。简单变换器的示例将会是基于空格分割字符串。训练框架可以被实施成编写用于训练聊天机器人的工作流程作为任务的DAG。训练框架可以在工作器节点的阵列上执行任务,同时遵循工作流程中定义的节点的指定依赖性。训练框架可以包括允许对任务执行复杂改变的命令行实用工具。训练框架还可以包括使得容易可视化生产中运行的流水线、监测进度并在需要时解决问题的图形用户界面。
本质上,要在模型中实施的所有任务和活动排列成离散过程在设定点处发生并且与其他任务的关系明确的清晰结构或流水线。如果存在多个任务,则每个任务具有至少一个确定的上游(先前)任务或下游(后续)任务(尽管每个任务可以容易地具有两者)。没有任务可以创建出继续引用自身的数据(这避免了无线循环的任何实例)。如图3所示,基于DAG的流水线300可以被定义为包含节点305的非循环阵列和介于节点之间的连接310的JSON对象。流水线300是掌握应用于如弹性分布式数据集(RDD)等数据集(DF)(例如,数据表)上的操作(OP)的轨迹的图。操作的轨迹直接从一个节点连接到另一个节点。这创建了序列,即,每个节点以适当的序列呈由较早到较晚的链接,并且每个节点自动地识别来自先前节点的输出作为输入并且识别当前节点的输出作为用于下一个节点的输入。序列内的每个节点将新字段添加到DF,该DF在工作流程继续进行通过流水线300时从一个节点被移动到另一个节点。此外,流水线被定义成使得没有可用的周期或循环。一旦变换发生,流水线就无法返回到其较早位置。由于节点的非循环性和其连接性,集群计算框架能够自动地识别循环依赖性并且在流水线检测阶段期间拒绝流水线。图4示出了具有循环依赖性的无效流水线400。
在各种实施例中,基于DAG的流水线300包括:(i)一个或多个节点305(在本文中也称为阶段、变换器或变换器阶段);(ii)一个或多个连接310;以及(iii)可选地,一个或多个复杂连接(参见例如图6)。每个节点305具有阶段定义,所述阶段定义包括:“名称”、要通过如Java反射等内省功能来调用的类、类所需要的参数、以及在给定数据集上执行的一个或多个操作(OP)。类是可以从其创建对象的用户定义的蓝图或原型。类表示一种类型的所有对象所共有的一组性质或方法。通常,类声明可以包括:修饰语(例如,公共或私人访问)、类名称、超类(父类的名称)、界面或操作(例如,通过类实施的界面的列表)、以及类的主体。如反射等内省功能是允许执行程序对自身进行检查或“内省”并且操纵程序的内部性质的特征。例如,类可以获取其所有成员的名称并且显示所述名称。类所需要的参数是指方法声明中的变量(如双精度浮点数、浮点数、整数等)的列表。连接310定义要呼叫的节点和要执行的操作的顺序。复杂连接提供多输入节点、作为多个流水线之间的分开节点的流水线、以及针对已经完成的阶段的忽略函数。
在流水线300中,每个节点305将新字段添加到数据帧。节点(特征提取节点)的示例如下:
Figure BDA0003827460020000211
Figure BDA0003827460020000222
每个节点305可以针对单个输入节点实施单个方法。因为流水线300是在基于DAG的框架上构建的,所以弹性和分布式计算隐式地进行。在一些实施例中,可以通过不传递框架会话来改变此单一方法以进一步简化方法。在以上示例中,框架会话被传递,使得类还可以注册框架可能需要的用户定义的函数(UDF),例如,public PipelineStage getStage(SparkSession spark){}。
所述一个或多个节点305隐式地包括以下特征:(i)是节点名称的仅一个输出字段/阶段(流水线中可以存储复杂对象);以及(ii)不允许流水线的不同部分中有相同名称(需要创建具有不同名称的新节点500以便实施具有与另一个节点相同的功能的节点,如图5所示)。
下文中示出了示例性流水线。流水线示出了几个节点(JSONObject"nodes")和执行那些节点的顺序(JSONObject"pipelines")。
Figure BDA0003827460020000221
Figure BDA0003827460020000231
图6示出了具有任务校准(哪些任务是重复的)和任务依赖性校准的复杂机器学习流水线600的示例。DAG结构有助于检测循环需求并且还识别出任务依赖性校准。
在各种实施例中,集群计算框架包括以下特征:(i)模型定义(例如,基于域特定语言(DSL)的配置);(ii)模型性能;以及(iii)实际的机器学习模型。此机制的优势是:只要模型定义的实施方式未改变,模型就仍然可以执行自含式模型。以下是DSL配置的示例。以下模型示出了:模型(AVG_word2vec_LogisticRegression)的不同步骤:lower→trim→remove_punctuation→tokenization→feature_extraction→model。在一些实施例中,可以将步骤引入流水线中/移除。这区划了模型的开发。例如,集群计算框架在默认情况下可以进行多(例如,5)重交叉验证;并且提供度量。
Figure BDA0003827460020000241
Figure BDA0003827460020000251
关于模型性能,集群计算框架可以使用多重交叉验证来报告性能数。这些数可以取决于训练时的数据。下文中示出了这些度量的示例,这些度量可以利用模型而可获得。在一些实施例中,这些度量可以暴露于客户。一眼即可看出,模型的准确度为1;其中f得分为0.806。
Figure BDA0003827460020000252
Figure BDA0003827460020000261
有利地,实施集群计算框架来构建机器人系统的流水线能够减小模型大小(在某个实例中,减小十倍)、实现提高的准确度和提高的f得分(模型的准确度的量度,考虑了测试的精确率p和召回率r两者以计算得分)度量。下文中,在表1至表3中示出了利用spark式框架实现的一些示例性模型大小、准确度和f得分度量。
表1-模型大小
Figure BDA0003827460020000262
表2-模型准确度
Figure BDA0003827460020000271
表3-模型F1得分
机器人 #意图 #话语 AVG_word2vec_LogisticRegression Tamao
财务 5 56 100% 69%
零售 12 188 91% 74%
保险 44 429 74% 70%
Ask Ubuntu 5 162 94% 93%
聊天机器人 2 206 98% 98%
Web应用程序 8 90 75% 82%
新闻语料库 8 5485 90%
现代CX 116 978 64%
Snips 7 13784 96%
认知计算 50 5452 35%
在查询时间期间对集群计算框架的依赖性已被移除以获得每秒更高的查询。由于对于AVG_word2vec_LogisticRegression而言每个模型所需的存储器量与Tamao相比低10倍,因此在添加的机器人越多时,性能就越稳定。利用集群计算框架,意图分类不再受存储器限制,而是受CPU限制。在一些实施例中,AVG_word2vec_LogisticRegression模型使用具有6亿权标词向量的Glove 100d。利用110个话语,模型实现接近91.87%的准确度。利用220个话语,模型实现接近93.97%的准确度。利用330个话语,模型实现接近95.17%的准确度。获得97%以上的准确度通常需要约1984个话语。
模型的测试中的变化
将模型描述为集群计算框架中的JSON对象的能力允许:(i)测试多个模型;以及(ii)测试单个模型的多种变化。在各种实施例中,当客户执行训练方法(例如,激活GUI中的训练按钮)时,集群计算框架计算模型(已知所述模型在多个数据集上最佳地执行)并且使模型可用于供客户使用。在一些实施例中,用户能够使用集群计算框架来手动地创建、训练、修改、再训练并执行模型。在其他实施例中,集群计算框架自动地创建、训练、修改、再训练并执行模型。在其他实施例中,用户输入和在集群计算框架上的自动化过程的组合创建、训练、修改、再训练并执行模型。可以向客户提供指示:“某个”模型已经过训练,并且运行模型的机器人可在运行时间内使用;而针对模型的进一步探测可以在后台或在设计时间内执行。换句话说,(i)多个模型和(ii)单个模型的多种变化可以继续被训练并且被监测以基于被配置成测量一个或多个模型的性能的一个或多个参数确定哪些模型运行得最好。
客户可以提供客户想要跨其调整客户的模型的各种参数,例如,一些客户想要以吞吐量为代价具有高准确度;而其他客户想要通过牺牲一点准确度来优化吞吐量。模型的部署可以自动地执行,例如基于每秒的分类请求数量、在高峰时间期间缩放分类的成本和/或基于最高准确度。如下文所示出且本文所描述的,已经按照模型中的集群计算框架捕获了模型及其准确度。
Figure BDA0003827460020000281
Figure BDA0003827460020000291
通过创建各自包含不同学习算法的不同getModel()方法(多个模型),用户可以创建新模型用于训练。例如,以下定义构建了逻辑回归模型。
Figure BDA0003827460020000292
另一种模型设计技术是跳过某些预处理步骤,以便能够创建模型的不同变化。例如,在以下代码中,多个模型被返回。这些模型试用了小写字母(lower)的不同排列和组合,移除了标点符号和修剪节点;从而产生了将要测试的八(23)个模型。
Figure BDA0003827460020000293
Figure BDA0003827460020000301
Figure BDA0003827460020000311
用于创建模型并实施模型的技术
图7是简化流程图700,图示了根据某些实施例的用于监测、分析、可视化并提高机器人系统的性能的处理的示例。图7所描绘的处理可以通过以下各项执行:机器人构建器平台、集群计算框架和集成系统,如关于图1至图6所描述的数字助理构建器平台、集群计算框架和集成系统。图7所描绘的处理可以在由相应系统的一个或多个处理单元(例如,处理器、核心)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图7所呈现的且下文所描述的处理旨在是说明性的而非限制性的。尽管图7描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。
在步骤705处,使用基于DAG的框架(例如,集群计算框架)从任务的流水线生成一个或多个模型并且训练待由聊天机器人实施的所述一个或多个模型。例如,可以在流水线内实施多个自然语言处理任务以生成用于从话语预测意图的模型。在一些实施例中,所述一个或多个模型是多个模型,每个模型具有不同的执行方法。在一些实施例中,所述一个或多个模型是具有多种排列的单个模型(变化存在于模型的每个版本之间)。所述一个或多个模型中的至少一个是在运行时间内针对聊天机器人实施的,而其余模型或模型的变化可以在设计时间内在后台运行。在运行时间内运行的一个或多个模型在数据集上执行以生成待由聊天机器人在下游过程中使用的输出(例如,从话语预测用户的意图,使得聊天机器人可以基于预测的用户意图来提供对话或采取行动)。相比之下,在设计时间内在后台运行的一个或多个模型在相同的数据集上执行以生成输出;然而,输出不会被聊天机器人在下游过程中使用,并且相反,输出被用于分析在后台运行的一个或多个模型相比于在运行时间内运行的一个或多个模型的性能。换句话说,在运行时间内运行的一个或多个模型在聊天机器人内执行以用于执行或实现聊天机器人功能,并且在设计时间内在后台运行的一个或多个模型在聊天机器人内或在聊天机器人外部执行以用于分析并比较在运行时间内运行的模型的目的。
流水线是以反映所有任务的关系和依赖性的方式组织的、客户想要在聊天机器人中运行的所有任务的集合。例如,简单的流水线可以由三个任务构成:A、B和C。通过节点和连接,流水线可以提供:在B可以运行之前,A必须成功运行,但是C可以在任何时间运行。流水线可以提供:任务A在5分钟之后超时,并且如果B失败,则可以重新开始B多达5次。流水线也可以指明:工作流程将针对每个话语运行。以此方式,DAG描述了客户想要聊天机器人如何实行工作流程。任务A、B和C可以是与实施聊天机器人的一个或多个功能有关的任何事物。例如,在第一流水线中,A可以从数据库获取数据,B可以通过修整数据来准备数据以供C分析,而C可以使用修整过的数据作为输入来训练或执行算法或机器学习模型。可替代地,在第二流水线中,A可以从数据库获取数据,B可以通过移除标点符号来准备数据以供C分析,而C可以使用已移除标点符号的数据作为输入来训练或执行算法或机器学习模型。可以通过分析系统来比较第一流水线和第二流水线的结果以确定用于处理数据的最佳方法。重要的是,DAG不关注其构成任务做什么;DAG的工作是确保任务所做的任何事情都在正确的时间或以正确的顺序或通过正确地处理任何出乎意料的问题发生。
在一些实施例中,集成计算系统的基于DAG的框架用于生成第一模型和第二模型。在一些实例中,生成包括在由聊天机器人部署并实施之前,在数据集上训练第一模型和第二模型。在某些实例中,基于针对聊天机器人(例如,技能机器人)配置的意图和与意图相关联的示例话语(统称为训练数据)来训练第一模型和第二模型,使得使用第一模型和/或第二模型的聊天机器人可以将用户输入解析成其配置的意图中的一个意图。第一模型是用于执行与聊天机器人相关联的一个或多个操作的第一组任务的第一流水线。所述一个或多个操作是在第一组节点上按顺序执行的,并且每个节点自动地识别来自先前节点的输出作为输入并且识别当前节点的输出作为用于下一个节点的输入。序列内的每个节点将新字段添加到数据表,所述数据表在工作流程行进通过第一流水线时从一个节点被移动到另一个节点。第二模型是用于执行与同一聊天机器人相关联的一个或多个操作的第二组任务的第二流水线。所述一个或多个操作是在第二组节点上按顺序执行的,并且每个节点自动地识别来自先前节点的输出作为输入并且识别当前节点的输出作为用于下一个节点的输入。序列内的每个节点将新字段添加到数据表,所述数据表在工作流程行进通过第二流水线时从一个节点被移动至另一个节点。
第一组任务与第二组任务不同。不同之处可以是至少一个任务的添加或减少、至少一个任务的替换或处理至少一个任务的顺序。例如,第一组任务可以包括数据提取、数据的修整、标点符号的移除、词语切分、特征提取、模型训练、以及交叉验证。第二组任务可以包括数据提取、标点符号的移除、词语切分、特征提取、模型训练、以及交叉验证。可替代地,第二组任务可以包括数据提取、数据的修整、标点符号的移除、词语切分、特征提取、第一模型训练、第二模型训练、以及交叉验证。可替代地,第二组任务可以包括数据提取、数据的修整、标点符号的移除、词义消歧、特征提取、模型训练、以及交叉验证。可替代地,第二组任务可以包括数据提取、数据的修整、标点符号的移除、词语切分、特征提取、模型训练、以及交叉验证。如应理解的,第一组任务是在运行时间内针对聊天机器人实施的,而第二组任务可以在设计时间内在后台运行。在运行时间内运行的第一组任务在数据集上执行以生成待由聊天机器人在下游过程中使用的输出(例如,从话语预测用户的意图,使得聊天机器人可以基于预测的用户意图来提供建议或采取行动)。相比之下,在设计时间内在后台运行的第二组任务在相同的数据集上执行以生成输出;然而,输出不被聊天机器人在下游过程中使用,并且相反,输出被用于分析在后台运行的第二组任务相比于在运行时间内运行的第一组任务的性能,这就是第一组任务与第二组任务不同的原因。在步骤710处,通过集成计算系统的基于有向无环图的框架在运行时间内执行用于聊天机器人的第一模型,并且通过集成计算系统的基于有向无环图的框架在设计时间内执行用于聊天机器人的第二模型。执行第一模型和第二模型可以包括从一个或多个通道获取内容数据(例如,如关于图2所描述的,通过通道286或287在连接器215处获取用户内容数据)或从数据库获取内容数据(例如,如关于图2所描述的,从数据库230在机器人引擎220处获取如会话日志的内容数据)、以及使用第一模型和第二模型(例如,如关于图2所描述的,在机器人引擎220中作为意图建模器228运行的模型)解析意图。执行进一步包括响应于解析意图而生成事件(例如,如关于图2所描述的机器人事件290)。事件可以是基于集成计算系统中包括的请求收集用于与一组话语相关联的意图分类的一个或多个属性的一个或多个指令而生成的。在第一模型的实例中,执行进一步包括聊天机器人生成对话(例如,使用如关于图2所描述的对话引擎226)、解析实体(例如,使用如关于图2所描述的实体解析器224)和/或响应于解析意图而执行操作或行动(例如,发起对披萨的订购)。
在步骤715处,集成计算系统的事件收集器(例如,如关于图2所描述的事件收集器250)被配置为在聊天机器人运行第一模型和第二模型时捕获用于与一组话语相关联的意图分类的一个或多个属性。属性是可以实现度量的生成以测量模型在从所述一组话语对意图进行预测或分类方面的性能的任何一条信息。例如,属性可以包括:所述一组话语、最终意图分类结果(例如,识别出的意图)、当前被一个或多个模型用于预测或分类的参数(例如,权重和偏差)、当前被一个或多个模型用于预测或分类的超参数、一个或多个模型的大小、被一个或多个模型分配到每个意图以用于预测或分类的概率百分比、平均查询时间、模型处理时间、或分类时间、以及与一组意图中被识别为用于最终意图分类的可能性的每个相应的意图相关联的置信度得分。
如应理解的,由事件收集器收集的事件和属性不限于与一组话语相关联的意图分类,所述意图分类是作为说明性示例提供的。由机器人系统生成的事件可以包括例如会话事件、对话状态执行事件、意图解析事件、实体解析事件、以及由自定义部件生成的事件。事件收集器可以被配置为收集与如意图分类的各种事件相关联的期望事件或期望属性。在聊天机器人使用第一模型和第二模型解析意图并且生成对应的事件时,并且在聊天机器人使用第一模型进行与最终用户的会话并且生成对应的事件时,集成计算系统可以收集事件和另外的信息。例如,事件收集器可以收集事件和另外的信息并且将收集到的信息发送到队列。在一些实施例中,事件收集器可以是可配置的并且可以被编程为按照期望收集上文所描述的不同事件和/或事件属性。例如,事件收集器可以被配置为捕获对话状态属性、意图解析属性、实体解析属性以及错误属性和超时属性。在一些实施例中,收集器还可以被配置为收集关于由除集成计算系统以外的系统生成的事件的信息。
在步骤720处,集成计算系统的分析引擎使用一个或多个度量基于对用于意图分类的所述一个或多个属性的分析来评估第一模型和第二模型的性能。例如,事件收集器可以收集事件(包括事件的属性)和另外的信息并且将收集到的信息发送到评估队列。丰富引擎(例如,如关于图2所描述的丰富引擎255)可以对排队事件和其他信息进行验证和丰富并且将收集到的事件、属性、丰富数据和另外的信息写入数据库。例如,基于收集到的IP地址,丰富引擎可以确定与IP地址相关联的最终用户的位置并且将丰富数据附加到事件或属性。然后,分析引擎可以分析收集到的事件、属性、丰富数据和另外的信息并且计算如可解释性、有用性、准确度、对数损失、混淆矩阵、曲线下面积、f得分、平均绝对误差、均方误差等指示模型有用性和/或性能的一个或多个度量。度量可以基于上文所描述的一个或多个事件或属性来计算。度量可以按每日、每周、月或自定义范围计算。基础度量的示例包括(1)独特的、总的、新的、活跃的、不活跃的或返回的最终用户的数量;(2)总会谈/会话;(3)平均、最大、中值或最小会话时长;(4)最终用户的两个会话之间的平均时间;(5)情绪(积极的、消极的或中性的);(6)最终用户的数量、会话的数量或独特的最终用户的数量;(7)平均、最大、中值或最小消息计数等。每个度量可以通过以下各项进行过滤:通道(例如,Facebook或webhook)、地理(例如,国家、州、市或邮政编码)、语言(例如,英语或西班牙语)、设备及其类型(例如,iPhone、Samsung、Motorola、LG、HP或Dell)、OS及其版本(例如,Windows、iOS、Android、Mac或Linux)、浏览器及其版本(例如,Firefox、Safari、Internet Explorer或Chrome)、应用程序名称及其版本(例如,应用程序内的集成聊天)、代理类型(例如,机器人系统或用户设备)等。在一些示例中,来自自定义部件的自定义事件可以具有由机器人开发者开发的自定义报告。
机器学习模型的数据的可解释性是那些方面中的在数据流水线的实际‘有用性’中至关重要的一个方面,并且可解释性确保模型与试图由聊天机器人解决的问题保持一致。在一些实例中,用于可解释性和有用性分析的度量可以包括:(i)如word2vec向量的可以包含性别偏差的偏差或具有太小的语料库宽度的训练数据集的大小;(ii)如仅粗略地表示问题的训练数据和无法捕获现实生活任务的完全复杂性的模型的上下文;(iii)在训练之后获取的权重是特征重要性的直接代理并且提供了对模型内部的非常具体的解释,例如,当构建文本分类器时,可以绘制最重要特征并且将其用于验证模型是否对噪声过度拟合;(iv)按倒推法计算的目标概念的梯度可以用于产生突出显示输入中用于预测目标概念的重要区域的地图;以及(v)如一组话语的特定输入,所述特定输入可以被修改并且可以监测对预测的影响。
准确度、对数损失、混淆矩阵、曲线下面积、f得分、平均绝对误差、均方误差是在数据流水线的实际‘性能’中至关重要的那些度量,并且所述各项确保模型准确且高效地解决问题。分类准确度通常是在评估模型的性能时使用的度量。分类准确度是正确预测的数量与输入样本的总数之比。对数损失(Logarithmic Loss/Log Loss)通过惩罚错误分类来起作用。对数损失对于多类分类起到很好的作用。当与对数损失一起起作用时,分类器必须将概率分配到用于所有样本的每个类。通常,最小化对数损失为分类器提供了更高的准确度。混淆矩阵提供矩阵作为输出并且描述模型的完整性能。混淆矩阵形成其他类型的度量的基础。曲线下面积是最广泛使用的用于评估的度量中的一种。曲线下面积可以用于二元分类问题。分类器的曲线下面积等于分类器将会使随机选择的正示例排序高于随机选择的反示例的概率。F得分或F1得分用于测量测试的准确度。F得分是介于精确率与召回率之间的调和平均数。F得分的范围是[0,1],并且F得分提供了关于分类器多么精确(分类器正确分类了多少实例)以及分类器多么鲁棒(分类器不会遗漏大量实例)的信息。平均绝对误差是原始值与预测值之差的平均值。平均绝对误差提供了对预测与实际输出之间的距离的量度。均方误差类似于平均绝对误差,其中仅有的不同在于均方误差取原始值与预测值之差的平方的平均值。均方误差的优势在于更容易计算梯度,而平均绝对误差则需要复杂的线性编程工具来计算梯度。
在步骤725处,分析系统的分析引擎基于分析确定第二模型的性能与第一模型的性能相比是否有所提高。在一些实例中,分析系统的分析引擎基于分析确定第二模型的性能与第一模型的性能相比有所提高。在其他实例中,分析系统的分析引擎基于分析确定第二模型的性能与第一模型的性能相比没有提高。在730处,当第二模型的性能相对于第一模型有所提高时,集成计算系统的基于有向无环图的框架在运行时间内执行用于聊天机器人的第二模型。换句话说,集成计算系统的基于有向无环图的框架在运行时间内使用第二模型而不是第一模型来启动,因为第二模型的性能优于第一模型。相比之下,当第二模型的性能相对于第一模型没有提高时,集成计算系统的基于有向无环图的框架在运行时间内执行用于聊天机器人的第一模型。换句话说,集成计算系统的基于有向无环图的框架在运行时间内继续使用第一模型而不是第二模型,因为第一模型的性能优于第二模型。尽管关于流程图700的过程讨论了仅两个模型,但是应当理解,可以根据本文所提供的描述来实施并评估其他模型(例如,一个模型可以在运行时间内运行,而两个或更多个模型的总体在后台运行以用于评估模型的性能)。
如本文所描述的,与机器人系统和基于DAG的框架集成的分析系统可以在使用模型期间收集度量并且可以用于生成用于每个模型的得分,使得可以作出关于在运行时间内使用哪个模型的判定(例如,用在设计时间内操作的更加鲁棒或准确的模型来代替原始的运行时间模型)。例如,度量可以提供用于作出关于任务的哪个流水线给出了最高效的模型的判定的信息(例如,考虑准确度、每秒可以处理多少查询、复杂性等)。在一些实施例中,客户可以使用训练工具在与模型结构的总体编辑/改变相比更细的粒度水平上编辑/改变模型的向量和特征。在一些实施例中,分析系统和训练工具的一个或多个图形用户界面(GUI)可以显示与基于DAG的框架有关的信息,如可用的任务或行动、训练语料库、预先配置的模型或任务的流水线以及包括收集到的度量在内的分析。在一些实施例中,GUI可以被客户用于使用基于DAG的框架构建或修改一个或多个训练模型。
在一些实施例中,报告可以基于对属性的分析生成,并且报告可以包括指示来自其意图无法被识别(有时称为未解析出的意图)的一个或多个最终用户的一个或多个话语或消息的信息。例如,机器人系统可以计算来自最终用户的消息与意图相关联的可能性。如果可能性小于阈值,则消息可能与意图没有关联。如果消息与任何意图都没有关联,则机器人系统可能无法继续会话。相反,机器人系统可能不得不询问一个或多个另外的问题来识别意图。通过呈现关于其中意图无法被识别的消息的信息,分析和/或报告可以使用户或spark式框架能够将机器人系统的模型重新配置为在接收到与消息类似的新消息时正确地识别意图。例如,报告可以基于可能性呈现一个或多个潜在意图,使得用户可以从所述一个或多个潜在意图中选择意图,从而使得消息可以添加到用于训练分类模型的训练数据集以用于从消息中识别意图。
在一些实施例中,机器人分析系统可以识别与机器人系统的会话的哪些部分起到很好的作用以及哪些部分不起作用。机器人分析系统可以使用户或spark式框架能够深入到会话历史中,跟踪放弃的/完成的意图和会话,基于深度、时间或两者识别完成的路径所采用的最受欢迎/最不受欢迎的路径,或者用副本识别所有放弃的会话的历史以对放弃会话的原因(例如,遍历的状态的数量、错误条件等)或某个流水线失效的原因进行故障排除。在一些实施例中,可以对由机器人分析系统生成的结果进行过滤。过滤可以基于通道、长度、意图(放弃的/完成的)等。
说明性系统
图8描绘了分布式系统800的简化图。在图示的示例中,分布式系统800包括通过一个或多个通信网络810耦接到服务器812的一个或多个客户端计算设备802、804、806和808。客户端计算设备802、804、806和808可以被配置成执行一个或多个应用程序。
在各种示例中,服务器812可以被适配成运行实现本公开所描述的一个或多个实施例的一个或多个服务或软件应用程序。在某些示例中,服务器812还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些示例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备802、804、806和/或808的用户。操作客户端计算设备802、804、806和/或808的用户进而可以利用一个或多个客户端应用程序来与服务器812交互以利用这些部件所提供的服务。
在图8所描绘的配置中,服务器812可以包括实施由服务器812执行的功能的一个或多个部件818、820和822。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式系统800不同的各种不同的系统配置是可能的。因此,图8所示出的示例是用于实施示例系统的分布式系统的一个示例并且不旨在是限制性的。
用户可以使用客户端计算设备802、804、806和/或808来执行一个或多个应用程序、模型或聊天机器人,所述一个或多个应用程序、模型或聊天机器人可以生成然后可以根据本公开的传授内容实施或服务的一个或多个事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的界面。客户端设备还可以通过此界面向用户输出信息。尽管图8描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,Microsoft
Figure BDA0003827460020000381
Apple
Figure BDA0003827460020000382
或类UNIX操作系统、Linux或类Linux操作系统(如Google ChromeTM OS)),包括各种移动操作系统(例如,Microsoft Windows
Figure BDA0003827460020000383
Windows
Figure BDA0003827460020000384
AndroidTM
Figure BDA0003827460020000385
Palm
Figure BDA0003827460020000386
)。便携式手持设备可以包括蜂窝电话、智能电话(例如,
Figure BDA0003827460020000387
)、平板计算机(例如,
Figure BDA0003827460020000388
)、个人数字助理(PDA)等。可穿戴设备可以包括Google
Figure BDA0003827460020000389
头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有
Figure BDA00038274600200003810
姿势输入设备的Microsoft
Figure BDA00038274600200003811
游戏控制台、Sony
Figure BDA00038274600200003812
系统、由
Figure BDA00038274600200003813
提供的各种游戏系统、以及其他)等。客户端设备可以能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序)并可以使用各种通信协议。
一个或多个网络810可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、
Figure BDA00038274600200003814
等。仅通过示例的方式,一个或多个网络810可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)1002.11协议组、
Figure BDA0003827460020000396
和/或任何其他无线协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器812可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、
Figure BDA0003827460020000397
服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合。服务器812可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构(如逻辑存储设备的可以被虚拟化成维护服务器的虚拟存储设备的一个或多个灵活池)。在各种示例中,服务器812可以被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用程序。
服务器812中的计算系统可以运行一个或多个操作系统,包括上文所讨论的那些操作系统中的任何一个以及任何可商购的服务器操作系统。服务器812还可以运行各种另外的服务器应用程序和/或中间层应用程序中的任何一个,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、
Figure BDA0003827460020000391
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从
Figure BDA0003827460020000392
Figure BDA0003827460020000393
(国际商业机器公司)等商购获得的那些数据库服务器。
在一些实施方式中,服务器812可以包括一个或多个应用程序以分析并合并从客户端计算设备802、804、806和808的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于
Figure BDA0003827460020000394
馈送、
Figure BDA0003827460020000395
更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等有关的实时事件。服务器812还可以包括一个或多个应用程序以通过客户端计算设备802、804、806和808的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统800还可以包括一个或多个数据储存库814、816。在某些示例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库814、816中的一个或多个可以用于存储信息(如与聊天机器人性能或生成的模型有关的信息)以供服务器812在执行根据各种实施例的各种功能时使用的聊天机器人使用。数据储存库814、816可以驻留在各个位置中。例如,服务器812所使用的数据储存库可以对于服务器812是本地的或者可以远离服务器812并通过基于网络的连接或专用连接与服务器812通信。数据储存库814、816可以是不同类型的。在某些示例中,服务器812所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle
Figure BDA0003827460020000401
和其他供应商提供的数据库。这些数据库中的一个或多个可以被适配成响应于SQL格式的命令而实现数据到数据库以及数据从数据库的存储、更新和取得。
在某些示例中,数据储存库814、816中的一个或多个还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型的,如例如关键值存储储存库、对象存储储存库、或由文件系统支持的通用存储储存库。
在某些示例中,本公开所描述的功能可以通过云环境作为服务提供。图9是根据某些示例的各种服务在其中可以作为云服务提供的基于云的系统环境的简化框图。在图9所描绘的示例中,云基础设施系统902可以提供可以由使用一个或多个客户端计算设备904、906和908的用户所请求的一个或多个云服务。云基础设施系统902可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括上文针对服务器812所描述的那些计算机和/或服务器。云基础设施系统902中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
一个或多个网络910可以促进客户端904、906和908与云基础设施系统902之间的数据通信和交换。一个或多个网络910可以包括一个或多个网络。网络可以是相同或不同类型的。一个或多个网络910可以支持一种或多种通信协议(包括有线和/或无线协议)以用于促进通信。
图9所描绘的示例仅是云基础设施系统的一个示例并且不旨在是限制性的。应了解,在其他一些示例中,云基础设施系统902可以具有比图9所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或设置。例如,尽管图9描绘了三个客户端计算设备,但是在替代性示例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统902)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的室内服务器和系统不同。云服务提供商的系统是由云服务提供商管理的。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以按需通过因特网订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的方便的、可缩放的访问。数个供应商提供云服务。例如,数个云服务是由加利福尼亚州红木海岸(RedwoodShores,California)的Oracle
Figure BDA0003827460020000411
提供的,如中间件服务、数据库服务、Java云服务、以及其他服务。
在某些示例中,云基础设施系统902可以使用不同模型,如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下等,提供一个或多个云服务。云基础设施系统902可以包括实现对各种云服务的提供的一套应用程序、中间件、数据库和其他资源。
SaaS模型使应用程序或软件能够通过如因特网等通信网络作为服务输送给客户,而客户不必购买用于底层应用程序的硬件或软件。例如,SaaS模型可以用于为客户提供对由云基础设施系统902托管的按需应用程序的访问。由Oracle
Figure BDA0003827460020000412
提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序、以及其他等的各种服务。
IaaS模型通常用于将基础设施资源(例如,服务器,存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。各种IaaS是由Oracle
Figure BDA0003827460020000413
提供的。
PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle
Figure BDA0003827460020000414
提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务、以及其他服务。
云服务通常是以按需自助服务基础、基于订阅、可弹性缩放、可靠、高度可用且安全的方式提供的。例如,客户可以通过订阅订单来订购由云基础设施系统902提供的一个或多个服务。然后,云基础设施系统902执行处理以提供客户的订阅订单中请求的服务。例如,用户可以使用话语来请求云基础设施系统采取如上文所描述的某个行动(例如,意图)和/或为如本文所描述的聊天机器人系统提供服务。云基础设施系统902可以被配置成提供一个或甚至多个云服务。
云基础设施系统902可以通过不同的部署模型提供云服务。在公共云模型中,云基础设施系统902可以由第三方云服务提供商拥有并且云服务被提供给任何一般的公众客户,其中,客户可以是个人或企业。在某些其他示例中,在私有云模型下,云基础设施系统902可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是企业的各个部门(如人力资源部门、工资管理部门等)或甚至是企业内的个人。在某些其他示例中,在社区云模型下,云基础设施系统902和所提供的服务可以由有关社区中的几个组织共享。也可以使用如上文所提到的模型的混合等各种其他模型。
客户端计算设备904、906和908可以是不同类型的(如图8所描绘的客户端计算设备802、804、806和808)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施系统902交互,如请求由云基础设施系统902提供的服务。例如,用户可以使用客户端设备从如本公开所描述的聊天机器人请求信息或行动。
在一些示例中,由用于提供服务的云基础设施系统902执行的处理可以涉及模型训练和部署。此分析可以涉及使用、分析并操纵数据集来训练并部署一个或多个模型。此分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据来执行模拟等。例如,大数据分析可以由云基础设施系统902执行以用于针对聊天机器人系统生成并训练一个或多个模型。用于此分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型构成的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图9中的示例所描绘的,云基础设施系统902可以包括被用于促进提供由云基础设施系统902提供的各种云服务的基础设施资源930。基础设施资源930可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于为从应用程序请求的存储提供服务的存储虚拟机可以是云基础设施系统902的一部分。在其他示例中,存储虚拟机可以是不同系统的一部分。
在某些示例中,为了促进这些资源的高效提供以支持由云基础设施系统902为不同客户提供的各种云服务,资源可以绑定到资源组或资源模块(也称为“群集(pod)”)中。每个资源模块或群集可以包括一种或多种类型的资源的预先集成且优化的组合。在某些示例中,可以针对不同类型的云服务预先供给不同的群集。例如,可以针对数据库服务供给第一组群集、可以针对Java服务供给第二组集(所述第二组集可以包括与第一组群集中的群集不同的资源组合)等。对于一些服务,为了供给服务而分配的资源可以在服务之间共享。
云基础设施系统902本身可以在内部使用由云基础设施系统902的不同部件共享并且促进云基础设施系统902供给服务的服务932。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施系统902可以包括多个子系统。这些子系统可以在软件、或硬件、或其组合中实施。如图9所描绘的,子系统可以包括使云基础设施系统902的用户或客户能够与云基础设施系统902交互的用户界面子系统912。用户界面子系统912可以包括各种不同的界面,如web界面914、在线商店界面916(其中,广告并且客户可购买由云基础设施系统902提供的云服务)和其他界面918。例如,客户可以使用客户端设备通过使用界面914、916和918中的一个或多个请求(服务请求934)由云基础设施系统902提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统902提供的云服务并且针对客户希望订阅的由云基础设施系统902提供的一个或多个服务下订阅订单。服务请求可以包括识别客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施系统902提供的服务下订阅订单。作为订单的一部分,客户可以提供识别服务将被提供至的的聊天机器人系统的信息并且可选地为聊天机器人系统提供一个或多个凭证。
在某些示例(如图9所描述的示例)中,云基础设施系统902可以包括被配置成处理新订单的订单管理子系统(OMS)920。作为此处理的一部分,OMS 920可以被配置成:为客户创建账户(如果尚未完成的话);从客户接收要用于向客户开具账单以用于向客户提供所请求服务的账单和/或会计信息;验证客户信息;在验证之后,预订客户的订单;以及策划各种工作流程来准备订单以进行供给。
一旦被适当地验证,那么,OMS 920就可以调用被配置成为订单供给资源(包括处理、存储器和网络资源)的订单供给子系统(OPS)924。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS 924可以被配置成确定正在请求的特定云服务并且识别可能已经针对所述特定云服务预先配置的群集的数量。为订单分配的群集的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群集的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定请求客户定制分配的群集以用于提供所请求服务。
在某些示例中,如上文所描述的设置阶段处理可以作为供给过程的一部分由云基础设施系统902来执行。云基础设施系统902可以生成应用程序ID并从云基础设施系统902自身所提供的存储虚拟机中或从除云基础设施系统902以外的其他系统所提供的存储虚拟机种为应用程序选择存储虚拟机。
云基础设施系统902可以向请求客户发送回应或通知944以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些示例中,对于请求服务的客户,回应可以包括由云基础设施系统902生成的聊天机器人系统ID和识别由云基础设施系统902针对对应于聊天机器人系统ID为聊天机器人系统所选择的聊天机器人系统的信息。
云基础设施系统902可以向多个客户提供服务。对于每个客户,云基础设施系统902负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单有关的客户数据并且向客户提供所请求服务。云基础设施系统902还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量、以及系统开机时间量和系统停机时间量等的统计数据。此使用情况信息可以用于向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施系统902可以并行地向多个客户提供服务。云基础设施系统902可以存储这些客户的信息,可能包括专有信息。在某些示例中,云基础设施系统902包括被配置成管理客户信息并提供对所管理信息的分离使得与一个客户有关的信息不能由另一个客户访问的身份管理子系统(IMS)928。IMS 928可以被配置成提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及有关功能的服务等。
图10图示了计算机系统1000的示例。在一些示例中,计算机系统1000可以用于实施分布式环境内的任何数字助理或聊天机器人系统以及上文所描述的各种服务器和计算机系统。如图10所示,计算机系统1000包括各种子系统,包括通过总线子系统1002与多个其他子系统通信的处理子系统1004。这些其他子系统可以包括处理加速单元1006、I/O子系统1008、存储子系统1018和通信子系统1024。存储子系统1018可以包括非暂态计算机可读存储介质,包括存储介质1022和系统存储器1010。
总线子系统1002提供用于使计算机系统1000的各个部件和子系统按预期彼此通信的机构。虽然总线子系统1002被示意性地示出为单个总线,但是总线子系统的替代性示例可以利用多个总线。总线子系统1002可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外围部件互连(PCI)总线(所述PCI总线可以实施为被制造成IEEE P1386.1标准的Mezzanine总线)等。
处理子系统1004控制计算机系统1000的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机系统1000的处理资源可以被组织成一个或多个处理单元1032、1034等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核心、核心和处理器的组合、或核心和处理器的其他组合。在一些示例中,处理子系统1004可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些示例中,处理子系统1004的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些示例中,处理子系统1004中的处理单元可以执行存储在系统存储器1010内或计算机可读存储介质1022上的指令。在各种示例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器1010中和/或驻留在潜在地包括在一个或多个存储设备上的计算机可读存储介质1022上。通过适合的编程,处理子系统1004可以提供上文所描述的各种功能。在计算机系统1000执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些示例中,可以可选地提供处理加速单元1006以用于执行定制处理或用于卸载处理子系统1004所执行的处理中的一些,从而加速计算机系统1000所执行的总体处理。
I/O子系统1008可以包括用于向计算机系统1000输入信息和/或用于从或通过计算机系统1000输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统1000输入信息的所有可能类型的设备和机构。用户界面输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有声音命令识别系统的音频输入设备、麦克风、以及其他类型的输入设备。用户界面输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的Microsoft
Figure BDA0003827460020000451
运动传感器、Microsoft
Figure BDA0003827460020000452
360游戏控制器、提供用于接收使用姿势和口述命令的输入的界面的设备。用户界面输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势变换为到输入设备(如Google
Figure BDA0003827460020000453
)的输入的Google
Figure BDA0003827460020000454
眨眼检测器。另外,用户界面输入设备可以包括使用户能够通过声音命令与声音识别系统(例如,
Figure BDA0003827460020000455
导航器)交互的声音识别感测设备。
用户界面输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户界面输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户界面输入设备还可以包括例如音频输入设备,如MIDI键盘、数字乐器等。
通常,使用术语输出设备旨在包括用于从计算机系统1000向用户或其他计算机输出信息的所有可能类型的设备和机构。用户界面输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器等。显示子系统可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、声音输出设备和调制解调器。
存储子系统1018提供用于存储计算机系统1000所使用的信息和数据的储存库或数据储存库。存储子系统1018提供用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统1018可以存储当由处理子系统1004执行时提供上文所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统1004的一个或多个处理单元来执行。存储子系统1018还可以根据本公开的教导提供认证。
存储子系统1018可以包括一个或多个非暂态存储器设备,包括易失性存储器设备和非易失性存储器设备。如图10所示,存储子系统1018包括系统存储器1010和计算机可读存储介质1022。系统存储器1010可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含如在启动期间帮助在计算机系统1000内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含目前由处理子系统1004操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器1010可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图10所描绘的,系统存储器1010可以加载正在执行的应用程序程序1012(所述应用程序程序可以包括如web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等各种应用程序)、程序数据1014和操作系统1016。通过示例的方式,操作系统1016可以包括各种版本的Microsoft
Figure BDA0003827460020000471
Apple
Figure BDA0003827460020000472
和/或Linux操作系统、各种可商购获得的
Figure BDA0003827460020000473
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0003827460020000474
OS等)和/或如iOS、
Figure BDA00038274600200004711
Phone、
Figure BDA00038274600200004710
OS、
Figure BDA0003827460020000476
OS、
Figure BDA0003827460020000477
OS操作系统等移动操作系统、以及其他操作系统。
计算机可读存储介质1022可以存储提供一些示例的功能的编程和数据构造。计算机可读介质1022可以为计算机系统1000提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统1004执行时提供上文所描述的功能的软件(程序、代码模块、指令)可以存储在存储子系统1018中。通过示例的方式,计算机可读存储介质1022可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、Blu-
Figure BDA0003827460020000478
盘、或其他光学介质)等非易失性存储器。计算机可读存储介质1022可以包括但不限于
Figure BDA0003827460020000479
驱动器、闪速存储器卡、通用串行总线(USB)闪速存储驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质1022还可以包括如基于闪速存储器的固态驱动器(SSD)、企业级闪速存储驱动器、固态ROM等基于非易失性存储器的SSD;如固态RAM、动态RAM、静态RAM等基于易失性存储器的SSD;基于DRAM的SSD;磁阻RAM(MRAM)SSD;以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些示例中,存储子系统1018还可以包括可以进一步连接到计算机可读存储介质1022的计算机可读存储介质读取器1020。读取器1020可以从如盘、闪速存储驱动器等存储器设备接收数据并且被配置成从所述存储器设备读取数据。
在某些示例中,计算机系统1000可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统1000可以提供对执行一个或多个虚拟机的支持。在某些示例中,计算机系统1000可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核心)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统可以与由计算机系统1000所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统1000同时运行。
通信子系统1024提供到其他计算机系统和网络的接口。通信子系统1024用作用于从其他系统接收数据并从计算机系统1000向其他系统发射数据的接口。例如,通信子系统1024可以使计算机系统1000能够通过因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,当计算机系统1000用于实施图1所描绘的机器人系统120时,通信子系统可以用于与针对应用程序选择的聊天机器人系统通信。
通信子系统1024可以支持有线通信协议和/或无线通信协议两者。在某些示例中,通信子系统1024可以包括用于访问无线声音和/或数据网络(例如,使用蜂窝电话技术(如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术)、WiFi(IEEE 802.XX家庭标准、或其他移动通信技术、或其任何组合)的射频(RF)收发器部件、全球定位系统(GPS)接收器部件和/或其他部件。在一些示例中,除了无线接口之外或替代无线接口,通信子系统1024可以提供有线网络连接性(例如,以太网)。
通信子系统1024可以接收并发射各种形式的数据。在一些示例中,除了其他形式之外,通信子系统1024还可以接收结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等形式的输入通信。例如,通信子系统1024可以被配置成从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送1026,如
Figure BDA0003827460020000481
馈送、
Figure BDA0003827460020000482
更新、web馈送(如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在某些示例中,通信子系统1024可以被配置成接收可以没有显式结束的本质上连续的或无界的连续数据流形式的数据,所述连续数据流可以包括实时事件事件流1028和/或事件更新1030。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络检测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
通信子系统1024还可以被配置成从计算机系统1000向其他计算机系统或网络传达数据。数据可以以如结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等各种不同形式传达到可以与耦接到计算机系统1000的一个或多个流数据源计算机通信的一个或多个数据库。
计算机系统1000可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0003827460020000483
蜂窝电话、
Figure BDA0003827460020000484
计算平板计算机、PDA)、可穿戴设备(例如,Google
Figure BDA0003827460020000485
头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的性质不断变化,对图10所描绘的计算机系统1000的描述旨在仅作为具体示例。具有比图10所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的教导,应了解,有其他方式和/或方法来实施各种示例。
虽然已经描述了具体示例,但是各种修改、变更、替代性构造和等同物是可能的。示例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些示例,但是应当对于本领域技术人员来说显而易见的是,这并不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外步骤。可以单独地或联合地使用上文所描述的示例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应当认识到,硬件和软件的其他组合也是可能的。某些示例可以仅在硬件中或仅在软件中或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、系统、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过设计用于执行操作的电子电路、通过对用于执行操作(如通过执行计算机指令或代码)的可编程电子电路(如微处理器)或被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核心进行编程或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对示例的透彻理解。然而,可以在没有这些具体细节的情况下实践示例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊示例。此描述仅提供了示例并且不旨在限制其他示例的范围、适用性或配置。而是,先前对示例的描述将为本领域技术人员提供用于实施各种示例的使能描述。可以对元件的功能和布置进行各种改变。
因此,应当从说明性而非限制性意义上看待说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体示例,但是这些示例不旨在是限制性的。各种修改和等同物在以下权利要求的范围内。
在前述说明书中,参考本公开的具体示例描述了本公开的各方面,但是本领域技术人员将认识到,本公开并不限于此。可以单独地或联合地使用上文所描述的公开的各种特征和方面。进一步地,在不脱离说明书的更广泛的精神和范围的情况下,可以在除了本文所描述的那些环境和应用程序外的任何数量的环境和应用程序中利用示例。因此,说明书和附图应被视为说明性的而非限制性的。
在前述描述中,出于说明的目的,方法是按特定顺序描述的。应当了解,在替代性示例中,可以按与所描述的顺序不同的顺序执行方法。还应当了解,上文所描述的方法可以由硬件部件执行或者可以体现在机器可执行指令的序列中,所述指令可以用于使机器(如用所述指令编程的通用或专用处理器或逻辑电路)执行所述方法。这些机器可执行指令可以存储在如CD-ROM或其他类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的机器可读介质等一个或多个机器可读介质上。可替代地,方法可以由硬件和软件的组合来执行。
在将部件描述为被配置成执行某些操作的情况下,这种配置可以例如通过设计用于执行操作的电子电路或其他硬件、通过对用于执行操作的可编程电子电路(例如,微处理器或其他适合的电子电路)进行编程或其任何组合来完成。
虽然本文已经详细描述了本申请的说明性示例,但是应当理解,可以以其他方式不同地体现并采用本发明概念,并且所附权利要求旨在被解释为包括这种变化,受现有技术限制的情况除外。

Claims (20)

1.一种方法,包括:
通过集成计算系统的基于有向无环图的框架生成第一模型和第二模型,其中,所述第一模型是用于执行与聊天机器人相关联的一个或多个操作的第一组任务的流水线并且所述第二模型是用于执行与所述聊天机器人相关联的所述一个或多个操作的第二组任务的流水线;
通过所述集成计算系统的所述基于有向无环图的框架在运行时间内执行用于所述聊天机器人的所述第一模型并且在设计时间内执行用于所述聊天机器人的所述第二模型;
在所述聊天机器人运行所述第一模型和所述第二模型时通过所述集成计算系统的事件收集器收集用于与一组话语相关联的意图分类的一个或多个属性;
通过所述集成计算系统的分析引擎使用一个或多个度量基于对用于所述意图分类的所述一个或多个属性的分析来评估所述第一模型的性能和所述第二模型的性能;
通过所述分析引擎基于所述评估确定所述第二模型的性能与所述第一模型的性能相比没有提高;以及
通过所述集成计算系统的所述基于有向无环图的框架在运行时间内继续执行用于所述聊天机器人的所述第一模型。
2.如权利要求1所述的方法,进一步包括:以图形方式在GUI上显示所述第一模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务中的所述第一组任务。
3.如权利要求1所述的方法,进一步包括:以图形方式在GUI上显示所述第二模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务中的所述第二组任务。
4.如权利要求1所述的方法,进一步包括:通过一个或多个用户可选项中的用户可选项接收用户输入;以及基于所述用户输入训练所述第一模型和所述第二模型,其中,所述用户输入是用户考虑以触发意图的一组话语。
5.如权利要求1所述的方法,其中,在运行时间内运行的所述第一模型在数据集上执行以生成待由所述聊天机器人在下游过程中使用的输出,其中,所述下游过程包括基于所述意图分类提供对话或采取行动,并且其中,在设计时间内在后台运行的所述第二模型在相同的数据集上执行以生成不同的输出,所述不同的输出不会被所述聊天机器人在所述下游过程中使用。
6.如权利要求1所述的方法,其中,所述第一组任务与所述第二组任务不同,并且不同之处在于至少一个任务的添加或减少、至少一个任务的替换、处理至少一个任务的顺序、或其组合。
7.如权利要求1所述的方法,其中,所述执行所述第一模型和所述第二模型包括从一个或多个通道获取包括所述一组话语的数据集或从数据库获取包括所述一组话语的所述数据集,以及基于所述一组话语使用所述第一模型和所述第二模型解析意图。
8.一种非暂态计算机可读存储器,其存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:
通过集成计算系统的基于有向无环图的框架生成第一模型和第二模型,其中,所述第一模型是用于执行与聊天机器人相关联的一个或多个操作的第一组任务的流水线并且所述第二模型是用于执行与所述聊天机器人相关联的所述一个或多个操作的第二组任务的流水线;
通过所述集成计算系统的所述基于有向无环图的框架在运行时间内执行用于所述聊天机器人的所述第一模型并且在设计时间内执行用于所述聊天机器人的所述第二模型;
在所述聊天机器人运行所述第一模型和所述第二模型时通过所述集成计算系统的事件收集器收集用于与一组话语相关联的意图分类的一个或多个属性;
通过所述集成计算系统的分析引擎使用一个或多个度量基于对用于所述意图分类的所述一个或多个属性的分析来评估所述第一模型的性能和所述第二模型的性能;
通过所述分析引擎基于所述评估确定所述第二模型的性能与所述第一模型的性能相比没有提高;以及通过所述集成计算系统的所述基于有向无环图的框架在运行时间内继续执行用于所述聊天机器人的所述第一模型。
9.如权利要求8所述的非暂态计算机可读存储器,其中,所述处理进一步包括:以图形方式在GUI上显示所述第一模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务中的所述第一组任务。
10.如权利要求8所述的非暂态计算机可读存储器,其中,所述处理进一步包括:以图形方式在GUI上显示所述第二模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务中的所述第二组任务。
11.如权利要求8所述的非暂态计算机可读存储器,其中,所述处理进一步包括:通过一个或多个用户可选项中的用户可选项接收用户输入;以及基于所述用户输入训练所述第一模型和所述第二模型,其中,所述用户输入是用户考虑以触发意图的一组话语。
12.如权利要求8所述的非暂态计算机可读存储器,其中,在运行时间内运行的所述第一模型在数据集上执行以生成待由所述聊天机器人在下游过程中使用的输出,其中,所述下游过程包括基于所述意图分类提供对话或采取行动,并且其中,在设计时间内在后台运行的所述第二模型在相同的数据集上执行以生成不同的输出,所述不同的输出不会被所述聊天机器人在所述下游过程中使用。
13.如权利要求8所述的非暂态计算机可读存储器,其中,所述第一组任务与所述第二组任务不同,并且不同之处在于至少一个任务的添加或减少、至少一个任务的替换、处理至少一个任务的顺序、或其组合。
14.如权利要求8所述的非暂态计算机可读存储器,其中,所述执行所述第一模型和所述第二模型包括从一个或多个通道获取包括所述一组话语的数据集或从数据库获取包括所述一组话语的所述数据集,以及基于所述一组话语使用所述第一模型和所述第二模型解析意图。
15.一种系统,包括:
一个或多个处理器;以及
耦接到所述一个或多个处理器的存储器,所述存储器存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:
通过集成计算系统的基于有向无环图的框架生成第一模型和第二模型,其中,所述第一模型是用于执行与聊天机器人相关联的一个或多个操作的第一组任务的流水线并且所述第二模型是用于执行与所述聊天机器人相关联的所述一个或多个操作的第二组任务的流水线;
通过所述集成计算系统的所述基于有向无环图的框架在运行时间内执行用于所述聊天机器人的所述第一模型并且在设计时间内执行用于所述聊天机器人的所述第二模型;
在所述聊天机器人运行所述第一模型和所述第二模型时通过所述集成计算系统的事件收集器收集用于与一组话语相关联的意图分类的一个或多个属性;
通过所述集成计算系统的分析引擎使用一个或多个度量基于对用于所述意图分类的所述一个或多个属性的分析来评估所述第一模型的性能和所述第二模型的性能;
通过所述分析引擎基于所述评估确定所述第二模型的性能与所述第一模型的性能相比没有提高;以及
通过所述集成计算系统的所述基于有向无环图的框架在运行时间内继续执行用于所述聊天机器人的所述第一模型。
16.如权利要求15所述的系统,其中,所述处理进一步包括:以图形方式在GUI上显示所述第一模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务中的所述第一组任务。
17.如权利要求15所述的系统,其中,所述处理进一步包括:以图形方式在GUI上显示所述第二模型的所述流水线;以及通过所述GUI接收对一个或多个用户可选任务的用户选择;以及基于所述用户选择以图形方式在所述GUI上显示在所述流水线中具有所述一个或多个用户可选任务中的所述第二组任务。
18.如权利要求15所述的系统,其中,所述处理进一步包括:通过一个或多个用户可选项中的用户可选项接收用户输入;以及基于所述用户输入训练所述第一模型和所述第二模型,其中,所述用户输入是用户考虑以触发意图的一组话语。
19.如权利要求15所述的系统,其中,在运行时间内运行的所述第一模型在数据集上执行以生成待由所述聊天机器人在下游过程中使用的输出,其中,所述下游过程包括基于所述意图分类提供对话或采取行动,并且其中,在设计时间内在后台运行的所述第二模型在相同的数据集上执行以生成不同的输出,所述不同的输出不会被所述聊天机器人在所述下游过程中使用。
20.如权利要求15所述的系统,其中,所述第一组任务与所述第二组任务不同,并且不同之处在于至少一个任务的添加或减少、至少一个任务的替换、处理至少一个任务的顺序、或其组合,并且其中,所述执行所述第一模型和所述第二模型包括从一个或多个通道获取包括所述一组话语的数据集或从数据库获取包括所述一组话语的所述数据集,以及基于所述一组话语使用所述第一模型和所述第二模型解析意图。
CN202211065466.0A 2019-04-26 2020-04-23 用于训练模型的基于有向无环图的框架 Pending CN115423070A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962839377P 2019-04-26 2019-04-26
US62/839,377 2019-04-26
US16/823,611 US11206229B2 (en) 2019-04-26 2020-03-19 Directed acyclic graph based framework for training models
US16/823,611 2020-03-19
CN202010326327.3A CN111860753B (zh) 2019-04-26 2020-04-23 用于训练模型的基于有向无环图的框架

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010326327.3A Division CN111860753B (zh) 2019-04-26 2020-04-23 用于训练模型的基于有向无环图的框架

Publications (1)

Publication Number Publication Date
CN115423070A true CN115423070A (zh) 2022-12-02

Family

ID=72916595

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202211065466.0A Pending CN115423070A (zh) 2019-04-26 2020-04-23 用于训练模型的基于有向无环图的框架
CN202010326327.3A Active CN111860753B (zh) 2019-04-26 2020-04-23 用于训练模型的基于有向无环图的框架

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010326327.3A Active CN111860753B (zh) 2019-04-26 2020-04-23 用于训练模型的基于有向无环图的框架

Country Status (2)

Country Link
US (2) US11206229B2 (zh)
CN (2) CN115423070A (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018129813A1 (de) * 2018-11-26 2020-05-28 Beckhoff Automation Gmbh Datenübertragungsverfahren und Automatisierungskommunikationsnetzwerk
US11206229B2 (en) 2019-04-26 2021-12-21 Oracle International Corporation Directed acyclic graph based framework for training models
US11743105B2 (en) * 2019-06-03 2023-08-29 Hewlett Packard Enterprise Development Lp Extracting and tagging text about networking entities from human readable textual data sources and using tagged text to build graph of nodes including networking entities
CN116600258A (zh) * 2019-06-12 2023-08-15 利维帕尔森有限公司 用于外部系统集成的系统、方法和计算机可读存储介质
US11210471B2 (en) * 2019-07-30 2021-12-28 Accenture Global Solutions Limited Machine learning based quantification of performance impact of data veracity
US11526780B2 (en) * 2019-08-05 2022-12-13 Microsoft Technology Licensing, Llc Converting nonnative skills for conversational computing interfaces
US11347756B2 (en) 2019-08-26 2022-05-31 Microsoft Technology Licensing, Llc Deep command search within and across applications
US11973724B2 (en) * 2020-03-31 2024-04-30 Zoho Corporation Private Limited Chatbot framework supporting relational database schema
US11605376B1 (en) * 2020-06-26 2023-03-14 Amazon Technologies, Inc. Processing orchestration for systems including machine-learned components
US11526825B2 (en) * 2020-07-27 2022-12-13 Cygnvs Inc. Cloud-based multi-tenancy computing systems and methods for providing response control and analytics
US11900046B2 (en) * 2020-08-07 2024-02-13 Microsoft Technology Licensing, Llc Intelligent feature identification and presentation
US11551674B2 (en) * 2020-08-18 2023-01-10 Bank Of America Corporation Multi-pipeline language processing platform
US20220058512A1 (en) * 2020-08-19 2022-02-24 Bank Of America Corporation Machine learning model training system
US11972220B2 (en) * 2020-11-30 2024-04-30 Oracle International Corporation Enhanced logits for natural language processing
WO2022115736A1 (en) 2020-11-30 2022-06-02 Oracle International Corporation Distance-based logit values for natural language processing
EP4128074A2 (en) * 2020-12-04 2023-02-08 Google LLC Example-based voice bot development techniques
US11804211B2 (en) * 2020-12-04 2023-10-31 Google Llc Example-based voice bot development techniques
US11922141B2 (en) 2021-01-29 2024-03-05 Walmart Apollo, Llc Voice and chatbot conversation builder
US11206190B1 (en) 2021-02-01 2021-12-21 International Business Machines Corporation Using an artificial intelligence based system to guide user dialogs in designing computing system architectures
US11902222B2 (en) 2021-02-08 2024-02-13 Google Llc Updating trained voice bot(s) utilizing example-based voice bot development techniques
CN112988963B (zh) * 2021-02-19 2024-05-10 平安科技(深圳)有限公司 基于多流程节点的用户意图预测方法、装置、设备及介质
CN113158690B (zh) * 2021-03-15 2024-05-17 京东科技信息技术有限公司 对话机器人的测试方法和装置
CN113505874B (zh) * 2021-06-07 2024-06-14 广发银行股份有限公司 一种多模型智能机器人系统及构建方法
US11252113B1 (en) * 2021-06-15 2022-02-15 Drift.com, Inc. Proactive and reactive directing of conversational bot-human interactions
CN113326402B (zh) * 2021-06-16 2022-07-19 上海哔哩哔哩科技有限公司 有向无环图生成方法及系统
CN113242160A (zh) * 2021-07-12 2021-08-10 深圳市永达电子信息股份有限公司 一种基于状态机的协议识别方法
US11477208B1 (en) 2021-09-15 2022-10-18 Cygnvs Inc. Systems and methods for providing collaboration rooms with dynamic tenancy and role-based security
US11354430B1 (en) 2021-09-16 2022-06-07 Cygnvs Inc. Systems and methods for dynamically establishing and managing tenancy using templates
US11989112B2 (en) 2021-12-29 2024-05-21 Cerner Innovation, Inc. Model validation based on sub-model performance
IT202200000104A1 (it) * 2022-01-05 2023-07-05 Ko2 S R L Sistema intelligente conversazionale di assistenza utente e gestione ambienti antropizzati e metodo operativo associato
CN114021707B (zh) * 2022-01-06 2022-04-05 中兴通讯股份有限公司 模型获取方法、系统、电子设备和存储介质
CN114661571A (zh) * 2022-03-30 2022-06-24 北京百度网讯科技有限公司 模型评测方法、装置、电子设备和存储介质
WO2023227937A1 (en) * 2022-05-25 2023-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for controlling the training of machine learning models in pipelined analytics service implementations
US11979362B2 (en) * 2022-09-08 2024-05-07 Oracle International Corporation Business-to-business chat routing
CN116028038B (zh) * 2023-03-28 2023-06-09 深圳市奥思网络科技有限公司 基于dag图表的可视化流水线编排方法及相关组件

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10505756B2 (en) * 2017-02-10 2019-12-10 Johnson Controls Technology Company Building management system with space graphs
US9947319B1 (en) * 2016-09-27 2018-04-17 Google Llc Forming chatbot output based on user state
WO2019203859A1 (en) * 2018-04-19 2019-10-24 Google Llc Dependency graph conversation modeling for use in conducting human-to-computer dialog sessions with a computer-implemented automated assistant
US10679622B2 (en) * 2018-05-01 2020-06-09 Google Llc Dependency graph generation in a networked system
CN108829757B (zh) * 2018-05-28 2022-01-28 广州麦优网络科技有限公司 一种聊天机器人的智能服务方法、服务器及存储介质
CN109033223B (zh) * 2018-06-29 2021-09-07 北京百度网讯科技有限公司 用于跨类型对话的方法、装置、设备以及计算机可读存储介质
US11876910B2 (en) * 2019-01-31 2024-01-16 Salesforce, Inc. Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT)
US11206229B2 (en) 2019-04-26 2021-12-21 Oracle International Corporation Directed acyclic graph based framework for training models

Also Published As

Publication number Publication date
CN111860753B (zh) 2022-09-23
US11775572B2 (en) 2023-10-03
CN111860753A (zh) 2020-10-30
US11206229B2 (en) 2021-12-21
US20200344185A1 (en) 2020-10-29
US20220078140A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
CN111860753B (zh) 用于训练模型的基于有向无环图的框架
US20230259558A1 (en) Insights into performance of a bot system
CN114424185A (zh) 用于自然语言处理的停用词数据扩充
CN115485690A (zh) 用于处置聊天机器人的不平衡训练数据的分批技术
JP2023520416A (ja) ドメイン外(ood)検出のための改良された技術
CN111857794A (zh) 机器人可扩展性基础设施
CN112567394A (zh) 用于在有限的知识领域中构建知识图的技术
US11868727B2 (en) Context tag integration with named entity recognition models
CN115917553A (zh) 在聊天机器人中实现稳健命名实体识别的实体级数据扩充
CN115398419A (zh) 用于基于目标的超参数调优的方法和系统
CN112487157A (zh) 用于聊天机器人的基于模板的意图分类
US20220058347A1 (en) Techniques for providing explanations for text classification
CN115398436A (zh) 用于自然语言处理的噪声数据扩充
US20220172021A1 (en) Method and system for over-prediction in neural networks
CN116802629A (zh) 用于自然语言处理的多因素建模
CN116547676A (zh) 用于自然语言处理的增强型logit
CN116615727A (zh) 用于自然语言处理的关键词数据扩充工具
CN116583837A (zh) 用于自然语言处理的基于距离的logit值
CN116235164A (zh) 聊天机器人的范围外自动转变
CN118202344A (zh) 用于从文档中提取嵌入式数据的深度学习技术
US20230134149A1 (en) Rule-based techniques for extraction of question and answer pairs from data
KR20240091214A (ko) 데이터로부터의 질문 및 답변 쌍들의 추출을 위한 규칙-기반 기술들
KR20240089615A (ko) 사전-트레이닝된 언어 모델의 단일 트랜스포머 계층으로부터의 다중-헤드 네트워크의 미세-튜닝
JP2024088640A (ja) ボットシステムの性能に関する見解
CN116635862A (zh) 用于自然语言处理的域外数据扩充

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