GraphSAGE(17 -NIPS)

    技术2022-07-11  142

    GraphSAGE

    摘要方法前向传播算法参数调整—— 自监督邻域选择 聚集函数mean aggregatorLSTMPooling 结果实验设定Citation 、Teddit、PPI 三个数据集

    代码: http://snap.stanford.edu/graphsage/

    摘要

    文章解决的是GNN的存在的不能很好地进行归纳学习的问题,大多数只是进行的直推学习,所以文章不是只对每个节点进行单独学习,而是考虑的局部节点的邻域信息。

    方法

    前向传播算法

    进行K次汇集,每次汇集使用不同的信息汇集参数和节点更新函数,共k个aggregate,以及K组要调的参数 W 1 , W 2 , . . . W K W^1,W^2,...W^K W1,W2,...WK。整个过程如下面所示,第一个循环为聚集K轮,第二个循环为对每个节点信息信息更新 第一跳选3个,第二跳5个

    参数调整—— 自监督

    使用随机梯度下降,对K组参数进行更新 基于图的损失函数鼓励附近的节点有相似的表示,同时迫使不同节点(也就是正负样本)的表示不同: 其中v是在定长随机游走中同时出现在u附近的节点, P n P_n Pn是一个负采样分布,Q定义了负样本的数量。

    邻域选择

    这里为了减少计算量,只随机采样固定数量的邻接点,而不是使用当前节点的所有邻域。而且对于每一次传播 k ( 0 < k < K ) k(0<k<K) k(0<k<K),都是随机取样的。

    聚集函数

    为了使得结果与节点排列的顺序无关,这里提出了4种的聚集函数

    mean aggregator

    也就是将当前信息和邻居信息一起做个平均,求和是交换,加法交换律

    LSTM

    LSTM具有比较强大的序列表达能力,但是其不是跟节点排列无关的,所以这里只是每次聚合的时候对节点顺序进行随机排列。 邻接特征 { x 1 . . . x k } \{x_1...x_k\} {x1...xk}作为LSTM输入。

    Pooling

    为了可以训练和对称性(结果与排列无关),我们使用了全连接层对邻接节点特征进行处理,然后通过最大池化产生聚合后的信息表示。 这里还说明了使用max pooling跟mean pooling具有差不多的效果,但是max 更加的高效,所以选择max 作为后面的pooling实验。

    结果

    实验设定

    K=2 ,也就是跑两轮,两层GNN ,第一层选择25个邻接节点 S 1 = 25 S_1=25 S1=25,第二层选择10个连接节点 S 2 = 10 S_2=10 S2=10

    Citation 、Teddit、PPI 三个数据集

    Processed: 0.010, SQL: 10