结点分类(Node Classification)
结点分类(Node Classification) #
华为的难题挑战提到了结点分类,正好这一块儿是我一直在想的东西,顺道就调研了一下。里面提到了三篇文章,在这里列一下读书笔记。
Exploring the Potential of Large Language Models (LLMs) in Learning on Graphs #
这篇文章主要讲了LLMs-as-Enhancers和LLMs-as-Predictors两种模式,并做了一些实验。主要提出了19个观察效果。不得不说,看起来可费劲了,还好有KIMI。
Observation 1: 对于LLMs-as-Enhancers,使用深度句子嵌入模型生成节点属性的嵌入显示出有效性和效率。
Observation 2: 对于LLMs-as-Enhancers,利用LLMs在文本级别增强节点属性也会导致下游性能的提升。
Observation 3: 对于LLMs-as-Predictors,LLMs表现出初步的有效性,但我们应该小心它们的不准确预测和潜在的测试数据泄露问题。
Observation 4: LLMs显示出作为标记节点的良好注释者的潜力,因为它们的注释中有相当一部分是准确的。
Observation 5: 对于整合结构,迭代结构在训练阶段引入了大量的计算开销。
Observation 6: 在不同类型的LLMs中,深度句子嵌入模型在训练阶段展现出更好的效率。
Observation 7: TAPE的有效性主要来自LLMs生成的解释E。
Observation 8: 用深度句子嵌入模型替换基于微调的PLMs可以进一步提高TAPE的整体性能。
Observation 9: 提出的知识点增强属性KEA可以增强原始属性TA的性能。
Observation 10: 对于不同的数据集,最有效的增强方法可能会有所不同。
Observation 11: LLMs在一些数据集上表现出初步的有效性。
Observation 12: LLMs做出的错误预测有时也是合理的。
Observation 13: 链式思考(Chain-of-Thoughts)并没有带来性能提升。
Observation 14: 对于语义非常相似的提示,它们的效果可能存在巨大差异。
Observation 15: 邻域总结可能会实现性能提升。
Observation 16: 带有结构提示的LLMs可能会受到异质性邻域节点的影响。
Observation 17: 伪标签的质量是下游性能的关键。
Observation 18: 通过直接提示LLMs来获得置信度可能不可行,因为它们过于“自信”。
Observation 19: LLMs-as-Predictors在面对OOD(Out-of-Distribution)数据时显示出鲁棒性。
其中主要的实验也就是图结点分类任务,用到了五个数据集:
-
Cora:这是一个论文引用网络数据集,包含7个类别。文章使用这个数据集验证了节点分类任务。
-
Citeseer:这是另一个论文引用网络数据集,包含6个类别。同样用于验证节点分类任务。
-
Pubmed:这是一个科学期刊论文引用网络数据集,包含3个类别。用于验证节点分类任务。
-
Ogbn-arxiv:这是一个从OGB基准测试中选取的数据集,包含169,343个节点和1,166,243条边,有40个类别。用于验证节点分类任务。
-
Ogbn-products:这也是从OGB基准测试中选取的数据集,包含2,449,029个节点和61,859,140条边,有47个类别。用于验证节点分类任务。
数据集在: https://drive.google.com/drive/folders/1_laNA6eSQ6M5td2LvsEp3IL9qF6BC1KV
LABEL-FREE NODE CLASSIFICATION ON GRAPHS WITH LARGE LANGUAGE MODELS (LLMS) #
这篇论文提出了一个名为LLM-GNN的框架,用于实现无需标签的图结点分类。这个框架结合了大型语言模型(LLMs)和图神经网络(GNNs)的优势,以解决结点分类任务中高质量标签获取困难的问题。以下是LLM-GNN实现结点分类的详细步骤:
- 问题定义
- 结点分类任务的目标是基于部分已标记结点、结点属性和图结构,为未标记结点分配标签。
- 传统的GNNs需要大量的高质量标签来保证性能,而LLMs则展示了在零样本或少样本场景下对文本属性图(TAGs)的分类能力。
- LLM-GNN框架
- LLM-GNN框架通过LLMs对一小部分结点进行标注,然后使用这些标注来训练GNNs,以便对图的其余部分进行预测。
- 结点选择(Node Selection)
- 首先,LLM-GNN需要选择一组结点,这些结点将由LLMs进行标注。
- 该过程考虑了结点的标注难度,通过一个启发式方法(C-Density)来估计结点的标注可靠性,选择那些容易标注且标注质量高的结点。
- LLMs标注(LLMs Annotation)
- 使用LLMs对选定的结点进行标注,生成信心分数(confidence scores),以反映标注的质量。
- 该步骤采用了不同的提示策略(prompt strategies),比如零样本(zero-shot)、TopK、最多投票(Most Voting)和混合策略(Hybrid),以生成高质量的标注。
- 后过滤(Post-filtering)
- 利用LLMs生成的信心分数,对标注过的结点集进行后过滤,移除那些信心分数低的结点,以提高标注集的质量。
- 同时考虑标签分布的多样性,使用熵变化(change of entropy, COE)来衡量移除结点对标签分布多样性的影响。
- GNN训练和预测(GNN Training and Prediction)
- 使用经过过滤的高质量标注集来训练GNN模型。
- 训练完成后,GNN模型用于对图中的未标记结点进行分类预测。
- 实验验证
- 论文通过在多个领域的文本属性图上进行实验,验证了LLM-GNN框架的有效性。
- 特别是在大规模数据集OGBN-PRODUCTS上,LLM-GNN在成本不到1美元的情况下达到了74.9%的准确率。
LLM-GNN的核心创新在于它能够利用LLMs的零样本学习能力来减少对大量训练数据的需求,并通过主动结点选择和后过滤策略来提高标注质量,最终实现在无需人工标注的情况下进行有效的结点分类。
数据集 #
论文中使用了多个流行的文本属性图(Text-Attributed Graphs, TAGs)数据集,包括CORA、CITESEER、PUBMED、WIKICS、OGBN-ARXIV和OGBN-PRODUCTS。这些数据集广泛应用于结点分类任务。数据集预处理:
- 对于CORA、CITESEER、PUBMED、OGBN-ARXIV和OGBN-PRODUCTS数据集,论文采用了Chen等人(2023)提供的文本属性图版本。
- 对于WIKICS数据集,原始属性从GitHub上的链接获取。
- 由于LLMs只能理解原始文本属性,因此需要将这些属性转换为LLMs能够处理的格式。
CORA #
在CORA数据集中:
- 结点表示:
CORA数据集中的每个结点代表一篇科学论文。 每个结点都带有相应的属性,这些属性通常是论文的标题和摘要,这些文本属性可以用来表示结点的特征。
- 边表示:
边表示论文之间的引用关系。 如果论文A引用了论文B,则在A和B之间存在一条边,表明它们之间存在直接的引用联系。
- 输入:
输入包括两大部分: 结点的特征:每个结点的原始文本属性(例如,论文的标题和摘要)被编码成数值形式的特征向量,这通常是通过句子嵌入技术(如SentenceBERT)来实现的。 图结构:结点间的连接关系,即邻接矩阵,它表示了结点之间的引用关系。
- 期望输出:
期望输出是每个结点(论文)的分类标签。 在CORA数据集中,每篇论文属于一个或多个类别(例如,“Rule Learning”、“Neural Networks”、“Case Based"等),任务是预测每篇论文所属的类别。 因此,对于每个结点,模型的输出是一个标签,这个标签指示了结点(论文)的类别。 在结点分类任务中,目标是基于结点的特征和图的结构信息来预测每个结点的类别标签。这不仅可以帮助我们理解图数据的结构和属性,还可以在许多应用中发挥作用,比如推荐系统、社交网络分析等。
- CORA数据集中的类别:
- Rule Learning
- Neural Networks
- Case Based
- Genetic Algorithms
- Theory
- Reinforcement Learning
- Probabilistic Methods
OGBN-PRODUCTS #
OGBN-PRODUCTS数据集是Open Graph Benchmark (OGB) 项目的一部分,它是一个用于图机器学习任务的大型基准数据集。以下是OGBN-PRODUCTS数据集的一些关键特性:
- 数据集来源:
OGBN-PRODUCTS数据集来源于亚马逊(Amazon)产品数据库,包含了丰富的商品信息。
- 结点和边:
在OGBN-PRODUCTS数据集中,每个结点代表一个产品。 边表示产品之间的关系,通常是通过共同的购买模式或产品共现信息构建的。 类别数量:
OGBN-PRODUCTS数据集包含47个不同的产品类别,这些类别涵盖了从家居厨房用品到个人护理等多个领域。
- 数据集划分
在OGBN-PRODUCTS数据集中,训练集和测试集的划分通常遵循以下规则:
划分比例:
OGBN-PRODUCTS数据集通常会有一个固定的划分比例,例如90%的数据用作训练集,5%用作验证集,剩余5%用作测试集。这种划分比例旨在确保模型在训练时有足够的数据,同时也有独立的数据集来评估模型的泛化能力。 随机划分:
在大多数情况下,训练集、验证集和测试集的划分是基于随机抽样的。这意味着每个产品(结点)被随机分配到训练集、验证集或测试集中,以确保数据分布的均匀性。 分层抽样(Stratified Sampling):
由于OGBN-PRODUCTS是一个多标签分类问题,为了确保每个类别在训练集、验证集和测试集中都有代表,可能会采用分层抽样的方法。这种方法可以确保每个类别的比例在各个数据集中保持一致。 在测试阶段,输入和输出如下:
输入:
特征:每个产品结点的文本属性(通常是产品描述)被编码成数值形式的特征向量。这些特征向量作为图神经网络模型的输入。 图结构:产品的连接关系,即邻接矩阵,表示了产品之间的共购关系或其他关系。
输出:
预测:模型对测试集中每个产品结点的类别进行预测。由于OGBN-PRODUCTS是一个多标签分类问题,模型需要预测每个产品属于47个类别中的哪些类别。 真实标签:测试集的每个产品结点都有真实的类别标签,这些标签用于评估模型的性能。
评估:
性能指标:常用的评估指标包括准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1分数(F1 Score)。这些指标可以帮助研究人员了解模型在预测产品类别上的表现。 通过这种方式,OGBN-PRODUCTS数据集提供了一个标准化的环境,用于评估和比较不同图神经网络模型在大规模、多标签结点分类任务上的性能。