「论文访谈间」是由 PaperWeekly 和中国中文信息学会社会媒体处理专委会(SMP)联合发起的论文报道栏目,旨在让国内优质论文得到更多关注和认可。
研究动机
A* 算法因为它的高效和准确而被广泛应用于路径发现和图遍历等任务上。斯坦福的 Peter Hart, Nils Nilsson and Bertram Raphael(Nils Nilsson 老先生于 2019 年 4 月 23 日去世,哀悼)于 1968 年首次提出了 A* 算法。A* 算法在寻找最优路径的过程中,使用 f(n) 来评价所有候选节点的得分,每次要扩展结点的时候都会选择那个 f(n) 最小的节点:
g(n) 是从出发点到 n 节点的费用值,而 h(n) 是一个被估计的从 n 到终点的费用值。不同于 Dijkstra 算法,A* 算法需要多考虑一个启发值 h(n),通过启发值的帮助,A* 算法可以大大减小搜索空间。
此图引用于:https://www.redblobgames.com/pathfinding/a-star/introduction.html
上图是三种搜索算法的对比,Dijkstra 算法只使用 g(n), 虽然可以找到最优路径,但是搜索空间巨大。贪心的最佳优先(Greedy Best-First)算法只使用 h(n),虽然减小了搜索空间,但是不能保证得到最优的结果。而 A* 算法可以保证得到最优路径,并且大大减小了搜索空间。
传统的 A* 算法使用一些比较简单的指标作为 g(n) 和 h(n),比如欧氏距离,用以解决最短路径等比较简单的问题,因此对于一些复杂的非线性问题的搜索求解并不适用。
在智能交通领域,一个非常典型的例子就是个性化的路径推荐。传统的 A* 算法对于“最短路径”、“最快路径”的搜索非常有效,但是对于“最喜欢的路径”搜索就很难发挥作用。
因为用户的偏好是一个非常复杂的非线性过程,无法用简单的欧氏距离进行度量。面对这样的问题,我们提出使用深度神经网络来学习 A* 算法的 g(n) 和 h(n) 值,以此来帮助 A* 算法解决更为复杂的问题。
研究思路
我们以个性化出行路径推荐为例子介绍神经网络是怎样与 A* 算法结合的。出行路径推荐是一个和我们平时生活息息相关的问题,也一直是各大地图应用的核心算法之一。一个好的路径推荐算法,可以提升人们的出行体验,为经济社会的发展带来价值。
出行路径推荐受到了学术界和工业界的广泛关注,最初的路径规划算法讨论的是怎样在路网上找到一条最短路径。随着时代的发展,基于历史轨迹数据的个性化的路径推荐任务也开始受到研究者们的关注。
过去的路径推荐方案大多以 A* 搜索为框架不同的费用函数对应于不同的搜索任务,比如说以移动距离为费用,那么搜索的便是最短路径,以用时为费用,那么搜索的便是最快路径,以用户的偏好为费用,那么便是个性化的路径推荐。
在现有工作中,大家往往以简单的统计或者浅层的模型来作为搜索的费用函数,但是用户的喜好往往是难以被如此简单地建模的,因此,我们提出用神经网络来学习 A* 搜索算法中的费用函数,以此为基础结合 A* 搜索算法来完成个性化的路径推荐。本文 Empowering A ∗ Search Algorithms with Neural Networks for Personalized Route Recommendation 已经被 KDD 2019 收录,可以通过 https://arxiv.org/pdf/1907.08489.pdf 下载。
模型介绍
任务定义
路径推荐任务中,我们的模型接受一个历史轨迹数据集 D,起点 ls,终点 l