图嵌入在文本表示中的应用:Text GCN与图注意力网络

张开发
2026/4/12 23:33:19 15 分钟阅读

分享文章

图嵌入在文本表示中的应用:Text GCN与图注意力网络
点击“AladdinEdu你的AI学习实践工作坊”注册即送-H卡级别算力沉浸式云原生集成开发环境80G大显存多卡并行按量弹性计费教育用户更享超低价。1. 引言文本的图结构本质自然语言处理的传统范式习惯于将文本线性化从左到右的字符序列或是时间步上的词向量流。这种序列视角支撑了RNN、LSTM乃至Transformer的巨大成功。然而语言的内在结构远不止线性顺序。词语之间通过句法依存构成树状或图状结构文档之间通过引用、主题相似性彼此关联词汇与文档之间存在所属关系。这些丰富的关系信息在序列模型中往往被忽略或需隐式学习而图Graph则是刻画此类关系的天然数学工具。图嵌入Graph Embedding旨在将图中的节点如词、文档、实体映射为低维稠密向量使得图中邻近或结构相似的节点在向量空间中彼此靠近。近年来图神经网络Graph Neural Networks, GNN的兴起使得图嵌入从浅层随机游走跃迁至深度消息传递范式能够端到端地学习融合节点特征与图拓扑的表示。在NLP领域将文本语料建模为图并应用GNN打开了新的思路词语共现图节点为词边权重反映词对在滑动窗口内的共现频次。文档-词异构图包含文档节点和词节点边表示词在文档中的出现TF-IDF加权。句法依存图以词为节点依存关系为有向边。知识图谱实体为节点关系为边。本文聚焦两类极具代表性的图嵌入文本模型Text GCNGraph Convolutional Networks for Text Classification将整个语料库构建为词-文档异构图通过两层图卷积实现半监督文本分类在小样本场景下表现惊艳。图注意力网络GAT在文本中的应用引入注意力机制自适应地聚合邻居信息能够处理句法依存图、语义关联图等异质结构为文本编码注入结构化先验。我们将深入它们的核心思想、数学原理、训练策略并结合代码实例与实验分析展示图方法如何弥补序列模型在全局关系建模上的不足。2. 图神经网络基础从图卷积到消息传递在深入Text GCN之前我们有必要建立图神经网络的基本认知框架。2.1 图的定义与表示图 (G (V, E)) 由节点集合 (V)(|V| n)和边集合 (E) 组成。边可带权重可有向。图的拓扑结构通常用邻接矩阵 (\mathbf{A} \in \mathbb{R}^{n \times n}) 表示其中 (\mathbf{A}{ij} w{ij}) 若存在边 (i \rightarrow j) 且权重为 (w_{ij})否则为0。每个节点可附带特征向量 (\mathbf{x}_i \in \mathbb{R}^{d_0})构成特征矩阵 (\mathbf{X} \in \mathbb{R}^{n \times d_0})。2.2 图卷积网络GCNKipf Welling2017提出的GCN定义了如下的层间传播规则[\mathbf{H}^{(l1)} \sigma\left( \tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)]其中(\tilde{\mathbf{A}} \mathbf{A} \mathbf{I}) 为添加自环的邻接矩阵。(\tilde{\mathbf{D}}{ii} \sum_j \tilde{\mathbf{A}}{ij}) 为度矩阵。(\mathbf{H}^{(l)}) 为第 (l) 层节点嵌入(\mathbf{H}^{(0)} \mathbf{X})。(\mathbf{W}^{(l)}) 为可训练的权重矩阵。(\sigma) 为激活函数如ReLU。直观理解每个节点的新表示是其自身特征与邻居特征的加权平均权重由归一化邻接矩阵决定。多层堆叠可聚合多跳邻居信息扩大感受野。2.3 图注意力网络GATGCN对所有邻居一视同仁无法区分不同邻居的重要性。GATVeličković et al., 2018引入注意力机制为每条边动态计算权重[\mathbf{h}i^{(l1)} \sigma\left( \sum{j \in \mathcal{N}(i) \cup {i}} \alpha_{ij} \mathbf{W}^{(l)} \mathbf{h}_j^{(l)} \right)]注意力系数 (\alpha_{ij}) 计算如下[e_{ij} \text{LeakyReLU}\left( \mathbf{a}^T [\mathbf{W}\mathbf{h}i | \mathbf{W}\mathbf{h}j] \right)][\alpha{ij} \frac{\exp(e{ij})}{\sum_{k \in \mathcal{N}(i) \cup {i}} \exp(e_{ik})}]其中 (\mathbf{a}) 为可训练的注意力向量(|) 表示拼接。GAT可赋予重要邻居更高权重且支持多头注意力增强稳定性。3. Text GCN为文本语料构建异构图Yao等人于2019年提出的Text GCN以简洁优雅的方式将GCN应用于半监督文本分类。其核心思想是将训练集和测试集中的所有文档与词汇共同作为图的节点基于词在文档中的出现和词-词共现构建边然后通过两层GCN同时学习词嵌入和文档嵌入最后用少量有标签文档节点训练分类器。3.1 异构图构建Text GCN构建的图包含两类节点文档节点每篇文档一个节点初始特征为单位矩阵行one-hot表示。词节点语料库中所有词或经过频率筛选后的词表初始特征同样为one-hot。边权重由两种关系决定文档-词边若词 (w_j) 出现在文档 (d_i) 中则边权重为TF-IDF值[A_{ij} \text{TF-IDF}(w_j, d_i)]若词在文档中未出现则不连边。词-词边基于词在滑动窗口内的全局共现统计。对语料库中所有文档使用固定大小窗口如窗口长度为20统计词对共现次数。边权重为点互信息PMI正值[\text{PMI}(w_i, w_j) \log \frac{p(w_i, w_j)}{p(w_i)p(w_j)}][A_{ij} \max(0, \text{PMI}(w_i, w_j))]PMI正值表示词对之间的统计正相关过滤掉偶然共现。因此邻接矩阵 (\mathbf{A}) 为分块矩阵形式[\mathbf{A} \begin{bmatrix}\mathbf{0} \mathbf{A}{\text{doc-word}} \\mathbf{A}{\text{doc-word}}^T \mathbf{A}_{\text{word-word}}\end{bmatrix}]图中不存在文档-文档直连边但通过词作为桥梁文档之间能够间接传递信息。3.2 图卷积与文本分类Text GCN采用两层GCN前向传播为[\mathbf{Z} \text{softmax}\left( \hat{\mathbf{A}} , \text{ReLU}\left( \hat{\mathbf{A}} \mathbf{X} \mathbf{W}^{(0)} \right) \mathbf{W}^{(1)} \right)]其中 (\hat{\mathbf{A}} \tilde{\mathbf{D}}^{-1/2} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-1/2}) 为对称归一化的邻接矩阵含自环(\mathbf{X}) 为所有节点的one-hot特征矩阵。输出 (\mathbf{Z}) 的行向量对应每个节点的类别概率分布。由于我们只关心文档分类最终仅取文档节点对应的输出行计算交叉熵损失。值得注意的是训练时损失仅回传至有标签的文档节点但图卷积操作本身作用于全图包括测试文档和无标签文档。这意味着无标签文档和词节点作为“桥梁”将有标签文档的监督信号沿图结构传播至全图实现高效的半监督学习。3.3 为何Text GCN有效Text GCN的成功源于其对文本数据的多重关系建模词-文档边将文档表示为其所含词向量的加权和通过GCN的消息传递本质上是可学习的TF-IDF池化。词-词边基于全局共现将语义相近的词在嵌入空间中拉近即使它们在局部文档中从未同时出现。例如“机器学习”与“深度学习”的PMI边使得两者信息可以互通从而改善对含低频词文档的表示。跨文档信息流通过“文档A → 词W → 文档B”的路径有标签文档的知识能够传递给包含相同词汇的无标签文档即便两者词汇重叠度不高只要它们共享的词在图谱中通过词-词边与更丰富的词汇相连信息仍可扩散。实验表明Text GCN在20标签以下的少量标注样本如每类20个场景下分类准确率显著超越CNN、LSTM等基准甚至在部分数据集上接近全监督BERT。这证明了图结构先验对于小样本学习的巨大价值。3.4 工程实践与注意事项图的规模与内存若语料包含5万文档和10万词则邻接矩阵规模为150k×150k稠密存储不可行。Text GCN实际使用稀疏矩阵scipy.sparse存储并利用稀疏矩阵乘法高效计算。在PyTorch Geometric等库中可通过SparseTensor处理。词表裁剪原始论文建议删除出现次数小于5的词以控制图规模并降低噪声。参数设置通常GCN隐藏层维度设为200输出维度为类别数。使用Adam优化器学习率0.02dropout 0.5。与BERT的比较Text GCN无需预训练训练速度快在小样本场景下与BERT有竞争力但在大样本场景下BERT等预训练模型凭借强大的语义理解能力仍占优。实际应用中可将Text GCN与预训练词向量结合如用GloVe初始化词节点特征以提升性能。4. 图注意力网络在文本表示中的延伸Text GCN使用的是标准GCN邻居聚合权重仅依赖于静态的图拓扑PMI和TF-IDF。然而自然语言中的关系权重往往是上下文敏感的。例如在句法依存图中动词对主语和宾语的依赖强度取决于具体语义在文档引用图中一篇文档对不同参考文献的引用权重各异。图注意力网络GAT通过动态计算注意力系数为每个邻居分配不同权重能更好地适应文本的灵活性。4.1 句法依存图上的GAT文本编码句法依存分析将句子解析为树形结构或带标签的有向图其中节点为词边表示句法关系如nsubj、dobj。传统Tree-LSTM沿树结构递归编码但无法处理非树边如并列关系、远距离回指。将句法依存视为图应用GAT则可灵活聚合信息。假设句子有 (n) 个词依存图提供邻接关系。GAT层以词向量序列 (\mathbf{h}_1, \dots, \mathbf{h}_n)可来自预训练BERT或静态词嵌入作为输入节点特征输出更新后的节点表示。堆叠多层GAT后可将所有节点表示池化如平均或注意力加权得到句子嵌入用于分类、匹配等任务。优势捕捉长距离句法依赖自注意力虽也能建模长距离但缺乏句法先验引导GAT通过显式句法边约束信息流降低学习难度。多跳推理通过多层GAT信息可沿句法路径传播如“否定词→动词→宾语”传递否定极性。4.2 异构图注意力网络HAN在文本中的应用Text GCN构建的异构图包含文档节点和词节点。标准GCN平等对待两类节点忽略了类型差异。异构图注意力网络Heterogeneous Graph Attention Network, HAN引入类型特定的转换矩阵和双层注意力节点级语义级能够更好地处理异构图。在文本分类场景中HAN的文档-词异构图构建类似Text GCN但消息传递过程更精细节点级注意力对于每个文档节点在聚合邻居词节点时学习哪些词对文档表示更重要类似TF-IDF加权的学习版。语义级注意力若存在多种边类型如除文档-词边外还有文档-文档相似度边则学习不同元路径的重要性。实验表明HAN在IMDB评论分类等任务上优于Text GCN尤其在文档节点和词节点特征异构明显时。4.3 基于GAT的语义关联图推理在某些任务中我们没有显式的图结构如句法树、知识图谱但可以通过计算句子或实体间的语义相似度动态构建图。例如在多跳问答中可将问题、段落、候选答案作为节点基于语义相似度连边然后用GAT进行推理更新节点表示并预测答案。构建语义图的方法使用Sentence-BERT等模型编码所有文本单元计算两两余弦相似度。设定阈值或取top-k邻居构建稀疏图。将节点特征BERT嵌入和图结构输入GAT迭代更新。最后从答案节点读取分类或回归分数。这种“先相似度建图后GAT推理”的范式融合了Transformer的语义编码能力与GNN的结构化推理能力在需要整合多条证据的任务中表现突出。5. 实验分析与代码示例5.1 Text GCN PyTorch实现核心代码以下为简化版Text GCN实现基于PyTorch和稀疏矩阵。importtorchimporttorch.nnasnnimporttorch.nn.functionalasFimportnumpyasnpimportscipy.sparseasspdefnormalize_adj(adj):对称归一化邻接矩阵 A D^{-1/2} A D^{-1/2}adjadjsp.eye(adj.shape[0])rowsumnp.array(adj.sum(1))d_inv_sqrtnp.power(rowsum,-0.5).flatten()d_inv_sqrt[np.isinf(d_inv_sqrt)]0.d_mat_inv_sqrtsp.diags(d_inv_sqrt)returnadj.dot(d_mat_inv_sqrt).transpose().dot(d_mat_inv_sqrt).tocoo()classGCNLayer(nn.Module):def__init__(self,in_dim,out_dim):super().__init__()self.weightnn.Parameter(torch.FloatTensor(in_dim,out_dim))nn.init.xavier_uniform_(self.weight)defforward(self,x,adj):# x: (N, in_dim) dense, adj: sparse tensorsupporttorch.mm(x,self.weight)outputtorch.sparse.mm(adj,support)returnoutputclassTextGCN(nn.Module):def__init__(self,n_nodes,n_features,hidden_dim,n_classes,dropout):super().__init__()self.gcn1GCNLayer(n_features,hidden_dim)self.gcn2GCNLayer(hidden_dim,n_classes)self.dropoutdropoutdefforward(self,x,adj):xF.relu(self.gcn1(x,adj))xF.dropout(x,self.dropout,trainingself.training)xself.gcn2(x,adj)returnF.log_softmax(x,dim1)# 构建图邻接矩阵和特征示例数据需自行构建# adj normalize_adj(adjacency_matrix_sparse)# features sp.eye(n_nodes).tocoo()# 转换为torch稀疏张量# adj_torch torch.sparse_coo_tensor(indices, values, size)# 训练仅计算有标签文档节点的损失5.2 GAT在依存图上的句子分类示例PyTorch Geometricimporttorchimporttorch.nn.functionalasFfromtorch_geometric.nnimportGATConv,global_mean_poolfromtorch_geometric.dataimportDataclassGATSentenceClassifier(nn.Module):def__init__(self,in_dim,hidden_dim,out_dim,heads4):super().__init__()self.gat1GATConv(in_dim,hidden_dim,headsheads,dropout0.3)self.gat2GATConv(hidden_dim*heads,hidden_dim,heads1,concatFalse,dropout0.3)self.classifiernn.Linear(hidden_dim,out_dim)defforward(self,data):x,edge_index,batchdata.x,data.edge_index,data.batch xF.elu(self.gat1(x,edge_index))xF.dropout(x,p0.3,trainingself.training)xself.gat2(x,edge_index)# 图级池化对每个图取节点平均xglobal_mean_pool(x,batch)xself.classifier(x)returnF.log_softmax(x,dim1)# 使用示例# 假设每个句子对应一个Data对象x为词向量序列n_words, dim# edge_index为依存边2, n_edgesbatch标识节点所属句子5.3 性能对比与讨论下表为Text GCN与基线在20标签监督设置下R52数据集Reuters-21578子集的准确率对比参考原论文方法准确率 (%)TF-IDF SVM73.2CNN (rand)69.5LSTM (rand)70.8Text GCN90.7在小样本场景下Text GCN的领先优势显著。这归因于其利用全图结构传播标签信息的能力。6. 图嵌入文本模型的挑战与前沿6.1 大规模图训练的可扩展性当图节点数达数百万时全图GCN的前向/反向传播将受限于内存与计算。解决方案包括采样训练GraphSAGE、Cluster-GCN等通过子图采样训练避免加载全图。预计算聚合Simplified GCNSGC移除非线性可预计算特征传播将GCN退化为逻辑回归。图划分与分布式训练将大图切分为多个子图分设备训练。6.2 动态图与在线学习文本数据不断新增新文档、新词静态图需重建。如何增量式更新图结构和GNN参数是实际部署的难点。近期工作如EvolveGCN、TGN利用RNN演化GNN参数为动态图学习提供了思路。6.3 与预训练语言模型的深度融合当前趋势是将GNN作为预训练语言模型PLM的附加模块实现“PLM编码GNN推理”的联合架构。例如BERTGCN先用BERT获得文档级[CLS]向量作为文档节点初始特征再构建文档-词图或文档-文档图用GCN细化表示。GraphFormers将GNN模块嵌入Transformer层同时处理文本序列与外部图结构。这类混合模型在需要结构化知识的任务如表格问答、知识图谱补全中展现了优越性。6.4 可解释性GNN的节点嵌入和注意力权重提供了天然的解释途径。例如在Text GCN中可以回溯哪些词节点对文档分类决策贡献最大在GAT中可分析注意力权重识别关键句法依赖或证据片段。这对构建可信NLP系统具有重要意义。7. 结语图与文本的共生未来图嵌入为文本表示引入了结构化思维弥补了纯序列模型在全局关系建模和样本效率上的不足。Text GCN以极简的异构图设计让词与文档在消息传递中彼此成就在小样本场景中树立了经典标杆。图注意力网络则进一步赋予模型动态聚焦的能力使得句法、语义等复杂关联得以被精细刻画。随着图神经网络与大规模预训练模型的持续融合我们有理由期待一个图与文本深度共生的未来在那里语言不再是孤立的符号序列而是嵌入在丰富的知识图谱、社会网络和多模态关系中的意义节点。理解图嵌入在文本中的应用正是踏入这一交叉领域的最佳起点。点击“AladdinEdu你的AI学习实践工作坊”注册即送-H卡级别算力沉浸式云原生集成开发环境80G大显存多卡并行按量弹性计费教育用户更享超低价。

更多文章