用一种学习训练的方式计算路网中最短路径
1 介绍
1.1 传统方法
计算时间长、需要构建索引耗时耗力
1.2 该paper所提方法的优点
①性能好,计算时间短
②计算结果精确
③并且可以很好扩展到大型网络
1.3 RNE 的思想
**将图中顶点的信息(经纬度)嵌入到D维空间中,并用L1度量来近似最短距离**
1.4 RNE
- ①能够设计一个有效的表示模型,捕获到整个网络中的顶点距离关系 --分层嵌入模型
- ②有效的训练模型
- ③选择训练样本 --一种微调的方式选择高质量样本
2 原始RNE
2.1 问题定义
-
一个图G(V,E,W),分别表示顶点边和权重 -
最短路径:指图中两个顶点的最小到达权重 (也称为真实值)
2.2 顶点嵌入模型
目的:将顶点嵌入到D维中,并用一些度量(向量的距离或者函数)来估计最短路径
顶点v嵌入后变成一个向量*v*,用一个矩阵M,来存储嵌入后的向量
最短距离的度量表示为:
度量方式:用绝对误差和相对误差度量嵌入后的向量的性能
模型训练的损失函数:最小化估计值和真实值的均方误差
2.3 原始RNE的局限性
- 直接训练,向量空间太稀疏,无法更好的拟合顶点对之间的距离度量,模型效果差
- 训练样本,如果随机选择顶点,顶点遍布全图,很难捕捉全局布局
3 分层RNE模型
3.1 图分区(采用的G-Tree的分区方式)
3.2 分层嵌入模型:分层路网的嵌入
运用图分区后的树结构来构建分层嵌入模型
运用上图明白两个概念:局部嵌入向量(矩阵)、全局嵌入向量(矩阵)
全局顶点的嵌入表示是各顶点的局部嵌入表示之和
3.3 分层嵌入模型:模型训练
- 按照自上而下的方式逐步训练每个分层的局部嵌入,并让其收敛
- 固定每个分层的局部嵌入,再向下训练顶点嵌入
- 通过自己选的一些特定样本来训练一些欠拟合的顶点
- 并在不同的训练样本过程中选择不同的训练数据
- 最终运用分层训练的向量计算全局顶点的向量表示
- 用全局顶的向量表示来估计顶点间的最短路径
在训练的过程中,为每一个水平设置一个一个学习率,来捕捉不同水平结点之间的关系。相当于在较大子图中粗粒度的学习顶点间的嵌入表示(学习率在早期设置较大,后期设置较小),在较小子图上细粒度的学习(小图上相反)。
3.4 样本的选择
3.4.1 层次嵌入的采样
- 目的:高质量的选择样本对该子图对应的顶点嵌入
- 选择策略:对应算法2的1-5行,对于l水平嵌入,首先从该水平随机选择选择两个子图,再随机的从所选两个子图中选择两个顶点,所选的顶点对即为该子图所选的样本。
3.4.2 顶点嵌入的样本选择策略(基于地标的样本选择策略)
- 随机选择样本导致的问题:随机性太大,那么对于每个顶点的嵌入更新的太快,不足以表示网络结构
- 什么是地标顶点? 地标顶点也就是枢纽顶点,枢纽可以更好的代表网络的结构,可以将其视为其他顶点的参考顶点。
- 通过控制一些重要顶点来控制顶点嵌入的位置,更好的保留网络结构
- 顶点嵌入样本选择策略:定点对中,一个选自枢纽顶点,另一个选自其他顶点,构成样本
3.4.3 地标怎么选取
- 自己理解:地标选取应该为图分区。各子图的边界点
3.4.4 主动的微调选择样本
- 如果随机的选择样本,那么距离在一个较小的范围,不能概括全局的结构
- 据当前的误差分布选择高需求样本(例如,欠拟合区间的样本)并动态调整样本选择
-
- First we divide vertex pairs into R distance intervals (or buckets) with equal lengths.
-
- Next we generate R sets on the R intervals to reflect the error-distance distribution of the current model.
-
- Then we iteratively fine-tune the embedding of vertex pairs in intervals with the highest approximation errors by selecting more training samples on them.