有效融合语言模型、图神经网络,文本图训练框架GLEM实现新SOTA

简介: 有效融合语言模型、图神经网络,文本图训练框架GLEM实现新SOTA


机器之心编辑部

蒙特利尔算法学习人工智能实验室(Mila)和微软亚洲研究院等单位提出文本图训练框架 GLEM [1],能够有效融合语言模型和图神经网络,取得 OGB 3 个数据集第一名。




引言



图 1:(a) 文本图 (b) 图神经网络 (c) 语言模型


图是一种普遍的数据结构,建模了节点之间的结构关系。在现实生活中,许多节点包含丰富的文本特征,这种图被称为文本图 (text-attributed graph [2])。例如,论文引用网络中包含了论文的文本和论文之间的引用关系;社交网络中包含了用户的文本描述和用户直接的交互关系。在文本图上的表示学习模型,可以应用于节点分类、链路预测等任务中,具有广泛的应用价值。


文本图包含了两方面信息:节点的文本信息和节点之间的图结构信息。传统文本图的建模可以分为对文本建模和对图建模两个角度。其中,对文本的建模方式(如图 1.b 所示)通常采用基于 Transformer 的语言模型(LM)得到单个节点的文本表示,并对目标任务进行预测;对图建模的建模方式(图 1.c 所示)通常采用图神经网络(GNN),通过消息传播机制来建模节点特征之间的交互,并预测目标任务。


然而,两种模型只能分别建模文本图中的文本和图结构:传统语言模型无法直接考虑结构信息,而图神经网络无法直接对原始文本信息进行建模。为了同时建模文本和图结构,研究者们尝试将语言模型和图神经网络融合起来,同时更新两个模型的参数。但是,现有工作 [2, 3] 无法同时建模大量邻居文本,可拓展性差,无法应用在大文本图上。


GLEM 框架


为了更有效的融合图神经网络和语言模型,本文提出了 Graph and  Language Learning by Expectation Maximization (GLEM) 框架。GLEM 框架基于变分期望最大算法(Variational EM),交替学习图神经网络和语言模型,从而获得了很好的可拓展性。


图 2:GLEM 框架


具体地,以节点分类任务为例,在 E 步 , GLEM 根据真实标签和图神经网络预测的伪标签训练语言模型;在 M 步 , GLEM 根据真实标签和语言模型预测的伪标签训练图神经网络。通过这种方式,GLEM 框架有效挖掘了局部的文本信息和全局的结构交互信息。通过 GLEM 框架训练好的图神经网络(GLEM-GNN)和语言模型(GLEM-LM)都可以用来预测节点标签。


实验


论文的实验部分主要从以下几个方面讨论 GLEM 框架:


  • 有效性:GLEM 模型能够有效融合图神经网络和语言模型,对两种模型都有明显提升。GLEM 框架在 OGB 的三个文本图节点分类任务上取得了第一名。
  • 可扩展性:通过交替训练图神经网络和语言模型,GLEM 框架可以同时训练大语言模型和深层 GNN。
  • 无结构归纳推理(Structure-free inductive)能力:传统 GNN 模型在面对没有图结构的新节点时表现不佳。相比之下,GLEM-LM 仅使用文本特征(无需图结构)就能进行有效推理。
  • 模型收敛:GLEM 使用 EM 迭代算法,在一些数据集上一次 EM 迭代即可收敛。


图 3:GLEM 框架在 OGBN-arxiv, products, papers100M 数据集上取得第一名


引用

[1] Zhao et al. Learning on Large-scale Text-attributed Graphs via Variational Inference. Arxiv Preprint '22.

[2] Yang et al. GraphFormers: GNN-nested Transformers for Representation Learning on Textual Graph. In NeurIPS '21.

[3] Zhu et al. TextGNN: Improving Text Encoder via Graph Neural Network in Sponsored Search. In WWW '21.


相关文章
|
5月前
|
机器学习/深度学习 人工智能 算法
AI 基础知识从 0.6 到 0.7—— 彻底拆解深度神经网络训练的五大核心步骤
本文以一个经典的PyTorch手写数字识别代码示例为引子,深入剖析了简洁代码背后隐藏的深度神经网络(DNN)训练全过程。
957 56
|
6月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
136 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
8月前
|
机器学习/深度学习 自然语言处理 数据可视化
基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践
本文探讨了在企业数字化转型中,大型概念模型(LCMs)与图神经网络结合处理非结构化文本数据的技术方案。LCMs突破传统词汇级处理局限,以概念级语义理解为核心,增强情感分析、实体识别和主题建模能力。通过构建基于LangGraph的混合符号-语义处理管道,整合符号方法的结构化优势与语义方法的理解深度,实现精准的文本分析。具体应用中,该架构通过预处理、图构建、嵌入生成及GNN推理等模块,完成客户反馈的情感分类与主题聚类。最终,LangGraph工作流编排确保各模块高效协作,为企业提供可解释性强、业务价值高的分析结果。此技术融合为挖掘非结构化数据价值、支持数据驱动决策提供了创新路径。
497 6
基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践
|
9月前
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
373 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
6月前
|
机器学习/深度学习 数据采集 算法
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
本文将BSSNN扩展至反向推理任务,即预测X∣y,这种设计使得模型不仅能够预测结果,还能够探索特定结果对应的输入特征组合。在二元分类任务中,这种反向推理能力有助于识别导致正负类结果的关键因素,从而显著提升模型的可解释性和决策支持能力。
478 42
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
|
4月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
117 1
|
4月前
|
监控 前端开发 安全
Netty 高性能网络编程框架技术详解与实践指南
本文档全面介绍 Netty 高性能网络编程框架的核心概念、架构设计和实践应用。作为 Java 领域最优秀的 NIO 框架之一,Netty 提供了异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文将深入探讨其 Reactor 模型、ChannelPipeline、编解码器、内存管理等核心机制,帮助开发者构建高性能的网络应用系统。
268 0
|
4月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
195 0
|
7月前
|
机器学习/深度学习 API TensorFlow
BayesFlow:基于神经网络的摊销贝叶斯推断框架
BayesFlow 是一个基于 Python 的开源框架,利用摊销神经网络加速贝叶斯推断,解决传统方法计算复杂度高的问题。它通过训练神经网络学习从数据到参数的映射,实现毫秒级实时推断。核心组件包括摘要网络、后验网络和似然网络,支持摊销后验估计、模型比较及错误检测等功能。适用于流行病学、神经科学、地震学等领域,为仿真驱动的科研与工程提供高效解决方案。其模块化设计兼顾易用性与灵活性,推动贝叶斯推断从理论走向实践。
215 7
BayesFlow:基于神经网络的摊销贝叶斯推断框架
|
4月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
414 0