wengyuyuan

Results 3 comments of wengyuyuan

> > 在您的实现中当结点是word时,传入的向量为[0,0,0,0,0,0,0,0] > > 不知道这边你具体指的是什么?传入向量具体是指node节点的哪一个feature? > > 不过我在检查相关代码的时候,确实发现实现上有一些遗漏。在WSGATLayer有一个edge_attention函数,针对edges.src['z'], edges.dst['z']进行attention weight的计算,但是在apply_edges之前只对其中一种类型(word)的z进行赋值。 > > https://github.com/dqwang122/HeterSumGraph/blob/d338dbedd6ccbb7e6a072c8c5171479b79a9b36d/module/GATLayer.py#L111 > > 实际上由于edges是连接word和sent的,因此src和dst必然有一个z是默认赋值的(也就可能是你提到的默认0的向量赋值)。因此这里其实没有很好的用到两端的信息。这个问题影响WSGATLayer和WSGATLayer,对两端节点类型相同的SGATLayer没有影响。 > > 因为代码涉及到checkpoint的更改,因此对于此问题的修复我放在dev分支中,并且会在readme中注明。感谢你的提醒~ 感谢您的回复,对于您的修复还有一点困惑,word结点和sent结点向量的维度并不相同,似乎无法在GAT计算中通过同一个映射函数,不知是否是我漏掉了您将他们word结点和sent结点处理为同一个维度的步骤了

> > word结点和sent结点向量的维度并不相同,似乎无法在GAT计算中通过同一个映射函数 > > 我猜你指的是不是这个: > > https://github.com/dqwang122/HeterSumGraph/blob/4bf23141c79794383dfa01d558244a4c868763b2/HiGraph.py#L96 > > 在HSG和HDSG里面分别存在n_feature_proj和dn_feature_proj函数将节点维度映射到同一纬度 我的疑惑是word和sent结点的维度似乎不相同,word的维度是300,sent的维度是64,,在HSG和HDSG里面分别存在n_feature_proj和dn_feature_proj函数将sent节点维度映射到64,这使得word和sent结点的维度不同,想问您的解决方案是把修改n_feature_proj和dn_feature_proj函数将sent节点映射到300吗,和word节点维度一致

> 可是,在您的dev中WSGATLayer更新函数中,为了用边两端的信息进行更新,您把word结点和sent结点都经过同一个映射函数self.fc,这不就需要word结点和sent结点具有相同的维度吗 g.nodes[wnode_id].data['z'] = self.fc(srch) g.nodes[snode_id].data['z'] = self.fc(dsth) 我尝试过将word节点和sent节点映射为具有同一维度(300维或64维),效果有些降低。