讲座笔记:图匹配 Graph Matching 问题 | 机器学习&组合优化

讲座信息:

Inroduction

图有很多相关问题,我们这里针对一类问题进行介绍:图匹配

Multi-Graph Matching via Affinity Optimization with Graduated Consistency Regularization[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 38(6): 1228–1242.

图匹配就是:不仅考虑点之间的配准,还考虑边之间的配准 registration 。

Node-wise linear assignment problem

如上,匹配两个图,一个图有5个点,一个由4个点,我们要做的就是求解出一个5×4的0-1矩阵(组合优化问题),得到点与点间的匹配关系。

我的理解:

  • X X X的维度是 5 × 4 5\times 4 5×4
  • 1 的 维 度 是 5 × 1 \mathbb{1}的维度是 5\times 1 15×1 4 × 1 4\times 1 4×1
  • 由此, X 1 ≤ 1 X\mathbb{1}\le \mathbb{1} X11 X T 1 ≤ 1 X^T \mathbb{1}\le \mathbb{1} XT11就可以保证 X X X的行和列之和都小于1

一个很直接的求解方法是:计算点与点之间的相似度,构造Kp矩阵,然后求解这个规划模型。

Edge-wise graph matching

这个问题的难点在于,我们不仅仅要考虑点与点之间的相似性,还要考虑边与边之间的相似性。

可以看到边的数量明显上升。

如上,我们将点与边作为优化目标,加起来。

我们可以对点和边的关系进行编码,压缩成一个矩阵:affinity matrix 。

如上,对于5点对4点的情况,我们需要5乘4等于20规模的方阵,这样就可以两两编码(1a、1b、…、5d,共20个)。如上,3b行与5c列的交点意味着:3和5连成的边与b和c连成的边的相似度。但是这样K矩阵比较稀疏。

有了这个矩阵,我们将其转换为QAP。

Quadratic Assignment Problem

如上,转化为一个二次问题。注意到,vec 是向量化的意思,就是把 X 5 × 4 X_{5\times 4} X5×4 转化为 X 20 × 1 X_{20 \times 1} X20×1

这是一个 NP-hard 问题。

所以该如何求解呢?

Spectral Approximation

如上,松弛是一个好办法。求解快,但是得到的解很松弛。

Double-stochastic Approximation

此外,还可以考虑 将X变为连续变量的方式,这样的解可能更紧凑一些。

Beyond: Higher-order models

可否考虑一些高阶信息呢?

如上,在CV领域,3阶代表相似变换的不变性,4阶代表仿射变换的不变性。因此,是否可以将 graph 变为超图(提高阶数)?

但是,这不可行,维度爆炸。

Factorized model

如上,可以考虑进行分解。

如上,可以把大矩阵拆成小矩阵。

总结一下,在机器学习以前,有两个思路解决这个问题:

  • 不分解,直接做
  • 分解开,然后迭代

然而,在实际问题中,不仅仅是两张图的匹配,我们需要提取信息,并且能做到,多张图协同匹配。

Composition based Affinity Optimization

如上,有一种思想是,如果G1和G2匹配很难,是否可以通过G3作为中介(比如儿子于父母),分别与G1和G2匹配?

Recall over fitting in machine learning

算相似度只是用简单的高斯模型,并且,相似度基于直接从图形提取特征,而图形本身就可能存在噪声。

如上,我们不希望得到红线(一味地最求相似度),而是希望使用类似“正则”的思想,得到鲁棒的结果。

Cycle consistency as regularizer

在多图中,我们提出 consistency 的概念,注意,对于i和j,我们引入第三者第四者等等,用于计算 consistency ,这个值越高越接近1,则匹配效果越好。

于是,我们的目标函数就有了两部分:affinity score 和 consistency 。开始时,consistency 的权重不高,因为匹配效果不怎么样时,计算 consistency 也没用。

我们上述操作(类似正则的思想),都是在目标函数设计有缺陷的假设下的。还可用考虑用机器学习改善目标函数的建模。

Background: Learning on Graph Matching

Matching Score

基本思想:每对边、每队点权重都是相等的,都是1,接下来可以调整这些权重,以此区分重要和不重要的边对、点对。

我们优化的目标就是这些权值,如下图。

Learning Matching Function

如上,Π是对应关系,我们学的是ω。

Learning Graph Structure

于是,这就成为了一个结构化的机器学习问题。

如上图,我们最终学出的,是节点、边的权重。越大、越深,代表权重越大。

Learning Matching Features: Deep Learning of Graph Matching

能否用深度学习拥抱匹配任务?(这篇文章首发)

CNN与谱方法SM提取特征,之后对比一下,然后得到 loss 。但是,问题:SM本身不是做GM的solver,因此只能得出近似解;损失函数有缺陷,仅仅在计算两个对应点在空间中的距离(并不解决我们的匹配需求,匹配不再离得远不远,只在乎有没有配对准)。

Spectral Matching (SM)

简单介绍一下 SM 。

对于两个 Graph ,可以建立 Association Graph ,有一个据类,如图中加粗的线,是可行的匹配,则找到了一个可行解。好处是可以使梯度回传。

Embedding approach for Deep Graph Matching

于是主讲老师团队想着改进。

Learning Combinatorial Embedding Networks for Deep Graph Matching

如上,基础的PIA架构中(对前文工作的改进),使用了匈牙利算法的可求导版本 Sinkhorn 。此外,设计了一个 loss ,实际上就是一个交叉熵。

intra-GNN

交替地对每个点进行更新。“实际上就是GNN”。

对图做完嵌入后,把边信息都压缩到节点上,因此变为了一个只有点的问题,是一个 指派问题

Distance Metric

给定两个嵌入的结果 x i , x j x_i , x_j xi,xj,怎么算相似性?

s ( x i , x j ) = exp ⁡ ( x i T A x j ) s(x_i ,x_j )=\exp{(x_i^T \mathbf{A} x_j)} s(xi,xj)=exp(xiTAxj)

A \mathbf{A} A 是可学习的权重矩阵。exp保证非负。

Sinkhorn Algorithm

OK,现在有了距离的计算方法,构造非负距离矩阵。那怎么得到最后的匹配结果呢?做交替的 Row-Norm 和 Col-Norm ,直到行和列都是和为 1 为止(收敛到双随机矩阵)。这个过程就是 Sinkhorn Algorithm 。

Permutation Loss

因此,我们现在有了一个可以视为“类别概率”的矩阵,可以进行交叉熵计算。

此外,还有一些改进,如上:

  • 第 2 个架构 PCA-GM 用了 Cross-graph GNN ,为了更好协同地对两个图进行 embedding
  • 第 3 个架构 IPCA-GM 让迭代 iteratively ,强化了一下效果

效果很好。

Neural Graph Matching Network: Learning Lawler’s Quadratic Assignment Problem with Extension to Hypergraph and Multiple-graph Matching

如上,主要贡献有:

  • 针对QAP做了端对端的机器学习
  • 扩展到了 hyper-graph matching
  • 扩展到了 multi-graph matching

什么是 Lawler’s QAP 呢?就是针对提取后的特征矩阵直接处理,不设计从生图提取特征的过程(没有什么感知层面、CNN层面科学的)。思想:直接在association graph 上做 embedding ,而不是两个图各自做 embedding 。

此外,针对多图,如上图架构图右侧,将两两匹配的结果拼到一起,构成一个大矩阵 joint matching matrix 。

QAPLIB Benchmark

可以看到,在 QAPLIB 做一些实例时,会有超过 baseline 的解(蓝线越低越好,有蓝线突破了虚线)。

Other techniques

如果一个图像里同时出现两个物体,如何以图匹配的方式分出来?

如果用 cut ,如上图,将导致中间一样两只天鹅头被放到一起。讲座信息:

Inroduction

图有很多相关问题,我们这里针对一类问题进行介绍:图匹配

Multi-Graph Matching via Affinity Optimization with Graduated Consistency Regularization[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 38(6): 1228–1242.

图匹配就是:不仅考虑点之间的配准,还考虑边之间的配准 registration 。

Node-wise linear assignment problem

如上,匹配两个图,一个图有5个点,一个由4个点,我们要做的就是求解出一个5×4的0-1矩阵(组合优化问题),得到点与点间的匹配关系。

我的理解:

  • X X X 的维度是 5 × 4 5\times 4 5×4
  • 1 的 维 度 是 5 × 1 \mathbb{1}的维度是 5\times 1 15×1 4 × 1 4\times 1 4×1
  • 由此, X 1 ≤ 1 X\mathbb{1}\le \mathbb{1} X11 X T 1 ≤ 1 X^T \mathbb{1}\le \mathbb{1} XT11 就可以保证 X X X 的行和列之和都小于1

一个很直接的求解方法是:计算点与点之间的相似度,构造Kp矩阵,然后求解这个规划模型。

Edge-wise graph matching

这个问题的难点在于,我们不仅仅要考虑点与点之间的相似性,还要考虑边与边之间的相似性。

可以看到边的数量明显上升。

如上,我们将点与边作为优化目标,加起来。

我们可以对点和边的关系进行编码,压缩成一个矩阵:affinity matrix 。

如上,对于5点对4点的情况,我们需要5乘4等于20规模的方阵,这样就可以两两编码(1a、1b、…、5d,共20个)。如上,3b行与5c列的交点意味着:3和5连成的边与b和c连成的边的相似度。但是这样K矩阵比较稀疏。

有了这个矩阵,我们将其转换为QAP。

Quadratic Assignment Problem

如上,转化为一个二次问题。注意到,vec 是向量化的意思,就是把 X 5 × 4 X_{5\times 4} X5×4 转化为 X 20 × 1 X_{20 \times 1} X20×1

这是一个 NP-hard 问题。

所以该如何求解呢?

Spectral Approximation

如上,松弛是一个好办法。求解快,但是得到的解很松弛。

Double-stochastic Approximation

此外,还可以考虑 将X变为连续变量的方式,这样的解可能更紧凑一些。

Beyond: Higher-order models

可否考虑一些高阶信息呢?

如上,在CV领域,3阶代表相似变换的不变性,4阶代表仿射变换的不变性。因此,是否可以将 graph 变为超图(提高阶数)?

但是,这不可行,维度爆炸。

Factorized model

如上,可以考虑进行分解。

如上,可以把大矩阵拆成小矩阵。

总结一下,在机器学习以前,有两个思路解决这个问题:

  • 不分解,直接做
  • 分解开,然后迭代

然而,在实际问题中,不仅仅是两张图的匹配,我们需要提取信息,并且能做到,多张图协同匹配。

Composition based Affinity Optimization

如上,有一种思想是,如果G1和G2匹配很难,是否可以通过G3作为中介(比如儿子于父母),分别与G1和G2匹配?

Recall over fitting in machine learning

算相似度只是用简单的高斯模型,并且,相似度基于直接从图形提取特征,而图形本身就可能存在噪声。

如上,我们不希望得到红线(一味地最求相似度),而是希望使用类似“正则”的思想,得到鲁棒的结果。

Cycle consistency as regularizer

在多图中,我们提出 consistency 的概念,注意,对于i和j,我们引入第三者第四者等等,用于计算 consistency ,这个值越高越接近1,则匹配效果越好。

于是,我们的目标函数就有了两部分:affinity score 和 consistency 。开始时,consistency 的权重不高,因为匹配效果不怎么样时,计算 consistency 也没用。

我们上述操作(类似正则的思想),都是在目标函数设计有缺陷的假设下的。还可用考虑用机器学习改善目标函数的建模。

Background: Learning on Graph Matching

Matching Score

基本思想:每对边、每队点权重都是相等的,都是1,接下来可以调整这些权重,以此区分重要和不重要的边对、点对。

我们优化的目标就是这些权值,如下图。

Learning Matching Function

如上,Π是对应关系,我们学的是ω。

Learning Graph Structure

于是,这就成为了一个结构化的机器学习问题。

如上图,我们最终学出的,是节点、边的权重。越大、越深,代表权重越大。

Learning Matching Features: Deep Learning of Graph Matching

能否用深度学习拥抱匹配任务?(这篇文章首发)

CNN与谱方法SM提取特征,之后对比一下,然后得到 loss 。但是,问题:SM本身不是做GM的solver,因此只能得出近似解;损失函数有缺陷,仅仅在计算两个对应点在空间中的距离(并不解决我们的匹配需求,匹配不再离得远不远,只在乎有没有配对准)。

Spectral Matching (SM)

简单介绍一下 SM 。

对于两个 Graph ,可以建立 Association Graph ,有一个据类,如图中加粗的线,是可行的匹配,则找到了一个可行解。好处是可以使梯度回传。

Embedding approach for Deep Graph Matching

于是主讲老师团队想着改进。

Learning Combinatorial Embedding Networks for Deep Graph Matching

如上,基础的PIA架构中(对前文工作的改进),使用了匈牙利算法的可求导版本 Sinkhorn 。此外,设计了一个 loss ,实际上就是一个交叉熵。

intra-GNN

交替地对每个点进行更新。“实际上就是GNN”。

对图做完嵌入后,把边信息都压缩到节点上,因此变为了一个只有点的问题,是一个 指派问题

Distance Metric

给定两个嵌入的结果 x i , x j x_i , x_j xi,xj,怎么算相似性?

s ( x i , x j ) = exp ⁡ ( x i T A x j ) s(x_i ,x_j )=\exp{(x_i^T \mathbf{A} x_j)} s(xi,xj)=exp(xiTAxj)

A \mathbf{A} A 是可学习的权重矩阵。exp保证非负。

Sinkhorn Algorithm

OK,现在有了距离的计算方法,构造非负距离矩阵。那怎么得到最后的匹配结果呢?做交替的 Row-Norm 和 Col-Norm ,直到行和列都是和为 1 为止(收敛到双随机矩阵)。这个过程就是 Sinkhorn Algorithm 。

Permutation Loss

因此,我们现在有了一个可以视为“类别概率”的矩阵,可以进行交叉熵计算。

此外,还有一些改进,如上:

  • 第 2 个架构 PCA-GM 用了 Cross-graph GNN ,为了更好协同地对两个图进行 embedding
  • 第 3 个架构 IPCA-GM 让迭代 iteratively ,强化了一下效果

效果很好。

Neural Graph Matching Network: Learning Lawler’s Quadratic Assignment Problem with Extension to Hypergraph and Multiple-graph Matching

如上,主要贡献有:

  • 针对QAP做了端对端的机器学习
  • 扩展到了 hyper-graph matching
  • 扩展到了 multi-graph matching

什么是 Lawler’s QAP 呢?就是针对提取后的特征矩阵直接处理,不设计从生图提取特征的过程(没有什么感知层面、CNN层面科学的)。思想:直接在association graph 上做 embedding ,而不是两个图各自做 embedding 。

此外,针对多图,如上图架构图右侧,将两两匹配的结果拼到一起,构成一个大矩阵 joint matching matrix 。

QAPLIB Benchmark

可以看到,在 QAPLIB 做一些实例时,会有超过 baseline 的解(蓝线越低越好,有蓝线突破了虚线)。

Other techniques

如果一个图像里同时出现两个物体,如何以图匹配的方式分出来?

如果用 cut ,如上图,将导致中间一样两只天鹅头被放到一起。

近日,DeepMind 和谷歌联合进行了一项研究,该研究提出了一种执行相似性学习的新型强大模型——匹配网络(GMN),性能优于 GNN 和 GCN 模型。该论文已被 ICML 2019 接收。 DeepMind 和谷歌的这项新研究聚焦检索和匹配结构对象这一极具挑战性的问题,做出了两个重要贡献。 首先,研究者展示了如何训练神经网络(GNN),使之生成可在向量空间中执行高效相似性推理的嵌入。其次,研究者提出了新型匹配网络模型(GMN),该模型以一对作为输入,通过基于跨注意力的新型匹配机制进行联合推理,从而计算它们之间的相似性分数。 研究者证明 GMN 模型在不同领域中的有效性,包括极具挑战性的基于控制流的函数相似性搜索问题,这个问题在检索软件系统的漏洞中起着非常重要的作用。实验分析表明 GMN 模型不止能在相似性学习的环境下利用结构,还能超越针对这些问题手动精心设计的特定领域基线系统。研究主题:相似性学习问题 是编码关系结构的自然表征,常常出现在多个领域中。根据结构数据定义的计算可以用在各种领域中,从计算生物学和化学的分子分析到自然语言理解中知识结构解析的分析都可以。 近几年来,神经网络(Graph Neural Network,GNN)已经成为可以有效学习结构数据表征、解决各种基于的监督预测问题的模型了。这样的模型在迭代聚合局部结构信息的传播过程中设计并计算节点表征,从而对元素的排列(permutation)具有不变性。然后直接将这些节点表征用于节点分类,或者将它们合并到用于分类的向量中。而 GNN 在监督分类或回归以外的问题的相关研究相对较少。 DeepMind 的这篇论文研究的是结构对象的相似性学习问题,这个问题在现实生活中有很多重要的应用,尤其是在数据库中基于相似性的搜索。还有一个应用是涉及计算机安全的二元函数相似性搜索,给定的二元函数可能包含有已知漏洞的代码,我们要检查这个二元函数中是否有和已知易受攻击的函数相似的控制流(control-flow-graph)。这有助于识别闭源软件中易受攻击的静态连结函式库,这是一个很常见的问题 (CVE, 2010; 2018),现在还没有很好的解决方法。 1 展示了一个例子,在这个例子中用汇编语言注释的控制流来表示二元函数。这种相似性学习问题极具挑战性,因为就算是之间细微的差别也会造成语义上极大的不同,但结构不同的语义上可能非常相似。因此,对这个问题而言,一个成功的模型应该(1)利用结构;(2)能从的结构和学习到的语义中推导出的相似性。 1:二元函数相似性学习问题。检查两个是否相似需要推理的结构和语义。左边两个控制流对应使用不同编译器编译的相同函数(因此二者比较相似),但右侧对应的是不同函数。 解决方案 为了解决相似性学习问题,该论文研究了 GNN 在这种情况中的使用,探讨了如何用 GNN 将嵌入到向量空间,并学习这种嵌入模型,从而使向量空间中相似的靠近、不相似的分开。这个模型的一个重要特性是它可以将每一个独立地映射到一个嵌入向量,然后在向量空间中执行相似性计算。因此,可以预先计算并索引大型数据库中的嵌入,这样就能用快速的最近邻搜索数据结构(如 k-d 树) 或局部敏感哈希算法 (Gionis et al., 1999) 执行高效的检索。 研究者进一步扩展 GNN,提出新型匹配网络(Graph Matching Networks,GMN)来执行相似性学习。GMN 没有单独计算每个表征,它通过跨注意力机制计算相似性分数,来关联之间的节点并识别差异。该模型依赖成对计算表征,因此它比嵌入模型更强大,并在准确率和计算之间做出了很好的权衡。 研究者在三个任务上评估了 GMN 和基线模型:仅捕获结构相似性的合成编辑距离学习任务(synthetic graph edit-distance learning tas),以及两个现实世界任务——二元函数相似性搜索和网格检索,这两项任务都需要推理结构相似性和语义相似性。在所有任务中,GMN 都比基线和结构不可知(structure agnostic)模型的性能更好。在更详细的模型简化测试中,研究者发现 GMN 始终优于嵌入模型和 Siamese 网络。 该研究的贡献如下: 展示了如何用 GNN 产生用于相似性学习的嵌入; 提出了新型匹配网络(GMN),该网络基于跨注意力匹配来计算相似性; 实验证明,该研究提出的相似性学习模型 GMN 在多个应用中都有良好的表现,比结构不可知模型和现有的手动建立的基线模型都要好。 深度相似性学习 给定两个 G1 = (V1, E1) 和 G2 = (V2, E2),我们需要一个可以计算两之间相似性分数 s(G1, G2) 的模型。每个 G = (V, E) 被表示为节点 V 和边 E 的集合,每个节点 i∈V 都可以和特征向量 x_i 相关联,每条边 (i, j) ∈ E 都可以和特征向量 x_ij 关联起来。这些特征可以表示节点类型、边的方向等。如果一个节点或者一条边不能关联任何特征,那么我们可以将对应向量设置成值为 1 的常量。研究者提出了两个相似性学习模型:一个是基于标准 GNN 的学习嵌入的模型;另一个是更为崭新也更加强大的 GMN。 2 展示了这两个模型:嵌入模型 嵌入模型可以将每一个都嵌入到向量中,然后用向量空间中的相似性矩阵衡量之间的相似性。GNN 嵌入模型包括三个部分:编码器、传播层和聚合器。 匹配网络 匹配网络以一对作为输入,计算它们之间的相似性分数。和嵌入模型相比,匹配模型联合成对计算相似性分数,而不是先将每个独立地映射到向量上。因此,匹配模型可能比嵌入模型更加强大,但它需要额外的计算效率。 匹配网络改变了每个传播层中的节点更新模块,这样不仅可以考虑到每个的边上的聚合信息,还可以考虑到衡量一个中的一个节点和其他中的一或多个节点匹配近日,DeepMind 和谷歌联合进行了一项研究,该研究提出了一种执行相似性学习的新型强大模型——匹配网络(GMN),性能优于 GNN 和 GCN 模型。该论文已被 ICML 2019 接收。 程度的跨匹配向量:以调整的表征,在它们不匹配时放大它们之间的差异。 实验 研究者在三个任务上评估了相似性学习(Graph Similarity Learning,GSL)框架、嵌入模型(GNN)以及匹配网络(GMN)的性能,并将这些模型与其他方法进行了对比。总体上,实验结果表明在相似性学习任务上,GMN 表现优异,而且始终优于其他方法。 学习编辑距离(GED) G1 和 G2 之间的编辑距离即将 G1 变换为 G2 所需的最小编辑操作。通常这些编辑操作包括添加/移除/替换节点和边。编辑距离是衡量之间相似性的自然指标,在相似性搜索中有很多应用。 从下表 1 中可以看出,通过学习特定分布的,GSL 模型的性能优于一般的基线模型,而 GMN 的性能持续优于嵌入模型(GNN)。基于控制流的二元函数相似性搜索 二元函数相似性搜索是计算机安全领域中的重要问题。当我们无法获取源代码时,可以通过二元函数执行分析和搜索,例如在处理商业或嵌入式软件或可疑的可执行程序时。 下 4 展示了具备不同传播步和不同数据设置的不同模型在二元函数相似性搜索任务上的性能。从中,我们可以看到: 嵌入模型和匹配模型的性能随着传播步的增加而持续提升; 在传播步足够的情况下,嵌入模型持续优于基线模型; 匹配模型在所有设置和传播步的情况下都优于嵌入模型。研究者检测了GMN 模型中不同组件的效果,并将 GMN 模型与卷积网络(GCN)、神经网络(GNN)和 GNN/GCN 嵌入模型的 Siamese 版本进行对比。 下表 2 展示了实验结果,表明: GNN 嵌入模型是具备竞争力的模型(比 GCN 模型强大); 使用 Siamese 网络架构基于表征学习相似性要比使用预先指定的相似性指标(Euclidean、Hamming 等)好; GMN 优于Siamese 模型,这表明在计算过程早期进行跨信息交流是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值