最优传输Optimal Transport-Wasserstien距离 以及Gromov-Wasserstien距离以及fused Grosserstien距离

说实话我对此理解的也不是太深刻,因为总感觉这个OT算法实在是有些抽象,所以欢迎各位看官多向我提问,我们互相交流以加深理解。

部分参考来源:
Subgraph Matching via Fused Gromov-Wasserstein Distance
Optimal Transport入门简述

一、 最优传输 Optimal Transport & Wasserstien Distance

下面讲讲我理解的内容:

有这么一个情景:我们有很多 n 堆沙子(即我们有一个一维向量 [n, ]), 每一堆沙子重 P ( i ) ∈ R n P^{(i)} \in \mathbb{R}^{n} P(i)Rn,有 m 个坑(即我们有一个一维向量 [m, ]),每个坑能装 Q ( i ) ∈ R m Q^{(i)}\in \mathbb{R}^{m} Q(i)Rm沙子,我们想将这些沙子移到这些坑里,每堆沙子怎么移动才能让代价最小(即解最优)?

我们先来定义一下我们移动沙子要付出的代价,这是一个代价矩阵 M ∈ R > = 0 n × m M \in \mathbb{R}^{n \times m}_{>=0} MR>=0n×m,shape为 n × m n \times m n×m, 描绘了 n 中任一沙堆向 m 个坑中任一坑搬运所要付出的代价,并且里面的数值必须是大于等于0的。

然后我们定义下我们的解矩阵,解矩阵长这样: T ∈ R > = 0 n × m T \in \mathbb{R}^{n \times m}_{>=0} TR>=0n×m,描述了从 每个沙堆向每个沙坑搬运多少质量(mass)沙子(所以你可以看出这有很多最优解(话说是局部解吗?))

然后定义将 T 和 M 逐元素相乘(注意不是矩阵点乘)表示总的运输成本,再将所有积求和计算总代价,公式如下:

W a s s e r s t i e n − d i s t a n c e = argmin ∑ i , j T i , j M i , j = m i n T ∈ τ ( p , q ) ⟨ T , M ⟩ F Wasserstien-distance = \text{argmin} \quad \sum_{i, j} T_{i, j} M_{i, j} = min_{T\in\tau(p, q)}\langle T, M \rangle _{F} Wasserstiendistance=argmini,jTi,jMi,j=minTτ(p,q)T,MF

并且满足以下约束:

τ ( p , q ) = { T ∈ R + n × m ∣ T 1 m = P , T T 1 n = Q } ; T ≥ 0 \tau(p, q) = \{T\in \mathbb{R}^{n\times m}_{+}|T1_{m}=P, \quad T^{T}1_{n}=Q\}; \quad T \geq 0 τ(p,q)={TR+n×mT1m=P,TT1n=Q};T0

这里的 1 1 1 是一个全 1 的向量(矩阵),P和Q我们又称为分布,在实际计算中因为不易获得,我们一般直接设定为统一分布(uniform)

总的代价我们称为 Wasserstien-distance, 这个距离越小表示这两个数据越接近。 T 矩阵就是我们想求解的运输矩阵,它描述了任一沙堆向任一坑搬运多重的沙子是代价最小的(最优的)。

二、Gromov-Wasserstien Distance

上部分说的wasserstien距离有一个缺陷,那就是如果两个分布之间并没有直接关系(专业说法叫不在同一个空间),我们是很难获得两个分布之间的代价矩阵 M 的。上边这个例子是讲的搬运沙子,那么无论沙堆还是沙坑,直接的关系就是都使用沙子的重量来衡量,而如果两个分布间没有直接的关系,或者代价矩阵及其难求解,由此引出Gromov-Wasserstien Distance。

这个算法的思想是这样的:有这么两个不同空间 A ∈ R n A \in \mathbb{R^{n}} ARn B ∈ R m B \in \mathbb{R^{m}} BRm, 我们计算从 A i A_{i} Ai A j A_{j} Aj 之间的距离,即对于整个A空间的各个点,计算它到其他点的距离,我们就可以获得一个内部的代价矩阵 C A ∈ R n × n C^{A} \in \mathbb{R^{n \times n}} CARn×n, 对 B 同理可得 C B ∈ R m × m C^{B} \in \mathbb{R^{m \times m}} CBRm×m, 既然我们不能直接在两个不同空间之间建立联系(无法轻易获得代价矩阵),那我们就比较两个空间中成对距离的差异(由此也可以看出GW算法只关注空间的图形结构而不关注空间内各点的属性)。

C i , i ′ A C^{A}_{i, i'} Ci,iA 表示A空间从点 i 到 i‘ 的距离,那么我们就可以使用一个损失函数(Loss Function)来评估 C i , i ′ A C^{A}_{i, i'} Ci,iA C j , j ′ B C^{B}_{j, j'} Cj,jB 的不同,我们因此可以定义一个张量:

L i , i ′ , j , j ′ = L ( C i , i ′ A , C j , j ′ B ) ∈ R n × n × m × m L_{i, i', j, j'}=\mathcal{L}(C^{A}_{i, i'}, C^{B}_{j, j'}) \in \mathbb{R}^{n\times n \times m \times m} Li,i,j,j=L(Ci,iA,Cj,jB)Rn×n×m×m

然后我们定义传输矩阵 T i , j T_{i, j} Ti,j T i ′ , j ′ T_{i', j'} Ti,j 表示从点 i 到 j 和 从 i’ 到 j’ 所要移动的质量(mass), 其中 (i, j) 是A空间的,(i‘, j’) 是B空间的。然后 μ A \mu_{A} μA μ B \mu_{B} μB表示A、B空间的离散概率观测, p q表示其概率向量,通常也是用 uniform distribution.

最后我们就可以表示出 GW distance:

G W ( p , q , C A , C B ) = m i n T ∈ τ ( p , q ) ∑ L ( C i , i ′ A , C j , j ′ B ) T i , j T i ′ , j ′ GW(p, q, C^{A}, C^{B}) = min_{T\in\tau(p, q)}\sum\mathcal{L}(C^{A}_{i, i'}, C^{B}_{j, j'})T_{i, j}T_{i', j'} GW(p,q,CA,CB)=minTτ(p,q)L(Ci,iA,Cj,jB)Ti,jTi,j

三、Fused Gromov-Wasserstien Distance

最后就是介绍 Fused Gromov-Wasserstien(FGW) Distance,原理非常简单,就是结合了wasserstien距离和GW距离,感觉像是缝合怪哈哈

公式如下:

F G W ( p , q , M , C A , C B ) = m i n T ∈ τ ( p , q ) ( 1 − α ) ⟨ T , M ⟩ F + α L ( C i , k A , C j , l B ) T i , j T k , l FGW(p, q, M, C^{A}, C^{B}) = min_{T\in\tau(p, q)}(1-\alpha)\langle T, M\rangle_{F} + \alpha\mathcal{L}(C^{A}_{i, k}, C^{B}_{j, l})T_{i, j}T_{k, l} FGW(p,q,M,CA,CB)=minTτ(p,q)(1α)T,MF+αL(Ci,kA,Cj,lB)Ti,jTk,l

可以通过调节 α \alpha α 来改变两个距离的占比,FGW的缺点和wasserstien类似,需要寻找 两个空间的代价矩阵 M。

四、三个距离的比较例子

有如下两个图:

在这里插入图片描述

各种代价矩阵如下:

在这里插入图片描述

计算出的三个算法的传输矩阵和转换结果:

在这里插入图片描述

在这里插入图片描述
虚线越深表示两个节点间的连接越深,上图深虚线表示 1/3的mass,浅的表示 1/6的mass

上图可以看出GW仅关注两个图的几何结构而不关心节点的属性,另外wasserstien仅考虑特征,FGW则可以同时考虑两者

铁铁们,求赞求收藏!

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是土豆大叔啊!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值