[标题]
《Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks》
[代码地址]
https://github.com/CRIPAC-DIG/TextING
[知识储备]
什么是GNN(Graph Neural Networks)?
什么是transductive learning 和 inductive learning?
目录
一、背景与概览
1.1 相关研究
文本分类主要依赖于特征的建模。传统方法有朴素贝叶斯、k近邻、支持向量机,但特征工程耗费很大;深度学习方法有RNN、CNN、TextCNN、TextRNN、TextRCNN,但缺乏长距离或者是非连续的单词交互;为了解决序列模型的缺陷,图卷积神经网络方法有TextGCN,但之前的方法中,1. 单词之间的上下文关系被忽略了 2. 在训练过程中,测试样本也被构建成图,这导致它们天生具有传导性(transductive),不容易进行归纳学习(inductive)。(意思是:TextGCN把test data作为unlabeled data和train data一起构建成图,在训练过程中就利用了test data的特征,这是transductive learning;而inductive learning也同样是这样做的,但一起构建成图的哪些unlabeled data只是单纯的不带标签的数据,而不是test data,真正的test data并不参与训练,而是另外进行预测)
1.2 贡献点
-使用GNN,每篇文章是单独的图,单词之间的上下文关系可被学习
-inductive learning而非transductive learning
-SOTA
1.3 相关工作
基本都在相关研究中
二、模型
2.1 Graph Construction
和textgcn不同,其图中没有句子节点,而都是单词节点,图的符号表示如下:
其中,V是单词节点的集合, E是边的集合,和textgcn一样,使用固定大小的窗口,描述了单词之间的共线信息(可能也用的是PMI指标)
看到这里觉得单词的上下文关系似乎依然没有解决?
2.2 Graph-based Word Interaction
Gated Graph Neural Networks的过程,这里的A是邻接矩阵,公式(1)是GCN的内容,在此基础上,借由门控机制的思想,引入z(更新门)和r(重置门),来做进一步的计算。图没看懂…
2.3 Readout Function
公式(6)是图中的attentin layer,但似乎是每一个单词(
h
v
h_v
hv)有一个由自己计算而来的权重(
s
i
g
m
o
i
d
(
f
1
(
h
v
)
)
sigmoid(f_1(h_v))
sigmoid(f1(hv)))。
公式(7)是图中的 average pooling 和 max pooling,但不知道为什么 average pooling在图重是Sum…
2.4 training object
得到了document的向量表示,拿去分类。
2.5 Model Variant
缝合怪似乎又出现了。
a multichannel branch TextING-M利用投票机制,第一个voter就是上述TEXTING模型,第二个voter是TextGCN,具体看代码。
三、实验与评估
超参数
- lr=0.01
- dropout=0.5
- word interaction step:视数据集而定
- sliding window size:视数据集而定
使用glove embedding
四、结论与个人总结
- 词向量使用glove
- 图中不存在句子节点,句子向量表示通过pooling得到
- GNN感觉和GCN差不多,但文中用的是GGNN
- 如何批处理?
五、参考
六、拓展
下面是部分代码的理解。