论文笔记之Structural Deep Network Embedding

来源:互联网 发布:女野人耶哥蕊特 知乎 编辑:程序博客网 时间:2024/06/05 09:38

本论文是kdd2016的一篇论文

主要的目的也是做node embedding。

主要的想法就是通过deep autoencode对node进行embedding,不过在在embedding的时候不仅考虑了1-hop的信息而且考虑了n-hop的信息。使其变成半监督学习的模式(其实就是对loss function改了改)

输入是一个graph的n*n的邻接矩阵S,其实可以看成有n个数据的训练集,每个数据的feature个数是n,即与图上各点的连接情况

框架如下:

这里写图片描述

垂直看是正常的deep autoencode(没有稀疏项),水平看,在每个smaple(node)的最后一个encoding层,还加上了和其他smaple(node)的约束关系,其实就是邻接关系的约束。


具体看Loss function:

这里写图片描述
这里写图片描述
这里写图片描述

Lmix为最后的loss function。

L2nd是在正常的算loss的平方差的基础上点乘了一个B,

这里写图片描述

其实就是放大了原本邻接的那一项的loss,为了使loss越小,bp后,邻接项就会更有邻接的趋势。

L1st就是在最后一个encoding层,增加了与其他node的邻接信息,这样做的结果就是,在训练时为了使loss变小,那么bp后,yi-yj更加趋于0,也是就是说邻接项会更加的邻接。这就是所谓的监督学习,并且这里就体现了1-hop的信息;而原本的deep autoencode,是无监督学习,并且体现的是 n-hop的信息。因此结合起来就是半监督学习的,考虑1-hop和n-hop信息的一个structure。

Lreg就是L2正则。


训练时,每次跑完n个node,然后计算loss和梯度,依次BP更新权重即可。

0 0
原创粉丝点击