摘要
在自然中,互相作用的系统是非常普遍的,从物理中的动力学系统,到社会动力学系统,各组件之间的相互作用可以产生复杂的动态结果。作者描述了一种neural relational inference (NRI) 模型:一种从观察数据中学习动力过程时还能进行关系推断的无监督模型。这个模型采用一种自适应编码的形式,用潜编码表示图中的潜在关系,用GNN进行图的重建。在一个基于物理模拟系统的实验中,作者表明NRI模型能以无监督方式推理出相互作用关系。而且证明了,在复杂动作捕捉和运动追踪中,可以发现可解释的图结构并进行预测。
介绍
物理、生物、运动及其它领域的动力学系统能被看成是一组相互作用的组件,从而产生整体上的复杂动态结果。对这种动力学系统建模是困难的,因为我们只知道整体的数据,并不知道潜在相互作用或动力学过程。为此考虑一个篮球运动的例子,每个球员都会受其他球员影响,影响关系有防某个球员或掩护队友等。可以人工标注出特定的相互作用方式,但是更好的方式是以无监督方式学习潜在的相互作用方式。最近有很多使用隐式相互作用的模型来学习这种动力学系统。这种模型称为GNN,通过全连接图传播信息,用message passing来隐式的对相互作用进行建模,或者再用上注意力机制。作者在此所提出的问题是,在无监督方式下,学习动力学模型的同时推理出显式相互作用的结构。NRI使用GNN在潜在离散图上进行学习,并在潜在变量上进行推断。推断的边的类型对应一族相互作用,使用概率模型允许我们引入稀疏性等图结构的先验信息。
GNN背景
GNN及变体能高效的执行关系推断、相互作用的关系建模、多代理系统、图分类、节点分类等任务。给定一个图 G=(V,E) G = ( V , E ) ,节点 v∈V v ∈ V ,边 e=(v,v′)∈E e = ( v , v ′ ) ∈ E ,先定义GNN中一个点对点操作:
hli h i l 是 l l 层节点 的嵌入, hl(i,j) h ( i , j ) l 是边 e(i,j) e ( i , j ) 的嵌入, xi x i 和 x(i,j) x ( i , j ) 是节点和边的原始特征。 Nj N j 记为入边对应的指标集, [⋅,⋅] [ ⋅ , ⋅ ] 记为向量串联符号。 fv f v 和 fe f e 是产生节点和边的neural网络。将 fv f v 和 fe f e 以多层message passing的方式组合起来,每层执行从边到节点的映射,或从节点到边的映射。在原始GNN中,节点嵌入 hli h i l 只取决于 hl(i,j) h ( i , j ) l ,发射节点嵌入,以及边属性,但不包括接收节点嵌入。最近有的工作里面将 fle(⋅) f e l ( ⋅ ) 分成两个独立的部分,其中一个有注意力机制的作用,在有的时候会引入良好的归纳偏置。
NRI模型
我们的NRI模型有两个共同训练的部分组成:编码器在给定动力系统的历史数据后预测相互作用,以及一个解码器在给定相互作用的图结构后学习动力系统的模型。输入由 N N 个节点组成,在
时刻将节点 vi v i 的特征向量记为 xti x i t ,所有 N N 个节点的特征集记为
, xi=(x1i,…,xTi) x i = ( x i 1 , … , x i T ) 记为节点 i i 的历史轨迹,最后所有历史轨迹数据记为
。作者假设,GNN能够在不知道 z(其中zij代表vi和vj之间的边的离散属性值) z ( 其 中 z i j 代 表 v i 和 v j 之 间 的 边 的 离 散 属 性 值 ) 。这里的任务是,以无监督的方式,在学习动力系统建模的同时预测边的属性值。
这个模型表述为变分自编码器(VAE)的形式:
编码器
编码器的目标是根据时序数据 x=(x1,…,xT) x = ( x 1 , … , x T ) ,推断出 zij z i j ,其中 zij z i j 代表 vi v i 和 vj v j 之间的相互作用的关系类型。由于不知道潜在的图结构,所以使用一个全连接的GNN预测潜在图结构。编码器表示为 qϕ(zij|x)=softmax(fenc,ϕ(x)ij,1:K) q ϕ ( z i j | x ) = s o f t m a x ( f e n c , ϕ ( x ) i j , 1 : K ) ,其中 fenc,ϕ(x) f e n c , ϕ ( x ) 全连接的无环图。给定数据 x1,…,xK x 1 , … , x K 后,编码器计算message passing操作:
最后,边的属性值的后验为 qϕ(zij|x)=softmax(h(i,j)) q ϕ ( z i j | x ) = s o f t m a x ( h ( i , j ) ) ,其中 ϕ ϕ 记为neural网络的参数。这样多个message passing的方式可以解决多重相互作用的问题,在单步passing时边的嵌入 h1(i,j) h ( i , j ) 1 只取决于 xi x i 和 xj x j 之间的相互作用,而到了 h2j h j 2 就开始利用到了整个图的信息。这里的 f(…) f ( … ) 可以是全连接网络(MLP)或一维卷积网络(CNN)。这里有一点和原来的GNN是不同的, hl(i,j) h ( i , j ) l 不再只是计算过程中的一部分,而是作为一个整体代表边的分类属性的一种嵌入。
采样
从 qϕ(zij|x) q ϕ ( z i j | x ) 采样是简单的,但是由于潜在变量是离散的,所以不能用重参数技巧,从而在采样之后执行反向传播方法。最近解决这种问题的流行方法是在一个近似离散分布的连续分布上采样,使用重参数技巧获取有偏梯度。
以上就是这个分布,其中 g∈RK g ∈ R K 是一个来自于分布 Gumbel(0,1) G u m b e l ( 0 , 1 ) 的独立同分布向量, τ τ 则代表采样的平滑程度, τ→0 τ → 0 时分布趋于 one−hot o n e − h o t 形式。
解码器
解码器的任务是预测动力系统的下一步演化结果 pθ(xt+1|xt,…,x1,z) p θ ( x t + 1 | x t , … , x 1 , z ) ,由于解码器取决于图结构 z z ,所以自然可以用GNN模型作为解码器。只取决于位置和速度的物理动力系统是马尔科夫过程的
。为此需要使用类似于interaction networks的GNN,不过与之不同的是,这里使用单独的neural网络对每个边的类型属性进行处理。
其中 zij,k z i j , k 是向量 zij z i j 的第 k k 个元素, 是固定方差。 zij,k z i j , k 是离散 one−hot o n e − h o t 形式, h~t(i,j) h ~ ( i , j ) t 是 f~ke([xti,xtj]) f ~ e k ( [ x i t , x j t ] ) 加权求和的结果。
非退化解码器
式 (3) ( 3 ) 中重建损失项 ∑Tt=1log[p(xt|xt−1,z)] ∑ t = 1 T l o g [ p ( x t | x t − 1 , z ) ] 只涉及单步预测,而短期内,相互作用的动力系统会产生一个小的影响,这对优化来说是一个问题。例如对于物理仿真来说,就可以假设短时间内速度固定,所以忽略潜变量 z z 会导致重建效果有点差。
作者为此提出两种方法解决这个问题:首先,执行多重时间步预测,直到“退化”解码器效果很差;其次,原始模型中只用一个输入为
neural网络计算结果,而作者在这里使用单独的MLP网络处理每条边。这样就使模型不再忽略潜在的边属性。
执行多重时间步预测时,用均值 μt μ t 代替 xt x t 输入并循环重复执行 M M 个时间步,一般为
。
在整个过程上执行反向传播, M M 步的误差累计会导致结果是次优的。
循环解码器
在许多时候马尔科夫假设并不满足,为此需要用循环解码器建模
,解码器中添加一个GRU单元。
其中 fout f o u t 记为输出变换,由MLP组成。
训练
给定样本 x x 之后,先运行编码器,计算
,然后在经过重参数化后的 qϕ(zij|x) q ϕ ( z i j | x ) 中采样 zij z i j 。再运行解码器,计算 μ2,…,μT μ 2 , … , μ T 。式 (3) ( 3 ) 有两项:重构误差和KL散度。重构误差的估计是:
KL散度为:
物理仿真实验
实验是基于三种系统仿真:吸引的粒子,带电粒子,姿态振荡器。这种实验配置使我们可以在相互作用关系已知的情况下,试图学习到动力系统的动态过程,这些由简单规则控制的系统,能呈现复杂动态。为此产生了5万个训练样本,1万个验证测试样本。
论文地址