技术领域
[0001] 本申请涉及计算机技术领域,特别是涉及一种资源分配方法、一种资源分配模型训练方法、一种资源分配系统、一种电子设备和一种存储介质。
相关背景技术
[0002] 资源分配指在资源总数量一定的前提下,如何将资源分配给资源分配对象,以达到资源利用率或产生的价值最大化。以网络信息资源的分配为例,在资源数量一定的情况下,如何针对不同的行业、渠道、人群等资源分配对象进行网络信息资源分配,以达到网络信息资源利用率最大化,是资源分配需要关注的问题之一。现有技术中,多是人工根据经验进行资源分配,并根据资源分配结果产生的效果,人工反复进行资源分配调整。现有技术中这种资源分配方法往往需要花费几天的时间,才能达到较优的资源利用效率。
[0003] 综上,现有技术中的资源分配方法还需要改进。
具体实施方式
[0058] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
[0059] 本申请实施例中所述的资源包括但不限于:网络带宽、存储空间、网络信息、资产、算力、服务等可以量化、拆分的虚拟资源或实体资源。
[0060] 本申请实施例中所述的资源分配渠道,指接受资源的渠道,与资源类型匹配。以资源为网路带宽为例,资源分配渠道可以为网站、个人IP地址等。又以资源为广告费用为例,资源分配渠道可以为广告投放平台、网站、搜索引擎等。
[0061] 参照图1,本申请实施例中还公开了一种资源分配方法,可以应用于如图8所示的资源分配系统的服务端,所述方法用于实现根据用户配置的约束将指定数量的待分配资源,分配至用户选定的多个资源分配渠道,所述方法包括:步骤102和步骤104。
[0062] 步骤102,获取用户输入的资源分配渠道、待分配资源的总数量和第一资源分配参数信息。
[0063] 资源分配渠道与待分配的资源对应,在用于分配不同资源的资源分配系统中,可以预置可以消费待分配资源的多个渠道,这样,用户可以通过资源分配系统的客户端选择一个或多个资源分配渠道,用于分配待分配资源。
[0064] 以待分配资源为广告费用为例,资源分配渠道通常根据广告投放渠道和端行确定。其中,渠道可以为搜索引擎、网站等;端行为广告投放的目标设备端,如电脑、WAP(Wireless Application Protocol)协议端、应用程序等,每个广告投放渠道的不同端行可以作为一个独立的渠道,也可以将同一个广告投放渠道下的所有端行聚合为一个广告投放渠道。具体举例而言,资源分配渠道例如可以包括:网站A的电脑端、网站A的WAP协议端、网站A的APP、搜索引擎B的电脑端、搜索引擎B的WAP协议端等等。资源分配渠道根据具体需求确定,本申请实施例中对资源分配渠道的划分粒度的标准不做限制。
[0065] 例如,用户可以通过资源分配系统的客户端的资源分配界面选择资源分配渠道、输入待分配资源的总数量,并设置用于约束资源分配的第一资源分配参数信息。在一些可选的实施例中,所述第一资源分配参数信息包括但不限于:分配周期、约束指标、优化目标等。其中,所述约束指标包括但不限于:待分配资源关联的指标以及各指标对应的约束值。所述分配周期表示待分配资源的使用周期。所述指标根据待分配资源的具体类型确定。例如,在广告费用分配场景中,待分配资源为广告费用,所述指标包括但不限于:投入产出率、
3次点击收益等。又例如,在网络带宽分配场景中,待分配资源为网络带宽,所述指标包括但不限于:带宽利用率等。
[0066] 步骤104,基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果。
[0067] 接下来,基于神经网络进化算法求解资源预分配结果。
[0068] 在一些可选的实施例中,基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果,包括:基于所述总数量、所述资源分配渠道、所述第一资源分配参数信息,获取预设数量待优化资源分配结果;采用神经网络进化算法对所述待优化资源分配结果进行迭代优化,得到基于所述资源分配渠道的资源预分配结果。
[0069] 在一些可选的实施例中,采用神经网络进化算法对所述待优化资源分配结果进行迭代优化,得到基于所述资源分配渠道的资源预分配结果,包括:以预先训练的第一资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成;基于每轮迭代优化生成的子代资源分配结果,获取资源预分配结果。
[0070] 基于所述总数量、所述资源分配渠道、所述第一资源分配参数信息,获取预设数量待优化资源分配结果的具体实施方式参见下文所述,此处不再赘述。
[0071] 采用神经网络进化算法对所述待优化资源分配结果进行迭代优化,得到基于所述资源分配渠道的资源预分配结果的上述各步骤的具体实施方式参见下文实施例中的描述,此处不再赘述。
[0072] 在一些可选的实施例中,服务端可以通过创建资源预分配任务,调度每一次资源分配。在一些可选的实施例中,所述基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果,包括:子步骤1041至子步骤1044。
[0073] 子步骤1041,以所述总数量、所述第一资源分配参数信息和所述资源分配渠道作为任务数据,创建资源预分配任务。
[0074] 子步骤1042,获取所述资源预分配任务的第一任务标识。
[0075] 所述第一任务标识用于唯一标识资源预分配任务。可选的,所述任务标识可以为任务创建时间,也可以为其他信息或符号。
[0076] 子步骤1043,将所述资源预分配任务的所述任务数据,存储至预设第一数据表中以所述第一任务标识标记的分区,使得预设资源预分配引擎基于所述预设第一数据表中以所述第一任务标识标记的分区中的任务数据,采用神经网络进化算法进行资源预分配,得到各所述资源分配渠道的资源预分配结果,并将所述资源预分配结果存储至资源预分配结果数据表中以所述第一任务标识标记的分区。
[0077] 其中,预设资源预分配引擎基于所述预设第一数据表中以所述第一任务标识标记的分区中的任务数据,采用神经网络进化算法进行资源预分配,得到各所述资源分配渠道的资源预分配结果,包括:预设资源预分配引擎基于所述总数量、所述资源分配渠道、所述第一资源分配参数信息,获取预设数量待优化资源分配结果,并采用神经网络进化算法对所述待优化资源分配结果进行迭代优化,得到基于所述资源分配渠道的资源预分配结果。
[0078] 在一些可选的实施例中,可以预先采用神经网络进化算法,离线训练第一资源分配模型,之后,在模型应用阶段,预设资源与分配引擎执行资源预分配任务,采用神经网络进化算法迭代微调第一资源分配模型,从而优化资源分配结果,直至得到优选资源预分配结果。可选的,所述第一资源分配模型可以基于pointer network(指针网络)构建,所述第一资源分配模型中可以包括多个pointer network。
[0079] 采用神经网络进化算法进行资源再分配,通过不断迭代优化,寻找优选资源分配方案,结合神经网络的学习能力,有助于提升资源分配准确度。
[0080] 在具体应用过程中,资源分配系统的服务端可以接收来自多个客户端的资源分配请求,从而生成资源预分配任务。本申请的实施例中,将资源预分配任务的执行代码部署为独立的资源预分配引擎,服务端和资源预分配引擎基于预设数据表传输数据,服务端基于消息机制触发资源预分配引擎执行资源预分配任务,或者基于任务数据触发资源预分配引擎执行资源预分配任务,并根据任务的执行过程,更新任务的执行状态,从而使得用户可以及时了解任务的执行状态,并做出相应交互。
[0081] 在一个可选的实施例中,资源分配系统的服务端首先将所述资源预分配任务的所述任务数据,存储至预设第一数据表中的一个分区中,并以第一任务标识标记该分区。其中,所述预设第一数据表可以为ODPS(Open Data Processing Service,简称ODPS,开发数据处理服务)数据表。之后,所述服务端可以向所述资源预分配引擎发送与所述资源预分配任务关联的任务消息,以通知所述当前资源预分配任务有新任务需要处理。例如,所述服务端可以向所述资源预分配引擎发送携带第一任务标识的新任务消息。
[0082] 所述资源预分配引擎接收到新任务消息之后,解析新任务消息,获取待执行的资源预分配任务的任务标识,即第一任务标识;然后,读取所述预设第一数据表中所述第一任务标识标记的分区,获取第一任务标识对应的资源预分配任务的任务数据;之后,所述资源预分配引擎基于获取的任务数据,采用神经网络进化算法进行资源预分配,得到资源预分配结果。
[0083] 可选的,所述资源预分配引擎基于获取的任务数据,采用神经网络进化算法微调预先训练的第一资源分配模型,进行资源预分配。所述第一资源分配模型基于神经网络进化算法,针对输入的资源分配渠道、约束指标、优化目标以及待分配资源的总数量,迭代优化资源分配策略,直至得到优选的资源预分配结果。可选的,所述第一资源分配模型输出的资源预分配结果包括但不限于:每个资源分配渠道的分配资源数量。
[0084] 在一个可选的实施例中,所述资源预分配结果还包括:用于指示资源预分配任务执行结果的标记数据。所述标记数据用于指示资源预分配任务执行成功或执行失败。在具体应用过程中,由于用户输入的第一资源分配参数信息不合理,可能导致第一资源分配模型无法成功输出各个资源分配渠道对应的分配资源数量,这种情况下,所述标记数据将被设置为指示资源预分配任务执行失败的标记值。在第一资源分配模型成功输出各个资源分配渠道对应的分配资源数量的情况下,所述标记数据将被设置为指示资源预分配任务执行成功的标记值。
[0085] 在一些可选的实施例中,所述基于所述预设第一数据表中以所述第一任务标识标记的分区中的任务数据,采用神经网络进化算法进行资源预分配,得到各所述资源分配渠道的资源预分配结果,包括:基于所述预设第一数据表中以所述第一任务标识标记的分区中的任务数据包括的待分配资源的总数量、资源分配渠道、第一资源分配参数信息,获取预设数量待优化资源分配结果;以预先训练的第一资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成;基于每轮迭代优化生成的子代资源分配结果,获取资源预分配结果。
[0086] 首先,可以采用随机分配或者参考历史资源预分配结果,生成预设数量的待优化资源分配结果。其中,所述预设数量与所述第一资源分配模型中包括的神经网络数量匹配。得到的待优化资源分配结果用于指示所述待分配资源预的总数量在各资源分配渠道之间的分配情况。本申请实施例中对获取预设数量待优化资源分配结果的具体实施方式不做限制。
[0087] 可选的,所述采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成,包括:子步骤A1至子步骤A5。
[0088] 子步骤A1,对当前父代神经网络进行交叉进化,得到当前子代神经网络。
[0089] 在一些可选的实施例中,对当前父代神经网络进行交叉进化时,交叉算子为两个当前父代神经网络的网络参数平均值,选择算子采用随机选择方法。
[0090] 神经网络模型进化过程通常需要交叉、选择、变异算子推动网络优化,本申请在推理阶段不需要跳出局部最优解,因此,只通过选择算子和交叉算子对模型进行进化。
[0091] 子步骤A2,将父代资源分配结果分别输入至当前子代神经网络进行优化,生成当前轮迭代优化对应的子代资源分配结果。
[0092] 子步骤A3,预估各所述子代资源分配结果的目标值。
[0093] 在一些可选的实施例中,可以通过预先训练的目标值预估模型预估每个资源分配结果的目标值。所述目标值可以用于衡量资源分配结果与预期的匹配度。
[0094] 所述目标值预估模型是基于资源分配历史数据训练得到的。在一个可选的实施例中,可以基于端到端的神经网络构建目标值预估模型,并根据各预设资源分配渠道的资源分配历史数据提取训练数据,得到若干条分配资源数量和预设目标值的组合数据。其中,每条所述组合数据可以为:资源分配渠道的分配资源数量和该分配资源数量下的预设目标值,也可以为:各资源分配对象的分配资源数量和该分配资源数量下的预设目标值。之后,基于得到的组合数据,训练目标值预估模型,使得目标值预估模型学习到分配资源数量和预设目标值之间的映射关系。这样,在所述目标值预估模型的应用阶段,将分配资源数量输入至所述目标值预估模型之后,所述目标值预估模型可以输出对应该数量的预设目标值。其中,所述预设目标值根据资源分配场景和具体需求确定,可以为单个目标的取值,也可以为多个目标的取值。以广告费用分配场景为例,预设目标值包括但不限于以下一种或多种目标的取值:投入产出率、点击收益等。
[0095] 可选的,所述组合数据中还可以包括资源分配对象类型、资源分配参数等其他约束信息,以提升目标值预估的准确度。
[0096] 目标值预估模型的训练方法参见现有技术中端到端的神经网络模型训练方法,本申请实施例中不再赘述。本申请对目标值预估模型的结构不做限制。
[0097] 子步骤A4,基于所述目标值和所述当前子代神经网络更新当前父代神经网络。
[0098] 在一些可选的实施例中,所述基于所述目标值和所述当前子代神经网络更新当前父代神经网络,包括:基于所述目标值,确定所述当前子代神经网络对应的帕累托最优解;基于所述帕累托最优解从所述当前子代神经网络和所述当前父代神经网络中选择指定数量的神经网络,作为下一轮迭代优化的父代神经网络。以所述第二资源分配模型中包括N个父代神经网络为例,可将N个父代神经网络和N个子代神经网络基于帕累托支配关系和拥挤度进行排序,选取前N个神经网络,作为下一轮迭代优化的父代神经网络。其中,N为大于1的整数。
[0099] 帕累托支配关系是指对于多个目标值,随机自变量,对于任意一个目标函数都存在支配关系而所有目标值的间隔相加起来可以得到个体的拥挤度。帕累托最优解是指在改进任何目标函数的同时,不削弱至少一个其他目标函数的状态,这种解称为帕累托最优解。以每个神经网络的目标值作为输入,参照现有技术中的方法计算帕累托支配关系和拥挤度,并得到帕累托最优解。
[0100] 子步骤A5,判断迭代优化是否完成,若未完成,则跳转至所述子步骤A1,执行下一轮迭代优化,若完成,执行子步骤1044。
[0101] 当前轮迭代优化之后,如果完成指定迭代轮数,或者前后两次子代资源分配结果之间的差异收敛到满足预设收敛条件,认为迭代优化完成。在确定迭代优化完成之后,进一步基于每轮迭代优化生成的子代资源分配结果,获取资源分配结果。如果迭代优化未完成,则跳转至子步骤A1,从对当前父代神经网络进行交叉进化,得到当前子代神经网络开始,执行下一轮迭代优化。
[0102] 所述第一资源分配模型的训练方法,参见下文相关实施例中描述,此处不再赘述。
[0103] 所述资源预分配引擎将针对待分配资源执行资源预分配,得到的资源预分配结果存储到资源预分配结果数据表的一个分区中,并以资源预分配任务的任务标识,即第一任务标识标记该分区。其中,所述资源分配结果数据表可以为ODPS数据表。
[0104] 子步骤1044,基于所述资源预分配结果数据表中,所述第一任务标识标记的分区中的资源预分配结果,得到各所述资源分配渠道的资源预分配结果。
[0105] 在一个可选的实施例中,所述基于所述资源预分配结果数据表中,所述第一任务标识标记的分区中的资源预分配结果,得到各所述资源分配渠道的资源预分配结果,包括:将所述资源预分配结果数据表中所述第一任务标识对应的资源预分配结果,同步至本地数据库;基于所述本地数据库中所述第一任务标识对应的资源预分配结果,得到各所述资源分配渠道的资源预分配结果。
[0106] 例如,所述服务端可以通过定时任务监测所述资源预分配结果数据表,当监测到有新的资源预分配结果写入时,及时将新写入的资源预分配结果即第一任务标识对应的资源预分配结果,同步更新至所述服务端的本地数据库中。其中,所述本地数据库例如可以为MySQL的关系型数据库。之后,服务端基于所述本地数据库中第一任务标识对应的资源预分配结果,得到各资源分配渠道的资源预分配结果。
[0107] 在一个可选的实施例中,所述资源预分配结果包括:用于指示资源预分配任务执行结果的标记数据,所述基于所述本地数据库中所述第一任务标识对应的资源预分配结果,得到各所述资源分配渠道的资源预分配结果,包括:响应于所述标记数据指示资源预分配任务执行成功,从所述本地数据库中所述第一任务标识对应的资源预分配结果中,获取各所述资源分配渠道的预分配资源数量;和/或,响应于所述标记数据指示资源预分配任务执行失败,得到指示资源分配失败的资源预分配结果。
[0108] 可选的,资源分配系统的服务端首先读取所述本地数据库中所述第一任务标识对应的资源预分配结果中标记数据字段的取值,并根据该取值判断第一任务标识标记的资源预分配任务是否执行成功,以根据判断结果执行相应操作。在判断第一任务标识标记的资源预分配任务执行成功的情况下,所述服务端进一步读取所述本地数据库中所述第一任务标识对应的资源分配结果中各资源分配渠道对应的分配资源数量,至此,可以得到基于所述资源分配渠道的资源预分配结果。在判断第一任务标识标记的资源预分配任务执行失败的情况下,所述服务端可以直接输出指示所述资源分配失败的资源于分配结果,例如,可以设置每个资源分配渠道对应的分配资源数量为无效值。
[0109] 将资源预分配结果及时同步到本地关系型数据库中,便于灵活、快速查询同步后的资源预分配结果。
[0110] 在本申请的一些实施例中,所述资源分别配系统采用消息通知机制向用户或客户端同步资源预分配任务的执行状态。
[0111] 在一个可选的实施例中,所述资源分配结果包括:用于指示资源预分配任务执行结果的标记数据,所述将所述资源预分配结果数据表中所述第一任务标识对应的资源预分配结果,同步至本地数据库之后,还包括以下一种或多种操作:
[0112] 第一种,响应于在所述本地数据库中监测到所述第一任务标识对应的资源预分配结果,更新所述资源预分配任务的任务状态为指示执行完成的第一状态值,并向预设消息接收端发送指示当前任务状态的通知消息;
[0113] 第二种,响应于所述标记数据指示资源预分配任务执行成功,更新所述资源预分配任务的任务状态为指示分配成功的第二状态值,并向预设消息接收端发送指示当前任务状态的通知消息;
[0114] 第三种,响应于所述标记数据指示资源预分配任务执行失败,更新所述资源预分配任务的任务状态为指示分配失败的第三状态值,并向预设消息接收端发送指示当前任务状态的通知消息。
[0115] 所述资源分别配系统采用消息通知机制向用户或客户端同步资源预分配任务的执行状态的具体实施方式,参照下文中采用消息通知机制向预先设置的信息接收账户或客户端同步资源再分配任务的执行状态的具体实施方式,此处不再赘述。
[0116] 通过在资源再分配任务执行的各节点,采用消息通知机制向客户端和/或相应用户同步任务状态,对资源分配的异步操作进行快速及时通知,可以保障资源分配流程的自动化流转,同时,可以加入人工审核要素,控制资源分配风险。
[0117] 综上,本申请实施例公开的资源分配方法,通过获取用户输入的资源分配渠道、待分配资源的总数量和第一资源分配参数信息;之后,基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果,以进化算法为基础,实现了自动化、定制化,根据用户配置的不同约束指标,在资源分配渠道之间进行资源预分配,提升了资源分配效率。
[0118] 在一些可选的实施例中,本申请还公开了一种资源分配方法,可以实施为资源分配系统,用户通过资源分配系统的客户端输入用于定制化资源分配的资源调控信息,资源分配系统的服务端自动根据资源调控信息进行资源分配,并输出资源分配结果,从而提升资源分配效率。
[0119] 参照图2,一个可选的实施例中,本申请公开的一种资源分配方法,应用于如图9所示的资源分配系统的服务端,所述方法包括:步骤202至步骤208。
[0120] 下面分别介绍各步骤的具体实施方式。
[0121] 步骤202,基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件。
[0122] 对于每种待分配的资源,通常存在多个消费该资源的渠道,即待分配资源对应多个资源分配渠道,而针对每个资源分配渠道,进一步可以配置多种资源分配结构。本实施例解决的问题是:针对一个指定的资源分配渠道,其下存在多个可以消费该资源的对象,在已知初步预估分配给该资源分配渠道的资源总数量的情况下,如何将总数量一定的资源高效地在该资源分配渠道下消费该资源的对象之间进行分配。
[0123] 本申请的实施例中,将不同资源分配渠道下消费资源的对象记为“资源分配对象”。资源分配对象是相应资源分配渠道下资源调整的最小粒度。
[0124] 本申请的实施例中,所述目标资源分配渠道选自于预先完成分配资源预估的渠道,即目标资源分配渠道待分配资源的总数量是一定的。在一些可选的实施例中,用户可以通过资源分配系统的客户端的资源调控配置界面输入资源调控信息,使得服务端可以基于用户输入的资源调控信息执行资源调控操作,其中,用户输入的资源调控信息包括但不限于:资源分配渠道和资源分配条件。例如,用户可以通过客户端展示的资源分配渠道配置列表配置当前需要执行资源分配的资源分配渠道,以及资源分配条件,所述客户端将用户选择的资源分配渠道作为目标资源分配渠道,并将目标资源分配渠道的信息和资源分配条件发送给资源分配系统的服务端。
[0125] 可选的,资源分配条件包括但不限于以下一种或多种条件:资源分配对象关联因素的名称、资源分配对象关联因素组合关系、资源分配效果等。资源每种条件的配置项根据具体资源类型而定。仍以待分配资源为广告费用为例,资源分配对象关联因素包括但不限于:投放人群、国家、投放类型等,其中,投放类型例如可以包括:显展示类广告、视频广告、购物广告等;资源分配效果例如可以包括:投入产出率,优化目标等,其中,优化目标例如可以包括:CPA指标(Cost Per Acquisition,是指一定期间内,商家所付出的获得新客户的平均花费)等;资源分配对象关联因素组合关系包括但不限于:不同资源分配对象关联因素的组合关系。资源分配条件根据具体资源类型和需求确定,本申请实施例中对资源分配条件的具体内容不做限制。
[0126] 在本申请的一些实施例中,每个资源分配渠道对应一个资源消费账户,用于接收服务端分配给该资源分配渠道的资源,以及,消费该资源分配渠道的资源。
[0127] 步骤204,基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息。
[0128] 本申请的实施例中,资源分配结构基于不同渠道的资源调整最小粒度,即资源分配对象描述资源分配构成。
[0129] 如前文所述,资源分配条件中包括:资源分配对象关联因素名称等与资源分配结构相关的资源分配条件,以及,投入产出率、优化目标等与资源分配效果相关的资源分配条件,在本步骤中,通过解析所述资源分配条件,分别获取不同作用的资源分配条件,之后,根据资源分配条件进一步得到所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息。
[0130] 在一些可选的实施例中,可以直接将所述资源分配条件中与资源分配效果相关的信息,作为所述目标资源分配渠道匹配的第二资源分配参数信息。例如,将前述步骤获取的投入产出率,优化目标,作为所述目标资源分配渠道匹配的第二资源分配参数信息。
[0131] 在一些可选的实施例中,所述资源分配条件包括以下一种或多种信息:资源分配对象关联因素的名称、资源分配对象关联因素组合关系,基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构,包括:基于资源分配对象关联因素的名称、资源分配对象关联因素组合关系,生成检索条件;基于所述检索条件,检索存储预先创建的资源分配结构的多维数据库,得到与所述资源分配条件匹配的资源分配结构,作为所述目标资源分配渠道匹配的资源分配结构。
[0132] 其中,资源分配对象关联因素组合关系包括但不限于:逻辑与、逻辑或、包含、不包含等逻辑关系。本申请实施例中,用户可以通过资源分配系统的客户端输入用于查询预先构建的资源分配结构的资源分配对象关联因素的名称,并选择不同资源分配对象关联因素之间的逻辑关系,在用户完成配置,并提交资源再分配任务后,服务端将可以根据资源分配对象关联因素的名称和资源分配对象关联因素组合关系,生成一个或多个检索条件。仍以广告费用分配场景为例,根据用户输入的资源分配对象关联因素的名称和资源分配对象关联因素组合关系,可以得到例如以下检索条件:国家C不包括人群a和国家D不包括人群b的展示类广告、搜索广告。
[0133] 接下来,根据生成的检索条件,进一步检索存储预先构建的资源分配结构的数据库,以获取与用户输入的资源分配条件匹配的资源分配结构。
[0134] 在一些可选的实施例中,存储资源分配结构的数据库可以为CUBE表(即数据魔方),可以基于多个维度数据库中的数据,提升数据查询的灵活度。
[0135] 在一些可选的实施例中,如图3所示,在所述基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件之前,所述方法还包括:步骤200。
[0136] 步骤200,将预设资源分配结构数据表中各资源分配渠道的资源分配结构更新存储至多维数据库中。
[0137] 其中,所述预设同步条件可以为每天的指定时间、间隔指定时间等同步条件。
[0138] 所述预设资源分配结构数据表为ODPS大数据表。
[0139] 资源分配系统的每个用户可以通过客户端预先配置每个资源分配渠道的资源分配结构。所述资源分配结构用于描述将资源分配给哪个或哪些资源分配渠道中的哪个或哪些资源分配对象关联因素。其中,资源分配对象是相应资源分配渠道的资源调整最小粒度。
[0140] 以广告费用分配场景为例,用户需要确定每个广告投放渠道(即资源分配渠道)下的广告投放结构(即资源分配结构)。不同广告投放渠道的广告投放结构定义有所不同,用户需要按照广告投放平台的接口,配置广告投放结构。例如,在一些广告投放渠道中,广告投放结构包括但不限于:广告组以及具体的广告、广告的目标人群,广告的投放国家,广告的回传信号等信息。其中,广告组为该广告投放渠道的最小资源调整粒度。例如,不同的目标人群、投放国家,以及广告的组合,构成不同的广告组,不同广告组构成了该广告投放渠道的广告投放结构。
[0141] 以网络带宽分配场景为例,资源分配对象可以为不同类型的网络账户,资源分配结构用于描述某一交换机下可以分配网络带宽的网络账户的类型。
[0142] 同理,在其他资源分配场景中,资源分配粒度可以根据具体需求和资源类型确定。本申请实施例中对资源分配结构的具体内容不做限制。
[0143] 当用户需要的通过资源分配系统自动进行资源分配时,首先需要创建不同资源分配渠道的资源分配结构。资源分配系统在获取到用户创建的资源分配结构之后,会将资源分配结构写入到ODPS数据表中存储。资源分配系统可以通过定期读取ODPS数据表,获取所有用户预先创建的资源分配结构,并将获取的资源分配结构存储到例如CUBE表形式的支持多个维度查询的多维查询数据库。在一个可选的实施例中,资源分配系统的客户端将用户配置信息持久化入ODPS数据表时,在存入数据表的流程中,数据表会产生binlog(即二进制日志),可以通过对binlog信息进行抓取,来获取用户创建的资源分配结构。在另一个可选的实施例中,资源分配系统可以在每天的指定时间(如夜晚12点)读取存储资源分配结构的ODPS数据表,将所有用户创建的所有资源分配渠道的资源分配结构更新存储至预设的多维数据库中。
[0144] 由于ODPS数据表不支持部分字段读取操作,通过将存储在ODPS数据表中的资源分配结构定期更新到多维数据库中,可以实现基于用户输入的资源分配条件,快速命中需要调整的资源分配结构,不仅可以提升资源分配结构的查询效率,而且改善了用户使用体验。例如,用户可以输入资源分配对象关联因素(如资源分配对象关联的国家、人群)和/或资源分配效果(如资源利用率、投入产出率、优化目标)调整资源分配。
[0145] 步骤206,基于所述资源分配结构和所述第二资源分配参数信息,采用神经网络进化算法对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果。
[0146] 接下来,通过调用预先训练的第二资源分配模型,基于所述目标资源分配渠道匹配的所述资源分配结构和所述第二资源分配参数信息,对所述目标资源分配渠道的预先获取的资源预分配结果,进行目标资源分配渠道下指定资源分配对象之间的资源再分配。
[0147] 在一些可选的实施例中,在基于所述资源分配结构和所述第二资源分配参数信息,采用神经网络进化算法对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果之前,所述方法还包括:获取所述目标资源分配渠道的资源预分配结果。
[0148] 可选的,所述目标资源分配渠道的资源预分配结果,可以为人工根据经验估算的资源分配结果,还可以为预先基于用户配置的资源分配渠道和第一资源分配参数信息,通过执行前文所述的资源预分配任务,得到的资源预分配结果。
[0149] 在一些可选的实施例中,可以预先采用神经网络进化算法,离线训练第二资源分配模型,之后,在模型应用阶段,采用神经网络进化算法迭代微调第二资源分配模型,从而优化资源分配结果,直至得到优选资源分配结果。可选的,所述第二资源分配模型可以基于pointer network构建,所述第二资源分配模型中可以包括多个pointer network。
[0150] 采用神经网络进化算法进行资源再分配,通过不断迭代优化,寻找优选资源分配方案,结合神经网络的学习能力,有助于提升资源分配准确度。
[0151] 在一些可选的实施例中,基于所述资源分配结构和所述第二资源分配参数信息,采用神经网络进化算法对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果,包括:子步骤2061至子步骤2064。
[0152] 子步骤2061,以所述资源分配结构、所述第二资源分配参数信息和所述目标资源分配渠道的预先获取的资源预分配结果作为任务数据,创建所述目标资源分配渠道的资源再分配任务。
[0153] 子步骤2062,获取所述资源再分配任务的第二任务标识。
[0154] 所述第二任务标识用于唯一标识资源再分配任务。可选的,所述任务标识可以为任务创建时间,也可以为其他信息或符号。
[0155] 子步骤2063,将所述资源再分配任务的所述任务数据,存储至预设第二数据表中以所述第二任务标识标记的分区,使得预设资源再分配引擎基于所述预设第二数据表中以所述第二任务标识标记的分区中的任务数据,采用神经网络进化算法进行资源再分配,得到所述资源分配结构中各不同资源分配对象的资源分配结果,并将所述资源分配结果存储至所述目标资源分配渠道对应的资源分配结果数据表中以所述第二任务标识标记的分区。
[0156] 资源分配系统的服务端可以接收来自多个客户端的资源调控信息,从而生成资源再分配任务。本申请的实施例中,将资源再分配任务的执行代码部署为独立的资源再分配引擎,基于消息机制触发资源再分配引擎执行资源再分配任务,并根据任务的执行过程,更新任务的执行状态,从而使得用户可以及时了解任务的执行状态,并做出相应交互。
[0157] 在一个可选的实施例中,资源分配系统的服务端首先将所述资源再分配任务的所述任务数据,存储至预设第二数据表中的一个分区中,并以第二任务标识标记该分区。其中,所述预设第二数据表可以为ODPS数据表。之后,所述服务端可以向所述资源再分配引擎发送与所述资源再分配任务关联的任务消息,以通知所述资源再分配任务有新任务需要处理。例如,所述服务端可以向所述资源再分配引擎发送携带第二任务标识的新任务消息。
[0158] 所述资源再分配引擎接收到新任务消息之后,解析新任务消息,获取待所述预设第二数据表中的任务标识,即第二任务标识;然后,读取所述预设第二数据表中所述第二任务标识标记的分区,获取第二任务标识对应的资源再分配任务的任务数据;之后,所述资源再分配引擎基于获取的任务数据,采用神经网络进化算法进行资源再分配,得到资源分配结果。
[0159] 在一些可选的实施例中,所述资源再分配引擎也可以通过监测所述预设第二数据表中任务数据写入操作,启动执行所述资源再分配任务。
[0160] 可选的,所述资源再分配引擎基于获取的任务数据,采用神经网络进化算法微调预先训练的第二资源分配模型,进行资源再分配。所述第二资源分配模型基于神经网络进化算法,针对输入的资源分配结构中的资源分配对象、约束、优化目标以及资源预分配结果中的资源总数量,迭代优化资源分配策略,直至完成计划过程,得到优选的资源分配结果。可选的,所述第二资源分配模型输出的资源分配结果包括但不限于:输入的资源分配结构中每个资源分配对象的分配资源数量。
[0161] 在一个可选的实施例中,所述资源分配结果还包括:用于指示资源再分配任务执行结果的标记数据。所述标记数据用于指示资源再分配任务执行成功或执行失败。在具体应用过程中,由于用户输入的资源调控信息不合理,可能导致第二资源分配模型无法成功输出各个资源分配对象对应的分配资源数量,这种情况下,所述标记数据将被设置为指示资源再分配任务执行失败的标记值。在第二资源分配模型成功输出各个资源分配对象对应的分配资源数量的情况下,所述标记数据将被设置为指示资源再分配任务执行成功的标记值。
[0162] 在一些可选的实施例中,所述基于所述预设第二数据表中以所述第二任务标识标记的分区中的任务数据采用神经网络进化算法进行资源再分配,得到所述资源分配结构中各不同资源分配对象的资源分配结果,包括:子步骤B1至子步骤B4。
[0163] 子步骤B1,基于所述预设第二数据表中以所述第二任务标识标记的分区中的任务数据包括的资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果。
[0164] 子步骤B2,以预先训练的第二资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果。
[0165] 子步骤B3,采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成。
[0166] 子步骤B4,基于每轮迭代优化生成的子代资源分配结果,获取资源分配结果。
[0167] 基于所述预设第二数据表中以所述第二任务标识标记的分区中的任务数据采用神经网络进化算法进行资源再分配,得到所述资源分配结构中各不同资源分配对象的资源分配结果的各子步骤的具体实施方式,参见下文相关实施例中描述,此处不再赘述。
[0168] 所述第二资源分配模型的训练方法,参见下文相关实施例中描述,此处不再赘述。
[0169] 所述资源再分配引擎将针对当前资源再分配任务执行资源再分配,得到的资源分配结果存储到目标资源分配渠道对应的资源分配结果数据表的一个分区中,并以当前资源再分配任务的任务标识,即第二任务标识标记该分区。其中,所述资源分配结果数据表可以为ODPS数据表。
[0170] 子步骤2064,基于所述目标资源分配渠道对应的资源分配结果数据表中,所述第二任务标识标记的分区中的资源分配结果,得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果。
[0171] 本申请的一些实施例中,基于所述目标资源分配渠道对应的资源分配结果数据表中,所述第二任务标识标记的分区中的资源分配结果,得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果,包括:将所述目标资源分配渠道的资源分配结果数据表中所述第二任务标识对应的资源分配结果,同步至本地数据库;基于所述本地数据库中所述第二任务标识对应的资源分配结果,得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果。
[0172] 例如,所述服务端可以通过定时任务监测每个资源分配渠道的资源分配结果数据表,当监测到有新的资源分配结果写入时,及时将新写入的资源分配结果即第二任务标识对应的资源分配结果,同步更新至所述服务端的本地数据库中。其中,所述本地数据库例如可以为MySQL的关系型数据库。之后,服务端基于所述本地数据库中第二任务标识对应的资源分配结果,得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果。
[0173] 如前所述,所述资源分配结果包括:用于指示资源再分配任务执行结果的标记数据。相应的,在一些可选的实施例中,所述基于所述本地数据库中所述第二任务标识对应的资源分配结果,得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果,包括:响应于所述标记数据指示资源再分配任务执行成功,从所述本地数据库中所述第二任务标识对应的资源分配结果中,获取所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果;和/或,响应于所述标记数据指示资源再分配任务执行失败,得到指示所述目标资源分配渠道下所述资源分配结构的资源分配失败的资源二次分配结果。
[0174] 可选的资源分配系统的服务端首先读取所述本地数据库中所述第二任务标识对应的资源分配结果中标记数据字段的取值,并根据该取值判断第二任务标识标记的资源再分配任务是否执行成功,以根据判断结果执行相应操作。在判断第二任务标识标记的资源再分配任务执行成功的情况下,所述服务端进一步读取所述本地数据库中所述第二任务标识对应的资源分配结果中各资源分配对应的分配资源数量,至此,可以得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果。在判断第二任务标识标记的资源再分配任务执行失败的情况下,所述服务端可以直接输出指示所述目标资源分配渠道下所述资源分配结构的资源分配失败的资源二次分配结果,例如,可以设置每个资源分配对象对应的分配资源数量为无效值。
[0175] 将资源分配结果及时同步到本地关系型数据库中,便于灵活、快速查询同步后的资源分配结果,并且,可以提升对目标资源分配渠道的资源分配结构进行聚合的运算速度。
[0176] 在本申请的一些实施例中,所述资源分别配系统采用消息通知机制向用户或客户端同步资源再分配任务的执行状态。
[0177] 在一些可选的实施例中,在以所述资源分配结构、所述第二资源分配参数信息和所述目标资源分配渠道的预先获取的资源预分配结果作为任务数据,创建所述目标资源分配渠道的资源再分配任务之后,首先将当前资源再分配任务的任务状态初始化为指示待执行的状态值。之后,服务端进一步根据资源再分配任务的执行结果,实时更新资源再分配任务的任务状态。
[0178] 如前所述,所述资源分配结果包括:用于指示资源再分配任务执行结果的标记数据,相应的,所述将所述目标资源分配渠道的资源分配结果数据表中所述第二任务标识对应的资源分配结果,同步至本地数据库之后,服务端执行以下一种或多种操作,以更新资源再分配任务的任务状态。
[0179] 第一种,响应于在所述本地数据库中监测到所述第二任务标识对应的资源分配结果,更新所述当前资源再分配任务的任务状态为指示执行完成的第四状态值,并向预设消息接收端发送指示当前任务状态的通知消息。
[0180] 当服务端在所述本地数据库中监测到所述第二任务标识对应的资源分配结果时,说明所述第二任务标识对应的资源再分配任务,即当前资源再分配任务已经执行完成,在这种情况下,服务端将所述当前资源再分配任务的任务状态值更新为第四状态值,所述第四状态值指示资源再分配任务已经执行完成。同时,服务端可以向客户端或预先配置的消息接收账号发送指示当前任务状态的通知消息。
[0181] 第二种,响应于所述标记数据指示资源再分配任务执行成功,更新所述当前资源再分配任务的任务状态为指示分配成功的第五状态值,并向预设消息接收端发送指示当前任务状态的通知消息。
[0182] 在服务端在所述本地数据库中监测到所述第二任务标识对应的资源分配结果后,进一步读取资源分配结果时,如果第二任务标识对应的资源分配结果中的标记数据指示资源再分配任务执行成功,则服务端将所述当前资源再分配任务的任务状态值更新为第五状态值,所述第五状态值指示资源再分配成功。同时,服务端可以向客户端或预先配置的消息接收账号发送指示当前任务状态的通知消息。
[0183] 第三种,响应于所述标记数据指示资源再分配任务执行失败,更新所述当前资源再分配任务的任务状态为指示分配失败的第六状态值,并向预设消息接收端发送指示当前任务状态的通知消息。
[0184] 在服务端在所述本地数据库中监测到所述第二任务标识对应的资源分配结果后,进一步读取资源分配结果时,如果第二任务标识对应的资源分配结果中的标记数据指示资源再分配任务执行失败,则服务端将所述当前资源再分配任务的任务状态值更新为第六状态值,所述第六状态值指示再分配失败。同时,服务端可以向客户端或预先配置的消息接收账号发送指示当前任务状态的通知消息。
[0185] 通过在资源再分配任务执行的各节点,采用消息通知机制向客户端和/或相应用户同步任务状态,对资源分配的异步操作进行快速及时通知,可以保障资源分配流程的自动化流转,同时,可以加入人工审核要素,控制资源分配风险。
[0186] 综上,本申请实施例公开的资源分配方法,通过基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件;然后,基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息,再基于所述资源分配结构和所述第二资源分配参数信息,对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果,实现了资源分配的自动化,有效提升了资源分配效率。并且,资源分配粒度细化到资源分配结构层面,提升了资源分配精确度。
[0187] 本申请的还公开了一种资源分配方法,可以应用于资源再分配引擎,用于在给定约束条件下,针对某个目标资源分配渠道的资源预分配结果,采用神经网络进化算法,进一步在指定资源分配对象之间进行再分配,得到对应各资源分配对象的资源分配结果。
[0188] 参照图4,在一些可选的实施例中,本申请实施例公开的资源分配方法包括:步骤402至步骤408。
[0189] 步骤402,基于资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果。
[0190] 可选的,本实施例公开的资源分配方法通过资源再分配任务执行。例如,可以将用于进行资源分配的约束,例如包括:资源分配对象、预分配资源数量和第二资源分配参数信息,以任务数据的形式写入到指定数据表,从而触发资源再分配任务。其中,所述第二资源分配参数信息可以为与资源分配效果相关的信息。以广告费用分配场景为例,所述第二资源分配参数信息可以包括:投入产出率,点击收益优化目标等。
[0191] 可选的,可以采用随机分配或者参考历史分配结果等方法,根据资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果。其中,所述预设数量与预先训练的第二资源分配模型中神经网络的数量匹配。得到的待优化资源分配结果用于指示所述预分配资源数量在各资源分配对象之间的分配情况。本申请实施例中对根据资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果的具体实施方式不做限制。
[0192] 本申请实施例中对基于资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果的具体实施方式不做限定。
[0193] 步骤404,以预先训练的第二资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果。
[0194] 本申请的实施例中,采用神经网络进化算法对父代资源分配结果进行一轮或多轮迭代优化,在每轮迭代优化过程中,通过对父代神经网络进行交叉、选择、变异,从而进化得到子代神经网络;然后,基于子代神经网络对当前轮迭代优化对应的父代资源分配结果进行资源调控,得到当前轮迭代优化对应的子代资源分配结果;之后,再选择较好的子代资源分配结果,重新作为下一轮迭代优化的父代资源分配结果,如此循环,直至迭代优化完成。
[0195] 首先,以预先训练的第二资源分配模型中各神经网络,作为当前父代神经网络,将每个所述待优化资源分配结果一一对应输入至各当前父代神经网络,由各当前父代神经网络基于当前输入的资源分配结果(即待优化资源分配结果)进行资源分配调控,输出当前轮迭代优化对应的父代资源分配结果。由于所述第二资源分配模型中的各神经网络已经预先基于历史数据完成了迭代训练,学习了资源数量、资源分配对象、资源分配约束和资源分配结果目标值之间的映射关系,因此,各神经网络输出的资源分配结果通常优于输入至该神经网络的资源分配结果。
[0196] 步骤406,采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成。
[0197] 在一些可选的实施例中,所述采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成,包括:子步骤C1至子步骤C5。
[0198] 子步骤C1,对当前父代神经网络进行交叉进化,得到当前子代神经网络。
[0199] 在一些可选的实施例中,对当前父代神经网络进行交叉进化时,交叉算子为两个当前父代神经网络的网络参数平均值,选择算子采用随机选择方法。
[0200] 神经网络模型进化过程通常需要交叉、选择、变异算子推动网络优化,本申请在推理阶段不需要跳出局部最优解,因此,只通过选择算子和交叉算子对模型进行进化。
[0201] 子步骤C2,将父代资源分配结果分别输入至当前子代神经网络进行优化,生成当前轮迭代优化对应的子代资源分配结果。
[0202] 子步骤C3,预估各所述子代资源分配结果的目标值。
[0203] 在一些可选的实施例中,可以通过预先训练的目标值预估模型预估每个资源分配结果的目标值。所述目标值可以用于衡量资源分配结果与预期的匹配度。
[0204] 所述目标值预估模型是基于资源分配历史数据训练得到的。在一个可选的实施例中,可以基于端到端的神经网络构建目标值预估模型,并根据各预设资源分配渠道的资源分配历史数据提取训练数据,得到若干条分配资源数量和预设目标值的组合数据。其中,每条所述组合数据可以为:资源分配渠道的分配资源数量和该分配资源数量下的预设目标值,也可以为:各资源分配对象的分配资源数量和该分配资源数量下的预设目标值。之后,基于得到的组合数据,训练目标值预估模型,使得目标值预估模型学习到分配资源数量和预设目标值之间的映射关系。这样,在所述目标值预估模型的应用阶段,将分配资源数量输入至所述目标值预估模型之后,所述目标值预估模型可以输出对应该数量的预设目标值。可选的,所述组合数据中还可以包括资源分配对象类型、资源分配参数等其他约束信息,以提升目标值预估的准确度。
[0205] 目标值预估模型的训练方法参见现有技术中端到端的神经网络模型训练方法,本申请实施例中不再赘述。本申请对目标值预估模型的结构不做限制。
[0206] 子步骤C4,基于所述目标值和所述当前子代神经网络更新当前父代神经网络。
[0207] 在一些可选的实施例中,所述基于所述目标值和所述当前子代神经网络更新当前父代神经网络,包括:基于所述目标值,确定所述当前子代神经网络对应的帕累托最优解;基于所述帕累托最优解从所述当前子代神经网络和所述当前父代神经网络中选择指定数量的神经网络,作为下一轮迭代优化的父代神经网络。以所述第二资源分配模型中包括N个父代神经网络为例,可将N个父代神经网络和N个子代神经网络基于帕累托支配关系和拥挤度进行排序,选取前N个神经网络,作为下一轮迭代优化的父代神经网络。其中,所述帕累托支配关系和拥挤度根据所述目标值采用现有计算方法计算得到。
[0208] 子步骤C5,判断迭代优化是否完成,若未完成,则跳转至所述子步骤C1,执行下一轮迭代优化,若完成,执行步骤408。
[0209] 当前轮迭代优化之后,如果完成指定迭代轮数,或者前后两次子代资源分配结果之间的差异收敛到满足预设收敛条件,认为迭代优化完成。在确定迭代优化完成之后,进一步基于每轮迭代优化生成的子代资源分配结果,获取资源分配结果。如果迭代优化未完成,则跳转至子步骤C1,从对当前父代神经网络进行交叉进化,得到当前子代神经网络开始,执行下一轮迭代优化。其中,所述指定迭代轮数可以根据具体需求确定。例如,当对资源分配精度要求不高,但是对资源分配速度要求较高时,可以设置较小的指定迭代轮数。
[0210] 步骤408,基于每轮迭代优化生成的子代资源分配结果,获取资源分配结果。
[0211] 每一轮神经网络的迭代优化过程,就是资源分配结果的迭代优化过程,每一轮迭代优化,都会生成该轮迭代优化对应的子代资源分配结果。最后,从多轮迭代优化生成的子代资源分配结果中,可以选择一个最优的子代资源分配结果,作为资源分配结果。
[0212] 在一些可选的实施例中,所述基于所述目标值,确定所述当前子代神经网络对应的帕累托最优解之后,还包括:将所述帕累托最优解对应的所述子代资源分配结果,加入预设外部种群;移除所述预设外部种群中非最优帕累托最优解对应的所述子代资源分配结果;所述基于每轮迭代优化生成的子代资源分配结果,获取资源分配结果,包括:将所述预设外部种群中的所述子代资源分配结果,作为资源分配结果。
[0213] 例如,可以设置一个外部种群存储迭代优化过程中发现的帕累托最优解。在每一轮迭代优化过程中,都会生成一组当前轮子代资源分配结果,在这组当前轮子代资源分配结果中,会产生一组帕累托最优解,这组帕累托最优解将被加入到该外部种群中,并移除外部种群更新后的非帕累托最优解。当迭代优化结束后,外部种群中的子代资源分配结果被直接作为最终结果进行输出。
[0214] 综上,本申请实施例公开的资源分配方法,通过基于资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果;以预先训练的第二资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成,最后从每轮迭代优化生成的子代资源分配结果中选择资源分配结果,可以提升在资源分配对象之间进行资源分配的精准度,避免了用户人工反复多次调整资源分配策略,提升了资源分配效率。
[0215] 进一步的,通过计算各子代资源分配结果的目标值,并基于帕累托最优解选择最终输出的资源分配结果,可以自动、高效的实现基于多目标选择优选资源分配结果,进一步提升资源分配结果的精准度。
[0216] 参照图5,本申请的还公开了一种资源分配方法,可以应用于资源预分配引擎,用于用于在给定约束条件下,针对一定数量的待分配资源,采用神经网络进化算法,进一步在指定资源分配渠道之间进行预分配,得到对应各资源分配渠道的资源预分配结果,所述方法包括:步骤502至步骤508。
[0217] 步骤502,基于待分配资源的总数量、资源分配渠道、第一资源分配参数信息,获取预设数量待优化资源分配结果;
[0218] 步骤504,以预先训练的第一资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;
[0219] 步骤506,采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成;
[0220] 步骤508,基于每轮迭代优化生成的子代资源分配结果,获取资源预分配结果。
[0221] 步骤502至步骤508的具体实施方式,参照前文相关实施例中的描述,此处不再赘述。
[0222] 综上,通过以进化算法为基础进行资源预分配,有助于提升资源分配的精准度。
[0223] 为了是本申请实施例公开的资源分配方法更加清楚,下面对资源分配模型的训练方法进行举例说明。所述资源分配模型的训练方法,适用于训练第一资源分配模型和第二资源分配模型。
[0224] 参照图6,在一些可选的实施例中,本申请公开的资源分配模型训练方法包括:步骤601至步骤606。
[0225] 步骤601,基于资源分配渠道的历史资源分配数据,获取若干资源分配结果样本,所述资源分配结果样本包括:分配资源总数量和实际目标值。
[0226] 第一资源分配模型用于在不同资源分配渠道之间进行资源预分配,因此,在训练第一资源分配模型时,需要基于所有可选的资源分配渠道的历史资源分配数据,获取若干资源分配结果样本。而第二资源分配模型用于在指定资源分配渠道下的各资源分配对象之间进行资源预分配,因此,需要针对每个资源分配渠道分别训练第二资源分配模型,相应的,在训练第二资源分配模型时,需要基于指定的资源分配渠道的历史资源分配数据,获取若干资源分配结果样本。
[0227] 所述目标资源分配渠道为用户选中的需要进行资源再分配的渠道。如前文所述,对于不同类型的资源,资源分配渠道可能不同,资源分配渠道与待分配资源的类型对应。例如,对于广告费用资源,目标资源分配渠道可以为某个搜索引擎、某个网站、某个应用程序中的任意一个。又例如,对于网络带宽资源,目标资源渠道可以为某个网站、某个IP地址段等。本实施例中对目标资源分配渠道不做限制。
[0228] 在一些可选的实施例中,针对每个资源分配渠道,分别训练资源分配模型。因此,在训练某个资源分配渠道的资源分配模型时,需要根据该资源分配渠道的历史资源分配数据,训练神经网络,学习资源分配规律,从而得到该资源分配渠道的资源分配模型。例如,在训练某个广告投放渠道的资源分配模型时,可以获取该广告投放渠道的过去一年或半年的广告费用分配数据,构造资源分配结果样本,用于训练模型。其中,资源分配结果样本包括:分配资源总数量(例如一个投放计划投放广告的费用)和实际目标值(例如该费用的投入产出率、优化目标等)。
[0229] 步骤602,随机生成所述资源分配结果样本对应的若干待优化资源分配结果。
[0230] 之后,对于每一条资源分配结果样本,可以根据该资源分配结果样本对应的资源分配总数量和资源分配对象,随机生成一个或多个待优化资源分配结果,这样可以得到若干待优化资源分配结果,每个待优化资源分配结果对应一条资源分配结果样本。每个待优化资源分配结果对应的资源分配结果样本的实际目标值可以作为该待优化资源分配结果的优化目标。在资源分配模型训练过程中,通过对随机生成的待优化资源分配结果进行不断迭代优化,并与相应资源分配结果样本的实际目标值计算损失,指导资源分配模型的参数优化,从而进行资源分配模型的迭代优化。
[0231] 其中,待优化资源分配结果用于描述在指定资源总数量和资源分配对象的约束下的资源分配情况。
[0232] 步骤603,随机初始化待训练的资源分配模型中各神经网络,作为当前父代神经网络。
[0233] 在一些可选的实施例中,所述资源分配模型包括多个神经网络构成,所述神经网络例如可以为pointer network。在迭代优化开始时,首先随机初始化待训练的资源分配模型中各神经网络,并将随机初始化后的各神经网络,作为当前父代神经网络。
[0234] 在训练所述资源分配模型的过程中,可以采用分布式训练的方式,将所述资源分配模型中包括的多个神经网络分组,每组神经网络分别部署到不同的服务器上进行训练,从而提升资源分配模型的训练速度。例如,将K个神经网络参数分布在K个worker(如服务器)上,每个worker负责计算部分神经网络的目标函数值。
[0235] 步骤604,选择预设数量所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果。
[0236] 其中,所述预设数量与资源分配模型包含的神经网络数量匹配。以资源分配模型包含N个神经网络为例,可以选择N个待优化资源分配结果,分别输入至所述当前父代神经网络,得到N个父代资源分配结果。
[0237] 步骤605,采用神经网络进化算法,基于相应资源分配结果样本包括的所述实际目标值,对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代神经网络,直至迭代优化完成。
[0238] 参照图7,在一些可选的实施例中,所述采用神经网络进化算法,基于相应资源分配结果样本包括的所述实际目标值,对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代神经网络,直至迭代优化完成,包括:选择进化和变异步骤702、目标值获取步骤704、新父代神经网络生成步骤706和迭代步骤708。其中,选择进化和变异步骤702,用于对当前父代神经网络进行交叉选择及变异进化,得到当前子代神经网络;以及,将父代资源分配结果分别输入至当前子代神经网络进行优化,生成当前轮迭代优化对应的子代资源分配结果;目标值获取步骤704,用于采用预先训练的目标值预估模型,预估各所述子代资源分配结果的预估目标值;新父代神经网络生成步骤706,用于基于所述预估目标值、所述待优化资源分配结果对应的所述实际目标值和所述当前子代神经网络更新当前父代神经网络;
迭代步骤708,用于跳转至所述对当前父代神经网络进行交叉选择及变异进化,得到当前子代神经网络的步骤,执行下一轮迭代优化,直至迭代优化完成。
[0239] 通过选择算子,选择一对父代神经网络,并在一定概率下通过交叉进化算子对被选择的父代神经网络进行交叉进化,生成新的子代神经网络,可以帮助模型跳出局部最优解,最后通过变异进化算子进行变异,生成新的子代神经网络。该操作重复N次,直到生成N个子代神经网络。可选的,对当前父代神经网络进行交叉选择及变异进化时,采用的选择算子为随机选择方法,采用的交叉算子为两个当前父代神经网络的网络参数平均值,采用的变异算子为高斯变异算子。
[0240] 其中,选择算子可以采用随机选择法。交叉算子则采用两个父代神经网络相应参数的平均值算得,公式如下: 其中,πchild表示子代神经网络参数,π1和π2分别表示两个父代神经网络的参数。通过交叉算子,使得子代神经网络对父代神经网络的探索空间进行继承和扩展,有助于求解到更优的资源分配方案。
[0241] 在一些可选的实施例中,如果所有神经网络均在一个worker上训练,则可以将每个子代资源分配结果分别输入至预先训练的目标值预估模型,预估各所述子代资源分配结果的预估目标值。所述目标值预估模型的训练方法参见前文描述,此处不再赘述。
[0242] 在一些可选的实施例中,资源分配模型为多目标优化模型。当N个子代神经网络产生后,每个worker负责计算一部分的子代神经网络得到目标值,即子代神经网路产出的子代资源分配结果的目标值,计算完成后,目标值获取步骤还用于交换目标值信息。即各worker相互交换该目标值,使得每个worker可以获取到所有子代资源分配结果的目标值。其中,每个worker使用相同的随机种子来同步进化算子的操作,所以交换信息无需像传统基于梯度的方法那样交换梯度参数信息,而是只需交换神经网络的目标值信息,最大化减少了通信带宽需求。
[0243] 在迭代优化训练过程中,如果计算得到的模型损失满足预设收敛条件,或者迭代优化轮数达到预设轮数阈值,则可以认为完成迭代优化;否则,需要更新父代神经网络,继续执行迭代优化。
[0244] 可选的,所述基于所述预估目标值、所述待优化资源分配结果对应的所述实际目标值和所述当前子代神经网络更新当前父代神经网络,包括:基于所述预估目标值,确定所述当前子代神经网络对应的帕累托最优解;根据所述帕累托最优解从所述当前子代神经网络和所述当前父代神经网络中选择指定数量的神经网络,作为下一轮迭代优化的当前父代神经网络;根据当前子代神经网络的所述预估目标值和所述当前子代神经网络对应的所述实际目标值,计算当前轮迭代优化的损失,并以减小所述损失为目标,优化当前父代神经网络的网络参数。本申请实施例中,对计算模型损失的损失函数不做限制。
[0245] 在一些可选的实施例中,例如还可以将N个父代神经网络和N个子代神经网络基于帕累托支配关系和拥挤度进行排序,选取前N个神经网络,作为一轮迭代优化的当前父代神经网络。
[0246] 其中,帕累托支配关系和拥挤度的计算方法为现有技术。
[0247] 步骤606,基于当前轮子代神经网络和当前轮父代神经网络,选择神经网络,构成所述资源分配模型。
[0248] 迭代优化完成之后,可以从当前轮子代神经网络和当前轮父代神经网络中,选择神经网络,构成所述资源分配模型。例如,将N个父代神经网络和N个子代神经网络基于帕累托支配关系和拥挤度进行排序,选取前N个神经网络,构成所述资源分配模型。
[0249] 综上,本申请实施例公开的资源分配模型训练方法,基于资源分配渠道的历史资源分配数据,获取若干资源分配结果样本,所述资源分配结果样本包括:分配资源总数量和实际目标值,然后,随机生成所述资源分配结果样本对应的若干待优化资源分配结果,并选择预设数量所述待优化资源分配结果分别输入至随机初始化的当前父代神经网络,得到父代资源分配结果,之后,采用神经网络进化算法,基于相应资源分配结果样本包括的所述实际目标值,对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代神经网络,直至迭代优化,最后,基于从当前轮子代神经网络和当前轮父代神经网络,选择神经网络,构成所述资源分配模型。本申请实施例公开的资源分配模型训练方法,以进化算法为基础,使得训练得到的资源分配模型具有更强的资源分配能力和精确度,从而在应用阶段,减少人工调整,实现自动化资源分配,提升资源分配效率。
[0250] 在上述实施例的基础上,本申请实施例还提供了一种资源分配系统,能够实现自动化、定制化将待分配资源分配至选定的各资源分配渠道。
[0251] 参照图8,本申请的一个实施例中提供的资源分配系统,包括:客户端810、服务端820、资源预分配引擎830,其中,
[0252] 所述客户端810,用于获取用户输入的资源分配渠道、待分配资源的总数量和第一资源分配参数信息;
[0253] 所述服务端820,用于基于所述资源分配渠道、待分配资源的总数量和第一资源分配参数信息,创建资源预分配任务;
[0254] 所述服务端820,还用于触发所述资源预分配引擎830执行所述资源预分配任务;
[0255] 所述资源预分配引擎830,用于响应于所述服务端的触发,基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果;
[0256] 所述客户端810,还用于展示所述资源预分配结果。
[0257] 所述服务端820,还用于管理所述资源预分配任务的任务状态,并基于消息机制向所述客户端和/或预先设置的消息接收账号同步所述任务状态和/或任务执行结果。
[0258] 所述客户端,还用于展示所述资源再分配任务的任务状态。
[0259] 在一个可选的实施例中,所述服务端820通过向所述资源预分配引擎830发送新任务消息,触发所述资源预分配引擎830执行所述资源预分配任务;所述服务端820与所述资源预分配引擎830之间通过预设第一数据表传输数据。
[0260] 在一个可选的实施例中,所述资源预分配引擎830通过监测所述服务端820向预设第一数据表存储的任务数据,触发执行所述资源预分配任务。
[0261] 所述资源分配系统中所述服务端820和所述资源预分配引擎830的具体实施方式,参见前文实施例的描述,此处不再赘述。
[0262] 综上,本申请实施例公开的资源分配系统,通过由客户端采集用户输入的资源分配渠道、待分配资源的总数量和第一资源分配参数信息;之后,服务端基于所述总数量和所述第一资源分配参数信息,创建资源预分配任务;并触发资源预分配引擎执行所述资源预分配任务,得到资源分配渠道之间的资源预分配结果,实现了自动化、定制化,根据用户配置的不同约束指标,在资源分配渠道之间进行资源预分配,提升了资源分配效率。资源预分配引擎采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果,以进化算法为基础,提升了资源预分配的精准度。
[0263] 进一步的,服务端基于消息机制向所述客户端和/或预先设置的消息接收账号同步所述任务状态,对异步的操作可以进行快速及时通知。
[0264] 在上述实施例的基础上,本申请实施例还提供了一种资源分配系统,能够实现自动化、定制化将资源分配至资源分配结构。
[0265] 参照图9,本申请的一个实施例中提供的资源分配系统包括:客户端910、服务端920和资源再分配引擎930,其中,
[0266] 所述客户端910,用于获取用户输入的资源调控信息;
[0267] 所述服务端920,用于基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件,并基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息;
[0268] 所述服务端920,还用于获取所述目标资源分配渠道的资源预分配结果;
[0269] 所述服务端920,还用于基于所述资源分配结构、所述第二资源分配参数信息和所述资源预分配结果,创建资源再分配任务;
[0270] 所述服务端920,还用于触发所述资源再分配引擎执行所述资源再分配任务;
[0271] 所述资源再分配引擎930,用于响应于所述服务端920的触发,基于所述资源分配结构和所述第二资源分配参数信息,采用神经网络进化算法对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果;
[0272] 所述客户端910,还用于展示所述资源二次分配结果。
[0273] 在一些可选的实施例中,所述服务端920,还用于管理所述资源再分配任务的任务状态,并基于消息机制向所述客户端910和/或预先设置的消息接收账号同步所述任务状态。
[0274] 在一些可选的实施例中,所述客户端910,还用于展示所述资源再分配任务的任务状态。
[0275] 在一些可选的实施例中,所述服务端920,还用于基于所述资源二次分配结果调用所述目标资源分配渠道的预设接口,执行所述资源二次分配结果。
[0276] 在一个可选的实施例中,所述服务端920通过向所述资源再分配引擎930发送新任务消息,触发所述资源再分配引擎930执行所述资源再分配任务;所述服务端920与所述资源再分配引擎930之间通过预设第二数据表传输数据。
[0277] 在一个可选的实施例中,所述资源再分配引擎930通过监测所述服务端920向预设第二数据表存储的任务数据,触发执行所述资源预分配任务。
[0278] 所述资源分配系统中所述服务端920和所述资源再分配引擎930的具体实施方式,参见前文实施例的描述,此处不再赘述。
[0279] 综上,本申请实施例公开的资源分配系统,通过由客户端采集用户输入的资源调控信息,并由服务端基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件,并基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息,实现了用户根据效果/名称来选定指定投放结构,操作更便利。服务端基于所述资源分配结构、所述第二资源分配参数信息和预先获取的资源预分配结果,创建资源再分配任务,并触发所述资源再分配引擎执行所述资源再分配任务,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果,实现了自动化、定制化,根据用户配置的不同渠道、广告类型、约束指标进行资源再分配,资源分配粒度精准到资源分配对象,不仅提升了资源分配效率,而且,提升了资源分配精准度。进一步的,资源再分配引擎采用神经网络进化算法对所述待分配资源进行资源再分配,得到资源二次分配结果,以进化算法为基础,提升了资源分配的精准度。
[0280] 进一步的,服务端基于消息机制向所述客户端和/或预先设置的消息接收账号同步所述任务状态,对异步的操作可以进行快速及时通知。
[0281] 需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
[0282] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
[0283] 在上述实施例的基础上,本实施例还提供了一种资源分配装置,所述装置包括:
[0284] 第一配置信息获取模块,用于获取用户输入的资源分配渠道、待分配资源的总数量和第一资源分配参数信息;
[0285] 第一资源分配模块,用于基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果。
[0286] 在一些可选的实施例中,所述第一资源分配模块,进一步用于:
[0287] 以所述总数量、所述第一资源分配参数信息和所述资源分配渠道作为任务数据,创建资源预分配任务;
[0288] 获取所述资源预分配任务的第一任务标识;
[0289] 将所述资源预分配任务的所述任务数据,存储至预设第一数据表中以所述第一任务标识标记的分区,使得预设资源预分配引擎基于所述预设第一数据表中以所述第一任务标识标记的分区中的任务数据,采用神经网络进化算法进行资源预分配,得到各所述资源分配渠道的资源预分配结果,并将所述资源预分配结果存储至资源预分配结果数据表中以所述第一任务标识标记的分区;
[0290] 基于所述资源预分配结果数据表中,所述第一任务标识标记的分区中的资源预分配结果,得到各所述资源分配渠道的资源预分配结果。
[0291] 在一些可选的实施例中,所述基于所述资源预分配结果数据表中,所述第一任务标识标记的分区中的资源预分配结果,得到各所述资源分配渠道的资源预分配结果,包括:
[0292] 将所述资源预分配结果数据表中所述第一任务标识对应的资源预分配结果,同步至本地数据库;
[0293] 基于所述本地数据库中所述第一任务标识对应的资源预分配结果,得到各所述资源分配渠道的资源预分配结果。
[0294] 在一些可选的实施例中,所述资源预分配结果包括:用于指示资源预分配任务执行结果的标记数据,所述基于所述本地数据库中所述第一任务标识对应的资源预分配结果,得到各所述资源分配渠道的资源预分配结果,包括:
[0295] 响应于所述标记数据指示资源预分配任务执行成功,从所述本地数据库中所述第一任务标识对应的资源预分配结果中,获取各所述资源分配渠道的预分配资源数量;和/或[0296] 响应于所述标记数据指示资源预分配任务执行失败,得到指示资源分配失败的资源预分配结果。
[0297] 在一些可选的实施例中,所述资源分配结果包括:用于指示资源预分配任务执行结果的标记数据,所述将所述资源预分配结果数据表中所述第一任务标识对应的资源预分配结果,同步至本地数据库之后,还包括以下一种或多种操作:
[0298] 响应于在所述本地数据库中监测到所述第一任务标识对应的资源预分配结果,更新所述资源预分配任务的任务状态为指示执行完成的第一状态值,并向预设消息接收端发送指示当前任务状态的通知消息;
[0299] 响应于所述标记数据指示资源预分配任务执行成功,更新所述资源预分配任务的任务状态为指示分配成功的第二状态值,并向预设消息接收端发送指示当前任务状态的通知消息;
[0300] 响应于所述标记数据指示资源预分配任务执行失败,更新所述资源预分配任务的任务状态为指示分配失败的第三状态值,并向预设消息接收端发送指示当前任务状态的通知消息。
[0301] 通过在资源再分配任务执行的各节点,采用消息通知机制向客户端和/或相应用户同步任务状态,对资源分配的异步操作进行快速及时通知,可以保障资源分配流程的自动化流转,同时,可以加入人工审核要素,控制资源分配风险。
[0302] 综上,本申请实施例公开的资源分配装置,通过获取用户输入的资源分配渠道、待分配资源的总数量和第一资源分配参数信息;之后,基于所述总数量和所述第一资源分配参数信息,采用神经网络进化算法对所述待分配资源进行资源分配,得到基于所述资源分配渠道的资源预分配结果,以进化算法为基础,实现了自动化、定制化,根据用户配置的不同约束指标,在资源分配渠道之间进行资源预分配,提升了资源分配效率。
[0303] 在上述实施例的基础上,本实施例还提供了一种资源分配装置,所述装置包括:
[0304] 第二配置信息获取模块,用于基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件;
[0305] 所述第二配置信息获取模块,还用于基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息;
[0306] 第二资源分配模块,用于基于所述资源分配结构和所述第二资源分配参数信息,采用神经网络进化算法对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果。
[0307] 在一些可选的实施例中,所述资源分配条件包括以下一种或多种信息:资源分配对象关联因素的名称、资源分配对象关联因素组合关系,基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构,包括:
[0308] 基于资源分配对象关联因素的名称、资源分配对象关联因素组合关系,生成检索条件;
[0309] 基于所述检索条件,检索存储预先创建的资源分配结构的多维数据库,得到与所述资源分配条件匹配的资源分配结构,作为所述目标资源分配渠道匹配的资源分配结构。
[0310] 在一些可选的实施例中,所述基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件之前,还包括:
[0311] 将预设资源分配结构数据表中各资源分配渠道的资源分配结构更新存储至多维数据库中。
[0312] 在一些可选的实施例中,所述第二资源分配模块,进一步用于:
[0313] 以所述资源分配结构、所述第二资源分配参数信息和所述目标资源分配渠道的预先获取的资源预分配结果作为任务数据,创建所述目标资源分配渠道的资源再分配任务;
[0314] 获取所述资源再分配任务的第二任务标识;
[0315] 将所述资源再分配任务的所述任务数据,存储至预设第二数据表中以所述第二任务标识标记的分区,使得预设资源再分配引擎基于所述预设第二数据表中以所述第二任务标识标记的分区中的任务数据,采用神经网络进化算法进行资源再分配,得到所述资源分配结构中各不同资源分配对象的资源分配结果,并将所述资源分配结果存储至所述目标资源分配渠道对应的资源分配结果数据表中以所述第二任务标识标记的分区;
[0316] 基于所述目标资源分配渠道对应的资源分配结果数据表中,所述第二任务标识标记的分区中的资源分配结果,得到所述目标资源分配渠道下基于所述资源分配结构的资源二次分配结果。
[0317] 综上,本申请实施例公开的资源分配装置,通过基于用户输入的资源调控信息,确定目标资源分配渠道和资源分配条件;然后,基于所述资源分配条件,获取所述目标资源分配渠道匹配的资源分配结构和第二资源分配参数信息,再基于所述资源分配结构和所述第二资源分配参数信息,对所述目标资源分配渠道的预先获取的资源预分配结果进行资源再分配,得到所述目标资源分配渠道的基于所述资源分配结构的资源二次分配结果,实现了资源分配的自动化,有效提升了资源分配效率。并且,资源分配粒度细化到资源分配结构层面,提升了资源分配精确度。
[0318] 在上述实施例的基础上,本实施例还提供了一种资源分配装置,所述装置包括:
[0319] 第一待优化资源分配结果获取模块,用于基于资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果;
[0320] 第一初始输入模块,用于以预先训练的第二资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;
[0321] 第一迭代优化模块,用于采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成;
[0322] 资源分配结果获取模块,用于基于每轮迭代优化生成的子代资源分配结果,获取资源分配结果。
[0323] 在一些可选的实施例中,所述第一迭代优化模块,进一步用于:
[0324] 对当前父代神经网络进行交叉进化,得到当前子代神经网络;
[0325] 将父代资源分配结果分别输入至当前子代神经网络进行优化,生成当前轮迭代优化对应的子代资源分配结果;
[0326] 预估各所述子代资源分配结果的目标值;
[0327] 基于所述目标值和所述当前子代神经网络更新当前父代神经网络,跳转至所述对当前父代神经网络进行交叉进化,得到当前子代神经网络的步骤,执行下一轮迭代优化,直至迭代优化完成。
[0328] 在一些可选的实施例中,对当前父代神经网络进行交叉进化时,交叉算子为两个当前父代神经网络的网络参数平均值,选择算子采用随机选择方法。
[0329] 在一些可选的实施例中,所述基于所述目标值和所述当前子代神经网络更新当前父代神经网络,包括:基于所述目标值,确定所述当前子代神经网络对应的帕累托最优解;
[0330] 基于所述帕累托最优解从所述当前子代神经网络和所述当前父代神经网络中选择指定数量的神经网络,作为下一轮迭代优化的父代神经网络。
[0331] 综上,本申请实施例公开的资源分配装置,通过基于资源分配对象、预分配资源数量和第二资源分配参数信息,获取预设数量待优化资源分配结果;以预先训练的第二资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成,最后从每轮迭代优化生成的子代资源分配结果中选择资源分配结果,可以提升在资源分配对象之间进行资源分配的精准度,避免了用户人工反复多次调整资源分配策略,提升了资源分配效率。
[0332] 进一步的,通过计算各子代资源分配结果的目标值,基于帕累托最优解选择最终输出的资源分配结果,可以自动、高效的实现基于多目标选择优选资源分配结果,进一步提升资源分配结果的精准度。
[0333] 在上述实施例的基础上,本实施例还提供了一种资源分配装置,所述装置包括:
[0334] 第二待优化资源分配结果获取模块,基于待分配资源的总数量、资源分配渠道、第一资源分配参数信息,获取预设数量待优化资源分配结果;
[0335] 第二初始输入模块,用于以预先训练的第一资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;
[0336] 第二迭代优化模块,用于采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成;
[0337] 资源分配结果获取模块,用于基于每轮迭代优化生成的子代资源分配结果,获取资源预分配结果。
[0338] 综上,本申请实施例公开的资源分配装置,通过待分配资源的总数量、资源分配渠道、第一资源分配参数信息,获取预设数量待优化资源分配结果;以预先训练的第一资源分配模型中各神经网络作为当前父代神经网络,将所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;采用神经网络进化算法对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代资源分配结果,直至迭代优化完成,最后从每轮迭代优化生成的子代资源分配结果中选择资源分配结果,可以提升在资源分配渠道之间进行资源分配的精准度,避免了用户人工反复多次调整资源分配策略,提升了资源分配效率。
[0339] 在上述实施例的基础上,本实施例还提供了一种资源分配模型训练装置,所述装置包括:
[0340] 资源分配结果样本获取模块,用于基于资源分配渠道的历史资源分配数据,获取若干资源分配结果样本,所述资源分配结果样本包括:分配资源总数量和实际目标值;
[0341] 待优化资源分配结果生成模块,用于随机生成所述资源分配结果样本对应的若干待优化资源分配结果;
[0342] 当前父代神经网络初始化模块,用于随机初始化待训练的资源分配模型中各神经网络,作为当前父代神经网络;
[0343] 父代资源分配结果获取模块,用于选择预设数量所述待优化资源分配结果分别输入至所述当前父代神经网络,得到父代资源分配结果;
[0344] 迭代优化模块,用于采用神经网络进化算法,基于相应资源分配结果样本包括的所述实际目标值,对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代神经网络,直至迭代优化完成;
[0345] 资源分配模型生成模块,用于基于当前轮子代神经网络和当前轮父代神经网络,选择神经网络,构成所述资源分配模型。
[0346] 综上,本申请实施例公开的资源分配模型训练装置,通过基于资源分配渠道的历史资源分配数据,获取若干资源分配结果样本,所述资源分配结果样本包括:分配资源总数量和实际目标值,然后,随机生成所述资源分配结果样本对应的若干待优化资源分配结果,并选择预设数量所述待优化资源分配结果分别输入至随机初始化的当前父代神经网络,得到父代资源分配结果,之后,采用神经网络进化算法,基于相应资源分配结果样本包括的所述实际目标值,对父代资源分配结果进行迭代优化,生成相应轮迭代优化的子代神经网络,直至迭代优化,最后,基于从当前轮子代神经网络和当前轮父代神经网络,选择神经网络,构成所述资源分配模型。本申请实施例公开的资源分配模型训练装置,以进化算法为基础,使得训练得到的资源分配模型具有更强的资源分配能力和精确度,从而在应用阶段,减少人工调整,实现自动化资源分配,提升资源分配效率。
[0347] 本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
[0348] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本申请实施例所述的方法。
[0349] 本申请实施例还提供了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如本申请实施例所述的方法。本申请实施例中,所述电子设备包括服务器、终端设备等设备。
[0350] 本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端等电子设备。图10示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1000。
[0351] 对于一个实施例,图10示出了示例性装置1000,该装置具有一个或多个处理器1002、被耦合到(一个或多个)处理器1002中的至少一个的控制模块(芯片组)1004、被耦合到控制模块1004的存储器1006、被耦合到控制模块1004的非易失性存储器(NVM)/存储设备
1008、被耦合到控制模块1004的一个或多个输入/输出设备1010,以及被耦合到控制模块
1004的网络接口1012。
[0352] 处理器1002可包括一个或多个单核或多核处理器,处理器1002可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1000能够作为本申请实施例中所述服务端、终端等设备。
[0353] 在一些实施例中,装置1000可包括具有指令1014的一个或多个计算机可读介质(例如,存储器1006或NVM/存储设备1008)以及与该一个或多个计算机可读介质相合并被配置为执行指令1014以实现模块从而执行本公开中所述的动作的一个或多个处理器1002。
[0354] 对于一个实施例,控制模块1004可包括任意适当的接口控制器,以向(一个或多个)处理器1002中的至少一个和/或与控制模块1004通信的任意适当的设备或组件提供任意适当的接口。
[0355] 控制模块1004可包括存储器控制器模块,以向存储器1006提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
[0356] 存储器1006可被用于例如为装置1000加载和存储数据和/或指令1014。对于一个实施例,存储器1006可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1006可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
[0357] 对于一个实施例,控制模块1004可包括一个或多个输入/输出控制器,以向NVM/存储设备1008及(一个或多个)输入/输出设备1010提供接口。
[0358] 例如,NVM/存储设备1008可被用于存储数据和/或指令1014。NVM/存储设备1008可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
[0359] NVM/存储设备1008可包括作为装置1000被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备1008可通过网络经由(一个或多个)输入/输出设备1010进行访问。
[0360] (一个或多个)输入/输出设备1010可为装置1000提供接口以与任意其他适当的设备通信,输入/输出设备1010可以包括通信组件、音频组件、传感器组件等。网络接口1012可为装置1000提供接口以通过一个或多个网络通信,装置1000可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如蓝牙、WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
[0361] 对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
[0362] 在各个实施例中,装置1000可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1000可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1000包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
[0363] 其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
[0364] 本申请实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的方法。本申请实施例中存储器中可存储各种数据,如目标文件、文件与应用关联数据等各种数据,还可包括用户行为数据等,从而为各种处理提供数据基础。
[0365] 本申请实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的方法。
[0366] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0367] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0368] 本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0369] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0370] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0371] 尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
[0372] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0373] 以上对本申请所提供的一种资源分配方法、一种资源分配系统、一种资源分配模型训练方法、一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。