Graph Convolutional Networks for Text Classification [阅读笔记]

Graph Convolutional Networks for Text Classification [阅读笔记]

  • 简介
  • 贡献
  • 相关研究
    • 传统文本分类方法
    • 基于深度学习的文本分类方法
    • 图神经网络
  • 方法
    • 图卷积网络(GCN)
    • 文本图神经网络 Text GCN
      • 图的构建
      • 网络结构
  • 结论

简介

文章基于词的共线和文档的词关系,构建了语料库的知识图谱。Text GCN初始化为word和doc的独热表示,然后他们共同学习word和doc的嵌入表示,文档带标签。实验表明,随着训练数据占比降低,Text GCN相对于最先进的比较方法的改进变得更加突出,这表明文本GCN对文本分类中训练数据较少的稳定性。

贡献

  1. 提出了一种基于GCN的文本分类方法。首次提出将整个语料库建模成一个异构网络,并同时学习神经网络的word和doc嵌入表示。
  2. Text GCN方法不需要预训练word嵌入和专业知识。Text GCN方法还可以自动学习预测词和文档嵌入。

相关研究

传统文本分类方法

传统的文本分类方法主要基于特征工程和分类算法。特征工程中最常用到八字格特征( bagof-words),后来,有人提出用其他复杂特征表示,如2011年提出的entities in ontologies和2012年提出的n-grams等。还有一些关于将文本转换为图和对图和子图形进行特征工程的研究等。这篇文章与上述方法不同的是,Text GCN可以学习节点嵌入的文本表示。

基于深度学习的文本分类方法

深度学习的文本分类方法可分为两种:一种是基于词嵌入的模型,另一种是基于深度神经网络。

最近几项研究表明,文本分类模型的分类效果很大程度上取决于词嵌入的有效性。有人提出将未监督的单词嵌入聚合为文档嵌入,然后将这些文档嵌入到一个类中;还有人提出共同学习单词/文档和文档标签嵌入。这篇文章提出的Text GCN思想与这些方法有相似之处,主要的区别在于,这些方法在学习单词嵌入后构建文本表示,而Text GCN同时学习单词和文档嵌入以进行文本分类。

基于深度神经网络的文本分类模型主要有两个代表性的CNN和RNN。CNN的基本架构与计算机视觉使用的卷积方式类似,不过使用的是一维卷积,而不是二维。LSTM是RNN的一种,有人提出往LSTM模型加入attention机制来提高模型的泛化能力。虽然这些方法都取得了一定的效果,并被广泛使用,但他们只关注局部连续的word序列,而没有使用到语料库中的global word信息。

图神经网络

图神经网络主要用于关系分类、机器翻译等。使用GCN对句子结构进行编码,构建知识图谱。在最近的一些GCN研究中,他们将一个doc视为word节点构成的图,或基于非常规可用的doc引用关系构建图谱。与之相反的是,我们构建语料库图谱时,同时将doc和word视为节点,加入到知识图谱中,并且不需要doc之间的内部关联信息。

方法

图卷积网络(GCN)

GCN是一个多层的神经网络,直接作用于图并能够基于节点的邻接关系,产生节点嵌入向量。本文使用的GCN迭代公式如下:
L ( 1 ) = ρ ( A ~ X W 0 ) L^{(1)} = \rho(\tilde{A}XW_0) L(1)=ρ(A~XW0)
L ( j + 1 ) = ρ ( A ~ L ( j ) W j ) L^{(j+1)} = \rho(\tilde{A}L^{(j)}W_j) L(j+1)=ρ(A~L(j)Wj)
其中,
A A A:图G的邻接矩阵
A ~ \tilde{A} A~:矩阵A的正则化表示
X X X:包含图G中所有n个节点特征
D D D:图G的度矩阵( D i i = Σ j A i j D_{ii} = \Sigma_jA_{ij} Dii=ΣjAij

文本图神经网络 Text GCN

图的构建

本文将word和doc作为节点,构建知识图谱,如下图所示:
Graph Convolutional Networks for Text Classification [阅读笔记]_第1张图片
图中:

  • 节点总数 V V V = doc(语料库)+unique word(词库)

  • E E E = doc-word edge + word-word edge

  • doc-word edge边权重 w e i g h t weight weight 基于word在doc中出现的信息,用 TF-IDF算法计算。
    TF-IDF算法是一种简单快捷的文档特征词抽取方法,通过统计文档中的词频来对文档进行主题分类,用以评估一个word对一份doc或一个语料库中的其中一份doc的重要程度。word的重要性随着它在doc中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
    TF-IDF其主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。其计算方式为:

    • TF(Term Frequency 词频):某个word在该doc中出现的次数,计算公式如下:
      t f i , j = n i , j Σ k n k , j tf_{i,j}=\frac{n_{i,j}}{\Sigma_kn_{k,j}} tfi,j=Σknk,jni,j
      其中, n i , j n_{i,j} ni,j表示词 i i i在文档 j j j中出现次数, Σ k n k , j \Sigma_kn_{k,j} Σknk,j是文档 j j j中所有词出现的次数之和
    • IDF(Inverse Document Frequency 反文档频率):包含word的doc数量的反比。如果包含word的doc越少,IDF越大,则说明词条具有很好的类别区分能力,是一个词普遍重要性的度量。计算公式如下:
      i d f i = l o g ∣ D ∣ ∣ { j : t i ∈ d j } ∣ idf_i=log\frac{|D|}{|\{j:t_i \in d_j\}|} idfi=log{j:tidj}D
      其中, ∣ D ∣ |D| D表示语料库中doc总数, ∣ { j : t i ∈ d j } ∣ |\{j:t_i \in d_j\}| {j:tidj}表示包含词 t i t_i ti的doc数目。由于可能包含词 t i t_i ti的doc数目为0,通常分母改为 ∣ { j : t i ∈ d j } ∣ + 1 |\{j:t_i \in d_j\}|+1 {j:tidj}+1
    • T F I D F = T F ∗ I D F TFIDF = TF*IDF TFIDF=TFIDF值越大,表示这个word对doc来说越重要。
  • word-word edge权重用固定大小的滑窗在语料库中滑动统计词共现信息,使用PMI(Point-wise Mutual Info)计算word-word边的权重。计算方式如下:
    A i j = { P M I ( i , j ) i , j ∈ w o r d s , P M I ( i , j ) > 0 T F − I D F i j i ∈ d o c u m e n t s , j ∈ w o r d s 1 i = j 0 o t h e r w i s e A_{ij}=\left\{ \begin{array}{rcl} PMI(i,j) && i,j \in words, PMI(i,j) > 0 \\ TF-IDF_{ij} && i\in documents,j\in words \\ 1 && i=j \\ 0 && otherwise \\ \end{array} \right. Aij=PMI(i,j)TFIDFij10i,jwords,PMI(i,j)>0idocuments,jwordsi=jotherwise
    PMI计算方式如下:
    P M I ( i , j ) = l o g P ( i , j ) P ( i ) P ( j ) PMI(i,j)=log\frac{P(i,j)}{P(i)P(j)} PMI(i,j)=logP(i)P(j)P(i,j)
    P ( i , j ) = # W ( i , j ) # W ,   P ( i ) = # W ( i ) # W P(i,j)=\frac{\#W(i,j)}{\#W},\ P(i)=\frac{\#W(i)}{\#W} P(i,j)=#W#W(i,j), P(i)=#W#W(i)
    其中,
    # W ( i ) \#W(i) #W(i)表示包含词 i i i的滑窗数目
    # W ( i , j ) \#W(i,j) #W(i,j)表示包含词 i i i j j j的滑窗数目
    # W \#W #W表示滑窗总数
    PMI值 >0 表示词 i i i j j j语义相关性强,<0 表示词 i i i j j j语义相关性弱或者没有相关性。因此本文只考虑将PMI值 >0 的words加入图G中。

网络结构

Text GCN使用双层GCN网络结构,第一层使用ReLU激活函数,第二层是softmax层。梯度下降法训练可以学到权重 W 0 W_0 W0 W 1 W_1 W1,这样每一层都包含word和doc嵌入信息。公式如下:
Z = s o f t m a x ( A ~   R e L U ( A ~ X W 0 )   W 1 ) Z=softmax(\tilde{A}\ ReLU(\tilde{A}XW_0)\ W_1) Z=softmax(A~ ReLU(A~XW0) W1)
损失函数为交叉熵:
L = − ∑ d ∈ Υ D ∑ f = 1 F Y d f l n Z d f L=-\sum\limits_{d\in \Upsilon_D}\sum\limits_{f=1}^{F}{Y_{df}lnZ_{df}} L=dΥDf=1FYdflnZdf
其中, Υ D \Upsilon_D ΥD是所有带标签的document的索引集, F F F是特征向量维度,即类的总数。

双层GCN中,doc节点的标签信息可在两个同类或不同类节点之间传递,因此,即使图中没有直接的doc-doc边,双层GCN也可以实现信息在两个doc之间的交换。实验表明,双层GCN比单层GCN表现好,但是再增加GCN层数并不能有效提高实验效果。

结论

Text GCN可以捕获全局word之间的关联信息,并能高效利用有限的带标签doc信息。

  • 参数敏感性
    • 不同滑窗大小会影响模型准确率。实验表明,滑窗越大,平均准确率随之提高,当滑窗到达某一临界值时,平均准确率有所降低。因为当滑窗设置过小时,不能有效保留全局词的共现信息;当滑窗设置过大时,每个滑窗内关联度不够紧密的边的比例有所增加。
    • 不同的嵌入表示维度也会影响模型准确率。当第一层的嵌入维度过低时,会丢失一些标签信息;当嵌入维度过高时,对模型的分类能力没有改善,甚至需要更多的训练时间。因此,选择一个合适的嵌入维度很重要。
  • 模型缺点
    虽然Text GCN有很强的文本分类能力和词、文档嵌入表示能力,但是模型的主要局限在于Text GCN模型有内在传导性,无标签的测试文档doc节点包含在GCN的训练集中。换句话说,Text GCN不能快速产生嵌入表示,并预测没有出现过的文档。可能的解决方案有介绍归纳法和fast GCN模型。
    未来可能会引入注意力机制并研究无监督Text GCN框架,用于大规模无标签Text数据集上的表示学习。

原文链接:https://arxiv.org/abs/1809.05679

你可能感兴趣的:(阅读笔记)