jasperzhong / read-papers-and-code

My paper/code reading notes in Chinese
43 stars 3 forks source link

ESWC '18 | Modeling Relational Data with Graph Convolutional Networks #339

Closed jasperzhong closed 1 year ago

jasperzhong commented 1 year ago

https://arxiv.org/abs/1703.06103

jasperzhong commented 1 year ago

核心公式是这个:

image

对于每个node i,分不同relation,分别汇聚,然后把所有relation的embedding加权加起来,最后再加上自己的embedding (和 #128 GCN一样).

实现的时候直接转成homogeneous graph就行了. 如果要采样,就直接是dgl.dataloading.MultiLayerNeighborSampler就行了,参考这个实现 https://github.com/dmlc/dgl/blob/master/examples/pytorch/rgcn/entity_sample.py

jasperzhong commented 11 months ago

而如果relation数量很多,W_r也越来越多,会参数爆炸的. 注意每个W_r都是一个d_in x d_out的matrix,跟relation大小没有关系. 论文提到了两种regularization方法,将W_r分解:

  1. basis-decomposition:

$$Wr^{(l)} = \sum{b=1}^{B} a_{rb}^{(l)}V_b^{(l)}$$

其中$V_b$都是Wr的shape,$a{rb}$是depend on r要学习的参数,所以可以看作是linear combination of basis. 这相当于是shared weights.

  1. block-diagonal-decomposition: W_r block-diagonal matrics,变得sparse了.