用于执行动作的方法、装置、设备和介质与流程

未命名 07-13 阅读:97 评论:0


1.本公开的示例性实现方式总体涉及执行动作,特别地涉及在分布式环境中执行动作的方法、装置、设备和计算机可读存储介质。


背景技术:

2.随着联邦学习和移动计算的发展,目前已经提出了在分布式环境中执行联邦学习的架构,这些架构可以使得多个客户端能够在保护敏感数据的情况下进行协作探索和利用。例如,可以在多个客户端处分别执行各个动作,并且多个客户端可以与服务器进行通信,进而以分布式方式逐步获得用于确定将要执行的动作的动作模型。然而,联邦学习涉及大量数据通信和计算,这导致由于数据通信和计算导致的各种开销可能会影响机器学习的性能。此时,如何以更为有效的方式来管理动作执行进而完成联邦学习过程,成为一个研究热点和难点。


技术实现要素:

3.在本公开的第一方面,提供了一种用于执行动作的方法。在该方法中,基于第一设备处的第一动作模型,从多个动作中确定在所述第一设备处执行的一组动作。获取与所述一组动作相关联的数据累积指标,所述数据累积指标指示从所述第一设备将被发送至与所述第一设备相关联的第二设备的数据量。响应于所述数据累积指标满足预定条件,向所述第二设备传输与所述一组动作相关联的参数数据,以使得所述第二设备利用所述参数数据来更新所述第二设备处的第二动作模型,所述参数数据包括分别与所述一组动作相关联的奖励数据和消耗数据。
4.在本公开的第二方面,提供了一种用于执行动作的装置。该装置包括:确定模块,被配置用于基于第一设备处的第一动作模型,从多个动作中确定在所述第一设备处执行的一组动作;获取模块,被配置用于获取与所述一组动作相关联的数据累积指标,所述数据累积指标指示从所述第一设备将被发送至与所述第一设备相关联的第二设备的数据量;以及发送模块,被配置用于响应于所述数据累积指标满足预定条件,向所述第二设备传输与所述一组动作相关联的参数数据,以使得所述第二设备利用所述参数数据来更新所述第二设备处的第二动作模型,所述参数数据包括分别与所述一组动作相关联的奖励数据和消耗数据。
5.在本公开的第三方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使电子设备执行根据本公开第一方面的方法。
6.在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时使处理器实现根据本公开第一方面的方法。
7.在本公开的第五方面,提供了一种用于执行动作的方法。在该方法中,在与多个第
一设备相关联的第二设备处,分别接收来自所述多个第一设备的多个参数数据,所述多个参数数据中的来自所述多个第一设备中的第一设备的参数数据是响应于与所述第一设备相关联的数据累积指标满足预定条件而从所述第一设备被传输至所述第二设备,所述数据累积指标指示从所述第一设备将被传输至所述第二设备的数据量,所述参数数据包括分别与在所述第一设备处执行的一组动作相关联的奖励数据和消耗数据。基于所述多个参数数据来确定聚合的参数数据。分别向所述多个第一设备传输所述聚合的参数数据,以便使得所述多个第一设备分别基于所述聚合的参数数据来更新位于所述多个第一设备处的多个第一动作模型。
8.在本公开的第六方面,提供了一种用于执行动作的装置。该装置包括:接收模块,被配置用于在与多个第一设备相关联的第二设备处,分别接收来自所述多个第一设备的多个参数数据,所述多个参数数据中的来自所述多个第一设备中的第一设备的参数数据是响应于与所述第一设备相关联的数据累积指标满足预定条件而从所述第一设备被传输至所述第二设备,所述数据累积指标指示从所述第一设备将被传输至所述第二设备的数据量,所述参数数据包括分别与在所述第一设备处执行的一组动作相关联的奖励数据和消耗数据;确定模块,被配置用于基于所述多个参数数据来确定聚合的参数数据;以及传输模块,被配置用于分别向所述多个第一设备传输所述聚合的参数数据,以便使得所述多个第一设备分别基于所述聚合的参数数据来更新位于所述多个第一设备处的多个第一动作模型。
9.在本公开的第七方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使电子设备执行根据本公开第五方面的方法。
10.在本公开的第八方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时使处理器实现根据本公开第五方面的方法。
11.应当理解,本内容部分中所描述的内容并非旨在限定本公开的实现方式的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
12.在下文中,结合附图并参考以下详细说明,本公开各实现方式的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
13.图1示出了其中可以使用根据本公开的一个示例性实现方式的分布式处理环境的框图;
14.图2示出了根据本公开的一些实现方式的用于执行动作的框图;
15.图3示出了根据本公开的一些实现方式的在多个设备处执行动作的交互过程的轨道图;
16.图4示出了根据本公开的一些实现方式的在第一设备处执行的算法的框图;
17.图5示出了根据本公开的一些实现方式的在第二设备处执行的算法的框图;
18.图6示出了根据本公开的一些实现方式的动作执行过程与根据多个其他技术方案
的动作执行过程的性能的比较的框图;
19.图7示出了根据本公开的一些实现方式的动作执行过程与根据多个其他技术方案的动作执行过程的性能的比较的框图;
20.图8示出了根据本公开的一些实现方式的在客户端处的用于执行动作的方法的流程图;
21.图9示出了根据本公开的一些实现方式的在服务器处的用于执行动作的方法的流程图;
22.图10示出了根据本公开的一些实现方式的用于执行动作的装置的框图;
23.图11示出了根据本公开的一些实现方式的用于执行动作的装置的框图;以及
24.图12示出了能够实施本公开的多个实现方式的设备的框图。
具体实施方式
25.下面将参照附图更详细地描述本公开的实现方式。虽然附图中示出了本公开的某些实现方式,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实现方式,相反,提供这些实现方式是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实现方式仅用于示例性作用,并非用于限制本公开的保护范围。
26.在本公开的实现方式的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实现方式”或“该实现方式”应当理解为“至少一个实现方式”。术语“一些实现方式”应当理解为“至少一些实现方式”。下文还可能包括其他明确的和隐含的定义。如本文中所使用的,术语“模型”可以表示各个数据之间的关联关系。例如,可以基于目前已知的和/或将在未来开发的多种技术方案来获取上述关联关系。
27.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
28.可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
29.例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
30.作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。
31.可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
32.在此使用的术语“响应于”表示相应的事件发生或者条件得以满足的状态。将会理
解,响应于该事件或者条件而被执行的后续动作的执行时机,与该事件发生或者条件成立的时间,二者之间未必是强关联的。例如,在某些情况下,后续动作可在事件发生或者条件成立时立即被执行;而在另一些情况下,后续动作可在事件发生或者条件成立后经过一段时间才被执行。
33.示例环境
34.在大量真实世界的应用中,如数据推荐系统、互联网数据推送系统、网络参数配置、众包系统、临床试验系统等系统中,都存在顺序决策问题。决策者可以按照决定的顺序来执行各个动作,以便最大限度地提高长期奖励。这类问题通常被建模为mab(multi-armed bandit,缩写mab)问题,决策者需要在探索和利用之间取得平衡。作为分布式机器学习方法,联邦学习可以在一定程度上保护用户敏感数据,这使得联邦学习日益得到广泛应用。mab涉及利用多个客户端的协作进而更新模型,可以将mab扩展到联邦学习的上下文中。此时,中央服务器能够利用来自大量客户端的分布式数据集,来提高mab算法的性能,同时仍然保护每个客户端的敏感数据数据。
35.然而,目前对联邦博弈机问题的研究并未考虑执行动作(也即,拉取mab的手臂)的资源限制,这是真实世界中的一个关键问题。通常而言,在整个决策过程中,执行动作需要满足资源消耗约束并且实现将奖励最大化的目标。例如,在数据推送系统中,期望向用户提供来自数据提供者的各种数据推送,用户对数据推送的反馈(例如,点击等)可能会涉及敏感数据保护。可以利用联邦博弈机来建模数据推送过程,其目标在于根据用户的反馈来优化长期数据推送效果。每个数据推送都与一定的消耗相关联。在这种情况下,当执行数据推送时,决策过程不仅需要考虑预期的奖励(例如,点击或转化结果),还需要考虑数据推送所导致的消耗(例如,消耗的各种资源)。
36.又例如,在基站参数配置的示例中,也可以使用联邦博弈机来执行建模:基站对应于客户端,基站的每个配置对应于mab的一个手臂。考虑到基站服务的用户体验,移动网络运营商只允许有限数量的调整,这反映了资源方面的限制。进一步,在众包场景中也可以存在类似的问题,即众包平台需要将多个任务分配给工作者,并且可以向工作者提供相应的报酬,因而存在预算限制。然而,已有技术方案并未考虑在拉动某个手臂时应当遵循的消耗限制。
37.目前已经提出了mab的技术方案,该技术方案将在m个客户端处执行k个动作中的任意动作的问题描述如下:客户端可以对应于mab,此时拉动某个手臂可以对应于执行k个动作中的某个动作。在mab的传统设置中,手臂可以用标量表示以便从未知手臂分布中推断出奖励。作为经典建模,线性奖励模型已在上下文博弈机场景中得到广泛研究。mab代表一种在线学习模型,该模型可以实现多个顺序决策问题中内在的探索-利用之间的平衡,因此许多真实世界的问题都是通过将其建模为博弈机问题来解决的。
38.近年来,多代理和分布式环境下的博弈机问题越来越受到关注,并且已经提出了分布式联邦博弈机的技术方案。具体地,可以考虑分布式无线网络中的信道选择问题,将其建模为具有冲突的mab,其中向选择同一手臂的客户端分配零奖励。同时,在mab问题中也有一些关于合作估计的技术方案,重点是网络延迟和高效通信的问题。已经提出了分布式线性博弈机算法,该算法使用高效的通信模型,然而该算法并不能保护敏感数据。尽管已经提出了多种组合技术方案,然而由于如下三个主要挑战,这导致无法直接使用已有技术方案。
39.第一个挑战来自于计算成本。在经典的联邦学习中,客户端处不存在足够的资源来执行复杂的计算任务,这要求有效地解决背包问题并减少计算开销。在已有技术方案中,可以在每一轮次中解决一个线性编程(linear programming,缩写lp)问题,这会导致较高的计算成本,尤其是当客户端或手臂的数量很大时。目前还提出了基于oracle(也即,最优解)的解决方案,然而在真实世界中难以估计最优解,同时需要对假设类别或分布进行强假设。第二个挑战来自通信成本。在联邦学习框架下的背包约束显著增加了博弈机的问题复杂性。已经提出的技术方案通过设置特定的通信阈值来降低通信成本。如果减少lp计算的数量,那么不同于传统的联邦博弈机,在计算时客户端将无法在每一轮中独立地更新本地的动作模型。已有技术方案仅考虑通信成本而不考虑计算成本,这不利于提高整体性能。第三个挑战来自敏感数据保护。在许多真实世界的应用程序中,需要保护用户的私人信息。已有解决方案通常涉及在原始数据中添加噪声和扰动。然而,这将会影响模型的性能,并且在噪声较小的情况下仍然存在敏感数据泄露的风险。此时,如何以更为有效的方式来管理动作执行进而完成联邦学习过程,成为一个研究热点和难点。
40.执行动作的概要过程
41.为了至少部分地解决现有技术中的不足,根据本公开的一个示例性实现方式,提出了一种用于执行动作的方法。具体地,本公开通过研究背包问题来解决协作探索和利用的平衡问题。假设存在m个客户端,并且在每个客户端处可以执行k个动作中的任意动作。m个客户端可以在服务器的协调下,基于线性奖励和消耗来执行期望的动作,从而最大限度地减少总遗憾。根据本公开的一个示例性实现方式,利用基于背包的联邦博弈机(federated linear bandits with knapsacks,缩写feducbwk)来实现执行动作的过程。
42.面对计算成本方面的挑战,本公开考虑了高计算成本造成的显著延迟,提出了可以减少lp计算的次数、并在不需要假设的情况下求解的技术方案。面对通信成本方面的挑战,本公开提出新的同步阈值,允许通信和计算的统一同步。如果客户端只计算和更新策略而没有及时通信,那么就会丢失来自其他客户端的信息,并且降低计算效果;如果只进行通信而不进行计算,则客户端将无法更新策略,从而导致传输无用信息。面对敏感数据保护方面的挑战,本公开的技术方案只传输模型参数而并不传输原始数据,从而保护敏感数据。
43.参见图1描述分布式处理环境的概要,该图1示出了其中可以使用根据本公开的一个示例性实现方式的分布式处理环境100的框图。如图1所示,分布式处理环境100可以包括服务器110和多个客户端120、

、以及140。此时,可以认为每个客户端是具有k个手臂mab,可以在每个客户端处拉动k个手臂中的任一手臂(对应于执行某个动作),每次拉动手臂会产生一定的消耗,并且拉动手臂的目标在于使得在客户端处获得的奖励最大化。可以在客户端处执行线性编程求解过程,来确定将被执行的动作。
44.如图1所示,可以基于联邦学习架构来分别在多个客户端和服务器处执行学习过程。具体地,在客户端120处,可以基于lp求解126来确定将被执行的各个动作,以便在消耗124的约束下实现将奖励122最大化的目标。进一步,在客户端140处,可以基于lp求解146来确定将被执行的各个动作,以便在消耗144的约束下实现将奖励142最大化的目标。可以从客户端120向服务器110传输参数130(例如,手臂选择的相关参数等),可以从客户端140向服务器110传输参数150(例如,手臂选择的相关参数等)。
45.服务器110可以将来自各个客户端的参数进行聚合,以便更新服务器处的动作模
型的参数,进一步,服务器110可以分别向客户端120、

、以及140传输相应的参数132(例如,整合的参数)、

、以及152,进而更新各个客户端处的动作模型。以此方式,可以在联邦学习中考虑奖励和消耗的多方面约束,进而获得更加匹配于实际需求的动作模型。
46.进一步,参见图2示出有关根据本公开的一个示例性实现方式的更多细节,该图2示出了根据本公开的一些实现方式的用于执行动作的框图200。如图2所示,可以在包括第一设备210(例如,图1所示的客户端)和第二设备220(例如,图1所示的服务器)的分布式环境中执行动作。具体地,第一设备210可以包括第一动作模型212,并且第二设备220可以包括第二动作模型222。可以基于联邦学习来分别更新第一动作模型212和第二动作模型222。
47.在联邦学习过程中,可以基于第一设备210处的第一动作模型212,从多个动作中确定在第一设备210处执行的一组动作214。可以基于一组动作214来获取与一组动作214相关联的数据累积指标216。在此该数据累积指标216可以指示从第一设备210将被发送至与第一设备210相关联的第二设备220的数据量。如果数据累积指标216满足预定条件,则可以从第一设备210向第二设备220发送与一组动作214相关联的参数数据218(例如,在第一设备210处确定的分一组动作的相关奖励和消耗),以使得第二设备利用该参数数据来更新第二设备220处的第二动作模型222。
48.换言之,数据累积指标216可以指示是否在第一设备210和第二设备220之间启动通信回合。以此方式,可以降低两个设备之间的通信开销,进而提高执行动作的效率。将会理解,尽管图2仅示意性示出了单一的第一设备210,在分布式环境中可以存在其他的第一设备。此时,第二设备220可以接收来自其他第一设备的参数数据,进而生成聚合的参数数据224,并且向各个第一设备传输聚合的参数数据224以便分别更新本地的动作模型。
49.根据本公开的一个示例性实现方式,可以利用数据累积指标216来表示是否向第二设备220发送数据,如果在第一设备210处已经执行的动作产生的参数数据达到了预定阈值,则可以向第二设备220发送累积的参数数据。如果累积的数据量并未达到预定阈值,则可以继续执行一个或多个动作并且在第一设备处210继续执行lp求解,进而继续累积将要被传输的参数数据。
50.所提出的技术方案可以使用统一的阈值条件来解决各个轮次中的分布式背包问题,该阈值条件可以平衡客户端的遗憾、通信和计算成本。以此方式,在第一设备210处,一方面可以在满足消耗约束的情况下到将奖励最大化的目标,另一方面可以避免在第一设备210和第二设备220之间的过于频繁的通信导致的通信开销和时间开销,进而在探索-利用之间寻找平衡,并且提高联邦学习的整体性能。此外,在执行动作以及更新动作模型的过程期间,并不传输采集到的真实数据(例如,用户的点击等操作),从而可以在确保敏感数据安全性的情况下,以分布式方式来更新动作模型。
51.执行动作的详细过程
52.已经描述了根据本公开的一个示例性实现方式的概要,在下文中,参见图3描述以分布式方式来执行动作的更多细节。为了便于描述,仅以数据推送任务作为具体应用环境来描述执行动作的具体应用环境。例如,在数据推送系统中,可以向用户所使用的终端设备推动数据,并且在此的动作可以对应于向该用户推动数据的动作。该图3示出了根据本公开的一些实现方式的在多个设备处执行动作的交互过程的轨道图300。如图3所示,可以在多个第一设备210、

、以及310处执行动作,并且基于执行的动作来更新相应的动作模型。此
时,第一设备210和第一设备310可以分别包括相应的第一动作模型,并且第二设备220可以包括第二动作模型。
53.在联邦学习过程中,在第一设备210处可以执行多个动作。在此,多个动作可以是拉动mab的某个手臂的动作。在初始阶段,可以依次执行320多个动作,并且可以向第二设备220传输322与多个动作相关联的初始参数数据。在第一设备310处可以执行类似的操作,例如在第一设备310处可以执行320’多个动作,并且可以向第二设备220传输322’与多个动作相关联的初始参数数据。第二设备220可以接收来自各个第一设备(例如,第一设备210、

、以及310)的初始参数数据,进而确定324聚合的初始参数数据。可以利用聚合的初始参数数据来更新第二设备220处的第二模型。
54.进一步,第二设备220可以向第一设备210传输326聚合的初始参数数据。类似地,第二设备220可以向第一设备310传输326’聚合的初始参数数据。可以利用聚合的初始参数数据来更新第一设备210处的第一动作模型;类似地,可以利用聚合的初始参数数据来更新第一设备310处的第一动作模型。在此,由箭头320至328’所示的过程涉及初始化阶段,并且第一设备210、

、310处的相应第一动作模型以及第二设备220处的第二动作模型可以被初步更新。
55.在初始阶段之后,在每个第一设备处可以利用更新后的动作模型来确定将被执行的动作。例如,在第一设备210处,可以基于更新的第一动作模型来执行330一组动作(在此一组动作的数量取决于数据累积指标是否满足预定条件)。可以利用更新的第一动作模型来确定将要执行的一个或多个动作,并且执行这些动作。
56.进一步,可以确定与上述一组动作相关联的数据累积指标。例如,可以利用已经被执行的动作的特征来确定该数据累积指标。如果数据累积指标满足332预定条件,则可以从第一设备210向第二设备220启动通信回合,以便传输334与该一组动作相关联的参数数据。如果数据累积指标不满足预定条件,则操作流程可以返回箭头330所示的位置,并且基于更新的第一动作模型来继续确定并且执行后续的一个或多个动作,直到与已经被执行的一组动作相关联的数据累积指标满足预定条件。
57.在第一设备310处可以执行类似的操作,例如,可以基于更新的第一动作模型来执行一组动作330’。如果与一组动作相关联的数据累积指标满足332’预定条件,则可以向第二设备220传输334’与该一组动作相关联的参数数据。
58.进一步,第二设备220可以基于接收到的来自各个第一设备的参数数据,确定聚合的参数数据。可以利用聚合的参数数据来更新第二设备220处的第二模型。进一步,第二设备220可以向第一设备210传输338聚合的参数数据。类似地,第二设备220可以向第一设备310传输338’聚合的参数数据。此时,操作流程可以返回至箭头328和328’所示的位置,并且每个第一设备可以利用新接收的参数数据来更新本地的第一动作模型。
59.根据本公开的一个示例性实现方式,可以设置预定的循环结束条件,例如,可以设置预定时间长度,并且在达到该预定时间长度时结束如图3所示的过程。将会理解,尽管在图3仅示意性示出了在第一设备210和310处的操作,可以存在更多的第一设备,并且在每个第一设备处执行的过程可以是类似的。
60.利用本公开的示例性实现方式,第二设备220处的第二动作模型是经由联邦学习技术获得的准确的动作模型,该动作模型可以在满足预定的消耗限制的情况下,实现将奖
励最大化的目标。此时,第一设备210不必在执行每个动作之后向第二设备220传输每轮lp求解的参数数据,而是可以累积多次动作执行产生的参数数据,并且在数据累积指标满足预定条件的情况下执行传输。以此方式,可以确保联邦学习过程中不会导致过多的通信开销。
61.已经描述了在客户端和服务器之间的协作的概要,在下文中,将介绍与动作执行过程相关的具体公式。根据本公开的一个示例性实现方式,可以在服务器-客户端架构下实现feducbwk。假设存在m个客户端,每个客户端可以访问d维的k个动作(手臂),表示为a∈[k]:={1,2

,k}。在每个时间t∈[t],在每个客户端m∈[m]处可以执行动作a
t,m
并且观察奖励和消耗。可以将a
t,m
的特征(也即上下文)表示为将未知的预期奖励表示为r
t,m
,相应的资源消耗表示为c
t,m
。假设存在固定的消耗总预算该预算对于服务器是已知的。b是对资源消耗的严格限制,并且算法在b耗尽时终止。备选地和/或附加地,可以在运行时间达到预定时间长度t时终止。
[0062]
根据本公开的一个示例性实现方式,提出了具有全局参数的线性结构。为了获取在不同客户端处执行相同动作的奖励之间的内在相关性,可以假设奖励r
t,m
具有线性结构:其中是固定但未知的向量,并且是针对奖励r
t,m
具有零平均值的独立随机噪声。此外,假设消耗c
t,m
具有线性结构:具有线性结构:其中是固定但未知的参数向量,并且是固定但未知的参数向量,并且是针对成本c
t,m
具有为零均值的独立随机噪声。
[0063]
在通信方面,假设在分布式环境中存在中央服务器,客户端可以周期性地与服务器进行通信。具体地,在每次通信期间,客户端可以将本地累积的参数数据发送到中央服务器,然后中央服务器可以聚合接收到的参数数据,以便更新动作模型并且计算当前策略。然后,中央服务器可以向所有客户端广播该策略。可以将算法的通信成本定义为服务器和客户端之间通信的标量(整数或实数)数量。
[0064]
在计算方面,在线性静态环境下可以将计算问题描述为mab问题,因此本公开将通过将原始问题分解为多个线性规划问题来解决。本公开将算法的计算成本定义为求解线性规划问题的数量。
[0065]
在敏感数据保护方面,每个客户端的上下文都是静态的,这可以理解为对于每个客户端而言,其特性和使用习惯在一定的时间内不会改变。尽管上下文并不随时间变化,但每个客户端的上下文都是个人信息,客户端需要保护自己的敏感数据。此外,每个动作的奖励,例如用户对数据推送系统中数据推送的反馈(点击和购买行为),也是客户端处的敏感信息。本公开的技术方案只要求每个客户端传输在每个各个轮次中计算所得的参数数据,而不需要直接传输原始数据。
[0066]
根据本公开的一个示例性实现方式,在遗憾方面可以基于如下公式来确定目标函数,也即目标函数是执行动作以便将所有客户端之间的预期遗憾最小化:
[0067][0068]
在此公式中,regret(t)表示目标函数,opt表示最优政策的总预期奖励,t表示预定时间长度,m表示客户端数量,a
t,m
表示在时间t时在客户端m执行的动作,x(a
t,m
)表示相应动作的特征,θ表示奖励相关的参数。同时,需要确保消耗不能超过消耗的整体预算,即
[0069]
在分布式选择方面,遗憾可以表示本公开的算法获得的总体奖励和opt之间的差异。此时,本公开的问题描述采用了联邦设置,并且本公开将opt-lp问题扩展到分布式场景。
[0070]
在lp松弛方面,本公开定义了混合手臂策略下的预期总奖励的线性规划松弛。本公开可以基于以下的线性运算来描述对于每个动作的任何可能的预期奖励和可能的预期消耗:
[0071][0072]
在上述公式中,其中表示矩阵,并且包括k个手臂中的x个,pi可以表示拉动手臂i的概率。令表示该lp松弛的值,此时β表示消耗相关的参数。可以得出:
[0073][0074]
是opt的上界,本公开将其表示为opt-lp。因此,本公开可以使用opt-lp来在遗憾分析中替代opt。
[0075]
在分布式分解方面,当存在多个客户端时,可以确定如何在它们之间分配预算。在静态上下文设置的情况下,每个手臂具有相应的上下文,该上下文对于所有客户端来说不会随着时间改变。因而可以通过在所有客户端之间平均分配预算来执行分解。
[0076]
首先,根据lp松弛,可以向每个轮次分配预算,以便在每个时段t时预算将达到b/t。假设进一步划分预算并将其分配给m个客户端,对于每个客户端,可以使用以下形式来表示分布式lp问题:
[0077][0078]
在上述公式中,bm表示分配给客户端m的预算。基于公式4可以得出:
[0079][0080]
如果存在最优解,则针对每个m存在更为直观的理解是,当前的预算必须高于具有最低成本的手臂。否则,不存在可以拉动的手臂。通过使用强对偶定理,可以得到以下公式:
[0081][0082]
因此,本公开可以进一步获得m个客户的总奖励:
[0083][0084]
对于全部m=m而言,ym=y。也即,无论预算如何分配,只要存在最优解,lp松弛最优解所达到的目标是相等的。为了简单起见可以在客户端之间平均分配预算。因此,对于任何令表示以下线性编程的值。
[0085][0086]
在遗憾分析中,可以使用来代替opt。
[0087]
为了保护客户端数据的敏感数据,本公开仅传递参数数据,每个客户端都在本地保存原始数据。因此,背包问题和手臂选择的计算是在每个客户端本地执行的。中央服务器只负责聚合接收到的参数数据,然后将其发送给每个客户端。此外,为了满足计算要求,中央服务器发送b/m(备选地和/或附加地,也可以不均衡地分配预算),而不是向每个客户发送原始总预算。每个客户只能知道自己所分配的预算,而不知道总数值。通过这种方式,可以保护双方的敏感数据。
[0088]
为了解决计算和通信效率的问题,提出了统一的通信方案。具体地,在一个时间段内,当累积的信息量(即,拉动的手臂和相应的反馈结果)有限时,参数数据的数量不会发生太大变化。因此,本公开可以将总时间划分为不同的通信回合,在每个通信回合结束时进行通信和同步,并且解决lp问题。在估计参数时,可以基于“面对不确定性的乐观”来处理线性博弈机问题,由此获得参数β和θ的乐观估计。
[0089]
在下文中,参见图4和图5中的具体步骤来描述执行动作的具体过程。图4示出了根据本公开的一些实现方式的在第一设备(例如,客户端)处执行的算法400的框图,并且图5示出了根据本公开的一些实现方式的在第二设备(例如,服务器)处执行的算法500的框图。可以分别基于图4和图5所示的算法来实现在客户端m和中央服务器处执行的过程。
[0090]
概括而言,在初始阶段每个客户端m可以分别执行各个动作并且观察反馈(相应的奖励和消耗)以进行初始化。在初始化之后直到算法停止之前(即,没有到达时间范围t并且预算没有被耗尽时),在客户端处可以逐一执行各个通信回合。在算法400中的每个通信回合的轮次e中,每个客户端m可以根据在上一轮次(第11行)结束处计算所得的此轮次pe的策略来执行动作。然后,记录执行动作a的次数f(m,a)(第12行),并更新矩阵v
t,m
、总奖励r
m,a
和每个动作的总消耗c
m,a
(第14-16行)。然后,可以将所有动作的矩阵相加,可以得到客户端m的总矩阵v
t,m
。该矩阵可以被视为包含直到时间t的数据的矩阵(第17行)。然后确定以下公式是否成立(也即,判断数据累积指标是否满足预定条件):
[0091][0092]
在此公式中,d是用于确定是否需要同步的阈值。对在此公式中,d是用于确定是否需要同步的阈值。对的直观理解是,在此轮次中所积累的历史信息的数量。根据本公开的一个示例性实现方式,可以将d设置为不同的数值(例如,常数1或者其他数值)。如果通信回合开始,则客户端将重置并且进入新的轮次(第21行)。使用历史数据样本v
m,a
和相应的总奖励r
m,a
和消耗,并通过应用线性回归将其投影到x(a)维度,可以估计参数和根据本公开的一个示例性实现方式,上下文x是静态的,因此的方向x(a
t,m
)在任何时候都是相同的,由此可以统一使用x(a)来表示。
[0093][0094][0095]
之后,所有客户端可以将其计算的参数数据和执行动作的次数发送到中央服务器以便进行聚合。此时,中央服务器仅具有不同动作的相关参数和但不具有任何动作的上下文信息,所以不能获取矩阵。由于和x(a)的方向相同,可以得到x(a)的单
位向量此外,中央服务器可以记录用于每个动作的执行次数。因此,本公开可以通过以下方式汇总并计算聚合的参数数据:
[0096][0097]
在从中央服务器接收到上述参数后,每个客户端可以在轮次e中,针对参数θ来维护置信集合并且针对参数β来维护置信集合具体地,遵循先前关于线性上下文博弈机的工作中常用的技术,置信集是以椭球为中心的而置信集是椭球为中心的可以使用和ve来构造置信集并且使用和ve来构造
[0098][0099]
在上述公式中,这解释了将同步条件设置为公式9的原因:θ和β两者的置信椭球的体积都取决于det(v
t,m
)。如果det(v
t,m
)变化不大,即使置信椭球体发生轻微变化,它也不会影响置信保证。此外,如果变化不大,则在每个轮次e中将始终保持ve。因此,可以使用det(ve)而不是det(v
t,m
)来参与计算。然后可以使用这些参数的乐观估计:
[0100][0101][0102]
此时,可以计算奖励的置信上限和消耗的置信下限。然后,每个客户端将计算并更新下一个轮次的手臂选择策略。可以求解以下线性编程问题:
[0103][0104]
将会理解,为了满足硬约束限制,可以使用替换来允许某些估计误差。此时,算法不会由于耗尽预算而过早结束。
[0105]
已经描述了算法400和500中涉及的公式,在下文中参见图4和图5描述在客户端和服务器之间的交互的更多细节。如图4所示,在客户端处的输入数据可以包括:t,表示预定时间长度;m,表示客户端的数量;d预定阈值,表示是否启动向第二设备220传输数据的预定条件;∈,表示对于消耗的约束。在客户端的初始化阶段中,如算法400的第1行所示,可以设置中间变量e(轮次的数量)和t(已经执行的时间)。如算法400的第3行所示,可以从服务器接收数据b/m(表示每个客户端可以使用的预算)。
[0106]
参见图5描述在服务器处执行的算法500,在服务器处可以接收输入数据:t,表示预定时间长度;m,表示客户端的数量;以及b,表示可以分配的资源的整体预算(在执行每个动作时可以从该整体预算中扣除相应的消耗)。在算法500的第1行处,可以向每个客户端发送数据b/m,也即,向每个客户端分配的可用资源的数量。在算法500的第2行处,可以设置与客户端执行通信的轮次e,并且在初始阶段可以将轮次e设置为0。
[0107]
根据本公开的一个示例性实现方式,可以在客户端处执行多个动作,并且分别获取与多个动作相关联的多个奖励和多个消耗。返回图4描述在客户端处执行的操作,如算法400的第3行所示,可在客户端处执行每个动作a,并且可以获取与在客户端m处执行动作a相对应的奖励r
m,a
和消耗c
m,a
。根据本公开的一个示例性实现方式,如算法400的第4行所示,可以基于一组动作中的各个动作的特征,来确定数据累积指标在此,λ和i可以具有预定的数值,并且x(a
t,m
)可以表示在时间t和客户端m处执行的动作a
t,m
的特征。在初始化阶段,可以基于在客户端处执行的k个动作的特征的外积的求和来确定数据累积指标在初始化阶段之后的后续阶段,以不断地累积已经被执行的动作的特征的外积,进而更新数据累积指标。
[0108]
利用本公开的示例性实现方式,数据累积指标可以表示由于在客户端处执行的动作而累积的数据的大小,该大小可以用于衡量是否需要向服务器处传输所累积的数据。以此方式,可以仅在所累积的数据满足预定条件时才从客户端向服务器传输数据,进而降低通信相关的多方面开销进而提高联邦学习的性能。
[0109]
根据本公开的一个示例性实现方式,可以基于多个动作、多个奖励、以及多个消耗,确定与多个动作相关联的初始参数数据。继而,可以向服务器传输初始参数数据,以使得服务器可以利用初始参数数据来更新相应的动作模型。在此,奖励r
m,a
可以表示执行的动作a
t,m
产生的收益,以及消耗c
m,a
可以表示执行动作产生的针对被分配给客户端的资源的消耗。在数据推送的应用环境下,奖励可以表示由于推送某数据而产生的点击率等的提高等,并且消耗可以表示由于推送该数据而消耗的资源。利用本公开的示例性实现方式,可以充分考虑由于执行动作导致的奖励和消耗两方面的因素,进而在满足消耗的约束条件下将奖
励最大化。
[0110]
继续参见图4来描述确定初始参数数据的具体方式,在此初始参数数据可以包括多方面的数据:奖励数据和消耗数据。根据本公开的一个示例性实现方式,可以基于动作和奖励的线性计算,确定奖励数据并且可以基于动作和消耗的线性计算,确定消耗数据具体地,可以基于算法400的第5行所示的公式来分别确定奖励数据和消耗数据在上述公式中,可以方便地基于一组k个动作的特征x(a
t,m
)以及相应的奖励r
m,a
和消耗c
m,a
的线性运算,来确定相应的奖励参数和消耗参数。进一步,可以分别统计每个动作被执行的次数,进而确定参数数据中的次数数据。在初始化阶段,每个动作的执行次数均为1。随着后续的执行,各个动作的执行次数可以有所增加。
[0111]
如算法400的第6行所示,在初始化阶段中,在已经执行了每个动作之后,可以从客户端处向服务器发送针对每个动作的奖励数据和消耗数据以便由服务器确定聚合的参数数据进而更新服务器处的动作模型。
[0112]
在下文中,参见图5来描述在服务器处执行的过程的更多细节。根据本公开的一个示例性实现方式,在服务器处接收分别来自多个客户端的多个初始参数数据。在此的多个初始参数数据中的来自每个客户端的初始参数数据是基于在客户端处执行的多个动作以及分别与多个动作相关联的多个奖励和多个消耗来确定的。
[0113]
具体地,在算法500的第3行处,服务器可以接收来自每个客户端m的初始参数数据(也即,在算法400的第4行和第5行所确定的奖励数据和消耗数据)。在此,每个初始参数数据可以来自相应的客户端,并且是基于在该客户端处执行的k个动作以及分别与该k个动作相关联的多个奖励和多个消耗来确定的。以此方式,服务器可以分别接收来自每个客户端的初始参数数据,进而基于接收到的来自每个客户端的初始参数数据来执行聚合操作,进而获得聚合的初始参数数据并且更新服务器处的动作模型。
[0114]
进一步,在服务器处可以基于多个初始参数数据来确定聚合的初始参数数据。在算法500的第4至6行处,示出了用于生成聚合的初始参数数据的具体公式。在此,聚合的初始参数数据可以包括:聚合的累积数据、聚合的奖励数据、以及聚合的消耗数据。具体地,第4行示出了用于确定聚合的累积数据的公式,例如可以基于奖励数据来确定聚合的参数数据中的聚合的累积数据v0。如算法500的第4行所示,可以确定来自每个客户端的奖励数据的外积与奖励数据的范数的平方的比值,进而将该比值进行求和。可以聚合来自m个客户端的每个客户端的数据。例如,可以将针对每个客户端的求和相加,进而获得聚合的累积数据v0。
[0115]
进一步,算法500的第5行示出了基于奖励数据和聚合的累积数据v0,确定聚合的初始参数数据中的聚合的奖励数据的公式;并且第6行示出了基于消耗数据和聚合的累积数据v0,确定聚合的初始参数数据中的聚合的消耗数据的公式。以此方式,在初始阶段中可以基于来自各个客户端的参数数据来更新服务器处的动作模型,进而以分布式训练方式提高动作模型的精度。
[0116]
继而,服务器可以分别向多个客户端传输聚合的初始参数数据,以便使得多个客户端分别基于聚合的初始参数数据来更新本地的动作模型。具体地,在算法500的第7行处,可以将确定的聚合的初始参数数据(包括v0、和)传输至每个客户端。以此方式,使得各个客户端可以基于接收到的聚合的初始参数数据来更新本地的动作模型,进而实现联邦学习。
[0117]
进一步,客户端可以从接收用于更新本地动作模型的聚合的初始参数数据(该聚合的初始参数数据是由第二设备基于初始参数数据来确定的),以便利用聚合的初始参数数据来更新本地的动作模型。返回图4描述在各个客户端处执行的进一步操作,在算法400的第7行处,可以从服务器处接收聚合的初始参数数据(也即包括v0、和)。进一步,在客户端处可以基于算法400的第8行所示的公式求解满足最大化条件的向量p0,该向量包括k个维度并且第i个维度表示执行k个动作中的第i个动作的置信度。将会理解,在此可以基于上文描述的公式13来确定第8行中的并且可以基于上文描述的公式14来确定第8行中的
[0118]
此时,在客户端处的初始化操作结束,并且在后续的操作过程中可以执行多个动作中的一组动作。当与已经执行的动作相关联的累积数据指标满足预定条件时,可以从客户端向服务器传输相应的参数数据。在算法400的第9行处,可以设置操作过程的终止条件,也即,当执行时间达到预定时间长度t时终止该算法。在算法400的第10行处,可以判断被分配给该客户端的资源是否已经被耗尽,也即,分配的相应预算是否被耗尽。如果预算尚未耗尽,则可以根据确定的执行动作的置信度来选择并执行相应的动作。如果预算已经耗尽,则退出该循环。以此方式,可以以更为灵活的方式来管理联邦学习过程,并且在需要时终止该过程。
[0119]
根据本公开的一个示例性实现方式,可以由更新后的动作模型输出的向量来从多个动作中确定目标动作。在初始化阶段之后的第一个循环中,如算法400的第11行所示,可以基于向量pe(此时e为0)来确定此时被执行的目标动作a
t,m
,并且基于该动作a
t,m
来更新客户端处的各个参数。如算法400的第12行所示,可以递增执行动作a
t,m
的次数f(m,a
t,m
);如第13行所示,可以分别获取与执行该动作相关联的奖励r
m,a
和消耗c
m,a
;如第14行所示,可以基于目标动作的特征,更新数据累积指标v
t,m
;如第15行所示,可以更新在客户端处的奖励数据r
m,a
(也即,奖励r
m,a
的求和);如第16行所示,可以更新消耗数据c
m,a
(也即,消耗c
m,a
的求和)。
[0120]
进一步,如第17行所示,可以判断此时的累积数据指标v
t,m
是否满足预定条件(也即,上文描述的公式9是否成立)。如果判断结果为“是”,则操作流程前进至第18行,并且客户端可以向服务器发送同步信号,以便启动通信回合。如果判断结果为“否”,则继续执行下一轮次的操作。
[0121]
如第19行所示,如果确定已经启动了通信回合,则执行第20至26行所示的操作。具体地,如第20行所示,可以更新在下一轮次中用作比较基础的参数并且可以递增当前轮次e。进一步,可以利用目标动作、以及与目标动作相关联的目标奖励和目标消耗,来更新参数数据。具体地,可以基于第21行所示的公式来更新参数数据中的第e个轮次的奖励数
据并且可以基于第22行所示的公式来更新参数数据中的第e个轮次的消耗数据进一步,在第23行处,客户端可以向服务器发送更新的参数数据(例如,包括奖励数据消耗数据和每个动作的执行次数f(m,a
t,m
))。
[0122]
参见图5描述在服务器处执行的过程,在算法500的第8行处,可以判断是否达到预定的时间长度t。如果判断结果为“是”,则终止第8至14行所示的循环操作。如果判断结果为“否”,则操作流程前进至第9行处以便判断在各个客户端处是否已经启动了通信回合。如果已经启动了通信回合,则执行第10至14行所示的步骤。此时如第10行所示,服务器可以递增通信回合的轮次e,并且接收来自各个客户端的更新的参数数据。
[0123]
具体地,可以分别接收来自多个客户端中的每个客户端的参数数据。在此,多个参数数据中的来自多个客户端中的客户端的参数数据是响应于与该客户端相关联的数据累积指标满足预定条件而从客户端被传输至服务器,并且数据累积指标指示从客户端将被传输至与服务器的数据量。换言之,在此接收的参数数据是在客户端处的训练过程累积到一定阶段之后形成的累积的数据。以此方式,客户端不必逐一传输来自单一动作执行的参数数据,而是依赖于具体地预定条件来在客户端处执行一组动作,进而向服务器传输相应的参数数据。由此,可以降低在客户端和服务器之间的通信轮次的数量,进而在保证训练效果的情况下降低通信开销。
[0124]
根据本公开的一个示例性实现方式,服务器接收的参数数据可以包括分别与在客户端处执行的一组动作相关联的奖励数据和消耗数据。对于特定的客户端m而言,参数数据可以包括该客户端m的奖励数据和消耗数据在此,奖励数据可以表示在客户端m处执行的一组动作中的各个动作产生的收益;并且消耗数据可以表示在客户端m处执行的一组动作中的各个动作产生的针对被分配给该客户端的资源的消耗。进一步,参数数据可以包括每个动作的次数数据f(m,a
t,m
)。该次数数据可以标识在客户端m处执行的一组动作中的动作被执行的次数。以此方式,可以基于分布式方式分别从各个客户端来收集在各个客户端处基于不同的动作数据产生的对于动作模型的更新参数,进而便于提高动作模型的训练精度。
[0125]
根据本公开的一个示例性实现方式,可以基于如下方式来确定聚合的参数数据。例如,可以基于次数数据和奖励数据,确定聚合的参数数据中的聚合的累积数据。具体地,如算法500的第11行所示,可以基于次数数据和奖励数据,针对当前通信回合e来确定聚合的参数数据中的聚合的累积数据ve。
[0126]
根据本公开的一个示例性实现方式,可以基于次数数据和奖励数据,确定聚合的参数数据中的聚合的奖励数据。具体地,如第12行所示,可以基于次数数据和奖励数据,针对当前通信回合e来确定聚合的参数数据中的聚合的奖励数据
[0127]
根据本公开的一个示例性实现方式,可以基于次数数据和消耗数据,确定聚合的参数数据中的聚合的消耗数据。如第13行所示,可以基于次数数据和消耗数据,针对当前通信回合e来确定聚合的参数数据中的聚合的消耗数据以此方式,可以基于简单并且明确的方式来确定聚合的参数数据,进而更新服务器处的动作模型。
[0128]
进一步,如第13行所示,服务器可以向每个客户端发送聚合的参数数据(例如,包括针对当前通信回合e的聚合的累积数据ve、聚合的奖励数据以及聚合的消耗数据)。此时,这些聚合的参数数据可以用于更新在各个客户端处的动作模型,进而不断地执行联邦学习。
[0129]
根据本公开的一个示例性实现方式,客户端可以从服务器接收用于更新客户端的本地动作模型的聚合的参数数据,并且聚合的参数数据是由服务器基于参数数据来确定的(如算法500中的第11至13行所示)。继续参见图4,在算法400的第24行处,客户端可以接收针对当前通信回合e的聚合的累积数据ve、聚合的奖励数据以及聚合的消耗数据进一步,如第25行所示,可以利用接收到的数据来求解,进而获得描述执行各个动作的概率的向量pe。以此方式,可以不断地利用接收到的聚合的参数数据来更新客户端本地的动作模型。
[0130]
上文已经描述了基于数据累积指标是否满足预定条件来确定是否启动从客户端向服务器传输参数数据的通信回合。以此方式,可以仅在数据累积指标满足预定条件的情况下才启动通信回合,进而实现降低通信开销的目标。根据本公开的一个示例性实现方式,可以在多个客户端处执行如图4所示的算法,并且在服务器处执行如图5所示的算法。多个客户端和服务器可以经由通信回合来传输参数数据,进而达到利用联邦学习来更新分别位于不同位置的动作模型的过程。
[0131]
根据本公开的一个示例性实现方式,可以在满足预定条件(例如达到预定时间长度、或者耗尽预定预算)时终止上述过程。此时,动作模型的训练过程结束,并且可以使用训练好的动作模型来执行相应的任务。
[0132]
在下文中,将提供有关遗憾、通信成本和计算成本方面的理论依据。对于遗憾而言,提供如下证明。
[0133]
定理6.1:使用算法400和500,其中可以得到如下有关遗憾边界的上限概率:
[0134][0135]
引理6.1:对于任何δ》0,概率为1-mδ,针对全部的t和全部的m,θ总是处于所构造的以内。
[0136]
引理6.2:令表示中的序列,v为d*d的正定矩阵并且定义则可以得出
[0137][0138]
此外,如果对于所有t存在||x
t
||2≤l,则存在:
[0139][0140]
引理6.3:在概率为1-mδ的情况下,单步差异mδ的情况下,单步差异的边界为:
[0141][0142]
引理6.4:(azuma-hoeffding不等式)。如果对应于过滤的超鞅(y
t
:t≥0)针对某个常数c
t
满足|y
t-y
t-1
|≤c
t
,对于所有t=1,

t,那么对于任何a≥0,存在:
[0143][0144]
引理6.5:令a、b、c表示正半定矩阵,使得a=b+c,则存在:
[0145][0146]
引理6.6:将diff(t)定义为:
[0147][0148]
则diff(t)由来限定。
[0149]
在下文中,将提供证明过程。首先,尽管在每个轮次e中使用相同的估计出于分析目的可以使用来表示针对每个时段t和每个客户端m的估计,即,在本公开中,将按照通信回合来划分轮次的数量。假设存在e个轮次,则轮次e中的聚合矩阵表示为ve。通过通信阈值,可以获得:
[0150][0151]
否则将出现同步。mt的拉动都是由一个客户端以循环方式(即按照a
1,1
,a
1,2
,

,a1,m
,a
2,1
,

,a
t,m
)进行的。可以使用)进行的。可以使用来表示当客户端执行x(a
t,m
)时可以获得的矩阵。通过本公开的算法,每个客户端m将使用从中央服务器接收的、由每个通信回合中的聚合矩阵生成的随机策略。因此,可以将矩阵之间的间隙约束为:
[0152][0153]
因此,根据引理6.5可以获得:
[0154][0155]
然后,可以使用单一客户端差异边界并且证明差异。假设表示属于轮次e的(t,m)对的集合,使用引理6.2和6.3,令m)对的集合,使用引理6.2和6.3,令可以获得:
[0156]
[0157][0158]
和估计满足以下性质。在概率1-mδ的情况下,
[0159]
性质(1):
[0160]
性质(2):
[0161][0162][0163]
由于使用引理6.4,在概率1-mδ的情况下可以获得:
[0164][0165]
然后,根据引理6.6中的diff(t),可以使用置信上界来约束分数解下的被拉动手臂的真实奖励和预期奖励之间的间隙:
[0166][0167]
通过与上述相同的方式,可以进一步得到:
[0168][0169]
然后可以设置到目前为止可以获得性质(2)。根据性质(1),opt的定义和问题分解可以表示为:
[0170][0171]
然后,使用上述性质(2)和公式18,可以满足硬约束,即:
[0172][0173]
因此,算法不会在时间t之前终止。可以将获得的全部真实奖励表示为rew:
[0174][0175]
由此,可以存在:
[0176][0177][0178][0179]
在通信成本方面,根据算法400和算法500,可以确定如果存在则开始通信回合,也即:
[0180][0181]
然后通过引理6.2,可以得到:
[0182][0183]
进一步,存在:
[0184][0185]
根据本公开的一个示例性实现方式,仅在每个轮次结束时,当每个客户端向服务器发送o(dk)数字,然后下载o(d2)数字时,才需要通信。因此,在每个轮次中,通信成本为o(md(d+k))。因此,总通信成本为
[0186]
在计算成本方面,在算法400和算法500中,使用了相同的阈值,因而当通信回合开始时计算线性编程。本地特征向量x是私有信息并且中央服务器不知道,因此仅在每个客户端处进行lp计算。因此,计算成本为
[0187]
在本公开的上下文中,可以定义opt即分布式opt,并通过lp的分布式分解来证明了该解决方案的可行性。在此,feducbwk通过预算分配将总预算保持为私有,并在客户端上执行策略计算。它传输模型更新参数而并不传输原始数据,以保护客户端的敏感数据。基于传输的参数,本公开设计了统一的通信和计算阈值来解决各个轮次中的分布式lp问题,并通过预算平减指数来控制遗憾。此外,可以在遗憾、通信成本和计算成本之间进行权衡,在通信成本和计算成本下,本公开可以得到一个高概率的遗憾边界。
[0188]
根据本公开的一个示例性实现方式,可以在真实数据集上执行多种任务,以便验证上文描述的任务执行过程的性能。可以比较多种不同技术方案的性能。具体地,feducbwk可以表示本公开所提出的算法;feducbwk-fullcom表示客户端在每一轮次中都执行通信和计算的技术方案(此时的d可以设置为较小数值);feducbwk-nocom表示客户端不执行通信的技术方案(此时的d可以设置为较大数值);feducbwk-fewcom表示客户端只执行少量通信和计算的技术方案(此时的d可以设置为中间数值);feducb和feducb-fullcom表示已有技术方案。
[0189]
根据本公开的一个示例性实现方式,可以在多个公开数据集上验证根据本公开的技术方案。具体地,可以在movielens-100k数据集中进行验证。为了处理稀疏和不完整的评级矩阵,本公开使用协作滤波来完成评级矩阵,然后使用具有10个潜在因素的非负矩阵因子分解来得到r=wh,其中
[0190]
根据本公开的一个示例性实现方式,可以使用该数据集来模拟数据推送系统的两种场景。第一个场景涉及向特定的用户组推送合适的数据。本公开将与一定奖励和消耗相对应的每个数据推送视为动作。目标是为特定的用户分组找到最佳的数据推送。为此,可以将k均值算法应用于w的列向量以产生20个类别。可以选择一个类别作为特定的用户组u,并将θu作为所选用户组的中心。然后本公开可以向h的行向量应用k均值算法,以便产生k=10个分组(动作)。此时,所执行的动作对应于为特定的用户分组找到最佳的数据推送的动作。
[0191]
第二个场景涉及为特定类别的数据推送找到合适的推荐目标用户。可以将每个目
标用户视为一个动作,并向h的原始向量应用k均值算法以便产生20个类别,选择一个类别来作为数据推送a的特定类别。令θa为所选择数据推送类别的中心,并随机生成相应的消耗参数β。可以对w的行向量应用k均值算法以便产生k=10个目标用户(动作)。在上述实验中,可以设置k=20并且d=10。此外,可以设置m=10并且t=1000。此时,所执行的动作对应于选择合适的推荐目标用户的动作。
[0192]
在人类活动识别方面,可以从由30名数据贡献者的记录构建来生成数据集。可以利用数据集模拟众包任务,可以将每个活动视为一个动作并且假设每个活动的标签是预期的奖励。此外,可以针对每个数据样本生成可能的消耗,计算消耗参数β,并计算每个动作的类中心。该中心被用作动作的标准特征,以解决lp问题和opt问题。在模拟众包场景中,可以将每个任务视为捕捉相应的人类活动特征。每项任务在资源方面都会产生一定的消耗和奖励。目标是学习最佳任务。可以存在六个类别的任务,每个类别具有561个维度的特征,因而在本公开的博弈机实验中,可以设置k=6并且d=561。此外,可以设置m=10并且t=1000。
[0193]
在数据推送推荐和定向用户推荐的结果方面,解释基于背包的联邦博弈机(federated bandits with knapsacks,缩写fbwk)问题的遗憾曲线与传统博弈机不同的原因,在传统博弈机中fbwk的遗憾曲线的后半部分有时会急剧增加。当基于本公开的技术方案来计算每个时段的累积遗憾时,如果预算被耗尽则算法将停止,而opt继续累积奖励,导致遗憾急剧增加。由于已有的feducb(dislinucb)和feducb-fullcom没有考虑预算限制,这种现象尤为明显。他们优先寻找获得最高奖励的手臂,从而在早期阶段产生较低的遗憾。当预算在某个时间段被耗尽时,算法会提前终止并且最终表现不佳。
[0194]
图6示出了根据本公开的一些实现方式的动作执行过程与根据多个其他技术方案的动作执行过程的性能的比较的框图600。图6中的框图610、620、和630分别对应于当∈被设置为不同预定数值时的性能统计。框图中的横坐标对应于时间,并且纵坐标对应于累积的遗憾。框图640示出了当∈被设置为不同预定数值时的累积遗憾的比较。
[0195]
如图6所示,对于数据推送任务而言,本公开的算法总是接近feducbwk-fullcom(可以认为这是在单代理情况下可以得到的最小遗憾),并且比其他基线方法更优。feducbwk可以找到奖励更高、成本更低的数据推送,从而克服早期结束的问题。结果表明,feducbwk可以显著降低累积遗憾。对于不同的设置,在从上到下将总预算设置得更大。此时,feducbwk和feducb比预算稀缺时更接近,这是因为算法受约束的影响较小。当预算增加时,遗憾不太可能急剧增加。此外,当逐渐增加∈时,不易过度消耗预算并且导致算法提前结束。
[0196]
将会理解,并不是∈越大越好,而是需要选择合适的∈。例如,在数据推送任务中,∈=0.05是较好的,当∈太大时,对消耗的估计会变得太小,这会影响最佳手臂的选择。虽然保留了预算,但过于谨慎的选择反而使最终预算增加。
[0197]
图7示出了根据本公开的一些实现方式的动作执行过程与根据多个其他技术方案的动作执行过程的性能的比较的框图700。图7中的框图710、720、和730分别对应于当∈被设置为不同预定数值时的性能统计。框图中的横坐标对应于时间,并且纵坐标对应于累积的遗憾。框图740示出了当∈被设置为不同预定数值时的累积遗憾的比较。
[0198]
对于有针对性的用户推荐任务,图7示出类似的结果。与数据推送推荐相比,如图7所示目标用户推荐任务更容易并且收敛更快。在此任务中,当选择∈=0.1时feducbwk的性
能较好。具体而言,与feducb相比,feducbwk可以降低高达96.82%的遗憾。此外,为了探索更多情况下的实验结果,可以将预算设置为完全充足。可以发现,此时feducb、feducb-fullcom、feducbwk都可以实现与feducbwk-fullcom基本一致的结果,并且非常接近opt。相比之下,较少通信和计算、或者没有通信和计算的技术方案无法有效地聚合信息和更新策略,从而导致较差的结果。
[0199]
根据本公开的一个示例性实现方式,可以进一步将上文描述的方法应用于众包任务分配,此时的实验结果也是类似的。备选地和/或附加地,可以进一步将上文描述的方法应用于网络参数配置等其他应用场景中。
[0200]
利用本公开的示例性实现方式,实现了基于背包的联邦线性博弈机解决方案,可以使用该技术方案来在满足预定预算情况下,基于m个客户端的协同来从k个动作中选择可以将奖励最大化的动作,进而尽量减少方案涉及的遗憾。根据本公开的一个示例性实现方式,仅传输模型的参数数据而并不传输原始数据,从而保护客户的敏感数据。进一步,可以通过统一的阈值来降低联邦学习期间所涉及的通信和计算成本,并且通过在各个轮次中求解分布式背包问题来控制整体遗憾。
[0201]
示例过程
[0202]
图8示出了根据本公开的一些实现方式的在客户端处的用于执行动作的方法800的流程图。在框810处,基于第一设备处的第一动作模型,从多个动作中确定在第一设备处执行的一组动作。在框820处,获取与一组动作相关联的数据累积指标,数据累积指标指示从第一设备将被发送至与第一设备相关联的第二设备的数据量。在框830处,如果数据累积指标满足预定条件,则操作流程前进至框840。在框840处,向第二设备传输与一组动作相关联的参数数据,以使得第二设备利用参数数据来更新第二设备处的第二动作模型,参数数据包括分别与一组动作相关联的奖励数据和消耗数据。
[0203]
根据本公开的一个示例性实现方式,确定数据累积指标包括:基于一组动作中的各个动作的特征,确定数据累积指标。
[0204]
根据本公开的一个示例性实现方式,该方法进一步包括:基于一组动作、以及分别与一组动作相关联的一组奖励和一组消耗来确定与一组动作相关联的参数数据,其中一组奖励中的奖励表示执行一组动作中的动作产生的收益,以及一组消耗中的消耗表示执行动作产生的针对被分配给第一设备的资源的消耗。
[0205]
根据本公开的一个示例性实现方式,确定参数数据包括:基于一组动作和一组奖励的线性计算,确定奖励数据;基于一组动作和一组消耗的线性计算,确定消耗数据;以及基于与一组动作相关联的执行次数,确定参数数据中的次数数据。
[0206]
根据本公开的一个示例性实现方式,该方法进一步包括:基于第一动作模型来从多个动作中确定目标动作;基于目标动作的特征,更新数据累积指标;以及利用目标动作、以及与目标动作相关联的目标奖励和目标消耗,更新参数数据。
[0207]
根据本公开的一个示例性实现方式,该方法进一步包括:从第二设备接收用于更新第一动作模型的聚合的参数数据,聚合的参数数据是由第二设备基于参数数据来确定的;以及利用聚合的参数数据来更新第一动作模型。
[0208]
根据本公开的一个示例性实现方式,聚合的参数数据包括聚合的奖励数据、聚合的消耗数据以及聚合的累积数据。
[0209]
根据本公开的一个示例性实现方式,该方法进一步包括:利用更新的第一动作模型,从多个动作中确定在第一设备处执行的目标动作。
[0210]
根据本公开的一个示例性实现方式,该方法进一步包括:在确定一组动作之前,在第一设备处执行多个动作;分别获取与多个动作相关联的多个奖励和多个消耗;基于多个动作、多个奖励、以及多个消耗,确定与多个动作相关联的初始参数数据;以及向第二设备传输初始参数数据,以使得第二设备利用初始参数数据来更新第二动作模型。
[0211]
根据本公开的一个示例性实现方式,该方法进一步包括:从第二设备接收用于更新第一动作模型的聚合的初始参数数据,聚合的初始参数数据是由第二设备基于初始参数数据来确定的;以及利用聚合的初始参数数据来更新第一动作模型。
[0212]
根据本公开的一个示例性实现方式,该方法进一步包括:响应于以下至少任一项来终止方法:执行方法的时间长度达到阈值时间长度;与在第一设备处已经执行的至少一个动作相关联的消耗达到阈值消耗。
[0213]
根据本公开的一个示例性实现方式,第一设备是用于执行联邦学习的客户端设备,并且第二设备是用于执行联邦学习的服务器设备。
[0214]
根据本公开的一个示例性实现方式,多个动作包括以下至少任一项:数据推送动作、用户选择动作、众包任务分配动作、网络参数设置动作。
[0215]
图9示出了根据本公开的一些实现方式的在服务器处的用于执行动作的方法900的流程图。在框910处,在与多个第一设备相关联的第二设备处,分别接收来自多个第一设备的多个参数数据,多个参数数据中的来自多个第一设备中的第一设备的参数数据是响应于与第一设备相关联的数据累积指标满足预定条件而从第一设备被传输至第二设备,数据累积指标指示从第一设备将被传输至第二设备的数据量,参数数据包括分别与在第一设备处执行的一组动作相关联的奖励数据和消耗数据。在框920处,基于多个参数数据来确定聚合的参数数据。在框930处,分别向多个第一设备传输聚合的参数数据,以便使得多个第一设备分别基于聚合的参数数据来更新位于多个第一设备处的多个第一动作模型。
[0216]
根据本公开的一个示例性实现方式,多个参数数据包括:第一设备的奖励数据,奖励数据表示在第一设备处执行的一组动作产生的收益;第一设备的消耗数据,消耗数据表示在第一设备处执行的一组动作产生的针对被分配给第一设备的资源的消耗;以及第一设备的次数数据,次数数据表示一组动作中的动作被执行的次数。
[0217]
根据本公开的一个示例性实现方式,确定聚合的参数数据包括:基于次数数据和奖励数据,确定聚合的参数数据中的聚合的累积数据;基于次数数据和奖励数据,确定聚合的参数数据中的聚合的奖励数据;以及基于次数数据和消耗数据,确定聚合的参数数据中的聚合的消耗数据。
[0218]
根据本公开的一个示例性实现方式,该方法进一步包括:基于多个参数数据来更新第二设备处的第二动作模型。
[0219]
根据本公开的一个示例性实现方式,该方法进一步包括:利用更新的第二动作模型来确定将被执行的动作。
[0220]
根据本公开的一个示例性实现方式,该方法进一步包括:在分别接收来自多个第一设备的多个参数数据之前,在第二设备处接收分别来自多个第一设备的多个初始参数数据,多个初始参数数据中的来自第一设备的初始参数数据是基于在第一设备处执行的多个
动作以及分别与多个动作相关联的多个奖励和多个消耗来确定的;以及基于多个初始参数数据来确定聚合的初始参数数据;以及分别向多个第一设备传输聚合的初始参数数据,以便使得多个第一设备分别基于聚合的初始参数数据来更新多个第一设备处的多个第一动作模型。
[0221]
根据本公开的一个示例性实现方式,该方法进一步包括:基于多个初始参数数据来更新第二设备处的第二动作模型。
[0222]
根据本公开的一个示例性实现方式,第一设备是用于执行联邦学习的客户端设备,并且第二设备是用于执行联邦学习的服务器设备。
[0223]
根据本公开的一个示例性实现方式,多个动作包括以下至少任一项:数据推送动作、用户选择动作、众包任务分配动作、网络参数设置动作。
[0224]
示例装置和设备
[0225]
图10示出了根据本公开的一些实现方式的用于执行动作的装置1000的框图。该装置包括:确定模块1010,被配置用于基于第一设备处的第一动作模型,从多个动作中确定在第一设备处执行的一组动作;获取模块1020,被配置用于获取与一组动作相关联的数据累积指标,数据累积指标指示从第一设备将被发送至与第一设备相关联的第二设备的数据量;以及传输模块1030,被配置用于响应于数据累积指标满足预定条件,向第二设备传输与一组动作相关联的参数数据,以使得第二设备利用参数数据来更新第二设备处的第二动作模型,参数数据包括分别与一组动作相关联的奖励数据和消耗数据。
[0226]
根据本公开的一个示例性实现方式,确定数据累积指标包括:基于一组动作中的各个动作的特征,确定数据累积指标。
[0227]
根据本公开的一个示例性实现方式,该装置进一步包括:参数确定模块,被配置用于基于一组动作、以及分别与一组动作相关联的一组奖励和一组消耗来确定与一组动作相关联的参数数据,其中一组奖励中的奖励表示执行一组动作中的动作产生的收益,以及一组消耗中的消耗表示执行动作产生的针对被分配给第一设备的资源的消耗。
[0228]
根据本公开的一个示例性实现方式,参数确定模块包括:第一确定模块,被配置用于基于一组动作和一组奖励的线性计算,确定奖励数据;第二确定模块,被配置用于基于一组动作和一组消耗的线性计算,确定消耗数据;以及第三模块,被配置用于基于与一组动作相关联的执行次数,确定参数数据中的次数数据。
[0229]
根据本公开的一个示例性实现方式,该装置进一步包括:目标动作确定模块,被配置用于基于第一动作模型来从多个动作中确定目标动作;指标更新模块,被配置用于基于目标动作的特征,更新数据累积指标;以及参数更新模块,被配置用于利用目标动作、以及与目标动作相关联的目标奖励和目标消耗,更新参数数据。
[0230]
根据本公开的一个示例性实现方式,该装置进一步包括:接收模块,被配置用于从第二设备接收用于更新第一动作模型的聚合的参数数据,聚合的参数数据是由第二设备基于参数数据来确定的;以及模型更新模块,被配置用于利用聚合的参数数据来更新第一动作模型。
[0231]
根据本公开的一个示例性实现方式,聚合的参数数据包括聚合的奖励数据、聚合的消耗数据以及聚合的累积数据。
[0232]
根据本公开的一个示例性实现方式,该装置进一步包括:目标动作确定模块,被配
置用于利用更新的第一动作模型,从多个动作中确定在第一设备处执行的目标动作。
[0233]
根据本公开的一个示例性实现方式,该装置进一步包括:执行模块,被配置用于在确定一组动作之前,在第一设备处执行多个动作;数据获取模块,被配置用于分别获取与多个动作相关联的多个奖励和多个消耗;初始参数确定模块,被配置用于基于多个动作、多个奖励、以及多个消耗,确定与多个动作相关联的初始参数数据;以及初始参数传输模块,被配置用于向第二设备传输初始参数数据,以使得第二设备利用初始参数数据来更新第二动作模型。
[0234]
根据本公开的一个示例性实现方式,该装置进一步包括:接收模块,被配置用于从第二设备接收用于更新第一动作模型的聚合的初始参数数据,聚合的初始参数数据是由第二设备基于初始参数数据来确定的;以及模型更新模块,被配置用于利用聚合的初始参数数据来更新第一动作模型。
[0235]
根据本公开的一个示例性实现方式,该装置进一步包括:终止模块,被配置用于响应于以下至少任一项来终止方法:执行方法的时间长度达到阈值时间长度;与在第一设备处已经执行的至少一个动作相关联的消耗达到阈值消耗。
[0236]
根据本公开的一个示例性实现方式,第一设备是用于执行联邦学习的客户端设备,并且第二设备是用于执行联邦学习的服务器设备。
[0237]
根据本公开的一个示例性实现方式,多个动作包括以下至少任一项:数据推送动作、用户选择动作、众包任务分配动作、网络参数设置动作。
[0238]
图11示出了根据本公开的一些实现方式的用于执行动作的装置1100的框图。该装置1100包括:接收模块1110,被配置用于在与多个第一设备相关联的第二设备处,分别接收来自多个第一设备的多个参数数据,多个参数数据中的来自多个第一设备中的第一设备的参数数据是响应于与第一设备相关联的数据累积指标满足预定条件而从第一设备被传输至第二设备,数据累积指标指示从第一设备将被传输至第二设备的数据量,参数数据包括分别与在第一设备处执行的一组动作相关联的奖励数据和消耗数据;确定模块1120,被配置用于基于多个参数数据来确定聚合的参数数据;以及传输模块1130,被配置用于分别向多个第一设备传输聚合的参数数据,以便使得多个第一设备分别基于聚合的参数数据来更新位于多个第一设备处的多个第一动作模型。
[0239]
根据本公开的一个示例性实现方式,多个参数数据包括:第一设备的奖励数据,奖励数据表示在第一设备处执行的一组动作产生的收益;第一设备的消耗数据,消耗数据表示在第一设备处执行的一组动作产生的针对被分配给第一设备的资源的消耗;以及第一设备的次数数据,次数数据表示一组动作中的动作被执行的次数。
[0240]
根据本公开的一个示例性实现方式,确定模块包括:第一确定模块,被配置用于基于次数数据和奖励数据,确定聚合的参数数据中的聚合的累积数据;第二确定模块,被配置用于基于次数数据和奖励数据,确定聚合的参数数据中的聚合的奖励数据;以及第三确定模块,被配置用于基于次数数据和消耗数据,确定聚合的参数数据中的聚合的消耗数据。
[0241]
根据本公开的一个示例性实现方式,该装置进一步包括:基于多个参数数据来更新第二设备处的第二动作模型。
[0242]
根据本公开的一个示例性实现方式,该装置进一步包括:利用更新的第二动作模型来确定将被执行的动作。
[0243]
根据本公开的一个示例性实现方式,该装置进一步包括:初始参数接收模块,被配置用于在分别接收来自多个第一设备的多个参数数据之前,在第二设备处接收分别来自多个第一设备的多个初始参数数据,多个初始参数数据中的来自第一设备的初始参数数据是基于在第一设备处执行的多个动作以及分别与多个动作相关联的多个奖励和多个消耗来确定的;以及初始聚合参数确定模块,被配置用于基于多个初始参数数据来确定聚合的初始参数数据;以及初始聚合参数传输模块,被配置用于分别向多个第一设备传输聚合的初始参数数据,以便使得多个第一设备分别基于聚合的初始参数数据来更新多个第一设备处的多个第一动作模型。
[0244]
根据本公开的一个示例性实现方式,该装置进一步包括:基于多个初始参数数据来更新第二设备处的第二动作模型。
[0245]
根据本公开的一个示例性实现方式,该装置第一设备是用于执行联邦学习的客户端设备,并且第二设备是用于执行联邦学习的服务器设备。
[0246]
根据本公开的一个示例性实现方式,多个动作包括以下至少任一项:数据推送动作、用户选择动作、众包任务分配动作、网络参数设置动作。
[0247]
图12示出了能够实施本公开的多个实现方式的设备1200的框图。应当理解,图12所示出的计算设备1200仅仅是示例性的,而不应当构成对本文所描述的实现方式的功能和范围的任何限制。图12所示出的计算设备1200可以用于实现上文描述的方法。
[0248]
如图12所示,计算设备1200是通用计算设备的形式。计算设备1200的组件可以包括但不限于一个或多个处理器或处理单元1210、存储器1220、存储设备1230、一个或多个通信单元1240、一个或多个输入设备1250以及一个或多个输出设备1260。处理单元1210可以是实际或虚拟处理器并且能够根据存储器1220中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备1200的并行处理能力。
[0249]
计算设备1200通常包括多个计算机存储介质。这样的介质可以是计算设备1200可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1220可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或它们的某种组合。存储设备1230可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备1200内被访问。
[0250]
计算设备1200可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图12中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1220可以包括计算机程序产品1225,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实现方式的各种方法或动作。
[0251]
通信单元1240实现通过通信介质与其他计算设备进行通信。附加地,计算设备1200的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备1200可以使用与一个或多个其他服务器、网络个人计算机(pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
[0252]
输入设备1250可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1260可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备1200还可以根据需要通过通信单元1240与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备1200交互的设备进行通信,或者与使得计算设备1200与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
[0253]
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,提供了一种计算机程序产品,其上存储有计算机程序,程序被处理器执行时实现上文描述的方法。
[0254]
这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0255]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0256]
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0257]
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0258]
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。

技术特征:
1.一种用于执行动作的方法,包括:基于第一设备处的第一动作模型,从多个动作中确定在所述第一设备处执行的一组动作;获取与所述一组动作相关联的数据累积指标,所述数据累积指标指示从所述第一设备将被发送至与所述第一设备相关联的第二设备的数据量;以及响应于所述数据累积指标满足预定条件,向所述第二设备传输与所述一组动作相关联的参数数据,以使得所述第二设备利用所述参数数据来更新所述第二设备处的第二动作模型,所述参数数据包括分别与所述一组动作相关联的奖励数据和消耗数据。2.根据权利要求1所述的方法,其中确定所述数据累积指标包括:基于所述一组动作中的各个动作的特征,确定所述数据累积指标。3.根据权利要求1所述的方法,进一步包括:基于所述一组动作、以及分别与所述一组动作相关联的一组奖励和一组消耗来确定与所述一组动作相关联的所述参数数据,其中所述一组奖励中的奖励表示执行所述一组动作中的动作产生的收益,以及所述一组消耗中的消耗表示执行所述动作产生的针对被分配给所述第一设备的资源的消耗。4.根据权利要求3所述的方法,其中确定所述参数数据包括:基于所述一组动作和所述一组奖励的线性计算,确定所述奖励数据;基于所述一组动作和所述一组消耗的线性计算,确定所述消耗数据;以及基于与所述一组动作相关联的执行次数,确定所述参数数据中的次数数据。5.根据权利要求1所述的方法,进一步包括:基于所述第一动作模型来从所述多个动作中确定目标动作;基于所述目标动作的特征,更新所述数据累积指标;以及利用所述目标动作、以及与所述目标动作相关联的目标奖励和目标消耗,更新所述参数数据。6.根据权利要求1所述的方法,进一步包括:从所述第二设备接收用于更新所述第一动作模型的聚合的参数数据,所述聚合的参数数据是由所述第二设备基于所述参数数据来确定的;以及利用所述聚合的参数数据来更新所述第一动作模型。7.根据权利要求6所述的方法,其中所述聚合的参数数据包括聚合的奖励数据、聚合的消耗数据以及聚合的累积数据。8.根据权利要求6所述的方法,进一步包括:利用更新的第一动作模型,从所述多个动作中确定在所述第一设备处执行的目标动作。9.根据权利要求1所述的方法,进一步包括:在确定所述一组动作之前,在所述第一设备处执行所述多个动作;分别获取与所述多个动作相关联的多个奖励和多个消耗;基于所述多个动作、所述多个奖励、以及所述多个消耗,确定与所述多个动作相关联的初始参数数据;以及向所述第二设备传输所述初始参数数据,以使得所述第二设备利用所述初始参数数据来更新所述第二动作模型。10.根据权利要求9所述的方法,进一步包括:
从所述第二设备接收用于更新所述第一动作模型的聚合的初始参数数据,所述聚合的初始参数数据是由所述第二设备基于所述初始参数数据来确定的;以及利用所述聚合的初始参数数据来更新所述第一动作模型。11.根据权利要求1所述的方法,进一步包括:响应于以下至少任一项来终止所述方法:执行所述方法的时间长度达到阈值时间长度;与在所述第一设备处已经执行的至少一个动作相关联的消耗达到阈值消耗。12.根据权利要求1所述的方法,其中所述第一设备是用于执行联邦学习的客户端设备,并且所述第二设备是用于执行所述联邦学习的服务器设备。13.根据权利要求1所述的方法,其中所述多个动作包括以下至少任一项:数据推送动作、用户选择动作、众包任务分配动作、网络参数设置动作。14.一种用于执行动作的装置,包括:确定模块,被配置用于基于第一设备处的第一动作模型,从多个动作中确定在所述第一设备处执行的一组动作;获取模块,被配置用于获取与所述一组动作相关联的数据累积指标,所述数据累积指标指示从所述第一设备将被发送至与所述第一设备相关联的第二设备的数据量;以及发送模块,被配置用于响应于所述数据累积指标满足预定条件,向所述第二设备传输与所述一组动作相关联的参数数据,以使得所述第二设备利用所述参数数据来更新所述第二设备处的第二动作模型,所述参数数据包括分别与所述一组动作相关联的奖励数据和消耗数据。15.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述电子设备执行根据权利要求1至13中任一项所述的方法。16.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时使所述处理器实现根据权利要求1至13中任一项所述的方法。17.一种用于执行动作的方法,包括:在与多个第一设备相关联的第二设备处,分别接收来自所述多个第一设备的多个参数数据,所述多个参数数据中的来自所述多个第一设备中的第一设备的参数数据是响应于与所述第一设备相关联的数据累积指标满足预定条件而从所述第一设备被传输至所述第二设备,所述数据累积指标指示从所述第一设备将被传输至所述第二设备的数据量,所述参数数据包括分别与在所述第一设备处执行的一组动作相关联的奖励数据和消耗数据;基于所述多个参数数据来确定聚合的参数数据;以及分别向所述多个第一设备传输所述聚合的参数数据,以便使得所述多个第一设备分别基于所述聚合的参数数据来更新位于所述多个第一设备处的多个第一动作模型。18.根据权利要求17所述的方法,其中所述多个参数数据包括:所述第一设备的奖励数据,所述奖励数据表示在所述第一设备处执行的所述一组动作产生的收益;所述第一设备的消耗数据,所述消耗数据表示在所述第一设备处执行的所述一组动作
产生的针对被分配给所述第一设备的资源的消耗;以及所述第一设备的次数数据,所述次数数据表示所述一组动作中的动作被执行的次数。19.根据权利要求18所述的方法,其中确定所述聚合的参数数据包括:基于所述次数数据和所述奖励数据,确定所述聚合的参数数据中的聚合的累积数据;基于所述次数数据和所述奖励数据,确定所述聚合的参数数据中的聚合的奖励数据;以及基于所述次数数据和所述消耗数据,确定所述聚合的参数数据中的聚合的消耗数据。20.根据权利要求17所述的方法,进一步包括:基于所述多个参数数据来更新所述第二设备处的第二动作模型。21.根据权利要求20所述的方法,进一步包括:利用更新的所述第二动作模型来确定将被执行的动作。22.根据权利要求17所述的方法,进一步包括:在分别接收来自所述多个第一设备的多个参数数据之前,在所述第二设备处接收分别来自所述多个第一设备的多个初始参数数据,所述多个初始参数数据中的来自所述第一设备的初始参数数据是基于在所述第一设备处执行的多个动作以及分别与所述多个动作相关联的多个奖励和多个消耗来确定的;以及基于所述多个初始参数数据来确定聚合的初始参数数据;以及分别向所述多个第一设备传输所述聚合的初始参数数据,以便使得所述多个第一设备分别基于所述聚合的初始参数数据来更新所述多个第一设备处的多个第一动作模型。23.根据权利要求17所述的方法,进一步包括:基于所述多个初始参数数据来更新所述第二设备处的第二动作模型。24.根据权利要求17所述的方法,其中所述第一设备是用于执行联邦学习的客户端设备,并且所述第二设备是用于执行所述联邦学习的服务器设备。25.根据权利要求17所述的方法,其中所述多个动作包括以下至少任一项:数据推送动作、用户选择动作、众包任务分配动作、网络参数设置动作。26.一种用于执行动作的装置,包括:接收模块,被配置用于在与多个第一设备相关联的第二设备处,分别接收来自所述多个第一设备的多个参数数据,所述多个参数数据中的来自所述多个第一设备中的第一设备的参数数据是响应于与所述第一设备相关联的数据累积指标满足预定条件而从所述第一设备被传输至所述第二设备,所述数据累积指标指示从所述第一设备将被传输至所述第二设备的数据量,所述参数数据包括分别与在所述第一设备处执行的一组动作相关联的奖励数据和消耗数据;确定模块,被配置用于基于所述多个参数数据来确定聚合的参数数据;以及传输模块,被配置用于分别向所述多个第一设备传输所述聚合的参数数据,以便使得所述多个第一设备分别基于所述聚合的参数数据来更新位于所述多个第一设备处的多个第一动作模型。27.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于
由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述电子设备执行根据权利要求17至25中任一项所述的方法。28.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时使所述处理器实现根据权利要求17至25中任一项所述的方法。

技术总结
提供了用于执行动作的方法、装置、设备和介质。在一种方法中,基于第一设备处的第一动作模型,从多个动作中确定在第一设备处执行的一组动作。获取与一组动作相关联的数据累积指标,数据累积指标指示从第一设备将被发送至与第一设备相关联的第二设备的数据量。响应于数据累积指标满足预定条件,向第二设备传输与一组动作相关联的参数数据,以使得第二设备利用参数数据来更新第二设备处的第二动作模型,参数数据包括分别与一组动作相关联的奖励数据和消耗数据。利用本公开的示例性实现方式,可以充分考虑执行动作相关的奖励和消耗,进而在满足消耗约束的条件下执行各个动作,以便提高相应的奖励。相应的奖励。相应的奖励。


技术研发人员:徐安然 王圣杰 陈雷 李帅 孙建凯 郑臻哲 吴帆
受保护的技术使用者:脸萌有限公司
技术研发日:2023.03.31
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐