简介
文本分类是自然语言处理中一个常见的基础问题。我们常用的文本表示方法有CNN,RNN,LSTM等等。这些模型会优先考虑文本的顺序信息和局部信息,能够很好的捕获连续词序列中的语义和语法信息,但是它忽略了全局的词共现,词共现中携带了不连续以及长距离的语义信息。
方案
图卷积网络(GCN)
本文主要使用图卷积网络,图卷积网络公式如下:
其中
这里的公式使用的都是矩阵表示,所以看上去会有些奇怪,可以参考我的上一篇文章几种图神经网络方法总结(Graph Neural Network)里面对GCN的表述比较清晰易懂。
从文本中建图
这是本文中非常重要的一部分,也是图神经网络需要解决的一个开放性问题之一,如何从非结构化数据(如图、文本)生成图结构表示。本文将词和文档同时作为节点进行建图,如下图
图中节点的数量是单词数量+文档数量,O开头的是文档节点,其他的是词节点。图中黑线的线代表文档-词的边,灰色的表示词-词的边。R(x)表示x的embedding表示。节点的不同颜色代表文档的不同类型。
本文提出的TextGCN的初始输入向量是词和文档全部用one-hot编码表示。文档-词的边基于词在文档中的出现信息,使用TF-IDF作为边的权重。词-词的连边基于词的全局词共现信息。词共现信息使用一个固定大小的滑动窗口在语料库中滑动统计词共现信息,然后使用点互信息(PMI)计算两个词节点连线的权重。具体如下:
其中
#W表示滑动窗口的总数量
#W(i)表示在一个语料库中包含单词i的滑动窗口数量。
#W(i,j)表示同时包含单词i和单词j的滑动窗口的数量。
PMI为正表示词与词之间的语义相关性较高,为负表示两个词之间的语义联系较小或者不存在,所以我们只给PMI为正的两个词节点连线。
Text GCN
本文使用一个简单的二层图卷积网络,结构如下:
第一层使用ReLU作为激活函数,第二层使用softmax函数作分类。损失函数为交叉熵:
结论分析
Text GCN可以捕获文档和词的关系以及全局词共现信息,文档节点的标签信息可以通过他们的邻居节点传递,传递给其他的单词和文档。在情感分类任务上(MR语料)上Text GCN没有表现出优于其他基准模型的结果,主要是因为GCN忽略了词序信息,这在情感分类当中时非常有用的。
实验还证明了参数的敏感性。在Text GCN中,窗口大小和第一层GCN输出的向量维度大小的选择都对结果有影响,较小的窗口不能得到有效地全局词共现信息,太大的窗口会使得本来关系并不密切的两个节点之间产生连边。
在本文的实验中,Text GCN可以有很好的文本分类结果,但是不能快速生成embedding,也不能为新的文本作分类。在未来的工作中可以引入归纳机制,注意力机制,发展无监督的text GCN框架。