特征处理权衡管理的制作方法

文档序号:11160886阅读:450来源:国知局
特征处理权衡管理的制造方法与工艺

机器学习组合来自统计学和人工智能的技术以创建可从经验数据学习并推广到解决诸如自然语言处理、金融欺诈检测、恐怖主义威胁级别检测、人类健康诊断等各种领域中的问题的算法。近年来,正在从诸如各种传感器、web服务器日志、社交媒体服务、金融交易记录、安全摄像机等各种各种的来源收集可潜在用于机器学习模型的越来越多的原始数据。

传统上,统计学和人工智能方面的专业知识是开发和使用机器学习模型的前提条件。对于许多业务分析师并甚至对于高资格的主题专家,获得这种专业知识的困难有时是太大的障碍,以至于不能充分利用潜在可用的大量数据来改进业务预测和决定。此外,许多机器学习技术可以是计算密集的,并且在至少一些情况下,可能难以精确地预测技术的各个阶段可能需要多少计算能力。鉴于这种不可预测性,对于商业组织来说建立他们自己的机器学习计算设施可能并不总是可取的或可行的。

从机器学习算法获得的结果的质量可以取决于用于训练模型的经验数据有多好地捕获数据中表示的不同变量之间的关键关系以及可如何高效和有效地识别这些关系。取决于将使用机器学习解决的问题的性质,可能必须分析非常大的数据组以便能够进行准确预测,特别是相对不频繁但重要的事件的预测。例如,在金融欺诈检测应用中,其中欺诈交易的数量通常是交易总数的非常小的一小部分,识别可用于将交易标记为欺诈的因素可潜在需要分析数百万交易记录,每个表示几十个或甚至几百个变量。对原始输入数据组大小、净化或归一化大量潜在不完整或含有错误的记录和/或提取原始数据的代表性子集的能力的约束也表示对于机器学习技术的许多潜在受益者不容易克服的障碍。对于许多机器学习问题,在数据可有效地用于训练模型之前,变换可能必须应用于各种输入数据变量。在一些传统机器学习环境中,可用于应用此类变换的机制可能不是最佳的,例如,有时可能必须逐个地将类似的变换应用于数据组的许多不同变量,潜在地需要大量繁琐和易出错的工作。

附图说明

图1示出根据至少一些实施方案的可实现机器学习服务的各种部件的示例性系统环境。

图2示出根据至少一些实施方案的使用提供商网络的多种网络可访问服务实现的机器学习服务的实例。

图3示出根据至少一些实施方案的用于机器学习服务的提供商网络的多个可用性容器和安全容器的使用的实例。

图4示出根据至少一些实施方案的可在机器学习服务处生成的多个处理计划和对应资源组的实例。

图5示出根据至少一些实施方案的机器学习服务处的作业的异步调度的实例。

图6示出根据至少一些实施方案的可使用机器学习服务生成和存储的示例性制品(artifact)。

图7示出根据至少一些实施方案的响应于实例化数据源的客户端请求的统计的自动生成的实例。

图8示出根据至少一些实施方案的可在机器学习服务处支持的若干模型使用模式。

图9a和图9b是示出根据至少一些实施方案的可在支持机器学习作业的异步调度的机器学习服务处执行的操作的方面的流程图。

图10a是示出根据至少一些实施方案的可在支持一组幂等编程接口的机器学习服务处执行的操作的方面的流程图。

图10b是示出根据至少一些实施方案的可在机器学习服务处执行以收集并散布关于与不同问题域相关的最佳实践的信息的操作的方面的流程图。

图11示出根据至少一些实施方案的与机器学习服务处的数据变换的配方的使用相关联的示例性交互。

图12示出根据至少一些实施方案的配方的示例性部分。

图13示出根据至少一些实施方案的可用于定义配方句法的示例性语法。

图14示出根据至少一些实施方案的可针对配方的一部分生成的抽象句法树的实例。

图15示出根据至少一些实施方案的可用于搜索可从机器学习服务获得的域特定配方的编程接口的实例。

图16示出根据至少一些实施方案的机器学习服务的实例,所述机器学习服务代表客户端自动探索配方变换的参数设置的范围,并且基于此类探索的结果选择可接受或推荐的参数设置。

图17是示出根据至少一些实施方案的可在支持用于数据组变换的可重新使用配方的机器学习服务处执行的操作的方面的流程图。

图18示出根据至少一些实施方案的用于通过机器学习服务对大的输入数据组执行有效存储器内过滤操作的示例性过程。

图19示出根据至少一些实施方案的与改变用于对机器学习数据组的过滤操作序列的块大小相关联的权衡。

图20a示出根据至少一些实施方案的块级过滤操作(包括混排之后进行分裂)的示例性序列。

图20b示出根据至少一些实施方案的包括块级过滤以及块内过滤的存储器内过滤操作的示例性序列。

图21示出根据至少一些实施方案的对数据组的存储器内采样的替代方法的实例。

图22示出根据至少一些实施方案的基于观察记录边界的位置确定块边界的实例。

图23示出根据至少一些实施方案的可响应于对从各种数据源类型中的任一个提取数据记录的请求而在机器学习服务处调度的作业的实例。

图24示出根据至少一些实施方案的可由客户端使用由机器学习服务实现的I/O(输入-输出)库的编程接口提交的记录检索请求的示例性组成元素。

图25是示出根据至少一些实施方案的可在实现用于对大输入数据组的存储器内过滤操作序列的I/O库的机器学习服务处执行的操作的方面的流程图。

图26示出根据至少一些实施方案的可用于提高由机器学习模型进行的预测的质量的迭代过程的实例。

图27示出根据至少一些实施方案的可用于机器学习模型的交叉验证的数据组分裂的实例。

图28示出根据至少一些实施方案的用于可使用伪随机数序列执行的交叉验证的输入数据组的一致块级分裂的实例。

图29示出根据至少一些实施方案的可由于不适当地重置伪随机数生成器发生的输入数据组的不一致块级分裂的实例。

图30示出根据至少一些实施方案的调度相关训练和评估作业对的示例性时间线。

图31示出根据至少一些实施方案的响应于客户端请求在机器学习服务处生成一致性元数据的系统的实例。

图32是示出根据至少一些实施方案的可响应于对机器学习模型的训练和评估迭代的请求在机器学习服务处执行的操作的方面的流程图。

图33示出根据至少一些实施方案的可针对机器学习服务处的预测生成的决定树的实例。

图34示出根据至少一些实施方案的在机器学习模型的训练阶段的树构造过程期间按深度优先次序将决定树节点的表示存储在持久性存储装置处的实例。

图35示出根据至少一些实施方案的可为决定树的节点生成的预测效用分布信息的实例。

图36示出根据至少一些实施方案的至少部分地基于运行时间存储器占用目标和累积预测效用的组合修剪决定树的实例。

图37示出根据至少一些实施方案的至少部分地基于预测时间变化目标修剪决定树的实例。

图38示出根据至少一些实施方案的可生成用于训练在机器学习服务处使用决定树总体的模型的多个作业的实例。

图39是示出根据至少一些实施方案的可在机器学习服务处执行以按深度优先次序生成并修剪存储到持久性存储装置的决定树的操作的方面的流程图。

图40示出根据至少一些实施方案的被配置来基于对候选特征处理变换的成本和益处的分析为客户端生成特征处理提议的机器学习服务的实例。

图41示出根据至少一些实施方案的基于测量的预测速度和预测质量从若干替代者选择特征处理组的实例。

图42示出根据至少一些实施方案的机器学习服务的客户端与特征处理管理器之间的示例性交互。

图43示出根据至少一些实施方案的使用随机选择修剪候选特征处理变换的实例。

图44示出根据至少一些实施方案的用于识别推荐的候选特征处理变换组的贪婪(greedy)技术的实例。

图45示出根据至少一些实施方案的特征处理优化技术的第一阶段的实例,其中使用第一组候选处理变量训练模型并对所述模型进行评估。

图46示出根据至少一些实施方案的特征处理优化技术的随后阶段的实例,其中使用修改的评估数据组来重新评估模型以确定使用各种处理的变量对预测质量的影响。

图47示出根据至少一些实施方案的特征处理优化技术的另一示例性阶段,其中使用一组修改的处理的变量来重新训练模型以确定使用处理的变量对预测运行时间成本的影响。

图48是示出根据至少一些实施方案的可在基于质量对比运行时间成本权衡推荐特征处理变换的机器学习服务处执行的操作的方面的流程图。

图49是根据至少一些实施方案的可使得客户端能够查看各种机器学习模型运行的状态的编程仪表板接口的实例。

图50示出根据至少一些实施方案的用于生成并使用线性预测模型的示例性过程。

图51示出根据至少一些实施方案的示例性情境,其中用于训练模型的机器学习服务器的存储器容量可变为参数向量大小的约束。

图52示出根据至少一些实施方案的技术,其中在训练期间其各自参数值存储在参数向量中的特征的子集可被选择作为修剪受害者。

图53示出根据至少一些实施方案的系统,其中将用于线性模型的训练阶段的学习迭代的观察记录可流传输到机器学习服务。

图54是示出根据至少一些实施方案的可在机器学习服务处执行的操作的方面的流程图,在所述机器学习服务处,响应于检测触发条件,可从参数向量修剪对应于一个或多个特征的参数以减少训练期间的存储器消耗。

图55示出根据至少一些实施方案的可用于获得分配给特征的权重的绝对值的分位数边界估计的单遍技术。

图56示出根据至少一些实施方案的使用分位数分仓(quantile binning)变换来捕获机器学习模型的原始输入变量与预测目标变量之间的非线性关系的实例。

图57示出根据至少一些实施方案的可在机器学习服务处模型的训练阶段期间生成的并发分仓计划的实例。

图58示出根据至少一些实施方案的可在机器学习服务处实现的并发多变量分位数分仓变换的实例。

图59示出根据至少一些实施方案的可用于表示机器学习服务处的并发分仓操作的配方的实例。

图60示出根据至少一些实施方案的系统的实例,其中客户端可利用机器学习服务的编程接口来指示它们关于并发分位数分仓的使用的偏好。

图61是示出根据至少一些实施方案的可在实现并发分位数分仓变换的机器学习服务处执行的操作的方面的流程图。

图62示出根据至少一些实施方案的示例性系统环境,其中机器学习服务实现交互式图形界面,使得客户端能够探索各种预测质量度量目标之间的权衡并且修改可用于解释模型执行结果的设置。

图63示出根据至少一些实施方案的可通过交互式图形界面提供的二进制分类模型的评估运行的结果的示例性视图。

图64a和图64b集体示出根据至少一些实施方案的由客户端通过对交互式图形界面的特定控制指示的预测解释阈值的变化对一组模型质量度量的影响。

图65示出根据至少一些实施方案的与其各自控件可包括在交互式图形界面中的机器学习模型的评估运行有关的高级度量的实例。

图66示出根据至少一些实施方案的可用于修改分类标签并查看基于输出变量值选择的观察记录的细节的交互式图形界面的元件的实例。

图67示出根据至少一些实施方案的可通过交互式图形界面提供的多路分类模型的评估运行的结果的示例性视图。

图68示出根据至少一些实施方案的可通过交互式图形界面提供的回归模型的评估运行的结果的示例性视图。

图69是示出根据至少一些实施方案的可在实现使得客户端能够基于探索评估结果修改预测解释设置的交互式图形界面的机器学习服务处执行的操作的方面的流程图。

图70示出根据至少一些实施方案的可利用机器学习数据组的空间有效表示来确定机器学习服务处一个数据组是否可能包括另一数据组的复本观察记录的示例性复本检测器。

图71a和图71b集体示出根据至少一些实施方案的用于机器学习服务处的复本观察记录的概率检测的布隆过滤器的使用的实例。

图72示出根据至少一些实施方案的可在机器学习服务的复本检测器处使用的替代复本定义的实例。

图73示出根据至少一些实施方案的机器学习服务处的大数据组的复本检测的并行方法的实例。

图74示出根据至少一些实施方案的给定机器学习数据组内的概率复本检测的实例。

图75是示出根据至少一些实施方案的可在实现观察记录的复本检测的机器学习服务处执行的操作的方面的流程图。

图76是示出可在至少一些实施方案中使用的示例性计算装置的框图。

虽然在本文中通过对若干实施方案和示意性附图举例的方式描述了实施方案,但本领域的技术人员应认识到,实施方案不限于所述实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制本说明书或权利要求书的范围。贯穿本申请所使用的词语“可”是在许可的意义上(即意指具有可能性)、而非强制的意义上(即意指必须)使用。类似地,词语“包括(include/including/includes)”意味着包括但不限于。

具体实施方式

描述用于设计来支持大量用户和多种多样的算法和问题大小的可定制、容易使用的机器学习服务(MLS)的方法和设备的各种实施方案。在一个实施方案中,可由服务定义多个MLS编程接口(诸如应用编程接口(API)),其指导非专家用户相对快速地开始使用机器学习最佳实践,而用户不必花费大量的时间和精力调谐模型或学习高级统计学或人工智能技术。接口可例如允许非专家依赖于用于构建、训练和使用机器学习模型的过程的各方面的默认设置或参数,其中默认值从解决类似类型的机器学习问题的其他实践者的累积经验中导出。同时,专家用户可定制他们希望用于各种类型的机器学习任务诸如输入记录处理、特征处理、模型构建、执行和评估的参数或设置。在至少一些实施方案中,除了或代替使用实现各种类型的机器学习任务的预先定义的库,MLS客户端可能够例如通过向服务注册它们自己的定制功能来扩展服务的内置能力。取决于实现此类定制模块或功能的客户端的业务需要或目标,在一些情况下可与服务的其他用户共享模块,而在其他情况下定制模块的使用可限制到其实现者/拥有者。

在一些实施方案中,可支持相对直接的配方语言,从而允许MLS用户指示他们希望已应用在数据组上的各种特征处理步骤。此类配方可以文本格式指定,并随后编译成可根据需要重新用于不同资源组上的不同数据组的可执行格式。在至少一些实施方案中,MLS可在包括具有分布在世界各地的数十万计算和存储装置的多个数据中心的提供商网络处实现,从而允许以太字节标度或拍字节标度数据组的机器学习问题,并且以相对透明的方式对应地解决大的计算要求,同时仍然确保高水平的隔离和敏感数据的安全性。提供商网络的预先存在的服务诸如支持可通过web服务接口访问的任意大数据对象的存储服务、数据库服务、虚拟计算服务、并行计算服务、高性能计算服务、负载平衡服务等在至少一些实施方案中可用于各种机器学习任务。对于具有高可用性和数据耐久性要求的MLS客户端,机器学习数据(例如,原始输入数据、变换/操纵的输入数据、中间结果或最终结果)和/或模型可跨不同地理位置或可用性容器复制,如下所述。为了满足MLS客户端的数据安全需求,在一些实施方案中,实现用户定义的功能或第三方功能的所选择数据组、模型或代码可被限制到由提供商网络定义的安全容器,其中例如客户端的机器学习任务以隔离的单租户方式执行,而不是可通常用于一些提供商网络的服务的多租户方法。术语“MLS控制平面”在本文中可用于指硬件和/或软件实体的集合,所述实体负责代表MLS的客户端实现各种类型的机器学习功能并且负责外部MLS客户端不一定可见的管理任务,诸如确保提供足够的一组资源以满足客户端需求、检测和恢复故障、生成帐单等。术语“MLS数据平面”可指用于处理、传送和存储用于客户端请求的操作的输入数据以及处理、传送和存储由于客户端请求的操作而产生的输出数据的路径和资源。

根据一些实施方案,可通过MLS编程接口生成、修改、读取、执行和/或查询/搜索与机器学习任务相关的多个不同类型的实体。在一个实施方案中受支持的实体类型可尤其包括数据源(例如,可从其获得用于机器学习的输入记录的位置或对象的描述符),通过分析输入数据生成的统计组,配方(例如,将应用到用于训练模型的输入数据的特征处理变换描述符),处理计划(例如,用于执行各种机器学习任务的模板),模型(其还可被称为预测器),将用于配方和/或模型的参数组,诸如预测或评估的模型执行结果,用于将在流传输或实时数据上使用的模型的在线访问点,和/或别名(例如,已被“公布”用于如下所述的模型版本的指针)。这些实体类型的实例在本文中可被称为机器学习制品,例如,特定配方或特定模型可每个被认为是制品。下文将更详细地论述实体类型中的每一个。

MLS编程接口可使得用户能够提交对于给定机器学习工作流的若干相关任务的各自请求,诸如用于从数据源提取记录、生成关于记录的统计、特征处理、模型训练、预测等的任务。编程接口(诸如API)的给定调用可对应于对关于所支持类型的实体的一个或多个实例的一个或多个操作或任务的请求。一些任务(和对应的API)可涉及多种不同的实体类型,例如,请求创建数据源的API可导致数据源实体实例以及统计实体实例的生成。给定工作流的一些任务可取决于其他任务的结果。取决于数据的量和/或将执行的处理的本质,一些任务可能花费几小时或甚至几天来完成。在至少一些实施方案中,可采取异步方法来调度任务,其中MLS客户端可提交取决于早前提交的任务的输出的另外任务,而无需等待早前提交的任务完成。例如,客户端可在早前提交的任务T1完成之前提交对任务T2和T3的各自请求,即使T2的执行至少部分地取决于T1的结果,并且T3的执行至少部分地取决于T2的结果。在此类实施方案中,MLS可注意确保给定任务只有在其依赖性(如果存在任何依赖性的话)已满足时被调度以执行。

在一些实现中,作业对象的队列或集合可用于存储所请求任务的内部表示。如本文所用的术语“任务”是指对应于来自客户端的给定请求的一组逻辑操作,而术语“作业”是指MLS内的任务的内部表示。在一些实施方案中,给定作业对象可表示将由于客户端对特定编程接口的调用以及对其他作业的依赖性而执行的操作。MLS可负责确保在发起对应操作之前已满足给定作业的依赖性。MLS还可在此类实施方案中负责为每个作业生成处理计划、识别用于计划的适当资源组(例如,CPU/核,存储装置或存储器)、调度计划的执行、收集结果、提供/将结果保存在适当的目的地,并且至少在一些情况下用于向请求客户端提供状态更新或响应。MLS还可在一些实施方案中负责确保一个客户端的作业的执行不影响或干扰其他客户端的作业的执行。在一些实施方案中,可支持任务之间的部分依赖性,例如在一系列任务(T1、T2、T3)中,T2可取决于T1的部分完成,并且T2可因此在T1完成之前调度。例如,T1可包括统计计算的两个阶段或遍数P1和P2,并且T2可能够在阶段P1完成时立即进行,而不需等待阶段P2完成。T1的部分结果(例如,在阶段P1期间计算的至少一些统计)在一些情况下可在其变得可用时立即提供给请求客户端,而不用等待整个任务完成。可在一些实现中使用包括对应于来自MLS多个客户端的请求的作业的单个共享队列,而在其他实现中各自队列可用于不同客户端。在一些实现中,代替或除了队列之外,可用于对对象集合建模的列表或其他数据结构可用作将调度的作业的容器。在一些实施方案中,来自客户端的单个API请求可导致MLS生成若干不同作业对象。在至少一个实施方案中,并非所有客户端API请求可使用作业实现,例如,相对短或轻质任务可相对于对应请求同步执行,而不引发作业创建和异步作业调度的开销。

由MLS实现的API可在一些实施方案中允许客户端提交创建、查询所支持各种实体类型中的至少一些的实例的属性、读取、更新/修改、搜索或删除所支持各种实体类型中的至少一些的实例的请求。例如,对于实体类型“DataSource”,类似于“createDataSource”、“describeDataSource”(以获得数据源的属性的值)、“updateDataSource”、“searchForDataSource”以及“deleteDataSource”的各自API可由MLS支持。配方、模型等的类似组的API可受到支持。在各种实施方案中,一些实体类型还可具有用于执行或运行实体的API,诸如“executeModel”或“executeRecipe”。API可被设计来在很大程度上易于学习和自我记录(例如,使得使用给定API的正确方式对于非专家而言是明显的),重点在于使得执行最常见的任务简单而会不使得执行更复杂的任务变得太难。在至少一些实施方案中,可支持API的多个版本:例如,用于有线协议的一个版本(在联网堆栈的应用级处)、作为JavaTM库或SDK(软件开发工具包)的另一版本、作为Python库的另一版本等等。在各种实现中,API请求可由客户端使用HTTP(超文本传送协议)、HTTPS(安全HTTP)、Javascript、XML等提交。

在一些实施方案中,一些机器学习模型可例如由一组模型开发者或数据科学家使用MLS API创建和训练,并且随后公布由另一群用户使用。为了便于公布模型由与仅仅模型的创建者相比更广泛的观众使用,同时防止更广泛的观众的非熟练成员对模型的潜在不适当修改,在此类实施方案中可支持“别名”实体类型。在一个实施方案中,别名可包括不可变名称(例如,“SentimentAnalysisModel1”)和已经创建并存储在MLS制品储存库中的模型的指针(例如,“samModel-23adf-2013-12-13-08-06-01”,由MLS为模型生成的内部标识符)。关于别名的不同权限组可被授予给模型开发者,而不是被授予给可获得别名用于执行的用户。例如,在一个实现中,可允许业务分析师组的成员使用模型的别名名称来运行模型,但是可不允许改变指针,而可允许模型开发者修改指针和/或修改基础模型。对于业务分析师,通过别名暴露的机器学习模型可表示已通过专家验证的“黑盒子”工具,其预期为各种输入数据组提供有用的预测。业务分析师可能不会特别关心这种模型的内部工作。模型开发者可继续对各种算法、参数和/或输入数据组进行实验以获得基础模型的改进版本,并且可能够将指针改变为指向增强版本以提高由业务分析师获得的预测的质量。在至少一些实施方案中,为了将别名用户与对基础模型的改变隔离,MLS可保证(a)别名只能指向已经被成功训练的模型以及(b)当别名指针改变时,原始模型和新模型(即,由旧指针和新指针指向的各自模型)消耗相同类型的输入并提供相同类型的预测(例如,二进制分类,多类分类或回归)。在一些实现中,如果为给定模型创建别名,则给定模型本身可被指定为不可修改的,例如,在这种实现中,在创建别名之后,由指针“samModel-23adf-2013-12-13-08-06-01”参考的模型可即使是它的开发者也不再被修改。关于模型开发和使用的角色和能力的这种完全分离可允许商业组织内的更多观众受益于机器学习模型,而不仅仅是足以开发模型的技术人员。

关于对应于给定作业的操作被映射到MLS服务器的方式,多个选择可以是可用的。例如,可能在许多不同服务器之间划分给定作业所需的工作以实现更好的性能。作为开发作业的处理计划的一部分,在一些实施方案中,MLS可为作业选择工作负载分布策略。在各种实施方案中为工作负载分布确定的参数可基于作业的性质而不同。此类因素可包括例如(a)确定处理的遍数,(b)确定并行化水平(例如,在将使用映射-缩减技术实现的作业的情况下的“映射器”和“缩减器”的数量)),(c)确定将用于终止作业的收敛准则,(d)确定在作业期间产生的中间数据的目标耐久性水平,或者(e)确定作业的资源容量限制(例如,可基于MLS服务器池中可用的服务器数量或客户端的预算限制分配给作业的服务器的最大数量)。在选择工作负载策略之后,可根据所述策略识别将使用的实际资源组,并且可在所识别资源上调度作业的操作。在一些实施方案中,可为MLS预先配置计算服务器和/或存储服务器的池,并且可从这种池选择给定作业的资源。在其他实施方案中,资源可从分配给代表其执行作业的客户端的池中选择,例如,客户端可在提交API请求之前从提供商网络的计算服务获取资源,并且可向MLS提供所获取资源的指示以用于作业调度。如果客户提供的代码(例如,不必由MLS完全测试和/或不包括在MLS的库中的代码)被用于给定作业,那么在一些实施方案中,可能需要客户端获取将用于作业的资源,使得运行客户端提供的代码的任何副作用可被限制到客户端自己的资源,而不会潜在地影响其他客户端。

示例性系统环境

图1示出根据至少一些实施方案的可实现机器学习服务(MLS)的各种部件的示例性系统环境。在系统100中,MLS可实现一组编程接口161(例如,API、命令行工具、网页或独立GUI),所述编程接口可由客户端164(如,由MLS的客户拥有或分配给其的硬件或软件实体)使用来提交对于多种机器学习任务或操作的请求111。MLS的管理或控制平面部分可包括MLS请求处理机180,所述MLS请求处理机接受客户端请求111并且将对应作业对象插入MLS作业队列142中,如箭头112所指示的。通常,MLS的控制平面可包括还可集体称为MLS管理器的多个部件(包括请求处理机、工作负载分布策略选择器、一个或多个作业调度器、度量收集器以及充当与其他服务的接口的模块)。MLS的数据平面可包括例如服务器池185的至少一个子集,用于存储输入数据组、中间结果或最后结果的存储装置(其一些可以是MLS制品储存库的部分),以及用于传送客户端输入数据和结果的网络路径。

如前所述,每个作业对象可指示将由于编程接口161的调用执行的一个或多个操作,并且给定作业的调度可在一些情况下取决于早前生成的作业的操作的至少一个子集的成功完成。在至少一些实现中,作业队列142可被管理为先进先出(FIFO)队列,其中另外的约束是必须满足给定作业的依赖性要求以便将所述作业从队列移除。在一些实施方案中,代表若干不同客户端创建的作业可放置在单个队列中,而在其他实施方案中,可维持多个队列(例如,使用的提供商网络的每个数据中心中的一个队列或者每MLS客户一个队列)。相对于请求111的提交异步地,在所描绘实施方案中,可将已满足其依赖性要求的下一作业从作业队列142移除,如箭头113指示的,并且可为其识别包括工作负载分布策略的处理计划。工作负载分布策略层175(其也可以是如前所述的MLS控制平面的部件)可确定作业的较低级操作将分布在一个或多个计算服务器(例如,从池185选择的服务器)之间的方式,和/或针对作业分析或操纵的数据将分布在一个或多个存储装置或服务器之间的方式。在已生成处理计划并且已识别将用于作业的适当资源组之后,可在资源上调度作业的操作。在一些实施方案中,一些作业的结果可作为MLS制品存储在储存库120内,如箭头142指示的。

在至少一个实施方案中,一些相对简单类型的客户端请求111可导致MLS请求处理机180对MLS制品储存库120内的对应制品的中间生成、检索、存储或修改(如箭头141指示的)。因此,可能不是所有类型的客户端请求需要在作业队列142中插入作业对象。例如,在此类实施方案中,现存模型的别名的创建或移除可能不需要新作业的创建。在图1中示出的实施方案中,客户端164可能够例如通过编程接口161发布读取请求118来查看存储在储存库120中的制品的至少一个子集。

客户端请求111可指示可由MLS使用来执行操作的一个或多个参数,诸如数据源定义150、特征处理变换配方152或者将用于特定机器学习算法的参数154。在一些实施方案中,各自表示参数的制品也可存储在储存库120中。可对应于来自客户端164的一系列API请求的一些机器学习工作流可包括MLS的输入记录处理机160从原始数据储存库130(例如,数据源定义150中指示的储存库)提取和净化输入数据记录,如由箭头114指示的。工作流的此第一部分可响应于从客户端164的特定API调用发起,并且可使用来自池185的第一组资源执行。输入记录处理机可例如根据限定在MLS的I/O(输入/输出)库中的一组功能将此类任务执行为分裂数据记录、对数据记录采样等等。输入数据可包括数据记录,所述数据记录包括多种数据类型中的任一个的变型,例如像文本、数值数据类型(例如,实数或整数)、布尔、二进制数据类型、分类数据类型、图像处理数据类型、音频处理数据类型、生物信息学数据类型、结构化数据类型诸如符合非结构化信息管理架构(UIMA)的数据类型等等。在至少一些实施方案中,实现MLS的输入数据可加密或压缩,并且MLS输入数据处理机械可必须在输入数据记录可用于机器学习任务之前执行解密或解压。在其中使用加密的一些实施方案中,MLS客户端可必须向MLS提供解密元数据(例如,密钥、密码或其他凭证)以允许MLS解密数据记录。类似地,使用的压缩技术的指示在一些实现中可由客户端提供以使得MLS能够适当地解压输入数据记录。可将由输入记录处理机产生的输出供给到特征处理器162(如由箭头115指示的),其中可根据配方152使用来自池185的另一组资源执行162一组变换操作。多种特征处理方法中的任一个可取决于问题域使用:例如,通常用于计算机视觉问题的配方可不同于用于语音识别问题、自然语言处理等等的配方。特征处理变换的输出116可进而用作所选择机器学习算法166的输入,其可根据算法参数154使用来自池185的又一组资源执行。多种多样的机器学习算法可由MLS库自然支持,包括例如随机森林算法、神经网络算法、随机梯度下降算法等。在至少一个实施方案中,MLS可被设计为可扩展的,例如,客户端可提供或注册其自己的模块(其可被限定为用户限定的功能)以用于输入记录处理、特征处理或者用于实现除了由MLS自然支持之外的另外机器学习算法。在一些实施方案中,机器学习工作流的中间结果中的一些(例如,由输入记录处理机产生的汇总统计)可存储在MLS制品储存库120中。

在图1描绘的实施方案中,MLS可维持包含关于各种机器学习任务的最佳实践的信息的知识库122。条目可由MLS的各种控制平面部件例如基于从服务器池185收集的度量、由客户端164提供的反馈等等添加到最佳实践KB 122中。客户端164可能够通过编程接口161搜索并检索KB条目,如由箭头117指示的,并且可使用条目中包含的信息来为其请求提交选择参数(诸如将使用的特定配方或算法)。在至少一些实施方案中,可由MLS基于针对各种类型的机器学习实践随时间识别的最佳实践实现新的API(或者可选择API参数的默认值)。

图2示出根据至少一些实施方案的使用提供商网络的多种网络可访问服务实现的机器学习服务的实例。实体(诸如公司或公共部门组织)所建立的用于将可通过互联网和/或其他网络访问的一个或多个服务(诸如各种类型的多租户和/或单租户基于云的计算或存储服务)提供给一组分布式客户端的网络在本文中可称为提供商网络。给定提供商网络可包括托管实现、配置和分布由提供商提供的基础设施和服务所需的各种资源池的许多数据中心,诸如物理和/或虚拟化计算机服务器、存储装置、联网设备等的集合。至少一些提供商网络和对应网络可访问服务可分别被称为“公共云”和“公共云服务”。在大的提供商网络内,一些数据中心可位于与其他数据中心不同的城市、州或国家,并且在一些实施方案中,分配给诸如MLS的给定服务的资源可分布在若干此类位置之间以便实现期望别的可用性级、故障恢复和性能,如以下参考图3更详细描述的。

在图2示出的实施方案中,MLS利用提供商网络202的存储服务202、计算服务258以及数据库服务255。在所描绘实施方案中,这些服务中的至少一些还可由其他客户(例如,在提供商网络处实现的其他服务,和/或提供商网络外面的外部客户)并发使用,即,服务可不限于MLS使用。可建立MLS网关222来接收由客户端164通过外部网络206(诸如部分互联网)提交的客户端请求210。MLS网关222可例如被配置有可用于访问MLS的一组公共可访问的IP(互联网协议)地址。在一些实施方案中,客户端请求可根据由MLS实现的代表性状态传送(REST)API格式化。在一个实施方案中,MLS客户可被提供SDK(软件开发工具包)204以用于本地安装在客户端计算装置处,并且请求210可从按照SDK写的程序内提交。在各种实施方案中,客户端还可或替代地从已分配给客户端的计算服务262的计算服务器262访问MLS功能。

存储服务252可例如实现可用于创建并操纵任意大小的非结构化数据对象的web服务接口。数据库服务255可实现关系或非关系数据库。在所描绘实施方案中,存储服务252和/或数据库服务255可扮演关于MLS的多种角色。在一些实施方案中,MLS可需要客户端164为其机器学习任务定义提供商网络边界内的数据源。在这种情境中,客户端可首先将数据从外部数据源229传送到提供商网络内的内部数据源,诸如由存储服务252管理的内部数据源230A或由数据库服务255管理的内部数据源230B。在一些情况下,MLS的客户端可已经在使用提供商网络服务用于其他应用,并且保存在存储服务252或数据库服务255处的那些应用的一些输出(例如,web服务器日志或视频文件)可充当MLS工作流的数据源。

响应于至少一些客户端请求210,MLS请求处理机180可生成对应作业对象并将其存储在作业队列142内,如以上论述的。在图2描绘的实施方案中,作业队列142可本身由存储在数据库服务255处的数据库对象(例如,表格)表示。作业调度器272可例如在检查到已满足作业的依赖性要求之后从队列142检索作业,并且从计算服务258识别一个或多个服务器262以便执行作业的计算操作。用于计算的输入数据可由服务器262从内部或外部数据源读取。在各种实施方案中,MLS制品储存库220可在数据库服务255内(和/或在存储服务252内)实现。在一些实施方案中,各种机器学习任务的中间或最后结果也可存储在存储服务252和/或数据库服务255内。

在一些实施方案中,提供商网络的其他服务,例如包括负载平衡服务、并行计算服务、自动化缩放服务和/或身份管理服务,也可由MLS使用。负载平衡服务可例如用于在一组服务器262之间自动地分布计算负载。实现映射-缩减编程模型的并行计算服务可用于一些类型的机器学习任务。自动化缩放服务可用于添加或移除被分配给特定长久机器学习任务的服务器。在一些实施方案中,客户端请求的授权和认证可在提供商网络的身份管理服务的帮助下执行。

在一些实施方案中,提供商网络可被组织成多个地理区域,并且每个区域可包括一个或多个可用性容器,所述可用性容器还可称为“可用性区”。可用性容器进而可包括一个或多个不同物理驻地或数据中心中的部分或全部,所述物理驻地或数据中心被构建(例如,利用独立基础设施部件,诸如电力相关设备、冷却设备和/或物理安全部件),其方式为使得给定可用性容器中的资源与其他可用性容器中的故障绝缘。一个可用性容器中的故障可不预期导致任何其他可用性容器中的故障;因此,给定物理主机或服务器的可用性配置文件意图独立于不同可用性容器中的其他主机或服务器的可用性配置文件。

除了其在不同可用性容器之间的分布之外,提供商网络资源还可在一些实施方案中划分为不同的安全容器。例如,虽然通常提供商网络的各种类型的服务器可在不同客户的应用之间共享,但一些资源可限制于由单个客户使用。安全策略可被限定为确保指定组的资源(其可包括由若干不同提供商网络服务例如像计算服务、存储服务或数据库服务管理的资源)仅由指定客户或指定组的客户端使用。这种组的资源可在本文中被称为“安全容器”或“安全组”。

图3示出根据至少一些实施方案的用于机器学习服务的提供商网络的多个可用性容器和安全容器的使用的实例。在所描绘实施方案中,提供商网络302包括可用性容器366A、366B和366C,其每个可包括一个或多个数据中心的部分或全部。每个可用性容器366具有其自己组的MLS控制平面部件344:例如,分别位于可用性容器366A-366C中的控制平面部件344A-344C。给定可用性容器中的控制平面部件可包括例如,MLS请求处理机的实例、一个或多个MLS作业队列、作业调度器、工作负载分布部件等等。不同可用性容器中的控制平面部件可按需要彼此通信,例如以便协调利用多于一个数据中心处的资源的任务。每个可用性容器366具有将以多租户方式使用的MLS服务器的各自池322(例如,322A-322C)。服务器池322可每个用于执行多种MLS操作,潜在地并发用于不同的MLS客户端。相比之下,为了执行需要更高安全性或隔离性级别的MLS任务,可使用指定用于仅单个客户端的工作负载的单租户服务器池,诸如单租户服务器池330A、330B和330C。池330A和330B属于安全容器390A,而池330C是安全容器390B的部分。在所描绘实例中,安全容器390A可唯一地用于客户C1(例如,以便运行客户提供的机器学习模块或由客户指定的第三方模块),而安全容器390B可唯一地用于不同的客户C2。

在一些实施方案中,由MLS使用的至少一些资源可安排在跨可用性容器边界的冗余组中,使得MLS任务可继续,尽管存在影响给定可用性容器的MLS资源的故障。例如,在一个实施方案中,可建立包括可用性容器366A中的至少一个服务器S1和可用性容器366B中的至少一个服务器S2的冗余组RG1,使得S1的MLS相关的工作负载可故障转移到S2(或反之亦然)。对于长久的MLS任务(诸如涉及太字节标度或拍字节标度数据组的任务),给定MLS作业的状态可周期性地检查指向到持久性存储装置(例如,在还被设计来经受单个可用性容器故障的提供商网络的存储服务或数据库服务处),使得故障转移服务器可从最近的检查点恢复部分完成的任务而不是必须从头开始。提供商网络的存储服务和/或数据库服务可例如使用擦除编码或其他复制技术固有地提供非常高的数据耐久性水平,因此数据组可不需要必须在发生故障的情况下复制。在一些实施方案中,MLS的客户端可能够为其输入数据组、中间数据组、制品等指定期望的数据耐久性水平以及期望的计算服务器可用性水平。MLS控制平面可基于客户端要求确定多个可用性容器中的资源是否应该用于给定任务或给定客户端。客户端必须为各种MLS任务支付的计费金额可至少部分地基于其耐久性和可用性要求。在一些实施方案中,一些客户端可向MLS控制平面表明它们仅希望使用给定可用性容器或给定安全容器内的资源。对于某些类型的任务,在长距离上传输数据组和/或结果的成本可能很高,或者传输所需时间可能很长,以致MLS可能将任务限制在提供商网络的单个地理区域内(或甚至在单个数据中心内)。

处理计划

如前所述,在至少一些实施方案中,MLS控制平面可负责生成处理计划,所述处理计划对应于响应于客户端请求生成的作业对象中的每一个。针对每个处理计划,可随后必须识别对应组的资源以便例如基于为计划选择的工作负载分布策略、可用资源等等来执行计划。图4示出根据至少一些实施方案的可在机器学习服务处生成的各种类型的处理计划和对应资源组的实例。

在所示出情境中,MLS作业队列142包括五个作业,每个对应于客户端对各自API的调用。作业J1(在队列头部处示出)响应于API1的调用创建。作业J2至J5分别响应于API2至API5的调用创建。对应于作业J1,可生成输入数据净化计划422,并且可使用资源组RS1执行所述计划。输入数据净化计划可包括读取并验证指定数据源的内容、填充遗漏值、识别并丢弃(或以其他方式响应于)包含错误的输入记录等等的操作。在一些情况下,输入数据还可在其可为了净化目的被读取之前必须被解压、解密或以其他方式操纵。对应于作业J2,统计生成计划424可生成并随后在资源组RS2上执行。将为每个数据属性生成的统计的类型(例如,数值属性的平均值、最小值、最大值、标准偏差、分位数分仓等)以及生成统计的方式(例如,是否由数据净化计划422生成的所有记录将用于统计,或者将使用子样本)可在统计生成计划中指示。在所描绘实施方案中,作业J2的执行可取决于作业J1的完成,但导致作业J2的生成的客户端请求可在J1完成之前已经提交好了。

对应于作业J3(和API3)的基于配方的特征处理计划426可生成并且在资源组RS3上执行。以下提供关于配方的句法和管理的另外细节。作业J4可导致模型训练计划428的生成(其可进而涉及训练的若干迭代,例如具有不同的参数组)。模型训练可使用资源组RS4执行。模型执行计划430可对应于作业J5(由客户端对API5的调用引起),并且模型可最终使用资源组RS5执行。在一些实施方案中,相同组的资源(或重叠组的资源)可用于执行客户端的作业中的若干或全部,例如,资源组RS1–RS5可不必彼此不同。在至少一个实施方案中,客户端可例如通过包括在API调用中的参数指示期望处理计划的各种元素或属性,并且MLS可将此类客户端偏好考虑在内。例如,对于特定统计生成作业,客户端可指示可使用25%的净化的输入记录的随机选择的样本,并且MLS可相应地生成包括生成25%数据的随机样本的步骤的统计生成计划。在其他情况下,MLS控制平面可被给予更多自由度来精确地决定将如何实现特定作业,并且它可咨询其最佳实践的知识基础来选择将使用的参数。

作业调度

图5示出根据至少一些实施方案的机器学习服务处的作业的异步调度的实例。在所描绘实例中,客户端已调用四个MLS API,API1至API4,并且四个对应作业对象J1至J4被创建并放置在作业队列142中。时间线TL1、TL2和TL3从调用API的客户端、创建作业并将所述作业插入队列142中的请求处理机以及将作业从队列移除并且在所选择资源处调度作业的作业调度器的角度显示事件序列。

在所描绘实施方案中,除了不存在对其他作业的依赖性的基本情况之外,可支持两种类型的作业间依赖性。在称为“完成依赖性”的一种情况下,一个作业Jp的执行不能开始直到在另一作业Jq成功完成(例如,因为需要Jq的最后输出作为Jp的输入)。完全依赖性在图5中由作业对象中示出的参数“dependsOnComplete”指示,例如,J2取决于J1完成执行,并且J4取决于J2成功完成。在其他类型的依赖性中,一个作业Jp的执行可在另一作业Jq的某一指定阶段完成时立即开始。此后一种依赖性类型可被称为“部分依赖性”,并且在图5中由“dependsOnPartial”参数指示。例如,J3取决于J2的部分完成,并且J4取决于J3的部分完成。注意在一些实施方案中,为了简化调度,此类基于阶段的依赖性可通过将具有N个阶段的作业分裂成N个更小作业从而将部分依赖性转换为完全依赖性来处理。在所描绘实例中,J1不具有任一类型的依赖性。

如客户端时间线TL1上指示的,可在时间段t0至t1内调用API1至API4。即使由客户端请求的一些操作取决于对应于早前调用的API的操作的完成,在所描绘实施方案中,MLS可允许客户端早于早前调用的API的作业的处理提交依赖操作请求。在至少一些实施方案中,由客户端指定在API调用中的参数可指示作业间依赖性。例如,在一个实现中,响应于API1,客户端可被提供有J1的作业标识符,并且所述作业标识符可被包括为API2中的参数以指示需要API1的结果来执行对应于API2的操作。如请求处理机的时间线TL2指示的,在API调用之后不久,对应于每个API调用的作业可创建并排队。因此,所有四个作业在t1之后短时间内已生成并放置在作业队列142内。

如作业调度器时间线TL3中示出的,作业J1可在时间t2处调度以用于执行。在所描绘实施方案中,J1插入在队列142(t0之后不久)中与J1的调度之间的延迟可因为多个原因发生,例如,因为在队列142中在J1之前可能存在其他作业,或者因为为J1生成处理计划并且识别将用于J1的资源要花费一些时间,或者因为在t2之前没有足够的资源可用。J1的执行一直持续到t3。在所描绘实施方案中,当J1完成时,(a)客户端得到通知以及(b)J2被调度以用于执行。如J2的dependsOnComplete参数值指示的,J2取决于J1的完成,并且J2的执行可因此在t3之后开始,即使在t3之前J2的处理计划已准备好并且J2的资源组已经可用。

在所描绘实例中,如J3的“dependsOnPartial”参数值指示的,J3可在J2的工作的指定阶段或子集完成时开始。在所示出实例中,J2的部分(J3取决于其)在时间t4处完成,并且J3的执行因此在t4处开始(与J2的剩余部分的执行并行)。在所描绘实例中,客户端可在时间t4处得到关于J2的部分完成的通知(例如,J2的完成阶段的结果可提供给客户端)。

在时间t5处,J3的部分(J4取决于其)可完成,并且客户端可相应地得到通知。然而,J4还取决于J2的完成,因此J4不能开始直到在J2在t6处完成。J3继续执行直到t8。J4在早于t8的t7处完成。在所描绘示例性情境中,客户端得到关于对应于各自API调用API1–API4的作业中的每一个的完成的通知。在一些实施方案中,作业之间的部分依赖性可不受支持,相反,如前所述,在一些情况下,此类依赖性可通过将多阶段作业分裂成更小作业来转换成完全依赖性。在至少一个实现中,代替或除了在对应于API调用的作业完成时(或在作业的阶段完成时)得到通知之外,客户端可能够向MLS提交查询以确定对应于各种API调用的操作的状态(或完成的程度)。例如,可实现MLS作业监控网页,使得客户端能够查看其请求的进程(例如,通过每个作业的“完成比例”指示符)、预期完成时间等等。在一些实施方案中,客户端可使用轮询机制来确定作业的进程或完成。

MLS制品

图6示出根据至少一些实施方案的可使用机器学习服务生成和存储的示例性制品(artifact)。通常,MLS制品可包括可由于MLS编程接口的调用以持久方式存储的对象中的任一个。在一些实现中,传递到MLS的一些API参数(例如,配方的文本版本)可存储为制品。如所示,在所描绘实施方案中,MLS制品601可尤其包括数据源602、统计603、特征处理配方606、模型预测608、评估610、可修改或开发中模型630以及已公布模型或别名640。在一些实现中,MLS可为所示出至少一些类型的制品的每个实例生成各自的唯一标识符并且将标识符提供给客户端。客户端可随后使用标识符来指代制品(例如,在随后API调用中,在状态查询中等等)。

创建数据源制品602的客户端请求可包括例如数据记录可从其读取的地址或位置的指示,以及数据记录的格式或模式的某一指示。例如,可提供HTTP GET请求可指向其以检索数据记录的源URI(通用资源识别符)的指示、提供商网络存储服务处的存储对象的地址或者数据库表格标识符。在一些实现中,可通过单独逗号分隔变量(csv)文件来指示格式(例如,数据记录的字段或列的序列和类型)。在一些实施方案中,MLS可能够推导出创建数据源制品所需要的地址和/或格式信息的至少一部分,例如基于客户端的标识符,可能推断客户端的数据源的根目录或者根URI,并且基于对前几个记录的分析,可能推导出模式的列的至少数据类型。在一些实施方案中,创建数据源的客户端请求还可包括例如通过使用MLS的I/O库对数据记录采样或者分裂所述数据记录来重新安排原始输入数据的请求。当请求数据源的创建时,在一些实现中,还可需要客户端提供可由MLS使用来访问数据记录的安全凭证。

在一些实施方案中,如以下关于图7更详细描述的,可为数据源的数据记录自动生成至少一些统计603。在其他实施方案中,MLS还可或替代地使得客户端能够例如通过createStatistics(dataSourceID、statisticsDescriptor)请求的等效物明确地请求各种类型的统计的生成,其中客户端指示将为指定数据源生成的统计的类型。生成的统计制品的类型可基于输入记录变量的数据类型变化,例如,对于数值变量,可生成平均值、中值、最小值、最大值、标准偏差、分位数仓、空值数或“不适用”值等。在至少一些实施方案中,还可自动或按需要生成诸如相关性的交叉变量统计。

在一些实施方案中,包括特征处理变换指令的配方606可由客户端提供(或者选自可从MLS配方集合访问的一组可用配方)。在此类实施方案中,允许客户端限定多组变量、分配、对其他制品诸如模型的依赖性以及变换输出的配方语言可由MLS支持,如以下更详细描述的。在一些实现中,以文本形式提交的配方可编译成可执行版本并且在各种数据组上重新使用。

在所描绘实施方案中,可生成并存储表示机器学习模型或预测因子的至少两种类型的制品。经常,开发并精修模型的过程可花费很长时间,因为开发者可试图使用各种数据组和各种参数提高预测的准确度。例如,可能在几周或几个月内改进一些模型。在此类情境中,可能值得使得其他用户(例如,业务分析师)利用模型的一个版本,而模型开发者继续生成其他改进的版本。因此,在一些实施方案中,表示模型的制品可属于两种分类中的一种:可修改模型630以及已公布的模型或别名640。别名可包括模型的别名名称或标识符以及指针(例如,在所描绘实施方案中,别名640A指向模型630B,并且别名640B指向模型630D)。如本文所用,短语“公布模型”指的是使得模型的特定版本可由一组用户参考别名名称或标识符执行。在一些情况下,可能不允许所述组用户中的至少一些修改模型或别名。在一些实施方案中,非专家用户678可被授予对别名的读取和执行权限,而模型开发者676还可被允许修改模型630(和/或别名640的指针)。在一些实施方案中,可向别名用户提供一组保证:例如,一旦别名公布,别名(以及由别名指代的基础模型)的输入和输出的格式将不改变,并且模型开发者已充分测试并验证别名指向的基础模型。另外,在此类实施方案中,可关于别名强制多个其他逻辑约束。例如,如果为以在线模式使用的模型创建别名(以下关于图8更详细地描述模型使用模式),那么MLS可保证指向的模型保持在线(即,模型不能卸载)。在一些实现中,可在当前处于生产模式的别名与处于内部使用或测试模式的别名之间进行区分,并且MLS可确保不为处于生产模式的别名删除或卸载基础模型。在一些实施方案中,当创建在线模式模型的别名时,可为别名确定预测/评估的最小吞吐率,并且MLS可确保分配给模型的资源可满足最小吞吐率。在模型开发者676相对于已为其创建别名640的模型630的较旧版本提高模型630的较新版本的准确率和/或性能特性之后,他们可能切换别名的指针使得其现在指向改进的版本。因此,非专家用户可不必以他们使用别名的方式改变任何事情,同时受益于改进。在一些实施方案中,别名用户可能够提交查询来获悉基础模型最后改变的时间,或者可在其请求别名的执行时得到基础模型自最后执行以来已改变的通知。

在一些实施方案中,模型执行的结果诸如预测608(在其中因变量的实际值未知的情境中模型为因变量预测的值)以及模型评估610(当模型的预测可与因变量的已知值进行比较时计算的模型准确度的测量)也可由MLS存储为制品。注意,在随后描述中,术语“因变量”、“输出变量”和“目标变量”可互换使用,并且术语“自变量”和“输入变量”也可互换使用。尽管在至少一些类型的机器学习技术中,因变量值可被假定为取决于一个或多个自变量的值,但这不意味着暗示自变量中的任一个必须统计独立于其他自变量中的任一个。除了图6中示出的制品类型之外,在一些实施方案中也可支持其他制品类型,例如,在一些实施方案中,表示可用于流传输数据上的实时模型执行(与静态数据组上的成批模式执行相反)的网络端点的对象可存储为制品,并且在其他实施方案中,客户端会话日志(例如,给定会话期间客户端与MLS之间的所有交互的记录)可存储为制品。

在一些实施方案中,MLS可支持相关作业的循环调度。例如,客户端可创建诸如模型的制品,并且可希望相同模型在指定时间点处针对不同输入数据组被重新训练和/或重新执行(例如,对于训练或预测迭代中的每一个、使用资源的相同配置)。在一些情况下,可明确指定时间点(例如,通过客户端请求“每天在11:00、15:00和19:00在数据源DS1处的当前可用数据组上重新运行模型M1”的等效物)。在其他情况下,客户端可指示迭代将调度的条件(例如,通过客户端请求“无论何时下一组1000000个新纪录变得可从数据源DS1获得重新运行模型M1”的等效物)。对于每个循环训练或执行迭代,可将各自作业放置在MLS作业队列中。在一些实施方案中,MLS可实现一组编程接口,实现此类调度循环操作。使用这种接口,客户端可指定将用于每个迭代的一组模型/别名/配方制品(或相同基础制品的各自版本),和/或将使用的资源配置。在一些实施方案中,此类编程接口可被称为“流水线API”。除了图6中示出的制品类型之外,在一些实施方案中,流水线制品可存储在MLS制品储存库中,其中流水线制品的每个实例表示通过此类API请求的一组命名循环操作。在一个实施方案中,在提供商网络处实现的单独管理的数据流水线服务可结合MLS使用以便支持此类循环操作。

如上所述,在一些实施方案中,在数据源创建时,MLS可自动地生成统计。图7示出根据至少一些实施方案的响应于实例化数据源的客户端请求的统计的自动生成的实例。如所示,客户端764通过MLS API 761向MLS控制平面780提交数据源创建请求712。创建请求可指定数据记录可从其检索的地址或位置,以及任选地指示数据记录的列或字段的模式或格式文件。

响应于接收请求712,MLS控制平面780可生成数据源制品702并且将其存储在MLS制品储存库中。另外,并且在一些情况下取决于MLS处的资源的当前可用性,在所描绘实施方案中,MLS还可发起一个或多个统计对象730的生成,即使客户端请求并未明确地请求此类统计。在各种实施方案中,多个不同类型的统计的任何组合可以两种模式中的一种自动地生成。例如,对于非常大的数据组,可在第一阶段获得基于子样本(例如,大数据组的随机选择的子集)的初始组统计763,而从整个数据组导出的全样本统计764的生成可推迟到第二阶段。这种针对统计生成的多阶段方法可实现例如以便允许客户端在第一阶段相当快速地获得数据组值的粗略或近似概要,使得客户端可开始计划随后的机器学习工作流步骤而无需等待完整数据组的统计分析。

如所示,可在任一阶段获得各种不同统计。对于数值变量,基本统计765可包括平均值、中值、最小值、最大值以及标准偏差。数值变量还可被分仓(分类到一组范围,诸如四分位数或五分位数);此类仓767可用于构造可显示给客户端的直方图。取决于变量分布的性质,可选择线性或对数仓边界。在一些实施方案中,也可计算不同变量之间的相关性768。在至少一个实施方案中,MLS可利用自动生成的统计(诸如相关值)来识别可具有比其他变量大的预测能力的候选变量组769。例如,为了避免某些类的模型的过拟合,可仅推荐彼此非常强烈地相关的一组变量中的一个变量作为对模型的输入的候选者。在此类情境中,客户端可能够避免探索其他变量的重要性所需的时间和努力。在其中给定数据记录可具有几百或甚至几千变量的许多问题域中,预期具有更大预测有效性的候选变量的这种自动选择可对MLS的客户端来说非常有价值。

图8示出根据至少一些实施方案的可在机器学习服务处支持的若干模型使用模式。模型使用模式可广义地分为三类:成批模式、在线或实时模式以及局部模式。在成批模式中,给定模型可在静态数据记录组上运行。在实时模式中,网络端点(例如,IP地址)可被分配为指定模型的输入数据记录将提交到的目的地,并且模型预测可在记录被接收时在流传输数据记录组上生成。在局部模式中,客户端可接收已在MLS处训练和验证的指定模型的可执行表示,并且客户端可在其选择的计算装置上运行模型(例如,在位于客户端网络中而不是在实现MLS的提供商网络中的装置处)。

在所描绘实施方案中,MLS的客户端164可通过编程接口861向MLS控制平面180提交模型执行请求812。模型执行请求可指定执行模式(成批、在线或局部),将用于模型运行的输入数据(在一些情况下可使用指定数据源或配方产生),期望的输出的类型(例如,预测或评估),和/或任选的参数(诸如期望模型质量目标、将用于在线预测的最小输入记录组大小,等等)。作为响应,MLS可为模型执行生成计划并且选择适当资源来实现计划。在至少一些实施方案中,可在如前所述的接收执行请求812时生成作业对象,指示对其他对象的任何依赖性(诸如用于特征处理的配方的执行),并且可将作业放置在队列中。针对成批模式865,例如,可识别一个或多个服务器以运行模型。针对在线模式867,可安装模型(例如,配置有网络地址),数据记录可流传输到所述模型,并且可从所述模型检索包括预测868和/或评估869的结果。在至少一个实施方案中,客户端可任选地为将以在线模式实例化的模型指定预期工作负载水平,并且可根据预期工作负载水平选择将为模型部署的所述组提供商网络资源。例如,客户端可通过模型执行/创建请求的参数指示在每个1百万记录的数据组上预期每天高达100个预测请求,并且可选择为模型选择的服务器来处理指定的请求速率。针对局部模式,MLS可封装模型的可执行局部版本843(其中,可已在执行请求812中指定将提供的可执行类型的细节,诸如字节代码的类型或者模型将在其上运行的硬件架构)并且将局部模型传输到客户端。在一些实施方案中,可仅支持所示出执行模式的子集。在一些实现中,并非执行模式和输出类型的所有组合可被支持,例如,尽管可在一个实现中支持在线模式的预测,但可不支持在线模式的评估。

用于实现MLS操作的方法

图9a和图9b是示出根据至少一些实施方案的可在支持机器学习作业的异步调度的机器学习服务处执行的操作的方面的流程图。如图9a的元素901所示,MLS可通过编程接口(诸如API、命令行工具、网页或定制GUI)从客户端接收对属于MLS的一组所支持实体类型的实体执行特定操作的请求。在所描绘实施方案中,实体类型可包括例如,数据源、统计、特征处理配方、模型、别名、预测和/或评估。所请求操作可包括例如,创建、读取(或描述属性)、修改/更新属性、执行、搜索或删除操作。在一些实施方案中,并非所有操作类型可应用到所有实体类型,例如,可能不能“执行”数据源。在至少一些实现中,请求可由客户端加密或封装,并且MLS可必须使用适当密钥和/或凭证来提取请求的内容。

可接下来根据MLS的各种规则或策略验证请求(元素904)。例如,根据安全策略,可检查授予请求客户端的权限、角色或能力以便确保授权客户端执行所请求操作。可针对一些类型的请求检查请求本身的句法和/或对象诸如作为请求参数传递的配方。在一些情况下,也可必须检查请求中指示的一个或多个数据变量的类型。

如果请求传递验证检查,那么可做出关于是否将为请求创建作业对象的决定。如前所述,在一些情况下,所需工作量可足够小使得MLS可只能够同步或“串联”地执行所请求操作,而不是创建作业对象并将其插入队列中以便异步执行(至少在这样的情境中:其中已经满足请求的前提条件或依赖性,并且足够资源可用于MLS以完成所请求工作)。如果对请求的分析指示需要作业(如元素907中检测的),那么可生成作业对象,指示将在MLS处执行的较低级操作的性质以及对其他作业的任何依赖性,并且可将作业对象放置在队列中(元素913)。在一些实现中,可通知请求客户端已接受请求以用于执行(例如,通过向客户端指示已排队作业以用于稍后执行)。在一些情况下,客户端可提交另一编程请求而无需等待排队的作业完成(或甚至开始)。如果作业不具有尚未满足的任何依赖性,并且满足用于立即或串联执行的其他准则(也如元素907中确定的),那么可在不创建作业对象的情况下执行所请求操作(元素910)并且可任选地将结果提供给请求客户端。可针对通过MLS编程接口接收的每个请求执行对应于元素901-913的操作。在将特定作业Jk放置在队列中之后的某一点,可将Jk识别(例如,通过MLS控制平面的作业调度器部件)为将实现的下一个作业(图9b的元素951)。为了识别将实现的下一个作业,调度器可例如从队列的头部(尚未执行的最早插入的作业)开始并且搜索其依赖性(如果指定了任何)已得到满足的作业。

除了图9a的元素904中指示的验证种类之外,在一些实施方案中,MLS可在各种其他阶段执行验证,例如,带着总体目标:(a)当发现特定请求无效时尽快告知客户端,以及(b)避免MLS资源在不可能成功的请求上的浪费。如图9b的元素952所示,可对元素951中识别的作业Jk执行一种或多种类型的验证检查。例如,在一个实施方案中,每个客户端可具有对可应用到其作业的资源的配额或限制(诸如可并发用于给定客户的所有作业或者用于客户的任何给定作业的服务器的最大数量)。在一些实现中,可为若干不同资源类型(例如,CPU/核、存储器、盘、网络带宽等)中的每一个设置各自配额。在此类情境中,作业调度器可负责验证将代表其运行作业Jk的客户端的一个或多个配额未耗尽。如果配额已耗尽,那么作业的执行可推迟直到客户端的资源中的至少一些释放(例如,由于代表同一客户端执行的其他作业的完成)。此类约束限制可有助于限制任何给定客户端独占共享的MLS资源的能力,并且还有助于最小化无意错误或恶意代码的负面后果。除了配额检查之外,至少一些作业可需要其他类型的运行时间验证,例如,可必须对涉及特征处理的作业的输入数据组执行数据类型检查,或者MLS可必须验证输入数据组大小在可接受界限内。因此,在至少一些实施方案中,可同步地(在接收到请求时,如与图9a的元素904中指示的)以及异步地(如图9b的元素952中指示的)验证客户端请求。可针对Jk识别工作负载分布策略和处理计划,例如,将使用的处理遍数或阶段的数量、将使用的并行度、将用于完成Jk的迭代收敛准则(元素954)。在一些实施方案中,当生成处理计划时可考虑多个另外因素,诸如客户端预算约束(如果有的话)、客户端的数据耐久性需要、客户端的性能目标、安全需要(诸如以隔离而不是多租户模式运行第三方代码或客户端提供的代码的需要)。

根据所选择分布策略和处理计划,可针对Jk识别一组资源(元素957)。可例如从MLS管理的共享池和/或从客户分配的或客户拥有的池选择资源(其可包括计算服务器或集群、存储装置等)。可随后在所识别资源上执行JK的操作(元素960),并且可在操作完成时(或者在阻止操作的完成的故障的情况下)任选地通知代表其创建Jk的客户端。

幂等编程接口

由MLS客户端请求的一些类型的操作可以是资源密集的。例如,取决于部署的资源组和使用的并行度,摄入太字节标度的数据组(例如,响应于创建数据存储区的客户端请求)或者生成关于这种数据组的统计可花费几小时或几天。假定在至少一些实施方案中处理客户端请求的异步方式,客户端可有时多次结束提交同一请求。在一些情况下,因为客户端不知道先前提交是否被接受(例如,因为客户端未能注意到先前提交已被接受的指示,或者因为这种指示丢失了),此类多个提交可发生。在其他情况下,因为客户端已假设由于已经很长时间未提供完成所请求任务的预期结果,先前请求肯定失败了,所以可接收复本请求。如果,响应于这种复本提交,MLS实际上调度另一潜在大作业,那么可不必要地部署资源,并且客户端可能在一些情况下为仅旨在服务一次的请求付费两次。因此,为了避免此类有问题的情境,在至少一个实施方案中,由MLS支持的编程接口中的一个或多个可被设计为幂等的,使得同一客户端对复本请求的重新提交不具有负面后果。

图10a是示出根据至少一些实施方案的可在支持一组幂等编程接口的机器学习服务处执行的操作的方面的流程图。在图10a中,创建接口(例如,类似于“createDataSource”或“createModel”的API)用作幂等编程接口的实例。尽管幂等性可特别适用于涉及创建诸如数据源和模型的制品的编程接口,但在各种实施方案中,幂等接口还可被支持用于其他类型的操作(例如,删除或执行)。如元素1001所示,可通过诸如特定API的编程接口在MLS处从客户端C1接收创建实体类型ET1的新实例的请求。请求可指示由客户端选择的将用于新实例的标识符ID1。在一些实现中,客户端可需要指定实例标识符,并且可如以下描述使用标识符来检测复本请求。(允许客户端选择标识符可具有另外优点:客户端可能够向实体实例分配比由MLS分配的名称更有意义的名称)。MLS可生成包括在客户端对编程接口的调用中的输入参数的表示IPR1(元素1004)。例如,输入参数组可供应作为对所选择散列函数的输入,并且散列函数的输出可保存为IPR1。

在图10a描绘的实施方案中,对于所生成制品中的至少一些,MLS储存库可存储对应的实例标识符、输入参数表示以及客户端标识符(即,请求制品的创建的客户端的标识符)。MLS可例如通过查找制品储存库来检查具有实例标识符ID1和客户端标识符C1的实体类型ET1的实例是否已经存在于储存库中。如果未发现这种实例(如元素1007中检测到的),那么可将具有标识符ID1、输入参数表示IPR1和客户端标识符C1的类型ET1的新实例插入到储存库中(元素1007)。另外,取决于实例的类型,可将作业对象添加到作业队列以便执行对应于客户端请求的另外操作,诸如读取/摄入数据组、生成一组统计、执行特征处理、执行模型等。在所描绘实施方案中,可生成对客户端的请求的成功响应(元素1016)。(注意,在一些实现中,成功响应可以是隐含的,例如,错误消息的不存在可充当成功的隐含指示符)。

如果,在对应于元素1007的操作中,在储存库中发现具有相同实例标识符ID1和客户端标识符C1的预先存在的实例,那么MLS可检查预先存在的实例的输入参数表示是否也与IPR1匹配(元素1013)。如果输入参数表示也匹配,那么MLS可假设客户端的请求是(无害的)复本,并且没有新的工作需要执行。因此,如果发现这种复本请求,那么MLS还可向客户端指示成功(隐含地或明确地)(元素1016)。因此,如果客户端已经无意地重新提交同一请求,那么可避免新作业对象的创建和相关联资源使用。在一些实现中,如果使用所述方法发现客户端请求是对早前请求的精确复本,那么可向客户端提供请求虽然未被指定为错误但实际上被识别为复本的指示。如果预先存在的实例的输入参数表示不匹配客户端的请求的输入参数表示,那么可将错误消息返回到客户端(元素1019),例如指示存在具有相同标识符的同一实体类型ET1的预先存在的实例。在一些实现中,代替需要客户端提交标识符,可使用复本检测的不同方法,诸如使用客户端请求的持久日志,或者使用表示(请求、客户端)组合的签名。

最佳实践

构件可由大量客户针对各种使用情况使用的机器学习服务的一个优点是:随时间可变得可能识别例如关于哪些技术最佳适于数据净化、采样或子集提取、特征处理、预测等等的最佳实践。图10b是示出根据至少一些实施方案的可在机器学习服务处执行以收集并散布关于与不同问题域相关的最佳实践的信息的操作的方面的流程图。如元素1051所示,可将由于客户端请求而在MLS处生成的至少一些制品(诸如配方和模型)基于问题域分类成组,例如,一些制品可用于财务分析,其他制品用于计算机视觉应用,其他制品用于生物信息学等等。在不同实施方案中可基于各种因素执行这种分类,例如,基于所使用的算法类型、输入和输出变量的名称、客户提供的信息、客户的身份等等。

在一些实施方案中,MLS控制平面可包括从用于机器学习操作的各阶段的资源收集性能和其他度量的一组监控代理(元素1054)。例如,使用具有C1的CPU评级和M1的存储器大小的服务器来构建随机森林的N个树所花费的处理时间量可被收集为度量,或者根据在数据库服务处从数据源研究的数据属性的数量计算一组统计所花费的时间量可被收集为度量。MLS还可收集评级/分级或者来自MLS客户端的关于用于不同问题域的各种方法或模型的有效性或质量的其他类型的反馈。在一些实施方案中,还可收集模型预测有效性的定量测量,诸如用于各种分类器的接收器操作特性(ROC)曲线下的区域。在一个实施方案中,关于质量的一些信息可由MLS推导出或者隐含地观察到,而不是通过明确客户端反馈获得,例如,通过跟踪在模型最终用于测试数据组之前在训练迭代期间改变的参数组。在一些实施方案中,客户端可能够决定其与MLS的交互是否可用于最佳实践知识基础增强,例如,一些客户端可能不希望其定制技术变得由其他人广泛使用,并且可因此决定退出与MLS或与其他用户共享与此类技术相关联的度量。

基于所收集度量和/或反馈,可识别机器学习工作流的各阶段的各自最佳实践组(元素1057)。最佳实践中的一些可特定于特定问题域,而其他可以是更一般适用的,并且可因此跨问题域适用。识别的最佳实践的表示或总结可存储在MLS的知识库中。可允许MLS用户访问(例如,通过浏览器或搜索工具)知识库(元素1060)。MLS还可将最佳实践并入暴露于用户的编程接口中,例如,通过引入更可能导致用户利用最佳实践的新API,通过基于最佳实践选择默认参数,通过改变下拉式菜单中的参数选择呈现的次序,使得与最佳实践相关联的选择变得更可能被选择等等。在一些实施方案中,MLS可提供可帮助客户端实现其机器学习目标的各种工具和/或模板。例如,基于web的富文本编辑器或可安装的集成开发环境(IDE)可由MLS提供,其为配方、模型等提供模板和开发指南诸如自动句法错误校正。在至少一个实施方案中,MLS可给用户提供证明在过去有用(例如,对于解决类似问题的其他客户端)的候选模型或实例。在一些实现中,MLS还可维持由客户端(或者由与同一客户账户相关联的一组用户)跨多个交互会话执行的操作的历史,使得客户端能够容易对同一客户端早前生成的制品进行实验或者采用所述制品。

特征处理配方

图11示出根据至少一些实施方案的与机器学习服务处的数据变换的配方的使用相关联的示例性交互。在所描绘实施方案中,由MLS定义的配方语言使得用户能够容易且简明地指定将对指定数据记录组执行的变换以便准备用于模型训练和预测的记录。配方语言可使得用户能够创建一个或多个变换将应用到的定制变量组,定义中间变量以及对其他制品的依赖性等等,如以下更详细描述的。在一个示例性使用流中,原始数据记录可先从数据源提取(例如,在MLS I/O库的帮助下由如图1中示出的输入记录处理机),根据一个或多个配方处理,并随后用作用于训练或预测的输入。在另一使用流中,配方可本身并入有训练和/或预测步骤(例如,可在配方内指定一个或多个目的地模型)。配方可应用到已经分裂成训练子集和测试子集的数据记录,或者应用到分裂成训练子集和测试子集之前的整个数据组。在至少一些实施方案中,给定配方可在若干不同数据组上重新使用,潜在用于各种不同机器学习问题域。MLS的配方管理部件可实现容易理解的复合模型(其中一个模型的输出可用作另一个的输入,或者可在其中执行迭代预测)的生成,以及数据变换的最佳实践的共享和重新使用。在至少一个实施方案中,可在单个配方内指示将以给定输入数据组开始执行的连续变换的流水线。在一个实施方案中,MLS可针对一个或多个配方执行参数优化,例如为了识别将用于特定机器学习算法的更有用的输入变量组,MLS可自动地改变此类变换性质为将包括在n元语法中的分位数仓的大小或根词的数量。

在一些实施方案中,变换配方的文本版本1101可作为客户端在“createRecipe”MLS API调用中的参数传递。如所示,在所描绘实施方案中,配方验证器1104可针对词法正确性检查配方的文本版本1101,例如以便确保其符合由MLS定义的语法1151,并且配方包括以预先定义的次序安排的一个或多个部分(图12中示出并且以下描述配方的预期结构的实例)。在至少一些实施方案中,由MLS接收的配方的版本不需要一定是文本版本;相反,例如,客户端可提供预处理的或部分组合的版本(其可在一些情况下为二进制格式而不是纯文本)。在一个实施方案中,MLS可提供可用于准备配方的工具,例如,为基于web的配方编辑工具或可下载集成开发环境(IDE)的形式。这种配方准备工具可例如提供句法和/或参数选择指南、自动地校正句法错误和/或在配方(文本形式或二进制形式)发送到MLS服务之前在客户端侧对配方文本执行至少一定程度的预处理。配方可使用在一个或多个库1152中定义的多种不同变换函数或方法,诸如形成变量、n元语法(对于文本数据)、分位数仓(对于数值数据变量)等的笛卡尔乘积的函数。在至少一些实施方案中,用于配方验证的库可包括第三方或客户端提供的函数或库,表示已并入到MLS中以增强服务的核或自然支持的特征处理能力的定制特征处理扩展。配方验证器1104还可负责验证以本文版本1101调用的函数(a)在库1152的支持函数之间,并且(b)与适当签名一起使用(例如,函数的输入参数与库中指定的参数的类型和序列匹配)。在一些实施方案中,MLS客户可将另外函数注册为库的部分,例如,使得客户“用户定义函数”(UDF)也可包括在配方中。在一些实施方案中,希望利用UDF的客户可需要提供可用于实现UDF的模块的指示(例如,以源代码、可执行代码或对模块的源或可执行版本可由MLS从其获得的第三方实体的引用的形式)。在一些实现中,多种不同编程语言和/或执行环境可支持用于UDF,例如,包括JavaTM、Python等。在所描绘实施方案中,配方的文本版本可转换成可执行版本1107。配方验证器1104可被认为是类似于用于配方语言的编译器,其中配方的文本版本类似于源代码并且可执行版本类似于从源代码导出的编译的二进制或字节代码。在一些实施方案中,可执行版本还可被称为特征处理计划。在所描绘实施方案中,配方的文本版本1101和可执行版本1107可存储在MLS制品储存库120内。

在一些实施方案中,例如响应于指定输入数据组的“executeRecipe”API的等效物,MLS的运行时间配方管理器1110可负责配方执行的调度。在所描绘实施方案中,示出同一配方R1的具有各自输入数据组IDS1和IDS2的两个执行请求1171A和1171B。输入数据组可包括数据记录,所述数据记录的变量可包括各种数据类型中的任一个的实例,例如像文本、数值数据类型(例如,实数或整数)、布尔、二进制数据类型、分类数据类型、图像处理数据类型、音频处理数据类型、生物信息学数据类型、结构化数据类型诸如符合非结构化信息管理架构(UIMA)的特定数据类型等等。在每种情况下,运行时间配方管理器1110可检索(或生成)R1的可执行版本;执行一组运行时间验证(例如,以便确保允许请求者执行配方、输入数据似乎是正确或预期格式等等);并且最终调度R1的变换操作在各自资源组1175A和1175B处的执行。在至少一些情况下,将用于变换的特定库或函数可基于输入记录的数据类型选择,例如,可必须使用为特定结构化数据类型定义的对应库的函数或方法处理所述数据类型的实例。在所描绘实施方案中,各自输出1185A和1185B可通过配方R1在IDS1和IDS2上的应用产生。取决于配方R1的细节,输出1185A可表示将用作模型的输入的数据或者模型的结果(诸如预测或评估)。在至少一些实施方案中,可相对于执行请求异步地应用配方,例如,如前所述,可响应于执行请求将作业对象插入到作业队列中,并且可稍后调度执行。在一些情况下,配方的执行可取决于其他作业,例如,取决于与输入记录处理(解密、解压、数据组分裂成训练组和测试组等)相关联的作业的完成。在一些实施方案中,还可或替代地使用异步地调度的作业管理文本配方的验证和/或编译。

在一些实施方案中,可接收指定文本格式的配方并且还包括在指定数据组上执行配方的请求的客户端请求,即,图11中示出的静态分析步骤和执行步骤可不一定需要单独客户端请求。在至少一些实施方案中,客户端可简单地指示将在数据组上执行的例如选择由MLS以编程方式暴露的配方集合的现存配方,并且甚至可能不必生成配方的文本版本。在一个实施方案中,MLS的配方管理部件可检查输入数据变量组和/或配方中指示的变换的输出,自动地识别可具有比其他变量或输出组高的预测能力的变量或输出组,并且将此类组的指示提供给客户端。

图12示出根据至少一些实施方案的配方的示例性部分。在所描绘实施方案中,配方1200的文本可包括四个单独部分,组定义部分1201、分配部分1204、依赖性部分1207以及输出/目的地部分1210。在一些实现中,仅输出/目的地部分可以是强制性的;在其他实现中,部分的其他组合也可或相反是强制性的。在至少一个实施方案中,如果配方中包括图12中示出的四个部分类型中的多于一个,那么可必须以指定次序安排所述部分。在至少一个实施方案中,可在与输出部分不同的部分中指示目的地模型(即,配方变换的输出将提供到的机器学习模型)。

在组定义部分1201中,如由名称暗示的,客户端可定义输入数据变量组,例如以便使得进一步更容易在配方中指示相同变换操作将应用到一组所有成员变量。在至少一些实施方案中,配方语言可定义一组基线组,诸如ALL_INPUT(包括输入数据组中的所有变量),ALL_TEXT(数据组中的所有文本变量),ALL_NUMERIC(数据组中的所有整数和实数值变量),ALL_CATEGORICAL(数据组中的所有分类变量)以及ALL_BOOLEAN(数据组中的所有布尔变量,例如可仅具有值“真”或“假”(在一些实现中可分别表示为“1”和“0”)的变量)。在一些实施方案中,配方语言可允许用户在定义组时改变或“铸造”一些变量的类型,例如,似乎包括任意文本但仅预期仅具有一组离散值的变量,诸如一年中的月份、一周中的几天的名称或国家的州,可被转换为分类变量,而不是被视为通用文本变量。在组定义部分内,方法/函数“group”和“group_remove”(或者表示组操作的其他类似函数)可在定义新的组时用于组合或排除变量。在至少一些实施方案中,给定组定义可指代另一组定义。在图12中示出的示例性部分内容1250中,定义了三个组:LONGTEXT、SPECIAL_TEXT和BOOLCAT。LONGTEXT包括输入数据中的所有文本变量,除了称为“title”和“subject”的变量之外。SPECIAL_TEXT包括文本变量“subject”和“title”。BOOLCAT包括输入数据中的所有布尔变量和分类变量。注意至少在一些实施方案中,示出的示例性组定义可应用到任何数据组,即使数据组不包含“subject”变量、“title”变量、任何布尔变量、任何分类变量或甚至任何文本变量。如果在输入数据组中不存在文本变量,那么在这种实施方案中,例如LONGTEXT和SPECIAL_TEXT将为相对于所述特定输入数据组的不具有成员的空组。

可在分配部分1204中定义可在配方1200的其他部分中引用的中间变量。在示例性分配部分中,称为“binage”的变量根据应用到输入数据中的“age”变量的“quantile_bin”函数(其在所描绘实施方案中被假设为包括在配方语言的预定义库函数之间)定义,具有“30”的仓计数。称为“countrygender”的变量被定义为输入数据组的两个其他变量“country”和“gender”的笛卡尔乘积,其中“cartesian”函数被假设为预定义库的部分。在依赖性部分1207中,用户可指示配方取决于其的其他制品(诸如在所示出实例中被引用为“clustermodel”的具有MLS制品标识符“pr-23872-28347-alksdjf”的模型)。例如,在一些情况下,在配方的依赖性部分中引用的模型的输出可被摄入为配方的输入,或者引用的模型的输出的一部分可包括在配方的输出中。在所描绘实施方案中,例如,在调度基于配方的作业时,MLS作业调度器可使用依赖性部分。在不同实施方案中,可在给定配方中指示对各种制品中的任一个的依赖性,包括其他配方、别名、统计组等等。

在示例性输出部分1210中,多种变换应用到输入数据变量、变量组、配方的早前部分中定义的中间变量或者依赖性部分中识别的制品的输出。变换的数据被提供为对识别为“model1”的不同模型的输入。在移除标点(通过“无标点”函数)并且将变量的文本转换为小写(通过“lowercase”函数)之后,获得包括在LONGTEXT组中的变量的词频率逆向文档频率(tfidf)统计。tfidf测量可旨在反映单词在文档集合或语料库内的相对重要性;给定单词的tfidf值通常与单词在文档中的出现次数成比例,总体上被单词在集合中的频率抵消。tfidf、无标点和小写函数都被假设为在配方的语言库中定义。类似地,输出部分中指示的其他变换使用osb(正交稀疏二元)库函数、用于对数值进行分仓或分组的quantile_bin库函数以及笛卡尔乘积函数。部分1210中指示的一些输出可不一定涉及本身的变换:例如,输出中可简单地包括输入数据组中的BOOLCAT组的变量,并且也可在配方的输出中没有任何变化的情况下包括“clusternodel”的“clusterNum”输出变量。

在至少一些实施方案中,输出部分中列出的条目可用于隐含地丢弃未列出的那些输入数据变量。因此,例如,如果输入数据组包括“taxable-income”数值变量,那么由于输出部分中不直接或间接引用它,在所示示例中可简单地将其丢弃。图12中示出的配方句法和逐部分组织可与其他实施方案中的不同。在不同实施方案中可支持多种多样的函数和变换类型(其至少一些可与图12中示出的特定实例不同)。例如,在一些实施方案中,可以配方语言支持日期/时间相关函数“dayofweek”、“hourofday”、“month”等。在至少一个实施方案中,可支持数学函数,诸如“sqrt”(平方根)、“log”(对数)等。在一些实施方案中,可支持用于归一化数值的函数(例如,将值从范围{–N1至+N2}映射到范围{0至1})或者填充遗漏值(例如,“replace_missing_with_mean(ALL_NUMERIC)”)。在一个实施方案中,可允许单个表达式内对一个或多个先前定义的组变量、中间变量或依赖性的多次引用:例如,配方片段“replace_missing(ALL_NUMERIC,mean(ALL_NUMERIC))”可被认为是有效的。在至少一些实施方案中,也可在配方内允许涉及诸如“'income'+10*'capital_gains'”的变量的组合的数学表达式。在一些配方中,注释可由分隔符指示诸如“//”。

配方验证

图13示出根据至少一些实施方案的可用于定义可接受配方句法的示例性语法。所示的语法可根据解析器生成器的要求来格式化,诸如ANTLR(用于语言识别的另一工具)的版本。如所示,语法1320定义在配方内使用的表达式的句法规则。假定类似于图13所示语法的语法,诸如ANTLR的工具可生成可从配方的文本版本构建抽象句法树的解析器,并且MLS控制平面可随后将抽象句法树转换成处理计划。图14中示出使用语法1320生成的示例性树。

在图13中示出的示例性语法“MLS-Recipe”中,表达式“expr”可以是“BAREID”、“QUOTEDID”、“NUMBER”或“functioncall”中的一个,其中在语法中进一步定义后四个实体中的每一个。BAREID以大写或小写字母开始,并且可包括数值。QUOTEDID可包括单引号内的任何文本。NUMBER包括具有或不具有指数的实数值,以及整数。functioncall必须包括函数名(BAREID),后面跟圆括号内的零个或多个参数。当根据语法1320生成抽象句法树时,忽略空格和注释,如以“->skip”结尾的行所指示的。

图14示出根据至少一些实施方案的可针对配方的一部分生成的抽象句法树的实例。在所描绘实施方案中,可根据语法1320(或某一其他类似语法)将包括文本“cartesian(binage、quantile_bin(‘hours-per-week’、10))”的示例性配方片段1410翻译成抽象句法树1420。如所示,“cartesian”和“quantile_bin”被识别为函数调用,每个具有两个参数。在所示配方片段的句法分析期间,配方验证器1104可确保传递给“cartesian”和“quantile_bin”的参数的数量和次序与那些函数的定义匹配,并且在配方内定义变量“binage”和“hours_per_week”。如果不满足这些条件中的任一个,那么可向提交该配方的客户端提供指示“cartesian”片段所在的配方内的行号的错误消息。假设总体上在配方中没有发现验证错误,可生成配方的可执行版本,其中部分1430可表示片段1410。

域特定的配方集合

在至少一些实施方案中,MLS的一些用户可以不是特征处理的专家,至少在他们开始使用MLS时的时间段期间。因此,MLS可允许用户访问先前已发现可用于各种问题域中的配方集合。图15示出根据至少一些实施方案的可用于搜索可从机器学习服务获得的域特定配方的编程接口的实例。如所示,网页1501可针对配方搜索实现,其包括向MLS用户提供高级指南的消息区域1504以及配方可用于其的多个问题域。在所描绘实例中,MLS客户可使用复选框来从问题域欺诈检测1507、情感分析1509、图像分析1511、基因组分析1513或者语音识别1515中选择。用户还可使用所描绘网页中的搜索项文本框1517搜索与其他问题域相关联的配方。

对于所选择问题域(图像分析),网页1501上示出到五个示例性配方的链接:用于面部识别的配方FR1和FR2、用于脑瘤识别的BTR1、用于海洋碎片识别的ODA1以及用于天文事件检测的AED1。用户可通过点击配方名称获得关于给定配方的另外细节:例如,在一些实施方案中,可提供配方做了什么的描述,可提供由其他用户提交的配方的评级/分级,配方上的由其他用户提交的注释等等。如果用户发现他们希望使用的配方(未改变或者在修改配方之后),那么他们可能够下载配方的文本版本,例如,用于包括在随后MLS API调用中。在所描绘实施方案中,如消息区域1504中指示的,用户还可能够提交其自己的配方以便包括在由MLS暴露的集合中。在至少一些实现中,MLS可在允许其他用户访问之前对所提交配方执行某一组的验证步骤(例如,通过检查配方针对各种输入数据组产生有意义的输出)。

针对配方变换的自动参数调谐

针对许多类型的特征处理变换操作,诸如为数值数据属性创建分位数仓、生成n元语法或者将稀疏或罕见单词从正分析的文档移除,可通常必须选择参数,诸如仓的大小/边界、n元语法的长度、稀疏单词的移除准则等等。此类参数(在一些环境中还可被称为超参数)的值可对使用配方输出进行的预测具有重要影响。代替需要MLS用户手动地提交对每个参数设置或参数设置的每个组合的请求,在一些实施方案中,MLS可支持自动的参数探索。图16示出根据至少一些实施方案的机器学习服务的实例,所述机器学习服务代表客户端自动探索配方变换的参数设置的范围,并且基于此类探索的结果选择可接受或推荐的参数设置。

在所描绘实施方案中,MLS客户端164可提交包括参数自动调谐设置1606的配方执行请求1601。例如,客户端164可指示输入数据中的一个或多个变量的分位数分仓的仓大小/边界应由服务选择,或者n元语法中的单词的数量应由服务选择。在一些实施方案中,可为各种集群相关的参数请求参数探索和/或自动调谐,诸如给定数据组应被分类成的集群的数量、集群边界阈值(例如,两个地理位置隔多远可被认为是一组“附近”位置的部分)等等。在一些实施方案中,各种类型的图像处理参数设置可以是用于自动调谐的候选者,诸如在特征处理期间给定图像应被剪裁、旋转或缩放的程度。自动参数探索还可用于文本文档的向量表示的选择维度值(例如,根据潜在狄利克雷分布(LDA)技术)或者其他自然语言处理技术。在一些情况下,客户端还可指示将用于终止参数值空间的探索例如达到可接受参数值的准则。在至少一些实施方案中,客户端可被给予让MLS决定将使用的接受准则的选项,这种选项可特别适用于非专家用户。在一个实现中,客户端可指示参数探索的资源或执行时间上的限制。在至少一个实现中,至少一些输出变换的自动调谐设置的默认设置可以是“真”的,例如,客户端可必须明确地指示将不执行自动调谐以便阻止MLS针对变换探索参数空间。

响应于将针对给定变换操作执行自动调谐的确定,MLS(例如,配方运行时间管理器1640的参数探索器1642)可为变换选择参数调谐范围1654(例如,是否应针对特定数值变量探索10、20、30和40的分位数仓计数)。在不同实施方案中,可基于各种因素选择参数范围,包括MLS已知的用于类似变换的最佳实践、资源约束、输入数据组的大小等等。在将调谐用于若干变换操作的组合的各自参数(例如,如果针对多于一个变量自动调谐分位数分仓)的情境中,参数探索器1642可为每个参数选择一组各自值以便将尝试的组合的数量保持在阈值下。已确定了参数值的范围,参数探索器可针对每个参数值或组合执行变换迭代,在至少一些实现中将迭代结果1656存储在临时存储装置中。基于为不同参数值生成的结果组以及使用的优化准则,至少一个参数值可被识别为对于每个参数都可接受。在所描绘实施方案中,结果通知1667可提供给客户端,指示正自动调谐的不同参数的已接受或推荐的一个或多个参数值1668。对于一些参数,并不总是直截了当地将特定参数值识别为单个最佳值,例如,因为若干不同值可导致类似结果。在一些实施方案中,代替为这种参数识别单个最优值,MLS可相反为给定参数P识别一组候选值{V1、V2、V3…Vn},使得所述组的所有值提供具有类似质量的结果。所述组候选值可提供给客户端,使得客户端能够选择将使用的特定参数值,并且客户端可通知MLS关于选择的参数值。在一个实施方案中,客户端可仅提供有使用接受的/优化的参数值获得的配方变换的结果的指示,而不一定被告知关于使用的参数值设置。

通过可重新使用的配方支持特征处理的方法

图17是示出根据至少一些实施方案的可在支持用于数据组变换的可重新使用配方的机器学习服务处执行的操作的方面的流程图。如元素1701所示,可在提供商网络处实现的网络可访问MLS处接收用于将对输入数据组执行的变换操作的配方的文本版本的指示。在一个实施方案中,配方文本可包括根据由MLS定义的配方语言的四个部分中的一个或多个:组定义部分、分配部分、依赖性部分以及输出/目的地部分(还可简单地被称为输出部分)。在一些实施方案中,一个或多个部分(诸如输出部分)可以是强制性的。通常,输出/目的地部分可指示将对在配方的其他部分中定义的实体或者直接对数据组的输入变量执行的各种特征处理变换操作。组定义部分可用于定义输入变量的定制组(或与其他组结合的输入数据变量或者从其他组导出的组)。此类组定义可使得更容易在输出部分中指定常见变换将应用到若干变量。在一些实施方案中,配方语言可支持多个内置或预定义的组,诸如ALL_NUMERIC或ALL_CATEGORICAL连同诸如“group_remove”和“group”的函数以便允许配方创建者容易地指示在定义新组时将使用的变量排除和组合。分配部分可用于定义可在配方的别的地方使用的一个或多个中间变量。依赖性部分可指示配方取决于另一机器学习制品(诸如模型或另一配方)或者取决于存储在MLS的储存库中的多个其他制品。在一些实施方案中,输出部分可不仅指示将应用到指定输入变量的特定变换、定义的组、中间变量或者依赖性部分中指示的制品的输出,而且还指示变换结果将提供给其作为输入的目的地模型。

机器学习服务可自然地支持包括可用在配方的输出部分中的各种不同变换操作的支持库,诸如图12中示出的函数的类型。在一些实施方案中,MLS可支持每个对应于给定问题域或各自类的机器学习算法的若干不同库。另外,在一个实施方案中,MLS客户可能够向MLS注册其自己的定制函数(称为“用户定义函数”或UDF)、第三方函数或者包括多个UDF或第三方函数的库以便扩展MLS的核心特征处理能力。在一些实施方案中,UDF可以各种不同格式(例如,包括一个或多个文本格式和/或一个或多个二进制格式)由客户端提供给MLS。在此类实施方案中,可针对UDF支持多种不同编程或脚本语言。在一些实施方案中,可支持用于向MLS注册外部产生的变换函数或库的API,例如使得客户端能够指示新注册的函数是否可被其他客户端访问或被限制供提交客户端使用。在一个实现中,配方可包括导入部分,其函数用在配方中的一个或多个库(例如,除了MLS的核心或标准库之外的库)可在所述导入部分中列出。在一些实现中,MLS可对至少一些UDF施加资源使用限制,例如,以便阻止CPU时间、存储器、盘空间等的失控消耗,可对给定UDF可运行的时间设置最大限值。以此方式,可限制执行潜在易于出错的UDF(例如,其逻辑包括某些条件下的无限循环的UDF)的负面后果。在至少一些实施方案中,配方文本(或配方文本可从其读取的文件或URL)可传递作为由MLS客户端调用的API(诸如“createRecipe”API)中的参数。

可在MLS处例如根据语法的一组句法规则以及定义所支持变换方法或函数的一组库验证配方文本(元素1704)。如果在文本验证检查期间识别句法错误或不可解决的令牌,那么在至少一些实施方案中,可向配方提交者提供指示文本的需要被校正的部分(例如,通过指示行数和/或错误诱导令牌)的错误消息。如果未发现错误或者在发现错误后校正并且重新提交配方,那么可生成配方文本的可执行版本(元素1707)。在所描绘实施方案中,配方的一个或两个版本(文本版本和可执行版本)可存储在MLS的制品储存库中,例如,其中由MLS生成的唯一配方标识符提供给配方提交者。

MLS可例如响应于不同API调用或者因为配方的初始提交包括执行请求,确定配方将应用到特定数据组(元素1710)。可检查数据组以便确保其满足运行时间接受准则,例如,输入变量名称和数据类型与配方中指示的那些输入变量名称和数据类型匹配,并且数据组具有可接受大小(元素1713)。可针对配方执行识别一组提供商网络资源(例如,配置有如由MLS确定的适当量的存储和/或网络容量的一个或多个计算服务器)(元素1716)。可随后将配方中指示的变换应用到输入数据组(元素1719)。在一些实施方案中,如以上关于图16描述的,MLS可在努力识别一个或多个变换的可接受参数值时执行参数探索。在所描绘实施方案中,在配方变换完成(和/或变换的结果提供到适当目的地,诸如配方本身中指定的模型)之后,可将配方的执行完成的通知提供给请求执行的客户端(元素1722)。

I/O-有效输入数据过滤序列

如前所述,一些机器学习输入数据组可比可在机器学习服务的任何给定服务器处获得的存储器的量大得多(例如,在太字节的数量级上)。为了训练并评估模型,有时可必须按序列对输入数据组执行多个过滤或输入记录重新安排操作。例如,为了交叉验证分类模型,同一输入数据组可必须多次分裂成训练数据组和测试数据组,并且此类分裂操作可被被认为是输入过滤的一个实例。其他输入过滤操作类型可包括采样(获得数据组的子集)、混排(重新安排输入数据对象的次序)或者划分用于并行性(例如,将数据集划分为N个子集用于使用映射缩减实现的计算或类似的并行计算范例,或者用于对模型执行多个并行训练操作)。如果对于每个过滤操作(诸如连续混排或分裂),占用若干太字节空间的数据组都从持久性存储装置读取和/或写入到所述持久性存储装置,那么仅I/O操作自身所花费的时间可变得禁止,尤其是如果大部分的I/O包括从旋转基于盘的存储装置随机读取输入数据组的单独观察记录。因此,在一些实施方案中,可在机器学习服务处实现这种技术:将大数据组映射到一次读取到某一数量的服务器的存储器中的较小邻接块,并且随后适当地执行多序列的块级过滤操作而不在连续过滤操作之间将数据组复制到持久性存储装置。在至少一个这种实施方案中,机器学习服务可实现I/O库,使得客户端能够通过对数据源不可知的API的单个调用指定将对指定数据组执行的各种输入过滤操作。这种库可尤其适用于以下情境:输入数据组包括存储在文件系统目录内的文件中而不是诸如表格的结构化数据库对象中的变化长度的观察记录,尽管以下描述的分块和存储器内过滤技术可通常针对如下描述的各种数据源类型(包括数据库)中的任一个执行。I/O库可允许客户端指示各种类型的数据源(例如,单主机文件系统、分布式文件系统、在提供商网络处实现的存储服务、非关系数据库、关系数据库等等),并且可被认为是数据源不可知的,因为可支持相同类型的过滤操作,而不管正使用的数据源的类型如何。在一些情况下,给定输入数据组的各自子集可存储在不同类型的数据源中。

图18示出根据至少一些实施方案的用于通过机器学习服务(MLS)对大的输入数据组执行有效存储器内过滤操作的示例性过程。如所示,在所描绘实施方案中,机器学习服务的客户端希望从其提取观察记录的数据源1802可包括多个数据对象,诸如文件F1、F2、F3和F4。文件的大小可不同,和/或任何给定文件中的观察记录的数量可不同于其他文件中的观察记录的数量。如本文所用,当参考机器学习操作的输入数据时,术语“观察记录”可与术语“数据记录”同步地使用。由客户端提交的数据记录提取请求可例如通过参考文件F1、F2、F3和F4的位置(例如,目录名称或者一组URL)指示数据源1802。在所描绘实施方案中,响应于提取请求,MLS可总体上判定或估计数据组的大小(例如,文件的组合大小),并且确定文件应逻辑地级联以形成统一地址空间的次序。在所示处实例中,可例如通过按F1、F2、F3和F4的次序将文件逻辑地级联以生成数据组1804。在一些实施方案中,客户端的数据记录提取请求可指定多文件数据组的文件将组合(至少初始地)的次序和/或文件的大小。在其他实施方案中,MLS可确定级联次序(例如,基于诸如文件名称的词法次序、文件的大小等等的各种因素的任何组合)。注意,尽管在图18和一些随后图中,文件用作存储观察记录的数据对象的实例,但在各种实施方案中,可使用用于输入过滤的类似技术,而不管使用的数据对象的类型如何(例如,提供区块级接口的卷、数据库记录等)。

数据组1804的级联地址空间可随后再划分为多个邻接块,如块映射1806中指示的。在不同实施方案中,可基于若干因素中的任一个确定块的大小(Cs)。例如,在一个实施方案中,块大小可设置,使得每个块可装入到MLS服务器(例如,图1的服务器池185)的存储器中,将在所述服务器处生成对客户端的数据记录提取请求的至少一部分响应。考虑简单的情境:其中可用于若干MLS服务器中的每一个处的数据记录的存储器部分是Sm。在这种情境中,可选择使得Cs小于或等于Sm的块大小Cs,如图18所示。在其他实施方案中,客户端请求可指示块大小偏好,或者MLS可定义即使不同服务器具有可用于数据记录的不同量的存储器也将使用的默认块大小。在一些实施方案中,将用于对一个记录提取请求做出响应的块大小可与用于另一记录提取请求的块大小不同;在其他实施方案中,相同块大小可用于多个请求或者所有请求。级联数据组1804再划分成邻接块(而不是例如随机选择的子部分)可增加数据组的部分,所述部分可通过比必须通过随机读取来读取的部分更有效的顺序读取来读入,如以下关于图19示出的。在一些实施方案中,给定块映射的不同块可具有不同大小,例如,对于给定数据组的所有块,块大小不需要一定相同。注意,数据组初始再划分成块表示可在对数据组的物理I/O操作之前执行的逻辑操作。

在所描绘实施方案中,可例如基于正使用的块大小确定一组初始候选块边界1808。如所示,在至少一些实施方案中,侯选快边界不需要与文件边界对准。在至少一些实施方案中,当最终读取块时,可必须在一定程度上修改候选块边界以便将块边界与观察记录边界对准,如以下参考图22更详细描述的。在一些实施方案中,可例如基于客户端的请求中包括的过滤描述符(其还可被称为检索描述符)的内容为分块的数据组1810生成块级过滤计划1850。块级过滤计划可指示例如将对输入数据的块执行多个存储器内过滤操作1870(例如,1870A、1870B和1870N)的次序,所述存储器内过滤操作1870诸如混排、分裂、采样或划分用于并行计算诸如映射缩减。在一些实施方案中,机器学习模型可支持模型的并行训练,其中例如输入数据组的各自(以及潜在部分重叠的)子集可用于并行地训练给定模型。在这种情境中,一个训练操作的持续时间可至少部分地与另一个的持续时间重叠,并且输入数据组可通过使用块级过滤操作被划分用于并行训练会话。块级混排例如可涉及重新安排块的相对次序,而不一定重新安排给定块内的观察记录的相对次序。以下描述各种类型的块级过滤操作的实例。

在至少一些实施方案中,客户端可能不一定知道至少一些过滤操作将在数据组的块上而不是在单独数据记录的粒度处执行。在所描绘实施方案中,可执行块的内容(例如,分别包括在C1、C2、C3和C4中的观察记录)的数据传送1814以便根据序列的第一过滤操作来将数据组加载到一个或多个MLS服务器的存储器中。为了实现序列的第一存储器内过滤操作,例如,可执行指向存储至少一些块的一个或多个持久性存储装置的一组读取。在一些实施方案中,例如,在过滤操作1870的序列的一个或多个操作之前,还可能需要解压和/或解密。例如,如果数据以压缩形式存储在持久性存储装置处,那么其可根据由客户端提供的或者由MLS确定的解压指令/元数据解压。类似地,如果源数据被加密,那么MLS可解密所述数据(例如,使用由客户端提供的或指示的密钥或凭证)。

在完成所述组读取(和/或所述组相关联解压/解密操作)之后,块C1-C4的至少子集可存在于MLS服务器存储器中。(如果序列的第一过滤操作涉及生成样本,例如,并非所有块可能必须被读入)。可在MLS服务器存储器中适当地执行计划1850的剩余过滤操作,例如,在所描绘实施方案中不需要将任一个块的内容复制到持久性存储装置中,和/或不需要从源数据位置重新读取任一个块的内容。例如,第一过滤操作的存储器内结果可充当第二过滤操作的输入数据组,第二过滤操作的存储器内结果可充当第三过滤操作的输入数据组等等。在所描绘实施方案中,过滤操作的序列的最后输出可用作记录解析1818(即,确定观察记录的各种变量的内容)的输入。由于解析而生成的观察记录1880可随后被提供为对一个或多个目的地例如对模型1884和/或特征处理配方1882的输入。因此,在所描绘实施方案中,可仅需要单遍物理读取操作来实现多个不同过滤操作,这可导致与其中对于每个连续过滤操作都将数据组复制到持久性存储装置(或重新读取)的情境相比大量输入处理加速。当然,尽管可在不访问持久性存储装置的情况下在存储器中执行多个块级和/或观察记录级操作,但如果必要的话任何这种操作的结果可存储到持久性存储装置,例如,使得结果可稍后重新用于另一作业。因此,尽管通过上述技术使得更容易避免对基于盘的或其他持久性存储装置的频繁和潜在耗时的I/O操作,但仍可基于应用的需求当和在必要时在任何阶段执行对持久性存储装置的I/O。

通过如上所述的在块级执行过滤操作诸如混排或采样,可避免指向单独数据记录的随机物理读取操作。考虑一种情境,其中输入数据组被混排(例如,以便交叉验证分类模型),混排以一兆字节的块大小在块级处执行,数据组的数据记录具有一千字节的平均大小,并且既不需要解压又不需要解密。如果原始数据组大小为1000兆字节,那么在随机混排的任何给定迭代中,1000个块被逻辑安排的次序可改变。然而,在块级混排操作中,任何给定块内的数据记录的次序将不改变。因此,位于特定块(例如,1000个块中的块654)内的所有数据记录将被提供为组以使用混排的结果训练模型。如果块654内的记录相对于感兴趣的自变量V1(还可被称为输入变量)不是随机分布的,那么块级混排可能不会为了训练目的相对于随机化V1的值如例如记录级混排将那样好地结束。因此,至少在一些情境中,由于在块级而不是在数据记录级执行过滤,可能有统计质量或预测准确度的一些损失。然而,通常通过适当地选择块大小,质量/准确度的损失可保持在合理范围内。图19示出根据至少一些实施方案的与改变用于对机器学习数据组的过滤操作序列的块大小相关联的权衡。

图19中对于给定数据组DS1示出对应于两个示例性块映射的读取操作。为了简化展示,假设数据组DS1存储在单个盘上,使得盘读取头必须定位在指定偏移处以便在DS1上开始读取操作(随机读取或一组顺序读取)。在块映射1904A上,使用S1的块大小,并且DS1因此在数据组地址空间内再划分成在偏移O1、O2、O3和O4处开始的四个邻接块。(注意,图19和随后图中示出的示例性映射中的块的数量保持得非常小以便说明描述的概念;实际上,数据组可包括成百上千的块)。为了读取四个块,将必须执行总共(至少)四个读取头定位操作(RHP)。在将盘读取头定位在偏移O1处之后,例如,可顺序地读入包括DS1的具有O1与O2之间的偏移的内容的第一块。这种顺序读取(SR1)或一组顺序读取通常相对于随机读取可以是快速的,因为盘读取头可不必在顺序读取期间重新定位,并且盘读取头定位(也称为“寻找”)可通常花费几毫秒,其可具有与顺序读取几兆字节数据所花费的时间相同的数量级。因此,利用S1的块大小,读取如映射到四个块的整个数据组DS1可涉及包括四个慢RHP(RHP1–RHP4)和四个快顺序读取(SR1-SR4)的读取操作混合1910A。

代替使用S的块大小,如果如映射1904B中使用2S的块大小(用于映射1904A的大小的两倍),那么如读取操作混合1910B中指示的,将仅需要两个RHP(一个对应于偏移O1并且一个对应于偏移O3),并且可通过两个顺序读取序列SR1和SR2读入数据组。因此,读取DS1所需要的慢操作的数量将与使用的块大小成反比地减小。在权衡图1990的X轴上,块大小从左到右增加,并且在Y轴上,示出了由块大小变化引起的各种度量的变化。通常,增加块大小将倾向于减少用于将大数据组传送到存储器中的总读取时间(TRT)。即使可并行地执行不同块的读取,增加数据的顺序读取的部分将通常倾向于减少总读取时间。增加块大小可通常需要MLS服务器处的更多存储器来保持块内容,如图1990中示出的每个服务器存储器需求(MR)指示的。最后,如以上论述的,对于至少一些类型的机器学习问题,增加的块大小可导致机器学习模型的稍差的统计质量(QS)或稍差的预测准确度。这可能发生,因为给定块内的记录可能不能相对于整个数据组中的记录(或相对于彼此)以与块相对于彼此过滤相同的方式过滤。在其中MLS能够选择块大小的情境中,因此,可必须考虑图1990中示出的总读取时间、存储器需求以及统计质量之间的权衡。实际上,取决于块相对于整个数据组的大小,由使用较大块引起的统计质量的损失可相当小。在至少一些实施方案中,块与MLS服务器之间不需要1:1的关系,例如,给定MLS服务器可配置来存储数据组的多个块。在一些实施方案中,部分块或块的子集也可存储在MLS服务器处,例如,存储在给定服务器的存储器中的块的数量不需要是整数。在各种实施方案中,除了块级过滤操作之外,如以下更详细描述的,可执行块内和/或跨块过滤操作(例如,观察记录级),这可帮助进一步减少统计质量的损失。注意,图1990中示出的曲线旨在示出宽定性关系,不是精确的数学关系。不同度量相对于块大小改变的比率可不同于图中示出的,并且实际关系可能不一定由如所示的平滑曲线或线表示。

图20a示出根据至少一些实施方案的块级过滤操作(包括混排之后进行分裂)的示例性序列。如所示,分块数据组2010包括十个块C1-C10。图20a顶部处的块C1的详细视图示出其组分观察记录OR1-1至OR1-n,其中连续观察记录由定界符2004分开。如所示,数据组或块的观察记录不需要具有相同大小。在可以是计划1850的存储器内块级过滤操作中的一个的块级混排操作2015中,块被重新排序。在混排之后,块次序可以是C5-C2-C7-C9-C10-C6-C8-C3-C1-C4。在所描绘实例中,在随后块级分裂操作2020中,70%的块(例如,C5-C2-C7-C9-C10-C6-C8)可放置在训练组2022中,而30%的块(C3-C1-C4)可放置在测试组2024中。在所描绘实例中,在块级执行混排时,给定块内的观察记录的内部排序保持不变。因此,块C1的观察记录在混排和分裂之后处于与混排和分裂过滤操作执行之前的相对次序相同的相对次序(OR1-1、OR1-2…OR1-n)。注意,在所描绘实施方案中,对于至少一些类型的过滤操作,除了避免到持久性存储装置的复制之外,块内容可能甚至不必从一个存储器位置移动到另一存储器位置。例如,代替在混排期间将块从C1-C2-C3-C4-C5-C6-C7-C8-C9-C10物理重新排序为C5-C2-C7-C9-C10-C6-C8-C3-C1-C4,块的指针可被修改,使得指示第一块的指针在混排之后指向C5而不是C1等等。

在一些实施方案中,如前所述,MLS还可支持观察记录级处的过滤。例如,客户端的记录提取请求可包括用于块级过滤和记录级过滤的描述符。图20b示出根据至少一些实施方案的包括块级过滤以及块内过滤的存储器内过滤操作的示例性序列。在所描绘实例中,执行与图20a中示出的块级过滤操作相同组的块级过滤操作,即,对数据组2004执行块级混排2015,之后是70-30分裂2020成训练组2022和测试组2024。然而,在块级分裂之后,还执行块内混排2040,导致一些或所有块内的观察记录的重新安排。由于块内混排,块C1的观察记录可按OR1-5、OR1-n、OR1-4、OR1-1、OR1-2…的次序提供为对模型或特征处理配方(或者随后过滤操作)的输入,例如,其与块级混排之前的观察记录的初始次序不同。还可根据客户端的过滤描述符以类似方式对图20a或图20b中未示出的其他块(例如,C2–C10)的观察记录进行混排。在至少一个实施方案中,还可支持跨块记录级过滤操作。例如,考虑其中至少两个块Cj和Ck被读取到给定MLS服务器S1的存储器中的情境。在跨块混排中,在S1的存储器中,Cj的至少一些观察记录可与Ck的一些观察记录混排或重新排序。在此类实施方案中,也可跨共同定位在给定服务器的存储器中的块执行其他类型的记录级过滤操作(例如,采样、分裂或划分)。在一个实现中,多个服务器可与彼此合作以便执行跨块操作。对于一些应用,在块级操作的结果组馈送到用于特征处理的配方或用于训练的模型之前可仅执行单个块级过滤操作,即,可能不需要一系列多个块级操作。在至少一些实施方案中,还可在一个或多个块级操作之后执行其他类型的操作(诸如,观察记录的聚集/集合,或者将聚集函数应用到观察记录的所选择变量的值)。

在块级或观察记录级执行过滤操作的能力可实现用于实现相同输入过滤目标的若干不同替代。图21示出根据至少一些实施方案的对数据组的存储器内采样的替代方法的实例。将获得包括十个块C1–C10的分块的数据组2110的60%的样本,也就是说,将保留数据组的大约60%的观察记录,而将从采样操作的输出排除大约40%的观察记录。

在由标记“1”的箭头指示的第一方法中,可实现对块的直截了当的块级采样2112,例如,导致将块C1、C2、C4、C6、C8和C10选择为期望样本。在第二方法中,可使用块级采样和块内采样的组合。例如,如由标记“2”的箭头指示的,在第一步骤中,可使用块级采样2114选择80%的块(导致保留块C1、C2、C3、C5、C6、C7、C8和C9)。接着,在块内采样步骤2116中,可选择每个保留的块的75%的观察记录,导致大约60%的观察记录(由于80%的75%为60%)的最后输出。在由标记“3”的箭头指示的第三替代方法中,可在单个块内采样步骤2118中对每个块的60%的观察记录采样。在至少一些实施方案中,还可针对其他类型的过滤操作支持用于实现给定输入过滤目标的类似替代和组合。

在至少一些实施方案中,可必须调整候选块边界以便确保单独观察记录不被分裂,并且确保观察记录被分配给块的方式的一致性。图22示出根据至少一些实施方案的基于观察记录边界的位置确定块边界的实例。数据组2202A包括由记录定界符诸如定界符2265分开的观察记录OR1–OR7(其大小可变化)。例如,在其中数据源包括字母数字或文本文件的一个实现中,换行字符(“\n”)或其他特殊字符可用作记录界定符。基于所选择块大小,候选块边界碰巧落在数据组2202A中的观察记录的主体内。在所描绘实例中,候选块边界(CCB)2204A落在观察记录OR2内,CCB 2204B落在OR4内,并且CCB2204C落在OR6内。在所描绘实施方案中,以下方法可用于识别实际块边界(ACB)。从紧接在给定块的结束边界的CCB之后的偏移开始,并且按增加偏移次序(例如,按顺序扫描或读取)检查数据组,将发现的第一观察记录定界符选择作为块的结束ACB。因此,在数据组2202A的实例中,将OR2与OR3之间的定界符的位置识别为对应于CCB 2204A的实际块边界2214A。类似地,ACB 2214B对应于OR4与OR5之间的定界符,并且ACB 2214C对应于OR6与OR7之间的定界符。由于实际块边界的选择,如块表格2252A中示出的,块C1包括OR1和OR2,块C2包括OR3和OR4,并且块C3包括OR5和OR6,而块C4包括OR7。使用所述技术,每个观察记录映射到一个且仅一个块。

在一些实施方案中,可应用关于块边界的确定的相同规则,即使CCB碰巧与OR定界符重合。例如,在数据组2202B中,CCB 2204K碰巧与将OR2和OR3分开的定界符对准,CCB 2204L与将OR4和OR5分开的定界符对准,而CCB 2204M与将OR6和OR7分开的定界符对准。使用上述规则,在每种情况下,针对下一个定界符的搜索从紧接在CCB之后的偏移开始,并且将发现的下一个定界符选择作为ACB。因此,ACB 2214K定位在OR3与OR4之间的定界符处,ACB 2214L定位在OR5与OR6之间的定界符处,并且ACB 2214M定位在OR7与OR8之间的定界符处。如块表格2252B中指示的,数据组2202B的块C1最终包括OR1、OR2和OR3,块C2包括OR4和OR5,块C3包括OR6和OR7,并且块C4包括OR8。

图23示出根据至少一些实施方案的可响应于对从各种数据源类型中的任一个提取数据记录的请求而在机器学习服务处调度的作业的实例。如所示,机器学习服务可实现以数据源不可知的方式使得客户端164能够提交观察记录提取/检索请求2310的一组编程接口2361。MLS可支持若干不同类型的数据源2310,诸如可向数据对象呈现web服务接口的对象存储服务2302;实现呈现区块装置接口的卷的区块存储服务2304;各种分布式文件系统中的任一个2306(诸如,Hadoop分布式文件系统或HDFS);以及单主机文件系统2308(诸如Ext3的可由基于Linux的操作系统支持的变型)。在至少一些实施方案中,数据库(例如,关系数据库或非关系数据库)也可以是所支持数据源。可在检索请求中指代使用所支持类型的数据源中的任一个实现的数据对象(例如,文件),如由标记2352A和2352B的箭头指示的。在一些实现中,单个客户端请求可指代输入数据对象,诸如位于若干不同类型的数据源和/或一个或多个数据源类型的若干不同实例中的文件。例如,给定输入数据组的不同子集可包括位于两个不同单主机文件系统2308处的文件,而另一输入数据组的各自子集可位于对象存储服务和区块存储服务处。

MLS请求处理机180可接收记录提取请求2310,所述记录提取请求2310指示将对位于一个或多个数据源处的指定数据组执行的一系列过滤操作,所述过滤操作诸如混排、分裂、采样、划分(例如,用于并行计算诸如映射缩减计算,或者用于在时间上彼此重叠并且可在使用的训练组上彼此重叠的模型训练操作/会话)等的某种组合。在所描绘实施方案中,过滤计划生成器2380可生成指定的数据组的块映射,以及用于完成所请求系列的过滤操作(处于块级、记录级或两个级别)的多个作业,并且将作业插入一个或多个MLS作业队列142中。例如,可生成一个或多个块读取作业2311来从数据源读入数据。如果需要的话,可创建单独作业来解压块(诸如作业2312)和/或解密数据(作业2313)。在所描绘实施方案中,可针对块级过滤操作生成作业2314,而可针对观察记录级过滤操作生成作业2315。在所描绘实施方案中,观察记录级的过滤操作可包括块内操作(例如,给定块内的记录的混排)和/或跨块操作(例如,可共同位于给定MLS服务器的存储器中的两个或更多个不同块的记录的混排)。在至少一些实施方案中,可针对每个块的每种类型的操作创建各自作业,因此,例如,如果块映射导致100个块,那么可针对分别读入一个块创建100个作业,可针对第一块级过滤操作创建100个作业等等。在其他实施方案中,可针对涉及多个块的操作创建给定作业,例如,对于每个块可能不需要单独作业。在一些实施方案中,如以下更详细描述的,数据组分裂成训练组和测试组可实现为单独作业,一个用于训练组并且一个用于测试组。如前论述的,给定作业可指示对其他作业的依赖性,并且可使用此类依赖性来确保按正确次序执行由客户端请求的过滤任务。

图24示出根据至少一些实施方案的可由客户端使用由机器学习服务实现的I/O(输入-输出)库的编程接口提交的记录提取请求的示例性组成元素。如所示,观察记录(OR)提取请求2401可包括指定输入数据组将从其检索的位置或地址的源数据组指示符2402。对于存储在呈现web服务接口的对象存储服务中的数据组,例如,可指定一个或多个URL(统一资源定位符)或URI(统一资源标识符);对于文件,一个或多个文件服务器主机名称、一个或多个目录名称和/或一个或多个文件名称的某一组合可被提供为指示符2402。在一个实现中,如果数据组包括多个对象诸如多于一个文件,那么客户端可包括用于数据组的对象的逻辑级联的指令以形成统一地址空间(例如,“以文件名称的字母表次序组合目录d1的文件,随后以字母表次序组合目录d2的文件”的逻辑等效物)。在一些实施方案中,观察记录的预期格式2404或模式可包括在OR提取请求中,例如,指示OR的变量或字段的名称、变量间定界符(例如,逗号、冒号、分号、制表符或其他字符)以及OR定界符、变量的数据类型等等。在至少一个实现中,MLS可向其数据类型未由客户端指示的变量分配默认数据类型(例如,“字符串”或“字符”)。

在一个实施方案中,OR提取请求2401可包括压缩元数据2406,指示例如用于数据组的压缩算法、存储压缩数据的单元或区块的大小(其可与将对其执行块级存储器内过滤操作的块的大小不同)以及正确地解压数据组可能必要的其他信息。在一些实施方案中,在请求2401中可包括解密元数据2408诸如密钥、凭证和/或数据组上使用的加密算法的指示。在一些实现中并且针对某些类型的数据源,客户端可在请求2401中提供将用于能够获得对数据组的读取访问的授权/认证元数据2410。这种元数据可包括例如,账户名或用户名以及一组对应凭证,或者用于安全容器(类似于图3中示出的安全容器390)的标识符和密码。

在所描绘实施方案中,OR提取请求2401可包括一个或多个过滤描述符2412,指示例如将在块级和/或在OR级处执行的过滤操作的类型(混排、分裂、采样等),以及将实现过滤操作的次序。在一些实现中,可包括一个或多个描述符2452用于块级过滤操作,并且可包括一个或多个描述符2454用于记录级(例如,块内和/或跨块)过滤操作。每个这种描述符可指示对应过滤操作的参数,例如,分裂操作的分裂比、采样操作的采样比、数据组将再划分用于并行计算或并行训练会话的划分数、在发现记录的模式无效的情况下将采取的动作等等。

在至少一个实施方案中,OR提取请求2401可包括分块偏好2414,指示例如特定可接受块大小或可接受块大小的范围。可在字段2416中指示过滤操作序列的输出将指向的目的地(例如,特征处理配方或模型)。在一些实施方案中,客户端可指示过滤操作的性能目标2418,诸如“完成”时间,其可由MLS使用来选择将使用的服务器的类型或者生成旨在实现期望目标的过滤序列计划。注意,在至少一些实施方案中,并非图25中示出的所有组成元素可包括在记录提取请求内,例如,压缩和/或解密相关字段可仅包括用于以压缩和/或加密形式存储的数据组。

图25是示出根据至少一些实施方案的可在实现用于对大输入数据组的存储器内过滤操作序列的I/O库的机器学习服务处执行的操作的方面的流程图。可实现使得客户端能够提交类似于图24中示出的那些观察记录提取请求的观察记录提取请求的I/O库。I/O库可关于存储输入数据组的数据存储区的类型不可知,例如,可为存储在若干不同数据存储区类型的任何组合处的记录提取请求提供一组常见编程接口。可接收这种OR提取请求(元素2501),指示可能太大而不能装入到MLS服务器的可用存储器中的源数据组。OR提取请求可包括指示将对输入数据组执行的一系列过滤操作的一个或多个描述符。

可例如基于各种因素中的任一个确定将用于将输入数据组的邻接子集传送到一个或多个MLS服务器的存储器中的块大小(元素2504),所述因素诸如:MLS服务器的存储器容量约束、请求客户端通过请求的参数指示的偏好、MLS的默认设置、输入数据组的估计或实际大小等等。在一些实现中,可选择若干不同块大小,例如,一些MLS服务器可具有比其他服务器高的存储器容量,因此用于具有更多存储器的服务器的块可更大。在一些实施方案中,如果输入数据组包括多个对象(诸如文件),那么可将对象逻辑地级联以便形成单个统一地址空间(元素2507)。可例如基于请求中提供的指令或指南、基于对象名称的字母数字排序、按文件大小的次序、按随机次序或者按由MLS选择的某一其他次序确定对象被级联的序列。

可为数据组生成块映射(元素2510),指示基于所选择块大小和统一地址空间的一组候选块边界。可作为映射生成过程的部分计算数据对象或输入数据组的对象内的候选块边界的位置或偏移。可创建对应于OR提取请求中的过滤描述符的一系列块级过滤操作的计划(元素2513)。在一些实施方案中,除了或代替块级过滤操作,计划可包括记录级过滤操作(例如,块内操作或跨块操作)。在一些实施方案中,可例如对共同位于给定MLS服务器的存储器中的若干块的观察记录执行跨块操作。在其他实施方案中,还可或替代地对已读入到不同MLS服务器的存储器中的块执行跨块操作。所支持过滤操作的类型可包括采样、分裂、混排和/或划分。至少部分地基于计划的第一过滤操作,可执行从持久性存储装置到MLS服务器存储器的数据组的块的至少子集的数据传送(元素2516)。取决于数据存储在OR提取请求中指示的源位置处的方式,在一些实施方案中,除了读取操作之外,数据传送过程可包括解密和/或解压。在一些实施方案中,客户端可请求MLS来在将块从源位置传送到MLS服务器之前加密和/或压缩数据,并且随后一旦加密的/压缩的数据到达MLS服务器就执行反向操作(解密和/或解压)。

在所描绘实施方案中,在MLS服务器的存储器中执行序列的第一过滤操作之后,例如,在不将块复制到持久性存储装置或者针对其原始源位置重新读取块,可适当地执行剩余过滤操作(如果有的话)(元素2519)。在一个实施方案中,针对一个或多个过滤操作,可生成各自作业并将其放置在MLS作业队列中。在至少一些实施方案中,可使用记录解析器来从执行的过滤操作序列的输出获得观察记录(元素2522)。可将OR以编程方式提供到请求客户端(例如,作为响应于表示OR提取请求的API调用返回的阵列或集合)和/或指定目的地,诸如模型或特征处理配方(元素2525)。

输入数据组的一致过滤

图26示出根据至少一些实施方案的可用于提高由机器学习模型进行的预测的质量的迭代过程的实例。过程可包括对于若干交叉验证迭代的每个重新分裂或重新混排输入数据组,例如,如下描述的。包括带标记的观察记录(即,其因变量的值或“标签”是已知的观察记录)的输入数据组可例如使用上述技术映射到一组邻接块2602以便增加物理I/O的可顺序地执行的部分。可执行存储器内块级分裂操作2604以便获得训练组2610和测试组2615。例如,在一种情境中,80%的块可包括在训练组2610中,并且剩余20%的块可包括在测试组2615中。可在训练运行2618中训练候选模型2620(例如,针对线性回归模型,可确定将分配给数据组的各种自变量/输入变量的候选系数)。可随后使用候选模型2620来做出关于测试组的预测,并且可获得模型的评估结果2625(例如,指示模型能够如何准确地使用候选系数生成测试组的记录的因变量的预测)。在不同实施方案中,可取决于使用的模型的类型获得准确度或质量的各种测量2630,例如,可为线性回归模型计算均方根误差(RMSE)或均方根偏差(RMSD),可为二进制分类问题计算真阳性和真阴性之和与测试组的大小的比率等等。

在所描绘实施方案中,如果准确度/质量测量2630是令人满意的,那么候选模型2620可指定为改进的模型2640。否则,可在尝试提高模型的预测的质量或准确度时采用若干技术中的任一个。模型调谐2672可包括:修改用于预测的所述组自变量或输入变量,改变模型执行参数(诸如基于树的分类模型的最小存储桶大小或最大树深),等等,以及执行另外训练运行2618。可使用相同训练组和测试组迭代地执行模型调谐,在尝试增强结果的准确度或质量时在每个迭代中改变输入变量和参数的某一组合。在模型改进的另一方法中,对于连续训练和评估迭代,可对训练数据组和测试数据组进行改变2674。例如,可混排输入数据组(例如,在块级和/或在观察记录级),并且可获得一对新的训练/测试组用于下一轮训练。在另一方法中,可通过例如识别其变量值似乎为无效的或异常值的观察记录并且将此类观察记录从数据组删除来提高数据的质量。用于模型改进的一种常见方法可涉及使用从相同基础数据提取的指定数量的不同训练组和测试组交叉验证候选模型,如以下参考图27描述的。正如可执行模型调谐2672的多个迭代一样,在一些实施方案中还可迭代地执行数据组改变2674,例如,直到获得期望水平的质量/准确度,直到可用于模型改进的资源或时间耗尽,或者直到尝试的改变不再导致模型的质量或准确度的更多改进。

图27示出根据至少一些实施方案的可用于机器学习模型的交叉验证的数据组分裂的实例。在所描绘实施方案中,包括带标记的观察记录2702的数据组以五种不同方式分裂以获得每个包括80%的数据的各自训练组2720(例如,2720A–2720E)以及包括剩余的20%的数据的对应测试组2710(例如,2710A-2710E)。训练组2720中的每一个可用于训练模型,并且对应测试组2710可随后用于评估模型。例如,在交叉验证迭代2740A中,可使用训练组2720A训练模型并随后使用测试组2710A评估所述模型。类似地,在交叉验证迭代2740B中,可使用包括80%的输入数据的不同训练组2720B(以两个部分示出,图27中的部分1和部分2),并且不同测试组2710B可用于评估模型。图27中示出的交叉验证实例可被称为“5倍交叉验证”(因为所生成的不同训练组/测试组对的数量以及训练和评估迭代的对应数量)。在一些实施方案中,MLS可实现允许客户端请求k倍交叉验证的API,其中k是API参数,所述API参数指示将生成用于使用相同基础输入数据组训练指定模型的不同训练组(以及对应测试组)的数量。

在图27中示出的实例中,带标记的观察记录分布在八个块C1–C8中。如前所述,可基于各种因素中的任一个确定块大小和边界,所述因素包括MLS服务器处的存储器大小限制、客户端偏好等等。在一些情境中,期望的分裂比(诸如图27中示出的80-20分裂)可导致给定块的观察记录必须跨训练组和对应测试组分布。也就是说,在一些情况下,部分块可必须包括在训练组和测试组中。例如,块C2的一些观察记录可包括在测试组2710A中,而块C2的其他观察记录可包括在训练组2720A中。

注意,尽管在图27中训练组可似乎包括输入数据组的邻接部分,但实际上,在至少一些实施方案中,可使用随机选择(例如,在块级、在观察记录级或者在两个级别处)获得训练数据组和测试数据组。通过改变包括在不同交叉验证迭代2740A-2740E的训练组和测试组中的所述组观察记录,进行的预测的质量可通常提高,因为输入数据组的不同子集中的输入变量值的局部不均匀性的影响可减少。例如,如果位于测试组2710A中的数据记录的子集内的独立数值变量的值与整个数据组上的所述变量的平均值相比异常高,那么所述异常对模型准确度/质量的影响将预期通过使用用于其他交叉验证迭代的不同测试数据组来消散。

图28示出根据至少一些实施方案的用于可使用伪随机数序列执行的交叉验证的输入数据组的一致块级分裂的实例。使用基于随机数的分裂算法2804来将数据组块C1-C10分成训练组和测试组用于连续训练评估迭代(TEI)。每个TEI可例如表示特定交叉验证迭代,诸如图27中示出的那些交叉验证,但还可独立于是否尝试交叉验证来执行此类训练和评估迭代。可使用伪随机数生成器(PRNG)2850来获得伪随机数的序列2872。PRNG 2850可例如实现为可从MLS的部件访问的MLS库或编程语言库的效用函数或方法。在所描绘实施方案中,可使用种子值S(例如,实数或字符串)来确定性地初始化或重置PRNG 2850的状态,使得在利用给定种子S重置状态之后产生的伪随机数的序列是可重复的(例如,如果使用相同种子重复多次重置PRNG,那么在每个这种状态重置之后将提供PRN的相同序列。

在所描绘实例中,为了简化展示,已选择输入数据组的块的数量(10)和分裂比(80-20),使得整数的块放置到训练组和测试组中,即,给定块的观察记录不必分布在训练组和测试组两者之间。可使用由PRNG产生的序列2872的伪随机数(PRN)来选择训练组和测试组的成员。例如,使用具有84621356的值的第一PRN 2874(在重置PRNG的状态之后产生),可选择块C7用于包括在将用于TEI 2890A的训练组2854A中。使用第二PRN 56383672,可选择块C2用于训练组2854A等等。在所描绘示例性情境中,基于随机数的分裂算法2804可依赖于PRN序列的某些统计特性以便正确地将输入数据组的每个块指定到训练组或测试组中。统计特性可包括非常大数量的不同伪随机数(或具有一定长度N的不同子序列)预期在任何给定序列中产生(例如,在给定PRN在序列中重复之前或者在长度N的子序列重复之前)的性质。如果在所描绘实施方案中,在生成给定训练组2854的时间与生成对应测试组2856的时间之间未重置PRNG的状态,那么所生成的PRN 2872的序列可确保输入数据的每个块映射到训练组或测试组中,并且没有块既映射到训练组中又映射到测试组中。源数据组的每个对象(例如,块或观察记录)放置在精确一个分裂结果组(例如,训练组或对应的测试组)的这种分类操作可被称为“一致”或“有效”分裂。输入数据组的一个或多个对象(a)不放置在分裂结果组中的任一个中或者(b)放置在分裂结果组中的多于一个中的分裂操作可被称为“不一致”或“无效”分裂。在至少一些实施方案中,用于两种分裂映射(映射到训练组以及映射到测试组)中的每一个的PRN的序列以及因此PRN源的状态可影响产生不一致分裂的概率。进而,不一致分裂用于训练和评估可导致比使用一致分裂的情况差的预测质量和/或差的准确度。

在至少一些实施方案中,例如,可基于响应于实现TEI的客户端请求的内容在训练组和/或测试组内实现块内混排。因此,例如,训练组2854A的给定块(例如,C7)内的观察记录可在其作为输入提供给正训练的模型之前在存储器中相对于彼此重新排序(不需要将记录复制到持久性存储装置)。类似地,测试组2856A的给定块(例如,C3)的观察记录可在模型被使用测试组评估之前在存储器中混排。

由于使用PRN序列2872,可实现具有块的训练组2854A(C7、C2、C4、C5、C9、C1、C10、C8)和块的测试组2856A(C3、C6)的第一TEI 2890A。在一些实施方案中,还可使用同一PRNG 2850(例如,无需重新初始化或重置)来分裂输入数据组以用于下一个TEI 2890B。注意,对于一些模型和/或应用,在各种实施方案中,可实现仅一个TEI。在所描绘实例中,TEI 2890B的训练组2854B包括块(C8、C3、C5、C6、C10、C2、C1、C9)并且对应测试组2856B包括块(C4、C7)。图28中示出的两个分裂根据以上提供的定义是一致/有效的。注意,尽管图28中在块级示出数据的分裂,但在至少一些实施方案中PRNG状态与分裂的一致性之间的相同类型的关系可应用到观察记录级处的分裂(或者涉及部分块的分裂)。也就是说,为了使用PRNG在观察记录级处执行一致分裂,在训练组的确定与测试组的确定之间应理想地不重新初始化PRNG的状态。在一些实施方案中,涉及部分块的分裂可实现为块级分裂,其中将非整数数量的块放置在每个分裂结果组中,之后是其记录跨多个分裂结果组分布的那些块的块内分裂。除了两路分裂之外,分裂数据组的基于PRN的方法还可用于N路分裂(其中N>2)。

图29示出根据至少一些实施方案的可由于不适当地重置伪随机数生成器发生的输入数据组的不一致块级分裂的实例。在所描绘实例中,使用种子S初始化PRNG 1850。分裂算法2804使用PRN序列2972A来产生训练组2954A,所述训练组2954A包括数据组2844A的包括在图28的测试组2854A中的相同组的块(C7、C2、C4、C5、C9、C1、C10、C8)。在生成训练组2954A之后,重新初始化PRNG。因此,重复所生成伪随机数的序列,例如,在重置之后生成的第一PRN再一次为84621356,第二PRN再一次为56383672等等。在所描绘实例中,由于PRN的重复,分裂算法选择块C7和C2包括在测试组2956A中。这种分裂可视为无效或不一致,因为C2和C7既位于训练组中又位于测试组中(并且因为块C3和C6既不位于训练组中也不位于测试组中)。

在一些实施方案中,针对给定块或记录到训练组或测试组中的每个放置,可能不能实时调用PRNG。相反,可事先生成一列伪随机数或随机数(例如,使用PRNG),并且预先生成的列表中的数字可逐个用于分裂放置。在这种情境中,只要指针维持到列表中的用于训练组的最后数字,并且使用剩余数字(即,不用于训练组的数字)做出测试组放置决定,在至少一些实施方案中就可实现分裂一致性。

在一个实施方案中,在达到一致分裂的另一方法中,可实现各自机构(例如,API)以便(a)保存PRNG的当前状态并且(b)以便将PRNG重置为保存状态。考虑一种情境:其中可调用API“save_state(PRNG)”以便在已生成TEI的训练组之后将PRNG的内部状态保存到对象“state_AfterTraining”,并且可调用不同的API“set_state(PRNG,state_AfterTraining)”以便就在开始TEI的测试组的选择之前将PRNG(或不同PRNG)的状态重置为保存状态。使用这样一对状态保存和恢复操作,可获得的PRN序列与如果在不保存/重置PRNG状态情况下获得所有PRN则将获得的PRN序列相同。在一些实施方案中,与给定TEI的用于测试组选择的PRN资源不同的PRN资源可用于训练组选择,如以下关于图30描述的,并且此类PRN资源的状态可同步化以帮助实现一致分裂。

在至少一些实施方案中,从给定输入数据组选择测试组可相对于选择对应训练组异步地(并且在一些情况下更迟地)发生。例如,单独作业可插入MLS作业队列中用于选择训练组和选择对应测试组,并且作业可以类似于前述方式的方式独立于彼此调度。在此类情境中,为了确保训练/测试分裂是有效且一致的,尽管两个操作之间存在延迟,在一些实施方案中,MLS可维持与训练组的选择有关的状态信息,这可随后用于帮助生成测试组。图30示出根据至少一些实施方案的调度相关训练和评估作业对的示例性时间线。示出了在作业调度器的时间线的大约四个小时的时间段(从特定一天的11:00至15:00)期间发生的四个事件。

在时间t1处,模型M1的训练和评估迭代TEI1的训练作业J1开始。作业JI在MLS的一组服务器SS1处调度,并且可包括训练组的选择,例如,在块级、在观察记录级或者在两个级别处。可使用伪随机数源(PRNS)3002(诸如返回PRN序列或者一列预先生成的PRN的函数或方法)来生成作业J1的训练组。在时间t2处,可在服务器组SS2处调度用于不同模型M2的训练和评估迭代TEI2的训练作业J2。可使用从不同PRNS 3002B获得的伪随机数获得作业J2的训练组。

在时间t3处,调度用于TEI1的评估阶段的测试作业J3,比作业J1晚超过两个小时。在所描绘实例中,例如,J3的调度可延迟直到J1完成,并且用于J1/J3的数据组的大小可如此大使得花费多于两个小时来完成训练阶段。J3可在与用于J1的服务器组不同的服务器组SS3处调度。在至少一些实现中,相比可用于服务器组SS1处的,不同的PRNS 9002C可用于服务器组SS3处。在所描绘实施方案中,为了确保训练/测试分裂的一致性,PRNS 3002C可与PRNS 3002A同步。因此,例如,如果种子值Seed1用于初始化PRNS 3002A,并且1000个伪随机数在作业J1期间从PRNS 3002A获得,那么相同种子值Seed1可用于初始化逻辑等效的PRNS 3002C,并且1000个伪随机数可在获取将用于测试组选择的伪随机数之前从PRNS 3002C获得。在一些实施方案中,如上论述的“save_state()”和“set_state()”调用的等效物可用于使PRNS 3002C与PRNS 3002A同步。如果预先生成的PRNS的列表用作PRN源,那么在一个实施方案中,MLS可确保(a)同一列表用于J1和J3,并且(b)列表中的用于J3的第一PRN处于紧接在用于J1的最后PRN的位置之后的位置。在各种实施方案中可使用其他同步化技术来确保用于测试组确定的伪随机数的序列是这样的,使得针对作业J1和J3实现有效且一致的分裂。类似地,针对对应于训练作业J2的测试作业J4(在t4处调度),PRNS 3002D可与PRNS 3002B同步。在至少所描绘实施方案中,为了确保分裂一致性,在用于生成训练组和对应测试组的所述组伪随机数之间强制逻辑关系或一定程度的协调可以是必要的(例如,J3中使用的数字可必须相对于J1中使用的数字协调,并且J4中使用的数字可必须相对于J2中使用的数字协调)。

图31示出根据至少一些实施方案的响应于客户端请求在机器学习服务处生成一致性元数据的系统的实例。一致性元数据可跨相关作业(例如,训练作业和对应的评估作业)保留或共享以便实现关于图30论述的协调/同步化种类。在图31的系统3100中,MLS的客户端164可通过MLS I/O库的数据源不可知的编程接口3161提交分裂请求3110。在一些实现中,分裂请求可以是交叉验证请求的部分或者执行指定数量的训练和评估迭代的请求的部分。在至少一个实施方案中,分裂请求可表示图24中示出的观察记录提取请求2401类型的变型。分裂请求可包括例如可用于获得用于所请求分裂操作的伪随机数的一个或多个客户端指定的种子值3120,但在至少一个实施方案中,此类种子值可不必由客户端提供。另外,在所描绘实施方案中,分裂请求3110可包括输入数据组的指示3122(例如,文件名称、路径或标识符)。分裂参数3124可指示一个或多个训练测试比(例如,图29中示出的80-20分裂比)。在分裂请求是用于训练和评估迭代或交叉验证迭代的请求的部分的一些实施方案中,期望迭代计数3126可包括在客户端请求中。

在所描绘实施方案中,MLS的请求处理机部件180可将请求3110传递到计划生成器3180。计划生成器可确定一组一致性元数据3152,例如,可在针对所请求分裂迭代插入在MLS作业队列中的相关作业之间共享的元数据。元数据3152可例如包括客户端提供的种子值3120。在一个实施方案中,如果客户端提供的种子值不可用(例如,因为用于客户端请求的API 3161不需要种子被提供,或者因为客户端无法提供有效种子值),那么计划生成器3180可确定一组一个或多个种子值。此类MLS选择的种子值可例如基于输入数据组ID 3122(例如,对应于输入数据组的文件名称或目录名称的散列值可用作种子)、客户端标识符、接收到请求3110的时间、从其接收请求3110的IP地址等等的某一组合。在一个实现中,MLS可具有可用的伪随机数的若干源,诸如PRNG或预先生成的PRN列表,并且一个或多个PRN源的标识符可包括在一致性元数据3152中。在将使用预先生成的PRN列表的实施方案中,可使用指定列表内的最后使用的PRN的指针,使得使用列表的每个实体(例如,MLS作业执行器)在其已使用列表的PRN的某一数字之后更新指针。在上述“save_state()”和“set_state()”操作的等效物支持用于PRNG的一个实施方案中,PRNG的状态记录可包括在元数据中。使用PRNG的每个实体(例如,MLS作业执行器)可更新状态记录,例如,使得使用PRNG的下个实体可大致设置其状态以获得可用于执行一致分裂的PRN。

计划生成器3180可生成各自作业3155以便选择分裂结果组。例如,针对给定训练和评估迭代,可创建一个作业以便选择训练组并且可生成另一作业以便选择测试组。在一些实现中,由计划生成器3180创建的作业对象可包括将用于所述作业的一致性元数据的引用或指针。在另一实现中,一致性元数据3152的至少一部分可包括在作业对象内。当执行作业时,可使用元数据3152来确保输入数据组一致地分裂。在一些实施方案中,可创建包括训练组选择和测试组选择两者的单个作业。

注意,在至少一些实施方案中,对于其他类型的输入过滤操作,诸如采样或混排,可采取一致性或可重复性的类似方法。例如,在一个实施方案中,客户端可希望确保混排可重复性(即,如果稍后进行具有相同输入数据和相同请求参数的第二混排请求,那么可重新获得一个混排请求的结果)或样本可重复性(即,由于重复样本请求可从数据组检索相同观察记录或块)。如果过滤操作涉及伪随机数的使用,那么保存种子值和/或图31中示出的其他类型的一致性元数据也可实现对混排可重复性和/或样本可重复性的支持。例如,可通过以相同输入数据组开始并且利用与用于初始混排的种子值相同的种子值重新初始化PRNG来获得重复混排。类似地,重新使用相同种子还可导致可重复样本。在各种实施方案中,可使用上述种类的一致性元数据在块级、在观察记录级或在块级和记录级的某一组合处执行一致分裂。在至少一个实施方案中,在执行块级分裂之后,训练组或测试组中的单独块的记录可在用于训练/评估模型之前混排。

图32是示出根据至少一些实施方案的可响应于对机器学习模型的训练和评估迭代的请求在机器学习服务处执行的操作的方面的流程图。如元素3201所示,可通过诸如MLS I/O库API的编程接口接收执行一个或多个TEI(训练和评估迭代,诸如交叉验证迭代)的请求。可为迭代生成一组一致性元数据,例如,包括伪随机数源(PRNS)的一个或多个初始化参数值(诸如值V1)。例如,元数据可包括将用于初始化或重置PRNG的状态的种子值,或者一列预先生成的伪随机数内的特定偏移的指针。在一些实施方案中,客户端可包括TEI请求中的元数据的至少一部分。除了或代替种子值,一致性元数据可包括例如PRNS的标识符、PRNS的状态的表示和/或指向一列伪随机数的指针。

如果请求中指示的输入数据组在多个文件或多个数据对象上伸展,那么可将文件/对象逻辑地级联以便形成输入数据的统一地址空间。可将输入数据组的地址空间再划分成邻接块(元素3207),例如,其中基于客户端偏好、MLS服务器处的存储器约束和/或其他因素选择块大小/边界。可将输入数据组的一个或多个块从持久性存储装置读入到一个或多个MLS服务器处的各自存储器,例如,使得将块C1的至少一部分存储在服务器S1处的存储器中并且将块C2的至少一部分存储在服务器S2处的存储器中(元素3210)。

使用一致性元数据,可选择输入数据的第一训练组Trn1(元素3213),例如,其包括块C1的至少一些观察记录。可在块级、观察记录级或者块级和观察记录级的某一组合处选择训练组。在至少一些实施方案中,部分块可包括在训练组Trn1中(也就是说,给定块的一些观察记录可包括在训练组中,而其他观察记录可最终包括在对应测试组中)。在一个实施方案中,可使用初始化参数值V1来从源获得第一组伪随机数,所述源基于源的初始状态提供此类数的确定性序列,并且可进而使用第一组伪随机数来选择用于训练目标机器学习模型M1的训练组Trn1。

为了在模型已被训练之后评估所述模型,可使用一致性元数据确定测试组Tst1(元素3216)(例如,使用从相同源或者从状态已与用于选择Trn1的源的状态同步的源获得的一组伪随机数)。在一个实现中,例如,一致性元数据可指示种子Seed1以及从PRNG获得的用于生成Trn1的伪随机数的计数N1。如果原始PRNG不可用于提供用于选择Tst1的伪随机数(例如,如果在与用于识别Trn1的服务器不同的服务器处识别测试组,并且局部PRNG必须用在每个服务处),那么可利用Seed1初始化等效PRNG,并且可在使用随后伪随机数(从第(N1+1)个数开始)来选择Tst1之前丢弃从等效PRNG生成的前N1个伪随机数。在另一实现中,可设计用于选择Trn1和Tst1(或任何对的训练组和测试组)的算法,其方式为使得,相同伪随机数序列可用于选择Trn1和Tst1而同时仍满足前述一致性准则。在这种实现中,可使用相同种子值来针对Tst1初始化PRNG,并且可能不必跳过任何伪随机数来选择Tst1。可使用测试组Tst1测试/评估模型M1(例如,可确定模型预测的准确度/质量)。

在所描绘实施方案中,只要多个TEI保持将被执行(如元素3219中确定的),就可适当地识别下一个迭代的训练组和测试组,无需将块内容中的任一个复制到其他位置(元素3222)。在所描绘实施方案中,用于生成Trn1和Tst1的一致性元数据也可用于选择随后TEI的训练组和测试组。在其他实施方案中,各自的一致性元数据组可用于各自TEI。在块级处初始地识别训练组的至少一些实施方案中,可在使用观察记录训练模型之前在存储器中混排训练组的单独块内的观察记录(即,可在没有对持久性存储装置的任何额外I/O的情况下执行块内混排)。类似地,在一些实施方案中,可在测试组用于评估之前对测试组执行块内混排。在完成训练和评估的所有所请求迭代之后,可将在对应于元素3201的操作中接收的请求的处理认为是完成的,并且可将迭代的最后结果提供到请求中指示的目的地(元素3225)。

对基于决定树的模型的优化

多种机器学习方法例如用于分类问题和回归问题的技术可涉及决定树的使用。图33示出根据至少一些实施方案的可针对机器学习服务处的预测生成的决定树的实例。包括多个观察记录(OR)诸如OR3304A、OR 3304B和OR 3304C的训练组3302将用于训练模型以预测因变量DV的值。训练组3302中的每个OR包含一些数量的自变量(IV)诸如IV1、IV2、IV3…IVn的值(例如,在OR 3304A中,IV1的值为x、IV2的值为y、IV3的值为k、IV4的值为m并且IVn的值为q)以及因变量DV的值(在OR 3304A的情况下其值为X)。在本文中,自变量还可被称为输入变量,并且因变量可被称为输出变量。通常,在至少一些实施方案中,并非所有OR 3304需要具有所有自变量的值;例如,一些值可能不能从获得观察记录的源获得。在所描绘实例中,假设还可被称为“标签”或“目标变量”(由于它是模型将预测其值的变量)的因变量具有两个值X或Y中的一个。任何给定自变量以及因变量可具有任何数量的不同值,并且可以是任何期望数据类型,诸如数值、分类、布尔、字符等等。

基于对训练组的子集或所有的观察记录3304的分析,一个或多个决定树3320可例如由上述机器学习服务的模型生成器部件或模型管理器部件构造以便基于观察记录的至少一些IV的值对DV的值进行预测。决定树3320的每个非叶节点诸如根节点3322可指示将对一个或多个自变量评估的一个或多个条件或谓词,并且评估谓词的结果可确定接下来朝向树的叶节点采用的路径,在所述叶节点处针对OR进行DV的预测。例如,在示出的决定树中,根节点指示自变量IV2的值将与k进行比较。如果对于将要进行预测的给定观察记录IV2小于k,那么应采用到达中间节点3323的路径,如标记为“y”的边所指示的(对应于回答“IV2<k”评估时的“是”)。如果在正分析的观察记录中,IV2大于或等于k,那么将采用标记“n”(对应于“否”)的路径。将在各个非叶节点处采用类似决定直到到达叶节点,在这点处,将基于沿着路径检查的谓词的组合预测DV的值。因此,在所描绘的树3320中,如果发现以下条件为真,那么可在叶节点3324处预测DV值为X:(IV2<k)并且(IV1>=p)并且(IV6>=p)并且(IV7==q)并且(IV4!=z)。将由基于决定树的模型3335对测试数据组3330的所有记录执行类似遍历,导致DV值的一组预测3340。对于许多训练数据组,一个或多个自变量可能不一定在决定树中表示,例如,如果自变量IVn相对于预测DV不重要,那么包括在数3320中的节点中没有一个可包括指代IVn的条件。通常,机器学习服务的模型生成器部件可负责识别使用自变量的某一子集准确地预测DV值的有效方式,以及以一个或多个决定树的形式编码此类有效方式。以下论述可有助于预测质量和效率的多种因素。

图33中示出简单二进制分类实例以便简化展示。在各种实施方案中,决定树还可用于多路分类和/或回归。在一些实施方案中,决定树的给定节点可具有多于两个子节点(即,朝向叶的多于两个输出路径),也就是说,可在每个节点处评估比图33中示出的简单二进制测试复杂的多结果条件。如以下更详细描述的,每个节点可由指示将检查的谓词/条件的对应描述符、其子节点的数量和身份等表示,使得树整体可表示为节点描述符的集合。生成的决定树3320的大小和形状可取决于各种因素,诸如发现的对于预测重要的自变量的数量、树生成算法分析训练组的观察记录的次序等等。一些模型(诸如随机森林模型和自适应增强模型)可需要或依赖于许多不同树的总体或集合,例如,使用训练数据组的各自子集获得的各自树。

用于进行基于决定树的预测的成本(例如,根据使用的资源或需要的时间)可广泛分类成两类:训练成本和执行/预测成本。执行/预测成本还可在本文中称为运行时间成本。训练成本指代用于构造树并使用训练数据组训练模型的资源,而执行成本指代当模型对不用于训练阶段的新数据(或测试数据)进行预测时使用的资源。在至少一些实施方案中,如下所述,训练成本与对新数据进行的预测的质量之间可能有权衡。通过在训练期间支出更多资源和/或时间,可能对于至少一些类型的问题,可进行更好(例如,更准确和/或更快)的预测。例如,不像在一些常规树构造方法中,在一些实施方案中,可按深度优先次序构造决定树,其中节点的描述符在其创建时立即流传输到盘或某一其他形式的持久性存储装置,而不是需要树构造过程限制到给定服务器处可用的主存储器的量。这种基于深度优先和基于持久性存储装置的树构造过程可相对于宽度优先的存储器约束方法导致多种益处,诸如对于具有小填充量的观察记录类的更好的预测准确度,更好的处理器高速缓存利用率(例如,在与MLS服务器处使用的CPU或核相关联的级别2或级别1硬件高速缓存)等等。尽管由于这种方法(由于树大小在树构造过程期间不是存储器约束的),可产生相当大的树,但可以在训练阶段的第二遍期间智能地修剪树,例如,以基于一个或多个运行时间优化目标移除所述节点的子集。术语“运行时间优化目标”在本文中可用于指代与执行经训练的模型以进行预测相关联的目标,诸如减少为测试数据组或生产数据组生成预测所花费的时间,减少此类预测所消耗的CPU或其他资源的量,等等。(在一些实施方案中,除了或代替此类运行时间或预测时间目标,MLS的客户端还可或替代地具有与用于训练模型的资源或时间有关的训练时间目标)。可拟合存储器约束内的修剪树可随后用于对非训练数据组进行高质量预测。以下提供关于在不同实施方案中可生成和修剪决定树的方式的细节。

图34示出根据至少一些实施方案的在机器学习模型的训练阶段的树构造过程期间按深度优先次序将决定树节点的表示存储在持久性存储装置处的实例。在所描绘实例中,在一个或多个决定树3433的构造之前,训练数据3432可被读入到训练组存储器缓冲器3340(例如,在一个或多个MLS服务器处)中。在其他实施方案中,整个训练组不需要被读入到存储器中,例如,在一个实现中,观察记录的指针可保留在存储器中而不是整个记录中。在创建数3433的每个节点时,可根据针对所述节点评估的谓词在存储器中分选或重新安排训练组(例如,观察记录本身或观察记录的指针)。例如,如果树3433的节点N1包括对于自变量IV1的谓词“IV1<=x”的评估,那么可重新安排训练组记录,使得具有小于等于x的IV1值的所有记录位于存储器的一个邻接部分P1中,并且在所描绘实施方案中,MLS的树生成器部件可随后分析所述部分P1的内容以用于构造左子树(节点N2及其子节点)。在至少一些实施方案中,可在存储器中执行训练组记录的重新安排(即,没有对盘或其他持久性存储装置的I/O)。在至少一些实施方案中,在达到树的较低级别时,可必须重新安排训练组的较小子集,从而潜在地提高硬件高速缓存利用水平。

在所描绘实施方案中,可按深度优先次序构造树3433。尽管图34中示出深度优先遍历/构造的前序版本,但在一些实施方案中,可采用序中或序后深度优先遍历/构造。节点的标签“N<#>”指示它们被生成的序列以及对应描述符3430从存储器写入持久性存储装置的次序,诸如在模型生成器或模型管理器在其处运行的MLS服务器处可访问的各种基于盘的装置。因此,节点N1先创建,并先写入持久性存储装置,之后是N2、N3...,如箭头3435指示的。在深度优先序列中创建的第一叶节点是N6,之后是N7、N8、N9、N10和N12。描述符3430(例如,分别用于节点N1-N12的3430A-3430L)可指示例如将在对应节点处评估的谓词或条件、子节点的数量和/或身份等等。

除了将在每个节点处评估的谓词之外,在所描绘实施方案中,还可为树3433的一些或所有节点生成各自的预测效用度量(PUM)3434,并且将其存储在持久性存储装置中,例如,PUM 3434A可针对节点N1计算和存储,PUM 3434B针对节点N2等等。一般来说,给定节点的PUM可指示所述节点相对于可使用所有节点进行的预测的相对贡献或有用性。在不同实施方案中,例如,基于正在解决的机器学习问题的类型、用于树的构造的特定算法等等,不同测量可使用为预测效用度量。在一个实现中,例如,Gini杂质值可用作PUM或作为PUM的一部分,或者可使用基于熵的信息增益测量、或信息增益的某一其他测量。在一些实现中,可使用若干不同测量的组合。在至少一些实施方案中,可能必须在树构造期间的任何情况下计算谓词的预测效用或益处的某一量度,以便将至少一些节点添加到树,并且分配给节点的PUM可简单地表示这种益处。在一些实现中,针对树的一个或多个节点可不识别PUM值,也就是说,使PUM值可用于节点的子集可满足树修剪目的。

在至少一些实现中,可能基于节点的PUM创建决定树的节点的部分(或全部)次序,并且这种排序可用于训练阶段的树修剪过程中,如下所述。在一个实施方案中,代替或除了生成所有节点的有序列表之外,可创建关于树节点的PUM值的直方图或类似分布指示符和/或将其写入持久性存储装置,例如,与节点描述符和PUM值一起。直方图可例如比树的节点和对应的PUM值的详尽列表占用少得多的存储器。

图35示出根据至少一些实施方案的可为决定树的节点生成的预测效用分布信息的实例。PUM值在PUM直方图3510的X轴上从左向右增加,并且落在每个PUM值桶内的决定树节点的数量由直方图的对应条的高度指示。由于生成分布信息,可识别表示相对低值节点的桶3520A,指示多少节点具有低PUM值,并且例如可识别指示高值节点的数量的桶3520B。在修剪期间,低值节点可被视为是比高值节点更好的从树中移除的候选者。在一些实现中,属于直方图3510的一个或多个桶的至少一些节点的标识符可存储在持久性存储装置中以辅助修剪阶段。例如,在一个实现中,来自叶节点的两个级内的节点的标识符可存储用于一个或多个低值桶,并且这种列表可用于识别修剪候选节点。

在至少一些实施方案中,训练阶段的树构造过程之后可以是修剪过程,其中通过鉴于一个或多个运行时间优化目标或准则来消除所选择节点来减小树表示的大小。在一些实施方案中,可实现与树修剪周期交替的树构造的若干单独周期,使得整个树不需要一定在修剪其一些节点之前生成(这可有助于减少所生成节点的总数)。在不同实施方案中,可考虑修剪的多个不同目标。图36示出根据至少一些实施方案的至少部分地基于运行时间存储器占用目标和累积预测效用的组合修剪决定树的实例。术语“运行时间存储器占用”在本文中可用于指示在给定服务器或服务器组合处执行模型所需的主存储器的量,例如在模型的训练阶段完成之后。在所描绘实施方案中可考虑两个冲突运行时间目标之间的权衡:在模型执行期间存储树所需存储器的量以及预测的准确度或质量。在至少一些实现中,存储器占用或使用(较低值较好)和准确度/质量(较高值较好)可随保留节点的数量(即,未从使用上述深度优先流到持久性存储装置技术生成的初始决定树中移除/修剪的节点)增加。运行时间存储器占用目标可被翻译成“最大节点”值3610,指示可保留的最大数量的节点。修剪的树的质量或准确度可根据累计保留的预测效用3620表示,例如,其可通过求保留节点的PUM值的和或者通过将保留节点的PUM值作为输入的某一其他函数来计算。

在不同实施方案中,可使用各种方法针对移除识别节点。例如,在贪婪修剪技术3650中,可以自上而下方式分析未修剪的树3604,选择通向树中每个分裂处具有最高PUM值的节点的路径。可跟踪在贪婪自上而下遍历期间遇到的节点的累积PUM值以及遇到的节点的总数。当遇到的节点的总数等于最大节点值时,可保留迄今为止遇到的节点,并且可丢弃或移除其他节点。在至少一些实施方案中,树3604的修改或修剪的版本3608可与未修剪版本分开地存储(例如,在持久性存储装置中),使得例如如果必要的话可使用不同的修剪方法来尝试重新修剪。在其他实施方案中,可仅保留修剪的版本3608。在一些实施方案中,代替使用贪婪自上而下方法,可使用如由箭头3660指示的由下至上的方法,其中先分析叶节点,并且如果节点对模型的质量/准确度的贡献低于阈值那么移除所述节点,直到满足最大节点约束3610。在一些实施方案中,当选择将被修剪的节点时,可咨询PUM分布信息(诸如类似于图35中示出的直方图的直方图)。在多个运行时间目标(其中一些可能彼此冲突)指导修剪过程的实施方案中,MLS可必须使冲突目标相对于彼此优先化。例如,图36中示出的最大节点目标可被认为比累积预测效用的目标具有更高的优先级。在至少一些实现中,可使用随机选择过程来选择至少一些节点以用于修剪,例如,无需严格地使用自上而下或由下至上方法同时仍然坚持运行时间目标和质量目标。

在一些实施方案中,可在模型的训练阶段的树修剪过程期间考虑其他类型的运行时间目标。图37示出根据至少一些实施方案的至少部分地基于预测时间变化目标修剪决定树的实例。在一些情况下,取决于训练数据组的自变量的值的分布以及自变量与因变量之间的关系,诸如未修剪的决定树3704的决定树可以是非常不平衡的。也就是说,根节点与叶节点之间的一些路径可能比其他路径长得多。例如,可通过遍历八个节点(包括N1和N8)的决定路径3704A从根节点N1到达树3704的叶节点N8,而可通过仅包括三个节点的决定路径3704B到达叶节点N17。

在所描绘实施方案中,对给定观察记录的因变量进行预测所花费的时间(以及消耗的CPU资源)可至少大致地与决定路径的长度成比例,如图3786中指示的。对于一些对等待时间敏感的应用,对不同观察记录或测试组进行预测所花费的时间的变化可被认为是模型质量的重要指示符,其中较少变化通常优于较多变化。因此,在这种实施方案中,预测时间的最大变化3710可以是重要的运行时间优化目标,并且可从树3704中移除一些数量的节点以便减少可能的决定路径中的最大变化。如所示,例如,可从树3704移除节点N6、N7、N8、N9、N10和N11,使得修改/修剪的树3608中的最大决定路径长度从八个减少到五个。在至少一些实施方案中,最小化预测时间的变化的主要目标可与最大化累积保留的预测效用的次要目标组合。例如,当将进行修剪的选择同样影响决定路径的长度时,可比较替代修剪目标节点的PUM值,并且可保留具有较大PUM值的节点。

在至少一些实施方案中,当修剪决定树时也可考虑业务目标。例如,考虑服务的一组潜在客户被分类到段S1、S2...Sn中的情境,使得被分类为属于段S6的客户预期在属于其他段的客户的服务上花费相当高的金额。在这种情境中,沿着通向S6客户的分类的决定路径的节点可在修剪期间优先于沿着通向其他段的决定路径的节点被保留。在各种实施方案中,可使用存储器占用/约束、质量/准确度目标、绝对执行时间(预测时间)目标、预测时间变化目标、业务/收入目标和/或其他目标的组合,具有不同目标的应用特定优先级。在至少一些实施方案中,MLS的编程接口可例如通过针对给定模型或问题的不同类型目标对客户端的相对重要性进行分级来允许客户端指示上述种类的一个或多个运行时间优化目标。在一些实施方案中,关于不同问题域的决定树修剪(例如,哪些修剪方法是最有用的)的最佳实践的信息可由MLS收集在知识库122(图1所示)中并且根据需要应用。

图38示出根据至少一些实施方案的可生成用于训练在机器学习服务处使用决定树总体的模型的多个作业的实例。在所描绘实施方案中,可从较大训练组3802获得各自的训练样本3805A、3805B和3805C(例如,使用诸如具有替换的随机采样的各种采样方法中的任何一种),并且每个这种样本可用于使用上述深度优先方法创建各自决定树。因此,训练样本3805A可用于在训练阶段3820的树创建过程3812期间按深度优先次序生成未修剪的决定树(UDT)3810A并将其存储在持久性存储装置处,训练样本3805B可用于UDT 3810B,并且可使用训练样本3805C生成UDT 3810C。在一些实施方案中,各自的作业J1、J2和J3可被插入到MLS作业队列或集合中以构造UDT 3810A、3810B和3810C。在至少一些实施方案中,例如使用MLS服务器池的各自服务器或者在相同MLS服务器处使用多个执行线程(或进程),可并行地执行树创建过程的作业。

在所描绘实施方案中,可根据可适用运行时间优化目标来修剪每个UDT,以便在训练阶段的修剪过程3814中产生对应的修剪的决定树(PDT)3818。作业J4、J5和J6可被实现以用于分别修剪UDT3810A-3810C,从而产生PDT 3818A-3818C。最后,在所描绘实施方案中,可分别调度作业J7、J8和J9以便使用某一指定的测试组(或生产数据组)使用三个PDT 3818A-3818C来执行模型,导致预测结果3850A-3850C。从不同PDT获得的结果3850可以任何期望方式组合(例如,通过识别每个测试组观察记录的预测的平均值或中值),以便在正使用的机器学习算法的预测或测试阶段期间产生聚集的预测结果3860。预测阶段可与测试阶段不同,例如,因为因变量的值对于预测阶段中的数据组可能是未知的,而因变量的值对于用于测试模型的数据组可以是已知的。在一些实施方案中,另外作业J10可调度用于结果的聚集。注意,作业J1-J10中的任一个可与其他作业并行地执行,只要满足可适用作业依赖性,例如,作业J4可必须在J1完成之后发起,并且J7可在J4完成之后发起。然而,注意,J7可甚至在J2完成之前开始,因为J7不取决于J2,因此,在至少一些实施方案中,如果足够的资源可用,那么预测/测试阶段3830可与训练阶段重叠。对于诸如随机森林的一些基于树总体的算法,可为给定训练组生成数百个UDT和PDT,并且并行性的使用可相对于顺序方法大大减少训练时间和执行时间。在一些实施方案中,不同运行时间优化目标可应用到修剪不同UDT,而在其他实施方案中,相同组的运行时间优化目标可应用到总体的所有树。在各种实施方案中,已经满足其依赖性的所示不同任务中的任一个(例如,树生成、树修剪或模型执行)的作业可在线程级别(例如,不同执行线程可用于同一服务器上的作业)、进程级别(例如,可针对将在相同服务器或不同服务器上并行地运行的多个作业启动各自进程)或服务器级别(例如,可在各自MLS服务器处以不同线程/进程执行一组可并发调度的作业中的每个作业)并行地执行。在一些实施方案中,可使用线程级别、进程级别以及服务器级别并行度的组合,例如,在将并行运行的四个作业中,两个可在一个MLS服务器处以各自线程/进程运行,而两个可在另一MLS服务器处运行。

图39是示出根据至少一些实施方案的可在机器学习服务处执行以按深度优先次序生成并修剪存储到持久性存储装置的决定树的操作的方面的流程图。如元素3901所示,可针对将使用训练数据组TDS训练的基于预测树的模型M1识别一组运行时间优化目标并且在机器学习服务处执行所述运行时间优化目标。在不同实施方案中,可确定和/或优先化各种目标,包括例如存储器使用或占用目标、诸如CPU的其他资源的利用目标、预测时间目标(例如,用于模型的预测运行的经过时间)、预测时间变化目标(例如,减少不同观察记录的模型预测时间之间的差)、预测准确度/质量目标、预算目标(例如,客户端希望在模型执行上花费的总金额,其可与模型执行的CPU利用率或其他资源的利用水平成比例)、上述种类的收入/利润目标等等。在一些实施方案中,可由MLS客户端例如通过一个或多个MLS API以编程方式提供训练数据组和/或一些或所有优化目标的指示(或不同目标的相对优先级)。例如,在一个实施方案中,用于创建基于决定树的模型的API可由客户端调用,其中各自请求参数指示数据组和一个或多个运行时间目标。在一些实施方案中,至少一些目标可以是定性的而不是以精确的量表示,例如,可能不总是可能指示累积预测效用的精确目标值,而是尽可能最大化累积预测效用的目标仍然可用于在一些情境下指导修剪。

可使用所有训练数据组的一些所选择子集来发起M1的训练阶段的树构造过程。在一些实现中,训练数据(或至少指向训练数据的观察记录的指针)可在构造树之前加载到存储器中,并且基于在生成节点时在树的节点处评估的谓词重新安排在存储器中。在树构造过程期间,在所描绘实施方案中,可按深度优先次序生成决定树的节点(元素3904),并且可按深度优先次序将节点信息诸如测试的谓词以及子节点计数或子节点的指针流传输到持久性存储装置(例如,基于转盘的存储装置)。在所描绘实施方案中,可存储至少一些节点的预测效用度量(PUM)值,指示节点对由模型进行的预测的贡献或效用。在不同实现中,若干类型的统计测量中的任一个可用作PUM值,诸如Gini杂质价值、熵测量、信息增益测量等等。例如,可在训练阶段的随后树修剪过程中使用PUM值以便确定可在不显著影响模型预测的质量的情况下将节点从树修剪或移除的次序。在一些实施方案中,可在树构造过程期间生成直方图或PUM在树的节点之间的分布的类似表示。在其他实施方案中,可在树的单独遍历中收集分布信息。术语“树构造”和“树创建”在本文中可用作同义词。

在所描绘实施方案中,可例如在自上而下的贪婪方法或由下至上的方法中分析所构造的树以便识别鉴于运行时间优化目标和/或节点的PUM值应移除的一些数量的节点(元素3907)。在一些实施方案中,例如,如果未修剪的树已经满足期望的优化目标,那么不需要执行树修剪阶段。在至少一个实施方案中,可能是这种情况:例如因为成本效益分析表明移除是不值得做的,所以不修剪给定树的任一个节点。可例如将决定树的修改或修剪的版本存储(元素3910)在与未修剪的树分开的位置中,以便稍后在模型的测试阶段和/或生产级别预测运行期间使用。

取决于模型是否是基于总体的,在一些情况下可能必须构造多个树。如果需要更多的树(如元素3913中确定的),那么可生成训练数据组的不同样本并且可重复元素3904向前的构造和修剪操作。尽管并行度未在图39中明确地示出,但在一些实施方案中,如前所述,可并行地构造和/或修剪多个树。在所描绘实施方案中,在已构造和修剪所有树之后,可使用修剪的树执行模型以便获得一组或多组预测(元素3916)。在一些实现中,可并行地执行对应于多个修剪的树的预测运行。在一些实施方案中,可获得可用于确定在预测运行期间是否实现优化目标的度量。如果在适当程度上满足所有目标,如元素3919中检测到的,那么模型的训练和执行阶段可被认为完成(元素3928)。如果未满足一些目标(诸如期望的准确度水平)并且如果诸如更多的存储器的另外资源是可用的(如元素3922中检测到的),那么在一些实施方案中,可使用另外资源重试训练和/或执行阶段(元素3925)。在一些实施方案中,可重复此类重试直到满足目标或者没有另外资源可用。在不同实施方案中,本文描述的用于基于训练时间对运行时间权衡生成和修剪树的技术可用于各种类型的基于树的模型,包括例如CART(分类和回归树)模型、随机森林模型以及自适应增强模型。在一些实施方案中,可迭代地执行树生成和树修剪,例如,其中在模型的训练阶段期间,树生成的若干不同周期和树修剪的若干不同周期彼此交替。在这种情境中,在第一树生成周期中,可按深度优先次序生成并存储一些数量的节点。随后,可暂停树生成,在第一树修剪周期中可针对修剪检查所创建节点(例如,基于其PUM值和优化目标),并且可基于所述分析移除一些节点。可在下一个树生成周期中为所得树生成更多节点,之后在下一个树修剪周期期间移除零个或多个节点,等等。此类迭代生成和修剪可帮助将具有低效用的节点从树消除,时间上早于其中在修剪任何节点之前生成整个树的方法。

在至少一个实施方案中,机器学习服务的多个不同部件可集体地执行与决定树优化相关联的操作。可在请求/响应处理机处接收通过一个或多个API提交的对基于树的模型(例如,基于单个树的模型或使用树总体的模型)的训练或创建的客户端请求,所述请求/响应处理机可确定请求的性质并且将客户端请求(或客户端请求的内部表示)传递到模型生成器或模型管理器。在一些实施方案中,各自MLS部件可执行训练阶段的每个过程,例如,一个或多个树生成器部件可按深度优先次序创建树并且将节点描述符流传输到一个或多个MLS服务器处的持久性存储装置,而一个或多个树减少器可负责修剪树。在至少一个实施方案中,MLS的一个或多个训练服务器可用于训练基于树的模型,而一个或多个预测服务器可用于实际预测。在为不同任务创建各自作业的实施方案中,作业管理器可负责维持出色作业的集合或队列并负责在资源变得可用并且满足作业依赖性时调度作业。在一些实施方案中,可由前端请求/响应处理机将响应(例如,基于树的模型的标识符或者预测运行的结果)提供给客户端。在至少一些实施方案中,这些部件中的一些或全部可包括专门化的、已调谐的或任务优化的硬件和/或软件。

特征处理权衡

如前所述,在提供商网络处实现的机器学习服务可支持多种多样的特征处理变换(其可被称为FPT),诸如分位数分仓、一个或多个变量的值的笛卡尔乘积的生成、n-元语法生成等等。对于具有许多自变量并且将用于训练模型的输入数据组,非常大数量的特征处理变换可能潜在地可行用于从原始输入数据生成导出或处理的变量,使得处理的变量可随后用于预测客户端感兴趣的一个或多个目标或因变量的值。对于客户端,可能不总是直截了当地估计给定FPT相对于使用FPT的结果训练的模型的预测的质量或与实现FPT相关联的成本的有用性。每个FPT(或相关FPT组)可具有其自己的用于模型生命周期的各个阶段的成本组,其可以诸如经过时间、资源消耗等等各种单位中的任一个表示。例如,在一些实施方案中,在确定FPT是否值得时,可都必须考虑将FPT应用到训练组、使用包括FPT的结果的输入数据训练模型、将FPT应用到评估或测试数据组以及包括FPT的处理的变量作为用于预测/评估运行的模型执行的输入的另外或边际成本(例如,存储器、CPU、网络或存储成本)。在一些实施方案中,MLS可被配置来例如基于鉴于由客户端指示的目标的自动成本效益分析向客户端提供关于可能特征处理变换组的推荐。例如,可能在训练时花费更多时间或更多资源分析FPT,以便在模型的生产运行期间提出更准确和/或更快的预测。至少一些此类特征处理推荐技术可具有与可针对在一些实施方案中如上所述的配方执行的自动参数调谐类似的目标。

图40示出根据至少一些实施方案的被配置来基于对候选特征处理变换的成本和益处的分析为客户端生成特征处理提议的机器学习服务的实例。如图所示,机器学习服务的特征处理(FP)管理器4080可包括候选生成器4082和优化器4084。FP管理器4080可接收训练数据组4004的指示,所述训练数据组包括一组原始或未处理的自变量4006的值以及其值将由模型预测的一个或多个目标变量4007。模型可使用使用一个或多个FPT从训练数据组导出的变量来训练。此外,在所描绘实施方案中,FP管理器4080还可确定一个或多个预测质量度量4012,以及用于预测的一个或多个运行时间目标4016。可在不同实施方案中并且针对不同类型的模型确定各种质量度量4012,诸如二进制分类问题的ROC(接收器操作特性)AUC(曲线下区域)测量、回归问题的均方误差度量等等。在一些实施方案中,客户端可指示用于训练模型的一个或多个约束4014(诸如一个或多个需要的或强制的FPT和/或一个或多个禁止的FPT),并且FP管理器可尝试满足指定的约束。目标4016可包括用于产生对指定大小的数据组的预测的经过时间目标、当进行此类预测时不超过的存储器的量的目标、关于每个预测的最大计费成本的预算目标等等。在一些实施方案中,FP管理器还可提供有一组训练阶段目标,诸如训练模型所消耗的最大时间量、训练模型不超过的预算、或MLS向客户端提供特征处理提议的时间或预算限制。

在所描绘实施方案中,候选生成器4082可负责识别初始候选FPT组4052。在一些实现中,初始候选FPT组可至少在MLS内部表示为可能变换的非循环图,诸如包括FPT1-FPT10的所示图。非循环图表示可指示例如应执行不同FPT的推荐序列和/或不同FPT之间的依赖性。例如,FPT组4052的所描绘表示可指示FPT9取决于FPT7的结果,FPT7取决于FPT3的结果,等等。在没有指示用于生成特征处理提议的预算限制或时间限制的一些实施方案中,候选生成器4082可包括大量(例如,几十或几百)个候选FPT。在其他实施方案中,其中诸如时间限制或资源限制的约束关于FP提议生成被放置在FP管理器上,候选FPT的初始组4052可包括可行候选变换的相对小的子集。初始组4052可包括被指定(例如,在约束4014中)为强制性的任何FPT,并且排除被禁止的任何FPT。

优化器4084可负责生成诸如4062A和4062B的一个或多个FP提议。FP提议通常可通常为候选组4052的版本,例如基于由优化器执行的成本效益分析,已从中移除或修剪了某一数量的候选FPT。如果客户端通过约束4014指示了强制性特征处理变换,那么此类变换可保留在FP提议中。如以下在各种实施方案中描述的,成本效益分析可包括多个作业的调度,例如涉及利用候选FPT的初始组的结果训练和评估模型、利用修改的评估组重新评估模型以估计各种FPT对预测质量的影响和/或利用经修改的处理变量组重新训练模型以估计各种FPT对预测运行时间度量的影响的作业。在图40示出的情境中,通过移除FPT5、FPT8、FPT9和FPT10从初始FPT候选组4052获得提议4062A,而通过从FPT候选组4052消除FPT4、FPT7、FPT8、FPT9和FPT10得到提议4062B。在不同实施方案中可使用各种技术来选择在不同提议中被消除的FPT,诸如随机移除、贪婪算法等等,如以下更详细描述的。从候选组修剪(例如,移除)FPT的优点之一是客户端可能不必费心在其训练数据组和测试数据组中包括一些自变量。例如,如果FPT5是候选组4052中应用到给定自变量4006的唯一变换,并且FP管理器确定不需要FPT5满足客户端的目标,那么客户端不需要收集自变量4006的值用于未来训练和/或测试/评估数据。由于收集、存储和向MLS提供训练数据可能对客户端获得机器学习问题的解决方案的总成本具有显著影响,此类训练数据减少优化可能是特别有价值的。

在至少一些实施方案中,一个或多个FP提议4062可以编程方式提供给MLS的客户端,例如以目录或菜单的形式,客户端可根据所述目录或菜单批准特定提议或多个提议。在一些情况下,可使用迭代过程来达到最终批准的FP计划,例如,给定迭代包括MLS向客户端提供提议,之后是来自客户端的提议改变请求。如果客户端不批准在迭代期间生成的任一提议,那么在一些实施方案中,FP管理器可向客户端传输需求重新考虑请求,实际上请求客户端优先化/修改至少一些目标或质量度量或放宽一些约束。客户端可通过指示一些或所有目标和度量的相对优先级来对重新考虑请求作出响应。在FP提议最终被批准之后,MLS可代表客户端实现所述提议,例如,使用批准的FPT的结果作为训练模型的输入并随后获得关于指定的非训练数据的预测/评估。基于特征处理成本效益权衡的这种优化可用于各种模型类型,包括例如分类模型、回归模型、聚类模型、自然语言处理模型等,并且用于不同实施方案中的各种问题域。

在至少一些实施方案中,客户端可指示使用前述种类的配方语言编写的配方将被用于生成用于训练其模型的处理过的变量。在这种情境中,MLS可分析配方中指示的FPT,并且可在生成将提供给客户端的FP提议时判定配方中的一些(或所有)FPT是否应被替换或消除。也就是说,如果更好的替代方法似乎可用,那么在此类实施方案中,FP管理器可被配置为建议或推荐对客户指定的FP配方的修改。在一些实施方案中,一个或多个编程接口可对客户端可用,以使得其能够提交对FP优化的请求,例如指示其训练数据、目标变量、运行时间目标、预测质量度量等等。响应于通过这种API接收请求,MLS可利用各种内部API来提供所请求推荐,例如,可使用较低级API来调度各自的作业以使用上述分块方法读取训练数据,以便执行特征处理、训练、评估、重新训练和/或重新评估。在至少一个实施方案中,编程接口(例如,基于web的仪表板)可对客户端可用,以使得其能够查看针对各种模型满足其运行时间目标的程度。

图41示出根据至少一些实施方案的基于测量的预测速度和预测质量从若干替代者选择特征处理组的实例。在所描绘图中,预测速度(在训练之后预期对其进行预测的给定数据组大小的)沿着X轴线从左到右增加。每个点4110(例如,十二个点4110A-4110N中的任一个)表示具有用于训练模型的对应组的FPT的模型的预测运行。代表其训练和执行模型的客户端指示了目标预测速度目标PSG和目标预测质量目标PQG。在其结果已由FP管理器获得的FPT的组中,FPT组4110G被选择作为最佳替代,因为它满足客户端的准则中的两者。

在至少一些情境中,并非所有客户端的目标可同时实现。例如,客户端可期望预测时间小于X秒,并且还期望预测质量超过某个测量Q1,使得MLS不一定能够满足两个目标。在一些此类情况下,可请求客户端优先化目标,使得MLS可尝试优先于其他目标优化一个目标。在许多实施方案中,至少一些客户端可不必指定质量目标(或者可不指定质量目标,即使可指定此类目标),并且代替可依赖于MLS来选择应目标定于优化的适当预测质量准则。在至少一个实施方案中,MLS可甚至选择和/或优先化应代表给定客户端定目标的运行时间目标。在一些实施方案中,可允许关于机器学习更有见识的客户端在他们希望时提供关于FP权衡管理的尽可能多的详细指导,例如在与MLS交互时使用任选API参数的值。因此,MLS可能够处理关于管理特征处理成本与益处之间的权衡的各种客户端专业水平。

图42示出根据至少一些实施方案的机器学习服务的客户端与特征处理管理器之间的示例性交互。如所示,在系统4200中实现的机器学习服务的客户端164可通过编程接口4262提交模型创建请求4210。模型创建请求4210可指示例如以下元素的某一组合:一个或多个训练组4220(其包括将预测的目标变量的指示)、一个或多个测试组或评估组4222、一个或多个客户端感兴趣的模型质量度量4224、目标4225(诸如预测运行时间目标和/或训练目标)以及在一些情况下根据MLS的配方语言规范格式化的一个或多个任选特征处理配方4226。在至少一个实施方案中,客户端还可任选地指示一个或多个约束4227,诸如必须代表客户端执行的强制特征处理变换或者不能执行的禁止变换。在一些实施方案中,并非图42中示出的所有元素可包括在模型创建请求4210中;例如,如果没有指示特定模型质量度量,那么FP管理器可基于正被解决的机器学习问题的性质选择用于优化的某些度量。模型创建请求4210可由MLS的前端请求/响应处理机4280接收,并且请求的内部表示可移交到FP管理器4080。模型创建请求在本文中还可被称为模型训练请求。

FP管理器4080可生成特征处理变换的候选组,并且随后修剪所述候选组以便基于质量度量、目标和/或针对模型识别的约束识别提议。在所描绘实施方案中,可在此过程期间生成和调度多个不同的作业,包括例如一个或多个特征处理作业4255、一个或多个模型评估作业4258和/或一个或多个训练或重新训练作业4261。如果模型创建请求包括配方4226,那么FP管理器可将配方看作其对特征处理选项的探索的起点,而不必限制考虑的变换组到配方中指示的那些变换。在一些实施方案中,FP管理器可咨询MLS的最佳实践知识库以便例如基于问题域是将创建或训练的模型的地址识别候选变换。如前所述,一旦识别FPT(特征处理变换)的候选组,就可在若干优化迭代中的每一个中从所述组移除或修剪变换的某一子集,并且可使用修剪的FPT组训练和/或评估模型的不同变型。在至少一些实施方案中,模型变型4268可存储在MLS制品储存库内。如果客户端请求包括需要MLS提供FP提议的训练时间目标或期限,那么此类目标/期限可影响由FP管理器4080使用的特定修剪技术,例如,贪婪修剪技术,诸如以下示出的可在严格训练时间期限内使用的贪婪修剪技术。由于至少对于一些问题,可能考虑非常大数量的FPT,MLS可在客户端不指定训练时间目标的情境下设置其自己的训练时间目标,例如以便保持训练时间资源消耗在合理界限内。在一些实施方案中,可针对FP提议的生成对客户端收费固定费用,在这种情况下,FP管理器对不同FPT选项的实验/测试可能受到对应于固定费用的资源使用限制的约束。

在所描绘实施方案中,FP管理器4080可最终终止其对替代变换组的分析并且向客户端164提供一个或多个FP提议4272(例如,通过由请求/响应处理机4280生成的API响应)。在客户端提供配方4226的情境下,FP提议可指示基于由MLS执行的分析而推荐的对客户端的配方的一个或多个改变,或者可指示完全不同的配方。在一些实施方案中,FP提议可根据MLS的配方语言格式化,而在其他实施方案中,可提供所提议特征处理变换的不同表示。客户端164可批准一个或多个提议,或者可例如通过FP改变请求4278请求对提议的改变。在至少一些实施方案中,迭代协商可在MLS与客户端之间发生,其中客户端提交对改变的建议,并且MLS执行另外评估或重新训练操作以尝试改变。在一些实施方案中,在协商结束之前执行的此类迭代的数量也可至少部分地基于计费,例如,可基于重新测试的每个迭代所消耗的时间或资源的量对客户端收费。最终,在所描绘实施方案中,客户端可批准特定FP提议,并且例如通过MLS API提交模型执行请求4254。生产级模型执行管理器4232可随后实现对应于所批准FP提议的模型的生产运行4258。客户端可基于在生产运行中实现的结果例如通过提交另外改变请求4278和/或基于新的训练数据请求重新训练或重新创建模型来请求另外改变。

在各种实施方案中,可使用多种不同技术来修剪候选FP变换(即,从候选组中移除变换)。图43示出根据至少一些实施方案的使用随机选择修剪候选特征处理变换的实例。在这种方法中,初始候选FPT组4302的一个或多个FPT可选择用于随机地移除,并且这种移除对模型的质量度量和目标的影响可消除。例如,FP突变4320A可由从候选FPT组4302移除FPT11造成,而FP突变4320B可由FPT6、FPT7和FPT13的移除造成。

取决于候选组的不同FPT之间的逻辑关系或依赖性,选择FPT组中的一个特定节点作为修剪受害者可能也导致一个或多个其他节点的移除。例如,如果FPT13和FPT7取决于FPT6(例如使用其输出),那么将FPT6选择作为受害者也可能导致FPT7和FPT13的修剪。移除受害者FPT的成本和益处的估计可例如通过以下方式确定:使用由受害者产生的特征的虚拟或统计选择的替换值来重新评估模型以确定对预测质量度量的影响,和/或通过利用较小组的特征重新训练模型以确定对运行时间性能度量的影响。在所描绘实施方案中,FP管理器可存储每个FP突变4320的修剪结果,例如作为MLS制品储存库中的制品。对应于突变4320B的修剪结果4390例如可包括对移除的FPT(FPT6、FPT7和FPT13)的预测质量贡献4333的估计,以及对移除的FPT对预测运行时间成本的贡献4334的估计。对不同突变的此类估计可用于生成将由FP管理器提供给客户端的提议。如果不预期不同候选FPT在其成本和质量贡献方面显著不同,或者如果FP管理器不能预测(例如,基于最佳实践)不同候选者是否可能具有显著不同的成本或质量贡献,那么随机修剪方法可能特别有用。

在一些实施方案中,例如由于某一数量的随机修剪迭代或者基于对类似模型的经验,FP管理器的优化器可能识别预期对模型质量提供显著积极贡献的特定FPT。FP管理器可随后基于候选FPT图中此类高度有益FPT的位置来开发提议,例如,包括有益FPT及其邻居的提议。图44示出根据至少一些实施方案的用于识别推荐的候选特征处理变换组的这种贪婪技术的实例。

在初始候选FPT组4402的图中,FP管理器已将节点4410(对应于FPT14)识别为具有对模型质量的最高贡献(或已评估其质量贡献的节点中的至少最高贡献)的特定节点。因此,节点4410被选择作为用于构造将包括在将提供给客户端的推荐FPT提议中的FPT图的起始节点。在构建提议的一种方法中,在识别起始FPT节点之后,其前提条件节点(如果有的话)也可包括在提议中。例如,为了执行由FPT14指示的变换,在所描绘实例中可能需要FPT10、FPT3、FPT2和FPT1的结果。可随后使用重新评估和重新训练迭代来确定已经选择的节点的其他邻居节点(诸如节点FPT8、FPT9、FPT4、FPT11、FPT5和FPT12)的贡献和成本,直到满足期望的质量和/成本目标。所得到的FPT图(其中移除了其他候选FPT)可包括在传输给客户端的FP提议4432中。

在不同实施方案中,基于对特定运行时间目标的优化生成FP提议的过程可涉及若干阶段。在一个实施方案中,例如,可首先使用初始识别的整组候选FPT来生成/训练模型。关于某些候选处理变量(PV)的值的统计可获得并且稍后用于确定PV及其对应FPT对模型预测质量的具体贡献。图45示出根据至少一些实施方案的特征处理优化技术的第一阶段的实例,其中使用第一组候选处理变量训练模型并对所述模型进行评估。如图所示,在所描绘实施方案中,可从未处理的训练组4502获得一组原始处理的变量(PV)4560(即,FPT的结果)。未处理的训练组4502可包括某一数量的自变量IV1、IV2...以及因变量或目标变量DV。PV训练组4560可包括某一数量的PV,诸如PV1(从特征处理变换FPT1获得)、PV2(通过FPT2获得)和PV3(通过FPT3获得)。注意,虽然通常训练组可包括一个或多个未处理的变量以及某一数量的处理的变量,但为了简化展示,在示例性训练组4560中仅示出三个处理的变量。在所描绘实施方案中,可为一些或所有PV生成各自的统计组(诸如数值PV的平均值、中值、最小值和最大值,或非数值PV的模式值),诸如PV1统计、PV2统计和PV3统计。在至少一些实施方案中,在生成FPT之前,未处理的训练数据的分类变量可转换或映射到数值或布尔值,并且在一些情况下,数值可归一化(例如,映射到范围-1至1内的实数)。

模型4510可在某一训练成本TC下使用原始PV训练组4560训练。TC可以各种单位表示,诸如在具有存储器大小M1的机器上的CPU-秒或对应的计费金额。在所描绘实施方案中,可使用从未处理的评估组(或若干此类组)4504导出的PV组4562来评估模型。因此,正如分别使用变换FPT1、FPT2、FPT3获得PV1、PV2和PV3的训练组值,可通过将相同类型的变换应用到未处理的评估组4504来获得PV1、PV2和PV3的评估组值。评估训练模型的成本(EC)可至少在一些情况下小于TC,所述TC为利用所有候选FPT的结果训练模型的成本(例如,因为识别将用于预测的各种系数可比在测试/评估运行期间简单地应用系数更计算密集)。在不修剪任一候选FPT的情况下获得的原始评估结果4536可保存在持久性储存库中(例如,稍后如下所述地使用以确定不同FPT的各自质量贡献)。类似地,可收集并保存对应于所有候选FPT的使用的原始预测运行时间度量4537(例如,经过时间、使用的CPU秒、使用的存储器等)(例如,稍后在确定不同FPT的各自成本贡献时使用)。

对于至少一些类型的机器学习问题,通常,当更多的FPT用于训练时,模型的预测质量可能更高。可随后在如下所述的特征处理技术的稍后阶段中获得对应于不同修剪选择的模型的预测质量度量的差或增量。图46示出根据至少一些实施方案的特征处理优化技术的随后阶段的实例,其中使用修改的评估数据组来重新评估模型以确定使用各种处理的变量对预测质量的影响。在所描绘实例中,获得的用于PV1、PV2和PV3的统计用于修改模型的各自运行的评估数据组。如所示,在修改的评估组4662A中,原始PV1值被PV1的平均值(来自早前获得的PV1统计)替换,而PV2和PV3的原始值被保留。在修改的评估组4662B中,原始PV2值被来自使用原始候选训练组生成的统计的PV2的最小值与最大值之间的范围中选择的随机值替换。在修改的评估组4662C中,原始PV3值被从原始候选训练组获得的PV3统计中的中值PV3值替换。

随后将每个修改的评估组作为输入提供给使用原始PV训练组4560训练的模型4510以获得一组各自预测。使用修改的评估组4662A,可获得PV1修剪的评估结果4636A(指示或近似在PV1未包括在模型4510的训练组中时可能已经实现的结果)。通过计算对应于修剪PV1的预测质量度量与对应于图45中示出的未修剪的评估组的预测质量度量之间的差,可获得PV1对模型质量的贡献的测量(在图46中称为FPT1质量增量)。类似地,PV1修剪的评估结果4636B可用于估计FPT2质量增量(FPT2或PV2对模型预测结果的质量的贡献),并且PV3修剪的评估结果4636C可用于估计FPT3质量增量。以此方式,可估计若干不同FPT对模型的预测的质量的相对贡献,并且此类贡献估计可用于为客户端生成FP提议。使用修改的评估组估计质量贡献(诸如FPT1质量增量、FPT2质量增量和FPT3质量增量)的成本(例如,根据资源消耗或时间)可类似于评估成本EC,其可能小于重新训练模型TC并且随后重新评估模型的成本。

将用于生成修改的PV评估组的特定统计或值可针对不同类型的PV和/或针对不同类型的模型或问题域而不同。在一些实施方案中,可使用平均值(如在图46中的PV1的情况下)作为默认替换,而在其他情况下,可分配随机值,或者可基于针对类似类型的问题实现的早前结果使用中值或模式值。

如以上论述的,图46中示出的基于替换的技术可以是获得不同PV和FPT的质量贡献的优化的第二阶段的一部分。为了获得与不同PV或FPT相关联的运行时间成本,可能必须重新训练一些模型。图47示出根据至少一些实施方案的特征处理优化技术的另一示例性阶段,其中使用一组修改的处理的变量来重新训练模型以确定使用处理的变量对预测运行时间成本的影响。在所描绘实例中,可例如通过简单地省略PV2的值从在优化过程的早前阶段中生成的PV训练组4560获得修剪的PV训练组4760。类似地,可例如通过省略PV2值从原始PV评估组4562获得修剪的PV评估组。在原始阶段之后丢弃原始PV训练组和/或原始PV评估组的实施方案中,可必须从未处理的训练组和评估组获得修剪的PV训练组4760和/或修剪的PV评估组4762。

模型4710可使用修剪的PV训练组4760训练并使用修剪的PV评估组4762评估。FPT2成本增量(FPT2对预测运行时间成本的贡献的测量)可计算为预测运行时间度量4736(对应于FPT2或PV2的修剪)与原始运行时间度量4537(其使用利用所有候选FPT训练/评估的模型获得)之间的差。重新训练模型的成本TC2可类似于利用包括的所有FPT训练模型的成本TC(图45中示出),而重新评估模型的成本EC2可更小。在训练成本远高于评估成本的一些实施方案中,FP管理器可尝试比重新训练做更多的重新评估,例如,可针对其质量贡献分析许多FPT,并且可随后针对其成本贡献分析更小的子集。

图48是示出根据至少一些实施方案的可在基于质量对比运行时间成本权衡推荐特征处理变换的机器学习服务处执行的操作的方面的流程图。如元素4801所示,MLS的部件(诸如特征处理管理器)可确定将使用利用指定训练数据组训练的模型预测的一个或多个目标变量、客户端感兴趣的一个或多个预测质量度量以及一个或多个预测运行时间目标。在一个实施方案中,客户端可指示约束,诸如一个或多个强制性特征处理变换或一个或多个禁止的特征处理变换。在至少一些实施方案中,这些参数中的一些或全部可在例如通过编程接口提交到MLS的客户端的请求中指示,所述编程接口诸如API(应用编程接口)、基于web的控制台、独立GUI(图形用户接口)或命令行工具。在一些情况下,客户端可指示例如除了预测运行的运行时间目标之外的一个或多个训练时间目标。各种预测质量度量的任何组合可由MLS部件针对不同类型的机器学习问题识别,诸如AUC(曲线下区域)度量、准确度度量、召回度量、敏感度度量、真阳性率、特异性度量、真阴性率、精度度量、假阳性率、假阴性率、F1得分、覆盖度量、绝对百分比误差度量或平方误差度量。类似地,可确定各种运行时间目标的任何组合,诸如模型执行时间目标、存储器使用目标、处理器使用目标、存储装置使用目标、网络使用目标或预算。在一些实施方案中,可确定训练的对应类型的目标(与训练后预测相反)。在一些实施方案中,可以绝对方式指定目标(例如,模型执行时间必须小于X秒),或者根据分布或百分位数指定(例如,模型执行时间的90%必须小于x秒)。在不同实施方案中,客户端可请求创建、训练或重新训练多种多样的模型,包括例如分类模型(例如二进制或n路分类模型)、回归模型、自然语言处理(NLP)模型、聚类模型等。

MLS可识别可用于从原始训练数据获得处理的变量或特征的一组候选特征处理变换(FPT),使得特征可进而用于预测目标变量的值(元素4804)。在至少一些情况下,一个或多个未处理的自变量也可包括在将用于训练的候选变量组中;也就是说,并非训练组中的所有变量都需要是FPT的结果。取决于问题或模型的性质,可选择多种多样FPT候选者中的任一个,诸如分位数分仓、笛卡尔乘积生成,二元语法生成、n元语法生成、正交稀疏二元生成、日历相关变换、图像处理函数、音频处理函数、生物信息处理函数或自然语言处理函数。虽然MLS可通常试图提出大的候选者列表,但在一些实施方案中,可基于一个或多个约束(诸如训练时间或训练资源的显式或隐式目标)限制不同FPT候选者的数量。在一个实施方案中,FPT候选者中的至少一些可取决于彼此,例如,一个FPT的输出可用作另一个的输入,并且在一些情况下可生成FPT候选者的一个或多个有向图以表示这种关系。

对于所识别的FPT候选者的至少子集,可确定FPT对模型的预测质量的贡献的各自估计和/或FPT对影响运行时间目标的度量的影响的各自估计(元素4807)。例如,在一个实施方案中,可首先使用候选FPT的完整组来训练和评估模型,以获得最佳情况预测质量测量和对应的运行时间度量。随后,为了获得质量贡献,可使用修改的评估数据组来重新评估模型,例如,其中给定处理变量的值以类似于图46所示方式的方式被未修改的训练组中的该处理的变量的平均值(或某一其他统计导出的替换值)替换的评估数据组。为了获得对运行时间目标的影响,在一些实施方案中,可能必须用修剪的训练数据(即,已经从中移除候选组的一个或多个处理变量的训练数据)来重新训练模型。在至少一个实施方案中,可为重新评估和/或重新训练生成各自的作业。

使用质量贡献和成本影响的估计,MLS可例如在不违反任何显式或隐式训练时间约束或目标的情况下产生将以编程方式呈现给客户端的一个或多个特征处理提议(元素4810)。如果客户端指示批准特定提议FP1(如在元素4813中检测到的),那么可代表客户端实现所述提议用于随后运行(例如,模型的训练后生产运行)(元素4816)。如果客户端不批准由MLS提出的任何提议(也如在元素4813中检测到的),那么可选择FPT的不同组合用于另外训练/测试(元素4819),并且对应于元素4807向前的操作可针对新组合重复,直到接受提议或者由MLS或客户端实现放弃优化迭代的决定。在一些实施方案中,可向客户端提供利用FPT的完整(未优化的)候选组的选项,也就是说,MLS可保留使用在修剪之前识别的所有候选FPT训练的模型变型。

在各种实施方案中,MLS可能必须在由客户端指示的目标中优先化,例如,快速预测执行时间可能与低存储器使用目标不兼容。在一些此类情况下,MLS可向客户端指示此类优先级,并获得客户端对所选择目标排序的批准。在至少一些实施方案中,客户端可指示或建议将使用的FPT的配方,并且MLS可分析可能包括在候选FPT组中的配方中指示的FPT中的至少一些。在一个实现中,即使客户端未在模型创建请求中指示配方,MLS可以早前论述的MLS配方语言格式化的配方的形式提供FP提议。在至少一些实施方案中,提议(或对应于提议的配方)可作为制品存储在MLS制品储存库中。

在FP提议被客户端批准之后,其可用于模型的随后执行(即,使用FP提议产生的处理的变量可用作用于训练模型并使用所述模型进行预测的输入变量),潜在地用于许多不同生产模式数据组。给定客户端可向服务提交若干不同模型创建请求、批准每个模型的各自FP提议并且随后利用批准的模型一会儿。在一些实现中,客户端可希望在各种模型被批准之后查看关于它们的预测运行时间目标的成功率。图49是根据至少一些实施方案的可使得客户端能够查看各种机器学习模型运行的状态的编程仪表板接口的实例。在所描绘实例中,仪表板可并入网页4901内,包括消息区域4904和客户端批准的模型的某一子集或全部的各自条目。在所描绘实例中,如消息区域4904中所指示的,提供关于在先前24小时期间代表客户端运行的模型的信息。在一些实施方案中,客户端可例如通过点击链接4908来改变由仪表板覆盖的时间段。

针对其显示图49中示出的示例性仪表板的客户端具有在覆盖的24小时时间段中运行的三个模型:脑瘤检测模型BTM1、海马萎缩检测模型HADM1以及运动皮质损伤检测模型MCDD1。如仪表板的区域4912中指示的,由客户端为BTM1选择的质量度量是ROC AUC,运行时间性能目标是预测在小于X秒内完成,并且95%的预测在已满足所述目标的最后24小时内运行。对于HADM1,如区域4914中指示的,质量度量是假阳性率,运行时间性能目标是不大于Y的存储器占用,并且实现的成功率是97%。如区域4916中指示的,对于MCDD1,预测质量度量也是假阳性率,运行时间性能目标是每个预测运行小于Z的成本目标,并且实现的成功率是92%。图49中提供的信息类型的多个变型可在不同的实施方案中以编程方式指示给客户端,并且在实践中使用的接口细节可与此处所示的那些接口细节基本不同。

对训练线性模型的优化

注意,在对训练线性模型的优化的以下论述的上下文中,术语“特征标识符”可指代从将用于训练模型的数据组的观察记录导出的性质的唯一标识符。术语“特征组”可指代一组特征标识符,其中(a)在训练模型时可观察到特征值,以及(b)特征参数是已知的或从训练数据推断的。术语“特征”可指代由特征标识符索引的观察记录的性质的值(例如,单个数值、分类或二进制值或此类值的数组)。术语“特征向量”可指代一组(特征标识符,特征值)对或元组,其可例如存储在键值结构(例如散列图)或压缩向量中。术语“特征参数”或“参数”可指代对应于由特征标识符索引的性质的参数的值。表示权重的实数是可在一些实施方案中使用的参数的一个实例,但对于一些类型的机器学习技术,可使用更复杂的参数(例如,包括多个数值或概率分布的参数)。术语“参数向量”可指代一组(特征标识符,参数)对或元组,其也可存储在诸如散列图的键值结构或压缩向量中。在至少一些实施方案中,特征向量可被认为是主要用于更新参数向量并随后被丢弃的暂时结构(例如针对在学习迭代期间检查的给定观察记录创建的)。相反,在一些实施方案中,参数向量可在模型的训练阶段的持续时间内保留,但如下所述,参数向量可在训练阶段期间增长和收缩。尽管在一些实施方案中,键值结构可用于参数向量和/或特征向量,但在各种实施方案中可采用参数向量和/或特征向量的其他类型的表示。

线性预测模型,诸如广义线性模型的各种实例,是用于处理许多类型的机器学习问题的最流行(且经常最有效的)方法之一。图50示出根据至少一些实施方案的用于生成并使用线性预测模型的示例性过程。如所示,将用于训练线性模型的未处理的或原始训练数据组5002可包括某一数量的观察记录(OR)5004,诸如OR 5004A、5004B和5004B。每个OR 5004可进而包括某一数量的输入变量(IV)诸如IV1、IV2、IV3...IVn的值,以及至少一个因变量DV的值。因变量还可被称为“输出”变量。在至少一些实施方案中,在模型训练必须开始之前并非所有观察记录都可用,例如,如以下更详细地描述的,在一些情况下,当观察记录从一个或多个在线数据源获得时可流传输到机器学习服务。在此类情境中,MLS可负责迭代地训练模型,例如,其中每个迭代表示基于直到该点分析的OR提高模型预测的质量的尝试。基于对各自观察记录组的分析的此类训练迭代在本文中还可被称为“学习迭代”。

在至少一些实施方案中,MLS的模型生成器部件可需要将用于生成特征(可随后用于训练线性模型)的输入变量满足某些数据类型约束。例如,在所描绘实施方案中,模型生成器可需要训练数据的分类IV的原始值转换为数值和/或被归一化(例如通过将数值映射到-1与1之间的实数)。这种类型变换可在初始数据准备阶段5010期间执行,产生一组修改或准备的观察记录5015。

在所描绘实施方案中,可随后例如使用多个学习迭代5020来迭代地训练线性模型。最初,在至少一些实现中,可创建空参数向量5025。参数向量5025可用于存储分配给特征或处理的变量值的集合的参数(例如,表示各自权重的实数),其中使用早前所述类型的一个或多个特征处理变换(FPT)从观察记录内容导出所述特征。在一些实现中,当对给定观察记录的因变量值进行预测时,线性模型可计算其权重包括在参数向量中的特征的加权和。在至少一些实施方案中,诸如散列图的键值结构可用于参数向量5025,其中特征标识符(由模型生成器分配)作为键,并且参数作为针对每个键存储的各自值。例如,图50中示出的参数W1、W2和Wm分别分配给具有特征标识符F1、F2和Fm的特征。

在每个学习迭代5020期间,可由模型生成器(其还可称为模型训练器)检查一个或多个准备的OR 5015。基于在准备的OR中的输入变量的检查和/或由处于其当前状态下的模型对准备的OR的因变量的预测的准确度,可针对一组新的一个或多个处理的变量识别各自参数或权重。在至少一些实现中,如果需要的话,在一个或多个学习迭代中,例如使用随机梯度下降技术或一些类似的优化方法,可更新先前存储的参数或权重。随着越来越多的观察记录被检查,越来越多的(特征标识符,参数)键值对可添加到参数向量中。如以下参考图51描述,参数向量的这种增长,如果不被检查,可能最终导致一种情境:其中用于模型生成器的MLS服务器处可用的存储器被耗尽并且存储器不足(out-of-memory)错误可能过早结束模型的训练阶段。

为了避免此类不合乎期望的情境,在一些实施方案中可采用用于修剪所选择参数(即,从参数向量移除所选择特征的条目)的技术。根据这种技术,当满足某些触发条件时(例如,当参数存储在参数向量中的特征的数量超过阈值时),对模型的预测贡献最小的特征的一部分可识别为修剪受害者(即,其条目从参数向量中移除或“修剪”的特征)。在一些实施方案中,可使用用于估计参数的分位数边界值(例如,对模型的预测贡献最小的特征的20%)的有效存储器内技术,而不需要复制参数或显式分选操作。更一般地,在至少一些实施方案中,给定特征对模型的预测性能(例如,模型的预测的准确度或质量)的重要性或贡献可通过对应的参数值与“先验参数值”的偏差来确定。以下描述的用于估计分位数边界值的有效存储器内技术可表示使用此类偏差来选择修剪受害者的一个特定实例,在以下情境中相关:标量加权值用作参数值,先验参数值为零,并且相对贡献对应于权重的绝对值(权重与零的各自“距离”)。对于参数是值的向量并且先验值是零的向量的模型,可使用涉及计算特定向量参数与零向量的距离的类似方法。对于一些类型的模型,参数可包括概率分布而不是标量。在参数包括概率分布的一个实施方案中,参数向量中表示的不同特征的相对贡献可通过从先验值估计Kullback-Leibler(KL)散度来获得,并且此类散度估计可用于识别其参数应被修剪的特征。

可将所识别修剪受害者的条目(例如,参数值)从参数向量5025移除,从而减少消耗的存储器。然而,可甚至在修剪一些参数之后执行另外学习迭代。因此,参数向量大小可随着考虑更多的观察记录、添加更多的参数并且修剪更多的参数而重复地增长和收缩。注意,术语“修剪参数”或“修剪特征”在本文中可同义地使用,以指代从参数向量移除包括(特征标识符,参数)对的特定条目。在至少一些实现中,在一个学习迭代中修剪的特定特征的参数可甚至稍后被重新添加到参数向量,例如响应于模型生成器(基于另外观察记录)确定特征对于预测比对其被修剪时更有用。在一些情况下,重新添加的参数的值可与早前移除的值不同。

在参数向量可能已在期间增长和收缩多次的某一数量的学习迭代之后,可使用当前参数向量来执行线性模型。在一些实施方案中,在对生产或测试数据组5050的用于预测5072的模型执行5040之前,参数向量5025可以是“冻结的”(例如,自特定时间点起参数向量的不可变表示可存储在MLS制品储存库中)。在其他实施方案中,即使在模型用于进行生产或测试运行之后,可使用新的观察记录来执行另外学习迭代5020。在参数向量被冻结以供生产使用或测试的情境中,另外学习迭代可在参数向量的非冻结或可修改版本上继续。在各种实施方案中,在图50中由虚线指示的边界的任一侧上的操作可彼此交替,例如,在其期间基于新的观察数据修改参数向量的一个或多个学习迭代之后可以是模型的生产运行,并且生产运行之后可以是更多的学习迭代,等等。

图51示出根据至少一些实施方案的示例性情境,其中用于训练模型的机器学习服务器的存储器容量可变为参数向量大小的约束。如前所述,在各种实施方案中,可在机器学习服务处支持多种多样的特征处理变换(FPT)用于输入变量,并且至少一些FPT可按照序列被链接,即,应用到已使用其他FPT生成的特征。支持的特征处理变换函数可包括例如:用于数值变量的分位数仓函数5154、用于各种类型的变量的笛卡尔乘积函数5150、用于文本的n元语法函数5152、日历函数、诸如图像处理函数的域特定变换函数5156、音频处理函数、视频处理函数、生物信息处理函数、除了n元语法之外的自然语言处理函数等。取决于输入变量5101的数据类型,可向其应用一个或多个FPT,并且可将另外FPT应用到结果。例如,可在所描绘实施方案中创建包括n元语法、分位数仓和/或域特定变换的笛卡尔乘积的新特征。可能的特征处理变换和组合的数量5133可能非常大,这可能导致大小无界的参数向量5144。在一些实现中,所识别的各种特征可映射到实数的向量,其中向量的维数可至少原则上是任意大的。

至少在一些实现中,特定模型的显著部分或全部学习迭代可旨在在诸如服务器5160的单个MLS服务器上执行(例如,使用在这种服务器处的一个或多个执行线程)。在一些此类实现中,可能需要将模型的参数向量装入MLS服务器5160的主存储器5170。如果存储器内参数向量表示5180增长得太大,那么用于学习的进程或线程可能以存储器不足错误过早地退出,并且可能必须重新实现至少一些学习迭代。如存储器需求图5175所示,MLS服务器存储器需求可以检查的输入变量和/或观察记录的数量以非线性方式增长。注意,需求图5175不旨在示出针对任何给定机器学习问题的观察的数量与可能的参数向量大小之间的精确关系;相反,它旨在传达可在此类关系中观察到的一般趋势。

在一些常规机器学习系统中,当其参数存储在参数向量中的特征的数量达到选择的最大值时,可简单地终止模型的训练。这意味着在此类方法中,可稍后以其他方式被识别为对预测质量的重要贡献者的特征可能永远不被考虑用于在参数向量中的表示。在另一种常见技术中,可使用散列函数来分离地组合不同特征(例如,为了节省空间,可使用另外将表示特定特征的散列值的K位的仅仅N位,其中使用模函数选择N位),这还可能导致预测的质量的降低。在一些机器学习系统中,可使用一种或多种正则化技术,其中分配给不同特征的权重或参数可在各种学习迭代中被减少某一因子,并且因此,一些特征可逐渐从参数向量中消除(其中它们的权重接近零)。然而,当其本身用于约束参数向量大小时,正则化可导致模型预测的相对差的质量。正则化还可能需要选择一个或多个超参数(诸如将使用的缩减因子),这可能不是直截了当的。注意,即使在实现以下描述的参数修剪技术的实施方案中,由于各种原因(诸如防止过度拟合或至少有助于参数向量大小减小),可仍然使用正则化。

在一些实施方案,可利用这种技术:对用于线性模型的参数向量的大小施加限制,而不牺牲所进行的预测的质量,并且不基于训练阶段期间如何早地识别特征来限制特征组。根据此技术,当满足触发条件时,可从参数向量中修剪对应于迄今为止识别的特征的子集的参数(有效地用默认值或先验值替换所移除的参数值)。如前指示,此类特征在本文中可被称为“修剪受害者特征”或更简单地称为“修剪受害者”。在如下所述的一些实现中,用于识别对模型的预测贡献最小的特征的所选择部分或分位数的有效估计技术可用于识别修剪受害者。至少在一些实现中,这种技术可不需要明确地对参数进行分选或复制参数。在已修剪对应于修剪受害者特征的参数之后,可例如在随后学习迭代中添加另外特征的参数。在一些情况下,如果稍后的观察指示给定特征对于预测可能比在其被修剪时其预期的更有用,那么可将早前被选择作为修剪受害者的给定特征的参数重新引入参数向量中。

图52示出根据至少一些实施方案的这种技术,其中在训练期间其各自参数值存储在参数向量中的特征的子集可被选择作为修剪受害者。示出了四个学习迭代5210A、5210B、5210K和5210L。在每个学习迭代中,可由模型生成器检查包括一个或多个观察记录的各自观察记录组(ORS)5202(例如,学习迭代5210A中的ORS 5202A、学习迭代5210B中的ORS 5202B等等)以确定是否应将任何新参数添加到参数向量。另外,在至少一些实施方案中,可例如使用随机梯度技术更新或调整早前生成的参数值。在学习迭代5210之后,参数向量包括对应于特征标识符5212A的参数5222A。在下一个学习迭代5210B之后,参数向量已经增长,并且现在包括用于特征标识符5212B的参数5222B(并且学习迭代5210A中的参数组中的一些或全部可能已经被调整或改变)。

当执行另外的学习迭代时,可将更多的参数添加到参数向量。最终,在某一学习迭代5210K期间或之后,模型生成器可确定已超过阈值参数向量大小PVS,并且可执行修剪分析。注意,至少在一些实施方案中,可不在每个学习迭代中或之后执行检测是否已满足用于修剪的触发条件的操作,因为这样的频繁修剪可能是不必要的。相反,例如,基于自这种检查上次完成以来已执行的学习迭代的数量,或者基于自这种检查上次执行以来已经经过的时间,或者基于自上次执行检查以来已检查的观察记录的数量,可周期性地执行此类检查。在至少一些实施方案中,PVS可至少部分地基于MLS服务器的存储器容量(例如,设置为其一部分),或者触发条件可基于某一其他服务器资源容量约束,诸如CPU利用限制。在一个实施方案中,代表其训练线性模型的客户端可指示训练(例如,具有不超过X吉字节的存储器的服务器将用于训练)和/或训练后执行的一个或多个目标,并且此类目标可能影响PVS的值。在各种实施方案中,PVS可根据参数向量中包括的参数的数量表示,或者简单地根据参数向量所消耗的存储器的量来表示。

在修剪分析中,模型生成器可识别其参数将被移除的特征的某一选定数量(或某一选定部分)。在一个实施方案中,例如,可例如基于分配给参数向量中表示的特征的权重的绝对值识别10%最低有效特征。在一些实施方案中,如上所述,可假设特征对预测的相对贡献(其至少部分地使用特征值的加权和来计算)与它们的权重的绝对值成比例。识别10%最不重要的特征的任务可因此等同于识别具有最小绝对值的10%的权重。特征的这种部分的精确识别可能需要分选整个参数向量的权重的绝对值,这可能对大参数向量造成其自己的资源消耗问题,例如,这种分选操作可能需要大量的存储器、CPU周期和/或持久性存储装置。因此,在一些实现中,可使用优化来找到所选择部分的近似边界权重(即,权重Wk,使得大约10%的特征具有较小的绝对权重,而剩余的大约90%具有较高的绝对权重),而无需分选权重或复制权重。以下结合图55的论述描述这种优化技术的实例。在估计所选择分位数的边界(例如,在上述实例中为10%)之后,可容易地识别其绝对值低于边界的权重,并且可将此类权重的条目从参数向量移除。注意,尽管权重在本文论述为可存储的参数种类的简单实例,但当使用更复杂的参数(例如,包括超过仅是单个实数的参数结构)时,可使用类似技术来确定修剪候选者。也就是说,所描述的修剪技术不限于单个数值量(诸如具有实数值的权重)被用作参数的实施方案。更复杂的参数可被变换为例如近似对应特征对由模型进行的预测的相对贡献的数值。如前所述,在各种实施方案中,取决于用于模型的参数的类型,可使用特定参数值与先验值的偏差的不同测量,以便估计参数的相对贡献。

在特征的某一子集已被识别为修剪候选者并且其参数被移除之后,如图52中标记为5255的箭头指示的,修剪的参数向量(包括特征标识符5212K*的经调整的参数5222K*)可能不再违反PVS约束。在至少一些实施方案中,可修剪参数向量的足够大的部分,使得可在一个或多个随后学习迭代(诸如图52中示出的学习迭代5210L)中再次添加另外参数。因此,参数向量大小可在通过修剪减小之后再次增长。如果参数向量大小最终再次超过PVS,那么可能需要另外修剪,并且可在完成另外修剪之后添加更多的参数。对应于任何特征的参数可在给定的学习迭代中添加到参数向量,包括例如对应于早前被选择作为修剪受害者的特征的参数。通过不限制在任何学习迭代期间可考虑用于在参数向量中表示的特征组,并且仅消除在每个修剪阶段处当前被识别为对模型的预测贡献最小的那些参数,图52中示出的技术可收敛于提供高度准确的预测同时限制训练期间的存储器使用的参数向量上。另外,参数向量大小的减小还可减少在预测运行期间加载和执行模型所花费的时间,因此,可在训练阶段和训练后阶段预测运行两者期间获得所述技术的益处。

上述迭代学习的方法(其中参数向量成员可随时间减少和增加)在观察记录可从各种数据源流传输到MLS的实施方案中可能是特别有用的。在此类情境下,与在任一学习迭代之前收集整个训练数据组的环境相比,能够重新考虑其参数已早前修剪的特征并且通常在更多观察记录到达时保持修改参数向量甚至可能更有用。观察记录的特性(例如,各种输入变量的值的分布)可随时间改变,例如,使得可进行最佳预测的参数向量也将随时间改变的可能性更大。

图53示出根据至少一些实施方案的系统,其中将用于线性模型的训练阶段的学习迭代的观察记录可流传输到机器学习服务。如所示,可在MLS处建立数据接收器端点5308(例如,网络地址或统一资源标识符),以用于从一个或多个流传输数据源(SDS)5302诸如SDS5302A、SDS 5302B和SDS 5302C接收观察记录。此类数据源可例如包括地理上分布的应用的web服务器日志、基于传感器的数据收集器等。来自此类数据源的观察记录(OR)可按任意次序到达,例如,可先接收来自SDS 5302A的OR1,之后是来自SDS 5302C的OR2、来自SDS 5302B的OR3和OR4等等。

在所描绘实施方案中,在模型生成器处,记录可按它们到达的次序用于学习迭代。例如,可在第一组学习迭代5333A期间检查OR1、OR2和OR3,导致生成特定参数向量。学习迭代组5333A之后可以是修剪迭代5334,其中一些选择的参数基于它们对正训练的模型的预测的相对贡献从参数向量移除。修剪迭代5334之后可以是另一个学习迭代组5333B,其中检查OR4、OR5和OR6,并且将一个或多个新特征(和/或其参数先前被修剪的特征)的参数添加到参数向量。随时间,参数向量可演变以提供对来自所有流传输数据源5302的数据的准确预测。在一些实施方案中,修剪迭代5334可以规则的间隔调度,例如每X秒一次,而不管接收或检查观察记录的速率如何。这种基于调度的修剪可帮助MLS来对观察记录到达速率的大波动做出响应,例如,以防止由在参数向量大小已经接近其最大阈值的时间到达的观察记录的突然突发引起的存储器不足错误。

图54是示出根据至少一些实施方案的可在机器学习服务处执行的操作的方面的流程图,在所述机器学习服务处,响应于检测触发条件,可从参数向量修剪对应于一个或多个特征的参数以减少训练期间的存储器消耗。如元素5401所示,可在机器学习服务处接收对用于开发线性预测模型的训练数据组的未处理或原始观察记录的数据源的指示。在至少一些实施方案中,数据源可由客户端通过诸如API、基于web的控制台、独立GUI或命令行工具的MLS编程接口来指示。线性预测模型可例如预期至少部分地基于通过前述类型的一个或多个特征处理变换(FPT)从训练数据导出的特征值的加权和来进行预测。在一些实现中,用于生成/训练模型的作业对象可响应于客户端对API的调用创建并且放置在诸如图1的队列142的作业队列中。可例如异步地在MLS服务器池185的所选择训练服务器(或一组训练服务器)上调度所述作业。

可发起训练模型的过程(例如,当调度排队的作业时)。可初始化空参数向量(元素5404),并且可确定将在模型的训练阶段期间使用的一个或多个设置,例如,可识别将用于触发修剪的阈值条件,可识别每次检测到这种阈值条件时将修剪的参数的部分等等。在不同实现中,阈值可基于各种因素,诸如可包括在参数向量中的参数的最大数量、用于训练模型的MLS服务器的存储器容量和/或由客户端指示的目标。可从其导出阈值的客户端提供的目标可包括例如对在模型的训练期间和/或在训练后运行期间可消耗的各种类型的资源的限制,包括存储器、CPU、网络带宽、盘空间等。在一些实施方案中,客户端可指定训练和/或预测运行的预算目标,并且预算可在MLS的部件处被转换成对应的资源限制。

在所描绘实施方案中,模型生成器或训练器可随后开始实现一个或多个学习迭代。可针对下一个学习迭代识别一组一个或多个观察记录(元素5407)。取决于观察记录的性质,可能必须执行一些初步数据类型变换和/或归一化操作(元素5410)。例如,一些模型生成器可能需要将分类输入变量转换为数值或布尔变量,和/或将数值变量值映射到-1至1的范围内的实数。可识别其参数诸如权重将添加到参数向量的一个或多个新特征(元素5413)。在一些情况下,早前选择作为修剪受害者的特征的新条目可重新插入到参数向量中。在一些情况下,这种重新添加的条目的参数值可不同于先前修剪的条目的参数值,而在其他情况下,原始和重新引入的条目的参数值可相同。在一些实现中,诸如散列图或散列表的键值结构可用于存储参数向量的(特征标识符,参数)对,例如其中特征标识符作为键。在一些实施方案中,一个或多个先前生成的参数值也可例如使用随机梯度下降技术在这个阶段更新。

如果模型生成器确定已满足用于触发一轮修剪的阈值条件(在对应于元素5404的操作中识别的)(元素5416),那么可将一个或多个特征识别为修剪受害者(元素5419)。在所描绘实施方案中,对模型的预测贡献最小的特征,例如,借助于具有最小的绝对权重,可被选择作为修剪受害者。确定或估计不同特征的相对贡献的方式以及识别预期提供最小贡献的特征的方式可在各种实施方案中不同。在给每个特征分配各自实数作为权重的一些实施方案中,可使用有效估计技术,其不需要分选或复制权重并且可在参数向量上的单个存储器内过程中估计权重之间的分位数边界值。在识别了分位数边界(例如,表示在参数向量中表示的权重的绝对值的范围中的所估计百分之10或所估计百分之20的权重)之后,可将具有较低权重的特征的条目从参数向量移除。可通过移除对应于修剪受害者的条目来减少由参数向量消耗的存储器(元素5422)。

如果已经完成学习迭代(如在元素5425中检测到的),那么训练的模型可用于生成关于生产数据、测试数据和/或关于其他训练后阶段数据组的预测(元素5428)。如果例如已检查了预期可用的所有观察记录,或者如果由模型基于迄今为止执行的学习迭代可进行的预测的准确度满足可接受准则,那么学习迭代可被视为完成。如果将执行另外的学习迭代(也如在元素5425中检测到的),那么可重复对应于元素5407向前的操作,例如,可识别一组新的一个或多个观察记录、可根据需要变换原始数据、可将新特征的参数添加到参数向量等等。在一些情况下,可对已经检查的观察记录执行至少一些另外学习迭代。

如前所述,可基于对单独特征关于模型预测的相对贡献或相对重要性的分析从在参数向量中表示的特征来选择修剪受害者。图55示出根据至少一些实施方案的可用于确定分配给特征的权重的绝对值的分位数边界估计的单遍技术。可在存储器中检查对应于各自特征F1、F2...Fm的一组权重W1、W2...Wm,例如,不复制权重且不明确地分选权重。在所描绘的实施方案中,将获得边界值的分位数被称为“tau”。因此,例如,如果将识别权重的绝对值的最低20%与权重的剩余80%之间的边界,那么tau可设置为0.2。边界本身被称为“phi-tau”。最初,如元素5502所示,可确定tau和另一个参数“eta”(表示将用于确定phi-tau的学习速率),并且可将phi-tau设置为零。随后,可检查下一个权重Wj,并且可获得其绝对值abs(Wj)(元素5505)。如果abs(Wj)大于phi-tau,如在元素5508中确定的,那么可通过加上tau和eta的乘积(tau*eta)来增大phi-tau。如果abs(Wj)不大于phi-tau,那么可通过减去(1-tau)*eta来减小phi-tau(元素5511)。如果仍有将检查的更多权重(如在元素5517中检测到的),那么可重复对应于元素5505向前的操作。否则,在已检查了所有权重之后,分位数边界phi-tau的估计可完成(元素5520)。在图55中示出的过程结束时的phi-tau的值可随后用于选择修剪受害者,例如,具有绝对值小于phi-tau的权重的特征可被选择作为受害者,而具有绝对值不小于phi-tau的权重的特征可保留。在至少一些实现中,可在分位数边界估计过程期间修改或调整学习速率(eta);即,eta不需要保持恒定。

并发分仓

注意,在分位数分仓的以下论述的上下文中,术语“特征标识符”可指代从将用于训练模型的数据组的观察记录导出的性质的唯一标识符。术语“特征组”可指代一组特征标识符,其中(a)在训练模型时可观察到特征值,以及(b)特征参数是已知的或从训练数据推断的。术语“特征”可指代由特征标识符索引的观察记录的性质的值(例如,单个数值、分类或二进制值或此类值的数组)。例如,术语“分仓特征”可指代从应用到一组观察记录的一个或多个输入变量的分位数分仓变换获得的二进制指示符值的数组的特定二进制指示符值(例如,“0”或“1”)。术语“特征向量”可指代一组(特征标识符,特征值)对或元组,其可例如存储在键值结构(例如散列图)或压缩向量中。术语“特征参数”或“参数”可指代对应于由特征标识符索引的性质的参数的值。表示权重的实数是可在一些实施方案中使用的参数的一个实例,但对于一些类型的机器学习技术,可使用更复杂的参数(例如,包括多个数值的参数)。术语“参数向量”可指代一组(特征标识符,特征参数)对或元组,其也可存储在诸如散列图的键值结构或压缩向量中。尽管在一些实施方案中,键值结构可用于参数向量和/或特征向量,但在各种实施方案中可采用参数向量和/或特征向量的其他类型的表示。

虽然广义线性模型对于许多类型的机器学习问题是流行的,但在至少一些情况下,数据组的输入变量与将预测的目标或输出变量之间的关系可以是非线性的。例如,给定数值输入变量的观察值的分布可能在相当大的程度上不平衡,使得特定(并且经常小的)子范围包含大量观察。此类密集间隔的观察可至少在一些情况下表示强关系,理想地,所述强关系应在分配给最终用于生成预测的特征的权重或参数中准确地表示。边远子范围可包含相对少的观察,但在许多情况下,捕获此类异常值与目标变量的关系对于生成高质量预测也可能是重要的。在至少一些此类情境中,分位数分仓变换可用于至少一些输入变量。在这种变换中,对于给定的训练观察记录组,原始或未处理的输入变量的值可每个映射到所选择数量的分位数仓中的一个,使得仓中的每一个在填充量方面至少近似等于其他仓。可随后生成一组二进制指示符变量(可设置为“0”或“1”的变量),其中每个这种二进制指示符变量表示从原始输入变量导出的各自“分仓特征”。对于给定的观察记录,指示符变量中的一个(对应于原始变量的值映射到的特定仓的一个)被设置为“1”,并且剩余指示符变量被设置为“0”。因为不同的仓在填充量方面大致相等,这意味着将针对未处理的变量的值的高填充子范围生成更多的仓,并且将针对稀疏填充的子范围生成更少的仓。因此,由于使用分位数分仓,捕获原始输入变量与目标变量之间的非线性关系的概率可能增加。在图56中示出并且以下更详细地描述分位数分仓变换的实例。

分位数分仓的一个挑战是,可能不会直截了当地提前选择仓计数(即,给定输入变量的原始值应映射到的仓的数量),所述仓计数将最终导致来自正在训练或生成的模型的最准确且最一般预测。考虑模型生成器对于给定输入变量具有10的仓计数或1000的仓计数的选择的示例性情境。对于10的仓计数,大约10%的观察记录将映射到10个仓中的每一个,而对于1000的仓计数,仅大约0.1%的观察记录将映射到每个仓。在确定哪个仓计数是优越选择的一种方法中,模型的两个版本可能必须被单独地完全训练并且随后被评估。模型的第一版本M1可利用从10仓变换获得的特征(以及其他特征,如果任何特征由模型生成器识别)来训练,并且第二版本M2可使用从1000仓变换获得的特征(以及其他功能)来训练。M1对测试数据的预测可与M2对相同测试数据的预测进行比较,以确定哪种方法更好。由于多种原因,不同的仓计数用于训练模型的各自版本的这种方法可能不是最佳的。第一,即使对于单个输入变量,利用各自组的分仓特征训练多个模型也可能是昂贵的。当对于相同模型必须考虑几个不同可分仓变量时,通常情况下,可能尝试的组合的数量可能变得非常大。第二,在一些情况下,可能不可能用任何单个仓计数设置捕获微妙的非线性关系(即使对于一个输入变量),例如,对于相同变量使用若干不同仓计数获得的特征可能对于一些预测有用,这取决于非线性关系的性质。因此,在一些情况下,对于至少一些变量,任何单个仓计数可能不一定产生与使用多个仓计数可产生的预测一样准确的预测。

在一些实施方案中,机器学习服务可实现并发分仓技术,其中在模型的单个训练阶段或训练会话期间可将具有各自仓计数的若干不同特征变换应用到给定输入变量。使用这种方法,可将初始权重(或更复杂的参数)分配给从多个仓计数导出的所有分仓特征。可生成大量的分仓特征,其中对应的参数或权重存储在参数向量中。例如,基于对另外观察记录的检查、一些观察记录的重新检查和/或连续学习迭代期间的训练阶段预测的结果,可稍后移除对应于分仓特征的至少一些参数。在一些实施方案中,可使用所选择优化技术(诸如L1或L2正则化)来调整初始权重或参数,并且可从参数向量消除其绝对权重值降至阈值以下的特征。在一些实施方案中,上述(例如,结合图51-图55的描述)的有效修剪技术还可或替代地应用以减少分仓特征的参数所消耗的资源。使用并发分仓之后是参数修剪,在一些实施方案中,可非常有效地获得允许模型关于上述种类的非线性关系进行准确的训练后阶段预测的参数向量,例如,而不会招致从头开始重复训练模型的成本。

图56示出根据至少一些实施方案的使用分位数分仓(quantile binning)变换来捕获机器学习模型的原始输入变量与预测目标变量之间的非线性关系的实例。如所示,从将用于在机器学习服务处生成模型的数据源获得的观察记录中包括的训练数据变量5690可包括多个数值输入变量(NIV),诸如NIV1和NIV2。分布图DG1和DG2分别示出了一组观察记录的NIV1和NIV2的值的统计分布。NIV1的值位于NIV1-最小至NIV1-最大的范围内,其中最高的观察密度在n2与n3之间的子范围中。NIV2的值位于NIV2-最小至NIV2-最大的范围内,其中峰密度在p1与p2之间。

在所描绘实例中,NIV1的值已映射到标记为NIV1-仓1至NIV1-仓4的4个仓。仓的名称对应于图56中的对应分仓特征的特征标识符。也就是说,具有4的仓计数的分位数分仓变换已被用于生成从单个变量NIV1导出的四个分仓特征5610A,其中一个指示符变量对应于每个仓。观察记录OR1中NIV1的值落在仓NIV1-仓3中;因此,对于OR1,NIV1-仓3的指示符变量已被设置为1,并且剩余的NIV1相关的指示符变量NIV1-仓1、NIV1-仓2和NIV1-仓4已被设置为零。在观察记录OR2的情况下,NIV1的值落在N1V1-仓2内,并且对应的指示符变量已被设置为1,其中剩余的设置为零。NIV2的值已通过具有3的仓计数的分位数分仓变换被映射到三个仓NIV2-仓1至NIV2-仓3。在OR1和OR2中,NIV1的值落在NIV2-仓2内。因此,对于OR1和OR2,指示符变量NIV2-仓2已被设置为1,并且剩余的NIV2相关的指示符变量已被设置为0。在所描绘实施方案中,给定变量的分仓特征或二进制指示符变量的数量对应于仓计数。图56中示出的示例性变换在本文中可被称为单变量非并发分仓变换。可将变换指定为单变量,因为仅使用一个变量的值来导出给定分仓特征,并且非并形是因为仅使用单个仓计数来对变量中的每一个进行分仓。

除了由分位数分仓变换产生的分仓特征之外,可对图56中描绘的实施方案中的训练数据的其他原始输入变量执行其他特征变换。可以为训练数据生成包括用于分仓特征(诸如NIV1-仓1和NIV1-仓2)和非分仓特征(诸如NF1)的组合的参数的参数向量5625。在一些实现中,参数可包括权重,诸如每个特征的各自实数。在一些实施方案中,例如,当迭代地使用上述种类的修剪技术时,参数向量可增长和收缩。在至少一些实现中,随着更多的观察记录被检查或者先前检查的观察记录被重新分析,仓边界也可移位。在某一点,模型的训练阶段可被视为完成(或至少足够完成以用于对某一非训练数据组的预测),并且参数向量5625的当前版本可在执行模型5640期间使用以生成对测试或生产数据组5650的预测5672。

在图56示出的示例性情境中,单个仓计数(四)用于对NIV1值进行分仓,并且单个仓计数(三)用于对NIV2进行分仓。如上所述,如果使用此类单仓计数,那么生成的分仓特征可能不一定导致最高质量的预测。这可能是这种情况,例如,因为在训练/学习过程开始时为给定原始输入变量选择的特定仓计数可能不能表示原始输入变量值与目标变量之间的非线性关系以及关系可使用不同的仓计数来表示。在至少一些情况下,可在一定程度上任意地选择仓计数,而没有任何可量化的理由。针对每个可分仓输入变量使用若干不同仓计数完全训练模型,并且随后比较结果以便为每个这种变量选择最佳仓计数可能是昂贵且耗时的过程。因此,在一些实施方案中,机器学习服务可针对训练组的至少一个原始输入变量使用若干不同仓计数来并发地实现分位数分仓。

图57示出根据至少一些实施方案的可在机器学习服务处模型的训练阶段期间生成的并发分仓计划的实例。在所描绘实施方案中,所述组训练数据变量5790包括已被选择作为并发分位数分仓的候选者的数值输入变量NIV1、NIV2和NIV3。对于每个变量,可在模型的训练阶段期间生成和实现各自的并发分仓计划(CBP)。例如,根据CBP1,可在训练阶段内将三个分位数分仓变换QBT1-1、QBT1-2和QBT1-3应用到NIV1的值,其中各自的仓计数为10、100和1000。由于实现CBP1,可产生总共1110个分仓特征5730A:来自QBT1-1的10个特征(标记为NIV1-1-1至NIV1-1-10),来自QBT1-2的100个特征(NIV1-2-1至NIV1-2-100)以及来自QBT1-3的1000个特征(NIV1-3-1至NIV1-3-1000)。。可将初始权重(或将用于表示各自特征对模型的预测的相对贡献的其他类型的参数)分配给分仓特征5730A中的每一个。类似地,根据并发分仓计划CBP2,可在同一训练阶段内将四个分位数分仓变换并发地应用到NIV2,其中仓计数分别为20、40、80和160,从而产生300个分仓特征5730B。根据并发分仓计划CBP3,可将三个分位数分仓变换应用于NIV3,其中仓计数分别为5、25和625,从而产生655个分仓特征5730C。可将各自的初始权重/参数分配给所有分仓特征。

在不同实施方案中,模型生成器或机器学习服务的另一部件可基于各种因素中的任一个选择不同的仓计数(例如,在NIV1的情况下为10、100、1000,或者在NIV2的情况下为20、40、80、160)来用于给定变量的并发分仓。在一些实施方案中,例如,可获得可用的观察记录的小样本,并且可确定样本中的数值输入变量(诸如NIV1、NIV2或NIV3)的值的分布。随后可使用分布来选择不同的仓计数。数值变量的值的范围和粒度也可影响仓计数的选择:例如,如果特定数值变量仅取1与1000之间的整数值,那么所述变量的最大仓数可限制为1000。在其他实施方案中,可咨询机器学习服务的知识库(例如,图1中示出的KB 122)以确定针对其正生成模型的特定问题域的最佳并发分仓相关实践。在一个实施方案中,N个仓计数的默认组(例如,10、100、1000,其中N=3)可用于被选为候选者的所有变量。

注意,在至少一些实施方案中,虽然可在模型的单个训练阶段或训练会话期间实现给定组的CBP(例如,图57中示出的实例中的CBP1、CBP2和CBP3)的所有分位数分仓变换,但变换中涉及的计算不需要在硬件级别处同时或并行地执行。例如,在一个实现中,对于给定组的观察记录,通常可使用模型生成器的至少一个执行线程来产生诸如QBT1的给定分位数分仓变换的指示符变量的值。因此,为了实现CBP1、CBP2和CBP3的10个变换(QBT1-1、QBT1-2、...QBT3-3),可能需要十个执行线程。然而,这并不意味着必须使用10个处理器或核,而是例如单个4核MLS服务器可用于所有10个分仓变换,其中必要计算的不同子集在模型的训练阶段期间的任何给定时间点处并行或顺序地运行。因此,在所描绘实施方案中,使用术语“并发”来描述分位数分仓变换组是指在训练阶段的上下文内的并发计算,并且不需要硬件级别的并发。当然,在一些情况下,可用的核或CPU的数量可足以在训练阶段期间并行地执行不同CBP所需的所有计算。

在许多情况下,用于分仓变换的候选变量的数量可能相当大,并且因此由于实现并发分仓计划而产生的分仓特征的数量也可能变得非常大。如前所述,随着参数向量中表示的特征的数量增加,在生成或训练模型的MLS服务器处所需的存储器也增加。为了限制消耗的存储器的量,可在所描绘实施方案中执行一个或多个权重调整优化5710。此类优化可包括例如正则化技术,其中在连续学习迭代内减少至少一些分仓特征(和/或一些非分仓特征)的权重,因为模型生成器能够更多地了解各种特征对预测准确度的相对贡献。由于正则化,与一些特征相关联的权重可变得足够小,使得在至少一个实施方案中至少对应于此类特征的参数可从参数向量移除或修剪。注意,在至少一些实施方案中,正则化还可帮助减少过度拟合;也就是说,参数向量大小的减少可能不是使用正则化的唯一(或甚至主要)原因。在一些实施方案中,响应于触发条件,可估计分配给特征的不同权重的分位数边界(例如,使用类似于图55所示技术的技术),并且可从模型的参数向量移除落在权重的绝对值的范围的最低X%中的所选择权重组。在一些实施方案中,可使用正则化和基于分位数边界的修剪以便在训练期间从参数向量中消除参数。在其他实施方案中,可使用除了正则化和基于分位数边界的修剪之外的优化。

分配给根据CBP1-CBP3获得的不同分仓特征的初始权重可根据图57中描绘的实施方案中的一个或多个所选择优化策略来调整。如果给定分仓特征的调整的权重降至拒绝阈值以下,那么所述特征的条目可从参数向量中移除,并且可不用于训练后阶段预测(除非其稍后在更多学习迭代完成时再次引入)。在所示实例中,对应于对其应用了并发分仓变换的输入变量中的每一个,由于子集的调整的权重高于拒绝阈值,仅将所述子集用于训练后阶段的预测。例如,从1110个NIV1相关的分仓特征中,仅使用NIV1-1-3和NIV1-2-5。在300个NIV2相关的分仓特征中,使用NIV2-2-1至NIV2-2-40,并且在655个NIV3相关的分仓特征中,NIV3-3-1至NIV3-3-10和NIV3-3-50至NIV3-3-53用于训练后预测。剩余分仓特征的参数可从参数向量移除。尽管在图57中仅示出了由于实现并发分仓计划CBP1-CBP3而产生的分仓特征,但在训练阶段期间,也可将非分仓特征的参数添加到参数向量以及从参数向量中移除。

在图57示出的实例中,已经保留了对应于单个输入变量(NIV1)的不同分位数分仓变换的两个分仓特征()(NIV1-1-3和NIV1-2-5)以用于训练后阶段预测。这可指示两个不同仓计数(NIV1-1-3的10和NIV1-2-5的100)可每个捕获NIV1与其值将被预测的目标变量之间的非线性关系的不同方面。由于使用类似于图57所示技术的并发分仓技术,比起对于对其执行分位数分仓的每个变量使用单个仓计数的情况,在许多情况下训练模型的预测准确度可能更高,并且在许多情况下所需整体训练时间可能更低。

在图57中,即使使用具有各自仓计数的多个分仓变换,每个分仓变换本身也应用到单个变量。在一些实施方案中,多于一个输入变量的值可一起使用以便将给定观察记录映射到单个仓。此类仓在本文中可被称为多变量仓,并且对应特征变换在本文中可被称为多变量分位数分仓变换。对于将被分仓在一起的每组输入变量,可将仓计数的不同组合分配给每个输入变量以便在模型的训练阶段期间并发地产生多变量分仓特征。图58示出根据至少一些实施方案的可在机器学习服务处实现的并发多变量分位数分仓变换的实例。在所描绘实施方案中,从多个训练数据变量5890中,将三个数值输入变量NIV1、NIV2和NIV3识别为将分组在一起用于并发多变量分仓的候选者。可针对利用各自的仓计数组合对三个变量的组合的组合决定生成各自的决定树5810A和5810B。

决定树5810A分别表示变量(NIV1、NIV2、NIV3)的仓计数组合(c1、c2、c3)。给定观察记录,可基于三个变量的值来导航决定树,其中每个级别包括决定节点,在决定节点处检查变量中的特定一个以决定接下来应遍历哪个节点。树的叶节点可对应于从所有分组的变量的组合导出的仓。例如,树5810A的级别L1可包括c1个决定节点,每个表示NIV1的值的一个分位数子集。对于级别L1处的每个节点,可在级别L2处生成用于NIV2的值的c2个决定节点,每个表示基于NIV1的分仓和基于NIV2的分仓的组合。类似地,对于级别L2处的每个节点,可生成c3个叶节点,每个表示多变量仓和对应的分仓特征。因此,在树5810的情况下,可利用对应的二进制指示符变量来生成总共(c1*c2*c3)个仓。在图58中,树5810A的叶节点被标记为仓123-1-1至仓123-1-m,其中m是c1、c2和c3的乘积。(在所示的仓命名约定“仓<string1>-<string2>-<string3>”中,string1表示分组在一起用于分仓的不同输入变量,string2是特定决定树的标识符,并且string3是仓在叶节点的集合中的位置的指示符。因此,仓123-k-q将表示用于对变量NIV1、NIV2和NIV3进行分仓的第k个树的第q个叶节点。基于任何给定观察记录中的NIV1、NIV2和NIV3的值,所述观察记录可映射到叶节点中的特定一个。所述叶节点的二进制指示符变量可针对观察记录被设置为1,而其他指示符变量可都被设置为零。

正如在一些实施方案中可使用不同仓计数并发执行单变量分仓,多变量分仓也可用给定变量组的仓计数的不同组合并发执行。例如,使用仓计数(c4、c5、c6)的不同组合,可针对(NIV1、NIV2、NIV3)组合并发生成第二决定树5810B。再次,叶节点处的仓/特征的数量等于仓计数的乘积:因此,在图58中,树5810B的叶节点被标记为仓123-2-1至仓123-2-n,其中n是(c4*c5*c6)。在各种实施方案中可使用用于各自多变量并发分仓变换的任何期望数量的决定树。对于至少一些训练数据组,使用多个变量用于如图58所示的分组的分位数分仓可允许捕获比使用单变量分仓可能的更多种类的非线性关系。在各种实施方案中,限制参数向量大小的类似种类的方法可与如以上参考单变量分仓论述的多变量并发分位数分仓一起使用。例如,在至少一些实施方案中,可采用正则化和/或涉及对分配给分仓特征的权重的分位数边界估计的技术。

在至少一些实施方案中,可在模型的给定训练阶段内使用多变量并发分仓变换以及单变量并发分仓变换。图57中示出类型的单变量并发分仓可被认为是更通用多变量分仓技术的一个变型,其中简单决定树仅包括叶节点(加上表示分仓决定过程的开始的根节点)。一般来说,从任何给定训练数据组的输入变量中,可选择某一数量的变量组用于并发分仓。一些组可仅包括一个变量,而其他组可包括多个变量。

图59示出根据至少一些实施方案的可用于表示机器学习服务处的并发分仓操作的配方的实例。如前所述,例如,参考图11-图17,机器学习服务可支持配方语言,其中可在用户友好句法中指示多种多样的特征变换操作,并且此类配方可根据需要重新用于不同的数据组。对应于并发分位数分仓变换的配方,诸如图57中所示的单变量并发分仓以及图58中所示的多变量并发分仓,可在图59所描绘的实施方案中生成并存储在MLS储存库内。

配方5902A的输出部分对应于图58的并发分仓变换,其中针对每个变换指示输入变量的名称和仓计数。因此,针对NIV1执行具有10、100和1000的仓计数的并发单变量分位数分仓变换,针对NIV2执行具有20、40、80和160的仓计数,并且针对NIV3执行5、25和625的仓计数。

配方5902B的输出部分指示将对指定变量组执行的并发多变量分位数分仓变换(其中令牌“MV_quantile_bin”中的“MV”代表“多个变量”)。第一这种变换将一起应用到NIV1和NIV2,其中NIV1值映射到10个仓,并且NIV2值也映射到10个仓(如由“10X10”指示),从而为组合创建100个仓。将针对NIV1和NIV2并发执行第二多变量分仓变换,其中针对NIV1的仓计数为100,并且针对NIV2的仓计数为100,导致总共10000个仓。将针对NIV1和NIV3一起执行第三多变量分仓变换,其中各自仓计数针对NIV1为100并且针对NIV3为20。在一些实施方案中,还可使用MV_quantile_bin令牌来指示单变量分位数分仓变换,指定仅具有一个变量的组。在至少一些实现中,配方5902A中示出的“quantile_bin”令牌可用于单变量分仓变换和多变量分仓变换两者,并且与令牌相关联的参数可用于确定将执行单变量分仓还是多变量分仓。

在一些实施方案中,类似于5902A或5902B的配方可由模型生成器产生,并且存储在MLS制品储存库中,用于可能在类似类型的机器学习问题上重新使用。在一些实施方案中,机器学习服务的客户端可明确地请求并发分位数分仓,并且可提供指定此类变换的属性或性质的配方(例如,将并发分仓的一组一个或多个变量、针对每个组的并发分仓变换的数量、仓计数等)。

在至少一些实施方案中,可响应于来自客户端的编程请求,例如通过API或基于web的控制台,在MLS处发起生成或训练模型的过程。图60示出根据至少一些实施方案的系统的实例,其中客户端可利用机器学习服务的编程接口来指示它们关于并发分位数分仓的使用的偏好。如所示,在系统6000中,客户端164可通过编程接口6062提交模型创建或训练请求6010。客户端请求可指示数据源6020,所述数据源6020的观察记录将用于训练模型以预测请求中指示的一个或多个目标变量6022的值。请求可包括“并发分仓”参数6024,如果并发分位数分仓的使用对于客户端是可接受的,那么所述参数可设置为“真”。不想让并发分位数分仓被使用的客户端可在此类实施方案中将这种参数设置为“假”。在至少一个实施方案中,用于并发分仓的默认设置可以是“真”,使得即使客户端未指示偏好,MLS也可针对被识别为合适候选者的所选择输入变量实现并发分位数分仓。在一个实施方案中,代替或者除了设置并发分仓参数的值之外,客户端可指示或包括在其模型创建请求6010中包括并发分仓变换的配方。

客户端请求6010可由机器学习服务的请求/响应处理机6042接收,并且对应内部请求可传输到模型生成器6080。模型生成器在本文中还可被称为模型训练器、特征处理管理器或特征变换管理器。模型生成器6080可识别将对其执行并发分位数分仓的观察记录的一个或多个候选变量。在一些实施方案中,模型生成器6080可咨询MLS最佳实践知识库122以确定将用于并发分仓的属性:例如,如果/应如何对多个变量进行分组以用于多变量分位数分仓,应使用的仓计数,等等。早前针对相同问题域或类似类型的机器学习问题识别的最佳实践可帮助指导对并发分仓属性的选择。在一些实施方案中,模型生成器6080可能够识别早前生成的配方(例如,在知识库或MLS制品储存库120中),所述配方包括成功地用于与其创建由客户端请求的模型类似的模型的并发分位数分仓变换。可使用此类预先存在的配方来选择将响应于请求6010应用的并发分仓变换。在至少一个实施方案中,可生成一组观察记录的k维树(k-d树)表示,例如,其中k维表示所选择的一组变量。在此类实施方案中,将应用到所选择的一组变量中的一个或多个的并发分仓变换的属性可至少部分地基于对这种k-d树的检查。

在图60描绘的实施方案中,可生成并调度包括并发分位数分仓的使用的一个或多个训练作业6068。取决于包括在数据源6020的未处理的观察记录中的原始数据的种类,训练作业6068可包括将原始输入变量转换为数值以可随后用于分仓的预处理任务6070。此类预处理转换可例如包括将一个或多个所选择分类变量映射到实数,和/或域特定的变换(例如,将原始音频数据、图形数据或视频数据映射成适于分仓的实数的变换)。在一些情况下,可使用迭代学习过程来训练模型,所述过程具有扩展模型的参数向量(例如,在更多的学习迭代完成时通过为更多分仓特征以及未分仓特征添加参数)和收缩参数向量(例如,使用先前描述的修剪技术)的交替阶段。取决于为并发分仓选择的属性以及为训练数据选择的并发分仓变换的数量,参数向量扩展6072可导致所需存储器的量的快速增长,并且因此在参数向量收缩6072期间可能需要积极的修剪方法。可相应地调整用于修剪的优化技术(诸如正则化)的属性,例如,使得被识别为对模型预测不太重要的特征的权重减少得更快。在采用早前描述的分位数边界估计技术的一些实施方案中,可增加在任何特定迭代期间消除或修剪的参数的部分以实现更积极的参数向量大小减小,可修改用于修剪的触发条件,使得更频繁地执行修剪等等。注意,尽管在许多情境下,可将参数从参数向量移除,但至少在一些实施方案中,有时可能是在训练阶段期间不从参数向量消除参数的情况。因此,使用本文描述种类的并发分位数分仓变换不需要修剪参数。

在所选择并发分仓变换已应用并且模型的训练阶段完成之后,模型的表示可存储在制品储存库120中,并且训练模型的标识符6082可通过编程接口6062提供给客户端。在一些情况下,执行的并发分位数分仓变换的指示(诸如配方)也可提供给客户端164。客户端可最终提交模型执行请求6054,并且模型的训练后阶段生产运行6058可由模型执行管理器6032调度。

图61是示出根据至少一些实施方案的可在实现并发分位数分仓变换的机器学习服务处执行的操作的方面的流程图。如元素6101所示,可例如通过编程接口提交的客户端请求,在提供商网络的机器学习服务处接收将从其获得未处理的观察记录以生成模型的数据源的指示。在至少一些实施方案中,机器学习服务可确定将生成线性模型,所述线性模型的预测将基于分配给从观察记录的变量的原始值导出的特征的实值权重(和/或更复杂参数的线性组合)。

机器学习服务的部件(诸如模型生成器)可将一个或多个未处理的变量识别为并发分位数分仓变换的候选者(元素6104)。在不同实施方案中,可基于多个不同因素中的任一个识别候选者,诸如对观察记录样本中的变量的原始值的分布的分析,用于执行并发分仓的默认策略等等。在至少一些情况下,可针对多变量并发分仓变换识别一组或多组候选者。在一些情况下,观察记录的一个或多个变量的原始值可在预处理步骤中映射到实数。例如,包括音频、视频或图形内容的变量可使用域特定映射算法映射到实数,或者一些类型的分类变量或文本令牌可映射到实数。

在所描绘实施方案中,对应于将对其执行并发分仓变换的每个单独变量或变量组,可生成并发分仓计划(元素6107)。此类计划的属性或性质可包括例如将在单个训练阶段期间实现的不同分位数分仓变换的数量以及为每个这种变换选择的仓计数。对于多变量分仓变换,计划属性中可包括将检查变量值的序列(例如,将在用于分仓的决定树(类似于图58中示出的树)的连续级别处检查哪个变量)。在一些实施方案中,模型生成器可利用最佳实践的知识库来帮助生成并发分仓计划,例如通过查找在过去成功地用于与正生成的模型相同的问题域(或类似问题域)的配方。

除了并发分仓之外,在一些情况下,可识别各种其他类型的特征变换以用于训练模型。在所描绘实施方案中,至少部分地由于实现并发分仓计划而获得的特征的初始权重可存储在参数向量中(元素6110)。可随后例如使用L1或L2正则化或其他优化技术来调整权重(元素6113)。在一些实施方案中,可基于调整的权重移除至少一些参数向量条目(元素6116)。例如,可移除其权重降至拒绝阈值以下的条目。在一些实施方案中,类似于图52和图54的上下文中论述的技术的有效分位数边界估计技术可应用到特征权重的绝对值,并且可移除其权重落在最低X%中的参数向量条目。在一些实施方案中,可使用迭代方法,其中参数向量大小可随着识别更多的并发分位数分仓变换而增长,并且随着修剪参数中的一些而收缩。在训练阶段完成之后,可使用训练的模型来生成关于生产数据和/或测试数据的预测(元素6119)。也就是说,可使用分配给保留的特征的参数或权重(例如,一些数量的分仓特征和/或未修剪的一些数量的非分仓特征)来获得预测。

并发分位数分仓可用于多种多样的监督式学习问题,包括在不同实施方案中可使用各种类型的广义线性模型来解决的问题。在各种实施方案中,类似于上述那些变换的并发分位数分仓变换还可用于非监督式学习,例如,除了或替代用于监督式学习。在一个实施方案中,例如,无标记的数据组的变量中的至少一些可并发分仓作为聚类技术的一部分。

用于探索评估结果的交互式图形界面

如上所述,在不同实施方案中,可使用机器学习服务来训练、评估并随后部署多种多样的模型以用于生产预测,包括例如分类模型、回归模型等。对于MLS的一些非专家用户,解释模型执行结果可能不总是直截了当的,特别是结果简单地以文本格式呈现,例如作为一个或多个数值表的情况。具体地,使用模型输出的文本版本,一些用户可能相对难以理解不同质量相关度量(诸如准确度、假阳性率、假阴性率等)之间的关系,以及改变各种解释相关设置(诸如分类模型情况下的截止值或分类之间的边界)可能如何影响使用模型做出的最终业务决定。为了帮助桥接一方面MLS资源的后端计算和推断能力与MLS的用户解释模型结果并在可能冲突的质量目标之间做出最佳可能权衡的能力之间可能存在的差距,在至少一些实施方案中,MLS可提供对交互式图形界面的支持。可例如通过网站或网页(例如,基于web的MLS控制台的页面)的集合或者通过独立图形用户界面(GUI)工具来实现的这种交互式图形界面可使得MLS的用户能够浏览或探索各种模型执行的结果的可视化(诸如各种训练后阶段评估运行或评估后生产运行)。在各种实施方案中,界面可允许用户动态地改变一个或多个解释相关设置、了解各种质量度量及其相互关系,并且在各种目标之间优先化。

在至少一些实施方案中,界面可包括多个控制元件(例如,滑块、旋钮等),所述控制元件可由MLS客户端使用来改变一个或多个预测相关设置的值,并且实时观察此类变化的后果。在一些实现中,可使用连续变化控制元件,诸如滑块,其模拟基础变量或设置的平滑变化,其中在其他实现中,可使用离散变化控制元件,诸如旋钮,允许选择小组值中的一个。例如,对于二进制分类模型,客户端可能改变截止值(用于将观察记录放置在一个类或另一类中的输出变量的边界值),并且动态地观察这种变化将如何影响给定评估运行的假阳性、假阴性等的数量。在一些实施方案中,界面可允许客户端“反向工程”某些类型的预测相关选择的影响:例如,客户端可使用滑块控件来指示预测质量结果度量的期望的改变(例如,二进制分类模型的特定评估运行的假阳性率),并且实时地查看可用于获得结果度量的期望值的截止值。还可向客户端呈现不同预测质量度量与阈值之间的关系的视觉证据,例如,当客户端改变给定评估运行的敏感度级别时,可示出所述改变对诸如精度或特异性的其他度量的影响。使用实现各种改变的“what-if”探索的此类界面,MLS的用户可变得更容易选择设置,诸如分类截止值、在模型的随后运行中模型的预测应被限制到的变量值的范围等,以便满足用户的特定业务目标(例如,将假阳性保持为低的或将准确度保持为高的)。在给定的交互会话期间,用户可以改变多个不同设置或度量并观察所得趋势,而不影响评估运行的已保存结果中的任一个。在一些实施方案中,用户可通过交互式界面提交请求以保存将用于模型的随后运行的一个或多个预测相关设置的各自目标值。

在各种实施方案中,各种可能设置变化的影响的动态显示可通过MLS的后端部件(例如,在其处获得和存储模型执行结果并且在其处快速量化变化的影响的各种MLS服务器)与前端或客户端侧装置(例如,在膝上型计算机、台式机、智能电话等处执行的web浏览器或GUI)之间的有效通信变得可能,在所述前端或客户端侧装置处显示执行结果并且首先捕获客户端与界面的各种控制元件的交互。在一些实施方案中,在客户端通过界面改变设置时,改变的指示可快速传输到MLS的后端服务器。后端服务器可计算数据组上的改变的结果以快速显示,并且将更新显示所必要的数据传输回到前端装置。当诸如滑块的连续变化控件由客户端使用来从一个值过渡到另一个值时,在一些实现中,前端装置与后端服务器之间的多个此类交互可在短时间内发生(例如,可每秒计算和显示几次更新)以便模拟对显示的连续改变。在至少一些实施方案中,计算客户端指示的改变的至少一些影响所需要的逻辑可被并入到交互式界面本身中,或者用于图形显示的客户端侧装置的其他子部件。

图62示出根据至少一些实施方案的示例性系统环境,其中机器学习服务实现交互式图形界面,使得客户端能够探索各种预测质量度量目标之间的权衡并且修改可用于解释模型执行结果的设置。在系统6200中,可例如在由MLS的客户端提交的训练请求或模型生成请求中识别将用于模型的一个或多个训练数据组6202。模型生成器6252可使用训练数据组6202来训练模型6204以便基于各种输入变量的值(包括例如将早前描述种类的特征变换应用到原始输入数据的结果)预测观察记录的一个或多个输出变量的值。

在已在足够程度上训练模型6204之后,在所描绘实施方案中,可使用对于其输出变量的值是已知的观察记录(其不用于训练模型)来执行一个或多个评估运行例如以便确定模型的预测对在训练期间未检查的观察有多好。在系统6200中,评估数据组6212可包括此类观察记录。可由模型执行器6254A(例如,在图1中示出的服务器池185的MLS服务器中的一个处运行的进程)向训练模型6204提供评估数据组6212作为输入。在至少一些实施方案中,可调度各自的作业(类似于图4中示出的作业)以用于训练模型并用于评估模型。

在所描绘实施方案中,评估的至少一些结果可被封装以便显示给代表其进行评估的客户端或用户。例如,可针对交互式图形界面6260(例如,web浏览器或可能已经安装在客户端计算装置上的定制GUI工具)格式化和传输一组评估运行结果数据6222。结果数据组6222可包括例如以下的某一组合:评估运行的一个或多个输出变量的统计分布6232,预测解释阈值(PIT)6234的一个或多个当前选择的或MLS提议的值(例如二进制分类的截止值),和/或与评估运行有关的一个或多个质量度量6236的值(例如,准确度、假阳性率等)。在一些实施方案中,例如取决于正使用的图形界面的类型,关于将如何显示结果数据的指令或指导(例如,网页布局细节)也可从后端MLS服务器传输到将在其处生成数据的图形视图的装置。交互式图形界面6260可包括各种控件,允许客户端在给定交互会话期间查看评估的结果、对诸如分类截止等的各种预测设置进行实验并且观察与对此类设置进行改变相关联的权衡。图63-图69中示出交互式图形显示器的部件以及可在不同实施方案中使用的各种控件的实例。

向其显示评估结果数据的客户端可使用控件中的一个或多个来指示一个或多个设置的期望值或目标值。目标值的选择可涉及在给定会话期间的若干客户端交互迭代6241,其中例如客户端可进行一次改变、观察所述改变的影响、撤销所述改变、随后进行另一改变并查看其影响等等。最终,在至少一些情况下,客户端可选择特定设置,诸如预测解释阈值(PIT)6242的目标值。在至少一些情境下,所选择目标值可不同于MLS最初可提议的PIT值6234,尽管客户端在某些情况下可能决定不改变所提议PIT值。在至少一个实现中,客户端选择的PIT值6242可存储在MLS的储存库中,例如图1的制品储存库120。保存的PIT值6242可用于生成训练模型6204的一个或多个随后运行的结果,例如,可使用模型执行器6254A关于评估后或生产数据组6214执行的运行。注意,在至少一些实施方案中,相同模型执行器6254A(例如,相同的后端MLS服务器)可用于训练模型的评估运行和评估后运行。

图63示出根据至少一些实施方案的可通过交互式图形界面提供的二进制分类模型的评估运行的结果的示例性视图。在所描绘实施方案中,结果可显示在形成用于与机器学习服务交互的基于浏览器的控制台的一部分的网页6300中。在其他实施方案中,可使用不需要使用web浏览器的独立GUI(例如,在诸如膝上型计算机、台式机、平板机或智能电话的客户计算装置处执行的瘦客户端程序或胖客户端程序)来提供具有交互式控件的类似视图。

网页6300的消息区域6302指示所显示数据对应于模型(“M-1231”)的特定评估运行,其中特定数据组“EDS1”用作模型的输入。在所描绘实例中,M-1231是二进制分类模型,即,其目标是将评估数据组EDS1的观察记录分类为两个类(诸如简单标记为“0”和“1”的类)中的一个的模型。消息区域还包括与图G1以及滑块控件S1的使用有关的说明性文本。

图G1示出了标记为“得分”的输出变量的分布:即,X轴表示得分的值,而Y轴指示评估数据组EDS1的观察记录的数量。基于得分值和被称为“截止”的分类边界,将观察记录中的每一个放置在两个类“0”和“1”中的一个中。在所描绘情境中,例如,如果得分值是0和1范围内的实数,并且截止值设置为0.5,那么具有0.49的得分的EDS的观察记录将放置在“0”类中,而具有0.51的得分的观察记录将放置在“1”类中。二进制分类的截止值表示预测解释阈值(PIT)的一个实例;其他预测解释阈值可用于各种类型的机器学习问题。例如,在一些类型的回归问题中,表示可接受均方误差范围(例如,X与Y之间的均方误差值)内的预测的输出变量的子范围的边界可充当预测解释阈值。对于n路分类,用于决定特定观察记录将放置在N个类中的哪一个(或者观察记录是否应被认为未分类)的一个或多个输出变量的边界值可表示预测解释阈值。

在所示实例中,EDS中的每个观察记录可包括标签“0”或“1”,指示关于观察记录的“地面真值”。这些标签用于划分绘图G1的观察记录,例如,使用曲线“标记为“0”的记录”指示标签为“0”的记录,而使用曲线“标记“1”的记录”指示剩余记录。在两组中的每一个中,假设0.5的截止值(如页面6300的元素6350中指示的),一些观察记录放置在正确的类中,而其他观察记录放置在不正确的类中。如果对于给定观察记录地面真值为“0”,并且得分小于截止值,那么产生称为“真阴性”的正确分类结果,也就是说,标签的正确值为“0”并且使用截止值选择的类与正确值匹配。如果地面真值为“1”并且得分高于截止值,那么产生称为“真阳性”的正确分类。如果地面真值为“0”并且得分高于截止值,那么产生称为“假阳性”的不正确分类。最后,如果地面真值为“1”并且得分低于截止值,那么观察记录放置“0”类中,并且产生称为“假阴性”的不正确分类。对于二进制分类问题中的给定观察记录可能的四种类型的决定(真阳性、真阴性、假阳性和假阴性)在本文中可被称为各自的“预测解释决定”。当其他类型的机器学习模型时,可做出其他类型的预测解释决定。

在图G1中,由曲线ABCEA界定的区域表示真阴性,并且由曲线CFGD界定的区域表示真阳性。表示“0”和“1”标签的曲线之间的交叉区域表示错误的分类决定。假阳性由当前截止值6320的右边的交叉区域HCD表示,而假阴性由当前截止值6320的左边的交叉区域CHE表示。图G1下方的条B1中也示出四种类型的决定的相对数量:真阴性6331、真阳性6334、假阴性6332和假阳性6333。在至少一些实施方案中,可在网页6300中显示对应于四种类型的预测解释决定的评估数据组中的观察记录的百分比和/或实际计数。例如,在图63中,EDS1的4502个或45%的观察记录对应于真阴性、698或7%是假阴性、1103或11%是假阳性以及EDS1的剩余3698个记录或37%是真阳性。

在所描绘实施方案中,除了使用诸如G1的图和诸如B1的条来显示评估运行的结果之外,网页6300还可以表格形式指示至少一些度量。例如,网页的区域6351可指示EDS1的观察记录的总数、截止值、放置在“1”类(假阳性和真阳性的和)以及放置在“0”类(真阴性和假阴性的和)中的记录的数量/百分比、针对其做出正确分类决定(真阴性和真阳性的和)的记录的数量/百分比以及针对其做出不正确决定(假阳性和假阴性的和)的记录的数量/百分比。在一些实施方案中可显示其他度量。

在网页6300中,响应于用户交互,可动态地重绘或更新多个图形和/或文本元素。因此,例如,被授予适当权限的用户可使用鼠标(或者在触摸屏接口的情况下,铁笔或手指)来操纵滑块控件S1。S1可向左移动(如箭头6310指示)以减小截止值,或者向右移动(如箭头6311指示)以增大截止值。当截止值改变时,落入四个决定组中的一些或全部的观察记录的数量可改变(如图64a和图64b中示出并且以下更详细论述的),并且此类变化在网页6300中可实时地更新。另外,在截止值改变时,区域6351中示出的度量的值也可动态地更新。此类动态更新可向用户提供改变截止值对用户感兴趣的度量的影响的容易理解的视图。在一些实施方案中,用户可能够改变其值被动态地显示和更新的度量组,例如其值由由于点击链接6354而显示的默认或“高级”度量显示的度量。在一些实现中,可使用诸如颜色编码、变化厚度的线、变化字体等的其他视觉提示来在图G1、条B1、区域6351等的各部分之间进行区分。

在至少一些实施方案中,机器学习服务可将当前与给定模型相关联的截止值(或其他预测解释阈值)保存在储存库中。在一个实施方案中,截止的初始提议值可由MLS本身选择,并且此值(例如,在图63所示的示例性情境中的0.5)可存储为默认值。授权用户可使用诸如网页6300的界面来探索改变截止的影响,并且随后决定应将截止的新值用于模型的一个或多个随后运行(例如,另外评估运行或评估后生产运行)。可指示MLS使用网页6300的按钮控件组6352的“保存新截止”按钮来保存截止的新值以用于未来运行。如以下更详细论述的,在一些实施方案中,用户可能够例如使用“编辑类标签”按钮控件来将分类标签(诸如“0”和“1”)改变为更有意义的字符串。可使用“重置截止”按钮控件来将截止重置为其默认值。在至少一些实施方案中,对正显示的评估结果不满意的用户可例如使用按钮控件组6352中示出的按钮控件“重新评估模型”或“重新训练模型”来通过网页6300提交重新评估模型或重新训练模型的请求。一些请求可能需要MLS后端与客户端的另外交互以确定另外参数(例如,可指定新的评估数据组用于重新评估)。在所描绘实施方案中,响应于客户端点击按钮6352中的一个,可显示不同的网页以使得能够指示另外参数。在各种实施方案中,可实现除了图63中示出的那些控件之外的其他类型的控件以实现各种模型类型的类似类型的功能。在一些实施方案中,可实现连续变化控制元件以使得客户端能够平滑地改变诸如截止值的设置,而在其他实施方案中,可使用允许用户从几个离散预定义值选择的离散变化控制元件。

图64a和64b集体示出根据至少一些实施方案的由客户端通过对交互式图形界面的特定控制指示的预测解释阈值的变化对一组模型质量度量的影响。图64a示出了二进制分类模型的评估运行的结果,其中截止值设置为值C1。利用这个截止值,如图G2和条B2指示的,对示例性评估数据组的4600个观察记录(总数的46%)做出真阴性决定,而对3400个观察记录做出真阳性决定。700个决定是假阴性,并且1300个是假阳性。

取决于应用,客户端可向与模型有关的各种质量度量分配不同的优先级或不同的重要性级别。例如,如果假阳性分类的负面业务后果比假阴性的负面业务后果高得多,那么客户可决定应在一个方向上改变模型的解释阈值,使得通常可能将出现更少的假阳性决定。考虑这种情境:其中使用二进制分类模型来确定在线业务的特定客户是否已尝试欺诈交易(例如通过使用他人的信用卡)。如果观察记录被分类为“1”,那么可联系并告知对应的客户怀疑他们的交易是欺诈交易。这意味着,如果做出假阳性决定,那么客户端可能被错误地指控欺诈行为。在这种情境下,电子商务运营商可决定:如果在假阴性与假阳性之间做出权衡,那么与假阳性相比,他们将更喜欢假阴性。在假阴性的现实世界后果高得多的情境中,例如在肿瘤检测应用(其中可能肿瘤的治疗可能被拒绝给其观察被错误地分类为假阴性的患者)中,相反的权衡可能是优选的。

对于在图64a的示例性情境中解决的特定机器学习问题,客户端已确定假阳性的比率太高,并因此已经决定使用滑块S1将截止值从C1增加到C2,如箭头6434指示的。图64b中示出增加的影响。当滑块向右移动时,可实时地改变将受到改变的截止值影响的图形G2的若干子区域的视觉特性(例如,阴影、颜色等)。例如,假阳性的数量按预期减少,从1300(图64a中)降至500(图64b中)。虽然真阴性的数量保持不变,为4600,但假阴性的数量大幅增加,从700增加到1800。真阳性的数量也在一定程度上减少,从3400到3100。在各种实施方案中,改变截止值的影响的动态可视化可帮助MLS客户端做出比仅提供各度量的文本表示的情况下可能做出的决定更明智的决定。另外,仅提供文本表示可能使得更难以针对截止值或其他类似预测解释阈值决定特定目标,因为在仅文本的情境中可能更难以理解各种度量围绕阈值的特定值的变化率。例如,截止值的小变化可能对得分值的一些子范围中的假阳性率或假阴性率具有比其他值大得多的影响,并且在没有动态更新的图(诸如图64a和64b中示出的那些图)的情况下,此类高阶效应可能难以理解。

如图63中指示的,在各种实施方案中,可以表格形式(如在区域6351中)或者使用图形元件来示出多个不同预测质量度量。图65示出根据至少一些实施方案的与其各自控件可包括在交互式图形界面中的机器学习模型的评估运行有关的高级度量的实例。图63中显示的多数内容与图63的网页6300的内容相同。图63和图65之间的主要差异在于,由于用户点击网页6300的链接6354,现在正显示另外度量(超出区域6351中所示的那些度量)。在所描绘实例中,示出了用于预测质量度量敏感度(滑块6554A)、特异性(滑块6554B)、精度(滑块6554C)和F1得分(滑块6554D)的各自水平滑块控件6554。在至少一些实施方案中,客户端可能够决定他们希望查看和/或修改哪些度量,作为显示默认或核心度量组的区域6351的一部分,或者在高级度量区域中。在各种实施方案中,可用于显示和/或操纵的度量可取决于模型的类型变化,并且可尤其包括:准确度度量、召回度量、敏感度度量、真阳性率、特异性度量、真阴性率、精度度量、假阳性率、假阴性率、F1得分、覆盖度量、绝对百分比误差度量、平方误差度量或AUC(曲线下区域)度量。在一些实施方案中,客户端可能够使用界面来在核心度量组与高级度量组之间移动度量,和/或定义将包括在一个或两个组中的另外度量。

在图65示出的实施方案中,滑块6554A-6554D和滑块S1的组合可由客户端使用来可视地探索不同度量之间的关系。例如,使用滑块S1改变截止值可导致对滑块6554A-6554D的位置的动态更新(以及对条B1和区域6351的更新),在视觉上指示截止值如何影响敏感度、特异性、精度和F1得分。改变滑块6554A-6554D中的任何一个的位置可导致对S1、条B1和剩余滑块6554的对应实时改变。在一些实施方案中,客户端可能够例如通过选择将用于不同度量的特定类型的控件(滑块、旋钮等)来改变在交互式界面中显示的各个区域的布局,哪些度量可使用图形控件直接修改并且哪些度量将以文本格式显示。

图66示出根据至少一些实施方案的可用于修改分类标签并查看基于输出变量值选择的观察记录的细节的交互式图形界面的元件的实例。在所描绘实施方案中,MLS(或代表其训练和评估模型的客户端)可能已初始地为观察记录将放置在其中的类选择默认名称“0”和“1”。稍后,客户端可决定更为用户友好的名称应该用于分类。因此,在所描绘实施方案中,可点击“编辑类标签”按钮,并且可显示更小的弹出窗口6605。在窗口6605中,用户可输入标签的新名称,诸如指示模型基于关于购物者将进行购买(“1”类)或不会购买(“0”类)的可能性的预测分类购物者的“不会购买”(替换标签“0”)和“愿意购买”(替换标签“1”)。

在各种实施方案中,可向MLS的交互式图形界面的用户提供多个其他控件。在一些实施方案中,例如,客户端可能希望检查观察记录的细节,对于所述观察记录,由模型计算特定得分。在图66示出的实施方案中,用户可在图G1中的各个点处(例如,在点6604处,对应于大约0.23的得分)鼠标点击,并且界面可通过显示具有接近由在点处点击指示的得分值的得分值的观察记录列表6603来响应。在其他实现中,可使用其他类型的接口,诸如指尖或铁笔。当客户端在点6604处点击时,在所描绘实例中,可示出具有对应链接的三个观察记录OR231142、OR4498和OR3124的列表6603。如果并且当客户端点击列表的观察记录的标识符中的一个时,所述观察记录的各种变量的值可显示在另一窗口或面板中,诸如所描绘实例中的OR内容面板6642。观察记录OR4498的输入变量IV1、IV2...IVn的值可示出为点击图66中示出的实例中的列表6603的对应链接的结果。

在图63-图66中,示出了与二进制分类模型的评估有关的显示视图和交互。在至少一些实施方案中,可支持允许MLS客户端探索并与其他类型的模型的评估结果交互的类似显示。图67示出根据至少一些实施方案的可通过交互式图形界面提供的多路分类模型的评估运行的结果的示例性视图。如所示,网页6700包括指示所显示数据对应于模型(“M-1615”)的特定评估运行的消息区域6702,其中特定数据组“EDS3”用作模型的输入。示出了评估运行的4路分类的增强混淆矩阵6770。对于四个类“类1”至“类4”,实际或真实填充量(和对应的实际百分比)在标记为6772的列中示出。这四个类在本文可集体称为“非默认类”。

在所描绘实施方案中,模型“M-1615”基于至少两个因素将观察记录分类成五个类(四个非默认类“类1”至“类4”以及标记为“无”的默认类):(a)任何给定观察记录属于四个非默认类中的任一个的预测概率,以及(b)用于将记录放置到非默认类而不是默认类中的最小预测概率阈值(MPPT)。对于评估数据组EDS3的每个观察记录,可计算记录属于每个非默认类的的各自概率。如果四个预测概率中的任何一个超过MPPT,那么记录可放置到对应类别中。例如,考虑这种情境:其中MPPT被设置为25%,并且模型预测给定记录OR1属于四个非默认类的概率是67%(“类1”)、35%(“类2”)、2%(“类3”)和6%(“类4”)。在这种情况下,OR1将放置在“类1”中,因为67%超过了MPPT值25%。如果例如使用滑块6750将MPPT改变为70%,那么OR1将相反放置在“无”类中,因为67%小于70%,并且用户将能够地查看矩阵6770中动态更新的改变。在至少一些实施方案中,默认或提议的MPPT值可由MLS设置为(1/(非默认类的数量))(例如,对于四个非默认类,模型将提议1/4或25%作为MPPT)。因此,MPPT可被认为是多路分类模型的预测解释阈值(PIT)的实例。

在4×5预测百分比矩阵6775中示出了放置在五个分类中的每一个中的每个类的观察的百分比。在所描绘实例中,如列6772中指示的,在10000个总观察中,2600个观察记录实际上在“类1”中,而模型预测总共3176个观察记录属于“类1”如在区域6780中指示的。在实际属于“类1”的2600个观察中,95%被正确地预测为属于“类1”,1%被不正确地预测为属于“类2”,1%属于“类3”,3%属于“类4”,并且0%属于“无”,在MPPT的当前值的情况下。在各种实施方案中,除了图67中示出的矩阵元素之外,可使用与图63中示出的技术类似的技术指示其他度量(诸如预测的整体准确度),例如,可提供与多路分类有关的一组核心度量或用于查看高级度量的链接。在一些实施方案中,用户可能够为不同类指定各自的MPPT,并且可能够动态地查看那些变化的影响。在至少一个实施方案中,矩阵元素可以是颜色编码的,例如,随着百分比更接近100%,对应元素的颜色或背景可设置为更接近深绿色,并且随着百分比更接近0%,对应元素的颜色或背景可设置为更接近亮红色。

在一些实施方案中,MLS可提供交互式图形显示器,以使得用户能够精确地定义或选择将如何定义回归模型的预测误差,和/或探索针对所选择误差容限阈值的预测误差的分布。图68示出根据至少一些实施方案的可通过交互式图形界面提供的回归模型的评估运行的结果的示例性视图。如所示,网页6800包括指示所显示数据对应于模型(“M-0087”)的特定评估运行的消息区域6802,其中特定数据组“EDS7”用作模型的输入。在页面6800的右侧,为客户端提供了若干不同选项来选择最感兴趣的误差定义,并且提供区域6812中的滑块S1以指示将用于在图6800中显示误差分布的误差容限阈值。当前已经选择输出变量的预测值与真值之间的差的绝对值作为误差定义(如区域6804中的所选择单选按钮控件指示的)。滑块S1当前定位成指示具有不大于60(鉴于区域6804的当前误差定义的最大可能误差为600)的值的误差是可容忍的。在图6820中,示出了针对真值的不同范围的可接受预测(即,当前由滑块S1指示的容限极限内的预测)和超容限预测的分布。当滑块S1向左或向右移动时,可接受预测6868与超容限预测6867之间的边界可改变。如果客户端希望使用不同的误差定义,那么若干选择是可用的。例如,通过选择区域6806中的单选按钮而不是区域6804中的按钮,客户端可将误差定义为真值与预测值之间的(非绝对)算术差,指示预测误差的方向对客户端很重要。使用区域6808中的单选按钮,误差的方向及其相对于真值的值都可包括在误差定义中。一些用户可希望指示他们自己的误差定义,这可通过选择区域6810中的单选按钮并点击所提供链接来完成。当客户端改变误差的定义时,在至少一些实施方案中,区域6812的错误容限滑块标度中的最大误差也可相应改变。使用图68中示出种类的交互式控件,MLS客户端可能够针对其特定回归问题选择最适当的误差定义,并且还(基于它们的误差容限水平)确定预测最大和最小误差量的输出值的范围。在一些实施方案中,还可或替代地显示回归模型的其他类型的交互式可视化。。

图69是示出根据至少一些实施方案的可在实现使得客户端能够基于探索评估结果修改预测解释设置的交互式图形界面的机器学习服务处执行的操作的方面的流程图。如元素6901所示,例如响应于通过编程接口从客户端接收的请求,可在机器学习服务处训练特定模型M1。模型可针对给定观察记录组的每个观察记录计算一个或多个输出变量的值,诸如OV1。如元素6904所示,可进行评估运行ER1以获得给定评估数据组的每个记录的各自OV1值。

可生成表示评估运行ER1的结果的至少所选择子集的数据组DS1,用于通过交互式图形显示器显示(元素6907)。针对其获得DS1的交互式显示器可包括各种控制元件,诸如连续变化滑块元件和/或离散变化元件,所述元件可用于改变一个或多个预测相关设置,诸如分类截止值和/或各种其他类型的预测解释阈值。对应于ER1的多个不同数据元素中的任一个可被包括在数据组DS1中用于显示,诸如OV1或其他输出或输入变量的统计分布、一个或多个预测质量度量(诸如(在二进制分类模型评估的情况下)真阳性、假阳性、真阴性和假阴性的数量和/或百分比)以及预测解释阈值的至少一个提议的或默认值。在所描绘的实施方案中,数据组DS1可传输到将在其上显示图形界面的装置(例如,具有web浏览器或安装的独立GUI工具的客户端拥有的计算装置)(元素6910)。

基于用户对图形界面的一个或多个交互式控件的操纵,可确定特定预测解释阈值(PIT1)的目标值,诸如二进制分类的截止值(元素6913)。在一些实施方案中,可在正显示图形的计算装置处检测控件的操纵(例如,可使用鼠标、铁笔或指尖来执行),并且可例如使用类似于早前描述的那些API的一个或多个API的调用将所述操纵传送回到MLS的一个或多个其他部件(诸如后端服务器)。在其他实施方案中,控件的操纵的指示不需要传输到后端MLS服务器;相反,更新显示所需的一些或全部计算可在显示图形界面的装置上执行。可计算由控件的操纵引起的对DS1的一个或多个其他元素的改变(元素6916),并且当用户移动控制元件时,可实时地发起对显示的对应改变。在一个实现中,可在执行诸如滑块的图形控制元件的位置的改变时跟踪它们,并且可尽可能快地将各种度量的对应的更新值传输到显示装置,以给予用户对图形控制元件的操纵的瞬时或接近瞬时响应的印象。在所描绘实施方案中,如果并且当用户指示将保存PIT1的特定目标值,例如用于在模型的随后运行期间使用,那么可将目标值存储在MLS储存库中(元素6919)。在一些实施方案中,可针对模型、用户、评估数据组和/或使用案例的不同组合保存不同的PIT1值,例如,可使用元组(模型ID,评估数据组ID,用户/客户端ID,使用案例ID)的某一组合索引包含所选择PIT值的储存库记录。

可使用所保存PIT1值来生成一个或多个评估后模型执行的结果,并且将所述结果提供给感兴趣的客户端(元素6922)。在一些实施方案中,所保存PIT1值可用于其他评估以及或者代替用于评估后运行。在一个实施方案中,也可通过交互式图形界面的元件接收训练模型的初始请求(或重新训练/重新评估模型的请求)。在一些实施方案中,图形界面还可显示与模型评估和/或代表客户端执行的其他活动有关的警报或信息消息,诸如在给定评估运行期间检测到的异常或不寻常结果的列表。在一个实施方案中,例如,MLS可检查评估数据组的输入变量的统计分布与训练数据组中的相同变量的统计分布多么地不同,并且如果发现分布为基本上不同则显示警报。在至少一些实施方案中,若干不同评估运行的结果可显示在界面的单个视图中(例如,通过模拟其中在不同“深度”处示出不同评估运行的结果的3维显示器或者通过根据不同评估运行计算平均结果)。

在至少一些实施方案中,代替或除了图63-图68中示出的网页种类之外,诸如命令行工具或应用编程接口(API)的其他类型的交互式接口可用于实现类似目标。因此,例如,MLS客户端可通过命令行工具或API调用提交一个或多个请求,以接收各种类型的模型的评估运行的预测结果的分布的指示,包括分类和/或回归模型。客户端可与接口交互(例如,提交新命令或调用不同的API)以指示对预测解释阈值的改变,并且可相应(例如,以文本格式)显示对各种度量的对应改变。类似地,客户端可使用API或命令行来指示特定解释阈值将被保存以供在模型的随后运行中使用。在一些实施方案中,可使用文本符号提供图63-图68中示出的至少一些图形显示的近似,例如,可使用ASCII字符的组合显示图的相对粗略版本。在一些实施方案中,可使用基于语音和/或姿势的MLS接口。

检测复本观察记录

对于若干类型的机器学习问题,如前所述,观察记录的集合可分裂成若干类型的数据组用于模型开发和使用的各自阶段。例如,一些观察可包括在用于生成模型的训练数据组中,并且其他观察可包括在将用于确定模型的预测的质量的一个或多个测试或评估数据组中。(对于关于复本检测的以下论述,术语“测试数据组”和“评估数据组”在本文中可同义使用;类似地,确定模型的预测的质量或准确度的过程可被称为模型的“评估”或“测试”)。在训练模型之后使用测试数据组的主要目标之一是确定训练模型能够如何良好地推广到训练数据之外:也就是说,训练模型可如何准确地预测不包括在训练数据组中的“新”观察的输出变量值。如果测试数据组碰巧包括也在训练数据组中的许多观察,那么使用测试数据组进行的预测的准确度似乎可能很高,这主要是由于训练数据组与测试数据组之间的观察记录的重复,而不是因为模型的优越泛化能力。

在本文描述种类的大规模机器学习服务(MLS)处,这些数据组中的每一个可能潜在地包括数百万个观察记录,并且有时可能是这种情况:至少一些观察记录可能从训练数据组“泄漏”到对应测试数据组,例如,由于在训练数据组和测试数据组之间分裂数据时的误差,或者由于无意使用类似或重叠数据文件用于训练阶段和测试阶段。当模型的训练阶段和评估阶段在时间上分开(例如,按小时、天或周算)和/或在不同组的MLS服务器上执行时,这种数据泄漏的概率甚至可能更大,如给定训练数据组的大小和MLS的分布和并行架构可是这种情况。为了避免MLS客户通过无意地使用重叠或相同的数据组来训练和评估而浪费大量时间和/或金钱的情境,在至少一些实施方案中,MLS可对观察记录的有效检测提供支持,所述观察记录是(或至少可能是)跨数据组的复本。在没有这种支持的情况下,客户可等待直到测试或评估运行结束、检查运行的结果,并且随后才能够做出关于测试数据是否包括训练数据观察记录的主观判断(例如,如果结果看起来意外地准确)。使用如下所述的复本检测能力,在给定数据组DS1(诸如模型的测试数据组)的处理期间,可相对早地告知MLS客户DS1是否有高概率包含也在第二数据组DS2(诸如模型的训练数据组)中的记录,并且可因此能够避免浪费资源。在至少一个实现中,可针对至少一些数据组默认地执行这种复本检测,而不需要显式客户端请求。

图70示出根据至少一些实施方案的可利用机器学习数据组的空间有效表示来确定机器学习服务处一个数据组是否可能包括另一数据组的复本观察记录的示例性复本检测器。在所描绘实施方案中,可在MLS处识别将用于训练特定机器学习模型7020的训练数据组7002,例如由于客户端调用MLS的编程接口,诸如早前描述的“createModel”接口。稍后,代表其训练模型的客户端可能希望具有使用测试数据组7004评估的模型7020的质量,或者MLS本身可识别将用于评估的测试数据组7004。数据组7002和7004中的每一个可包括某一数量的观察记录(OR),诸如训练数据组7002的OR Tr-0、Tr-1和Tr-2,以及测试数据组7004的OR Te-0和Te-1。任一数据组的OR中的单独一个可包括某一数量的输入变量(IV)诸如IV1、IV2等等以及一个或多个输出变量OV的各自值。在至少一些实施方案中,并非任一数据组的所有OR可能必须包含所有IV的值,例如,一些输入变量的值可能在一些观察记录中遗漏。在至少一些情况下,在使用训练数据组7002训练模型7020时,可能不一定已识别测试数据组7004。

在所描绘实施方案中,可构造可用于复本检测的训练数据组的至少一个空间有效的替代表示7030,诸如布隆过滤器。在一些实施方案中,可构造其他类型的替代表示,诸如跳过列表或商过滤器。为了构造给定空间有效表示7030,在一些实施方案中可使用复本的对应定义7035,诸如指示当将OR指定为另一个的复本时是否将考虑观察记录的所有变量或者将是否考虑变量的某一子集的定义。图72中提供并且以下更详细地论述可适用于给定数据组的不同复本定义7035的实例。在一些实施方案中,可与模型的训练并行地生成和存储替代表示,使得例如,对于(a)训练模型和(b)创建和存储替代表示7030可能仅需要单遍通过训练数据组7002。在一些实现中,替代表示可比训练数据组本身所占据的存储装置或存储器少得多(例如,小数量级)。

在所描绘实施方案中,MLS的概率复本检测器7036可使用替代表示7030来进行关于测试数据组7004的给定OR Te-k的以下确定中的一个:(a)Te-k不是训练数据组的任一OR的复本或(b)Te-k具有作为训练数据组的OR的复本的非零概率。也就是说,虽然概率复本检测器7036可能不能提供关于复本的存在的100%确定性,但检测器可能够以100%确定性确定给定测试数据组OR不是复本。在一些实施方案中,概率复本检测器7036可能够估计或计算与将给定OR标记为复本相关联的置信水平或确定性水平。

复本检测器7036可检查测试数据组7004的某一数量的OR,并且获得所检查OR的一个或多个复本度量7040。取决于已被识别为可能或可能复本的OR的数量或分数,在一些实施方案中,复本度量可本身在本质上是概率性的。例如,它可表示语句“X%的测试组观察记录具有大于或等于Y%的为复本的各自概率”的逻辑等效物。在至少一个实施方案中,可向客户端提供关于一个或多个观察记录是否为复本的置信水平的指示。当然,如果没有发现所检查测试组OR具有为复本的非零概率,那么度量7040可以100%确定性指示所检查测试数据是无复本的。当获得复本度量时,在一些实施方案中,复本检测器7036还可考虑与正使用的特定替代表示相关联的假阳性复本检测的预期比率。例如,如果用作替代表示7030的布隆过滤器具有8%的预期假阳性率,并且检测到的复本的分数也是8%(或更小),那么复本度量可简单地指示所识别可能复本的数量在可接受范围内。在至少一些实施方案中,可基于诸如训练数据组的大小、替代表示的复本预测的期望假阳性率等等的因素选择在生成替代表示中使用的各种参素(例如,用于布隆过滤器的位的数量和/或用于生成布隆过滤器的散列函数的数量和类型)。

在至少一些实施方案中,如果复本度量7040满足阈值标准,例如,如果多于k%的测试数据具有为复本的非零概率,那么可由MLS实现一个或多个复本响应7045。在不同实施方案中可进行多个不同响应动作中的任一个,例如,可向客户端发送指示复本的可能性的警告消息,可能复本可从测试数据组7004中移除或删除,涉及使用测试数据的机器学习作业可能被暂停、取消或放弃等等。在至少一些实施方案中,由MLS采取的响应动作可取决于复本度量7040。例如,如果发现测试数据组的大部分是无复本的,那么可向客户端传输指示潜在复本的(小)部分的警告消息,而如果发现大部分测试数据组为潜在复本,那么模型7020的评估可被暂停或停止,直到客户端解决了问题。在一些实施方案中,可使用测试数据组7004与模型7020的评估并行地执行复本分析,使得可能仅需要单遍通过测试数据组。在一个实施方案中,客户端可指示(例如,通过MLS的编程接口)将由MLS使用以确定是否满足需要响应动作的阈值准则的一个或多个参数(或其他形式的指导)。例如,客户端可指示,如果测试数据组的随机选择的观察记录是复本的概率超过P1,那么应采取特定响应动作。MLS可随后将这种高级指导转换成将用于测试数据组的特定数值阈值(例如,仅当可用的Y个测试数据组记录中的至少X个已被识别为复本时才采取响应动作)。在此类情境中,客户端将不一定必须知道低级细节,诸如测试数据组记录的总数或将触发响应的复本的实际数量。在一些实施方案中,客户端可以编程方式指定将针对一个或多个复本度量阈值实现的响应和/或阈值本身的低级细节。

在至少一个实施方案中,复本检测器7036可在发起响应7045的生成之前不等待处理整个测试数据组7004,例如,如果从具有一百万个OR的测试数据组检查的前100个观察记录中多于80个具有为复本的非零概率,那么可生成响应而不必等待检查剩余的OR。如以下所述,在一些实施方案中,图72中示出的技术可用于识别给定数据组内(例如,在训练数据组本身内、在测试数据组本身内,或在将划分为训练数据组和测试数据组的分裂前数据组内)的可能复本,或者跨任何期望对的数据组识别可能复本。因此,在此类实施方案中,技术的使用可不仅限于检查测试数据组是否可包含训练数据观察记录的复本。注意,在一个实施方案中,至少对于一些数据组,用于复本检测的替代表示不需要一定使用比数据组的原始表示少的存储装置(或更少的存储器)。

图71a和图71b集体示出根据至少一些实施方案的用于机器学习服务处的复本观察记录的概率检测的布隆过滤器的使用的实例。在所描绘情境中,包括16位(位0至位15)的布隆过滤器7104示出为从包括OR 7110A和7110B的训练数据组构造。在所描绘实施方案中,为了构造布隆过滤器,给定OR 7110可提供作为对一组散列函数H0、H1和H2中的每一个的输入。随后可例如使用模函数将每个散列函数的输出映射到过滤器7104的16位中的一个,并且那个位可被设置为1。例如,关于OR 7110A,使用散列函数H0将布隆过滤器的位2设置为1,使用散列函数H1将位6设置为1,并且使用散列函数H2将位9设置为1。关于OR 7110B,位4、位9(已设置为1)和位13被设置为1。如在OR 7110A和7110B都映射到的位9的情况下,在布隆过滤器内的给定位置处存在1可由针对不同OR生成的散列值(或者甚至由使用不同散列函数针对相同OR生成的散列值)造成。这样,在过滤器的任何给定位位置组处1的存在可能不唯一地或必然地暗示在用于构造过滤器的数据组中存在对应OR。布隆过滤器7104的大小可远小于用于构建过滤器的数据组,例如,512位的过滤器可用作几兆字节数据的替代表示。

如图71b中指示的,相同的散列函数可应用到测试数据组OR7150(例如,7150A和7150B)以便检测关于训练数据组的可能复本。如果特定测试数据组OR 7150映射到包含至少一个零的一组位,那么复本检测器可确定地确定OR不是复本。因此,OR 7150A映射到位3、位6和位10(分别使用散列函数H0、H1和H2),在过滤器已使用整个训练数据组完全填充之后,其中的两个(位3和位10)碰巧在布隆过滤器7104中包含零。因此,在复本检测分析的结果7190中,OR 7150被指示为不是复本。相比之下,OR 7150B映射到位4、位9和位13,所有这些都碰巧在完全填充的布隆过滤器中包含1。因此,在结果7190中,OR 7150可被指示为可能的复本,具有FP1的某一基础假阳性率。假阳性率FP1可以是布隆过滤器的大小(使用的位数,在这种情况下为16)、所使用的散列函数的数量和/或类型和/或用于构建过滤器的观察记录的数量的函数。在一些实施方案中,可通过布隆过滤器生成过程的可调参数7144来选择过滤器大小以及所使用散列函数的数量和类型。例如,可基于训练数据组的观察记录的估计或预期数量、观察记录的估计或预期大小等等来选择不同的参数值。其他类似参数可支配从诸如商过滤器或跳过列表的数据组的其他类型的替代表示所预期的假阳性率。注意,示出的布隆过滤器7104的大小(16位)不旨在表示优选或所需的大小;可使用任何期望数量的位,并且在不同实施方案中可采用任何期望数量的任何优选类型的散列函数。例如,一些实现可使用MurmurHash函数,而其他实现可使用Jenkins散列函数、Fowler-Noll-Vo散列函数、CityHash函数或者此类散列函数的任何期望的组合。

在一些实施方案中,可基于诸如以下因素在MLS处选择诸如过滤器的大小和/或所使用的散列函数的数量和类型的参数:训练数据组的估计或实际大小、期望的假阳性率、不同散列函数的计算需求、不同散列函数的随机化能力等等。在不同OR可占用不同空间量的至少一个实施方案中,MLS可通过检查前几个记录并且将训练数据组文件的文件大小除以前几个记录的平均大小来估计训练数据组中的观察记录的数量。此方法可使得MLS能够例如在模型也被训练时在单遍通过训练数据组时生成布隆过滤器7104,替代需要一遍来确定OR的精确数量并随后需要另一遍来构造过滤器。

在至少一些实施方案中,可使用用于复本检测的不同数学技术来实现关于复本的不同不确定性水平。例如,在一个实施方案中,可使用密码强度散列函数来生成每个测试数据组OR的签名,并且可使用对测试数据使用相同散列函数生成的签名来以非常高准确率检测复本。当然,与可用于生成布隆过滤器的较弱散列函数相比,使用密码散列函数可能在计算方面是昂贵的,并且使用密码散列实现的空间效率可能不如使用布隆过滤器可实现的那么大。通常,MLS可能够利用与所选择复本检测技术相关联的资源使用或成本来权衡复本检测的准确度,例如,随着准确度提高,技术的资源需求通常也可上升。注意,至少在一些实施方案中和/或对于一些数据组大小,可选择确定性复本检测技术而不是概率技术,例如,针对可能复本测试的测试数据OR可与训练数据组的原始OR而不是使用空间有效表示进行比较。

在生成数据组的替代表示之前,诸如图71a和图71b中示出的布隆过滤器,在一些实施方案中,MLS可确定将应用的复本定义,即,在声明O1为不同OR O2的可能或实际复本时,应当精确地考虑ORO1的什么属性。图72示出根据至少一些实施方案的可在机器学习服务的复本检测器处使用的替代复本定义的实例。在所描绘实施方案中,示出了三个示例性复本定义DD1、DD2和DD3。根据DD1,当决定给定OR是否是另一个的复本时,将考虑包括在训练数据组7210的任何OR中的所有输入变量和输出变量。根据DD2,将考虑所有输入变量,但没有输出变量。根据DD3,只有输入变量的严格子集(例如,所示情境中的IV1和IV3)需要匹配以使OR被认为是复本。在一些实施方案中,例如基于它们的机器学习问题的语义和/或基于它们对不同变量的相对重要性的理解,可由MLS客户端选择复本的这些和其他定义。例如,考虑包括在训练数据组7210中的输入变量中的一个IV-k稀疏地填充的情境,使得大部分OR甚至不包含变量IV-k的值。在这种情境中,客户端可能希望将IV-k从用于确定复本的变量组中排除。在另一情境中,客户端可能不希望在考虑复本时包括输出变量,因为模型的预测完全基于输入变量。

在所描绘实施方案中,可基于所选择复本定义来创建训练组的不同替代表示。对于观察记录包括输入变量IV1、IV2、IV3和IV4以及输出变量OV的训练数据组7210,如果使用定义DD1,那么可使用所有五个变量(例如,作为对一组散列函数的组合输入)。如果使用DD2,那么可使用IV1、IV2、IV3和IV4来生成替代表示,并且可排除OV。如果使用DD3,那么仅IV1和IV3可用于交替表示。在一些实施方案中,MLS可决定并发使用多个复本定义,例如,可根据所使用的每个定义创建训练数据组7210的各自替代表示,并且可获得对应于每个定义的复本度量。

可基于所使用的定义和替代表示生成复本分析结果7260A、7260B和/或7260C。测试数据组7220的OR 7251碰巧在所有五个变量中匹配OR 7201。因此,所有三个结果7260A、7260B和7260C可将OR 7250A识别为具有某一非零概率的可能复本。OR 7252在所有输入变量中而不在输出变量中匹配OR 7201。因此,如果使用DD2或DD3,那么可将OR 7250B分类为可能复本,但如果使用DD1,那么不会将其分类为可能复本。最后,具有与训练组的OR 7202相同的IV1和IV3的值但在所有其他变量中不同的OR 7253仅当使用DD3时可被分类为可能复本,并且如果使用其他定义中的任一个时可被声明为非复本。

如前所述,在一些实施方案中,MLS可包括多个不同的服务器,在所述服务器上可并行地调度机器学习作业。图73示出根据至少一些实施方案的机器学习服务处的大数据组的复本检测的并行方法的实例。在所描绘实施方案中,训练数据组7302可被划分为四个分区P0、P1、P2和P3,并且可对应于每个分区生成和调度各自的布隆过滤器创建(BFC)作业。可分别针对分区P0至P3调度BFC作业J0至J3。在各种实施方案中,作业J0至J3也可用于其他任务,诸如训练模型,并且不必限于创建布隆过滤器或其他替换表示。在至少一些实施方案中,布隆过滤器或其他替换表示的创建可被认为是特征处理变换的一个实例,并且可使用与前述配方语言类似的配方语言来请求表示的生成。在所描绘示例性情境中,每个BFC作业可产生分区级布隆过滤器,诸如BF0、BF1、BF2或BF3。可随后例如使用简单的布尔“或”运算来逻辑地组合或聚集分区级过滤器以便产生完整的布隆过滤器BF-all。

在所描绘实施方案中,BF-all随后可用于并行化复本检测,例如通过针对训练数据组7310的各自分区P0-测试、P1-测试和P2-测试调度三个复本检查作业J4、J5和J6。在一些实施方案中,不同的MLS服务器(诸如S0至S7)可用于作业J0-J6中的至少一些。在图73示出的实例中,其中四个作业被调度用于布隆过滤器生成,并且三个作业被调度用于复本检查,在一些情况下,布隆过滤器生成操作的并行度(例如,被调度的不同作业的数量和/或使用的不同服务器的数量)可不同于复本检查阶段的并行度。类似的并行化方法可与其他类型的复本检测算法一起使用,例如,对于不一定采用布隆过滤器的技术。

在迄今为止论述的大多数示例性复本检测情境中,已经考虑了两个数据组:第一数据组(诸如训练组),其中诸如布隆过滤器的替代表示首先被完全填充;针对复本检查其的第二数据组(诸如测试数据组)。在一些实施方案中,类似方法可用于检查给定数据组内的复本。图74示出根据至少一些实施方案的给定机器学习数据组内的概率复本检测的实例。如所示,在处理或分析数据组7410(其可以例如是训练数据组、测试数据组或将从中导出训练数据组和测试数据组的组合数据组)的特定过程期间,可逐渐填充数据组的空间有效表示7430。在例如按箭头7420指示的次序已经处理数据组7410的K个记录之后,构造中的替代表示7430可包含对应于K个处理的记录7422的条目。

当遇到数据组的第(K+1)个观察记录时,概率复本检测器7035可使用替代表示7430来确定记录是否表示相同数据组7410的已经处理的观察记录的复本。可使用前述种类的技术将新遇到的OR分类为可能复本或确认的非复本。在一些实施方案中,复本检测器可跟踪被分类为具有为复本的非零概率的OR,并且可包括提供给代表其处理数据组7210的客户端的数据组内复本检测结果7444中的列表。在其他实施方案中,复本检测器可采取其他动作,诸如简单地通知客户端关于可能的复本的数量,或者复本检测器可发起从数据组7210移除可能的复本。

图75是示出根据至少一些实施方案的可在实现观察记录的复本检测的机器学习服务处执行的操作的方面的流程图。如元素7501所示,MLS可根据某一选择的复本定义确定第一或目标观察记录组(例如,测试数据组)将针对关于第二或源观察记录组(例如,对应的训练数据组)被检查复本。在一些实施方案中,默认复本定义可能需要MLS在识别可能的复本时考虑源组的观察记录的所有输入和输出变量的值。在一些实施方案中,可使用其他复本定义,其中当确定复本时将排除一个或多个输出变量和/或一个或多个输入变量。在一些实施方案中,MLS的客户端可例如使用由MLS实现的编程接口来指示他们是否想对指定的数据组执行复本检测或将使用特定复本定义。

在所描绘实施方案中,如果识别了各种级别的复本,那么MLS还可确定将采取的各自响应动作(元素7504)。此类动作的实例可包括向客户端传送警告或警报消息,所述消息简单地指示潜在复本记录(即,为复本的概率为非零的目标数据组的那些观察记录)的数量或分数,提供疑似复本的列表,或者提供对与记录指定为复本相关联的确定性水平或置信水平的估计。在一个实现中,可提供与疑似为复本的单独观察记录相关联的各自置信水平。在一些实施方案中,响应动作可包括从目标数据组中移除可能复本,和/或提供移除复本对相关联模型的预测误差的影响的统计估计。在至少一个实施方案中,响应于对数据组内的潜在或可能复本的识别,MLS可暂停、放弃或取消涉及数据组的使用或以其他方式与数据组相关联的机器学习作业。在一些实施方案中,可针对各自的复本水平选择不同的响应,例如,如果复本的分数被估计为不在5%与10%之间,那么可生成警告,而如果复本集体小于目标数据组的2%,那么可简单地丢弃复本。在一些实施方案中,MLS客户端可指定它们想对可能复本的不同程度采取的动作类型。

如元素7507指示的,一个或多个MLS部件可例如与其他操作并行地生成可用于概率复本检测的源组的替代表示,所述其他操作涉及诸如模型的训练的源组的遍历(元素7507)。在各种实施方案中,可使用布隆过滤器、商过滤器、跳过列表、源记录的密码签名的列表或某一其他空间有效结构作为替代表示。为了生成替代表示,在至少一个实施方案中,MLS可首先重新格式化源数据组的观察记录中的至少一些,例如,在将观察记录馈送到用于生成布隆过滤器的散列函数之前,可针对一致性检查所述组变量分隔符,可从文本变量中移除后空白和前空白,可以统一方式格式化数值变量,等等。

在一些实施方案中,可任选地将替代表示存储在MLS制品储存库(诸如图1中示出的储存库120)中(元素7510),例如,作为与在通过源数据组的相同过程期间训练的模型相关联的添加制品。在给定模型可在其训练之后使用几小时、几周或几个月的一些实施方案中,替代表示可在选择持续时间内保留在储存库中。在至少一个实施方案中,MLS可跟踪替代表示上次用于复本检测的时间,并且如果在某个阈值时间间隔内未使用所述替代表示,那么所述替代表示可丢弃。

使用替代表示,MLS的复本检测器可确定目标数据组是否完全无复本,或者目标数据组的至少一些记录是否具有为复本的非零概率(元素7513)。可生成复本度量,指示例如疑似复本的数量或分数以及相关联的非零概率。复本度量可考虑与替代表示相关联的基线假阳性复本预测率。例如,对于布隆过滤器,假阳性率可取决于布隆过滤器的大小(位数)、所使用的散列函数的数量和/或类型和/或用于填充过滤器的观察记录的数量。在一个实施方案中,例如,复本度量可至少部分地基于Num_Probable_Duplicates_Found(被识别为可能复本的观察记录的数量)和Num_Expected_False_Positives(预期被错误地分类为复本的观察记录的数量)之间的差。在至少一些实施方案中,可使用如图73所示的多个MLS作业以并行或分布式方式执行替代表示的生成、针对潜在复本检查测试数据组或这两个任务。如果复本度量超过阈值,那么在所描绘实施方案中,可执行对应的响应动作(例如,在对应于元素7504的操作中识别的动作中的一个或多个)(元素7516)。

注意,在各种实施方案中,除了图9a、图9b、图10a、图10b、图17、图25、图32、图39、图48、图54、图55、图61、图69和图75的流程图中示出的操作之外的操作可用于实现上述机器学习服务的至少一些技术。示出的一些操作可在一些实施方案中不实现、可按不同次序实现或者并行地而不是顺序地实现。例如,关于图9b,在一些实施方案中,可在确定工作负载策略之后执行关于客户端的资源配额是否已用尽的检查,而不是在确定策略之前执行。

使用案例

上述用于提供网络可访问、可缩放机器学习服务的技术对于多种多样的应用可能是有益的,所述机器学习服务面向在机器学习工具和方法中具有广泛的专业水平的用户。几乎每个商业组织或政府实体现今能够收集关于其操作的各个方面的数据,并且可通过这种服务来促进所收集的数据的不同组分与组织的目标之间的有意义统计和/或因果关系的发现。MLS的用户可不必关心供应机器学习工作流的各种任务所需的特定资源的细节,诸如数据净化、输入过滤、将净化的数据变换成可馈入模型的格式、复本观察的检测或模型执行。可将通过多年的经验开发的关于不同数据净化方法、变换类型、变换的参数设置以及模型的最佳实践并入到MLS的编程接口(诸如易于学习且易于使用的API)中,例如,以用户甚至不需要指定的默认设置的形式。MLS的用户可提交对于各种机器学习任务或操作的请求,其中一些可取决于其他任务的完成,而不必手动地管理调度或监视任务的进程(其中一些可能需要几小时或几天,这取决于任务的性质或涉及的数据组的大小)。在一些实施方案中,可向用户提供模型评估和其他执行的交互式图形显示,使得用户能够做出关于解释相关设置(诸如分类截止值)的明智决定。在一些实施方案中,可默认地执行测试数据组或评估数据组与对应训练数据之间的潜在复本的检测,使得MLS的客户端能够避免在基于不可能提供对模型的泛化能力的洞察的数据的评估上浪费资源。

对应于多种类型的实体(诸如模型、数据源或配方)的机器学习对象的逻辑集中式储存库可使得多个用户或协作者能够在各种数据组上共享和重用特征处理配方。专家用户或模型开发人员可通过注册第三方或定制库和函数来添加MLS的核心功能。MLS可支持需要增强安全性的某些类型的操作的隔离执行。MLS可用于并且可并入针对覆盖监督式和非监督式学习的各种问题域优化的技术,所述问题域诸如欺诈检测、金融资产价格预测、保险分析、天气预测、地球物理分析、图像/视频处理、音频处理、自然语言处理、医学和生物信息学等等。诸如修剪深度优先决定树、通过有效地修剪特征权重来限制线性模型的大小或者执行并发的分位数分仓的特定优化技术可在一些情况下默认地实现,而MLS客户端甚至不知道使用技术。对于其他类型的优化,诸如训练时间资源使用与预测时间资源使用之间的优化,客户端可与机器学习服务交互以决定相互可接受的特征处理提议。

说明性计算机系统

在至少一些实施方案中,实现机器学习服务的一个或多个部件(包括控制平面部件,诸如API请求处理机、输入记录处理机、配方验证器和配方运行时间管理器、特征处理管理器、计划生成器、作业调度器、制品储存库等,以及数据平面部件,诸如用于模型生成/训练、实现决定树优化、模型修剪和/或基于类别的采样、生成和/或图形地显示评估结果等等的MLS服务器)的服务器可包括通用计算机系统,所述通用计算机系统包括或被配置来访问一个或多个计算机可访问介质。图76示出此类通用计算装置9000。在示出的实施方案中,计算装置9000包括通过输入/输出(I/O)接口9030耦接到系统存储器9020(其可包括非易失性存储器模块和易失性存储器模块两者)的一个或多个处理器9010。计算装置9000还包括耦接到I/O接口9030的网络接口9040。

在各种实施方案中,计算装置9000可以是包括一个处理器9010的单处理器系统,或包括若干处理器9010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器9010可以是能够执行指令的任何合适处理器。例如,在各种实施方案中,处理器9010可以是实现各种指令集架构(ISA)中任一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC、或MIPS ISA或任何其他合适ISA。在多处理器系统中,每一个处理器9010通常可以但不一定实现相同的ISA。在一些实现中,代替或者除了常规处理器之外,可使用图形处理单元(GPU)。

系统存储器9020可被配置来存储可由处理器9010访问的指令和数据。在至少一些实施方案中,系统存储器9020可包括易失性部分和非易失性部分两者;在其他实施方案中,可仅使用易失性存储器。在各种实施方案中,系统存储器9020的易失性部分可使用任何合适的存储器技术来实现,所述存储器技术诸如静态随机存取存储器(SRAM)、同步动态RAM或任何其他类型的存储器。对于系统存储器的非易失性部分(例如其可包括一个或多个NVDIMM),在一些实施方案中可使用基于闪存的存储器装置,包括NAND闪存装置。在至少一些实施方案中,系统存储器的非易失性部分可包括电源,诸如超级电容器或其他电力存储装置(例如,电池)。在各种实施方案中,基于忆阻器的电阻性随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或者各种类型的相变存储器(PCM)中的任一种可至少用于系统存储器的非易失性部分。在示出的实施方案中,实现一个或多个期望功能的程序指令和数据(诸如上文所述的那些方法、技术以及数据)显示成作为代码9025和数据9026存储在系统存储器9020内。

在一个实施方案中,I/O接口9030可被配置来协调处理器9010、系统存储器9020以及装置中的任何外围装置之间的I/O流量,所述外围装置包括网络接口9040或其他外围接口,诸如各种类型持久性和/或易失性存储装置。在一些实施方案中,I/O接口9030可执行任何必需协议、时序或其他数据变换以将来自一个部件(例如,系统存储器9020)的数据信号转换成适合于由另一个部件(例如,处理器9010)使用的格式。在一些实施方案中,I/O接口9030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变型,例如。在一些实施方案中,I/O接口9030的功能可分到两个或更多个单独的部件中,诸如北桥和南桥,例如。另外,在一些实施方案中,I/O接口9030的一些或所有功能,诸如到系统存储器9020的接口,可直接并入处理器9010中。

网络接口9040可被配置来允许数据在计算装置9000与附接到一个或多个网络9050的其他装置9060(例如像如图1至图75中所示出的其他计算机系统或装置)之间进行交换。在各种实施方案中,网络接口9040可支持通过任何合适有线或无线通用数据网络(例如像以太网网络类型)进行通信。另外,网络接口9040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤通道SAN)或通过任何其他合适类型的网络和/或协议进行通信。

在一些实施方案中,系统存储器9020可以是计算机可访问介质的一个实施方案,所述计算机可访问介质被配置来存储如上文针对图1至图75所述的用于实现对应方法和设备的实施方案的程序指令和数据。然而,在其他实施方案中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问介质可包括非暂时存储介质或存储器介质,诸如磁性或光学介质,例如通过I/O接口9030耦接到计算装置9000的磁盘或DVD/CD。非暂时计算机可访问存储介质还可包括可作为系统存储器9020或另一类型存储器而被包括在计算装置9000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。另外,计算机可访问介质可包括传输介质或信号,诸如通过通信介质(网络和/或无线链接)传送的电信号、电磁信号或数字信号,诸如可通过网络接口9040来实现。多个计算装置中的部分或全部(诸如图76中所示出的那些)可用于实现各种实施方案中的所描述功能;例如,在各种不同的装置和服务器上运行的软件部件可协作来提供功能性。在一些实施方案中,所描述功能性的部分可使用存储装置、网络装置或专用计算机系统来实现,除了或者代替使用通用计算机系统来实现。如本文所使用的术语“计算装置”是指至少所有这些类型的装置,并且不限于这些类型的装置。

本公开的实施方案可以鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

通过在提供商网络的网络可访问机器学习服务处实现的一组编程接口中的特定编程接口从客户端接收执行与实体类型的实例相关联的特定操作的第一请求,其中所述实体类型包括以下各项中的一个或多个:(a)将用于机器学习模型的数据源,(b)将从特定数据源计算的一组统计,(c)将对指定数据组执行的一组特征处理变换操作,(d)采用所选择算法的机器学习模型,(e)与机器学习模型相关联的别名,或者(f)特定机器学习模型的结果;

将对应于所述第一请求的作业对象插入所述机器学习服务的作业队列中;

向所述客户端提供所述第一请求已被接受用于执行的指示;

根据针对所述第一请求识别的第一工作负载分布策略确定将用于执行所述特定操作的第一组提供商网络资源;

在所述第一请求中指示的所述特定操作的完成之前从所述客户端接收执行取决于所述特定操作的结果的第二操作的第二请求;

将对应于所述第二请求的第二作业对象插入所述作业队列中,其中所述第二作业对象包括所述第二操作对所述特定操作的结果的依赖性的指示;

在发起所述第二操作的执行之前,向所述客户端提供所述第二请求已被接受用于执行的第二指示;以及

响应于确定所述特定操作已成功完成,在第二组提供商网络资源上调度所述第二操作。

2.如条款1所述的系统,其中所述特定操作包括以下各项中的一个或多个:(a)创建所述实例,(b)用于获得所述实例的一个或多个属性的各自值的读取操作,(c)修改所述实例的属性,(d)删除所述实例,(e)搜索操作,或者(f)执行操作。

3.如条款1-2中任一项所述的系统,其中所述特定操作包括分配可由所述机器学习服务的指定组用户使用的别名以执行特定机器学习模型,其中所述别名包括所述特定机器学习模型的指针,其中所述指定组用户中的至少一些用户不被允许修改所述指针。

4.如条款1-3中任一项所述的系统,其中所述组编程接口包括代表性状态传送应用编程接口。

5.如条款1-4中任一项所述的系统,其中所述特定操作包括创建特定数据源,其中所述一个或多个计算装置进一步被配置来:

生成关于所述特定数据源的数据记录的一个或多个变量的一组特定统计,而不从所述客户端接收对所述组特定统计的请求;以及

向所述客户端提供所述组特定统计的指示。

6.一种方法,其包括:

通过一个或多个计算装置执行:

通过在机器学习服务处实现的一组编程接口中的特定编程接口从客户端接收执行与实体类型的实例相关联的特定操作的第一请求,其中所述实体类型包括以下各项中的一个或多个:(a)将用于生成机器学习模型的数据源,(b)将对指定数据组执行的一组特征处理变换操作,(c)采用所选择算法的机器学习模型,或者(d)与机器学习模型相关联的别名;

将对应于所述第一请求的作业插入所述机器学习服务的作业队列中;

在所述第一请求中指示的所述特定操作的完成之前从所述客户端接收执行取决于所述特定操作的结果的第二操作的第二请求;

将对应于所述第二请求的第二作业对象插入所述作业队列中,其中所述第二作业对象包括所述第二操作对所述特定操作的结果的依赖性的指示;以及

响应于确定所述特定操作已成功完成,调度所述第二操作。

7.如条款6所述的方法,其中所述特定操作包括以下各项中的一个或多个:(a)创建所述实例,(b)用于获得所述实例的一个或多个属性的各自值的读取操作,(c)修改所述实例的属性,(d)删除所述实例,(e)搜索操作,或者(f)执行操作。

8.如条款6-7中任一项所述的方法,其中所述特定操作包括分配可由所述机器学习服务的指定组用户使用的别名以执行特定机器学习模型,其中所述别名包括所述特定机器学习模型的指针,其中所述指定组用户中的至少一些用户不被允许修改所述指针。

9.如条款6-8中任一项所述的方法,其中所述特定操作包括创建特定数据源,其还包括通过所述一个或多个计算装置执行:

生成关于所述特定数据源的数据记录的一个或多个变量的一组特定统计,而不从所述客户端接收对所述组特定统计的请求;以及

向所述客户端提供所述组特定统计的指示。

10.如条款9所述的方法,其还包括通过所述一个或多个计算装置执行:

选择将用于生成所述组特定统计的所述特定数据源的所述数据记录的子集。

11.如条款6-9中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

针对所述第一请求识别工作负载分布策略,其中所述识别包括以下各项中的一个或多个:(a)确定处理所述特定操作的数据组的遍数,(b)确定用于处理所述特定操作的数据组的并行化水平,(c)确定将用于终止所述特定操作的收敛准则,(d)确定在所述特定操作期间产生的中间数据的目标耐久性水平,或者(e)确定用于实现所述特定操作的资源容量限制。

12.如条款11所述的方法,其还包括通过所述一个或多个计算装置执行:

选择一组特定提供商网络资源以实现所述第一工作负载策略。

13.如条款6-9或11中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

响应于确定执行所述特定操作包括执行由所述提供商网络外部的实体开发的模块,识别从中选择将用于所述特定操作的至少一个资源的特定安全容器。

14.如条款6-9、11或13中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

向所述客户端提供用于在所述提供商网络外部的平台处执行的特定机器学习模型的可执行版本。

15.如条款6-9、11或13-14中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在调度所述特定操作之前验证所述客户端的资源配额还未耗尽。

16.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

通过在提供商网络的网络可访问机器学习服务处实现的一组编程接口中的特定编程接口从客户端接收执行与实体类型的实例相关联的特定操作的第一请求,其中所述实体类型包括以下各项中的一个或多个:(a)将用于生成机器学习模型的数据源,(b)将从特定数据源计算的一组统计,(c)采用所选择算法的机器学习模型,或者(d)与机器学习模型相关联的别名;

将对应于所述第一请求的作业插入所述机器学习服务的作业队列中;

在所述第一请求中指示的所述特定操作的完成之前从所述客户端接收执行取决于所述特定操作的结果的第二操作的第二请求;以及

将对应于所述第二请求的第二作业对象插入所述作业队列中,其中所述第二作业对象包括所述第二操作对所述特定操作的结果的依赖性的指示。

17.如条款16所述的非暂时计算机可访问存储介质,其中所述特定操作包括分配可由所述机器学习服务的指定组用户使用的别名以执行特定机器学习模型,其中所述别名包括所述特定机器学习模型的指针,其中所述指定组用户中的至少一些用户不被允许修改所述指针。

18.如条款16-17中任一项所述的非暂时计算机可访问存储介质,其中所述特定操作包括创建特定数据源,其中所述指令当在所述一个或多个处理器处执行时:

生成关于所述特定数据源的数据记录的一个或多个变量的一组特定统计,而不从所述客户端接收对所述组特定统计的请求;以及

向所述客户端提供所述组特定统计的指示。

19.如条款18中所述的非暂时计算机可访问存储介质,其中一个或多个变量包括多个变量,并且其中所述指令当在所述一个或多个处理器上执行时:

至少部分地基于对所述多个变量的相关性分析,识别将优先于第二组变量用作对机器学习模型的输入的第一组候选变量;以及

向所述客户端提供所述第一组变量的指示。

20.如条款16-18中任一项所述的非暂时计算机可访问存储介质,其中所述特定操作包括在线模式下的特定机器学习模型的实例化,其中所述指令当在所述一个或多个处理器上执行时:

至少部分地基于由所述客户端指示的预期工作负载水平选择将用于在线模式下的所述特定机器学习模型的一组提供商网络资源。

21.如条款16-18或20中任一项所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:

从所述服务的所述客户端接收将用于解密特定数据源的一个或多个数据记录以执行所述特定操作的凭证。

22.如条款16-18或20-21中任一项所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:

通过所述组编程接口中的幂等编程接口从所述客户端接收执行第三操作的第三请求;

基于以下各项中的一个或多个:(a)所述第三请求中指示的实例标识符,(b)所述客户端的标识符,或者(c)所述第三请求的输入参数的表示,确定所述第三请求是否为早前提交的请求的复本;以及

响应于确定所述第三请求为早前提交的请求的复本,向所述客户端提供所述第三请求的成功的指示,而不将对应于所述第三请求的另外作业对象插入所述作业队列中。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

在提供商网络的网络可访问机器学习服务处接收包括以下各项中的一个或多个的配方的文本表示:(a)指示一组或多组变量的组定义部分,其中所述一组或多组中的单独组包括至少一个常见变换操作将应用到的多个变量,(b)定义一个或多个中间变量的分配部分,(c)指示对存储在储存库中的一个或多个机器学习制品的各自引用的依赖性部分,或者(d)指示将应用到所述组定义部分、所述分配部分或所述依赖性部分中指示的至少一个实体的一个或多个变换操作的输出部分;

根据(a)由所述机器学习服务定义的一组句法规则和(b)由所述机器学习服务支持的变换操作类型的一组库函数定义验证所述配方的所述文本表示;

生成所述配方的可执行表示;

将所述可执行表示存储在所述储存库中;

确定所述配方将应用到特定数据组;

验证所述特定数据组满足所述配方的运行时间接受准则;以及

使用一个或多个所选择提供商网络资源将所述一个或多个变换操作中的特定变换操作应用到所述特定数据组。

2.如条款1所述的系统,其中所述一个或多个计算装置进一步被配置来:

接收将所述配方应用到不同数据组的请求;

验证所述不同数据组满足所述配方的所述运行时间接受准则;以及

将所述特定变换操作应用到所述不同数据组。

3.如条款1-2中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

通过编程接口向所述客户端提供适用于多个机器学习问题域中的单独机器学习问题域的各自的一组一个或多个配方的指示。

4.如条款1-3中任一项所述的系统,其中所述本文表示包括将使用所述特定变换操作的结果执行的特定机器学习模型的指示。

5.如条款1-4中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

响应于将针对所述配方执行自动参数调谐的指示,确定适用于所述一个或多个变换操作中的不同变换操作的多个参数值选项;

使用所述多个参数值选项中的单独参数值选项,由所述机器学习服务生成所述不同变换操作的各自结果;以及

基于对所述各自结果的分析,由所述机器学习服务提供所述多个参数值选项中的满足参数接受准则的至少一个候选参数值的指示。

6.一种方法,其包括:

通过一个或多个计算装置执行:

在网络可访问机器学习服务处接收包括以下各项中的一个或多个的配方的第一表示:(a)指示一组或多组变量的组定义部分,其中所述一组或多组中的单独组包括至少一个常见变换操作将应用到的多个数据组变量,以及(b)指示将应用到以下各项中的一个或多个中指示的至少一个实体的一个或多个变换操作的输出部分:(i)所述组定义部分或(ii)输入数据组;

根据由所述机器学习服务支持的变换操作类型的至少一组库函数定义验证所述配方的所述第一表示;

生成所述配方的可执行表示;

确定所述配方将应用到特定数据组;

验证所述特定数据组满足运行时间接受准则;以及

使用一个或多个所选择提供商网络资源将所述一个或多个变换操作中的特定变换操作应用到所述特定数据组。

7.如条款6所述的方法,其中所述第一表示是文本表示或二进制表示。

8.如条款6-7中任一项所述的方法,其中所述第一表示由所述机器学习服务的客户端使用从所述机器学习服务获得的工具生成。

9.如条款6-8中任一项所述的方法,其中所述特定数据组的输入数据记录的至少一个变量的数据类型包括以下各项中的一个或多个:(a)文本,(b)数值数据类型,(c)布尔,(d)二进制数据类型,(d)分类数据类型,(e)图像处理数据类型,(f)音频处理数据类型,(g)生物信息学数据类型,或者(h)结构化数据类型。

10.如条款9所述的方法,其中所述数据类型包括特定结构化数据类型,其还包括通过所述一个或多个计算装置执行:

至少部分地基于所述特定结构化数据类型选择将用于所述特定变换操作的特定库函数。

11.如条款6-9中任一项所述的方法,其中所述第一表示包括根据以下各项中的一个或多个定义中间变量的分配部分:(a)输入数据组变量,或者(b)在所述组定义部分中定义的实体,其中所述中间变量在所述输出部分中被引用。

12.如条款6-9或11中任一项所述的方法,其中所述第一表示包括指示对存储在所述机器学习服务的储存库中的特定制品的引用的依赖性部分,其中所述特定变换操作消耗所述特定制品的输出作为输入。

13.如条款12所述的方法,其中所述特定制品包括以下各项中的一个或多个:(a)机器学习模型,(b)不同配方,(c)统计组,或者(d)包括对机器学习模型的引用的别名。

14.如条款6-9或11-12中任一项所述的方法,其中所述特定变换操作利用用户定义的函数,其还包括通过所述一个或多个计算装置执行:

在所述接收所述第一表示之前,在所述机器学习服务处从客户端接收实现所述用户定义的函数的模块的指示,其中所述模块是文本格式或二进制格式。

15.如条款6-9、11-12或14中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

根据由所述机器学习服务定义的一组句法规则验证所述第一表示。

16.如条款6-9、11-12或14-15中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

接收将所述配方应用到不同数据组的请求;

验证所述不同数据组满足所述配方的所述运行时间接受准则;以及

将所述特定变换操作应用到所述不同数据组。

17.如条款6-9、11-12或14-16中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

通过编程接口向客户端提供适用于多个机器学习问题域中的单独机器学习问题域的各自的一组一个或多个配方的指示。

18.如条款6-9、11-12或14-17中任一项所述的方法,其中所述第一表示包括将使用所述特定变换操作的结果执行的特定机器学习模型的指示。

19.如条款6-9、11-12或14-18中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

响应于将针对所述配方执行自动参数调谐的指示,由所述机器学习服务确定适用于所述一个或多个变换操作中的不同变换操作的多个参数值选项;

使用所述多个参数值选项中的单独参数值选项,由所述机器学习服务来生成所述不同变换操作的各自结果。

20.如条款19所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于对应于所述特定参数值的特定结果组,由所述机器学习服务选择所述多个参数值选项中的特定参数值作为可接受值。

21.如条款19-20中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

基于对所述各自结果的分析,由所述机器学习服务向客户端指示所述多个参数值选项的至少子集作为候选值;以及

在所述机器学习服务处从所述客户端接收将用于所述不同变换操作的所述子集的特定参数值的指示。

22.如条款19-21中任一项所述的方法,其中所述多个参数值选项包括以下各项中的一个或多个:(a)将从语言处理数据组导出的n元语法的各自长度,(b)特定变量的各自分位数仓边界,(c)图像处理参数值,(d)数据组将分类到的集群的数量,(e)集群边界阈值的值,或者(f)文本文档的向量表示的维度值。

23.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

在机器学习服务处确定包括以下各项中的一个或多个的配方的第一表示:(a)指示一组或多组变量的组定义部分,其中所述一组或多组中的单独组包括至少一个常见变换操作将应用到的多个数据组变量,或者(b)指示将应用到以下各项中的一个或多个中指示的至少一个实体的一个或多个变换操作的输出部分:(i)所述组定义部分或(ii)所述配方的输入数据组;

根据由所述机器学习服务支持的变换操作类型的至少一组库函数定义验证所述配方的所述第一表示;

生成所述配方的可执行表示;以及

响应于确定所述配方将应用到特定数据组,使用一个或多个所选择提供商网络资源来对所述特定数据组实现所述一个或多个变换操作中的特定变换操作。

24.如条款23所述的非暂时计算机可访问存储介质,其中所述第一表示包括根据以下各项中的一个或多个定义中间变量的分配部分:(a)输入数据组变量,或者(b)在所述组定义部分中定义的实体,其中所述中间变量在所述输出部分中被引用。

25.如条款23-24中任一项所述的非暂时计算机可访问存储介质,其中所述第一表示包括指示对存储在所述机器学习服务的储存库中的特定制品的引用的依赖性部分,其中所述特定变换操作消耗所述特定制品的输出作为输入。

26.如条款23-25中任一项所述的非暂时计算机可访问存储介质,其中所述特定制品包括以下各项中的一个或多个:(a)机器学习模型,(b)不同配方,(c)别名,或者(d)一组统计。

27.如条款23-26中任一项所述的非暂时计算机可访问存储介质,其中所述组库函数定义包括以下各项中的一个或多个:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)生物信息学处理函数,或者(j)自然语言处理函数。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

通过提供商网络的机器学习服务的编程接口接收从一个或多个文件源提取特定数据组的观察记录的请求,其中所述特定数据组的大小超过所述机器学习服务的第一服务器处的可用于所述特定数据组的第一存储器部分的大小;

将所述特定数据组映射到多个邻接块,包括其大小不超过所述第一存储器部分的特定邻接块;

至少部分地基于所述请求中指示的过滤描述符生成过滤计划以便对所述多个邻接块执行一系列块级过滤操作,其中所述系列过滤操作中的单独过滤操作的操作类型包括以下各项中的一个或多个:(a)采样,(b)混排,(c)分裂,或者(d)划分用于并行计算,并且其中所述过滤计划包括第一块级过滤操作之后是第二块级过滤操作;

为了实现所述第一块级过滤操作,执行指向存储所述多个邻接块中的至少子集的一个或多个持久性存储装置的至少一组读取,其中在所述组读取之后,所述第一存储器部分至少包括所述特定邻接块;

在不从所述一个或多个持久性存储装置重新读取的情况下并且在不复制所述特定邻接块的情况下,对所述第一块级过滤操作的存储器内结果组实现所述第二块级过滤操作;以及

从所述系列块级过滤操作的输出提取多个观察记录。

2.如条款1所述的系统,其中所述一个或多个计算装置进一步被配置来:

对在所述特定邻接块内识别的一组观察记录实现块内过滤操作。

3.如条款1-2中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

根据所述请求中指示的一个或多个解压参数解压所述特定邻接块的内容。

4.如条款1-3中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

根据所述请求中指示的一个或多个解密参数解密所述特定邻接块的内容。

5.如条款1-4中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

提供从所述系列获得的多个观察记录作为用于执行以下各项中的一个或多个的输入:(a)特征处理配方或(b)机器学习模型。

6.一种方法,其包括:

在一个或多个计算装置上执行:

在机器学习服务处接收从一个或多个数据源提取特定数据组的观察记录的请求;

将所述特定数据组映射到包括特定块的多个块;

生成过滤计划以便对所述多个块执行一系列块级过滤操作,其中所述系列过滤操作中的单独过滤操作的操作类型包括以下各项中的一个或多个:(a)采样,(b)混排,(c)分裂,或者(d)划分用于并行计算,并且其中所述过滤计划包括第一块级过滤操作之后是第二块级过滤操作;

为了实现所述第一块级过滤操作,发起指向存储所述多个块中的至少子集的一个或多个持久性存储装置的一组数据传送,其中在所述组数据传送之后,所述第一存储器部分至少包括所述特定块;

对所述第一块级过滤操作的存储器内结果组实现所述第二块级过滤操作;以及

从所述系列块级过滤操作的输出提取多个观察记录。

7.如条款6所述的方法,其中所述一个或多个数据源包括包含特定存储对象的一个或多个存储对象,其中所述将所述特定数据组映射到所述多个块中包括:至少部分地基于块大小参数确定所述特定存储对象内的候选偏移为所述特定块的候选结束边界,其还包括通过所述一个或多个计算装置执行:

选择表示所述特定存储对象内的特定观察记录的结束边界的特定定界符作为所述特定块的结束边界,其中所述特定定界符位于与所述候选偏移不同的偏移处。

8.如条款7所述的方法,其中所述选择所述特定定界符作为所述结束边界包括:

在按增加偏移的次序对所述特定存储对象的顺序读取中识别具有高于所述候选偏移的偏移的所述第一定界符作为所述特定块的所述结束边界。

9.如条款6-7中任一项所述的方法,其中所述一个或多个数据源包括以下各项中的一个或多个:(a)单主机文件系统,(b)分布式文件系统,(c)可通过web服务接口从网络可访问存储服务访问的存储对象,(d)表示区块级装置接口的存储卷,或者(e)数据库。

10.如条款6-7或9中任一项所述的方法,其中根据所述机器学习服务的应用编程接口格式化所述请求。

11.如条款6-7或9-10中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

根据所述请求中指示的一个或多个解压参数解压所述特定块的内容。

12.如条款6-7或9-11中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

根据所述请求中指示的一个或多个解密参数解密所述特定块的内容。

13.如条款6-7或9-12中任一项所述的方法,其中所述多个观察记录包括具有第一记录长度的第一观察记录,以及具有不同记录长度的第二观察记录。

14.如条款6-7或9-13中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

对在所述特定块内识别的一组观察记录实现块内过滤操作。

15.如条款6-7或9-14中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

将表示所述第一块级过滤操作的第一作业对象插入将在所述机器学习服务处调度的作业集合中;以及

在所述第一块级过滤操作完成之前,将表示所述第二块级过滤操作的第二作业对象插入所述集合中。

16.如条款6-7或9-15中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

提供从所述系列的所述输出提取的所述多个观察记录作为用于执行以下各项中的一个或多个的输入:(a)特征处理配方或(b)机器学习模型。

17.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

响应于在机器学习服务处接收从一个或多个数据源提取特定数据组的观察记录的请求,生成计划以便对所述特定数据组的多个块执行包括第一块级操作的一个或多个块级操作,其中所述第一块级操作的操作类型包括以下各项中的一个或多个:(a)采样,(b)混排,(c)分裂,或者(d)划分用于并行计算;

为了实现所述第一块级操作,发起指向存储所述多个块中的至少子集的一个或多个持久性存储装置的一组数据传送,其中在所述组数据传送之后,所述机器学习服务的特定服务器的第一存储器部分至少包括所述多个块中的特定块;以及

对所述第一块级操作的结果组实现第二操作,其中所述第二操作包括以下各项中的一个或多个:(a)另一过滤操作,(b)特征处理操作,或者(c)聚集操作。

18.如条款17所述的非暂时计算机可访问存储介质,其中所述特定数据组包括以下各项中的一个或多个的内容:(a)单主机文件系统,(b)分布式文件系统,(c)可通过web服务接口从网络可访问存储服务访问的存储对象,(d)表示区块级装置接口的存储卷,或者(e)数据库。

19.如条款17-18中任一项所述的非暂时计算机可访问存储介质,其中所述第二操作包括块内过滤操作。

20.如条款17-19中任一项所述的非暂时计算机可访问存储介质,其中所述第二操作包括对多个观察记录执行的跨块过滤操作,所述多个观察记录包括在所述特定块内识别的第一观察记录以及在所述多个块的不同块内识别的第二观察记录。

21.如条款17-20中任一项所述的非暂时计算机可访问存储介质,其中所述第二操作是在不将所述特定块复制到不同持久性存储装置并且在不从所述一个或多个持久性存储装置重新读取所述特定块的内容的情况下执行的存储器内操作。

22.如条款17-21中任一项所述的非暂时计算机可访问存储介质,其中所述第一块级操作的所述操作类型是划分用于并行计算,其中所述第一块级操作包括包含第一训练操作和第二训练操作的多个模型训练操作,其中所述第一训练操作的执行持续时间与所述第二训练操作的执行持续时间至少部分地重叠。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

生成将用于机器学习模型的一个或多个训练和评估迭代的一致性元数据,其中所述一致性元数据至少包括伪随机数源的特定初始化参数值;

将所述机器学习模型的特定数据组的地址空间再划分成多个块,包括:包括第一多个观察记录的第一块以及包括第二多个观察记录的第二块;

从一个或多个持久性存储装置将所述第一块的观察记录检索到第一服务器的存储器中,并且将所述第二块的观察记录检索到第二服务器的存储器中,

使用第一组伪随机数从所述多个块选择第一训练组,其中所述第一训练组包括所述第一块的至少一部分,其中使用所述第一训练组的观察记录来在所述一个或多个训练和评估迭代中的第一训练和评估迭代期间训练所述机器学习模型,并且其中使用所述一致性元数据获得所述第一组伪随机数;以及

使用第二组伪随机数从所述多个块选择第一测试组,其中所述第一测试组包括所述第二块的至少一部分,其中使用所述第一测试组的观察记录来在所述第一训练和评估迭代期间评估所述机器学习模型,并且其中使用所述一致性元数据获得所述第二组伪随机数。

2.如条款1所述的系统,其中所述一个或多个计算装置进一步被配置来:

将对应于所述第一训练组的所述选择的第一作业插入将在机器学习服务处调度的作业集合中,并且将对应于所述第一测试组的所述选择的第二作业插入所述集合中;以及

相对于所述第一作业异步地调度所述第二作业用于执行。

3.如条款1-2中任一项所述的系统,其中所述一个或多个计算装置被配置来:

从机器学习服务的客户端接收对所述一个或多个训练和评估迭代的请求,其中所述请求指示所述一致性元数据的至少一部分。

4.如条款1-3中任一项所述的系统,其中所述一致性元数据至少部分地基于存储所述特定数据组的一个或多个观察记录的数据对象的标识符。

5.如条款1-4中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

在将所述第一训练组的所述观察记录呈现为对所述机器学习模型的输入之前重新排序所述第一块的观察记录。

6.一种方法,其包括:

一个或多个计算装置,其被配置来:

确定将用于机器学习模型的一个或多个训练和评估迭代的一致性元数据,其中所述一致性元数据至少包括伪随机数源的特定参数值;

将所述机器学习模型的特定数据组的地址空间再划分成多个块,包括:包括第一多个观察记录的第一块以及包括第二多个观察记录的第二块;

使用所述一致性元数据从所述多个块选择第一训练组,其中所述第一训练组包括所述第一块的至少一部分,并且其中使用所述第一训练组的观察记录来在所述一个或多个训练和评估迭代中的第一训练和评估迭代期间训练所述机器学习模型;以及

使用所述一致性元数据从所述多个块选择第一测试组,其中所述第一测试组包括所述第二块的至少一部分,并且其中使用所述第一测试组的观察记录来在所述第一训练和评估迭代期间评估所述机器学习模型。

7.如条款6所述的方法,其还包括通过所述一个或多个计算装置执行:

在所述第一训练和评估迭代期间训练所述机器学习模型之前,将至少所述第一块从持久性存储装置检索到第一服务器的存储器中;以及

在不将所述第一块从所述第一服务器的所述存储器复制到不同位置的情况下,针对所述一个或多个训练和评估迭代中的不同训练和评估迭代,选择(a)不同训练组和(b)不同测试组。

8.如条款6-7中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

从机器学习服务的客户端接收对所述一个或多个训练和评估迭代的请求,其中所述请求指示所述一致性元数据的至少一部分。

9.如条款8所述的方法,其中根据由提供商网络的机器学习服务实现的特定编程接口格式化所述请求。

10.如条款6-8中任一项所述的方法,其中所述一致性元数据至少部分地基于存储所述特定数据组的一个或多个观察记录的数据对象的标识符。

11.如条款6-8或10中任一项所述的方法,其中所述第一训练组包括所述多个块中的第三块的至少一个观察记录,并且其中所述第一测试组包括所述第三块的至少一个观察记录。

12.如条款6-8或10-11中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在将所述第一训练组的所述观察记录呈现为对所述机器学习模型的输入之前混排所述第一块的观察记录。

13.如条款6-8或10-12中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于以下各项中的一个或多个:(a)特定服务器处的可用存储器的大小,或者(b)客户端请求,确定所述地址空间将再划分到的块的数量。

14.如条款6-8或10-13中任一项所述的方法,其中将所述特定数据组存储在多个数据对象中,其还包括:

在再划分所述地址空间之前,确定所述多个数据对象将组合的次序。

15.如条款6-8或10-14中任一项所述的方法,其中所述一个或多个训练和评估迭代是所述机器学习模型的交叉验证迭代。

16.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

确定将用于机器学习模型的一个或多个训练和评估迭代的一致性元数据,其中所述一致性元数据至少包括伪随机数源的特定参数值;

使用所述一致性元数据从特定数据组的多个块选择第一训练组,其中所述多个块中的单独块包括一个或多个观察记录,其中所述第一训练组包括所述多个块中的第一块的至少一部分,并且其中使用所述第一训练组的观察记录来在所述一个或多个训练和评估迭代中的第一训练和评估迭代期间训练所述机器学习模型;以及

使用所述一致性元数据从所述多个块选择第一测试组,其中所述第一测试组包括所述多个块中的第二块的至少一部分,并且其中使用所述第一测试组的观察记录来在所述第一训练和评估迭代期间评估所述机器学习模型。

17.如条款16所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:

在所述第一训练和评估迭代期间训练所述机器学习模型之前,发起将至少所述第一块从持久性存储装置检索到第一服务器的存储器中;以及

在不将所述第一块从所述第一服务器的所述存储器复制到不同位置的情况下,针对所述一个或多个训练和评估迭代中的不同训练和评估迭代,选择(a)不同训练组和(b)不同测试组。

18.如条款16-17中任一项所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:

从机器学习服务的客户端接收对所述一个或多个训练和评估迭代的请求,其中所述请求指示所述一致性元数据的至少一部分。

19.如条款16-18中任一项所述的非暂时计算机可访问存储介质,其中所述一致性元数据至少部分地基于存储所述特定数据组的一个或多个观察记录的数据对象的标识符。

20.如条款16-19中任一项所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:

在将所述第一训练组的所述观察记录呈现为对所述机器学习模型的输入之前混排所述第一块的观察记录。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

针对将使用数据组训练的基于决定树的机器学习模型识别一个或多个运行时间优化目标,其至少包括在所述机器学习模型的训练阶段之后的执行所述机器学习模型的存储器占用目标;

在所述训练阶段的树构造过程期间在一个或多个持久性存储装置处按深度优先次序存储使用所述数据组的至少一部分针对特定决定树生成的多个节点的各自表示;

在所述树构造过程期间针对所述特定决定树的一个或多个节点确定预测效应度量(PUM)的各自值,其中与所述一个或多个节点中的特定节点相关联的特定PUM值是所述特定节点对使用所述机器学习模型生成的预测的预期贡献的测量值;

在所述训练阶段的树修剪过程期间生成所述特定决定树的修改版本,其中为了生成所述修改版本,至少将所述特定节点从所述特定决定树移除,其中至少部分地基于所述一个或多个运行时间优化目标并且至少部分地基于所述特定PUM值选择所述特定节点以便移除;

存储所述特定决定树的所述修改版本的表示;以及

在所述训练阶段之后,至少使用所述特定决定树的所述修改版本来执行所述机器学习模型以便获得特定预测。

2.如条款1所述的系统,其中所述PUM包括以下各项中的一个或多个:(a)Gini杂质的指示,(b)信息增益度量,或者(c)熵度量。

3.如条款1-2中任一项所述的系统,其中所述一个或多个运行时间优化目标包括以下各项中的一个或多个:(a)预测时间目标,(b)处理器利用目标,或者(c)预算目标。

4.如条款1-3中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

生成所述PUM的值在所述一个或多个节点之间的分布的表示;以及

至少部分地基于所述分布选择所述特定节点以便移除。

5.如条款1-4中任一项所述的系统,其中所述机器学习模型包括以下各项中的一个或多个:(a)随机森林模型,(b)分类和回归树(CART)模型,或者(c)自适应增强模型。

6.一种方法,其包括:

通过一个或多个计算装置执行:

在机器学习模型的训练阶段的树构造过程期间在一个或多个持久性存储装置处按深度优先次序存储针对特定决定树生成的多个节点的各自表示;

针对所述特定决定树的一个或多个节点确定预测效应度量(PUM)的各自值,其中与所述一个或多个节点中的特定节点相关联的特定PUM值是所述特定节点对使用所述机器学习模型生成的预测的预期贡献的测量值;

在所述训练阶段的树修剪过程期间生成所述特定决定树的修改版本,其中所述生成包括至少将所述特定节点从所述特定决定树移除,其中至少部分地基于所述特定PUM值选择所述特定节点以便移除;以及

至少使用所述特定决定树的所述修改版本来执行所述机器学习模型以便获得特定预测。

7.如条款6所述的方法,其中至少部分地基于用于执行所述模型的一个或多个运行时间优化目标选择所述特定节点以便移除,所述运行时间优化目标包括以下各项中的一个或多个:(a)存储器占用目标,(b)预测时间目标,(c)处理器利用目标,或者(d)预算目标。

8.如条款6-7中任一项所述的方法,其中所述PUM包括以下各项中的一个或多个:(a)Gini杂质的指示,(b)信息增益度量,或者(c)熵度量。

9.如条款6-8中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

确定所述PUM的值在所述一个或多个节点之间的分布;以及

至少部分地基于所述分布选择所述特定节点以便移除。

10.如条款6-9中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在所述树修剪过程期间,在所述特定决定树的自上而下遍历中累积所述特定决定树的多个节点的所述PUM的值;以及

至少部分地基于所述累积的结果选择所述特定节点以便移除。

11.如条款6-10中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在所述树修剪过程期间,在所述特定决定树的由下至上遍历中检查所述特定决定树的多个节点的所述PUM的值;以及

至少部分地基于所述检查的结果选择所述特定节点以便移除。

12.如条款6-11中任一项所述的方法,其中所述机器学习模型包括以下各项中的一个或多个:(a)随机森林模型,(b)分类和回归树(CART)模型,或者(c)自适应增强模型。

13.如条款6-12中任一项所述的方法,其中所述机器学习模型被配置来利用包括所述特定决定树的多个决定树,其中在机器学习服务的多个执行线程中的特定执行线程处生成所述特定决定树,其还包括通过所述一个或多个计算装置执行:

在所述多个执行线程中的不同执行线程处生成所述多个决定树中的第二决定树。

14如条款6-13中任一项所述的方法,其中所述机器学习模型被配置来利用包括所述特定决定树的多个决定树,其中在机器学习服务的多个执行线程中的特定执行线程处生成所述特定决定树的所述修改版本,其还包括通过所述一个或多个计算装置执行:

在所述多个执行线程中的不同执行线程处生成所述多个决定树中的第二决定树的修改版本。

15.如条款6-14中任一项所述的方法,其中所述机器学习模型被配置来利用包括所述特定决定树的多个决定树,其中在机器学习服务的多个执行线程中的特定执行线程处获得所述特定预测,其还包括:

在所述多个执行线程中的不同执行线程处使用所述多个决定树中的第二决定树的修改版本获得第二预测。

16.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

在机器学习模型的训练阶段的一个或多个树构造周期中的第一树构造周期期间在一个或多个持久性存储装置处按深度优先次序存储针对特定决定树生成的多个节点的各自表示;

针对所述特定决定树的一个或多个节点确定预测效应度量(PUM)的各自值,其中与所述一个或多个节点中的特定节点相关联的特定PUM值是所述特定节点对使用所述机器学习模型生成的预测的预期贡献的测量值;

在所述训练阶段的一个或多个树修剪周期中的第一树修剪周期期间至少部分地基于所述特定PUM值从所述特定决定树选择所述特定节点以便移除;以及

存储所述特定决定树的修改版本,其中所述修改版本排除所述特定节点。

17.如条款16所述的非暂时计算机可访问存储介质,其中至少部分地基于用于执行所述机器学习模型的一个或多个运行时间优化目标选择所述特定节点以便移除,所述运行时间优化目标包括以下各项中的一个或多个:(a)存储器占用目标,(b)预测时间目标,(c)处理器利用目标,或者(d)预算目标。

18.如条款16-17中任一项所述的非暂时计算机可访问存储介质,其中至少部分地基于由代表其创建所述机器学习模型的客户端指定的一个或多个目标选择所述特定节点以便移除。

19.如条款16-18中任一项所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器处执行时:

存储所述PUM的值在所述一个或多个节点之间的分布的表示;以及

至少部分地基于所述分布选择所述特定节点以便移除。

20.如条款16-19中任一项所述的非暂时计算机可访问存储介质,其中响应于对在提供商网络处实现的机器学习服务的编程接口的调用生成所述特定决定树的所述多个节点。

21.如条款16-20中任一项所述的非暂时计算机可访问存储介质,其中所述一个或多个树构造周期包括在所述第一树修剪周期之后执行的第二树构造周期,其中所述一个或多个树修剪周期包括在所述第二树构造周期之后执行的第二树修剪周期,并且其中所述指令当在所述一个或多个处理器上执行时:

在所述第二树构造周期期间存储所述特定决定树的第二节点;以及

在所述第二树修剪周期期间至少部分地基于与所述第二节点相关联的PUM值确定是否将所述第二节点从所述特定决定树移除。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

通过与提供商网络的机器学习服务的客户端的一个或多个编程交互确定(a)将使用指定训练数据组预测的一个或多个目标变量,(b)包括特定预测质量度量的一个或多个预测质量度量,以及(c)包括特定预测运行时间目标的一个或多个预测运行时间目标;

识别一组候选特征处理变换以便从所述指定数据组的一个或多个输入变量导出第一组处理的变量,其中所述第一组处理的变量的至少子集可用于训练机器学习模型以便预测所述一个或多个目标变量,并且其中所述组候选特征处理变换包括特定特征处理变换;

确定(a)指示实现所述特定候选特征处理变换对所述特定预测质量度量的影响的质量估计,以及(b)指示实现所述特定候选特征处理变换对与所述特定预测运行时间目标相关联的特定运行时间性能度量的影响的成本估计;

至少部分地基于所述质量估计并且至少部分地基于所述成本估计生成将提供给所述客户端用于批准的特征处理提议,其中所述特征处理提议包括推荐以实现所述特定特征处理变换;以及

响应于来自所述客户端的批准的指示,执行使用从所述特定特征处理变换获得的特定处理的变量训练的机器学习模型。

2.如条款1所述的系统,其中为了确定所述质量估计,所述一个或多个计算装置实现所述机器学习模型的多个评估运行,其包括其中所述特定处理的变量的第一组值提供为对所述机器学习模型的输入的第一评估运行,以及其中所述特定处理的变量的不同组的值提供为对所述机器学习模型的输入的第二评估运行。

3.如条款1-2中任一项所述的系统,其中为了确定所述成本估计,所述一个或多个计算装置实现所述机器学习模型的第一变型以及所述机器学习模型的第二变型的各自评估运行,其中使用包括所述特定处理的变量的第一训练组训练所述第一变型,并且使用排除所述特定处理的变量的第二训练组训练所述第二变型。

4.如条款1-3中任一项所述的系统,其中所述特定预测质量度量包括以下各项中的一个或多个:(a)AUC(曲线下区域)度量,(b)准确度度量,(c)召回度量,(d)敏感度度量,(e)真阳性率,(f)特异性度量,(g)真阴性率,(h)精度度量,(i)假阳性率,(j)假阴性率,(k)F1得分,(l)覆盖度量,(m)绝对百分比误差度量,或者(n)平方误差度量。

5.如条款1-4中任一项所述的系统,其中所述特定特征处理变换包括使用以下各项中的一个或多个:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)生物信息学处理函数,或者(j)自然语言处理函数。

6.一种方法,其包括:

通过一个或多个计算装置执行:

在机器学习服务处识别可用于训练机器学习模型以预测一个或多个目标变量的一组候选输入变量,其中所述组候选输入变量至少包括由适用于训练数据组的一个或多个输入变量的特定特征处理变换生成的特定处理的变量;

确定(a)指示实现所述特定特征处理变换对特定预测质量度量的影响的质量估计,以及(b)指示实现所述特定特征处理变换对与特定预测目标相关联的性能度量的影响的成本估计;以及

至少部分地基于所述质量估计并且至少部分地基于所述成本估计实现包括所述特定特征处理变换的特征处理计划。

7.如条款6所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于对对应于多个候选特征处理变换的各自质量估计和各自成本估计的分析,生成一个或多个特征处理提议,其包括推荐所述特定特征处理变换的特定特征处理提议;以及

向客户端提供所述一个或多个特征处理提议的指示。

8.如条款6-7中任一项所述的方法,其中所述实现所述特征处理计划响应于从所述客户端获得所述特定特征处理提议的批准的指示。

9.如条款6-7中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

通过所述机器学习服务的一个或多个编程接口接收包括以下各项中的一个或多个的各自指示的模型创建请求:(a)所述一个或多个目标变量,(b)包括所述特定预测质量度量的一个或多个预测质量度量,(c)包括所述特定预测目标的一个或多个预测目标,或者(d)包括识别强制性特征处理变换的特定约束的一个或多个约束。

10.如条款6-7或9中任一项所述的方法,其中还包括通过所述一个或多个计算装置执行:

响应于确定至少部分地基于所述模型创建请求所述一个或多个特征处理提议对所述机器学习服务的客户端不可接受,

将需求重新考虑请求传输到所述客户端;以及

从所述客户端接收分配给以下各项中的一个或多个的相对优先级的指示:(a)所述特定预测质量度量,或者(b)所述特定预测目标。

11.如条款6-7或9-10中任一项所述的方法,其中所述特定预测质量度量包括以下各项中的一个或多个:(a)AUC(曲线下区域)度量,(b)准确度度量,(c)召回度量,(d)敏感度度量,(e)真阳性率,(f)特异性度量,(g)真阴性率,(h)精度度量,(i)假阳性率,(j)假阴性率,(k)F1得分,(l)覆盖度量,(m)绝对百分比误差度量,或者(n)平方误差度量。

12.如条款6-7或9-11中任一项所述的方法,其中所述特定特征处理变换包括使用以下各项中的一个或多个:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)生物信息学处理函数,或者(j)自然语言处理函数。

13.如条款6-7或9-12中任一项所述的方法,其中所述特定预测目标包括以下各项中的一个或多个:(a)模型执行时间目标,(b)存储器使用目标,(c)处理器使用目标,(d)存储装置使用目标,(e)网络使用目标,或者(f)预算。

14.如条款6-7或9-13中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

提供编程接口,使得所述机器学习服务的客户端能够确定所述机器学习模型的特定执行满足所述特定预测目标的程度。

15.如条款6-7或9-14中任一项所述的方法,其中所述确定所述质量估计包括实现所述机器学习模型的多个评估运行,其包括其中所述特定处理的变量的第一组值提供为对所述机器学习模型的输入的第一评估运行,以及其中所述特定处理的变量的不同组的值提供为对所述机器学习模型的输入的第二评估运行。

16.如条款6-7或9-15中任一项所述的方法,其中所述确定所述成本估计包括实现所述机器学习模型的第一变型以及所述机器学习模型的第二变型的各自评估运行,其中使用包括所述特定处理的变量的第一组输入变量训练所述第一变型,并且使用排除所述特定处理的变量的第二组输入变量训练所述第二变型。

17.如条款6-7或9-16中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

从客户端接收指示由所述客户端请求的对所述训练数据组的所述输入变量的一个或多个特征处理变换的配方的指示,其中所述特定特征处理变换不包括在所述配方中;以及

向所述客户端提供对所述配方的所提议修改,其中所述所提议修改包括所述特定特征处理变换的指示。

18.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

在机器学习服务处识别可用于训练机器学习模型以预测一个或多个目标变量的一组候选输入变量,其中所述组候选输入变量至少包括由适用于训练数据组的一个或多个输入变量的特定特征处理变换引起的特定处理的变量;

确定指示实现所述特定特征处理变换对与特定预测目标相关联的性能度量的影响的成本估计;以及

至少部分地基于所述成本估计实现排除所述特定特征处理变换的特征处理提议。

19.如条款18所述的非暂时计算机可访问存储介质,其中所述指令当在所述一个或多个处理器上执行时:

确定指示实现所述特定特征处理变换对特定预测质量度量的影响的质量估计;

其中至少部分地基于所述质量估计实现所述特征处理提议。

20.如条款18-19中任一项所述的非暂时计算机可访问存储介质,其中所述机器学习模型包括以下各项中的一个或多个:(a)分类模型,(b)回归模型,(c)自然语言处理(NLP)模型,或者(d)聚集模型。

21.如条款18-20中任一项所述的非暂时计算机可访问存储介质,其中所述特定特征处理变换包括使用以下各项中的一个或多个:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)生物信息学处理函数,或者(j)自然语言处理函数。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

在提供商网络的机器学习服务处接收将用于生成线性预测模型的数据源的指示,其中为了生成预测,所述线性预测模型将利用分配给从所述数据源的观察记录导出的多个特征中的单独特征的各自权重,其中所述各自权重存储在所述线性预测模型的参数向量中;

至少部分地基于所述数据源的一组特定观察记录的检查确定将在所述线性预测模型的训练阶段的多个学习迭代中的特定学习迭代期间添加到所述参数向量的一个或多个特征的各自权重;

响应于确定在所述训练阶段期间已满足触发条件,

至少部分地基于对所述权重的分位数分析从权重包括在所述参数向量中的一组特征识别一个或多个修剪受害者,其中在没有分选操作的情况下执行所述分位数分析;以及

至少将对应于所述一个或多个修剪受害者中的特定修剪受害者的特定权重从所述参数向量移除;以及

在所述线性预测模型的训练后阶段预测运行期间使用至少一个特征生成预测,在将所述特定修剪受害者的所述特定权重从所述参数向量移除之后针对所述至少一个特征确定权重。

2.如条款1所述的系统,其中所述触发条件至少部分地基于所述参数向量的填充量。

3.如条款1-2中任一项所述的系统,其中所述触发条件至少部分地基于由客户端指示的目标。

4.如条款1-3中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

在所述多个学习迭代中的在所述特定学习迭代之后执行的随后学习迭代期间,

确定所述特定修剪受害者的权重将重新添加到所述参数向量;以及

将对应于所述特定修剪受害者的所述权重添加到所述参数向量。

5.如条款1-4中任一项所述的系统,其中其权重将在所述特定学习迭代期间添加到所述参数向量的所述一个或多个特征中的第一特征通过包括使用以下各项中的一个或多个的变换从所述数据源的所述观察记录的一个或多个变量导出:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)生物信息学处理函数,(j)自然语言处理函数,或者(k)视频处理函数。

6.一种方法,其包括:

通过一个或多个计算装置执行:

接收将用于训练机器学习模型的数据源的指示,其中为了生成预测,所述机器学习模型将利用分配给从所述数据源的观察记录导出的多个特征中的单独特征的各自参数,其中所述各自参数存储在所述机器学习模型的参数向量中;

识别其各自参数将在所述机器学习模型的训练阶段的多个学习迭代中的特定学习迭代期间添加到所述参数向量的一个或多个特征;

响应于确定在所述训练阶段中已满足触发条件,将一个或多个修剪受害者特征的各自参数从所述参数向量移除,其中至少部分地基于对参数包括在所述参数向量中的特征对使用所述机器学习模型进行的预测的相对贡献的分析选择所述一个或多个修剪受害者特征;以及

在所述机器学习模型的训练后阶段预测运行期间使用至少一个特征生成特定预测,在选择所述一个或多个修剪受害者特征之后针对所述至少一个特征确定参数。

7.如条款6所述的方法,其中对相对贡献的所述分析包括对包括在所述参数向量中的权重的分位数分析。

8.如条款6-7中任一项所述的方法,其中对相对贡献的所述分析(a)不包括分选操作并且(b)不包括复制包括在所述参数向量中的所述参数的值。

9.如条款6-8中任一项所述的方法,其中所述确定已满足所述触发条件包括确定所述参数向量的填充量超过阈值。

10.如条款6-9中任一项所述的方法,其中所述触发条件至少部分地基于机器学习服务的服务器的资源容量约束。

11.如条款6-10中任一项所述的方法,其中所述触发条件至少部分地基于由客户端指示的目标。

12.如条款6-11中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在所述多个学习迭代中的在所述特定学习迭代之后执行的随后学习迭代期间,

确定先前被选择作为修剪受害者特征的特定特征的参数将重新添加到所述参数向量;以及

将所述特定特征的所述参数添加到所述参数向量。

13.如条款6-12中任一项所述的方法,其中其各自参数将在所述特定学习迭代期间添加到所述参数向量的所述一个或多个特征中的第一特征通过包括使用以下各项中的一个或多个的变换从所述数据源的观察记录的一个或多个变量确定:(a)分位数仓函数,(b)笛卡尔乘积函数,(c)二元语法函数,(d)n元语法函数,(e)正交稀疏二元语法函数,(f)日历函数,(g)图像处理函数,(h)音频处理函数,(i)生物信息学处理函数,(j)自然语言处理函数,或者(k)视频处理函数。

14.如条款6-13中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

实现随机梯度下降技术来在所述特定学习迭代期间更新包括在所述参数向量中的一个或多个先前生成的参数。

15.如条款6-14中任一项所述的方法,其中所述机器学习模型包括广义线性模型。

16.如条款6-15中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

通过在提供商网络处实现的机器学习服务的编程接口接收指示所述数据源的客户端请求,其中所述机器学习服务包括位于一个或多个数据中心处的多个训练服务器;以及

相对于所述接收所述客户端请求异步地,由所述机器学习服务的作业调度器向所述多个训练服务器中的特定训练服务器分配包括所述多个学习迭代的作业。

17.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时,实现机器学习服务的模型生成器,其中所述模型生成器被配置来:

确定将用于生成模型的数据源,其中为了生成预测,所述模型将利用分配给从所述数据源的观察记录导出的多个特征中的单独特征的各自参数,其中所述各自参数存储在所述模型的参数向量中;

识别其参数将在所述模型的训练阶段的多个学习迭代中的特定学习迭代期间添加到所述参数向量的一个或多个特征;

响应于确定已满足触发条件,将分配给一个或多个修剪受害者特征的各自参数从所述参数向量移除,其中至少部分地基于对参数包括在所述参数向量中的特征对使用所述模型进行的预测的相对贡献的分析选择所述一个或多个修剪受害者特征;以及

在将分配给修剪受害者特征的至少一个参数从所述参数向量移除之后,将至少一个参数添加到所述参数向量。

18.如条款17所述的非暂时计算机可访问存储介质,其中对相对贡献的所述分析包括确定包括在所述参数向量中的特定参数值与先验参数值的偏差。

19.如条款17-18中任一项所述的非暂时计算机可访问存储介质,其中所述特定参数值包括概率分布,并且其中所述偏差的所述确定包括对Kullback-Leibler(KL)散度的估计。

20.如条款17-19中任一项所述的非暂时计算机可访问存储介质,其中为了确定是否已满足所述触发条件,所述模型生成器被配置来确定所述参数向量的填充量是否超过阈值。

21.如条款17-20中任一项所述的非暂时计算机可访问存储介质,其中所述数据源包括传输到机器学习服务的网络端点的观察记录流的源。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

在提供商网络的机器学习服务处接收包括将用于生成模型的观察记录的数据源的指示;

将所述观察记录的一个或多个变量识别作为用于分位数分仓变换的候选者;

确定用于所述一个或多个变量中的至少特定变量的特定并发分仓计划,其中根据所述特定并发分仓计划,多个分位数分仓变换在所述模型的训练阶段期间应用到所述特定变量,其中所述多个分位数分仓变换包括具有第一仓计数的第一分位数分仓变换以及具有不同仓计数的第二分位数分仓变换;

在所述训练阶段期间生成包括对应于由于实现所述特定并发分仓计划获得的多个分仓特征的各自初始权重值的参数向量,所述多个分仓特征包括使用所述第一分位数分仓变换获得的第一分仓特征以及使用所述第二分位数分仓变换获得的第二分仓特征;

在所述训练阶段期间根据所选择优化策略减少对应于所述多个分仓特征中的特定分仓特征的至少一个权重值;以及

在所述模型的训练后阶段预测运行期间使用以下各项中的至少一个获得特定预测:所述第一分仓特征或所述第二分仓特征。

2.如条款1所述的系统,其中识别为候选者的所述一个或多个变量包括多个变量,其中所述一个或多个计算装置进一步被配置来:

根据用于所述多个变量中的一组变量的第二并发分仓计划,其中所述组包括第一变量和第二变量,

将第一多变量分位数分仓变换应用到至少所述第一变量和所述第二变量,其中根据所述第一多变量分位数分仓变换,至少部分地基于针对所述第一变量和所述第二变量选择的仓计数的第一组合将特定观察记录放置在第一仓中;以及

将第二多变量分位数分仓变换应用到至少所述第一变量和所述第二变量,其中根据所述第二多变量分位数分仓变换,至少部分地基于针对所述第一变量和所述第二变量选择的仓计数的不同组合将所述特定观察记录放置在第二仓中。

3.如条款1-2中任一项所述的系统,其中所述所选择优化策略包括正则化。

4.如条款1-3中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

至少部分地基于对分配给所述模型的多个特征的权重的分位数边界的估计选择特定分仓特征以便从所述参数向量移除,其中在不分选所述权重的情况下获得所述估计。

5.如条款1-4中任一项所述的系统,其中所述一个或多个计算装置进一步被配置来:

在所述机器学习服务的制品储存库中存储根据用于在所述机器学习服务处实现的特征变换的配方语言格式化的特定配方,其中所述特定配方包括所述第一分位数分仓变换的指示以及所述第二分位数分仓变换的指示。

6.一种方法,其包括:

通过一个或多个计算装置执行:

实现用于将用于生成机器学习模型的观察记录的一个或多个变量的各自并发分仓计划,其中根据特定并发分仓计划,多个分位数分仓变换应用到所述一个或多个变量中的至少特定变量,其中所述多个分位数分仓变换包括具有第一仓计数的第一分位数分仓变换以及具有不同仓计数的第二分位数分仓变换;

确定与多个分仓特征相关联的各自参数值,所述多个分仓特征包括使用所述第一分位数分仓变换获得的第一分仓特征以及使用所述第二分位数分仓变换获得的第二分仓特征;以及

在所述机器学习模型的训练后阶段预测运行期间使用对应于以下各项中的至少一个的参数值生成特定预测:所述第一分仓特征或所述第二分仓特征。

7.如条款6所述的方法,其还包括通过所述一个或多个计算装置执行:

根据针对所述观察记录的一组变量生成的第二并发分仓计划,其中所述组包括第一变量和第二变量,

将第一多变量分位数分仓变换应用到至少所述第一变量和所述第二变量,其中根据所述第一多变量分位数分仓变换,至少部分地基于针对所述第一变量和所述第二变量选择的仓计数的第一组合将特定观察记录放置在第一仓中;以及

将第二多变量分位数分仓变换应用到至少所述第一变量和所述第二变量,其中根据所述第二多变量分位数分仓变换,至少部分地基于针对所述第一变量和所述第二变量选择的仓计数的不同组合将所述特定观察记录放置在第二仓中。

8.如条款6-7中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于所述观察记录的所选择组变量的各自值生成所述观察记录的至少子集的k维树(k-d树)表示;以及

至少部分地基于对所述k维树的分析确定将应用到所述一个或多个变量中的至少一个变量的并发分位数分仓变换的一个或多个属性。

9.如条款6-8中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在所述确定所述各自参数值之后并且在所述训练后阶段预测运行之前,将对应于至少一个分仓特征的参数从针对所述机器学习模型生成的参数向量移除。

10.如条款9所述的方法,其中所述参数向量包括对应于针对所述机器学习模型识别的多个特征中的一个或多个单独特征的各自权重,其还包括通过所述一个或多个计算装置执行:

利用正则化来调整分配给特定分仓特征的特定权重的值;以及

至少部分地基于确定所述特定权重的所调整值低于阈值,选择所述特定分仓特征作为其权重将从所述参数向量移除的修剪目标。

11.如条款9所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于确定对包括在所述参数向量中的权重的分位数边界的估计选择特定分仓特征作为其权重将从所述参数向量移除的修剪目标,其中在不分选所述权重的情况下执行所述确定所述估计。

12.如条款6-9中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

至少部分地基于所述机器学习模型的问题域确定以下各项中的至少一个:(a)所述第一仓计数或者(b)所述不同仓计数。

13.如条款6-9或12中任一项所述的方法,其中响应于通过在提供商网络处实现的机器学习服务的编程接口接收模型生成请求执行所述实现所述各自并发分仓计划。

14.如条款6-9或12-13中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在提供商网络处实现的机器学习服务的制品储存库中存储根据在所述机器学习服务处实现的配方语言格式化的特定配方,其中所述特定配方包括所述第一分位数分仓变换的指示以及所述第二分位数分仓变换的指示。

15.如条款6-9或12-14中任一项所述的方法,其中所述机器学习模型包括以下各项中的一个或多个:监督式学习模型或非监督式学习模型。

16.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时,实现机器学习服务的模型生成器,其中所述模型生成器被配置来:

将用于生成机器学习模型的观察记录的一个或多个变量识别作为用于分位数分仓变换的候选者;

确定用于所述一个或多个变量的各自并发分仓计划,其中根据用于至少特定变量的特定并发分仓计划,多个分位数分仓变换应用到所述特定变量,其中所述多个分位数分仓变换包括具有第一仓计数的第一分位数分仓变换以及具有不同仓计数的第二分位数分仓变换;以及

在所述机器学习模型的参数向量内包括多个分仓特征的各自参数,其包括从所述第一分位数分仓变换获得的第一分仓特征的第一参数以及从所述第一分位数分仓特征获得的第二分仓特征的第二参数,其中所述第一分仓特征和所述第二分仓特征中的至少一个分仓特征用于在所述机器学习模型的训练后阶段执行中生成预测。

17.如条款16所述的非暂时计算机可访问存储介质,其中所述模型生成器进一步被配置来:

根据用于所述观察记录的一组变量的第二并发分仓计划,其中所述组包括第一变量和第二变量,

将第一多变量分位数分仓变换应用到至少所述第一变量和所述第二变量,其中根据所述第一多变量分位数分仓变换,至少部分地基于针对所述第一变量和所述第二变量选择的仓计数的第一组合将特定观察记录放置在第一仓中;以及

将第二多变量分位数分仓变换应用到至少所述第一变量和所述第二变量,其中根据所述第二多变量分位数分仓变换,至少部分地基于针对所述第一变量和所述第二变量选择的仓计数的不同组合将所述特定观察记录放置在第二仓中。

18.如条款16-17中任一项所述的非暂时计算机可访问存储介质,其中所述模型生成器进一步被配置来:

调整分配给所述第一分仓特征的特定权重的值;以及

至少部分地基于确定所述特定权重的所调整值低于阈值,选择所述第一分仓特征以便从所述参数向量移除。

19.如条款16-18中任一项所述的非暂时计算机可访问存储介质,其中所述模型生成器进一步被配置来:

至少部分地基于对分配给针对所述机器学习模型识别的多个特征的权重的分位数边界的估计选择所述第一分仓特征以便从所述参数向量移除,其中在不分选所述权重的情况下获得所述估计。

20.如条款16-19中任一项所述的非暂时计算机可访问存储介质,其中所述机器学习模型包括广义线性模型。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

在提供商网络的机器学习服务处训练机器学习模型以便生成对应于各自观察记录的一个或多个输出变量的值,其中所述一个或多个输出变量包括特定输出变量;

对应于使用各自评估数据组执行的所述机器学习模型的一个或多个评估运行,生成将通过交互式图形界面显示的第一组数据,其中所述第一组数据至少包括(a)所述特定输出变量的统计分布以及(b)所述机器学习模型的第一预测质量度量,其中所述交互式图形界面包括第一图形控件以修改与所述机器学习模型相关联的第一预测解释阈值;

至少部分地基于检测特定客户端使用所述第一图形控件,确定所述第一预测解释阈值的目标值;

通过所述交互式图形界面发起由所述目标值的选择引起的对所述第一预测质量度量的改变的显示;

响应于由客户端通过所述交互式图形界面传输的请求,将所述目标值保存在所述机器学习服务的持久性储存库中;以及

利用所述所保存目标值来生成所述机器学习模型的随后运行的一个或多个结果。

2.如条款1所述的系统,其中所述机器学习模型是将用于将观察记录分类成第一类别和第二类别的二进制分类模型,并且其中所述第一预测解释阈值指示所述第一类别与所述第二类别之间的截止边界。

3.如条款1-2中任一项所述的系统,其中所述第一预测质量度量包括以下各项中的一个或多个:准确度度量、召回度量、敏感度度量、真阳性率、特异性度量、真阴性率、精度度量、假阳性率、假阴性率、F1得分、覆盖度量、绝对百分比误差度量、平方误差度量或AUC(曲线下区域)度量。

4.如条款1-3中任一项所述的系统,其中所述第一图形控件包括连续变化控制元件,使得所述特定客户端能够指示所述第一预测解释阈值的第一值与所述第一预测解释阈值的第二值之间的过渡,其中所述一个或多个计算机装置进一步被配置来:

在所述特定客户端指示从所述第一值到所述第二值的过渡时,实时地发起指示对所述第一预测质量度量的对应改变的所述交互式图形界面的一部分的更新。

5.如条款1-4中任一项所述的系统,其中所述交互式图形界面包括用于指示包括所述第一预测质量度量和第二预测质量度量的多个预测质量度量的目标值的各自另外控件,其中所述一个或多个计算机装置进一步被配置来:

响应于使用第一另外控件指示的所述第一预测质量度量的目标值的改变,发起对应于所述第二预测质量度量的第二另外控件的显示的更新,指示所述第一预测质量度量的所述目标值的所述改变对所述第二预测质量度量的影响。

6.一种方法,其包括:

通过一个或多个计算装置执行:

训练机器学习模型以便生成对应于各自观察记录的一个或多个输出变量的各自值,其中所述一个或多个输出变量包括特定输出变量;

对应于所述机器学习模型的一个或多个评估运行生成将通过交互式图形界面显示的第一组数据,其中所述第一组数据至少包括所述机器学习模型的第一预测质量度量,并且其中所述交互式图形界面包括第一图形控件以修改与所述机器学习模型相关联的第一预测解释阈值;

至少部分地基于检测特定客户端与所述第一图形控件的交互,确定所述第一预测解释阈值的目标值;

通过所述交互式图形界面发起由所述目标值的选择引起的对所述第一预测质量度量的改变的显示;以及

使用所述目标值获得所述机器学习模型的随后运行的一个或多个结果。

7.如条款6所述的方法,其中所述机器学习模型是将用于将观察记录分类成第一类别和第二类别的二进制分类模型,并且其中所述第一预测解释阈值指示所述第一类别与所述第二类别之间的截止边界。

8.如条款6-7中任一项所述的方法,其中所述第一预测质量度量包括以下各项中的一个或多个:准确度度量、召回度量、敏感度度量、真阳性率、特异性度量、真阴性率、精度度量、假阳性率、假阴性率、F1得分、覆盖度量、绝对百分比误差度量、平方误差度量或AUC(曲线下区域)度量。

9.如条款6-8中任一项所述的方法,其中所述第一图形控件包括连续变化控制元件,使得所述特定客户端能够指示所述第一预测解释阈值的第一值与所述第一预测解释阈值的第二值之间的过渡,其还包括通过所述一个或多个计算机装置执行:

在所述特定客户端指示从所述第一值到所述第二值的过渡时,实时地发起指示对所述第一预测质量度量的对应改变的所述交互式图形界面的一部分的更新。

10.如条款6-9中任一项所述的方法,其中所述交互式图形界面包括用于指示包括所述第一预测质量度量和第二预测质量度量的多个预测质量度量的目标值的各自另外控件,其还包括通过所述一个或多个计算机装置执行:

响应于使用第一另外控件指示的所述第一预测质量度量的目标值的改变,发起对应于所述第二预测质量度量的第二另外控件的显示的更新,指示所述第一预测质量度量的所述目标值的所述改变对所述第二预测质量度量的影响。

11.如条款10所述的方法,其还包括通过所述一个或多个计算装置执行:

响应于使用第一另外控件指示的所述第一预测质量度量的所述目标值的所述改变,发起所述第一预测解释阈值的改变的显示。

12.如条款6-10中任一项所述的方法,其中所述机器学习模型是以下各项中的一个:(a)n路分类模型或者(b)回归模型。

13.如条款6-10或12中任一项所述的方法,其中所述交互式图形界面包括显示所述特定输出变量的值的统计分布的区域,其还包括通过所述一个或多个计算机装置执行:

响应于与所述区域的特定客户端交互,发起所述特定输出变量具有第一值的观察记录的一个或多个输入变量的值的显示,其中所述特定客户端交互指示所述特定输出变量的所述第一值。

14.如条款6-10或12-13中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

生成指示在所述机器学习模型的执行期间检测到的异常的警报消息以便通过所述交互式图形界面显示。

15.如条款6-10或12-14中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

响应于在所述第一预测质量度量的显示之后所述特定客户端使用所述交互式图形界面的不同控件,接收执行以下各项中的一个或多个的请求:(a)重新评估所述机器学习模型或者(b)重新训练所述机器学习模型。

16.如条款6-10或12-15中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

在提供商网络处实现的机器学习服务的储存库中保存指示所述目标值的记录。

17.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

对应于机器学习模型的评估运行生成将通过交互式图形界面显示的第一组数据,其中所述第一组数据至少包括所述机器学习模型的第一预测质量度量,并且其中所述交互式图形界面包括第一图形控件以修改与所述机器学习模型相关联的第一解释阈值;

基于检测特定客户端与所述第一图形控件的交互,确定所述第一解释阈值的目标值;以及

通过所述交互式图形界面发起由所述目标值的选择引起的对所述第一预测质量度量的改变的显示。

18.如条款17所述的非暂时计算机可访问存储介质,其中所述机器学习模型是将用于将观察记录分类成第一类别和第二类别的二进制分类模型,并且其中所述第一解释阈值指示所述第一类别与所述第二类别之间的截止边界。

19.如条款17-18中任一项所述的非暂时计算机可访问存储介质,其中所述第一预测质量度量包括以下各项中的一个或多个:准确度度量、召回度量、敏感度度量、真阳性率、特异性度量、真阴性率、精度度量、假阳性率、假阴性率、F1得分、覆盖度量、绝对百分比误差度量、平方误差度量或AUC(曲线下区域)度量。

20.如条款17-19中任一项所述的非暂时计算机可访问存储介质,其中所述第一图形控件包括连续变化控制元件,使得所述特定客户端能够指示所述第一解释阈值的第一值与所述第一解释阈值的第二值之间的过渡,其中所述指令当在一个或多个处理器上执行时:

在所述特定用户指示从所述第一值到所述第二值的过渡时,实时地发起指示对所述第一预测质量度量的对应改变的所述交互式图形界面的一部分的更新。

21.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

对应于机器学习模型的评估运行,在与客户的特定交互会话期间通过交互式界面显示第一组数据,其中所述第一组数据至少包括与所述评估运行相关联的第一预测质量度量;

基于所述客户与所述交互式界面的特定交互的检测,在所述特定交互会话期间向机器学习服务的服务器传输所述第一解释阈值的目标值;

从所述服务器接收由所述目标值的选择引起的对所述第一预测质量度量的改变的指示;以及

在所述特定交互会话期间通过所述交互式界面指示对所述第一预测质量度量的所述改变。

22.如条款21所述的非暂时计算机可访问存储介质,其中所述交互式界面包括图形界面,并且其中所述特定交互包括对包括在所述图形界面中的第一图形控件的操纵。

23.如条款21所述的非暂时计算机可访问存储介质,其中所述交互式界面包括命令行界面。

24.如条款22所述的非暂时计算机可访问存储介质,其中所述交互式界面包括API(应用编程接口)。

本公开的实施方案还可鉴于以下条款来描述:

1.一种系统,其包括:

一个或多个计算装置,其被配置来:

在提供商网络的机器学习服务处生成与机器学习模型相关联的第一组观察记录的一个或多个空间有效表示,其中所述空间有效表示中的单独空间有效表示利用比所述第一组观察记录少的存储装置,并且其中所述第一组观察记录的至少子集包括第一组一个或多个变量的各自值;

接收将根据概率复本检测技术针对所述第一组观察记录的复本的存在检查第二组观察记录的指示,其中所述第二组观察记录的至少子集包括所述第一组一个或多个变量的各自值;

使用所述一个或多个空间有效表示中的至少一个空间有效表示获得对应于所述第二组的至少一部分的复本度量,所述复本度量指示所述第二组的一个或多个观察记录相对于至少所述第一组一个或多个变量是所述第一组的一个或多个观察记录的复本的非零概率;以及

响应于确定所述复本度量满足阈值准则,实现包括向所述客户端通知潜在复本观察记录的检测的一个或多个响应动作。

2.如条款1所述的系统,其中所述一个或多个空间有效表示中的特定空间有效表示包括以下各项中的一个或多个:(a)布隆过滤器,(b)商过滤器,或者(c)跳过列表。

3.如条款1-2中任一项所述的系统,其中所述第一组一个或多个观察记录包括所述机器学习模型的训练数据组,并且其中所述第二组一个或多个观察记录包括所述机器学习模型的测试数据组。

4.如条款1-3中任一项所述的系统,其中所述一个或多个空间有效表示中的特定空间有效表示包括布隆过滤器,其中所述一个或多个计算装置进一步被配置来:

在生成所述布隆过滤器之前,估计(a)包括在所述第一组中的观察记录的近似计数以及(b)所述第一组的单独观察记录的近似大小;以及

至少部分地基于所述近似计数或所述近似大小确定将用于生成所述布隆过滤器的一个或多个参数,包括以下各项中的一个或多个:(a)将包括在所述布隆过滤器中的位的数量,(b)将用于生成所述布隆过滤器的散列函数的数量,或者(c)将用于生成所述布隆过滤器的散列函数的特定类型。

5.如条款1-4中任一项所述的系统,其中所述一个或多个响应动作包括以下各项中的一个或多个:(a)向所述客户端传输所述第二组的已识别为具有为复本的非零概率的特定观察记录的指示,(b)在使用所述第二组执行特定机器学习任务之前将已识别为具有为复本的非零概率的特定观察记录从所述第二组移除,(c)向所述客户端传输与将已识别为具有为复本的非零概率的一个或多个观察记录从所述第二组移除相关联的潜在预测误差的指示,或者(d)取消与所述第二组相关联的机器学习作业。

6.一种方法,其包括:

通过一个或多个计算装置执行:

在机器学习服务处生成第一组观察记录的一个或多个替代表示,其中至少一个替代表示占据与所述第一组观察记录不同量的空间;

使用所述一个或多个替代表示中的至少一个替代表示获得对应于第二组观察记录的至少一部分的复本度量,所述复本度量指示所述第二组的一个或多个观察记录相对于其各自值包括在所述第一组的至少一些观察记录中的一个或多个变量是所述第一组的各自观察记录的复本的非零概率;以及

响应于确定所述复本度量满足阈值准则,实现一个或多个响应动作。

7.如条款6所述的方法,其中所述一个或多个替代表示中的特定替代表示包括以下各项中的一个或多个:(a)布隆过滤器,(b)商过滤器,或者(c)跳过列表。

8.如条款6-7中任一项所述的方法,其中所述第一组一个或多个观察记录包括特定机器学习模型的训练数据组,并且其中所述第二组一个或多个观察记录包括所述特定机器学习模型的测试数据组。

9.如条款6-8中任一项所述的方法,其中所述一个或多个替代表示中的特定替代表示包括布隆过滤器,其还包括通过所述一个或多个计算装置执行:

在生成所述布隆过滤器之前,估计(a)包括在所述第一组中的观察记录的近似计数以及(b)所述第一组的单独观察记录的近似大小;以及

至少部分地基于所述近似计数或所述近似大小确定将用于生成所述布隆过滤器的一个或多个参数,包括以下各项中的一个或多个:(a)将包括在所述布隆过滤器中的位的数量,(b)将用于生成所述布隆过滤器的散列函数的数量,或者(c)将用于生成所述布隆过滤器的散列函数的特定类型。

10.如条款6-9中任一项所述的方法,其中所述一个或多个响应动作包括以下各项中的一个或多个:(a)通知客户端潜在复本观察记录的检测,(b)提供所述第二组的已识别为具有为复本的非零概率的特定观察记录的指示,(c)在使用所述第二组执行特定机器学习任务之前将已识别为具有为复本的非零概率的特定观察记录从所述第二组移除,(d)向客户端提供与将已识别为具有为复本的非零概率的一个或多个观察记录从所述第二数据组移除相关联的潜在预测误差的指示,或者(e)放弃与所述第二组相关联的机器学习作业。

11.如条款6-10中任一项所述的方法,其中所述一个或多个响应动作中的特定响应动作包括提供所述第二组的特定观察记录为复本的置信水平的指示。

12.如条款6-11中任一项所述的方法,其中所述组一个或多个变量排除其值将由机器学习模型预测的输出变量。

13.如条款6-12中任一项所述的方法,其中所述确定所述复本度量满足阈值准则包括以下各项中的一个或多个:(a)确定所述第二组的已识别为具有为复本的非零概率的观察记录的数量超过第一阈值,或者(b)确定所述第二组的已识别为具有为复本的非零概率的所述观察记录的分数超过第二阈值。

14.如条款6-13中任一项所述的方法,其中所述生成所述第一组观察记录的所述一个或多个替代表示包括:

将所述第一组观察记录再划分成多个分区;

在所述机器学习服务的各自服务器处生成对应于所述多个分区中的单独分区的各自布隆过滤器;以及

将在所述各自服务器处生成的所述布隆过滤器组合成合并布隆过滤器。

15.如条款6-14中任一项所述的方法,其还包括通过所述一个或多个计算装置执行:

通过编程接口从所述客户端接收以下各项中的一个或多个的指示:(a)将由所述机器学习服务使用以确定是否已满足所述阈值准则的参数,或者(b)所述一个或多个响应动作。

16.如条款6-15中任一项所述的方法,其中所述第一组观察记录和所述第二组观察记录是以下各项中的一个的各自子集:(a)特定机器学习模型的训练数据组,(b)特定机器学习模型的测试数据组,或者(c)将获得特定机器学习模型的训练数据组和所述特定机器学习模型的测试数据组的源数据组。

17.一种存储程序指令的非暂时计算机可访问存储介质,所述程序指令当在一个或多个处理器上执行时:

在机器学习服务处确定将执行检测第一组观察记录中的一个或多个观察记录的至少一部分内容是否在第二组观察记录中重复的分析;

获得对应于第二组观察记录的至少一部分的复本度量,所述复本度量指示所述第二组的一个或多个观察记录相对于其各自值包括在所述第一组的至少一些观察记录中的一个或多个变量是所述第一组的各自观察记录的复本的非零概率;以及

响应于确定所述复本度量满足阈值准则,实现一个或多个响应动作。

18.如条款17所述的非暂时计算机可访问存储介质,其中为了获得替代度量,所述指令当在所述一个或多个处理器上执行时,生成所述第一组观察记录的替代表示,其中所述替代表示包括以下各项中的一个或多个:(a)布隆过滤器,(b)商过滤器,或者(c)跳过列表。

19.如条款17-18中任一项所述的非暂时计算机可访问存储介质,其中所述第一组一个或多个观察记录包括特定机器学习模型的训练数据组,并且其中所述第二组一个或多个观察记录包括所述特定机器学习模型的测试数据组。

20.如条款17-19中任一项所述的非暂时计算机可访问存储介质,其中所述一个或多个响应动作中的特定响应动作包括提供所述第二组的特定观察记录为复本的置信水平的指示。

总结

各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据前面的描述而实现的指令和/或数据。一般来说,计算机可访问介质可包括存储介质或存储器介质,诸如磁性或光学介质(例如磁盘或DVD/CD-ROM)、易失性或非易失性介质(诸如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等),以及传输介质或信号,通过通信介质(诸如网络和/或无线链接)传送,诸如电信号、电磁信号或数字信号。

如图中所示出并且在本文中描述的各种方法表示方法的示例性实施方案。所述方法可在软件、硬件或其组合中实现。方法的次序可改变,并且各种元素可添加、重新排序、组合、省略、修改等。

受益于本公开的本领域技术人员将清楚地知晓可做出各种修改和变化。旨在包括所有此类修改和变化,并且因此,以上描述应视为具有说明性而非限制性意义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1