GCN的Benchmark数据集溯源

前言

GNN领域最经典的论文之一是Kipf同学2016年发布的GCN。

经典的GCN做了四个数据集的实验,后续工作基本会在这4个数据集上也做一次。

但是由于年代久远,和一些历史问题,

后来者想做对比实验难免遇到一些“从哪里获取"与"是这个东西吗”之类的困惑。

本文记录一些现在还能找到的基本事实供后续入坑的初学者参考。

主要厘清几个数据集的存在形式与变迁。

一、4个基本数据集

Cora, Citeseer, Pubmed, Nell。

Nell数据集比较简单,下面给出链接。

http://www.cs.cmu.edu/~zhiliny/data/nell_data.tar.gz
记住这个zhilin y.

我们重点关注前三个。

1.1 御三家的作者是谁

Cora, Citeseer与Pubmed,并称御三家,

在GCN论文中号称御三家来自这篇Sen先生2008年的工作。

Prithviraj Sen, Galileo Namata, Mustafa Bilgic, Lise Getoor, Brian Galligher, and Tina Eliassi-Rad.Collective classification in network data. AI magazine, 29(3):93, 2008.

原文句子We report results on a 5-fold cross-validation experiment on the Cora, Citeseer and Pubmed datasets (Sen et al., 2008) using all labels.

然而我们去寻找这篇2008年的文献,可以找到他被收录于
https://www.aaai.org/ojs/index.php/aimagazine/article/view/2157
主页上还能下载到pdf。

打开pdf一看,读到这么一句。

We experimented with two real-world bibliographic data sets: Cora (McCallum et al. 2000) and CiteSeer (Giles, Bollacker, and Lawrence 1998).
在这里插入图片描述

也就是说,御三家根本不是Sen先生在2008年的工作产出。

  • Cora是M先生2000年发布的
  • CiteSeer是G先生1998年发布的。
  • 而Sen先生根本没有提到任何关于Pubmed的事情。

后来的研究学者们却在引用的时候全部一起归功给Sen先生了(引用量就是这样涨的…?)

1.2 第一个犯人

既然截止我写下本文的2020年,所有学者都犯错了,那应该总能找到第一个犯错的人,简称第一个犯人。

所有人都是从ICLR2017这篇GCN鼻祖开始引用的,鼻祖自己都错了,鼻祖的错误又来自哪里呢?

答案是这位

Zhilin Yang,.etc, Revisiting Semi-Supervised Learning with Graph Embeddings. ICML2016

github repo:https://github.com/kimiyoung/planetoid
就是提出XLNET那位杨植麟。

逻辑关系很容易查找,16年3月在CMU读博的Mr.Yang挂了这篇文章中了ICML2016,16年9月Kipf先生参考了他的数据处理格式写下GCN中了ICLR2017。

我们看看yang的原文

We first considered three text classification datasets5, Citeseer, Cora and Pubmed (Sen et al., 2008).
在这里插入图片描述

后世所有文章用到御三家时都是跟Yang保持一致的。
从目前掌握的证据来看,可以认为Yang是第一个犯人。

记住这个标号5的链接。

截止目前(2020.10.29),标号5的这个umd.edu链接已失效。

但不妨碍我们考察它的正确性。

容易找到,这个链接属于一个叫LINQS(Lise’s INQuisitive Students)的实验室,带头人是Professor Lise Getoor.

进而可以找到,LINQS实验室维护了一个名叫LBC(Link-Based Classification)的project,简称LBC计划。

这个计划是在Getoor教授还任教于CMU时提出来的,(所以被当时在CMU读博的yang同学用上了?)

该计划的CMU首页目前(2020.10.29)还能访问
http://www.cs.umd.edu/~sen/lbc-proj/LBC.html

从主页中能找到该计划下属的3个数据集,

  • CiteSeer: The CiteSeer dataset consists of 3312 scientific publications classified into one of six classes. The citation network consists of 4732 links. Each publication in the dataset is described by a 0/1-valued word vector indicating the absence/presence of the corresponding word from the dictionary. The dictionary consists of 3703 unique words. The README file in the dataset provides more details. Click here to download the tarball containing the dataset.
  • Cora: The Cora dataset consists of 2708 scientific publications classified into one of seven classes. The citation network consists of 5429 links. Each publication in the dataset is described by a 0/1-valued word vector indicating the absence/presence of the corresponding word from the dictionary. The dictionary consists of 1433 unique words. The README file in the dataset provides more details. Click here to download the tarball containing the dataset.
  • WebKB: The WebKB dataset consists of 877 scientific publications classified into one of five classes. The citation network consists of 1608 links. Each publication in the dataset is described by a 0/1-valued word vector indicating the absence/presence of the corresponding word from the dictionary. The dictionary consists of 1703 unique words. The README file in the dataset provides more details. Click here to download the tarball containing the dataset.

对的,如你所见,
真正的御三家应该是cora,citeseer 和 webKB,
pubmed并不配有姓名。

为什么特意提到LBC是在CMU时发布的,因为Geetor阿姨现在率领LINQS实验室集体挥师UCSC。

她现在的主页https://getoor.soe.ucsc.edu/ ,
实验室现在的主页https://linqs.soe.ucsc.edu/home

事实上这也不是第一次有人给来路不明的数据集乱套LBC的名字。

比如清华NLP的这个repo(https://github.com/thunlp/OpenNE)里,
用到了一个叫Wiki的数据集,自称来自LBC计划。

在这里插入图片描述
然后被LBC的Ph.D Candidate在issue里质疑了,也没有改正。
在这里插入图片描述

参考链接https://github.com/thunlp/OpenNE/issues/18

我们在LINQS实验室首页能找到这位Eriq同学。
在这里插入图片描述

所以我现在困惑的问题在于,Yang当时是 【使用了LBC的WebKB数据集但文章写成Pubmed,还是单纯的用了Pubmed但写错了来源】?

如果是前者无疑略可怕的事情,等于带歪了后世一连串的实验。
大家如穿皇帝的新衣,虚空与错误的数据集做对比?

想解答我的困惑,我们显然需要找出来Pubmed数据集到底是什么东西,找到它的真正来源,再跟Yang代码里提供的数据作对比,来验证他使用的确实是Pubmed。

1.3 可能被凭空捏造的Pubmed

很遗憾,经过漫长的搜寻,我以手上掌握的信息,向阅读此文的后来人沉痛宣告,
我们这些GNN科研人员口中的Pubmed数据集或许本不存在

断言:从未有任何学术机构/个人,以正规形式发布过可以与Yang对应的、名字精确匹配、字字吻合Pubmed的数据集。

其原因在于,PubMed 是一个提供生物医学方面的论文搜寻以及摘要,并且免费搜寻的数据库(百度百科)。

理解了吗? 这是一个生物医学领域的论文搜索引擎。

所以任何一个人写任何一个爬虫在任何一天去爬这个搜索引擎得到的结果,都可以自称Pubmed数据集。

一般对这种过于宽泛的东西呢,我们需要一个带头人,以他写的爬虫结果为benchmark。

这个带头人需要发一篇文章,说我今天爬了这个搜索引擎,整理了一个数据集,并提供一个access方式。

很遗憾,个人能力有限,找不到这么一篇足以自成benchmark的文章。

提供几个相近的结果供读者自行评判。

1.3.1 美国NIH发布的Annual Baseline

美国政府的健康部门(NIH,National Institution of Health)发布的 XML格式的Annual Baseline

https://www.nlm.nih.gov/databases/download/pubmed_medline.html

按照该主页的说法,每年都会更新。

The annual baseline is released in December of each year. Each day, NLM produces update files that include new, revised and deleted citations

我下载了这个数据集,包含1015个xml文件,大小2.27GB。

而Yang提供的处理后的Pubmed数据集,八个文件加起来只有8.31MB。
显然不可能是NIH这份。
在这里插入图片描述

1.3.2 Sun Kim的爬虫工作

Sun Kim同学在16年8月挂出的文章里,自己爬了一份PubMed的数据。

Bridging the Gap: Incorporating a Semantic Similarity Measure for
Effectively Mapping PubMed Queries to Documents
link :https://arxiv.org/pdf/1608.01972.pdf

前面已经说过,反正任何人去爬一下PubMed都可以自称Pubmed数据集。
在这里插入图片描述
帮助Yang获得ICML2016的文章在16年3月就挂上了arxiv,而Kim同学的文章16年8月才挂出来,时间上就不太可能成立Yang引用Kim的数据集。

其次是结点数量,Kim的描述也对不上Yang文章里提供的数据集基本描述。

Yang论文里的描述

类似Kim的还有17年的,也是自己爬。
这些时间关系上都不可能成为Yang所使用的Pubmed数据集。

https://arxiv.org/pdf/1709.02116.pdf

https://arxiv.org/pdf/1701.04273.pdf.
We select over 300,000 documents articles published between 2012 to 2015 from PubMed.

总而言之,我的结论是,
现存的唯一一份能吻合Yang与GCN论文所述的Pubmed数据集,就是Yang自己在github仓库里提供的8MB这份。
但这份数据集来路不明,除了Yang之外没有人知道怎么来的。

二、作为后人的应尽之事

Yang的文章16年所铸之错业已覆水难收。

2.1 放弃使用Pubmed

毕竟这两年GNN着实火热,监控GNN关键词的文章成百上千,不可能通知后世那么多GNN文章的作者一一订正。

有缘见到我这篇文章的GNN研究者,请记住。

首先,Pubmed不属于LBC计划。
其次,Pubmed是一个来路不明的,可以被任何人爬取产生的未定名数据集。

我们不能去订正前人,只能从现在开始,从自己开始,放弃使用Pubmed数据集做实验。

但Cora和CiteSeer还是可以使用的。

(这份倡议或者也显得多余。未来可能这些数据集也会因为太玩具而被抛弃,下一代GNN研究者可能会有新的benchmark数据集,而自动放弃使用Pubmed。)

2.2 关于cora和citeseer的对比实验

原始的LBC发布的这两个数据集,包含了.content.cite两个文件。
这是第一版格式。

而Yang提供了一种既定的数据处理方式,划分好了训练与验证集。
这是第二版格式,即.x, .y, .tx, .ty这些,一共八个文件。

关于第二版的格式,已经有一篇很好的文章介绍了@yyl424525:《GCN使用的数据集Cora、Citeseer、Pubmed、Tox21格式》

鼻祖GCN的实验是在Yang的格式上做的。

但后续也有些工作并不是,
比如GAT(Graph Attention Network, ICLR2018)
看作者开源代码(https://github.com/PetarV-/GAT)可以知道,
他所采用的源数据是第一版格式的 cora.contentcora.cite
用了自己的处理和划分方法。

这就导致对比实验很不公平。
你拿自己的划的训练集测试集结果,去跟Yang划的训练集测试集结果比,能一样吗。

但由于Yang的论文会误导后人,我并不推荐大家继续采用他的划分标准,因为在论文里引用他的文章,会导致其他人顺着索引去读,进而犯错。

后续实验应该避开Yang的结果,统一用cora.contentcora.cite 为源数据,用自己的处理方式划分,然后再跑其他模型,而不是直接引用其他模型在论文里展示的结果(GAT是这么搞的)。

#21.07.13更新
发现一篇2012的文章里有介绍PubMed也是LBC计划的一部分。
但不知道为什么现在LBC主页不再提供该数据集。
https://dtai.cs.kuleuven.be/events/mlg2012/papers/11_querying_namata.pdf
在这里插入图片描述

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: GCN(Graph Convolutional Network)是一种用于图结构数据的深度学习模型,而Cora数据集是一个常用的用于研究GCN模型性能的基准数据集。 Cora数据集是由论文《Revisiting Semi-Supervised Learning with Graph Embeddings》中提出的,用于研究半监督学习与图嵌入方法。它包含了一个引文网络,其中节点代表了学术论文,边表示两篇论文之间的引用关系。数据集中的每篇论文都有一个包含1433个特征的特征向量,这些特征向量是通过将每篇论文的标题和摘要转化为词向量、计算TF-IDF得到的。 在Cora数据集中,论文被分为7个不同的类别(如机器学习、神经网络、数据库等)。数据集总共包含2708个节点(论文),其中有140个节点(论文)带有类别标签,其余节点没有标签。因此,Cora数据集被广泛用于基于图结构的半监督学习问题的研究中。 GCN模型可以用于Cora数据集的半监督学习任务。模型接受Cora数据集的邻接矩阵和特征矩阵作为输入。通过对邻接矩阵进行卷积操作,并结合特征矩阵,GCN模型能够通过学习节点之间的关系以及节点的特征信息来预测未标记节点的标签。 研究者可以使用Cora数据集来验证自己所提出的GCN模型在半监督学习任务上的性能。当然,Cora数据集也可以用于其他与引文网络相关的研究,如节点分类、链路预测等。 总而言之,Cora数据集为研究者提供了一个用于验证GCN模型性能以及进行其他引文网络相关研究的标准数据集,通过该数据集可以促进图神经网络领域的发展。 ### 回答2: GCN(Graph Convolutional Network)是一种用于图数据学习的深度学习模型,可以学习节点的表示和图的关系。Cora数据集是一个常用的图数据集,用于评估和比较不同的图学习算法。 Cora数据集包含一个包含2708个科学论文的引文网络。这些论文分为7个类别,其中每个类别对应着一个研究领域。引文网络的节点表示论文,边表示论文间的引用关系。论文的特征向量是词频的One-Hot编码,而边缘是无向的。 在使用GCN对Cora数据集进行训练时,首先需要将图结构转换为邻接矩阵的表示。邻接矩阵中的每个元素代表两个节点之间的连接情况。随后,需要为每个节点生成初试的特征向量表示。GCN模型通过多层的图卷积操作来学习节点表示。 在训练过程中,GCN会通过前向传播和反向传播来更新权重,使得模型能够尽可能地准确地预测每个节点的类别。通过迭代训练,GCN模型可以逐渐提升对节点表示和图结构关系的学习能力。 在使用Cora数据集进行训练时,我们可以评估模型在节点分类任务上的性能。即给定一个节点,预测其所属的类别。通常,我们可以将数据集划分为训练集、验证集和测试集,并使用验证集来调整超参数,通过测试集来评估模型的泛化能力。 总之,GCN模型是一种用于图数据学习的强大工具,在Cora数据集上的应用可以帮助我们更好地理解和分析引文网络中的关系。 ### 回答3: GCN(Graph Convolutional Network)是一种用于图数据的深度学习模型,而Cora数据集则是用于GNN模型训练和评估的常用数据集之一。 Cora数据集是由Jon Kleinberg设计和发布的,用于文本分类任务。该数据集包含了从一系列研究论文中提取出的2708个文档的特征。这些文档分为7个类别,即机器学习、数据库、人类智能、设计与分析、系统、理论和数据结构。同时,这些文档之间的引用关系被用作图结构,通过边来表示不同文档之间的引用关系。这个图表示了论文之间的知识传播和交互。 在GCN中,每个节点代表一个文档,而边代表了文档之间的引用关系。对于Cora数据集而言,每个节点都有一个特征向量,包含了关于论文的内容信息。GCN模型通过使用图卷积神经网络的聚合操作来从邻居节点中汇聚信息,并将这些信息进行特征提取和表示学习。 训练一个GCN模型需要将Cora数据集划分为训练集、验证集和测试集。通常,将140个样本用作训练集,500个样本用作验证集,剩余的2068个样本用作测试集。在训练过程中,GCN模型将根据训练集上的标签信息进行参数反向传播和优化,以减小预测标签与真实标签之间的差距。 通过训练GCN模型,并使用Cora数据集进行评估,我们可以评估GCN模型在文本分类任务中的性能。通过计算模型在测试集上的准确率或其他性能指标,我们可以了解其在准确地预测不同文档的类别方面的能力。在实际应用中,GCN模型和Cora数据集可以被用于许多图数据相关的任务,如社交网络分析、推荐系统等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值