Closed 1eclipse closed 4 years ago
您好 @1eclipse
是用在图表示上的,这里的图表示为各节点的加权平均,所以注意力的计算是对应节点的。
您好,感谢您的回答,但是我还是不太明白。论文中的公式6中sigmoid函数引用了注意力机制,hv是指引入注意力机制后得到的单词表示嘛?如果是这样的话,那我认为是注意力机制学习的单词表示,最后再采用最大池化和平均池化结合的方式学习得到图表示。谢谢~
@1eclipse
是的,公式6是中间步骤,表示加权后的单词。其实就是分开两步来写,可以参考 https://arxiv.org/pdf/1511.05493.pdf 第3.3节。
嗯谢谢您。我还有一个问题,在可视化的时候test_doc_embeddings存放的是所有测试集文档的嵌入,它的shape有三个维度,第一个是batchsize,最后一个是隐藏层大小(也就是文本嵌入维度),但是我不太理解第二个维度代表什么?按照这个代码,最后每一个文档的嵌入表示是这样的(?,96),但是实际上应该就是(96)吧?希望您能解答一下,十分感谢!
# For visualization print(test_doc_embeddings.shape) doc_vectors = [] for i in range(len(test_doc_embeddings)): doc_vector = test_doc_embeddings[i] doc_vector_str = ' '.join([str(x) for x in doc_vector]) doc_vectors.append(str(np.argmax(test_y[i])) + ' ' + doc_vector_str)
我知道了,可视化的话我可能还需要改一下代码,感谢您抽时间回答!
目前产生的是含所有节点的embedding,第二维相当于节点数目。如果用于可视化(或使用整个图的embedding),可以再通过一层ReadoutLayer,去掉最后的MLP即可。
恩恩我明白了,谢谢
您好,问一下论文中提到的注意力机制说的是用在图表示上,但是看论文中的公式(6)似乎仍然是在学习节点表示。是我哪里弄错了嘛?希望您能解答。