Text Level Graph Neural Network for Text Classification(https://arxiv.org/pdf/1910.02356.pdf)
一、文章概述
1.1 模型图
图1:单一文本的图形结构“他为您感到非常骄傲。” 为了便于显示,在此图中,我们为节点“非常”设置了p = 2(节点和边用红色表示),而其他节点设置了p = 1(蓝色表示)。 在实际情况下,会话期间的p值是唯一的。 图中的所有参数均来自全局共享表示矩阵,该矩阵显示在图的底部。
1.2构图方式
其中N和E是图的节点集和边集,而N中的单词表示和E中的边权重均取自全局共享矩阵。 p表示连接到图形中每个单词的相邻单词的数量。 此外,我们将训练集中出现次数少于k次的边缘统一映射到“公共”边缘,以使参数得到充分训练。
1.3消息传递
卷积可以从局部特征中提取信息(LeCun等,1989)。 在图域中,卷积是通过频谱方法(Bruna等人,2014; Henaff等人,2015)或非频谱方法(Duvenaud等人,2015)实现的。 本文采用一种称为消息传递机制(MPM)的非频谱方法(Gilmer et al。,2017)进行卷积。 MPM首先从相邻节点收集信息,并根据其原始表示形式和所收集的信息来更新其表示形式,定义为:
其中Mn∈R d是节点n从其邻居收到的消息; max是归约函数,它将每个维上的最大值组合在一起以形成新的向量作为输出。 N p n表示代表原始文本中n的最近p个单词的节点; ean∈R 1是从节点a到节点n的边缘权重,可以在训练过程中进行更新; rn∈R d表示节点n的前一个表示。 ηn∈R 1是节点n的可训练变量,指示应保留rn的信息量。 r 0 n表示节点n的更新表示。
MPM使节点的表示受邻域影响,这意味着这些表示可以从上下文中获取信息。 因此,即使对于多义词,上下文中的确切含义也可以通过来自邻居的加权信息的影响来确定。 此外,文本级图的参数取自全局共享矩阵,这意味着表示也可以像其他基于图的模型一样带入全局信息。
1.4文本表示
最后,使用文本中所有节点的表示来预测文本的标签:
1.5训练损失
训练的目的是使地面真实标签与预测标签之间的交叉熵损失最小:
二、参数设置
我们将节点表示的维数设置为300,并使用随机向量或Glove进行初始化(Pennington等,2014)。 将第2.1节中讨论的k设置为2。我们使用Adam优化器(Kingma和Ba,2014),初始学习率为10-3,而L2权重衰减设置为10-4。 在密集层之后应用保持概率为0.5的压降。 我们的模型的批量大小为32。如果验证损失连续10个周期没有减少,我们将停止训练。
对于基准模型,我们使用其原始文件或实施中的默认参数设置。 对于使用预训练词嵌入的模型,我们使用了300维GloVe词嵌入。
三、代码
3.1代码结构
先运行preprocess.py,再运行train.py
temp中有Google-vectors-negative.bin文件需要提前下载
链接:https://pan.baidu.com/s/1lCp-A3yrmxS4VOy1bnrEog
提取码:plcy