个性化自动化机器学习 背景技术 [0001] 本发明总体上涉及计算系统和方法,更具体地,涉及生成个性化机器学习模型。 [0002] 机器学习是人工智能的一种应用,它为计算系统提供了在不使用显式指令或程序的情况下从经验中自动学习和改进的能力。在许多行业中,机器学习目前被应用于通过预测模式来解决现实世界的业务问题。 [0003] 如图1所示,在将机器学习应用于现实世界的业务问题的生命周期中,需要执行各种流程。机器学习生命周期的第一步是确定要解决的业务问题并了解业务需求以改进运营;也就是说,基本事实收集阶段。 [0004] 机器学习生命周期的第二步是收集与业务需求相关的所有原始数据并准备数据以用于应用机器学习。此步骤涉及用于训练机器学习模型(或算法)的数据清理和/或数据工程。通常,执行数据清理以识别和删除数据中的错误,以便为机器学习创建干净(可靠)的数据集。这一步至关重要,因为良好的数据准备和工程会产生干净可靠的数据,从而导致更准确的模型预测。例如,如果数据丢失,机器学习算法就无法使用它。如果数据无效,机器学习算法会产生不太准确甚至误导的结果。 [0005] 机器学习生命周期中的下一步是从候选机器学习模型的集合中选择一个模型,用于使用准备好的和清理的数据集进行训练。合适的机器学习模型的示例包括回归算法、基于实例的算法、正则化算法、决策树算法、聚类算法、关联规则学习算法、人工神经网络算法、深度学习算法、降维算法、集成算法等。 [0006] 机器学习生命周期中的第四步是通过调整或优化超参数来改进所选模型。在此步骤中,选择一组最佳超参数,所选超参数确定机器学习模型的结构。接下来,在集成状态期间,如果选择了两个或多个模型,则将这些模型组合以产生一个最佳预测模型。一旦选定的模型经过训练和调整,在模型验证步骤中,模型就会使用测试数据集进行评估。该模型被验证,直到它产生所需的行为。 [0007] 在模型验证之后,机器学习模型随后在模型部署步骤期间被释放到生产环境,以通过处理看不见的(或新的)数据开始进行预测。最后,机器学习生命周期的最后一步是监控(例如,运行时监控)部署的模型并继续提高其性能。 [0008] 上述机器学习生命周期中涉及的过程由训练有素的数据工程师和/或数据科学家手动执行。因此,这些过程耗时、资源密集、劳动密集、成本高且难以执行。为了解决应用机器学习的这些限制,自动化机器学习(AutoML或AutoAI)是自动化将机器学习应用于实际业务问题的典型步骤的过程,已在机器学习技术领域引起了广泛关注。 [0009] 诸如国际商业机器公司(IBM)、谷歌和H2O.ai等公司一直在投入时间和资源来构建和商业化用于自动化机器学习生命周期中涉及的过程的系统。这些商业化的自动化机器学习系统可帮助用户自动化机器学习过程,并使从收集原始数据集到部署机器学习模型的整个流程自动化。然而,目前市场上可用的自动化机器学习系统有一些限制。一个限制是自动化机器学习系统无法生成机器学习模型来适应每个用户的偏好或不同的使用领域(行业)。例如,与某些原始数据有关的信息对于一位银行业专家用户可能更重要,而原始数据对于另一位汽车行业专家用户可能不太重要。自动化机器学习系统根本不考虑不同的偏好和领域,而是为所有用户生成相同的机器学习模型列表。 发明内容 [0010] 如其实施例所表明的,本发明提供了一种用于为自动化机器学习系统的用户个性化机器学习模型的方法,机器学习模型由自动化机器学习系统生成。该方法包括获得用于训练第一神经网络、第二神经网络和第三神经网络的第一组数据集,将训练数据集输入到神经网络,调整用于测试和训练神经网络的第一神经网络、第二神经网络和第三神经网络的超参数,输入第二组数据集到经训练的神经网络以及第三神经网络生成包括每个机器学习模型的每个用户的相关性分数的第三输出数据,并显示与每个用户相关联的机器学习模型的列表,每个机器学习模型都显示相关性分数。 [0011] 根据本发明的另一个实施例,提供了一种用于为自动化机器学习系统的用户个性化机器学习模型的装置,机器学习模型由自动化机器学习系统生成。该系统包括被训练来对用户进行分类并基于用户的分类产生第一输出数据的第一神经网络、被训练来对机器学习模型进行分类并基于机器学习模型的分类产生第二输出数据的第二神经网络,以及经过训练以根据第一输出数据和第二输出数据预测相关性分数的第三神经网络。 [0012] 本发明的这些和其他特征和优点将通过以下对其说明性实施例的详细描述而变得显而易见,其将结合附图来阅读。 附图说明 [0013] 以下附图仅作为示例而不是限制性的方式呈现,其中相同的附图标记(当使用时)指示贯穿若干视图的对应元件,并且其中: [0014] 图1是概念性地描述通常涉及机器学习的生命周期的示例性过程的至少一部‑‑分的示意图; [0015] 图2是描述根据本发明实施例的用于在训练阶段对由自动化机器学习系统生成的机器学习模型进行个性化的示例性方法的至少一部分的流程图; [0016] 图3是描述据本发明的实施例的用于在预测阶段对由自动化机器学习系统生成的机器学习模型进行个性化的示例性方法的至少一部分的流程图; [0017] 图4是概念性地描述根据本发明的实施例的示例性系统的至少一部分的示意图; 以及 [0018] 图5是描述可用于实现本发明的一个或多个方面和/或元件的示例性计算机系统的至少一部分的框图。 [0019] 应当理解,图中的元件是为了简单和清楚而示出的。可能未示出在商业上可行的实施例中可能有用或必要的常见但易于理解的元件,以便于较小阻碍较小所示实施例的视图。 具体实施方式 [0020] 本文将在用于个性化由自动化机器学习系统生成的机器学习模型列表的说明性系统和方法的上下文中描述本公开的原理。然而,应当理解,在此示例性地示出和描述的特定实施例和/或方法被认为是示例性的而不是限制性的。此外,对于本领域技术人员来说,给出这里的教导将变得显而易见的是,可以对所示实施例进行许多修改,这些修改都在权利要求的范围内。即,对本文所示和描述的实施例没有任何限制意在或不应被推断。 [0021] 本发明涉及机器学习,更具体地,涉及自动化机器学习系统。如前所述,机器学习是对统计算法和统计模型的科学研究的应用,计算机系统可以在没有人工指令和/或计算机程序的情况下学习和执行特定任务。自动化机器学习是将机器学习应用于实际业务问题时通常涉及的步骤自动化的过程。目前市场上可用的自动化机器学习系统为用户(例如,数据科学家、机器学习工程师等)提供了有用的工具(例如,具有用户界面的软件),以自动化通常涉及将机器学习应用于现实世界业务的过程问题。这些自动化机器学习系统涵盖了应用机器学习从收集原始数据集到部署机器学习模型进行预测的整个生命周期。 [0022] 参考图2‑图4,根据本发明的一个或多个实施例,描述了一种用于个性化由自动化机器学习系统生成的机器学习模型列表的方法。根据本发明实施例的方法包括至少两个阶段:训练阶段10;和预测阶段12。在训练阶段10期间,通过处理训练数据集来训练多个计算系统14、16、18,这些计算系统在本文中可以被称为神经网络,每个计算系统可以包括神经网络。参考图4,一旦针对训练数据集训练这些神经网络14、16、18,它们就被应用于预测模式以在预测阶段12中个性化机器学习模型列表,如下面更详细描述的。 [0023] 在第一步骤20中,准备训练数据集以训练神经网络14、16、18以应用于预测阶段 12。这些训练数据集包括用户简档数据集(user profile dataset)、模型简档数据集(model profile dataset)和用户‑模型关系数据集(user‑model relationship dataset)。用户简档数据集是通过收集与自动化机器学习系统的用户相关的数据来准备的。如下表1所示,用户简档数据集包含与用户相关的属性。用户属性的非限制性示例是用户的商业行业(“领域”)(例如,银行、法律等)、数据科学(“DS级别”)经验年限、年龄(“Age”)、使用Python软件基金会的注册商标 (“Python”)的经验年限以及使用Oracle美国公司的注册商标 (“Java”)的经验年限。与用户相关的其他属性可能根据需要添加到用户简档数据集中。 [0024] 用户 领域 DS级别 年龄 Python Java … 1 银行 5年 1 5 2 … 2 医学 1年 1 2 2 … … [0025] 表1 [0026] 通过收集与先前由自动化机器学习系统生成的所有用户机器学习模型相关的数据来准备模型简档数据集。如以下表2所示,模型简档数据集包含与机器学习模型相关的属性。模型属性的非限制性示例是“管道(Pipeline)”、“准确度(Accuracy)”、“预测类型(Predict Type)”、“约束(Constraint)”、“特征工程(Feature Engineering)”和“深度学习(Deep Learning)”。可以根据需要将与模型相关的其他属性添加到模型简档数据集中。 [0027] 管道 精确度 预测类型 约束 特征工程 深度学习 … 1 0.86 二进制 预测时间 0 1 … 2 0.4 二进制 预测时间 1 0 … … [0028] 表2 [0029] 用户‑模型关系数据集是通过收集与用户对自动机器学习系统先前生成的每个机器学习模型执行的动作相关的历史数据来准备的。一旦自动化机器学习系统为用户生成模型列表,用户就可以对每个模型采取四种操作之一。用户可以:1)不采取任何行动;2)部署模型;3)查看模型的详细信息;或4)改进模型。如以下表3所示,用户‑模型关系数据集包含三个属性:“用户”、“管道”(模型)和“用户操作”(执行的用户操作)。 [0030] 管道 用户 用户操作 1 1 不采取行动 2 1 部署 2 2 再训练 … [0031] 表3 [0032] 一旦准备好训练数据集,就使用这些准备好的数据集训练多个神经网络14、16、 18,并将其应用于预测阶段12中的预测模式。如图4所示,多个神经网络14、16、18包括第一神经网络14、第二神经网络16和第三神经网络18。神经网络14、16、18中的每一个是前馈神经网络,其被配置为处理其中一个训练数据集并生成至少一个输出数据。每个神经网络14、 16、18包括多个处理节点、具有多个输入节点的输入层、具有多个隐藏层节点的至少一个隐藏层、以及具有至少一个输出节点的输出层。这些层与神经连接相连。多个神经网络14、16、 18中的每一个可以被配置为执行机器学习统计算法,其提供向量形式的连续输出,用于用户简档数据集中的每个用户、模型简档数据集中的每个模型或每个用户‑模型关系数据集中的用户‑模型关系进行聚类和分类。 [0033] 在训练阶段10的第二步骤22中,用户简档数据集被输入到第一神经网络14中。第一神经网络14处理包含在用户简档数据集中的数据并被训练以对自动化机器学习系统的用户准确地进行聚类和分类。用户简档数据集经由多个输入节点从输入层21向前流动到第一神经网络14的输出层23。 [0034] 然后,模型简档数据集被输入到第二神经网络16中。第二神经网络16处理包含在模型简档数据集中的数据并且被训练以对由自动化机器学习系统生成的机器学习模型准确地进行聚类和分类。模型简档数据集经由多个输入节点从输入层25向前流动到第二神经网络16的输出层27。 [0035] 利用这些训练数据集,第一神经网络和第二神经网络14、16通过概括其在训练阶段10期间从用户简档数据集和模型简档数据集中学习到的信息来学习如何产生新输入数据的输出数据(在预测阶段12期间)。多个神经网络14、16、18的训练通常涉及基于训练机器学习算法(反向传播)对神经网络的权重和偏差的修改。具体地,这些神经网络14、16、18的训练通过反向传播误差来执行以确定多个隐藏层的节点的权重以最小化神经网络14、16、 18中的误差。 [0036] 一旦第一神经网络和第二神经网络14、16中的每一个处理其各自的训练数据集,第一神经网络和第二神经网络14、16分别产生向量形式的第一训练输出数据29和向量形式的第二训练输出数据31。 [0037] 为了训练第三神经网络18,在第三步骤24中,将第一训练输出数据29和第二训练输出数据31提供给第三神经网络18的输入层33,用于处理数据29、31。此外,在第四步骤26中,将用户‑模型关系数据集输入到第三神经网络18的输出层35,用于处理数据集。因此,第三神经网络18通过监督学习来训练,其中第三神经网络18基于用户‑模型关系数据集中提供的用户‑模型对将输入映射到输出。 [0038] 第三神经网络18的训练与第一神经网络和第二神经网络14、16的训练同时发生; 即,在向第一神经网络和第二神经网络14、16提供输入并输出到第三神经网络18之后,一起训练三个神经网络14、16、18。以这种方式,神经网络14、16、18本质上创建新的“超级网络”。 [0039] 在第五步骤28中,第一神经网络、第二神经网络和第三神经网络14、16、18中的每一个的超参数被调整以实现神经网络14、16、18中的每一个的期望行为。超参数通常是在实际训练阶段10开始之前修复。此外,超参数定义了关于神经网络14、16、18的更高级别的概念例如复杂性或学习能力,并且超参数可以通过为每个超参数设置不同的值并选择训练更好的值来决定。超参数的非限制性示例包括神经网络中的迭代次数、学习率和隐藏层的数量。 [0040] 一旦所有神经网络14、16、18完成训练阶段10并实现期望的行为(或模式),神经网络14、16、18就被部署用于个性化自动化机器学习系统生成的机器学习模型的预测阶段12。 在预测阶段12期间,神经网络14、16、18为由自动化机器学习系统生成的每个机器学习模型的每个用户产生(或预测)相关性分数,如下面将更详细描述的。 [0041] 现在参考图3,在预测阶段12的第一步骤30中,将第二用户简档数据集和第二模型用户简档数据集分别输入到经训练的第一神经网络14和经训练的第二神经网络16。尽管这些数据集包括在训练阶段10期间与神经网络14、16尚未处理的用户和机器学习模型相关的新数据,但第二用户简档数据集和第二模型用户简档数据集中包括的属性是训练数据集(例如,第一用户简档数据集和第一模型简档数据集)中包括的相同属性。 [0042] 在第二步骤32中,经训练的第一神经网络14基于从处理训练数据集(例如,第一用户简档数据集)中的学习来处理和分类第二用户简档数据集中的每一行数据,并生成第一输出数据29。类似地,经训练的第二神经网络16基于从处理训练数据集(例如,第一模型简档数据集)中的学习来处理和分类第二模型简档数据集中的每一行数据,并生成第二输出数据31。 [0043] 在第三步骤34中,将第一输出数据29和第二输出数据31输入到经训练的第三神经网络18中。然后,经训练的第三神经网络18处理和分类第一输出数据和第二输出数据29、31并生成第三输出数据37。第三输出数据37包括指示第二用户简档数据集中的每个用户与第二模型简档数据中的自动化机器学习系统生成的每个机器学习模型之间的关系的相关性分数(数值)。至于相关性分数与预测模型的关系,对于任意给定的用户A,预测模型会预测该用户A是否会对生成的模型执行动作。如前所述,这个给定的用户A可以:1)不采取任何行动;2)部署模型;3)查看模型的详细信息;或4)改进模型。 [0044] 在第三神经网络18完成对每个用户‑模型组合的所有相关性分数的处理之后,在第四步骤36中,生成的与用户相关联的机器学习模型的列表可以在自动化机器学习系统内的用户界面(例如,图形用户界面(GUI))上呈现(例如,显示),每个模型显示每个用户动作的相关性分数。用户接收推荐列表或指示符,以建议用户可能希望使用特定类型的动作对哪个模型进行操作。例如,在本发明的一个或多个实施例中,算法预测用户可以部署列表上显示的第一模型,因此“推荐部署”图标或类似指示符可以显示在用户界面上.[0045] 本发明的实施例可以与几乎任何类型的计算机一起实现,而不管平台是否适合存储和/或执行程序代码。图5仅作为示例且不受限制地示出了根据本发明的实施例的适合于执行与所提出的方法相关的程序代码的计算系统500。 [0046] 计算系统500只是合适的计算机系统的一个示例,并且不旨在暗示对本文描述的本发明的实施例的使用范围或功能的任何限制,无论计算机系统500是否能够被实现和/或执行上述任何功能。在计算机系统500中,存在可与许多其他通用或专用计算系统环境或配置一起操作的组件。可适用于计算机系统/服务器500的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手动手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。计算机系统/服务器500可以在由计算机系统500执行的计算机系统可执行指令的一般上下文中描述,例如程序模块。通常,程序模块可以包括例程、程序、对象、组件、逻辑、数据结构等执行特定任务或实现特定抽象数据类型。计算机系统/服务器500可以在分布式云计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于本地和远程计算机系统存储介质中,包括存储器存储设备。 [0047] 如图5所示,计算机系统/服务器500以通用计算设备的形式示出。计算机系统/服务器500的组件可以包括但不限于一个或多个处理器或处理单元502、系统存储器504和将包括系统存储器504的各种系统组件可操作地耦合到处理器502的总线506。总线506表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用多种总线架构中的任何一种的处理器或本地总线。作为示例而非限制,此类架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。计算机系统/服务器500通常包括多种计算机系统可读介质。这样的介质可以是计算机系统/服务器500可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。 [0048] 系统存储器504可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)508和/或高速缓冲存储器510。计算机系统/服务器500还可以包括其他可移动/不可移动,易失性/非易失性计算机系统存储介质。仅作为示例,存储系统512可以被提供用于读写不可移动、非易失性磁介质(未示出并且通常称为“硬盘驱动器”)。尽管未明确示出,用于读写可移动非易失性磁盘(例如,“软盘”)的磁盘驱动器,以及对可移动非易失性光盘(例如CD‑ROM,DVD‑ROM或者其它光介质)读写的光盘驱动器。在这种情况下,每个驱动器可以通过一个或多个数据介质接口连接到总线506。如以下将进一步描绘和描述的,存储器504可以包括至少一个程序产品, [0049] 该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。 [0050] 具有一组(至少一个)程序模块516的程序/实用程序可以存储在存储器504中,例如但不限于操作系统、一个或多个应用程序、其他程序模块和程序数据。每个操作系统、一个或多个应用程序、其他程序模块和程序数据或其某种组合可以包括网络环境的实现。如本文所述,程序模块516通常执行本发明实施例的功能和/或方法。 [0051] 计算机系统/服务器500还可以与一个或多个外部设备518通信,例如键盘、定点设备、显示器520等;使用户能够与计算机系统/服务器500交互的一个或多个设备;和/或使计算机系统/服务器500能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以通过输入/输出(I/O)接口514发生。而且,计算机系统/服务器500可以通过网络适配器522与一个或多个网络通信,例如局域网(LAN)、通用广域网(WAN)、和/或公共网络(例如,互联网)。如图所示,网络适配器522可以通过总线506与计算机系统/服务器500的其他组件通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。 [0052] 已经出于说明的目的呈现了本发明的各种实施例的描述,但并不旨在穷举或限制于所公开的实施例。在不背离所描述实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择此处使用的术语是为了最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或者使本领域的其他普通技术人员能够理解此处公开的实施例。 [0053] 本发明可以实现为系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或介质),其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。 [0054] 介质可以是用于传播介质的电、磁、光学、电磁、红外线或半导体系统。计算机可读介质的示例可以包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、闪存驱动器和光盘。光盘的当前示例包括压缩盘只读存储器(CD‑ROM)、压缩盘读/写(CD‑R/W)、数字多功能盘(DVD)和蓝光盘。 [0055] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD‑ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。 [0056] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。 [0057] 用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。 [0058] 这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。 [0059] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。 [0060] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。 [0061] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 [0062] 本文使用的术语仅出于描述特定实施例的目的,并不旨在限制本发明。如本文所用,单数形式“一个(a)”、“一个(an)”和“该(the)”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解的是,当在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprising)”指定了所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。 [0063] 以下权利要求中的所有装置或步骤加上功能元件的相应结构、材料、动作和等同物旨在包括用于与其他要求保护的元件结合执行功能的任何结构、材料或动作,如具体要求保护的,本发明的描述是为了说明和描述的目的而呈现的,但并不旨在穷举或限制于所公开形式的本发明。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并使本领域的其他普通技术人员能够理解具有各种修改的各种实施例的本发明,适合于预期的特定用途。 [0064] 提供摘要以符合37C.F.R.§1.72(b),它需要一个摘要,使读者能够快速确定技术公开的性质。理解提交它不会被用来解释或限制权利要求的范围或含义。此外,在上述详细描述中,可以看出,各种特征被组合在一个实施例中以简化本公开。该公开方法不应被解释为反映所要求保护的实施例需要比每个权利要求中明确列举的更多特征的意图。相反,如所附权利要求所反映的,发明主题在于少于单个实施例的所有特征。因此,以下权利要求在此并入详细说明中,每个权利要求作为单独要求保护的主题独立存在。 [0065] 鉴于本文提供的本发明实施例的教导,本领域普通技术人员将能够考虑本发明实施例的技术的其他实现和应用。尽管这里已经参照附图描述了本发明的示例性实施例,但是应当理解,本发明的实施例不限于那些精确的实施例,并且在不背离所附权利要求的范围的情况下,本领域技术人员可以在其中做出各种其他变化和修改。