从异构源生成数据集用于机器学习的系统和方法与流程

文档序号:23679636发布日期:2021-01-23 10:02阅读:108来源:国知局
从异构源生成数据集用于机器学习的系统和方法与流程
从异构源生成数据集用于机器学习的系统和方法
[0001]
(一篇或多篇)相关申请的(一项或多项)交叉引用本申请要求2018年3月30日提交的美国临时申请号62/650,521和2019年3月28日提交的美国专利申请号16/368,804的优先权,特此通过引用并入其全部内容。
[0002]
技术概述本文描述的技术涉及从异构数据生成数据。更特别地,本文描述的技术涉及使用机器学习反馈回路从异构源自动生成数据集。
[0003]
介绍现代社会生成大量多样的数据。数据可以从天气数据(例如,温度)变化到交通数据(例如,给定道路上的汽车量)、到服务呼叫数据(例如,收到的呼叫数量)、到财务数据(例如,交易量)、到电力生产/消耗数据(例如,千瓦-小时),到许多其他形式的数据。寻找不同类型的数据与目标问题(例如,预测飓风)之间的关联性或联系在现代社会中可以是有价值的。
[0004]
然而,归因于组合爆炸,在大量多样的数据集间寻找关联性或适当的数据集可能是难以置信的困难问题。例如,当有数百或数千个不同的数据集(每个数据集包含多个不同的特征或列)时,组合的数量可能潜在地超过宇宙中的分子数量。于是,评测每种组合可能变得在计算上不可行。
[0005]
因此,将领会,在该技术领域和其他技术领域中,持续寻求新的和改进的技术、系统和过程。例如,用于从多样的异构源生成、设计或确定数据集的技术。


技术实现要素:

[0006]
提供了一种计算机系统,其被编程为从大量特征中选择特征集。基于元梯度信息来选择特征集,所述元梯度信息是从对较早所选特征集执行的机器学习过程中返回的。该过程可以迭代,直到找到满足或超过给定阈值的所选特征集。
[0007]
提供本发明内容是为了介绍下面在具体实施方式中进一步描述的概念选择。本发明内容既不意图标识所要求保护的主题的关键特征或必要特征,也不用于限制所要求保护的主题的范围;而是,本发明内容意图提供本文档中描述的主题的概述。因此,将领会,上述特征仅仅是示例,并且根据以下具体实施方式、附图说明和权利要求,本文所述主题的其他特征、方面和优点将变得清楚。
附图说明
[0008]
通过结合如下各附图参考以下对示例非限制性的说明性实施例的详细描述,将更好和更完整地理解这些和其他特征和优点:图1是根据某些示例实施例的示例系统架构图;图2图示了根据某些示例实施例的图1中所示系统的示例特征工程设计模块;图3图示了根据某些示例实施例的图1中所示系统的示例数据集扫描仪模块;图4图示了根据某些示例实施例的图1中所示系统的示例策略设计器模块;以及图5示出了可以在一些实施例中用于实现本文描述的特征的示例计算设备。
具体实施方式
[0009]
在以下描述中,出于解释而非限制的目的,阐述了诸如特定节点、功能实体、技术、协议等具体细节,以便提供对所描述技术的理解。对于本领域技术人员而言将清楚的是,除了下面描述的具体细节之外可以实践其他实施例。在其他实例中,为了不使描述因不必要的细节模糊不清,省略对众所周知的方法、设备、技术等的详细描述。
[0010]
在本具体实施方式中使用的章节仅仅是为了使读者了解每个章节的一般主题;如下面将看到的,许多特征的描述跨越多个章节,并且标题不应当被解读为影响任何章节中包括的描述的含义。
[0011]
在本文档中的许多地方、包括但不限于图1的描述中,描述了软件模块和软件模块执行的动作。这样做是为了易于描述;应当理解,无论何时在本文档中描述软件模块执行任何动作,该动作实际上是由底层硬件元件(诸如处理器和存储器设备)根据包括该软件模块的指令来执行的。关于这点的另外细节除了其他地方外还在下面图5的描述中提供。
[0012]
概述某些示例实施例涉及使用反馈回路和约束理论从异构数据源自动设计或生成新数据集。在某些示例中,从多个不同的数据源收集数据,并且然后进行后续处理以生成工程设计数据集(或工程设计特征)。原始特征和工程设计特征存储在分层图中,该分层图用于选择将被包括在进一步分析或处理的特征集中的特征。使用机器学习来处理特征集的所选特征,以生成用于改变或更新特征(以及那些特征所属的数据集)的分层图的元梯度。然后选择新的特征集合,并且该过程继续迭代,直到所选特征集合产生匹配至少一个目标信号的模型和输出数据。目标信号可以是例如生产配额、股票市场的下一天预测、公司的下一季度收益、目标夏普比率、天气预测等
……
。本文的技术提供的技术改进可以应用在不同的领域中,从医疗保健、到媒体、到教育、到金融、到证券、到运输,以及具有不同问题但具有可以使用本文的技术分析的大(或许多不同)数据集的许多其他行业和领域。
[0013]
本文讨论的方法允许处理数百或数千(或甚至更多)不同的特征(以及那些特征的计算上不可行数量的组合)。
[0014]
图1的描述图1是根据某些示例实施例的示例计算机系统架构图。计算机系统100接收并处理数据集a、b、c直至数据集n。这些数据集可以来自相同的(例如,数据源a)或不同数据源(例如,数据源a、b、c、n
……
)。计算机系统100被配置为处置来自任意数量的数据源的任意数量的数据集。数据集可以是不同类型的数据,并且可以是以任何形式的。例如,不同类型的数据包括从一个或多个温度传感器聚集的温度数据、一个或多个证券的电子交换数据、服务呼叫数据(诸如公司在24小时时段中接收的呼叫总数量)、以及许多其他类型的数据。实质上,任何类型的数据都可以包括在由数据源供应给系统100的多个不同的数据集中。实际上,本文的技术被设计成与数百或数千个不同的数据集及其对应的源一起工作。
[0015]
在某些实例中,数据源可以包括内部数据源(例如,由正在操作计算机系统100的相同组织操作的数据源)。数据源可以包括数据有线服务提供商(例如,与路透社是新闻服务的方式类似的数据“有线”服务)。在某些实例中,数据源可以由系统100订阅。数据源和用于由那些数据源供应的数据集的数据格式在本质上可以是异构的或同构的,并且照此任何类型的数据格式可以是可接受的。
[0016]
在某些示例中,来自各种数据源的数据可以存储在数据仓库或数据湖(未示出)中,所述数据仓库或数据湖然后可以由计算机系统100查询和操作。例如,数据源可以向这样的数据仓库供应数据集a、b、c、n,并且系统100可以访问数据仓库来处理存储在其中的数据集。
[0017]
etl(提取、传输、加载)模块102是计算机系统100的部分。在某些示例中,etl模块也可以是其自己的与计算机系统100通信的专用计算机系统。etl模块102负责:1)从数据源(或其中存储数据的数据仓库)提取数据;2)将数据从其存储的(或原始格式)变换成更适合由训练系统104分析的格式;以及3)将数据加载到另一个数据库或其他存储装置中,以供训练系统104和其中的模块进一步处理。
[0018]
在某些示例实施例中,训练系统104可以是其自己的与etl模块102分离的计算机系统。训练系统104可以在基于云的计算机环境中实现,并且可以跨一个或多个物理计算机节点实现(例如,如图5中所示)。在某些示例中,训练系统104的不同组件或模块可以在虚拟机上实现,所述虚拟机可以在对应的物理计算机硬件上实现。
[0019]
训练系统104包括操作来生成数据集112的三个分离的模块,该数据集112可以应用于模型(见图4),以实现目标信号114。这三个模块包括(在图2中描述的)特征工程设计模块106、(在图3中描述的)数据集扫描仪模块108和(在图4中描述的)策略设计器模块110。
[0020]
特征工程设计模块106对通过etl模块102传递的数据进行操作。模块106生成基于所获得源数据的新数据列。作为一个非限制性示例,特征工程设计模块106可以取得两段(或更多段)数据的平均值来生成第三段数据。例如,它可以对来自原始数据集的高温度值和低温度值进行平均,以创建第三值(平均值)。如下面所解释的,其他类型的函数、变换等可以用于工程设计特征数据。工程设计数据集(其可以包括原始数据集)被传递到数据集扫描仪模块108上。在某些示例中,可以跳过由特征工程设计模块106提供的功能性;例如,如果对于处理而言不需要工程设计特征的话。
[0021]
数据集扫描仪模块108是由训练系统104用来针对目标信号114生成期望输出(数据集112和用于该数据集的模型)的反馈回路的部分。在某些示例中,数据集扫描仪模块108对数据(其由数据集和个体数据集的特征组织)使用启发式分层图搜索来选择要测试的特征子集(本文也称为列)。然后,所选特征集(多个特征)被传递到策略设计器模块110——训练系统104采用的反馈回路的另一部分。
[0022]
策略设计器模块110使用机器学习来针对从数据集扫描仪模块108接收的所选特征集的数据开发策略。该策略连同元梯度信息(也称为元梯度或元梯度数据)和针对所选特征集生成的模型循环回到数据集扫描仪108,该数据集扫描仪108关于接下来选择什么特征进行迭代(将元梯度信息考虑在内)。这在数据集扫描仪108和策略设计器模块110之间形成反馈回路。返回的元梯度信息可以指示所选特征集中的每个特征相对于目标有多有效或多好,和/或特征集合相对于目标信号有多有效。
[0023]
图2的描述——特征工程设计:图2图示了根据某些示例实施例的系统100的示例特征工程设计模块106。输入数据202包括多个不同的数据集d
1-d
t
。并且每个数据集可以包括一个或多个特征x
0-x
n
(也称为列),每个特征具有个体值(行)。输入数据202可以从如图1中所示的etl模块102和/或已经填充有来自etl模块102的数据的数据库或其他存储系统输出。
[0024]
特征工程设计模块106接收输入数据202,并基于输入数据工程设计附加特征。附加特征的工程设计可以使用变换、域特定编码、分类编码或其他过程,所述过程取得输入数据的某个子集来从该输入数据工程设计附加特征。可以如何工程设计特征的一个示例可以是取得两个特征的平均值来工程设计第三特征(例如,从x
0
和x
1
取得数据的平均值以在工程设计的特征x
n+1
下创建数据值)。其他特征工程设计可以包括数据编码、压缩、解压缩、最大值、最小值、中值等
……
)。由特征工程设计模块106执行的变换、编码或其他过程的性质可以基于正被处置的数据的类型。例如,特征工程设计可以基于作为天气数据对比汽车性能数据的数据、或者来自电子交换计算机系统的数据来选择。
[0025]
在任何情况下,由特征工程设计模块106执行的过程结果得到输出数据204。输出数据204包括原始输入数据202(例如,d
1-d
t
)加上附加的工程设计的特征以及特征工程设计模块106已经工程设计或以其他方式添加的那些特征的对应数据。工程设计的特征可以被生成到一个或多个附加数据集d
v
中。在某些示例中,从原始数据集工程设计的特征可以被包括到相同的工程设计的数据集中。
[0026]
在某些示例中,可以从多个不同的数据集工程设计特征。例如,来自第一数据集的特征和来自第二数据集的特征可以用于工程设计第三特征(其可以被包括在第一、第二或第三新的或现有的数据集中)。例如,工程设计的特征可以是纽约市平均温度与纽约股票交易所平均交易量之间的计算比率。在某些示例中,所有工程设计的特征可以属于它们自己的数据集(例如,工程设计的特征的数据集)。
[0027]
特征和数据集可以被布置在分层图206(一类数据结构)中,其中每个数据集(例如,d
1
ꢀ-ꢀ
d
v
)是根节点的子节点,并且每个特征(例如,x
2
ꢀ-ꢀ
x
9
)是相应数据集的节点的子节点。因此,来自特征工程设计模块106的输出可以是图206。在某些示例中,每个工程设计的数据集被包括作为新节点(例如,206中的d
v
)。在某些示例中,所有工程设计的特征可以被包括作为相同工程设计的特征数据集的部分。在某些示例中,工程设计的特征被组织成基于原始数据的工程设计的特征数据集。因此,基于数据集d
1
的工程设计的特征可以包括基于来自d
1
的特征的那些工程设计的特征,并且基于其他数据集的其他特征可以被包括在分离的工程设计的特征数据集中。
[0028]
将领会,特征工程设计模块106可以被配置为利用任何类型的输入自动操作。还将领会,在某些示例实施例中,特征与工程设计的特征之间的分层关系(例如,它们共享相同的祖父节点)可以帮助解决在选择特征中的组合爆炸(如本文进一步讨论的)。
[0029]
图3的描述-数据集扫描仪图3图示了根据某些示例实施例的图1中所示系统的示例数据集扫描仪模块108。数据集扫描仪模块108被配置为寻找特征集合(例如,多个特征),该特征集合在获得目标信号(例如,满足给定的函数或模型)方面表现得“良好”(例如,它们超过预定阈值)。
[0030]
数据集扫描仪模块接收特征、那些特征的层级(例如,树206)和数据集和/或特征性能度量(例如,元梯度信息或给定特征或数据集相对于给定目标或度量表现得多好)。如本文所述,然后数据集扫描仪模块108使用该数据。
[0031]
在某些示例中,数据集扫描仪模块108将利用至少一个惩罚函数、至少一个约束函数和/或至少一个目标函数来操作。在某些示例中,系统100用于确定特征集合直到收敛的每次总体使用将使用或依赖于单个目标函数。这样的目标函数可以贯穿针对该目标函数确
定特征集合、模型和策略的过程而保持。在某些示例中,不同的目标函数可以用于不同的过程,所述过程用于寻找相同目标信号的特征(目标信号的示例可以是股票的买入/卖出指示符,或者城市的天气预测)。穿过确定特征集的给定过程,惩罚函数和约束函数可以保持不变。在某些示例中,这些函数可以是可切换的,使得用户或管理员可以根据需要打开和关闭它们(例如,它们可以基于用户输入)。例如,多个不同的目标函数可以存储在系统100内,并且可以取决于目标的性质或正寻求的特征的类型而是可使用的。在某些示例中,可以基于特征或特征集合已经如何被处理来开启(或关断)函数。
[0032]
约束函数指示选择特征时将不会发生的情形。例如,一个约束可以是每个所选特征必须来自不同的数据集,或者如果选择4个特征,则它们必须来自至少3个不同的数据集。约束起作用来过滤掉不允许的特征集。
[0033]
惩罚函数可以用于惩罚与特征选择相关的某个情形集合。换言之,某事物可以被允许发生,只是包括和考虑该事物(例如,特征)的“成本”更多。惩罚函数可以操作使得惩罚函数被破坏得越多,结果将被评分为“越差”。例如,惩罚函数可以是每个特征来自相同数据集。如果选择来自相同数据集的特征,则对来自相同数据集的每个特征应用1%的惩罚(例如,如果从相同数据集中选择5个特征,则应用5%的惩罚)。
[0034]
目标函数是对于特征集要实现的目标。目标函数可以被认为定义了可准许的所找到的解的值(例如,策略设计器发现的每个特征集)。目标函数涉及正在寻求的目标或目标信号(例如,在用于给定特征集的模型的训练期间使用的目标)。股票市场示例中的目标信号的示例可以是投资的总回报。目标函数可以取得头寸(以及潜在的策略)回报的加权总和,并从加权总和减去例如交易成本(例如,执行每笔交易的成本)或其他成本、价值等
……
,以实现“更接近”可能生成的实际回报的计算。换言之,在某些情况下,目标函数可以被使用来进一步作用于来自模型和/或策略输出的信号或使用所述信号。
[0035]
在某些示例中,可以包括每种函数的多个函数(例如,4个惩罚函数、2个约束函数和3个目标函数——然而在大多数情况下,每过程将使用一个目标函数)。这些函数与从策略设计器110返回的信息(例如,元梯度信息)结合使用,以从图搜索中选择特征。
[0036]
数据集扫描仪模块108包括两个子模块,一个子模块确定选择什么特征(分层启发式图搜索模块302),以及一个子模块对找到的特征集迭代地改进(优化器模块304)。因此,这两个模块协同工作来选择特征,然后将所述特征传递给策略设计器110进行测试。
[0037]
分层启发式图搜索模块302以特征工程设计模块106提供的完整特征集合和数据集开始(例如,该过程的第一次迭代)。这可以是例如图206。模块302负责初始选择要测试的特征。在某些示例中,针对特征集的特征选择可以通过基于特征属于哪个数据集来选择特征而不是随机挑选特征而发生。该技术允许减少用于选择特征的搜索空间,从而增加训练过程的效率。
[0038]
考虑其中数据集a、b和c包括对应特征的示例。模块302可以初始根据父数据集挑选特征。例如,初始选择aac,使得选择来自数据集a的一个特征,选择来自数据集a的另一个特征,并且选择来自数据集c的一个特征。在某些示例中,初始数据集组的选择(例如,aac)可能是随机的。在某些示例中,初始选择可以基于每个数据集和/或那些数据集内的特征的加权概率(例如,可能因为数据集a被加权为2、c被加权为1并且b被加权为0.25而选择了aac)。因此,初始随机化选择可能受到权重的影响。
[0039]
一旦选择了父数据集,则可以选择那些数据集内的个体特征。在某些示例中,这可以是随机的。因此,例如,如果数据集a包括特征1-6,则模块302可以选择特征1和特征4。与数据集的选择一样,特征的选择可能受到分配给数据集内特征的权重的影响。在某些示例中,特征的选择是在没有替换的情况下执行的。因此,一个特征将不会被选择两次,因为在选择该特征后,要从中汲取的特征的总集合减少。在某些示例中,可以应用约束来控制如何选择特征。例如,约束可以阻止从数据集a中选择多于n个特征。
[0040]
分层启发式图搜索模块302还可以包括控制给定数据集多么频繁地被采样的启发法。在某些示例中,可以存储与正在寻求的目标信号相关的数据集的相关性值或其他分数。例如,如果目标信号是预测下一次飓风,则具有南大西洋温度值的数据集可以比具有客户服务呼叫数据的数据集权重更大。也可以基于那些特征如何映射到目标信号,将启发法应用于个体特征。
[0041]
数据集(或特征)与给定目标或多或少相关的可能性可以通过针对给定目标只测试该数据集(或特征)来确定。在某些示例实施例中,每个数据集和/或特征可以包括由启发法使用的相关性分数,以确定给定数据集或特征将多么频繁地被挑选。相关性分数(例如,以上讨论的加权概率)可以指示给定数据集或特征与目标有多相关(例如,它与飓风出现的可能性的相关性)。
[0042]
一旦分层启发式图搜索模块302已经选择了初始特征集,该特征集可以被传递给优化器模块304。在某些示例中,优化器针对初始特征集被跳过,并直接传递到策略设计器110。
[0043]
优化器模块304被配置为取得特征的初始选择,并优化那些特征(及其对应的数据集)以更接近目标函数。换言之,如果特征的初始选择是从数据集aac中汲取的,则优化器304可以(在多次迭代之后)确定数据集“r”、“e”、“w”提供最佳结果(连同那些个体数据集内的特征)。这通过如下方式实现:将所选特征传递给策略设计器110,并后续基于从策略设计器110返回的所返回元梯度信息和/或其他数据优化要从图206中选择哪些特征。
[0044]
作为示例,假设a
1
a
3
c
4
(例如,数据集a中的第一特征和第三特征以及数据集c中的第四特征)是由策略设计器110处理的特征集合。从策略设计器110返回的元梯度信息可以包括如下信息:a
1
表现良好(例如,由值2表示),a
3
表现不佳(值0.1),c
4
表现尚可(由值1表示),以及a
1
c
4
的组合表现非常良好(由值4表示)。该元梯度信息可以用于通过丢弃a
3
并保留a
1
和c
4
来修改用于下一次迭代的所选特征(基于特定用例,其他修改可以是可能的)。然后,302中的图搜索和/或优化器304可以用于选择a
3
(被丢弃的特征)的替换物来被包括在所选特征集中,该所选特征集然后被传递回策略设计器110进行处理。
[0045]
在某些示例中,在没有替换的情况下选择所选特征集的新的所选特征(例如,对于该下一次迭代,a
3
、a
1
和c
4
从可能的选择集合中被移除——a
1
和c
4
已经被选择,并且a
3
已经被丢弃)。在某些示例中,a
3
不只是针对下一次迭代从可能的特征集合中丢弃(例如,它可以针对该目标的所有未来迭代从可能特征集合中被完全移除)。因此,在某些示例中,随着执行越来越多次迭代(并且越来越多的特征被“丢弃”),用来从中选择的特征总数量可以逐渐减少。在某些示例中,特征(例如,以上示例中的a
3
)可以作为只一次迭代(或一些其他预定次数的迭代)的可能选择而被移除。在某些示例中,特征被移除的迭代次数基于该特征的元梯度(例如,元梯度越差,该特征作为选择被移除的迭代越多)。
[0046]
在某些示例中,元梯度信息410用于确定所选特征集(例如,由策略设计器110处理的集合)内的什么特征(或特征组——即特征集中的特征的任何子集)应当被保留,并且什么特征应当被舍弃。换言之,应当如何改变特征集和/或应当如何替换和/或保留该特征集内的特征。在某些示例中,元梯度信息的类型可以取决于所使用的优化过程的类型。
[0047]
在某些示例中,数据集扫描仪模块304可以包括不同类型的优化器。优化器可以基于以下优化算法中的一个或多个:梯度下降、牛顿-拉夫森、内尔德-米德、蚁群、贪婪搜索等。使用的优化器可以取决于特定的问题或目标。例如,如果正在开发的模型是决策树,则优化器可以确定决策树中特定特征的使用水平。换言之,如果特征“a”被使用5次,并且特征“b”被使用1次,则优化器可能倾向于将特征“a”包括在正被分析的特征集中(例如,优化器将更频繁地挑选它)。
[0048]
以下是优化器可以如何工作的说明性示例。首先,确定数据集的初始分组。例如,aab——或者来自数据集a的一个特征、来自数据集a的另一个特征以及来自数据集b的第三特征。接下来,可以选择来自那些数据集的特征选择——例如,a
1
、a
4
和b
6
(例如,a的特征1、a的特征4和b的特征6)。然后,该特征组被传递给策略设计器110,策略设计器110针对测试的特征集返回元梯度信息、模型数据和生成的策略。如本文所指出的,元梯度信息可以表示测试的特征集内的每个特征有多好,以及特征集体集合有多好。元梯度信息可以表示目标函数对测试的特征集内的特征的敏感度以及总体特征集体集合的拟合度。在某些示例中,从策略设计器返回的元梯度信息的每个实例可以表示该特征集有多可能将被再次使用的分数(例如,它表现得多良好)。
[0049]
在某些示例中,可以组合元梯度信息的多个不同实例,以推断那些所选特征集内的哪些特征对于实现给定目标是“更”相关或更好的。例如,假设特征a、b和c在第一特征集中,并且特征a、b和d在第二特征集中。abc的所返回的元梯度信息可以是值2(其中更高的数字指示组合表现得“更好”),并且abd的元梯度信息可以是1。因此,相对于a和b的个体元梯度信息可以是3 (2+1),c可以是2,并且d可以是1。数据集扫描仪模块然后可以(例如,作为扰动函数的部分)根据返回的元梯度信息调整选择a、b、c和d的转移概率。这可能引起a和b比先前(相对地)更频繁地被选择(或者更可能被保留在下一个要测试的特征集中),而d没有a和b那么频繁地被选择。
[0050]
优化器模块304使用返回的策略和返回的元梯度信息来更新用于存储数据集和特征的图搜索中的启发法和转移概率。在某些示例中,还应用约束函数和/或惩罚函数。因此,可以基于返回的策略和元梯度信息来更新和/或修改原始图和/或与该图相关联的启发法。
[0051]
图3中的收敛块306测试对于所选特征集是否满足收敛标准。如果存在收敛,则输出最终特征集310和/或基于该特征集的数据集。如果没有收敛,则新的所选特征被传递给策略设计器110。
[0052]
在某些示例中,可以通过达到或超过预定义的性能水平(投资回报、准确性等
……
)来实现收敛。在某些示例中,可以通过经过预定义次数的迭代而没有产生新的最佳表现模型来满足收敛。在某些示例中,当连续次数的迭代具有在定义的阈值之下的性能改进时,可以满足收敛。例如,如果阈值为0.01,并且“最佳模型”为1,并且开发了具有为1、1.0002、1.001、0.9999的值的一系列模型,则可以认为模型已经收敛。在某些示例中,当在给定次数的迭代之后没有改进最佳模型时,可以实现收敛。
[0053]
策略设计器模块的描述——图4:图4图示了根据某些示例实施例的图1中所示系统的示例策略设计器模块110。
[0054]
由数据集扫描仪108选择的特征列表或集合被传递给策略设计器模块110。在收到特征列表后,策略设计器模块(或另一个模块)将检索与那些特征相关联的列中的数据,并生成新的数据集。在该过程期间,处置nan(非数字的数据)(例如,设置为零或从数据集中移除),并且定制数据集被传递给策略模块110。
[0055]
具体地,定制数据集被传递到预期学习器404中。预期学习是机器学习模块402的部分,并且预期学习器404学习目标。数据还被传递给方策学习器406,方策学习器406也接受来自预期学习器404的预期和误差。方策学习器模块406取得关于目标的预期,并将其转换成可行动的策略412(其由比例转换器模块408缩放)。在某些实例中,策略可以被称为方策。策略反映应用于所选特征集以实现(或至少寻求实现)目标信号的策略。例如,如果目标信号是投资回报,那么所选特征组的导出策略是将寻求针对那些特征实现该目标的策略。
[0056]
来自机器学习模块402的潜在输出之一是模型414。模型414可以用于所选特征集的未来数据集,以确定应当基于输入数据实现的策略。因此,如果利用特征集列表a使用本文的技术开发特定的模型。那么该相同的模型可以在6个月内与具有更新数据(例如,包括来自过去6个月的新数据)的相同特征集列表a一起再次使用,来开发基于或使用原始创建的模型的策略。
[0057]
模型414可以包括或涉及模型的参数、模型参数化、生成的模型和/或策略412(有时称为方策)。因此,在某些示例中,从策略设计器模块110生成的模型414和策略412可以是相同的。
[0058]
以下是其中模型414和策略412可以是相同(或几乎相同)的示例。模型414被生成以提供用于(例如,每天)买入和卖出股票的信号。可以生成策略412,该策略412使用买入/卖出信号来执行给定股票(或股票组等
……
)的买入和卖出。在这样的实例中,模型和策略在功能上是等同的(或者至少非常相似)。然而,可以生成另一策略412,该策略412使用来自相同模型的相同买入/卖出信号,该策略412进一步作用于买入/卖出信号。例如,策略可以使用信号,使得仅当存在连续两天模型输出买入信号时才执行买入。在这样的实例中,策略412进一步作用于从模型输出的信号。
[0059]
作为另一个示例,考虑预测给定一天是否将下雨的模型(例如,来自该模型的输出只是针对下雨预测的是/否)。可以生成的利用该模型输出的策略(例如,它作用于该输出)可以决定人员是否应当带伞。
[0060]
比例转换408从机器学习模块402取得输出信号,并生成人类可理解的元素形式(或其他机器可读形式)。在某些实例中,比例转换408充当机器学习模块402与正消费来自机器学习模块402的输出的任何事物之间的翻译器。如果消费者是人类,这可能结果得到例如红光/绿光输出,或者加和减输出。
[0061]
元梯度计算器400取得由机器学习模块402开发的所得模型414,并处理该模型以确定关于由机器学习模块402开发的模型的重要之处。这可以使用例如lime(局部可解释模型-不可知解释)、深度泰勒分解/扩展、基尼分数等。换言之,由机器学习模块402开发的模型被处理以获得关于模型(或模型内的特征)的元梯度信息410。将领会,根据本文描述的技术,可以使用用于获取元梯度信息410的不同技术。
[0062]
最后,策略设计器110将元梯度信息410返回到数据集扫描仪108、返回将输入信号转换成输出信号的模型414和/或返回策略(例如,其已经被比例转换模块408缩放)。该信息可以用于进一步评估和扰动由数据集扫描仪模块108执行的图搜索。在某些示例中,该策略可以被传递给用户,以确定如何继续该特定开发的策略。
[0063]
示例伪代码以下是数据集扫描仪108的示例伪代码:要求:f:所有特征集的集合要求:h_p:在所有特征的层级中选择特征的概率要求::要寻找的特征数量1:f =从f中选择具有h_p的n个特征2:while not done(例如,未收敛)do:3:
ꢀꢀ
策略设计器策略,模型,元梯度4:
ꢀꢀ
ifj(策略)≥max(j(历史策略))5:
ꢀꢀꢀꢀ
策略,模型,f
ꢀ→
最佳策略,最佳模型,最佳f6:
ꢀꢀ
扰动_f(元梯度,h_p)
→ꢀ
f7:return(最佳策略,最佳模式,最佳f)对于数据集扫描仪108的伪代码示例,所有特征集(或所有特征)的集合被提供为“f”。针对给定的所选特征集选择特征的概率被提供为“h_p”。如本文所解释的,该值可以是静态的(例如,给定特征的相关性值),并且可以通过策略设计器执行的处理期间生成的元梯度数据进一步修改。在某些示例中,要寻找的特征(例如,其将被包括到给定的特征集中)的数量可以被提供为
“”
。在某些示例中,这可以是特征数量的最大值,或者可以是所有所选特征集都具有这样数量的特征的严格值。接下来,从所有特征集的集合中生成所选特征集。该所选集合内的特征可以基于h_p概率来选择。
[0064]
一旦选择了第一特征集,则该过程继续,直到收敛。在该过程期间,每个所选特征集和损失函数被提供给策略设计器110,策略设计器110返回策略、模型和元梯度数据。如果该策略实现的目标(例如,“j(策略)”)优于针对先前开发的策略的所有先前实现的目标,则新的最佳策略连同其对应的模型以及用于开发模型和策略的特征被存储。基于扰动所有可能的特征集(或所有可能的特征)的集合,选择新的特征集(或者替换/改变特征集内的特征)。这可以将返回的元梯度信息和/或初始选择概率考虑在内。一旦实现收敛,那么最佳策略、最佳模型和最佳所选特征集作为输出被返回。
[0065]
以下是针对策略设计器110的示例伪代码:要求:f:特征集合要求:::损失函数1:随机初始化θ2:在上训练θ3:计算目标4:计算θ相对于j的元梯度
5:return(,θ,元梯度)对于策略设计器110的伪代码示例,输入可以包括所选特征集(f)和损失函数()。θ的初始化可以包括模型的参数、模型参数化、模型和/或策略(有时称为方策)的初始化。模型(例如,θ)然后以相对于给定的模型和/或策略最小化损失函数的方式在损失函数上进行训练。这可以包括生成模型、模型的参数、模型参数化和/或策略。一旦模型被训练,则相对于经训练的模型和/或策略(例如,它为给定的特征集f提供值)计算目标(j),其有时被称为目标函数。然后,相对于所计算的目标针对模型和/或策略计算元梯度信息。这样的元梯度是每特征和/或每特征集的。
[0066]
图5的描述图5是根据一些实施例的示例计算设备500(其也可以被称为例如“计算设备”、“计算机系统”或“计算系统”)的框图。在一些实施例中,计算设备500包括以下各项中的一个或多个:一个或多个处理器502;一个或多个存储器设备504;一个或多个网络接口设备506;一个或多个显示接口508;以及一个或多个用户输入适配器510。附加地,在一些实施例中,计算设备500连接到或包括显示设备512。如下面将解释的,这些元件(例如,处理器502、存储器设备504、网络接口设备506、显示接口508、用户输入适配器510、显示设备512)是硬件设备(例如,电子电路或电路的组合),所述硬件设备被配置为执行用于计算设备500的各种不同功能。
[0067]
在一些实施例中,处理器502中的每一个或任何一个是或者包括例如单核或多核处理器、微处理器(例如,其可以被称为中央处理单元或cpu)、数字信号处理器(dsp)、与dsp核心相关联的微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)电路或片上系统(soc)(例如,包括cpu和诸如存储器、联网接口等其他硬件组件的集成电路)。和/或,在一些实施例中,处理器502中的每一个或任何一个使用指令集架构,诸如x86或高级risc机器(arm)。
[0068]
在一些实施例中,存储器设备504中的每一个或任何一个是或者包括随机存取存储器(ram)(例如动态ram(dram)或静态ram(sram))、闪速存储器(基于例如nand或nor技术)、硬盘、磁光介质、光学介质、高速缓冲存储器、寄存器(例如,其保存指令)或者执行数据和/或指令(例如,在处理器502上或由处理器502执行的软件)的易失性或非易失性存储的其他类型的设备。存储器设备504是非易失性计算机可读存储介质的示例。
[0069]
在一些实施例中,网络接口设备506中的每一个或任何一个包括一个或多个电路(诸如基带处理器和/或有线或无线收发器),并且针对一种或多种有线通信技术(诸如以太网(ieee 802.3))和/或无线通信技术(诸如蓝牙、wifi (ieee 802.11)、gsm、cdma2000、umts、lte、高级lte(lte-a)和/或其他短程、中程和/或远程无线通信技术)实现层一、层二和/或更高层。收发器可以包括用于传送器和接收器的电路。传送器和接收器可以共享共同外壳,并且可以共享外壳中的一些或全部电路来执行传送和接收。在一些实施例中,收发器的传送器和接收器可以不共享任何共同电路和/或可以在相同或分离的外壳中。
[0070]
在一些实施例中,显示接口508中的每一个或任何一个是或者包括一个或多个电路,所述电路从处理器502接收数据,基于接收到的数据生成(例如,经由分立的gpu、集成的gpu、执行图形处理的cpu等)对应图像数据,和/或将生成的图像数据输出(例如,高清晰度多媒体接口(hdmi)、显示端口接口、视频图形阵列(vga)接口、数字视频接口(dvi)等)到显
示图像数据的显示设备512。替代地或附加地,在一些实施例中,显示接口508中的每一个或任何一个是或者包括例如视频卡、视频适配器或图形处理单元(gpu)。
[0071]
在一些实施例中,用户输入适配器510中的每一个或任何一个是或者包括一个或多个电路,所述电路接收和处理来自一个或多个用户输入设备(图5中未示出)的用户输入数据,所述用户输入设备被包括在计算设备500中、附接到计算设备500或以其他方式与计算设备500通信,并且所述电路基于接收到的输入数据向处理器502输出数据。替代地或附加地,在一些实施例中,用户输入适配器510中的每一个或任何一个是或者包括例如ps/2接口、usb接口、触摸屏控制器等;和/或用户输入适配器510促进来自用户输入设备(图5中未示出)的输入,所述用户输入设备诸如例如键盘、鼠标、触控板、触摸屏等
……

[0072]
在一些实施例中,显示设备512可以是液晶显示(lcd)显示器、发光二极管(led)显示器或其他类型的显示设备。在其中显示设备512是计算设备500的组件(例如,计算设备和显示设备被包括在统一的外壳中)的实施例中,显示设备512可以是触摸屏显示器或非触摸屏显示器。在其中显示设备512连接到计算设备500(例如,在计算设备500的外部,并经由有线和/或经由无线通信技术与计算设备500通信)的实施例中,显示设备512例如是外部监视器、投影仪、电视、显示屏等
……

[0073]
在各种实施例中,计算设备500包括一个、或两个、或三个、四个或更多个以上提及的每一种或任何一种元件(例如,处理器502、存储器设备504、网络接口设备506、显示接口508和用户输入适配器510)。替代地或附加地,在一些实施例中,计算设备500包括以下各项中的一个或多个:包括处理器502的处理系统;包括存储器设备504的存储器或存储系统;以及包括网络接口设备506的网络接口系统。
[0074]
在各种实施例中,计算设备500可以以许多不同的方式布置。仅作为一个示例,计算设备500可以被布置成使得处理器502包括:多核(或单核)处理器;第一网络接口设备(其实现例如wifi、蓝牙、nfc等
……
);实现一种或多种蜂窝通信技术(例如,3g、4g lte、cdma等
……
)的第二网络接口设备;存储器或存储设备(例如,ram、闪速存储器或硬盘)。处理器、第一网络接口设备、第二网络接口设备和存储器设备可以集成为相同soc(例如,一个集成电路芯片)的部分。作为另一个示例,计算设备500可以被布置成使得:处理器502包括两个、三个、四个、五个或更多个多核处理器;网络接口设备506包括实现以太网的第一网络接口设备和实现wifi和/或蓝牙的第二网络接口设备;并且存储器设备504包括ram和闪速存储器或硬盘。
[0075]
如先前指出的,无论何时在本文档中描述软件模块或软件过程执行任何动作,该动作实际上都是由底层硬件元件根据包括软件模块的指令执行的。与前述一致,在各种实施例中,使用图5的计算设备500的示例来实现计算机系统100、etl模块102、训练系统104、特征工程设计模块106、数据集扫描仪108、策略设计器110——对于本段落剩余部分,它们中的每一个为了清楚将被单独称为“组件”——中的每一个或任何组合。在这样的实施例中,以下内容适用于每个组件:(a)图5中所示的500计算设备500的元件(即,一个或多个处理器502、一个或多个存储器设备504、一个或多个网络接口设备506、一个或多个显示接口508和一个或多个用户输入适配器510或前述的适当组合或子集)被配置为、适配为和/或编程为实现本文描述为由组件和/或由本文描述为包括在组件内的任何软件模块执行的动作、活动或特征中的每一个或任何组合;(b)替代地或附加地,就本文描述一个或多个软件
模块存在于组件内而言,在一些实施例中,这样的软件模块(以及本文描述为由软件模块处置和/或使用的任何数据)存储在存储器设备504中(例如,在各种实施例中,在诸如ram或指令寄存器之类的易失性存储器设备中,和/或在诸如闪速存储器或硬盘之类的非易失性存储器设备中),并且本文描述为由软件模块执行的所有动作由处理器502酌情结合计算设备500中的和/或连接到计算设备500的其他元件(即,网络接口设备506、显示接口508、用户输入适配器510和/或显示设备512)来执行;(c)替代地或附加地,就本文描述组件处理和/或以其他方式处置数据而言,在一些实施例中,这样的数据存储在存储器设备504中(例如,在一些实施例中,在诸如ram之类的易失性存储器设备中,和/或在诸如闪速存储器或硬盘之类的非易失性存储器设备中)和/或由处理器502酌情结合计算设备500中的和/或连接到计算设备500的其他元件(即,网络接口设备506、显示接口508、用户输入适配器510和/或显示设备512)来处理/处置;(d)替代地或附加地,在一些实施例中,存储器设备502存储指令,当由处理器502执行时,所述指令引起处理器502酌情结合计算设备500中的和/或连接到计算设备500的其他元件(即,存储器设备504、网络接口设备506、显示接口508、用户输入适配器510和/或显示设备512),来执行本文描述为由组件和/或由本文描述为包括在组件内的任何软件模块执行的动作中的每一个或任何组合。
[0076]
与本文描述的技术一致,作为一个示例,在其中计算设备500的实例用于实现训练系统104的实施例中,存储器设备504可以加载用于特征工程设计模块106、数据集扫描仪108和策略设计器模块110的功能性的程序指令。可以从存储器设备加载要由特征工程设计模块106处理的所有特征的数据。可以根据特征工程设计模块106的程序指令来处理加载的特征,以生成工程设计的特征,然后将其存储到存储器设备504。过程(其可以在实现本文描述的模块的虚拟机内操作)然后可以执行如本文描述的数据集扫描仪和/或策略设计器。
[0077]
图5中所示和以上描述的硬件配置是作为示例提供的,并且本文描述的主题可以结合各种不同的硬件架构和元件来进行利用。例如:在本文档中的许多图中,示出了个体功能/动作块;在各种实施例中,那些块的功能可以使用(a)个体硬件电路,(b)使用被具体配置为执行所描述功能/动作的专用集成电路(asic),(c)使用被具体配置为执行所描述功能/动作的一个或多个数字信号处理器(dsp),(d)使用以上参考图5描述的硬件配置,(e)经由其他硬件布置、架构和配置,和/或经由(a)至(e)中描述的技术的组合来实现。
[0078]
所描述主题的技术优点在某些示例实施例中,本文的技术允许在从大量可能的特征(例如,数百或数千)中选择特征方面的改进技术。某些示例使用从使用机器学习开发的模型生成的元梯度信息。然后,元梯度信息用于针对另外的特征集选择新特征来测试。该类型的方法允许过程处置具有极大量可能组合的问题。例如,本文的技术可以用于处置超过10
17
的组合——这原本对于处理而言将是在计算上不可行的。本文的技术采用比随机选择更聪明的方法来选择或生成要测试的特征(经由元梯度信息),所述随机选择可能是更常规的方法。该更聪明的方法可以改进收敛和/或达到收敛所需的搜索迭代次数。这允许在寻找解中对计算资源(cpu、存储器等
……
)更高效(例如,优于随机)的使用。
[0079]
本文描述的技术特征因此可以改进可以分析和处理看似不相关数据的相关组合以确定不同数据集和那些数据集中特征之间先前未知的关联性的速度。
[0080]
在某些示例中,这些技术改进开发的模型,同时避免与数据处理不等式相关的限
制(例如,其不能仅仅通过工程设计特征来改进模型)。改进的模型是通过寻找更高质量的数据排列而不是简单地添加更多特征来开发模型的传统方法来生成的。使用更少(和更聪明)的特征来开发模型允许更快的学习和运行时间。
[0081]
本文的技术特征还可以允许一起分析非常多样的数据集的特征。例如,六月份内卖出的移动电话数量可以是一个数据集,商场中的汽车量可以是另一个数据集,并且天气可以是第三数据集。来自这三个数据集的特征可以使用本文描述的技术一起分析,以揭示重要的见解。这是通过基于元梯度的反馈回路而变得可能的,所述反馈回路允许从大量异构数据集快速探索和发现有用的特征组合。元梯度信息可以提供关于数据集、特征或特征组合的信息,所述信息允许跨异构数据集从中更有针对性和有用地选择特征。
[0082]
本文的技术还允许通过使用目标、约束和惩罚进行高水平的定制。
[0083]
所选术语无论何时在本文档中描述给定项目存在于“一些实施例”、“各种实施例”、“某些实施例”、“某些示例实施例”、“一些示例实施例”、“示例性实施例”中,或者无论何时使用任何其他类似的语言,都应当理解该给定项目存在于至少一个实施例中,尽管不一定存在于所有实施例中。与前述一致,无论何时在本文档中描述动作“可以”、“可能”或“能够”被执行,特征、元件或组件“可以”、“可能”或“能够”被包括在给定的上下文中或适用于给定的上下文,给定的项目“可以”、“可能”或“能够”拥有给定的属性,或者无论何时使用涉及术语“可以”、“可能”或“能够”的任何类似短语,都应当理解该给定的动作、特征、元件、组件、属性等存在于至少一个实施例中,尽管不一定存在于所有实施例中。除非另有明确说明,否则本文档中使用的术语和短语及其变型应当被解释为开放式的而不是限制性的。作为前述的示例:“和/或”包括一个或多个相关联的所列项目的任何和所有组合(例如,a和/或b意味着a、b或a和b);单数形式“一”、“一个”和“该”应当被解读为意味着“至少一个”、“一个或多个”等;术语“示例”用于提供所讨论主题的示例,而不是其穷举或限制性列表;术语“包含”和“包含”(及其其他词性变化和其他变型)指定相关联的所列项目的存在,但不排除一个或多个其他项目的存在或添加;并且如果项目被描述为“可选的”,这样的描述不应当被理解为指示其他项目也不是可选的。
[0084]
如本文所使用的,术语“非暂时性计算机可读存储介质”包括寄存器、高速缓冲存储器、rom、半导体存储器设备(诸如d-ram、s-ram或其他ram)、磁介质(诸如闪速存储器)、硬盘、磁光介质、光学介质(诸如cd-rom、dvd或蓝光盘)或用于非暂时性电子数据存储的其他类型的设备。术语“非暂时性计算机可读存储介质”不包括暂时性传播的电磁信号。
[0085]
所描述主题的附加应用尽管过程步骤、算法等(没有限制地包括参考图1-4)可以以特定的依次顺序来描述或要求保护,但是这样的过程可以被配置为以不同的顺序工作。换言之,可以在本文档中明确描述或要求保护的步骤的任何次序或顺序不一定指示这些步骤以该顺序执行的要求;而是,本文描述过程的步骤可以以任何可能的顺序执行。此外,尽管一些步骤被描述或暗示为非同时发生(例如,因为一个步骤在另一个步骤之后描述),这些步骤可以同时(或并行)执行。此外,通过过程在附图中的描绘对该过程的说明并不暗示所说明的过程不包括对其的其他变型和修改,并不暗示所说明的过程或其任何步骤是必需的,并且并不暗示所说明的过程是优选的。
[0086]
尽管已经详细示出和描述了各种实施例,但是权利要求不限于任何特定的实施例或示例。任何以上描述都不应当被解读为暗示任何特定的元件、步骤、范围或功能是必要的。上述实施例中对于本领域普通技术人员已知的元件的所有结构和功能等同物通过引用明确并入本文并且意图被涵盖。此外,对于设备或方法而言不一定是要解决了本发明寻求解决的每一个且所有问题才使它被本发明所涵盖。本文档中没有实施例、特征、元件、组件或步骤是意图献给公众的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1