Fed-LTD: Towards Cross-Platform Ride Hailing via Federated Learning to Dispatch

464 阅读7分钟

1 摘要

基于学习的订单调度在网约车领域取得了巨大成功。然而,这种成功仅限于个别网约车平台,因为跨平台共享原始订单调度数据可能会泄露用户隐私和商业秘密。这种数据隔离不仅损害了用户体验,也降低了平台的潜在收入。在本文中,我们提倡在跨平台叫车服务中使用联邦订单调度,其中多个平台在不共享本地数据的情况下协作做出调度决策。实现这一概念需要新的联邦学习策略,以解决订单调度环境中有效性、隐私性和效率方面的独特挑战。为此,我们设计了联邦学习-调度(federal Learning-to-Dispatch, Fed-LTD)框架,该框架通过共享调度模型和决策来实现有效的订单调度,同时提供原始数据的隐私保护和高效率。我们通过Didi GAIA数据集的大规模跟踪驱动实验验证了Fed-LTD。广泛的评估表明,在总收入方面,Fed-LTD比单平台订单调度高出10.24%至54.07%。

2 Introduction

先引入了联邦订单调度(FOD),它面临两大挑战

  1. 跨平台网约车如何最大化订单调度的总效用?
  2. 如何在联邦订单调度中实现隐私保护和高效?

为了解决上述挑战,我们提出了一种新的解决方案框架Federated Learning-to-Dispatch (Fed-LTD)

它通过联邦学习管道解决了第一个挑战,该管道不仅共享调度模型,还共享调度决策,其中决策以剩余二部图的形式聚合。此外,Fed-LTD通过针对模型和决策聚合的一系列隐私保护和效率优化技术来处理第二个挑战,这样就不能在平台上推断订单和司机的分布,并且可以及时响应订单请求。对真实数据的评估表明,该方案的总收益较单平台订单调度提高了10.24% ~54.07%,隐私保护方案的运行速度比基于同态加密的方法快10倍。

3 Federated Order Dispatchin(FOD)

image.png

全局最优:所有图GkG_k合成一个图的最大匹配,Gk\mathcal{G_k}=GkG_k,共享信息策略为全集共享

image.png

局部最优之和:每个图分别最优求和,Gk\mathcal{G_k}=\emptyset,共享信息策略为空集共享

image.png

FED-LTD FRAMEWORK

image.png

它主要分为三步

  • Local learning and dispatching: 遵循[20]中的方案,各方将学习一个局部的价值函数,并据此进行调度决策。
  • Aggregation of dispatching models:在这一步中,应用联邦学习来聚合调度模型(即值函数)。在此过程中,我们还考虑了隐私保护和效率优化技术。
  • Aggregation of dispatching decisions:仅共享模型是不够的,因为调度决策在订单调度中起着更重要的作用。它们也可以通过局部剩余二部图(即每一方不匹配的节点)的聚合来共享。在这一步中,我们将提出新的算法来确保决策聚合过程中的隐私和效率。

算法每轮迭代(对应一个批量)的流程可描述如下:

(1) 第k方执行:
//Local learning and dispatching

  • 更新Vk:

Vk(st)=Vk(st)+ηu(rut+γVk(svt+1)Vk(sut))V_k′(st)=V_k(st)+η⋅∑_u(r_u^t+γV_k(s_v^t+1)−Vk(sut))

  • 计算ΔVk=VkVkΔV_k=V_k′−V_k
  • ΔVkΔV_k进行编码:ΔV~k=Encode(ΔVk)Δ\tilde{V}_k=Encode(ΔV_k)。
  • 更新边权根据(3)
  • 运行匹配算法并得到M(Gk)\mathcal{M}(G_k)
  • 计算残差二分图GΔk=GkM(Gk)G_Δk=G_k−\mathcal{M}(G_k)。
  • GΔkG_Δk进行编码:GΔk~= EncodeRBG (GΔk)\tilde{G_Δk}= EncodeRBG (G_Δk)。
  • G~ΔkΔV~k\tilde{G}_Δk,Δ\tilde{V}_k发送到server。

(2) server执行:

image.png

3.2 Local learning and dispatching

采用[20]中最先进的调度算法作为Fed-LTD中的局部调度算子

我们将司机视为智能体(agents),他们的地理位置视为状态(states),选定接下某个订单或保持空闲为动作,价值函数为在特定状态的期望累积奖励:

image.png

这里st是状态向量,rt是第t个批量的奖励和。价值函数按照Bellman方程来更新:

image.png

这里u和v分别是司机和订单,α是学习率,γ是折扣因子。然后,分配决策可以由各个参与方基于学习到的值来决定。

image.png

在重建二部图后,采用基于最大加权二部匹配的匈牙利法[11]进行局部调度决策

3.3 Aggregation of Dispatching Models

为了防止聚合过程中泄露各方隐私,采用随机掩码来扰动ΔVkΔV_k的值

image.png

且该方法是无损失的因为 image.png

3.4 Aggregation of Dispatching Decisions

将每一方不匹配的节点构成残差二部图,通过一轮全局匹配来聚合它们,订单将属于匹配的司机,这可以增加总收入但可能泄露订单和司机位置等隐私

image.png

GΔkG_Δk的EncodeRBG操作为MD5+局部敏感性哈希(locality sensitive hashing, LSH).server则能够通过DecodeRBG操作恢复残差二部图

在我们恢复全局二部图结构之后,我们需要计算由RL生成的边权值。我们只需要考虑顺序𝑣和驱动程序𝑢之间的连接对,即𝑣.𝑜𝑟𝑖𝑔𝑖𝑛和𝑢.𝑙𝑜𝑐彼此很近。由于该值函数的连续性,我们有V(𝑣.𝑜𝑟𝑖𝑔𝑖𝑛)≈V(𝑢.𝑙𝑜𝑐)。因此,我们可以将(3)重写为:image.png 将差分隐私用于扰乱𝑤(𝑢,𝑣)

image.png

其中𝜖𝑝是隐私预算。假设𝑣和𝑣'是两个奖励相同但起点和目的地任意的订单。根据拉普拉斯机制,我们得到了这个

image.png

因此,服务器无法从边权值推断出边属于哪个订单

隐私保护所用相关技术

局部敏感哈希

LSH的基本思想是:将原始数据空间中的两个相邻数据点通过相同的映射或投影变换(projection)后,这两个数据点在新的数据空间中仍然相邻的概率很大,而不相邻的数据点被映射到同一个桶的概率很小。也就是说,如果我们对原始数据进行一些hash映射后,我们希望原先相邻的两个数据能够被hash到相同的桶内,具有相同的桶号。对原始数据集合中所有的数据都进行hash映射后,我们就得到了一个hash table,这些原始数据集被分散到了hash table的桶内,每个桶会落入一些原始数据,属于同一个桶内的数据就有很大可能是相邻的,当然也存在不相邻的数据被hash到了同一个桶内。因此,如果我们能够找到这样一些hash functions,使得经过它们的哈希映射变换后,原始空间中相邻的数据落入相同的桶内的话,那么我们在该数据集合中进行近邻查找就变得容易了,我们只需要将查询数据进行哈希映射得到其桶号,然后取出该桶号对应桶内的所有数据,再进行线性匹配即可查找到与查询数据相邻的数据。换句话说,我们通过hash function映射变换操作,将原始数据集合分成了多个子集合,而每个子集合中的数据间是相邻的且该子集合中的元素个数较小,因此将一个在超大集合内查找相邻元素的问题转化为了在一个很小的集合内查找相邻元素的问题,显然计算量下降了很多。

那具有怎样特点的hash functions才能够使得原本相邻的两个数据点经过hash变换后会落入相同的桶内?这些hash function需要满足以下两个条件:

  1. 如果d(x,y) ≤ d1, 则h(x) = h(y)的概率至少为p1;
  2. 如果d(x,y) ≥ d2, 则h(x) = h(y)的概率至多为p2;

其中d(x,y)表示x和y之间的距离,d1 < d2, h(x)和h(y)分别表示对x和y进行hash变换。

满足以上两个条件的hash functions称为(d1,d2,p1,p2)-sensitive。而通过一个或多个(d1,d2,p1,p2)-sensitive的hash function对原始数据集合进行hashing生成一个或多个hash table的过程称为Locality-sensitive Hashing。

随机掩码

改变个体的同时尽量减少对总体的影响,运用在神经网络上可以在防止服务器发现个体变化的同时不影响其训练效果

MD5

MD5是信息摘要技术的一种实现,它可以从任意长度的明文字符串生成128位的哈希值

推荐知乎看到的讲解,很形象
漫画:什么是MD5算法? - 程序员小灰的文章 - 知乎 zhuanlan.zhihu.com/p/55841123