CN109791642B - 工作流的自动生成 - Google Patents

工作流的自动生成 Download PDF

Info

Publication number
CN109791642B
CN109791642B CN201780061220.7A CN201780061220A CN109791642B CN 109791642 B CN109791642 B CN 109791642B CN 201780061220 A CN201780061220 A CN 201780061220A CN 109791642 B CN109791642 B CN 109791642B
Authority
CN
China
Prior art keywords
sequence
workflow
result
steps
context
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.)
Active
Application number
CN201780061220.7A
Other languages
English (en)
Other versions
CN109791642A (zh
Inventor
Y-M·黄
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN109791642A publication Critical patent/CN109791642A/zh
Application granted granted Critical
Publication of CN109791642B publication Critical patent/CN109791642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提出了用于通过计算机程序为期望的任务生成工作流的方法、系统和计算机程序。一个系统包括工作流引擎和工作流推荐器。工作流引擎用于利用多个学习序列训练机器学习算法(MLA),每个学习序列包括学习上下文、至少一个学习步骤、和学习结果;接收包括至少一个输入上下文和期望结果的工作流定义,输入上下文包括至少一个输入约束;利用MLA生成至少一个实现工作流定义的结果序列,每个结果序列包括多个步骤;并选择至少一个结果序列中的一个结果序列。工作流推荐器使所选择的结果序列呈现在显示器上。

Description

工作流的自动生成
优先权
本申请要求2016年11月2日提交的美国申请序列第15/341,819号的优先权的权益,所述美国申请通过引用以其全部内容结合在此。
关于联邦赞助的研究或开发的声明
本发明是在由国家安全局授予的H98230-13D0054下利用政府支持完成的。政府具有本发明中的特定权利。
技术领域
本文公开的主题总体涉及用于生成期望任务的工作流的方法、系统和程序。
背景
人类智慧的一个特点是能够根据所掌握的知识和过去的经验制定规划以实现目标。无论是回顾过去的规划还是制定新的规划,这种对下一步做什么的持续规划和决策使我们能够自主行事。然而,规划可能很快成为复杂任务的耗时工作(诸如当涉及太多子任务并且必须满足大量约束时)。
工作流是完成任务所必需的一系列活动。在制造业、商业、工程和我们的日常生活中,工作流无处不在,并且具有明确定义的工作流可能是成功与混乱之间的差异。用于创建工作流的典型过程涉及将任务分解为多个步骤的人工设计师。然而,当复杂性增加时,规划和定义工作流可能很快成为一项具有挑战性和耗时的工作。此外,工作流越复杂,就越难以测试和验证。
附图说明
附图中的各个附图仅示出了本公开的示例实施例,并且不能被视为限制其范围。
图1是工作流规划的示例实施例的图示。
图2是根据一些示例实施例的用于测试和训练工作流推荐器的方法的流程图。
图3是用于评估示例实施例的性能的系统的架构。
图4是根据一些示例实施例的用于评估工作流引擎的性能的方法的流程图。
图5示出了根据一些示例实施例的序列数据的生成。
图6示出了根据一些示例实施例的用于工作流学习的方法。
图7示出了根据一些示例实施例的利用关联记忆(associative memories)对下一步骤的预测。
图8示出了根据一些示例实施例的用于推荐可能序列的方法。
图9是根据一些示例实施例的工作流推荐器的用户界面。
图10示出了样本测试结果。
图11是根据一些示例实施例的用于验证工作流推荐器的方法的流程图。
图12是根据一些示例实施例的用于推荐工作流的系统的高级架构。
图13是根据用于推荐工作流的一些示例实施例的方法的流程图。
图14示出了根据一些示例实施例的针对序列中的每个步骤定义的相对属性。
图15示出了根据一些示例实施例的用于性质属性到组件(component)和链路的分配。
图16示出了根据一些示例实施例的如何连接工作流组件。
图17示出了根据示例实施例的具有迭代模式的工作流。
图18示出了根据一些示例实施例的如何从可能的序列构建工作流。
图19示出了工作流构建器控制台应用的示例实施例。
图20是用于实现示例实施例的系统。
图21是通过计算机程序为期望的任务生成工作流的方法的流程图。
图22是示出可以在其上实现一个或多个示例实施例的机器的示例的框图。
具体实施方式
示例方法、系统和计算机程序涉及生成期望的任务的工作流。示例仅代表可能的变化。除非另有明确说明,否则组件和功能是可选的并且可以组合或细分,并且操作可以按顺序变化或者组合或细分。在以下描述中,出于解释的目的,阐明了许多具体细节以提供对示例实施例的透彻理解。然而,对于本领域技术人员而言明显的是,没有这些具体细节也可实践本主题。
数据分析师的一个任务是通过编排一系列步骤来创建节省时间的工作流。所呈现的实施例提供了工作流推荐器,该工作流推荐器利用机器学习算法来自主地构造满足指定约束的工作流规划以实现期望的结果。
实施例描述了一种新颖的平台以用于基于观察到的工作流样本来推荐工作流规划以在指定的上下文和约束下完成任务。系统推荐工作流以完成任务,并且系统已经被原型化和被评估,以验证结果的有效性。系统提供以下特征中的一项、部分或全部:
1.能够通过移动窗口方案将样本工作流(例如,有向图)和相关联的元数据解析和编码成具有步骤之间的相对经编码的位置的属性集合。
2.称为关联记忆的矩阵集合用于组织、观察和累积所有属性的共现。使用关联记忆可以大大减少在大的问题空间中实现高推荐效率所需的样本数量。
3.通过给出任务的上下文(诸如整个工作流的描述、标签、严格性和输入/输出参数),自动构造工作流以及满足给定约束的细节。
4.能够通过预测序列中的后续或先前步骤(在向前或向后方向上),检测循环模式以及合并序列集合以形成工作流来构建工作流。
5.能够通过递归地分解和调整上下文、约束和输入/输出参数到子问题以构建子序列来构建序列。
6.当系统不能构造满足给定输入/输出参数的所需约束的序列时,向用户报告未解决的子问题以获得进一步的帮助。
该系统使用认知思维过程来回忆过去的类似(或类比)体验,规划具有前向和后向链接的工作流,并表示复杂的多路径和迭代循环。该系统还使用自适应学习来扩展规划空间,通过更多示例捕获偏好,并识别步骤和上下文的顺序和约束。
该系统还允许通过自动地分解子目标和探索规划,自主地提炼约束和管理上下文,自动地将新的上下文信息结合到规划过程中并通过识别和提示无法解决的目标与用户进行交互来实现自我管理规划。
系统的测试和评估表明:关联记忆在推荐具有上下文和约束的个性化工作流规划方面是有效的,工作流推荐器能够自主地反映现有的和想象的新工作流,仅需要适度的训练数据,并且解决方案是通用的且可以应用于各种领域。
机器学习是一种研究领域,该研究领域使计算机能够在没有明确编程的情况下学习。机器学习探索了可以从数据中学习和预测数据的算法的研究和构造。这种机器学习算法通过从示例输入构建模型来操作,以便将数据驱动的预测或决策表达为输出。尽管呈现的示例实施例是关于关联记忆,但是本文呈现的原理可以应用于其他机器学习算法,诸如与人工神经网络、贝叶斯网络、随机森林、线性分类器、二次分类器、和支持向量机算法相关的算法。
在一个方面,提供了一种用于创建工作流的系统。该系统包括序列生成器、工作流引擎、和工作流推荐器。序列生成器用于生成多个训练序列。工作流引擎解析训练序列以提取每个训练序列中的步骤顺序、每个步骤的上下文、以及每个步骤的约束。工作流引擎用于利用训练序列和提取的步骤顺序、上下文和约束训练机器学习算法。训练机器学习算法以预测给定先前步骤、当前上下文、当前约束和期望结果的下一步骤。此外,工作流推荐器用于测试训练序列的子集。每个训练序列的测试包括以下的操作:将输入序列和期望结果输入到工作流推荐器;利用机器学习算法通过迭代计算下一步骤直到达到期望结果来构建输出工作流;并将输出工作流与相应的训练序列进行比较,基于训练序列子集的比较来评估工作流推荐器。
在一个方面,提供了一种用于通过计算机程序为期望的任务生成工作流的方法。该方法包括利用多个学习序列训练机器学习算法的操作,每个学习序列包括学习上下文、至少一个学习步骤、和学习结果。此外,该方法包括用于通过机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义的操作,该输入上下文包括至少一个输入约束。机器学习算法生成实现工作流定义的至少一个结果序列,每个结果序列包括多个步骤,并选择至少一个结果序列中的一个结果序列。此外,该方法包括用于使所选择的结果序列呈现在显示器上的操作。
图1是工作流规划的示例实施例的图示。如本文所使用的,序列是任务的有序列表,也称为步骤或组件。一些序列包括通过执行序列实现的结果(例如,112,114),也称为目标或输出。序列通常也可以称为工作流,但是,如本文所使用的,工作流还可以包括有向图(诸如图1中所示的示例)。
步骤(例如,步骤102、步骤104、步骤114、步骤106、步骤108)是在序列内执行的任务(例如,导入102逗号分隔值(CSV)文件、转换104CSV文件的格式、删除重复记录)。上下文是序列的任务前提条件(例如,源、目标、先决条件、项目、条件、执行步骤的结果等)。另外,约束是必需的前提条件(例如,上下文、先前步骤等),该前提条件必须由有效序列中的下一步骤或后续步骤满足。例如,如果步骤需要两个数字,则约束是:在可执行步骤之前两个数字必须可用。
每个步骤可以接收零个或多个输入并生成一个或多个输出。生成的该一个或多个输出被馈送到一个或多个后续步骤中。对于组件如何连接以及如何选择下一步骤存在约束,这可能取决于先前步骤的结果。
序列生成是指用于训练机器学习算法的序列数据(例如,上下文和步骤)的生成。序列推荐是指来自给定上下文或部分序列的序列的构造和推荐。此外,工作流推荐指的是用于完成任务的序列和相应的有向图的推荐。
工作流可以在有向图中表示,其中节点是步骤,并且边表示形成序列的步骤之间的连接。在一些示例实施例中,存在与至少一些步骤和一些连接相关联的元数据(诸如名称、描述、输入/输出参数等)。
在图1所示的示例中,定义工作流100,用于分析具有不同位置的人口信息的人口普查数据(以文件A.CSV 102的形式输入),以按组计算平均年龄,并通过将年龄除以相应的平均值来归一化年龄数据,以获得CSV文件格式的结果114。
构造具有同时满足多个约束的大量任务的复杂工作流对于分析师来说可能是耗时的任务,尤其是在存在数百或数千个可用任务的情况下。已经构建了图形规划工具以帮助分析师,但是这些工具通常需要用户输入来选择任务,这使得工作流创建过程繁琐冗长。所呈现的工具自动创建和推荐工作流,并且当工具没有定义完成某个工作流的正确任务时,可以与用户输入结合使用,以利用人工输入补充生成过程。
此外,如果训练的工作流是由同一用户产生,则该用户的偏好也被系统观察和学习,并且系统能够为用户产生个性化的工作流推荐,不仅基于给定的约束和上下文,而且还基于用户在构造工作流时的偏好。
在一些环境中,针对每个步骤可以有5000个或更多个测试组件可供选择,并且序列内的步骤数量可以从五个到一百个或更多个不等。鉴于所有这些选择,构造工作流对于分析师来说可能是一项严峻的任务。所呈现的实施例通过从专家已经产生的工作流中学习,并且通过推荐至少与专家产生的工作流一样好的操作工作流来节省时间和精力。
图2是根据一些示例实施例的用于测试和训练工作流推荐器的方法的流程图。关联记忆是一种允许从过去的案例中学习并使用学到的素材进行预测的机器学习技术。名称关联是因为该工具通过关联学习,类似于人类学习的方式。例如,如果一个人看到朋友和另一个人,则会建立另一个人可能是该朋友的朋友、家人、商业关系或某种其他类型的关联这样的关联。该信息被获取并为该人员建立所有可能的关联。其他的数据可以将可能关联的数量减小至较小集合。
关联记忆基于通过观察上下文下属性的共现而发展的矩阵集合,称为关联记忆。属性是类型和值的元组,表示为<类型>:<值>。属性可以表示从具体对象到抽象概念的任何内容,例如,人员:john、情绪:快乐、组分:xyz等。属性用于至少表示步骤、输入、输出、条件、上下文、元数据等。
在开始推荐工作流之前,必须回答的问题是,关联记忆是否可用于学习和推荐工作流?答案是在被称为“阶段1”或工作流训练202的过程中获得的。第二个问题是,该技术是否可用于推荐有效、复杂的工作流?答案在“阶段2”或工作流推荐204中获得。
在阶段1期间,使用样本工作流、上下文和约束202来训练系统。该工作流训练202包括操作206、208和210。在操作206中,解析输入数据以将工作流中的上下文、约束和步骤的顺序建立作为属性。方法从操作206流到操作208,其中,针对每个步骤使用移动窗口,使用相对距离和其他参数在窗口中对周围步骤进行编码。
在操作210处,在上下文、约束和步骤属性之间建立关联,并且系统累积的关联保持在关联记忆中。
在一些示例实施例中,由系统学习样本序列,并且然后要求系统基于相关的约束创建序列。将结果与原始序列进行比较,以确定系统是否能够创建有效序列。答案是:系统是能够的,如下面参考图10更详细地讨论的。
自动化工作流创建的益处是通过从由专家产生的工作流中学习来推荐有效的工作流来节省专家的时间。该方法包括学习如何在步骤级别构造样本工作流,并且然后混合、匹配和组合已学习的信息,以预测在给定的上下文、输入和输出的部分构造的序列中下一步做什么。对于复杂的工作流,问题被递归地分解为更简单的子问题,直到可以在组件级别解决子问题。然后,合并子问题的所有解决方案以形成最终的工作流规划。
操作204用于工作流推荐,操作204包括在给定某些上下文、约束和期望结果的情况下推荐工作流。工作流推荐204包括操作212、214和216。在操作212处,使用给定的上下文、约束和可用的部分构建的序列来构建序列以推荐下一步骤或一系列步骤。
该方法从操作212流到操作214以用于通过迭代地添加新的下一步骤来构建顺序工作流,同时遍历并访问后续步骤,直到满足所有条件(例如,达到期望的结果)。此外,在操作216中,合并多个顺序工作流以形成推荐工作流。
在一些示例实施例中,可以重复阶段1和2以微调系统,直到推荐有效的工作流。虽然顺序地呈现和描述了该流程图中的各种操作,但是普通技术人员将理解,一些或所有操作可以以不同的顺序执行、组合或省略,或者并行执行。
图3是用于评估示例实施例的性能的系统的架构。在阶段1,序列发生器302用于生成具有各种分布的训练序列,以测试和评估算法的性能。在阶段2,该算法从生成的序列中进行扩展以从实际真实的人工创建的工作流中学习,如下面参考图12至19更详细地讨论的。
推荐工作流可能是严峻的任务。例如,假设一个工业环境包括5000个不同的组件用于每个步骤从中选择,并且平均每个序列十个步骤。可能序列的数量大约为1037。然而,实际上,有效序列受到约束的限制,可能序列的数量少得多,但可能序列的数量仍然非常大。
使用关联记忆的方法包括基于观察到的数据预测结果。考虑到数据的有限大小和非常大的问题空间,机器学习对于预测工作流的有效性一直受到关注。阶段1的目标之一是用于确定工作流推荐是否可以成功创建大约20步或更少的工作流。如果以这种方式验证该方法,则可以在确信结果满足要求的情况下,创建工作流。
序列生成器302是基于输入来生成上下文和序列步骤的程序。输入参数描述了目标序列数据的特性。在一些示例实施例中,序列生成器302以CSV格式创建序列304,但是可以利用用于定义序列的任何其他格式。
利用生成的序列以及被创建并存储在数据库中的工作流数据314训练工作流引擎306和机器学习算法。在工作流引擎306(其与机器学习算法交互)已经过训练过程之后,工作流引擎306准备好接收查询以基于上下文和约束来创建序列以达到期望的结果。
响应于查询,工作流引擎306生成至少一个推荐序列316。工作流推荐器308是包括用于分析推荐序列316的用户界面的工具。
此外,在多个查询已被工作流引擎306处理之后,进行测试和评估过程310以确定由工作流引擎306生成的结果的有效性。在一些示例实施例中,结果312的图形表示呈现在显示器上。
序列生成器302和工作流引擎306之间的区别在于,尽管两者都产生序列304、316,但它们的目的以及它们如何生成序列304、316是不同的。序列生成器302为了训练目的从预定义的规则和分布创建人工序列304,而工作流引擎306通过查询经训练的机器学习算法来创建序列316以满足给定的约束和上下文。
图4是根据一些示例实施例的用于评估工作流引擎的性能的方法400的流程图。在操作402处,序列生成器生成训练序列。方法400从操作402流到操作404,其中使用所生成的训练序列来训练工作流引擎。
在操作406处,请求工作流引擎推荐已知序列的序列。提供可包括部分序列,或根本不包括序列,以及一组上下文和约束的输入。还输入了期望的结果。这意味着提供输入以检查工作流引擎是否能够重新创建序列。例如,输入可以包括序列的初始步骤以及用于获得所需结果的上下文和约束。
方法400从操作406流到操作408,其中将由工作流引擎创建的推荐序列与由序列生成器创建的已知序列进行比较。在一些示例实施例中,一些测试序列也可以手动创建或从现有序列的已知数据库中检索。
在操作410处,基于来自操作408的比较来评估工作流引擎生成序列的可行性。下面参考图10提供关于测试结果的更多细节。训练适量的样本(与可用组件的数量成比例),该算法在调用经训练的工作流时实现了100%的准确性。基于在对数正态分布下生成的模拟数据,超过95%的生成的未看到的工作流是有效的。可以通过收紧或放宽给定的约束和上下文来控制这种准确性。此外,系统可以自动填充工作流元数据作为调用步骤的副产品。
虽然顺序地呈现和描述了该流程图中的各种操作,但是普通技术人员将理解,一些或所有操作可以以不同的顺序执行、组合或省略,或者并行执行。
图5示出了根据一些示例实施例的序列数据的生成。序列生成器508创建用于测试和验证工作流引擎306的序列。
在一些示例实施例中,序列生成器508的输入包括上下文502、步骤504、上下文标签512和步骤标签516。序列发生器508的输出包括下一步骤506、下一步骤506的上下文502和输出数据510。在示例实施例中,上下文502是表示关于序列的元数据或条件的无序二进制性质。序列中的步骤的数量可以变化或可以是固定的。此外,可以由管理员定义步骤的最大数量。在一些示例实施例中,可以指定步骤的最大数量和可用任务标签以模拟目标问题的规模。
在一些实施例中,上下文标签512包括表示上下文的名称和上下文级别分布514,并且上下文标签512是从预定义的分布中随机选择的。步骤标签516包括表示步骤的名称和相应的步骤级别分布518。分布514和518指定如何从名称池或步骤池中提取标签。此外,在一些示例实施例中,序列生成器508包括用于形成序列的构造规则。
序列生成器508根据所接收的输入和预定义的构造规则产生有效序列。通过在步骤之间引入可配置程度的重叠或扰动,构造规则被设计为确定性的。这样,序列中的有效步骤可能对其他序列无效,即使在相同的上下文下操作,但仍可测试序列的有效性。
在一些示例实施例中,使用三种分布:对数正态、正态和均匀。这些分布表示任务被选为下一步(假设任务满足所需的约束)的概率。在一个示例实施例中,相同的构造规则用于验证从查询关联记忆生成的序列,如下面更详细描述的。
在示例实施例中,使用以下输入参数:要生成的序列的总数、可用的任务标签的总数(例如,5000)、用于在每个步骤处选择任务标签的分布函数的类型、序列中的步骤平均数量(例如,10)、以及上下文与任务标签比率(例如,给定的一组上下文的25个可能的任务)。
在一些示例实施例中,序列生成器508在以下规则下操作:任务标签被数字编码(例如,t<id>:t00001-t05000,如下面参考图6更详细描述的);序列中的步骤的数量是正态分布的(例如,平均值为10);序列中不允许重复任务标签;任务的子集对特定步骤是有效的;预定数量的任务标签(例如,5000)被分类并基于序列中的步骤数量被均匀地分成池;每个步骤都取决于先前的步骤和给定的上下文;有效序列中的任务标签按数字递增顺序;第一步取决于给定的上下文;上下文被二进制编码为c<id><0|1>(例如,c10、c21、c31);上下文的数量由与步数-1标签的预定比率(例如,1/25)来确定;在每个步骤处所选择的标签遵循某个分布函数;支持的分布是对数正态、正态或均匀;并且相同的分布函数用于构造序列。
图6示出了根据一些示例实施例的用于工作流学习的方法。工作流引擎306在推荐序列之前学习上下文502与步骤504之间的关系。为了便于学习序列614内的关系,工作流引擎306在处理序列数据时通过移动窗口方案创建附加的内部属性。在一些示例实施例中,光标一次一个步骤地在序列内移动,定义当前步骤和当前步骤周围的窗口,并确定在当前步骤之前和之后要与上下文一起观察多少步骤。系统通过施加逐步移动窗口方案来生成属性,以将相邻步骤的相对位置编码到当前属性。
因此,窗口包括预定数量的先前步骤和预定数量的后续步骤。在图6所示的示例实施例中,先前步骤的预定数量被设置为三,并且后续步骤的预定数量被设置为一。然而,其他实施例可以利用不同数量的预定先前步骤和预定数量的后续步骤。
对于步骤的每个输入和输出参数,参数的性质(例如名称、数据类型、必需或可选等)被表示为属性并且与步骤名称一起被观察。此外,对于系统中的每个连接,创建链路属性,该链路属性具有沿链路性质的唯一标识符(诸如源和目标步骤的名称、连接源和目标参数名称以及数据类型)。
在一些示例实施例中,先前步骤和后续步骤分别被编码为prev<d>:<步骤_名称>和next<d>:<步骤_名称>,其中d是一个整数,表示距离当前步骤有多少步,步骤_名称是距离d步之远的步骤的名称。例如,步骤t30处的prev2:t10表示步骤t10是序列中两个步骤之前(例如,先前的)。此外,步骤t30处的next1:t40表示序列中的下一步骤是t40。
当窗口延伸超出工作流的开始或结束时,使用特殊关键字“无”作为步骤名称。例如,第一步骤t1没有先前步骤,其被编码为prev1:无(当然prev2:无和prev3:无也被隐式编码)。
当前步骤表示为当前:<步骤_名称>。结果,在每个步骤处,存在一组编码步骤如何相关的相对位置的属性。这些属性以及表示条件的上下文属性和关于步骤的信息一起被观察到关联记忆中。通过将它们分组并一起观察,系统学习到这些属性的关联。除了观察步骤的相对位置之外,系统还观察每个步骤处的输入/输出参数以及步骤之间的连接。
序列614包含t001、t010、t020、t030和t040的顺序的五个步骤。在步骤t1618,当前步骤608是t1,prev1步骤610是“无”编码为prev1:无,下一步骤612是t10,该下一步骤612被编码为next1:t10。类似地编码其他步骤。在最后的步骤t40处,没有下一步骤,其被编码为next1:无616。注意,在该示例实施例中,每个步骤包括关于与先前步骤和后续步骤的关系的记忆信息。
上下文602包括上下文c10 604、c21和c30。在一些示例实施例中,上下文包括文本串,但是其他实施例可以包括不同类型的上下文定义。例如,上下文602可以包括字符串“我想要地理位置”或“我需要访问数据库”或“我想要开一家餐厅”等。
图7示出了根据一些示例实施例的利用关联记忆对下一步骤的预测。工作流引擎306一次一个步骤地创建序列;基于当前序列,利用机器学习算法计算下一步骤。注意,序列可以向前或向后构建。当计算序列中的下一步骤时,序列是向前构建的,而当计算序列中的前一步骤时序列是向后构建的。
在图7的示例实施例中,当前步骤t20 708利用上下文c10、c21和c30;prev1步骤t10和prev2步骤t1编码702。查询关联记忆710以生成下一步骤,并且关联记忆生成下一步骤t30 716,其中步骤t20用next1:t30编码。在一些示例实施例中,对关联记忆的查询是用于返回基于0和1之间的似然得分的下一步候选者的排名列表。基于在上下文和先前步骤中匹配的多少属性来计算和归一化得分。候选者匹配的属性越多,似然得分越高。
对下一步骤进行编码,并且由于前一步骤是t20 708,因此t30 716被编码为prev1:t20、prev2:t10和prev3:t1。一旦候选者被选为下一步骤,它就成为新的“当前”步骤,并且更新上下文和相关属性以形成查询新的后续步骤的新属性集。然后对t30 716重复该过程以计算下一步骤,直到通过达到期望目标完成序列。
在示例实施例中,查询710返回候选后续步骤的列表,并且基于分配给每个候选后续步骤的排名来选择最佳候选t30 716。此外,next1字段714被更新为具有值t30。另外,t30716处的上下文与t20 708处的上下文相同,但是在其他情况下,上下文也可以通过添加新的上下文、改变当前上下文或删除一些当前上下文来改变。
图8示出了根据一些示例实施例的用于推荐可能序列的方法。在每个步骤,可能存在多于一个候选者以用于下一步骤(例如,在步骤804、806和808)。所有候选后续步骤都基于其似然得分进行排名,并且阈值τ用于滤除不太可能的候选者或具有低分数的候选者。当算法遍历并选择下一步骤时,该算法形成至少一个要推荐的候选序列。尽管较高得分的阈值产生更好的序列,但是高阈值可能变得太限制并且使得算法无法完成序列。
确定推荐的序列的质量的另一个因素是用于预测下一步骤的匹配约束(例如,上下文和先前步骤)的数量。随着施加更多约束,推荐的序列变得更具反映性(回忆观察到的序列)而不是富有想象力的(产生新的序列)。然而,过度放宽约束可能导致产生无效序列。因此,工作流推荐器308提供滑动条以让用户控制约束的严格性以推荐反映性(reflexive)序列和想象序列的混合,如下面参考图9更详细地说明的。
在一些示例实施例中,推荐具有大量步骤(例如,二十个或更多)的有效序列要求每个单独步骤满足高似然阈值(例如,对于平均十步序列大于0.933),以便达到似然大于50%以用于创建有效序列。换句话说,一个不良步骤可能容易破坏整个序列,因为序列的分数是基于序列中每个步骤的分数的因子分解。
注意,一些序列可以包括可以并行执行的子序列,并且可以并行探索并行子序列的可能性,以便更快地得到解决方案。
在一些示例实施例中,当路径完成(或终止)时,该过程返回到前一步骤以查看是否有更多候选者要探索。如果有,则该过程继续生成更可行的路径,直到每个位置级别处的所有候选者都用尽或达到预设约束(诸如最大路径数或用于生成序列的最大处理时间)。
图9是根据一些示例实施例的工作流推荐器的用户界面。用户界面902向数据分析师提供选项以用于录入输入并与工作流引擎进行交互。在一些示例实施例中,用户界面902包括多个屏幕(诸如“新的和感兴趣的”、“缺失的链路”和“序列”904)。用户界面902示出了所选择的序列904选项。
用户界面902提供用于输入上下文的选项908、用于请求工具以查找下一步骤的选项910、以及用于控制从反映性到想象(例如,从0到5)的约束的选项906。另外,用户界面902包括用于从多个候选步骤中选择下一步骤的选项912。这样,数据分析师可以与工具对接以逐步创建序列。在另一个选项(未示出)中,数据分析师能够在给定上下文和约束的情况下请求工具创建完整序列。该工具提供具有可能序列914的图形用户界面,其中序列可以是反映性的或想象的。
例如,输入请求以创建用于构建塔科(taco)餐厅的工作流。约束可能包括诸如“建造餐厅”、“塔科(taco)餐厅”、“在加利福尼亚州”和“镇上至少33%的西班牙裔人口”等项目。放宽约束的一种方式是指定,“在加利福尼亚州或者在德克萨斯州”。此外,增加约束的方式是通过添加约束(诸如“城市人口超过200,000”)。
可能发生的是,工作流引擎可能到达工作流引擎无法找到下一步骤的点(例如,工作流引擎尚未利用执行特定任务的步骤进行训练)。作为回应,工作流引擎可能会向分析师说明问题:“如果您告诉我如何执行此步骤,那么我可以解决问题并构建完整的序列。”然后,系统分析师可以向工作流引擎提供任务,以便执行缺失的链路。
图10示出了样本测试结果。在示例实施例中,利用三个测试来评估序列推荐算法的性能:回忆测试、精度测试和学习曲线测试。
回忆测试是基线测试,用于检查算法是否能够推荐在以下条件下已观察到的序列:在三个分布下训练25,000个序列,其中最多达三个先前步骤被编码,利用阈值为0.9的严格约束来测试是否可以推荐训练序列中的每个步骤。测试表明,无论训练数据大小和分布如何,都会回忆所有经训练的序列。
精度测试根据以下精度定义测量推荐的序列的质量:
其中N有效是推荐的有效序列数,N推荐是推荐序列的总数。使用了两组测试,一组具有严格的约束(测试I),另一组具有宽松的约束(测试II)。在示例实施例中,精度测试包括以下操作:
1.随机生成上下文。
2.应用严格的(测试I)或宽松的(测试II)约束和阈值来选择下一步骤候选者。对于测试I,推荐与所有上下文和前三个步骤相关联的步骤。对于测试II,推荐与至少一个上下文和至少一个先前步骤相关联的步骤。
3.通过从每个步骤处的前五个候选者中随机选择直到推荐结束标记来构建序列。如果由于没有找到可行的候选者或者已经尝试了超过预定阈值的太多分支,推荐器无法完成序列,则该过程放弃。
4.即使尚未到达结束标记,当已达到最大步数时终止序列。
5.根据序列生成器所使用的规则验证推荐的序列。
下表总结了在三种不同分布函数下生成的训练数据的精度测试的结果:
从测试结果中观察到,当推荐与所有上下文和前三个步骤(测试I)相关联的步骤时,在约60%至68%的尝试中,在时间限制内推荐完整的序列。此外,推荐的序列几乎100%有效;对于所有分布,先前观察到推荐的所有有效序列。这回答了这个问题,“如果我基于您所学习的任务请求新的工作流,工作流引擎是否可以生成有效的工作流?”答案是肯定的,因为推荐的工作流是有效的,证明工作流引擎可以生成有效的序列。
具有宽松匹配的精度测试需要匹配至少一个上下文和至少一个先前步骤。当推荐与至少一个上下文和至少一个先前步骤(测试II)相关联的步骤时,在之前几乎没有任何推荐的序列被观察到的情况下实现了100%的完成率。另外,精度根据训练数据的大小而变化。
学习曲线测试在不同训练数据大小和分布下测量精度。图表1002示出了学习曲线测试的结果,其中x轴为经训练的序列的数量,y轴为精度值。三条曲线对应于对数正态分布、正态分布和均匀分布。正如预期的那样,由于下一步骤的选择是优选的,因此对数正态分布表现最佳。另一方面,当选择均匀且随机时,出现最低精度。
学习曲线示出在训练约5000个序列时达到了最佳精度。根据使用的分布,精度在5000个经训练的序列后变化和下降。随着训练数据的增长,相信下降是由于在相同宽松约束下有更多无效候选者可供选择。精度的降低可以通过要求更严格的约束来补救,这意味着对较低的查找序列的速率的权衡。
从测试导出的结论是,通过调整所需约束的数量和用于选择下一步骤候选者的阈值,可以朝向反映性序列或想象序列控制推荐的序列的有效性和质量。此外,训练集需要大约5000个序列,但是应当理解,在不同的情况下(学习序列、执行的测试),数量可以更高或更低。又进一步,任务选择通常是优选的(遵循对数正态分布),并且算法在分布下的宽范围的训练数据大小上保持高推荐精度(大于92%)。
图11是根据一些示例实施例的用于验证工作流推荐器的方法1100的流程图。在操作1102,由工作流引擎接收多个训练序列。在示例实施例中,训练序列由序列生成器生成。
从操作1102,方法1100流到操作1104,其中解析训练序列以提取每个训练序列中的步骤的顺序、每个步骤的上下文以及每个步骤的约束。在操作1106处,利用训练序列和提取的步骤的顺序、上下文和约束来训练机器学习算法。机器学习算法试图在给定先前步骤、当前上下文、当前约束、和期望结果的情况下预测下一步骤。在一些示例实施例中,机器学习算法包括关联记忆,但是其他实施例可以使用其他机器学习算法。
从操作1106,该方法流到操作1116,以利用训练序列的子集测试工作流推荐器。操作1116包括操作1108、操作1110、操作1112和操作1114。在操作1108处,输入序列和期望结果被输入到工作流推荐器中。在操作1110处,机器学习算法用于通过迭代计算下一步骤直到达到期望结果来构建输出工作流。
从操作1110,方法1100流到操作1112,以将输出工作流与对应的训练序列进行比较。在操作1114处,基于在操作1112处对训练序列的子集的比较来评估工作流推荐器。
图12是根据一些示例实施例的用于推荐工作流的系统的高级架构。在阶段2,引入了几个新特征。在一些示例实施例中,工作流推荐的方法从使用生成的序列改变为基于现实的工作流数据实际推荐工作流。
如本文所使用的,现实的工作流数据(也称为真实工作流)是由专家生成以执行现实的任务的实际工作流的数据。解析真实工作流以构造定向工作流图并建立工作流内使用的步骤顺序。
另外,在每个步骤处,使得附加的输入和输出上下文和相关的标签可用,诸如通过将步骤的输出连接到下一步骤的输入并且通过产生观察到的组件、连接和元数据的库存。
另外,改进工作流引擎306以学习多个并发的先前步骤或后续步骤和迭代模式。此外,工作流推荐通过以下方式得到增强:使用所需的输入或输出丰富查询上下文,在向前方向上或在向后方向上操作查询,检测重复模式以识别迭代器,通过合并多个序列构建工作流,以及填写工作流组件和链路的性质详细信息。
用户导出现有工作流文件1204作为工作流引擎306的训练数据。工作流引擎306利用解析器1202解析工作流文件1204,并利用解析的工作流文件训练关联记忆314。
分析师通过向查询提供用于创建具有期望结果的推荐工作流的上下文和初始约束来引导工作流构建器1206。工作流推荐器1210推荐所得到的工作流1208,该工作流1208可以存储在数据库314中或呈现在用户界面上。
在一些示例实施例中,工作流文件1204利用JSON结构化格式以用于描述工作流,但是可以使用其他类型的格式。解析器1202根据其格式解析工作流文件。因此,代替如图3中所描述的序列生成器,解析器1202用于解析具有附加属性的工作流文件1204,以用于观察工作流中的结构和元数据。
增强的工作流构建器1206响应客户端的输入以构造工作流规划。在示例实施例中,输出1208是JSON格式,包含用于推荐的工作流的组件和连接信息。
工作流推荐器1210产生满足给定约束的步骤的有向图(包括迭代模式,如果有的话)。由于可以在步骤之间定义的附加元数据和输入/输出约束,使用真实工作流数据增加了复杂性。
为了验证工作流推荐器1210可以使用真实数据进行操作,产生执行分析任务的各种工作流作为训练数据。在训练之后,验证工作流推荐器1210能够针对具有指定的上下文和约束的给定任务输出有效的工作流规划,包括训练工作流。用于训练数据的工作流模型涵盖了宽范围的任务和数据,诸如地理空间、SQL、人口普查、集合交集、Keyhole标记语言(KML)、椭圆几何、算术、数据操纵和数据转换。
图13是根据用于推荐工作流的一些示例实施例的方法1300的流程图。操作1302,获得工作流数据(例如,图12的工作流文件1204)。方法1300从操作1302流到操作1304,其中利用工作流数据来训练工作流引擎。
方法1300从操作1304流到操作1306,以用于基于上下文、约束和可用的部分序列逐步构建序列。在操作1308处,逐步构建序列直到满足所有条件。方法1300从操作1308流到操作1310,其中从多个候选构建序列中选择最佳序列。在操作1312处,基于所选择的最佳序列推荐序列。另外,可以基于所选择的序列推荐工作流。
例如,期望“在旧金山开一家餐厅”的序列。最后一步可能是开设餐厅,但在开设餐厅之前,可能需要获得许可证、购买家具、建造餐厅、带食物、培训服务员等。在一个示例实施例中,可以从最后一步“开设餐厅”向后移动,并找出到达此最后步骤所需的先前步骤。
由于结果不是如预期的那样,例如,没有足够的顾客来餐厅,分析师可以利用进一步的改进回到该工具。虽然开设餐厅方面,序列可能是正确的,但分析师可能会添加附加的约束以获得更好的结果,例如“开展营销活动”或“在超过100万居民的城市中建立餐厅”。因此,在某些情况下,该过程可以是迭代的,直到获得期望的工作流。此外,可以将元数据添加到输入。例如,所有者可以提供姓名、地址和电话号码,这些姓名、地址和电话号码不一定与开设餐厅有关,但它是与任务相关的信息。
虽然顺序地呈现和描述了该流程图中的各种操作,但是普通技术人员将理解,一些或所有操作可以以不同的顺序执行、组合或省略,或者并行执行。
图14示出了根据一些示例实施例的针对序列中的每个步骤定义的相对属性。在阶段2,一项任务可能具有多于一个的前导。在图14的示例中,任务C 1408具有两个前导:任务A 1404和任务B 1406。任务A 1404和任务B 1406都具有连接到任务C 1408的相应输入的输出。
当对该部分序列1402进行编码时,任务A 1404和B 1406都具有next1:C,因为任务C 1408是接下来的下一个任务。此外,任务C 1408具有两个prev1字段,prev1:A和prev1:B,以指示两个直接前导。此外,任务D1410具有两个prev2字段:prev2:A和prev2:B。
图15示出了根据一些示例实施例的性质属性到组件和链路的分配。可以为任务之间的链路和为任务定义性质属性。对于每个组件,存在表示输入/输出参数的名称和类型的附加的属性。此外,对于每个链路,可以定义以下内容:连接类型、源和目标参数、以及包含这些参数的源和目标组件。当然,连接到输出的输入必须匹配,否则序列将无效。如果任务需要整数,则任务必须接收整数,并且其他输入类型(例如,实数)将无法将任务连接在一起。
图15示出了属性的定义,其中C 1508是当前任务,任务A 1504和任务B 1506是先前任务,并且任务D 1510是下一个任务。例如,将来自任务A 1504的输出连接到任务C 1508的输入的链路1502包括以下属性:(源组件:A)、(目标组件:C)、(源参数:ABC)、(目标参数:XYZ)、和(类型:表格)。这意味着源参数ABC是由任务A 1504提供作为源,ABC是表格,该表格耦合到任务C 1508处的参数XYZ。
此外,任务C 1508用以下输入编码1512:(输入参数:XYZ)、(输入类型:表格)、(所需输入:真)。输出被编码1512为:(输出:FOO)、(输出类型:列表.字符串(list.string))和(所需输出:真)。
应注意,图15中所示的实施例是示例,并未描述每个可能的实施例。其他实施例可以使用不同的编码、不同的类型、不同的命名法等。因此,图15中所示的实施例不应被解释为排他性的或限制性的,而是说明性的。
图16示出了根据一些示例实施例的如何连接工作流组件。在给定某些输入参数的情况下,可以逐步向前或向后创建序列。在一些示例实施例中,通过将原始问题分解为具有更新的上下文和目标的子问题,创建序列被分解为子问题。然后系统继续解决所有子问题。
图16示出了将组件A 1602与组件B 1604连接的问题。检查来自组件A 1602的输出1612与组件B 1604处的输入1614的兼容性。如果输入1612和输出1614具有相同的类型1616(例如,字符串),则问题的一个解决方案是将A 1602直接连接到B 1604,尽管可能存在其他解决方案。根据上下文和约束,将A 1602直接连接到B 1604可以是或可以不是最佳解决方案。
当问题被解决时,流程引擎计算每个组件是下一步骤(或者如果向后,则为前一步骤)的正确组件的概率。在这种情况下,计算将A 1602连接到B 1604是最佳解决方案的概率的得分。如果存在用于将A 1602连接到B1604的更好解决方案,则工作流推荐器可以在A1602和B 1604之间插入组件或子序列,即使可以直接连接。
在一些示例实施例中,得分基于由系统以及由A 1602和B 1604的周围参数已经观察到该连接的次数(例如,来自训练数据)。如果系统已经若干次(或多次)看到此连接,则该连接将获得高分,因为这是基于经验进行的良好连接。
另一方面,如果A 1602的输出1612与B 1604的输入1614不同1618,则必须在它们之间添加组件或子序列1606,诸如具有与A 1602的输出1612兼容的输入,并且具有与B1604的输入1614兼容的输出的组件或子序列1606。在一些示例实施例中,机器学习算法用于识别A 1602和B 1604之间应包括什么组件。
图17示出了根据示例实施例的具有迭代模式的工作流。在创建序列时,识别重复模式以防止落入无限循环是有益的。
在图17的示例中,序列1710包括重复模式1712,其中组件C和组件E交替。在示例实施例中,通过将模式封闭在括号中并在右括号之后添加“*”符号来表示重复模式。此外,为了将序列表示为文本,序列表示为由“->”(箭头)分隔的组件。因此,包括步骤1702、步骤1704、步骤1710和步骤1708的序列1710可以在字符串中表示1714为A->B->(C-E)*->D。
在一些示例实施例中,在图形上,迭代可以被表示为任务E的组件1710,其中组件C1706被嵌入在组件1710内。这通过整理工作流的表示来简化用户界面,替代必须多次重复相同的模式。
图18示出了根据一些示例实施例的如何从可能的序列构建工作流。在该阶段,在一些示例实施例中,多个推荐序列1816被合并到单个工作流1800中。在图18的示例中,推荐五个序列1816:A->C->D->G;A->C->F->G;B->C->D->G;B->C->F->G;和E->D->G。
在示例实施例中,创建工作流开始于最长路径中的一个(例如,A->C->D->G),所述最长路径中的一个被称为干线。因此,初始工作流包括组件A 1804、C 1806、D 1810和G1814。之后添加其他路径,通过识别当前工作流与要被添加的新序列之间的重叠步骤的最长跨度,使它们尽可能地与干线对齐。然后,其余的非重叠组件作为分支附接到干线。
接下来,添加A->C->F->G,因此,将组件F 1812添加到工作流1800,然后将F 1812连接到C 1806和G 1814之间。添加的下一个序列是B->C->D->G,并且由于C->D->G已经存在,B 1802被添加到工作流中,并且然后连接所需的输入和输出。接下来,添加B->C->F->G,因为序列已经在工作流中,所以不需要对工作流进行任何更改。最后,添加序列E->D->G,并且由于D->G已经存在,因此将E 1808添加到工作流1800并且将E 1808的输出连接到D 1810的输入。
在示例实施例中,用户被给予控制以决定序列是否被合并。例如,用户可以决定用户不喜欢组件E 1808,因此序列E->D->G不被添加到工作流1800。
在示例实施例中,当合并所有序列时,工作流推荐器以预定义格式输出工作流1800以用于进一步的下游处理(诸如用于接收输入的相同格式)。
图19示出了工作流构建器控制台应用的示例实施例。为了便于测试和生成工作流,开发了控制台应用以执行逐步和批量工作流构造。在示例实施例中,由控制台应用支持的命令在下面的表2中列出。
/>
/>
界面1914示出了用于输入线命令、用于上面示出的处理人口普查数据的工作流1900的示例界面。在示例实施例中,工作流1900包括步骤1902-1907。注意,应用可以与用户交互以逐步创建序列或接收命令,以创建完整序列而无需进一步的用户输入。
在其他示例实施例(未示出)中,用户界面可以包括用于输入不同输入值的输入字段,或者包括打开用于执行工作流推荐器操作的专用用户界面的命令选项。
图20是用于实现示例实施例的系统2002。在示例实施例中,系统2002包括用户界面2004、关联记忆2008、工作流推荐器1210、工作流测试和评估310、工作流引擎306、解析器1202、工作流构建器1206和序列数据库314。用户界面2004提供对系统功能的访问(诸如图9和图19中描述的用户界面)。
关联记忆2008是用于创建序列和工作流的机器学习算法。工作流推荐器1210推荐工作流,如以上参考图12所示。工作流测试和评估310用于评估工作流引擎306的有效性,如以上参考图3所讨论的。
工作流引擎306与诸如关联记忆2008之类的其他模块交互以创建序列,如以上参考图3所讨论的。解析器1202用于解析工作流文件,并且工作流构建器1206构建工作流,如以上参考图12所示。序列数据库314用于存储序列和工作流(诸如训练序列、推荐序列、和工作流)。
应注意,图20中所示的实施例是示例,并未描述每个可能的实施例。其他实施例可以利用不同的模块、更少的模块、组合两个或更多个模块的功能等。因此,图20的实施例不应被解释为排他性或限制性的,而是说明性的。
图21是通过计算机程序为期望的任务生成工作流的方法2100的流程图。操作2102是用于利用多个学习序列训练机器学习算法。每个学习序列包括学习上下文、至少一个学习步骤和学习结果。
方法2100从操作2102流到操作2104,其中机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义,输入上下文包括至少一个输入约束。方法2100从操作2104流到操作2106,其中机器学习算法生成实现工作流定义的至少一个结果序列,每个结果序列包括多个步骤。
方法2100从操作2106流到操作2108,其中机器学习算法选择一个序列作为最佳序列。在操作2110处,将所选择的结果序列呈现在显示器上。参见例如图9和19中呈现的用户界面。
虽然顺序地呈现和描述了该流程图中的各种操作,但是普通技术人员将理解,一些或所有操作可以以不同的顺序执行、组合或省略,或者并行执行。
图22是示出可以在其上实现一个或多个示例实施例的机器2200的示例的框图。在替代性实施例中,机器2200可作为独立设备而进行操作或者可以连接(例如,联网)至其他机器。在联网部署中,机器2200在服务器-客户端网络环境中可以以服务器机器、客户端机器或两者的能力进行操作。在示例中,机器2200可以充当对等(P2P)(或其他分布式)网络环境中的对等机器。机器2200可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、web电器、网络路由器、交换机或桥、或能够执行指定要由所述机器采取的动作的(顺序或以其他方式)指令的任何机器。此外,尽管仅示出了单个机器,但术语“机器”还可被认为包括机器的任何集合,其可独立地或结合地执行一组(或多组)指令来执行本文所讨论的方法中的任何一项或多项方法(诸如云计算、软件即服务(SaaS)或其他计算机集群配置)。
如本文所描述的示例可以包括逻辑或多个组件或机制或者可以由所述逻辑或多个组件或机制操作。电路是在包括硬件(例如,简单电路、门、逻辑等)有形实体中实现的电路的集合。电路成员关系可能随着时间和潜在的硬件可变性而变得灵活。电路包括可以单独或组合地在操作时执行指定的操作的成员。在示例中,电路的硬件可以被永恒地设计成执行特定操作(例如,硬接线的)。在示例中,电路的硬件可以包括可变连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包括被物理地修改的(例如,对不变的大量粒子的磁性地、电气地、可移动地进行放置等)以对特定操作的指令进行编码的计算机可读介质。在连接物理组件时,硬件成分的底层电气性质例如从绝缘体变成导体或反之亦然。所述指令使得嵌入式硬件(例如,执行单元或加载机制)能够通过可变连接在硬件中创造电路的成员,从而在操作时执行特定操作的部分。因此,当设备操作时,计算机可读介质通信地耦合到电路的其他组件。在示例中,物理组件中的任何一个可以用在多于一个电路的多于一个的成员中。例如,在运行时,执行单元可以在一个时间点用在第一电路系统中的第一电路,并在不同的时间由第一电路系统中的第二电路、或由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)2200可以包括硬件处理器2202(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核或其任何组合)、主存储器2204和静态存储器2206,所述组件的一些或全部组件可以经由互连链路(例如,总线)2208彼此通信。机器2200可以进一步包括显示单元2210、字母数字输入设备2212(例如,键盘)和用户界面(UI)导航设备2214(例如,鼠标)。在示例中,显示单元2210、输入设备2212和UI导航设备2214可以是触摸屏显示器。机器2200可以附加地包括存储设备(例如,驱动单元)2216、信号生成设备2218(例如,扬声器)、网络接口设备2220以及一个或多个传感器2221(诸如,全球定位系统(GPS)传感器、指南针、加速度计或其他传感器)。机器2200可以包括输出控制器2228(诸如,串行(例如,通用串行总线(USB))、并行或其他有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以便通信或控制一个或多个外围设备(例如,打印机、读卡器等)。
存储设备2216可以包括机器可读介质2222,其上存储有一组或多组数据结构或指令2224(例如,软件),所述一组或多组数据结构或指令2224体现本文所描述的技术或功能中的任何一种或多种或由本文所描述的技术或功能中的任何一种或多种来利用。指令2224还可以完全地或至少部分地驻留在主存储器2204内、在静态存储器2206内或在由机器2200对其的执行期间驻留在硬件处理器2202内。在示例中,硬件处理器2202、主存储器2204、静态存储器2206或存储设备2216的一个或任何组合可以构成机器可读介质。
虽然机器可读介质2222被示出为单个介质,但是术语“机器可读介质”可以包括被配置成用于存储所述一个或多个指令2224的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。
术语“机器可读介质”可以包括能够存储、编码或承载用于由机器2200执行的指令且使机器2200执行本公开的技术中的任何一种或多种的任何介质或能够存储、编码或承载由此类指令使用或与此类指令相关联的数据结构的任何介质。非限制性机器可读介质示例可以包括固态存储器,以及光介质和磁介质。在示例中,大容量的机器可读介质包括具有多个具有不变(例如,静止)质量的粒子的机器可读介质2222。因此,大容量的机器可读介质不是瞬态传播信号。大容量的机器可读介质的具体示例可包括:非易失性存储器(诸如半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪速存储器设备);磁盘(诸如内置硬盘和可移除磁盘);磁光盘;以及CD-ROM和DVD-ROM磁盘。
可以进一步利用多种传输协议(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一种协议经由网络接口设备2220使用传输介质通过通信网络2226来传输或接收指令2224。示例通信网络可以包括:局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络、以及无线数据网络(例如,电气与电子工程师协会(IEEE)802.11标准系列称为IEEE 802.16标准系列称为/>)、IEEE 802.15.4标准系列、对等(P2P)网络等等。在示例中,网络接口设备2220可以包括一个或多个物理插孔(例如,以太网、同轴或电话插孔)或一个或多个天线以用于连接到通信网络2226。在示例中,网络接口设备2220可以包括多个天线以用于使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种技术来进行无线通信。术语“传输介质”应视为包括能够存储、编码或携带由机器2200执行的指令的任何无形介质,并且包括数字或模拟通信信号或者促进此类软件通信的其他无形介质。
附加说明和示例
示例1是用于创建工作流的系统,该系统包括:工作流引擎,用于:利用多个学习序列训练机器学习算法,每个学习序列包括学习上下文、至少一个学习步骤以及学习结果;接收包括至少一个输入上下文和期望结果的工作流定义,输入上下文包括至少一个输入约束;利用机器学习算法生成至少一个实现工作流定义的结果序列,每个结果序列包括多个步骤;并且选择该至少一个结果序列中的一个结果序列;以及工作流推荐器,用于使所选择的结果序列呈现在显示器上。
在示例2中,示例1的主题可选地包括:其中,工作流推荐器进一步用于:生成针对结果序列的工作流推荐,工作流推荐包括结果序列中的步骤的有向图。
在示例3中,示例1-2中的任何一项或多项的主题可选地包括:其中,为了生成至少一个结果序列,工作流引擎进一步用于:识别结果序列中的当前步骤;识别当前上下文和语义属性以计算下一步骤;通过机器学习算法,基于当前上下文和语义属性来计算一组候选下一步骤;从所述一组候选下一步骤中选择具有最高排名的候选步骤;并迭代计算下一步骤,直到结果序列完成。
在示例4中,示例3的主题可选地包括:其中,当达到期望结果中识别的结束标记时结果序列完成。
在示例5中,示例3-4中的任何一项或多项的主题可选地包括:其中,语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符。
在示例6中,示例3-5中的任何一项或多项的主题可选地包括:其中,语义属性包括用于3个先前步骤的标识符和用于下一步骤的标识符。
在示例7中,示例1-6中的任何一项或多项的主题可选地包括:其中,为了选择至少一个结果序列中的一个结果序列,工作流引擎进一步用于:根据每个序列满足期望结果的概率来给所述每个序列分配分数;并选择具有最高分数的序列。
在示例8中,示例1-7中的任何一项或多项的主题可选地包括:其中,学习步骤是要在学习序列中执行的任务,其中来自结果序列中的该多个步骤的每个步骤是要在结果序列中执行的任务。
在示例9中,示例1-8中的任何一项或多项的主题可选地包括:其中,输入约束包括结果序列要满足的一个或多个任务前提条件。
在示例10中,示例1-9中的任何一项或多项的主题可选地包括:其中,输入上下文是从由数据的源、目标、操作条件和预期结果组成的组中选择的任何组合。
在示例11中,示例1-10中的任何一项或多项的主题可选地包括:其中,结果序列的每个步骤与至少一个识别用于执行步骤的前提条件的约束相关联。
在示例12中,示例1-11中的任何一项或多项的主题可选地包括:其中,工作流引擎进一步用于:识别属性以将来自结果序列中的步骤的输出连接到结果序列中的下一步骤的输入,属性包括一组输入参数和相应的输入参数类型。
在示例13中,示例1-12中的任何一项或多项的主题可选地包括,其中,工作流引擎进一步用于:与关联记忆交互。
示例14是一种方法,包括:利用多个学习序列训练机器学习算法,每个学习序列包括学习上下文、至少一个学习步骤和学习结果;通过机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义,输入上下文包括至少一个输入约束;通过机器学习算法生成至少一个实现工作流定义的结果序列,每个结果序列包括多个步骤;通过机器学习算法选择该至少一个结果序列中的一个结果序列;并且使所选择的结果序列呈现在显示器上。
在示例15中,示例14的主题可选地包括:生成针对结果序列的工作流建议,工作流建议包括结果序列中的步骤的有向图。
在示例16中,示例14-15中的任何一项或多项的主题可选地包括:其中,生成至少一个结果序列进一步包括:识别结果序列中的当前步骤;识别当前上下文和语义属性以计算下一步骤;通过机器学习算法,基于当前上下文和语义属性来计算一组候选下一步骤;从所述一组候选下一步骤中选择具有最高排名的候选步骤;并迭代计算下一步骤,直到结果序列完成。
在示例17中,示例16的主题可选地包括:其中,当达到期望结果中识别的结束标记时结果序列完成。
在示例18中,示例16-17中的任何一项或多项的主题可选地包括:其中,语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符。
在示例19中,示例16-18中的任何一项或多项的主题可选地包括:其中,语义属性包括用于三个先前步骤的标识符和用于下一步骤的标识符。
在示例20中,示例14-19中的任何一项或多项的主题可选地包括:其中,选择至少一个结果序列中的一个结果序列进一步包括:根据每个序列满足期望结果的概率来给所述每个序列分配分数;并选择具有最高分数的序列。
在示例21中,示例14-20中的任何一项或多项的主题可选地包括:其中,学习步骤是要在学习序列中执行的任务,其中来自结果序列中的该多个步骤的每个步骤是要在结果序列中执行的任务。
在示例22中,示例14-21中的任何一项或多项的主题可选地包括:其中,输入约束包括结果序列要满足的一个或多个任务前提条件。
在示例23中,示例14-22中的任何一项或多项的主题可选地包括:其中,输入上下文是从包括数据的源、目标、操作条件和预期结果的组中选择的任何组合。
在示例24中,示例14-23中的任何一项或多项的主题可选地包括:其中,结果序列的每个步骤与至少一个识别用于执行步骤的前提条件的约束相关联。
在示例25中,示例14-24中的任何一项或多项的主题可选地包括识别属性以将来自结果序列中的步骤的输出连接到结果序列中的下一步骤的输入,属性包括一组输入参数和相应的输入参数类型。
在示例26中,示例14-25中的任何一项或多项的主题可选地包括:其中,机器学习算法与关联记忆交互。
示例27是包括用于执行示例14至26的方法中的任一项的装置的系统。示例28是至少一种包括指令的机器可读介质,这些指令在由机器执行时,使机器执行示例14-26的方法中的任一项。
示例29是至少一种包括指令的机器可读介质,这些指令在由机器执行时使机器用于:利用多个学习序列训练机器学习算法,每个学习序列包括学习上下文、至少一个学习步骤、和学习结果;通过机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义,输入上下文包括至少一个输入约束;通过机器学习算法生成至少一个实现工作流定义的结果序列,每个结果序列包括多个步骤;通过机器学习算法选择该至少一个结果序列中的一个结果序列;并且使所选择的结果序列呈现在显示器上。
在示例30中,示例29的主题可选地包括,其中,指令进一步使机器用于:生成针对结果序列的工作流推荐,该工作流推荐包括结果序列中的步骤的有向图。
在示例31中,示例29-30中的任何一项或多项的主题可选地包括:其中,为了生成至少一个结果序列,指令进一步使得机器用于:识别结果序列中的当前步骤;识别当前上下文和语义属性以计算下一步骤;通过机器学习算法,基于当前上下文和语义属性来计算一组候选下一步骤;从所述一组候选下一步骤中选择具有最高排名的候选步骤;并迭代计算下一步骤,直到结果序列完成。
在示例32中,示例31的主题可选地包括:其中,当达到期望结果中识别的结束标记时结果序列完成。
在示例33中,示例31-32中的任何一项或多项的主题可选地包括:其中,语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符。
在示例34中,示例31-33中的任何一项或多项的主题可选地包括:其中,语义属性包括用于3个先前步骤的标识符和用于下一步骤的标识符。
在示例35中,示例29-34中的任何一项或多项的主题可选地包括:其中,为了选择至少一个结果序列中的一个结果序列,指令进一步使得机器用于:根据每个序列满足期望结果的概率来给所述每个序列分配分数;并选择具有最高分数的序列。
在示例36中,示例29-35中的任何一项或多项的主题可选地包括:其中,学习步骤是要在学习序列中执行的任务,其中来自结果序列中的该多个步骤的每个步骤是要在结果序列中执行的任务。
在示例37中,示例29-36中的任何一项或多项的主题可选地包括:其中,输入约束包括结果序列要满足的一个或多个任务前提条件。
在示例38中,示例29-37中的任何一项或多项的主题可选地包括:其中,输入上下文是从包括数据的源、目标、操作条件和预期结果的组中选择的任何组合。
在示例39中,示例29-38中的任何一项或多项的主题可选地包括:其中,结果序列的每个步骤与至少一个识别用于执行步骤的前提条件的约束相关联。
在示例40中,示例29-39中的任何一项或多项的主题可选地包括:其中,指令进一步使得机器用于:识别属性以将来自结果序列中的步骤的输出连接到结果序列中的下一步骤的输入,属性包括一组输入参数和相应的输入参数类型。
在示例41中,示例29-40中的任何一项或多项的主题可选地包括,其中,指令进一步使得机器用于:与关联记忆交互。
示例42是一种用于创建工作流的系统,该系统包括:用于利用多个学习序列训练机器学习算法的装置,每个学习序列包括学习上下文、至少一个学习步骤和学习结果;用于通过机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义的装置,输入上下文包括至少一个输入约束;用于通过机器学习算法生成至少一个实现工作流定义的结果序列,每个结果序列包括多个步骤;用于通过机器学习算法选择该至少一个结果序列中的一个结果序列的装置;以及用于使所选择的结果序列呈现在显示器上的装置。
在示例43中,示例42的主题可选地包括:用于生成针对结果序列的工作流建议的装置,该工作流建议包括结果序列中的步骤的有向图。
在示例44中,示例42-43中的任何一项或多项的主题可选地包括:其中,生成至少一个结果序列进一步包括:用于识别结果序列中的当前步骤的装置;用于识别当前上下文和语义属性以计算下一步骤的装置;用于通过机器学习算法,基于当前上下文和语义属性来计算一组候选下一步骤的装置;用于从所述一组候选下一步骤中选择具有最高排名的候选步骤的装置;以及用于迭代计算下一步骤,直到结果序列完成的装置。
在示例45中,示例44的主题可选地包括:其中,当达到期望结果中识别的结束标记时结果序列完成。
在示例46中,示例44-45中的任何一项或多项的主题可选地包括:其中,语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符。
在示例47中,示例44-46中的任何一项或多项的主题可选地包括:其中,语义属性包括用于44个先前步骤的标识符和用于下一步骤的标识符。
在示例48中,示例42-47中的任何一项或多项的主题可选地包括:其中,选择至少一个结果序列中的一个结果序列进一步包括:用于根据每个序列满足期望结果的概率来给所述每个序列分配分数的装置;以及用于选择具有最高分数的序列的装置。
在示例49中,示例42-48中的任何一项或多项的主题可选地包括:其中,学习步骤是要在学习序列中执行的任务,其中来自结果序列中的该多个步骤的每个步骤是要在结果序列中执行的任务。
在示例50中,示例42-49中的任何一项或多项的主题可选地包括:其中,输入约束包括结果序列要满足的一个或多个任务前提条件。
在示例51中,示例42-50中的任何一项或多项的主题可选地包括:其中,输入上下文是从包括数据的源、目标、操作条件和预期结果的组中选择的任何组合。
在示例52中,示例42-51中的任何一项或多项的主题可选地包括:其中,结果序列的每个步骤与至少一个识别用于执行步骤的前提条件的约束相关联。
在示例53中,示例42-52中的任何一项或多项的主题可选地包括:用于识别属性以将来自结果序列中的步骤的输出连接到结果序列中的下一步骤的输入的装置,该属性包括一组输入参数和相应的输入参数类型。
在示例54中,示例42-53中的任何一项或多项的主题可选地包括:其中,机器学习算法与关联记忆交互。
示例55是一种用于创建工作流的系统,该系统包括:序列生成器,用于:接收多个训练序列;并解析训练序列以提取每个训练序列中的步骤的顺序、每个步骤的上下文、以及每个步骤的约束;工作流引擎,用于利用训练序列和提取的步骤的顺序、上下文和约束训练机器学习算法,机器学习算法被训练以在给定先前步骤、当前上下文、当前约束、和期望结果的情况下预测下一步骤;以及工作流推荐器,用于测试训练序列的子集,每个训练序列的测试包括以下操作:将输入序列和期望结果输入到工作流推荐器;利用机器学习算法通过迭代计算下一步骤直到达到期望结果来构建输出工作流;并且将输出工作流与相应的训练序列进行比较,基于训练序列的子集的比较来评估工作流推荐器。
在示例56中,示例55的主题可选地包括:其中,训练序列的解析进一步包括利用关于步骤周围的步骤的窗口的信息对每个步骤进行编码。
在实施例57中,实施例55-56中任一项或多项的主题任选地包括:其中,步骤的上下文包括用于执行步骤的至少一个前提条件,每个前提条件是从由源、目标、先决条件、条件和执行步骤的结果组成的组中选择的。
在示例58中,示例55-57中的任何一项或多项的主题可选地包括:其中,步骤的约束包括步骤必须满足的至少一个必需的前提条件,以具有有效序列。
在示例59中,示例55-58中的任何一项或多项的主题可选地包括,其中输入序列进一步包括初始步骤、下一步骤的上下文和下一步骤的约束。
在示例60中,示例55-59中的任何一项或多项的主题可选地包括,其中输入序列进一步包括多个先前步骤、初始步骤的上下文和初始步骤的约束。
在示例61中,示例55-60中的任何一项或多项的主题可选地包括:其中,序列是任务的有序列表,其中输出工作流包括输出序列和输出序列中的任务的有向图。
在示例62中,示例55-61中的任何一项或多项的主题可选地包括:其中,训练序列的解析进一步包括利用预定义的构造规则以验证每个训练序列。
在示例63中,示例55-62中的任何一项或多项的主题可选地包括:其中,为了接收多个训练序列,序列生成器进一步用于生成训练序列。
在示例64中,示例55-63中的任何一项或多项的主题可选地包括:其中,训练序列的解析进一步包括对每个步骤进行编码,包括关于序列中的预定数量的先前步骤的信息和关于序列中的预定数量的后续步骤的信息。
在示例65中,示例64的主题可选地包括:其中,序列中的先前步骤的预定数量是三,并且序列中的后续步骤的预定数量是一。
在示例66中,示例55-65中的任何一项或多项的主题可选地包括:其中,为了计算下一步骤,工作流推荐器进一步用于:识别满足当前上下文和约束的多个候选下一步骤;将候选下一步骤进行排名;并基于排名选择下一步骤。
在示例67中,示例55-66中的任何一项或多项的主题可选地包括:其中,为了测试训练序列的子集,工作流推荐器进一步用于:识别多个候选有效序列;将每个候选有效序列进行排名;并基于排名选择最佳候选有效序列。
示例68是一种方法,包括:接收多个训练序列;解析训练序列以提取每个训练序列中的步骤的顺序、每个步骤的上下文、以及每个步骤的约束;利用训练序列和提取的步骤的顺序、上下文和约束训练机器学习算法,机器学习算法被训练以在给定先前步骤、当前上下文、当前约束、和期望结果的情况下预测下一步骤;测试具有训练序列的子集的工作流推荐器,每个训练序列的测试包括以下操作:将输入序列和期望结果输入到工作流推荐器;利用机器学习算法通过迭代计算下一步骤直到达到期望结果来构建输出工作流;并且将输出工作流与相应的训练序列进行比较;并且基于训练序列的子集的比较来评估工作流推荐器。
在示例69中,示例68的主题可选地包括:其中,训练序列的解析进一步包括:利用关于步骤周围的步骤的窗口的信息对每个步骤进行编码。
在实施例70中,实施例68-69中任一项或多项的主题任选地包括:其中,步骤的上下文包括用于执行步骤的至少一个前提条件,每个前提条件是从由源、目标、先决条件、条件和执行步骤的结果组成的组中选择的。
在示例71中,示例68-70中的任何一项或多项的主题可选地包括:其中,步骤的约束包括步骤必须满足的至少一个必需的前提条件,以具有有效序列。
在示例72中,示例68-71中的任何一项或多项的主题可选地包括,其中输入序列进一步包括初始步骤、下一步骤的上下文和下一步骤的约束。
在示例73中,示例68-72中的任何一项或多项的主题可选地包括,其中输入序列进一步包括多个先前步骤、初始步骤的上下文和初始步骤的约束。
在示例74中,示例68-73中的任何一项或多项的主题可选地包括:其中,序列是任务的有序列表,其中输出工作流包括输出序列和输出序列中的任务的有向图。
在示例75中,示例68-74中的任何一项或多项的主题可选地包括:其中,解析训练序列进一步包括:利用预定义的构造规则来验证每个训练序列。
在示例76中,示例68-75中的任何一项或多项的主题可选地包括:其中,接收多个训练序列进一步包括:由序列生成器生成训练序列。
在示例77中,示例68-76中的任何一项或多项的主题可选地包括:其中,解析训练序列进一步包括:对每个步骤进行编码,包括关于序列中的预定数量的先前步骤的信息和关于序列中的预定数量的后续步骤的信息。
在示例78中,示例77的主题可选地包括:其中,序列中的先前步骤的预定数量是三,并且序列中的后续步骤的预定数量是一。
在示例79中,示例68-78中的任何一项或多项的主题可选地包括:其中,计算下一步骤进一步包括:识别满足当前上下文和约束的多个候选下一步骤;将候选下一步骤进行排名;并基于排名选择下一步骤。
在示例80中,示例68-79中的任何一项或多项的主题可选地包括:其中,测试工作流推荐器进一步包括:识别多个候选有效序列;将每个候选有效序列进行排名;并基于排名选择最佳候选有效序列。
示例81是包括用于执行示例68至80的方法中的任一项的装置的系统。
示例82是至少一种包括指令的机器可读介质,这些指令在由机器执行时,使机器执行示例68-80的方法中的任一项。
示例83是至少一种包括指令的机器可读介质,这些指令在由机器执行时,使得机器用于:接收多个训练序列;解析训练序列以提取每个训练序列中的步骤的顺序、每个步骤的上下文、以及每个步骤的约束;利用训练序列和提取的步骤的顺序、上下文和约束训练机器学习算法,机器学习算法被训练以在给定先前步骤、当前上下文、当前约束、和期望结果的情况下预测下一步骤;测试具有训练序列的子集的工作流推荐器,每个训练序列的测试包括以下操作:将输入序列和期望结果输入到工作流推荐器;利用机器学习算法通过迭代计算下一步骤直到达到期望结果来构建输出工作流;并且将输出工作流与相应的训练序列进行比较;并且基于训练序列的子集的比较来评估工作流推荐器。
在示例84中,示例83的主题可选地包括:其中,为了解析训练序列,指令进一步使得机器用于:利用关于步骤周围的步骤的窗口的信息对每个步骤进行编码。
在实施例85中,实施例83-84中任一项或多项的主题任选地包括:其中,步骤的上下文包括用于执行步骤的至少一个前提条件,每个前提条件是从由源、目标、先决条件、条件和执行步骤的结果组成的组中选择的。
在示例86中,示例83-85中的任何一项或多项的主题可选地包括:其中,步骤的约束包括步骤必须满足的至少一个必需的前提条件,以具有有效序列。
在示例87中,示例83-86中的任何一项或多项的主题可选地包括,其中输入序列进一步包括初始步骤、下一步骤的上下文和下一步骤的约束。
在示例88中,示例83-87中的任何一项或多项的主题可选地包括,其中输入序列进一步包括多个先前步骤、初始步骤的上下文和初始步骤的约束。
在示例89中,示例83-88中的任何一项或多项的主题可选地包括:其中,序列是任务的有序列表,其中输出工作流包括输出序列和输出序列中的任务的有向图。
在示例90中,示例83-89中的任何一项或多项的主题可选地包括:其中,为了解析训练序列,指令进一步使得机器用于:利用预定义的构造规则来验证每个训练序列。
在示例91中,示例83-90中的任何一项或多项的主题可选地包括:其中,为了接收多个训练序列,指令进一步使得机器用于:由序列生成器生成训练序列。
在示例92中,示例83-91中的任何一项或多项的主题可选地包括:其中,为了解析训练序列,指令进一步使得机器用于:对每个步骤进行编码,包括关于序列中的预定数量的先前步骤的信息和关于序列中的预定数量的后续步骤的信息。
在示例93中,示例92的主题可选地包括:其中,序列中的先前步骤的预定数量是三,并且序列中的后续步骤的预定数量是一。
在示例94中,示例83-93中的任何一项或多项的主题可选地包括:其中,为了计算下一步骤,指令进一步使得机器用于:识别满足当前上下文和约束的多个候选下一步骤;将候选下一步骤进行排名;并基于排名选择下一步骤。
在示例95中,示例83-94中的任何一项或多项的主题可选地包括:其中,为了测试工作流推荐器,指令进一步使得机器用于:识别多个候选有效序列;将每个候选有效序列进行排名;并基于排名选择最佳候选有效序列。
示例96是一种用于创建工作流的系统,该系统包括:用于接收多个训练序列的装置;解析训练序列以提取每个训练序列中的步骤的顺序、每个步骤的上下文、以及每个步骤的约束;工作流引擎,用于利用训练序列和提取的步骤的顺序、上下文和约束训练机器学习算法的装置,机器学习算法被训练以在给定先前步骤、当前上下文、当前约束、和期望结果的情况下预测下一步骤;用于测试具有训练序列的子集的工作流推荐器的装置,每个训练序列的测试包括以下操作:将输入序列和期望结果输入到工作流推荐器;利用机器学习算法通过迭代计算下一步骤直到达到期望结果来构建输出工作流;并且将输出工作流与相应的训练序列进行比较;以及用于基于训练序列的子集的比较来评估工作流推荐器的装置。
在示例97中,示例96的主题可选地包括:其中,训练序列的解析进一步包括:利用关于步骤周围的步骤的窗口的信息对每个步骤进行编码。
在实施例98中,实施例96-97中任一项或多项的主题任选地包括:其中,步骤的上下文包括用于执行步骤的至少一个前提条件,每个前提条件是从由源、目标、先决条件、条件和执行步骤的结果组成的组中选择的。
在示例99中,示例96-98中的任何一项或多项的主题可选地包括:其中,步骤的约束包括步骤必须满足的至少一个必需的前提条件,以具有有效序列。
在示例100中,示例96-99中的任何一项或多项的主题可选地包括,其中输入序列进一步包括初始步骤、下一步骤的上下文和下一步骤的约束。
在示例101中,示例96-100中的任何一项或多项的主题可选地包括,其中输入序列进一步包括多个先前步骤、初始步骤的上下文和初始步骤的约束。
在示例102中,示例96-101中的任何一项或多项的主题可选地包括:其中,序列是任务的有序列表,其中输出工作流包括输出序列和输出序列中的任务的有向图。
在示例103中,示例96-102中的任何一项或多项的主题可选地包括:其中解析训练序列进一步包括:利用预定义的构造规则来验证每个训练序列。
在示例104中,示例96-103中的任何一项或多项的主题可选地包括:其中,接收多个训练序列进一步包括:由序列生成器生成训练序列。
在示例105中,示例96-104中的任何一项或多项的主题可选地包括:其中,解析训练序列进一步包括:对每个步骤进行编码,包括关于序列中的预定数量的先前步骤的信息和关于序列中的预定数量的后续步骤的信息。
在示例106中,示例105的主题可选地包括:其中,序列中的先前步骤的预定数量是三,并且序列中的后续步骤的预定数量是一。
在示例107中,示例96-106中的任何一项或多项的主题可选地包括:其中,计算下一步骤进一步包括:识别满足当前上下文和约束的多个候选下一步骤;将候选下一步骤进行排名;并基于排名选择下一步骤。
在示例108中,示例96-107中的任何一项或多项的主题可选地包括:其中,测试工作流推荐器进一步包括:识别多个候选有效序列;将每个候选有效序列进行排名;并基于排名选择最佳候选有效序列。
以上的详细描述包括对附图的参照,这些附图形成了详细描述的一部分。所述附图以图示的方式示出了可以被实践的具体实施例。这些实施例在此也被称为“示例”。这类示例可以包括除了所示出或所描述的那些要素之外的要素。然而,本发明人还考虑到仅提供了所示出或所描绘的那些要素的示例。此外,或者针对本文中所示出或所描述的具体示例(或者其一个或多个方面),或者针对本文中所示出或所描述的其他示例(或者其一个或多个方面),本发明人还考虑到使用所示出或所描述的那些要素的任何组合或排列(或者其一个或多个方面)的示例。
在本文档中提及的所有出版物、专利和专利文献通过引用而全部内容结合在此,如同通过引用而单独合并。在本文档与通过引用并于此的那些文档之间的不一致的使用的情况下,在并入的(多个)参考文献中的使用应被视为对本文档的使用的补充;对于不可协调的不一致,以本文档中的用法为准。
在本文档中,如在专利文档中是普遍的,术语“一个(a)”或“一个(an)”被用于包括一个或多个,独立于“至少一个”或者“一个或多个”的任何其他实例或用法。在本文中,除非另外指明,否则术语“或”被用来指非排他性的“或”,使得“A或B”包括“A但非B”、“B但非A”以及“A和B”。在所附权利要求中,术语“包括(including)”和“其中(in which)”被用作相应的术语“包括(comprising)”和“其中(wherein)”的简明英语对等词。此外,在以下权利要求书中,术语“包括(including)”和“包括(comprising)”是开放式的,即,除在权利要求中列在此类术语之后的那些元素外还包括元素的系统、设备、物品或过程仍被视为落入该权利要求的范围内。此外,在所附权利要求中,术语“第一”、“第二”和“第三”等仅用作标记,并且不旨在对其对象强加数字要求。
以上说明旨在是说明性而非限制性的。例如,以上所描述的示例(或其一个或多个方面)可彼此组合使用。如本领域的普通技术人员在审阅上述说明后可以使用其他实施例。摘要将允许读者快速确定本技术公开的性质,并且在提交所述摘要时应当理解的是所述摘要将不用于解释或限制权利要求的范围或含义。而且,在以上具体实施方式中,可以将各个特征分组在一起以便精简本公开。这不应当被解释为意图指未要求保护的公开的特征对于任何权利要求是必需的。相反,发明性主题可在于比特定的公开实施例的所有特征要少的特征。因此,所附权利要求在此被合并到具体实施方式中,其中每项权利要求作为单独的实施例而独立存在。这些实施例的范围应当参考所附权利要求书、连同这样的权利要求书有权获得的等效物的全部范围来确定。

Claims (24)

1.一种用于创建工作流的系统,所述系统包括:
工作流引擎,用于:
利用多个学习序列训练机器学习算法,每个学习序列包括学习上下文、至少一个学习步骤、和学习结果;
接收包括至少一个输入上下文和期望结果的工作流定义,所述输入上下文包括至少一个输入约束;
利用所述机器学习算法生成实现所述工作流定义的至少一个结果序列,每个结果序列包括多个步骤,生成所述至少一个结果序列涉及对语义属性的使用,其中,所述语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符;以及
选择至少一个所述结果序列中的一个结果序列;以及
工作流推荐器,用于使所选择的结果序列呈现在显示器上。
2.如权利要求1所述的系统,其特征在于,所述工作流推荐器进一步用于:
生成针对所述结果序列的工作流推荐,所述工作流推荐包括所述结果序列中的步骤的有向图。
3.如权利要求1所述的系统,其特征在于,为了生成所述至少一个所述结果序列,所述工作流引擎进一步用于:识别所述结果序列中的当前步骤;
识别当前上下文和语义属性以计算下一步骤;
通过所述机器学习算法,基于所述当前上下文和所述语义属性来计算一组候选下一步骤;
从所述一组候选下一步骤中选择具有最高排名的候选步骤;以及
迭代地计算所述下一步骤,直到所述结果序列完成。
4.如权利要求3所述的系统,其特征在于,当到达所述期望结果中识别的结束标记时,所述结果序列完成。
5.如权利要求3所述的系统,其特征在于,所述语义属性包括用于3个先前步骤的标识符和用于所述下一步骤的标识符。
6.如权利要求1所述的系统,其特征在于,为了选择所述至少一个所述结果序列中的一个结果序列,所述工作流引擎进一步用于:
根据每个序列满足所述期望结果的概率为所述每个序列分配分数;以及
选择具有最高分数的序列。
7.如权利要求1所述的系统,其特征在于,所述学习步骤是要在所述学习序列中执行的任务,其中来自所述结果序列中的所述多个步骤的每个步骤是要在所述结果序列中执行的任务。
8.如权利要求1所述的系统,其特征在于,所述输入约束包括所述结果序列要满足的一个或多个任务前提条件。
9.如权利要求1所述的系统,其特征在于,所述输入上下文是从由数据的源、目标、操作条件和预期的结果组成的组中选择的任何组合。
10.一种用于创建工作流的方法,所述方法包括:
利用多个学习序列训练机器学习算法,每个学习序列包括学习上下文、至少一个学习步骤、和学习结果;
通过所述机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义,所述输入上下文包括至少一个输入约束;
通过所述机器学习算法生成实现所述工作流定义的至少一个结果序列,每个结果序列包括多个步骤,生成所述至少一个结果序列涉及对语义属性的使用,其中,所述语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符;
通过所述机器学习算法选择至少一个所述结果序列中的一个结果序列;以及
使所选择的结果序列呈现在显示器上。
11.如权利要求10所述的方法,进一步包括:
生成针对所述结果序列的工作流推荐,所述工作流推荐包括所述结果序列中的步骤的有向图。
12.如权利要求10所述的方法,其特征在于,生成至少一个结果序列进一步包括:
识别所述结果序列中的当前步骤;
识别当前上下文和语义属性以计算下一步骤;
通过所述机器学习算法,基于所述当前上下文和所述语义属性来计算一组候选下一步骤;
从所述一组候选下一步骤中选择具有最高排名的候选步骤;以及
迭代地计算所述下一步骤,直到所述结果序列完成。
13.如权利要求12所述的方法,其特征在于,当到达所述期望结果中识别的结束标记时,所述结果序列完成。
14.如权利要求12所述的方法,其特征在于,所述语义属性包括用于三个先前步骤的标识符和用于所述下一步骤的标识符。
15.如权利要求10所述的方法,其特征在于,选择所述至少一个所述结果序列中的一个结果序列进一步包括:
根据每个序列满足所述期望结果的概率为所述每个序列分配分数;以及
选择具有最高分数的序列。
16.如权利要求10所述的方法,其特征在于,所述学习步骤是要在所述学习序列中执行的任务,其中来自所述结果序列中的所述多个步骤的每个步骤是要在所述结果序列中执行的任务。
17.如权利要求10所述的方法,其特征在于,所述输入约束包括所述结果序列要满足的一个或多个任务前提条件。
18.如权利要求10所述的方法,其特征在于,所述输入上下文是从由数据的源、目标、操作条件和预期的结果组成的组中选择的任何组合。
19.如权利要求10所述的方法,其特征在于,所述结果序列的每个步骤与识别用于执行所述步骤的前提条件的至少一个约束相关联。
20.如权利要求10所述的方法,进一步包括:
识别属性以将来自所述结果序列中的步骤的输出连接到所述结果序列中的下一步骤的输入,所述属性包括一组输入参数和相应的输入参数类型。
21.如权利要求10所述的方法,其特征在于,所述机器学习算法与关联记忆交互。
22.一种用于创建工作流的系统,所述系统包括:用于执行权利要求10至21中任一项所述的方法的装置。
23.一种用于创建工作流的系统,所述系统包括:
用于利用多个学习序列训练机器学习算法的装置,每个学习序列包括学习上下文、至少一个学习步骤、和学习结果;
用于通过所述机器学习算法接收包括至少一个输入上下文和期望结果的工作流定义的装置,所述输入上下文包括至少一个输入约束;
用于通过所述机器学习算法生成实现所述工作流定义的至少一个结果序列的装置,每个结果序列包括多个步骤,生成所述至少一个结果序列涉及对语义属性的使用,其中,所述语义属性包括用于预定数量的先前步骤的标识符和用于预定数量的后续步骤的标识符;
用于通过所述机器学习算法选择至少一个所述结果序列中的一个结果序列的装置;以及
用于使所选择的结果序列呈现在显示器上的装置。
24.一种机器可读介质,所述机器可读介质存储有指令,所述指令如果由机器执行则操作用于使所述机器执行如权利要求10至21中任一项所述的方法。
CN201780061220.7A 2016-11-02 2017-09-27 工作流的自动生成 Active CN109791642B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/341,819 US20190205792A1 (en) 2016-11-02 2016-11-02 Automated generation of workflows
US15/341,819 2016-11-02
PCT/US2017/053622 WO2018125337A2 (en) 2016-11-02 2017-09-27 Automated generation of workflows

Publications (2)

Publication Number Publication Date
CN109791642A CN109791642A (zh) 2019-05-21
CN109791642B true CN109791642B (zh) 2023-11-17

Family

ID=62710604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780061220.7A Active CN109791642B (zh) 2016-11-02 2017-09-27 工作流的自动生成

Country Status (4)

Country Link
US (1) US20190205792A1 (zh)
CN (1) CN109791642B (zh)
DE (1) DE112017005538T5 (zh)
WO (1) WO2018125337A2 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086608B2 (en) 2016-02-05 2021-08-10 Sas Institute Inc. Automated message-based job flow resource management in container-supported many task computing
US11080031B2 (en) 2016-02-05 2021-08-03 Sas Institute Inc. Message-based coordination of container-supported many task computing
US10614381B2 (en) * 2016-12-16 2020-04-07 Adobe Inc. Personalizing user experiences with electronic content based on user representations learned from application usage data
US10685295B1 (en) * 2016-12-29 2020-06-16 X Development Llc Allocating resources for a machine learning model
JP6847801B2 (ja) * 2017-09-28 2021-03-24 株式会社日立製作所 設計支援装置および設計支援方法
US10684935B2 (en) * 2018-03-16 2020-06-16 Cisco Technology, Inc. Deriving the shortest steps to reproduce a device failure condition
WO2019236125A1 (en) * 2018-06-06 2019-12-12 EmbodyVR, Inc. Automated versioning and evaluation of machine learning workflows
US11315055B2 (en) * 2018-07-26 2022-04-26 Salesforce.Com, Inc. System and method for visualizing an order allocation process
US11423326B2 (en) * 2018-09-14 2022-08-23 Microsoft Technology Licensing, Llc Using machine-learning methods to facilitate experimental evaluation of modifications to a computational environment within a distributed system
US11790224B2 (en) * 2018-10-20 2023-10-17 Oracle International Corporation Machine learning from the integration flow metadata
CN109709893A (zh) * 2018-12-25 2019-05-03 中国人民解放军空军工程大学 幅值受限控制系统的有界补偿方法
US20220114513A1 (en) * 2019-01-11 2022-04-14 Sirionlabs Pte. Ltd. Method and system for configuring a workflow
CN110187938A (zh) * 2019-05-24 2019-08-30 北京神州泰岳软件股份有限公司 一种页面工作流的组装方法及装置
US11656903B2 (en) * 2019-06-25 2023-05-23 Intel Corporation Methods and apparatus to optimize workflows
WO2021042081A1 (en) * 2019-08-30 2021-03-04 Mosys, Inc. Graph memory engine
US11433536B2 (en) * 2019-09-19 2022-09-06 UiPath, Inc. Process understanding for robotic process automation (RPA) using sequence extraction
US11200539B2 (en) 2019-10-15 2021-12-14 UiPath, Inc. Automatic completion of robotic process automation workflows using machine learning
US20220075605A1 (en) * 2019-10-15 2022-03-10 UiPath, Inc. Training and using artificial intelligence (ai) / machine learning (ml) models to automatically supplement and/or complete code of robotic process automation workflows
US11847500B2 (en) * 2019-12-11 2023-12-19 Cisco Technology, Inc. Systems and methods for providing management of machine learning components
CN111831259A (zh) * 2020-04-15 2020-10-27 中国人民解放军军事科学院战争研究院 一种引导式的智能处理定制方法
US20210357440A1 (en) * 2020-05-18 2021-11-18 Adobe Inc. Context-based Recommendation System for Feature Search
US20210383259A1 (en) * 2020-06-04 2021-12-09 Outreach Corporation Dynamic workflow optimization using machine learning techniques
US11379772B2 (en) * 2020-08-04 2022-07-05 Nice Ltd. Systems and methods for analyzing computer input to provide suggested next action for automation
CN112116330B (zh) * 2020-09-28 2024-05-28 中国银行股份有限公司 一种工作流错误队列自动化处理方法和装置
US11928626B2 (en) 2021-01-07 2024-03-12 The Toronto-Dominion Bank System and method for persisting data generated in executing a process workflow
US11449312B2 (en) 2021-01-07 2022-09-20 The Toronto-Dominion Bank System and method for executing a process workflow
US11743350B2 (en) 2021-01-07 2023-08-29 The Toronto-Dominion Bank System and method for integrating external services into process workflow environments
US11561827B2 (en) 2021-01-07 2023-01-24 The Toronto-Dominion Bank System and method for executing a dynamic routing service
CN112686580B (zh) * 2021-01-31 2023-05-16 重庆渝高科技产业(集团)股份有限公司 一种可自定义流程的工作流定义方法及系统
US20220292415A1 (en) * 2021-03-10 2022-09-15 Servicenow, Inc. Automated Playbook Generation
US11681964B2 (en) * 2021-03-15 2023-06-20 Cerner Innovation, Inc. System and method for optimizing design, workflows, performance, and configurations based on design elements
US11763228B2 (en) 2021-04-06 2023-09-19 Nice Ltd. Systems and methods for analyzing and connecting automation sequences
US11994966B2 (en) * 2021-09-28 2024-05-28 Cerner Innovation, Inc. System and method for autonomous testing, machine-learning model-supervised prioritization, and randomized workflow generation
CN114115878A (zh) * 2021-11-29 2022-03-01 杭州数梦工场科技有限公司 一种工作流节点推荐方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115640A (en) * 1997-01-17 2000-09-05 Nec Corporation Workflow system for rearrangement of a workflow according to the progress of a work and its workflow management method
CN101741650A (zh) * 2010-01-04 2010-06-16 北京航空航天大学 基于QoS预测的服务组合方法及装置
CN102696052A (zh) * 2009-09-17 2012-09-26 认知建立时机公司 教育内容产生的装置、系统和方法
CN105378764A (zh) * 2013-07-12 2016-03-02 微软技术许可有限责任公司 计算机-人交互式学习中的交互式概念编辑

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499906B2 (en) * 2005-09-05 2009-03-03 International Business Machines Corporation Method and apparatus for optimization in workflow management systems
WO2008079325A1 (en) * 2006-12-22 2008-07-03 Hartford Fire Insurance Company System and method for utilizing interrelated computerized predictive models
US8660905B2 (en) * 2007-10-31 2014-02-25 Sap Ag Method and system for validating process models
US8694355B2 (en) * 2008-05-30 2014-04-08 Sri International Method and apparatus for automated assistance with task management
US20150310362A1 (en) * 2010-08-09 2015-10-29 Poiesis Informatics, Inc. Health Care Work Flow Modeling with Proactive Metrics
US20140164048A1 (en) * 2012-12-07 2014-06-12 Xerox Corporation Scalable weight-agnostic multi-objective qos optimization for workflow planning
US20140207506A1 (en) * 2013-01-21 2014-07-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for recommending a workflow
US20150081326A1 (en) * 2013-09-19 2015-03-19 Siemens Medical Solutions Usa, Inc. Healthcare Process Management Using Context

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115640A (en) * 1997-01-17 2000-09-05 Nec Corporation Workflow system for rearrangement of a workflow according to the progress of a work and its workflow management method
CN102696052A (zh) * 2009-09-17 2012-09-26 认知建立时机公司 教育内容产生的装置、系统和方法
CN101741650A (zh) * 2010-01-04 2010-06-16 北京航空航天大学 基于QoS预测的服务组合方法及装置
CN105378764A (zh) * 2013-07-12 2016-03-02 微软技术许可有限责任公司 计算机-人交互式学习中的交互式概念编辑

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Learning Styles Diagnosis based on User Interface Behaviors for the Customization of Learning Interfaces in an Intelligent Tutoring System;Hyun Jin Cha等;《Computer Science》;20060630;全文 *

Also Published As

Publication number Publication date
US20190205792A1 (en) 2019-07-04
WO2018125337A3 (en) 2018-08-23
CN109791642A (zh) 2019-05-21
DE112017005538T5 (de) 2019-07-25
WO2018125337A2 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
CN109791642B (zh) 工作流的自动生成
CN110366734B (zh) 优化神经网络架构
CN109800885A (zh) 针对黑盒机器学习模型的规则确定
CN111602148A (zh) 正则化神经网络架构搜索
US20150339415A1 (en) System and method for creating a simulation model via crowdsourcing
CN115917535A (zh) 推荐模型的训练方法、推荐方法、装置及计算机可读介质
CN116664719B (zh) 一种图像重绘模型训练方法、图像重绘方法及装置
CN111708876A (zh) 生成信息的方法和装置
CN113688326B (zh) 推荐方法、装置、设备及计算机可读存储介质
KR102384860B1 (ko) 템플릿이 제공되어 상품 업로드 편의성이 향상된 오픈마켓 플랫폼의 운영방법
CN109978175A (zh) 用于机器学习模型的并行化坐标下降法
CN111738780A (zh) 一种推荐对象的方法及系统
US20190156231A1 (en) User segmentation using predictive model interpretation
CN112256537A (zh) 模型运行状态的展示方法、装置、计算机设备和存储介质
CN110427564A (zh) 将深度学习集成到广义加性混合效应(game)框架中
CN114357319A (zh) 网络请求处理方法、装置、设备、存储介质及程序产品
Cortez A tutorial on using the rminer R package for data mining tasks
CN114880566A (zh) 基于图神经网络的用户行为分析方法、装置、设备及介质
WO2021258968A1 (zh) 小程序分类方法、装置、设备及计算机可读存储介质
CN114238764A (zh) 基于循环神经网络的课程推荐方法、装置及设备
CN113449176A (zh) 基于知识图谱的推荐方法及装置
CN111291868A (zh) 网络模型训练方法、装置、设备及计算机可读存储介质
IONIŢĂ Data mining techniques for e-learning.
US20220164659A1 (en) Deep Learning Error Minimizing System for Real-Time Generation of Big Data Analysis Models for Mobile App Users and Controlling Method for the Same
CN112507185B (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
GR01 Patent grant
GR01 Patent grant