代码及论文github传送门
本文中出现的错误欢迎大家指出,在这里提前感谢w
这篇文章先锤了一下基于random walk
的图结构上的非监督学习算法,指出了random walk
算法的两个致命缺点。
1.以图的结构信息为代价,过分强调点之间的临近信息。(random walk
算法的假设:相邻的节点更有可能具有相同的label)
2.模型效果过多依赖超参的选择,即改变超参,模型的效果会急剧下降。
后面这篇文章介绍了自己的非监督学习是基于mutual information
的,关于mutual information这里有一篇很好的博客介绍它的含义,这对我们接下来论文的理解也有帮助。
我靠我终于搞明白为什么paper里面一直在讲一个二分类问题,而它跑的实验却是一个多分类问题了,这个问题是我看了它的源码才知道的。
这里面是两个不同的模型,在一开始的二分类使用的是交叉熵loss,目的是训练出来前面的GCN采样层的效果,让这个GCN层能够有效地提取图结构的信息。这里的二分类是指图中原有的点(正样本)和作者自己构造了一个假图的点(负样本)。
训练完第一个模型后,下一个模型名字叫LogReg
。它本质就是一个全连接层,使用xavier的方法进行全连接层的初始化。是将GCN层中提取出的特征描述(h_i)直接输入到全连接层,然后分为nb_classes类,做一个有监督的训练,训练这一层全连接层。在第二个模型中,前面的readout function和discriminator都没有用了!
那么为什么说这个方法是一个无监督的方法呢?因为在第一个模型,represntation提取过程中,作者是自己构造的正样本和负样本训特征提取器的(也就是GCN)。这个过程是一个无监督的过程,至于后面全连接层的训练,并不是本文的重点,只是为了让提取的patch represetation发挥它的效果。
根据后面给的效果图来看,这个方法的F1-score逼近或超过有监督学习的F1-score了,但是为什么基于这种方法可以获得较好的效果,我还是没有一个直观的理解。
剩余东西,近几天更新