总说
作为从来没有接触过序列预测的我来说,看到这个是有点难度哈。然而经过我钻研了几天,终于基本看明白。太有意思了!!!!!!!!!!!!!
论文主要是,根据已有的数据,显示地估计出内在的离散的graph结构,用graph结构作为引导,更好的进行序列预测,而且全程是无监督的方式,来获得graph。
其实普通的预测序列的模型,比如LSTM之类的也可以预测,这种方法是隐式学习graph的方法。
论文框架
关注问题:
- 已知多组节点的轨迹,预测未来的节点轨迹以及节点的连边,所有的轨迹遵循相同的动力学。
- 节点和连边之间有不同的种类(比如,有大小不一的小球,小球和小球之间连接着不同种类的弹簧)。
简单来说,采用VAE框架,前面encoder出latent graph的采样,然后decoder利用这个latent graph以及 x 1 , ⋯ , x t x_1, \cdots, x^t x1,⋯,xt来获取 Δ x t , ⋯ \Delta x^t,\cdots Δxt,⋯。decoder不是直接预测 x t + 1 x^{t+1} xt+1。就是利用了残差。
目标函数
前者就是重建损失,VAE是 x x x通过压缩,得到 latent variable q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x),然后我们根据这个压缩的信息 z z z,重建出 x x x。也就是,似然函数loss E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] \mathbb{E}_{q_{\phi}(z|x)}[\log p_{\theta}(x|z)] Eqϕ(z∣x)[logpθ(x∣z)]。后者是希望latent variable尽量符合先验分布。一般来说,对于自然图像之类的,一般可认为其符合高斯分布,即 p θ ( z ) p_{\theta}(z) pθ(z)符合高斯分布。KL损失会让我们encoder预测的分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)尽量往先验分布拉。
重建损失
因为VAE里面都是概率分布的loss,重建损失也是似然函数loss,根据概率分布的角度,ground-truth x t x^t x