yao8839836 / text_gcn

Graph Convolutional Networks for Text Classification. AAAI 2019
1.35k stars 434 forks source link

什么edge weight比较好一些? #80

Open daiyongya opened 4 years ago

daiyongya commented 4 years ago

我看了您在其他issue里面的回答,计算edge weight采用了tf-idf,相比于idf效果更好一些。我看您代码里面有cosine来测量,最终没有采用。所以请教下:

  1. 您总共试了几种weight,性能差距如何,哪个更好一些?
  2. 您计算cosine的时候,计算公式是1-cosine(a,b),按照直觉,cosine距离越小,a,b的embedding应该越接近?跟着这个疑惑看了overstack里面有人回答说是来自于欧式距离的推导,您的距离公式是来自于欧式距离推导吗?有相关文献吗?如果欧式距离是cosine越大越接近,而直觉是cosine越小越好,是不是冲突了?
yao8839836 commented 4 years ago

@daiyongya

  1. 对于doc-word边我试了TF,TFIDF,TFIDF明显好于TF,ohsumed数据集高三个点左右。对于word-word边我试了共生次数,PMI,词向量(Glove)余弦相似度,PMI乘以词向量余弦相似度, 发现单独用PMI最好。

  2. 我在build_graph.py用的cosine 的来源是:https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cosine.html 这里是距离而不是相似度,相似度应该是1-cosine(a,b)

daiyongya commented 4 years ago

@yao8839836 谢谢你的回复。再请教一下,我看你做vocab的时候,没有进行stem,lemma之类的操作,直接把raw word当作vocab的单词了,然后你文章没有采用embedding,因为效果不如one hot好,会不会是因为,当你加载word embedding的时候,太多词语没有进行标准化,找不到相关的embedding然后degrade its performance了

yao8839836 commented 4 years ago

@daiyongya

在remove_words.py里做了简单的预处理,大多数词是能找到Glove中的向量的。