论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification

前言

这篇论文,还是挺简单的基于GCN的应用型文章,主要的贡献在于构建了基于文本和词的异构图,使得在GCN上能够对文本进行半监督分类。实现过程中采用了最经典的以一阶切比雪夫不等式为一阶近似为卷积核的图卷积方式,该文的亮点在于图的构建。
论文链接:https://arxiv.org/abs/1809.05679
github:https://github.com/iworldtong/text_gcn.pytorch

1. Text GCN

1.1 图架构

论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification
节点:图包含了两种节点,分别是document节点和word节点,按照文章给出要求(包括低频词处理、停留词处理、标点符号的处理)来处理,获得节点(特别是词节点数量)

边:这里的边也是包含两种边:document-word 和 word-word

图中节点的数量是单词数量+文档数量,O开头的是文档节点,其他的是词节点。图中黑线的线代表文档-词的边,灰色的表示词-词的边。R(x)表示x的embedding表示。节点的不同颜色代表文档的不同类型。

1.2 图的构建

由于图中节点包含文档节点和词节点,因此在构建图的过程中存在两部分:节点与节点之间边的权重计算、节点与文档之间的边的权重的计算。对于文档和文档之间的边由于图卷积的特性,在两层图卷积之后可以近似认为两者相关联因此无需在初始图中进行计算。

1.2.1 词节点之间权重计算

本文提出的TextGCN的初始输入向量是词和文档全部用one-hot编码表示。文档-词的边基于词在文档中的出现信息,使用TF-IDF作为边的权重。词-词的连边基于词的全局词共现信息。词共现信息使用一个固定大小的滑动窗口在语料库中滑动统计词共现信息,然后使用点互信息(PMI)计算两个词节点连线的权重。具体如下:

论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification
其中

  • #W表示滑动窗口的总数量

  • #W(i)表示在一个语料库中包含单词i的滑动窗口数量。

  • #W(i,j)表示同时包含单词i和单词j的滑动窗口的数量。

  • PMI为正表示词与词之间的语义相关性较高,为负表示两个词之间的语义联系较小或者不存在,所以只给PMI为正的两个词节点连线。

1.2.2 文档节点与词节点之间的权重计算

TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

  • (1)TF是词频(Term Frequency)
    词频(TF)表示词条(关键字)在文本中出现的频率。这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。

t f i j = n i , j ∑ k n k , j , T F w = 在 某 一 类 词 条 中 w 出 现 的 次 数 该 类 中 所 有 的 词 条 数 目 tf_{ij}=\frac{n_{i,j}}{\sum_kn_{k,j}},TF_w = \frac{在某一类词条中w出现的次数}{该类中所有的词条数目} tfij=knk,jni,j,TFw=w
其中 n i , j n_{i,j} ni,j 是该词在文件 d j d_j dj 中出现的次数,分母则是文件 d j d_j dj 中所有词汇出现的次数总和;

  • (2) IDF是逆向文件频率(Inverse Document Frequency)
    逆向文件频率 (IDF) :某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到。

如果包含词条t的文档越少, 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 是语料库中的文件总数。 ∣ j : t i ∈ d j ∣ |{j:ti∈dj}| j:tidj 表示包含词语 ti 的文件数目(即 n i , j ≠ 0 n_{i,j}≠0 ni,j=0 的文件数目)。如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用 1 + ∣ j : t i ∈ d j ∣ 1+|{j:ti∈dj}| 1+j:tidj,即
I D F = l o g ( 语 料 库 的 文 档 总 数 包 含 词 条 w 的 文 档 数 + 1 ) , 分 母 之 所 以 要 + 1 , 为 避 免 分 母 为 0 IDF=log(\frac{语料库的文档总数}{包含词条w的文档数+1}),分母之所以要+1,为避免分母为0 IDF=log(w+1)+10

  • (3)TF-IDF实际上是:TF * IDF
    某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
    T F − I D F = T F ∗ I D F TF-IDF=TF*IDF TFIDF=TFIDF
    TF-IDF算法非常容易理解,并且很容易实现,但是其简单结构并没有考虑词语的语义信息,无法处理一词多义与一义多词的情况。

TF-IDF算法的应用:
1)搜索引擎;(2)关键词提取;(3)文本相似性;(4)文本摘要

1.3 图卷积

整个网络的计算公式
论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification

损失函数
论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification

1.4 算法总结

  • 1.(document跟document)之间是没有边连接的,但是在经过两层后他们实际上有共通,因为document在第一层会考虑到和它相连的边,在第二层会继续往外考虑,所以(document跟document)有些边就共通了。

  • 2.参数敏感性
    不同滑窗大小会影响模型准确率。实验表明,滑窗越大,平均准确率随之提高,当滑窗到达某一临界值时,平均准确率有所降低。因为当滑窗设置过小时,不能有效保留全局词的共现信息;当滑窗设置过大时,每个滑窗内关联度不够紧密的边的比例有所增加。
    不同的嵌入表示维度也会影响模型准确率。当第一层的嵌入维度过低时,会丢失一些标签信息;当嵌入维度过高时,对模型的分类能力没有改善,甚至需要更多的训练时间。因此,选择一个合适的嵌入维度很重要。

  • 3.模型缺点
    虽然Text GCN有很强的文本分类能力和词、文档嵌入表示能力,但是模型的主要局限在于Text GCN模型有内在传导性,无标签的测试文档doc节点包含在GCN的训练集中。换句话说,Text GCN不能快速产生嵌入表示,并预测没有出现过的文档。可能的解决方案有介绍归纳法和fast GCN模型。

2. 实验

论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification
论文笔记:AAAI 2019 Graph Convolutional Networks for Text Classification