jjzjj

激励机制中的经济学和博弈论模型(2)

白速龙王的回眸 2024-07-10 原文

论文标题:Incentive Mechanisms for Federated Learning: From Economic and Game Theoretic Perspective

分类图


总体而言,分类如下:
博弈论激励:非合作游戏、stackelberg游戏、联盟游戏
拍卖激励:盲拍、前向、倒向、双拍、组合拍卖
合同理论
匹配理论

博弈论

博弈论可以为多参与者交互决策建模,其中一个参与方的决定会潜在影响另一个参与方的。在FL的背景下,参与方可以市MO和DO,我们下面简要介绍一下博弈论的激励机制,然后它们有一些可以很好的奖励FL的参与方。一些术语:

玩家:决策者,可以选择它的动作,它们会倾向让自己的收益最大化
收益:表示玩家从游戏中赚或亏的钱
策略:是一套完整的动作计划,为了到达理想的结果。这个payoff取决于多个玩家的actions
平衡:每个玩家都可以达到它们认为的最大收益,如果它们要改变策略的话它们不会有任何收益,反应了博弈的稳定性

1)非合作博弈:每个player都是自私的,只关心自己收益的最大化,不关心FL系统的整体福利。players之间是不会合作的。我们考虑FL市场中的定价作为例子。DO(卖家)可以为提供的计算资源设置价格给MO(买家)。非合作游戏可以定义为三元组G = (Pi,ui,i belongs to N)这里N表示有N个卖家,Pi是i的卖出价格,ui是对于i来说,所有玩家固定策略时的收益。

我们有如下定义:
DEF1:假设pi是玩家i的最优策略,那么(pi,…,pn*)就是一个纳什均衡,意味着没有玩家可以通过改变当前策略(其他玩家不改变)的时候提高自己的收益,用式子表示就是:

这个式子表明,纳什均衡是这个游戏的稳定结果,因为卖家如果改变它们的策略并不会获得收益(单方面)。
然而,在一个游戏里面,可能会不存在NE或者存在多个NE,这就让palyer很难预测游戏的结果。因此在非合作游戏中,我们要验证NE的存在唯一性。有定理表明,唯一的NE存在当且仅当每一个player的策略空间是凸集(非空,闭集,有界)且收益函数是连续且类凹函数。

非合作博弈假设信息作为特征,player的收益函数和策略是公开的,这个就是一个完全信息游戏。然而,在实际当中,一个player可能不会太注意到其他palyer的信息,可能只知道每种类型出现的概率,这种就叫做不完全信息博弈。在FL市场中,关于DO可靠性和信誉的先验知识可以帮助分配奖励的,这些知识MO可能不知道。一个典型例子就是贝叶斯博弈,游戏的结果可以通过贝叶斯分析来预测。这个的均衡就是BNE,类似完全信息博弈的NE,当每一个player选择一个策略取最优化它们的期待收益(利用它们对其他player类型和策略的估计),BNE可以被计算出来。因为非合作博弈构建了自私players之间的冲突,FL市场中DO是竞争的然后MO的钱是有限的都可以构建为非合作博弈。这个对应的NE匀速DO有一个最优的参与策略。在FL中,这可以利用有竞争力的预测服务提供者进行计算资源交易。

2)Stackbelberg Game:
Stackelberg博弈是一个随着时序移动的博弈,在这里面,player作为leader的首先移动,然后其他player作为follwers的在观察了leader的移动之后再移动。因此,它也叫做leader-follower博弈。这个博弈的目标是建模一个多agent的决策过程,然后最大化在给定leader策略下的leader和follower的最大收益。

重新考虑一下我们有两个player,也就是计算资源的销售方。P1和P2表示两个player各自的策略。1和2都希望最大化它们的效用ui(p1,p2)。假设player 1在阶段1选择了它的策略,因此它就是一个leader。player2在阶段2选择了策略,所以他就是follower。这个关于leader和follower的共同优化问题就是Stackelberg游戏,它们的解构成了SE

DEF2:假设p1和p2分别是leader和follower的最优策略,那么(p1*,p2*)是SE当且仅当对于任意的(p1,p2)
我们有

通常来说,反向推理方法经常用于求解SE。在上述的例子中,给定p1,首先我们可以让follower求解出p2*,然后对于leader而言,我们用p2替换掉p2就可以求解出p1。因为player1知道paler2知道p1作为优势,player1会强加一个对自身有利的solution。
因此,在SE中,leader的效用总是高于follwer的,这个就叫做第一个移动者的优势。对应地,当到达了SE之后,leader可以获得至少和对应NE相当地收益。这个特征使得Stakelberg博弈适合FL的激励机制的设计。例如,它可以允许followers在知道leader(MO)对CPU资源的需求或者奖励的发放后,再来决定计算资源的定价

3)联盟博弈:在合作游戏中,player之间互相合作来使得整个联盟的共同目标最优化。进一步来说,player之间签订了强制性的条款。在这情况下,palyer可以协调策略然后达成一个关于怎么分配总收益给联盟中的player的共识。联盟博弈的目标是为了寻找一个稳定的解可以保证博弈的结果是免疫于player的变更的

拍卖

拍卖是一种经济的机制,它的目的就是分配商品(例如训练数据,计算资源和带宽等),然后建立一个对应的价格通过一个叫“竞价”的过程。一个拍卖包括一个精确的规则集合,这些规则通过市场参与者的基础来决定资源的分配和价格。拍卖中有术语如下:

竞价方:竞价方就是买方,它们希望在拍卖中购买物品。在FL中,买房可能是MO或者是FL需求方
卖方:卖方给卖方提供服务或资源。在FL中,卖方通常是DO或者那些使用本地数据训练共享模型的客户
拍卖中间商:中介,决定价格和获胜方。很多情况下,卖方也担任中介。
价格:可能是asking price或者bidding price。asking price就是seller希望获得的price,然后bidding price就是buyer希望支付的price。Hammer price就是最终拍板的价格。
商品:买方和卖方要交易的东西,它对应着buyer和seller想买的价格和想卖的价格。在FL中,商品可以是一个数据单元(训练数据样例)或者是一个计算资源单元(do提供的)
价值:在拍卖中,价值就是值商品值多少钱。不同的买卖方会根据自己的偏好得到不同的价值。每个参与者心中的价值可以是私有的也可以是公开的。
效用:买方的效用是不同于商品的价值和最终的支付的。卖方的效用,也就是收益,指的是它从buyer那里获得的总支付。在FL中,buyer的效用,例如MO,可以是正比于全局模型的精确度以及反比于给DO的总支付
社会福利:指的是每个user(buyer + seller)的总效用

拍卖机制被广泛地应用在多个领域,例如无线系统地资源分配,安全数据下载,网络安全。接下来,我们介绍在FL中常用的拍卖类型

1)盲拍:不同于公开拍卖,在盲拍中,buyer提交一个隐藏的竞价给中介。对应的,没有bidder知道别人的bidding价格,也不能更换自己的价格。下面是三种类型的拍卖:

  • First-price 盲拍:谁bid的钱最多谁就是赢家,然后可以获得item
  • Second-price 盲拍(Vickrey):第二高bid的玩家才是赢家。因为胜者支付的价格比它期待的要少,所以这个协议促使buyer真实的拍卖,因此拍卖很可信。这个特征使得**这个拍卖策略在FL中常被使用,用来防止不可信节点的恶意行为
  • Vickrey-Clarke-Groves拍卖(VCG):是一个冠以的Vickrey拍卖(适用于多个商品)。在VCG里面,商品根据社会最优的行为来分配,然后胜者支付由于赢了商品造成的社会价值的丢失。这种支付规则使得bidder会根据商品之际价值正常的叫价。因此,VCG是一个可信的机制。在FL中,VCG机制可以用来激励DO来报告它们关于网络操作的真实价值,从而来最大化社会的福利。

2)前向拍卖,反向拍卖,二次拍卖:

  • 前向拍卖:多个buyer先提交bids,然后对于一个seller来说看看谁的叫价高
  • 反向拍卖:多个seller先提交asks,然后对于一个buyer来说看看谁能接受。一般来说,反向拍卖都和盲拍结合之类的。
  • 二次拍卖:在FL中,存在多个MO和DO,二次拍卖可以用来匹配供给和需求。在二次拍卖中,buyer和seller同时提供它们的bids和asks,给一个中介。中介会决定一个price p,就是交易费,为了清空市场,一般来说asks < p and bids > p。一般来说p = (pb + ps) / 2,pb是bids,ps是asks。买方接受资源,卖方获得交易费。(那消失的(pb - ps) / 2是不是被中介吞了?)这个过程一直重复,直到没有新的交易出现或者到达预计的结束时间

3)组合拍卖:在组合拍卖中,buyer的每一个bid都意味着一大串的商品。基于bid中的信息和seller中的商品容量,中介可以决定最优的分配策略获胜者。然而,解决winner对于组合拍卖是NP难问题,没有多项式解法来找到最优的分配。这里有很多算法来得到问题的近似解,例如拉格朗日估值。在FL中,组合拍卖用来分配网络操作者的带宽来掌控FL SP(service provider)

合同和匹配理论

合同和匹配理论被认为是建模关于不同类型的明知且自利的player动态和互相利益关系的两大杀器。特别地,它们可以有效地解决交易市场的高动态性,以及自利和竞争的player。下面,我们简单介绍合同和匹配理论以及FL的设计

1)合同理论:合同理论是一个经济的理论,他认为每个交易和机构都是一种合同。他在雇佣者和雇佣人的非对称信息里面经常使用(也就是说,员工的未来老板是不准确知道的)。在FL里面,因为打工仔都是自私的然后它们可能不会暴露它们的真实bids以及它们在FL中的隐私保护性质,因此存在着信息不对称。合同理论可以设计一个最优的合同来减少道德威胁,不利的选举,以及在信息不对称中的派系扭曲这个特征使得合同理论可以使用于FL中的激励机制的设计。在FL背景下,一个老板可以是一个MO它希望雇佣worker来完成FL的模型训练。同样的,一个员工(do),希望加入到FL中。一个三维的合同激励机制同时考虑任务的支出和隐私问题在70中被提出一个两阶段的基于动态合同的激励机制在71提出,来激励不同意愿的user来参加。基于个人隐私保护的合同激励72可以提供对不同隐私偏好的worker进行传统的支付(ps:这就是激励+ 隐私嘛??!!)

2)匹配理论:匹配理论的目标是最优化匹配两个不相交的agent集合(给定它们每个个体的效用下)。在通常的分配博弈模型,可能会有多个agents在matching的两端出现,然后一边的agents会和另一边的agents进行交易。因此,这种游戏叫做双边匹配。在匹配理论中,agents之间互相竞争,从而最大化它们的效用(自私程度),然后总是做那些可以增大它们效用的决定(贪心,理智)。**在FL中,这个被用来进行任务的分配,目标就是最小化系统的延迟(在多任务FL的场景下)

总结

这节介绍了经济学和博弈论模型的知识,然后提出它在FL的应用。具体的,我们介绍了定义,机制描述,合理性分析等。

有关激励机制中的经济学和博弈论模型(2)的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  3. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  4. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  5. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  6. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  7. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  8. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  9. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  10. ruby-on-rails - 如何验证非模型(甚至非对象)字段 - 2

    我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss

随机推荐