使用先进的图神经网络进行交通预测

'使用图神经网络进行交通预测'

通过与谷歌合作,DeepMind能够将人工智能的好处带给全球数十亿人。 从让语音障碍用户恢复原声到帮助用户发现个性化应用程序,我们可以将突破性的研究应用于谷歌规模的即时实际问题。 今天,我们很高兴与大家分享我们最新合作的结果,为使用谷歌地图的超过10亿人带来真正的全球影响。

我们与谷歌地图的合作

人们依赖谷歌地图进行准确的交通预测和预计到达时间(ETAs)。 当您需要绕过交通堵塞时,通知朋友和家人您要迟到时,或者需要及时离开去参加重要会议时,这些都是非常有用的工具。 这些功能对于诸如拼车公司之类的企业也很有用,它们使用谷歌地图平台根据行程时间提供有关上下车时间以及估计价格的信息。

DeepMind的研究人员与谷歌地图团队合作,使用包括图神经网络在内的先进机器学习技术,提高了柏林、雅加达、圣保罗、悉尼、东京和华盛顿特区等地的实时ETA精度高达50%,如下图所示:

谷歌地图如何预测ETA

为了计算ETA,谷歌地图分析世界各地道路段的实时交通数据。 尽管这些数据能够给谷歌地图提供当前交通的准确图像,但它不考虑驾驶员在行驶10、20或甚至50分钟后可能遇到的交通情况。 为了准确预测未来的交通情况,谷歌地图使用机器学习将实时交通状况与全球道路的历史交通模式相结合。 这个过程因多种原因而复杂。 例如,尽管上下班高峰期每天早晚都会发生,但具体的高峰时间可能因天而异,也可能因月份而异。 道路质量、限速、事故和封闭等其他因素也可能增加预测模型的复杂性。

DeepMind与谷歌地图合作,帮助提高了其在全球范围内的ETA准确性。 虽然谷歌地图的预测ETA对于超过97%的行程一直保持准确,但我们与团队合作进一步减少了剩余的不准确性,有时在台中等城市减少了50%以上。 为了在全球范围内实现这一目标,我们使用了一种称为图神经网络的通用机器学习架构,该架构允许我们通过融入关系学习偏差来建模真实道路网络的连接结构。 具体操作如下:

将全球道路划分为超级段

我们将道路网络划分为由多个相邻的道路段组成的“超级段”,这些道路段共享大量交通流量。 目前,谷歌地图的交通预测系统包括以下组件:(1)路线分析器,用于处理千兆字节的交通信息以构建超级段,以及(2)一种新颖的图神经网络模型,该模型通过多个目标进行优化,并预测每个超级段的行程时间。

用于确定最佳路线及其行程时间的模型架构。

通往创新交通预测机器学习架构的道路

创建一个使用超级段估计行程时间的机器学习系统时,最大的挑战是架构问题。 如何以准确的方式表示动态大小的连接段示例,以便单个模型可以取得成功?

我们的初步概念验证从一个直接的方法开始,尽可能使用现有的交通系统,特别是道路网络的现有分割和相关的实时数据流。 这意味着一个超级段涵盖了一组道路段,其中每个段具有特定长度和相应的速度特征。 首先,我们为每个超级段训练了一个完全连接的神经网络模型。 这些初步结果是有希望的,并展示了使用神经网络预测行程时间的潜力。 但是,由于超级段的动态大小,我们需要为每个超级段单独训练一个模型。 要在大规模部署此系统,我们将不得不训练数百万个这些模型,这将带来可观的基础设施挑战。 这促使我们研究可以处理可变长度序列的模型,例如循环神经网络(RNN)。 但是,从道路网络中加入进一步的结构证明是困难的。 相反,我们决定使用图神经网络。 在交通建模中,我们对汽车在道路网络中的流动方式感兴趣,而图神经网络可以对网络动态和信息传播进行建模。

我们的模型将当地道路网络视为一个图形,其中每个路段对应一个节点,并且同一条道路上的连续路段或通过交叉口连接的路段之间存在边。在图神经网络中,执行消息传递算法,通过神经网络学习消息及其对边和节点状态的影响。从这个角度来看,我们的超级段是道路子图,按照交通密度的比例随机采样。因此,可以使用这些采样的子图训练单个模型,并在规模上进行部署。

图神经网络通过推广“接近性”的概念,扩展了卷积神经网络和循环神经网络所施加的学习偏差,使我们能够具有任意复杂的连接来处理不仅是前后的交通,还包括相邻和交叉的道路上的交通。在图神经网络中,相邻节点相互传递消息。通过保持这种结构,我们施加了一个局部性偏差,使节点更容易依赖于相邻节点(这只需要一步消息传递)。这些机制使得图神经网络能够更有效地利用道路网络的连接结构。我们的实验表明,通过扩展以包括不属于主干道的相邻道路,可以提高预测能力。例如,想象一下侧街上的堵车如何影响到较大道路上的交通。通过跨越多个交叉口,模型能够本地预测转弯延误、合并延误以及停车堵塞交通的整体遍历时间。图神经网络在组合空间上的泛化能力赋予了我们建模技术的强大能力。每个超级段(可以具有不同的长度和复杂性,从简单的两段路径到包含数百个节点的较长路径)仍然可以由相同的图神经网络模型进行处理。

从基础研究到生产级机器学习模型

一个在学术环境中经常被忽视的生产机器学习系统的一个重大挑战是同一模型的多次训练运行之间可能存在的巨大变异性。在更学术的环境中,质量上的微小差异可以简单地被丢弃为糟糕的初始化,但是当这些小的不一致性在数百万个用户之间累积时,它们可能会产生很大影响。因此,在将模型投入生产时,使我们的图神经网络对此种训练中的变异性具有稳健性成为核心问题。我们发现,图神经网络对训练过程中使用的图结构的变异性特别敏感 – 这种不稳定性的主要原因是训练过程中使用的图结构的巨大变异性。一个批次的图可能包含从两个节点的小图到超过100个节点的大图。

然而,在经过多次尝试和错误之后,我们开发出一种方法来解决这个问题,即在监督设置中使用一种新型的强化学习技术来适应性地调整学习率。

在训练机器学习系统时,系统的学习率指定了它对新信息的“可塑性”或变化能力。研究人员通常随着时间的推移降低模型的学习率,因为学习新知识与遗忘已学到的重要特征之间存在权衡 – 这与从儿童到成年人的发展过程类似。我们最初使用指数衰减的学习率调度来稳定我们的参数,经过预定义的训练期后。我们还探索和分析了模型集成技术,这在以前的工作中已被证明是有效的,看看是否可以减少训练运行之间的模型方差。

最终,对于这个问题最成功的方法是使用元梯度(MetaGradients)在训练过程中动态调整学习率 – 有效地让系统学习自己的最佳学习率调度。通过在训练时自动调整学习率,我们的模型不仅达到了比以前更高的质量,而且还学会了自动降低学习率。这导致了更稳定的结果,使我们能够在生产中使用我们的新型架构。

通过定制损失函数使模型泛化

虽然我们建模系统的最终目标是减少旅行时间估计的错误,但我们发现使用多个损失函数的线性组合(适当加权)极大地增加了模型的泛化能力。具体而言,我们制定了一个多损失目标,利用模型权重上的正则化因子,全局遍历时间上的L_2和L_1损失,以及图中每个节点的Huber损失和负对数似然(NLL)损失。通过结合这些损失,我们能够引导我们的模型并避免过拟合训练数据集。虽然我们对训练中的质量测量没有改变,但在训练期间观察到的改进更直接地转化为保留测试集和端到端实验中的结果。

目前我们正在探索MetaGradient技术是否也可以在训练过程中通过减少旅行估计错误来改变多组分损失函数的组成,以此作为指导指标。这项工作受到了在强化学习领域取得成功的MetaGradient努力的启发,初步实验显示出有希望的结果。

合作

由于我们与Google Maps团队的密切而富有成效的合作,我们能够在大规模应用这些新颖和新开发的技术。在一起,我们能够克服研究挑战以及生产和可扩展性问题。最终,最终模型和技术的推出使得Google Maps和Google Maps Platform API在全球范围内的ETA准确性得到了提高。

在谷歌规模上与前沿研究一起工作代表着一系列独特的挑战。如果您对应用诸如图神经网络等前沿技术来解决现实问题感兴趣,请在此了解更多有关正在处理这些问题的团队。