Every Document Owns Its Structure: Inductive Text Classification via GNN (TextING)
文章目录
- 摘要
- 引言
- 文本分类方法
- TextING构建思路和创新点
- 方法
- 构图
- 基于图的词交互
- 读出函数
- 模型变种
- 实验
- 数据集
- 对比模型
- 实验设置
- 结果
- 参考文献
摘要
文本分类是自然语言的基础,GNN进来被广泛用于该任务。然而,现有的基于图的工作既不能捕捉每个文档中的上下文关系也不能实现对新单词的归纳学习。在本工作中,为了克服如上问题,提出通过GNN进行归纳文本分类的模型TextING。首先对每一个文档建立独立的图,然后使用GNN学习基于局部结构的细粒度词表示。该方法也可以在新文档中对没有见过的词进行有效的嵌入。最后,将词节点合并为文档嵌入。在四个基准数据集上进行了大量实验,结果表明文章所提方法优于文本分类的先进方法。
引言
文本分类方法
传统方法:朴素贝叶斯、K近邻、支持向量机等。它们主要依赖手工特征,牺牲了劳动力和效率。
深度学习方法:RNN、CNN为典型,及其延伸方法TextCNN、TextRNN和TextRCNN等。它们只关注词的局部位置,因此忽略了长距离和非连续的词的交互。
图方法:不把文本视作一个序列而实将其看作一组共现的单词。如TextGCN将文本分类任务转换为一个节点分类任务,Huang等(2019)通过引入信息传递机制减少了内存消耗。
图方法有两个主要的弊端:首先,忽略了文档中上下文相关的单词关系;其次,由于图的全局结构,测试文档在训练中是强制性的。因此它们有着固有的转导性,并难以进行归纳学习。
TextING构建思路和创新点
如上,文章通过GNN提出了一种新颖的文本分类方法TextING,该方法仅通过训练文档就可以详细的描述词词之间的关系,并在测试中对新文档进行归纳。方法使用滑动窗口在每个文档中构建独立的图,词节点的信息通过门控GNN传递给他们的邻居,然后聚合到文档嵌入中。
作者进行了大量的实验验证模型相较于基线方法的优点,即便测试中的词很多都没有出现过。文章的主要贡献如下:
- 提出了一种用于文本分类的GNN,其中每个文档都是一个独立的图,并且文本级别的单词交互可以在其中学习。
- 所提方法可以对在训练中未出现的新单词进行归纳。
- 验证了方法的性能要优于已有的先进文本分类方法。
方法
方法的三个主要部分:构图、基于图的词交互、读出函数;
构图
通过将独特的词表示为顶点,将词与词之间的共同出现表示为边来构建文本文档的图。文本以标准化方式进行预处理,包括表计划和停止字删除。顶点嵌入使用单词特征进行初始化。由于每个文档建立了独立的图,词特征信息在词的交互阶段被传播和聚合。
基于图的词交互
在每个图上使用门控GNN学习词节点的嵌入。每个节点可以从它的邻居节点获得信息并与自身的表示合并来更新。当图层对一阶邻居进行操作时,我们可以将该层堆叠t次来实现高阶特征交互,则节点可以到达t跳远的另一个节点。
其中,AAA是邻接矩阵,σ\sigmaσ是sigmoid函数,W,U,bW, U, bW,U,b是训练权重和偏置,z,rz, rz,r分别表示更新门和重置门,决定邻居信息对当前节点嵌入的贡献程度。
读出函数
在词节点得到充分更新后,它们被聚合为文档的图级别的表示。基于此,最终的预测被产生。
其中,f1,f2f_{1}, f_{2}f1,f2是两个多层的感知机,前者作为软注意力权重,后者作为非线性特征变换。除了平均加权的词特征之外,将最大池化函数用于图表示。这背后的想法是,每个词都在文本中发挥作用,关键词应该更明确地发挥作用。最后通过将图级向量喂入softmax层得到预测标签,损失函数使用交叉熵损失
模型变种
使用一个多通道的分支TextING-M拓展了模型,具有局部特征的图(TextING)和具有全局结构的图(来自TextGCN的子图)可以并行工作。节点保持不变,而后者的边是从每个文档的大图(建立在整个语料库上)中提取的。分别训练它们并使它们对最终的投票比为1:1。
实验
实验测试主要关注三个方面:1)所提方法和其他比较模型的性能及优点,2)方法对从未出现过的词的适应性,3)关于词语如何影响一个文档的方法的可解释性。
数据集
四个基线数据集:
- MR:分为正面和负面情绪的电影评论
- R8:将出现在路透社的文档分为8类
- R52:将出现在路透社的文档分为52类
- Ohsumed:将医疗摘要分为23个心血管疾病类别
对比模型
三类模型:
- 传统的深度学习方法TextCNN和TextRN;
- 简单而有效的策略fastText和SWEM;
- 用于文本分类的基于图的方法TextGCN;
实验设置
- 训练集:验证集=9:1,并根据验证集的性能表现调整超参数。
- Adam优化器,学习率0.01,dropout=0.5。
- 对于单词的嵌入,使用预训练的Glove。
结果
参考文献
[1] Zhang Y, Yu X, Cui Z, et al. Every document owns its structure: Inductive text classification via graph neural networks[J]. arXiv preprint arXiv:2004.13826, 2020.
Every Document Owns Its Structure: Inductive Text Classification via GNN (TextING)相关推荐
- Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks论文理解
[标题] <Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks& ...
- 阅读笔记(Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks)
Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks (每个文档都有自己 ...
- 【笔记】Every Document Owns Its Structure Inductive Text Classifification via
[笔记]Every Document Owns Its Structure: Inductive Text Classifification via Graph Neural Networks 一.背 ...
- 论文阅读【10】Label-Specific Document Representation for Multi-Label Text Classification
1.概述 1.1 论文相关 题目:多标签文本分类的标签特定文档表示(Label-Specific Document Representation for Multi-Label Text Classi ...
- Text Classification Algorithms: A Survey——1. Introduction引言
"Most text classification and document categorization systems can be deconstructed into the fol ...
- Bag of Tricks for Efficient Text Classification论文阅读及实战
本文目录 一.Fasttext算法综述 二.原理介绍及优化策略 三.Fasttext算法实战(注:以下代码仅在Linux系统下使用!) 四.参考资料 本文目录(仅做浏览用,暂时不支持页面内跳转) 一. ...
- 论文列表——text classification
https://blog.csdn.net/BitCs_zt/article/details/82938086 列出自己阅读的text classification论文的列表,以后有时间再整理相应的笔 ...
- 朴素贝叶斯案例之text classification
准备数据:20news groups 你可以在github上下到该数据集:20newsbydate.tar.gz 然后找到dataset loader 打开twenty_newsgroups.py 将 ...
- 【层级多标签文本分类】Hierarchical Multi-label Text Classification: An Attention-based Recurrent Network Approa
Hierarchical Multi-label Text Classification: An Attention-based Recurrent Network Approach 1.背景 1.作 ...
最新文章
- windows下django学习笔记(二)--HelloWorld
- 开发成本谁更高:Android PK iOS
- 201521123063 《Java程序设计》 第7周学习总结
- dll反编译(dll反编译工具)
- win10手柄震动测试软件,win10系统测试手柄震动频率的操作方法
- GD32F103基础教程—硬件介绍(四)
- Python3.6实现付费酷狗音乐免费下载(已用tkinter封装GUI)
- Java并发练习:无锁编程
- jav学习之————IO流
- 瑞士央行干预汇市以遏制瑞士法郎上涨
- cf 467 B. Sleepy Game
- Python 位操作符(Bitwise)
- 计算机组成与设计chapter3,Chapter 1 计算机概要与技术
- 微信投票微信刷票的技巧和意义
- Excel日期按秒自增公式
- tl494组成的超声波发射电路_由TL494构成的恒流闭环控制电路的设计与实现 - 全文...
- 如何将思科路由器恢复到出厂默认设置?
- valgrind的使用、原理
- 计算机 教学活动设计方案,教学设计方案
- 统计学中特征函数理解和学习
热门文章
- 神经网络模型画图工具,神经网络模型图怎么画
- 技术学校面试该说什么_我第一次现场技术面试后,香港专业教育学院学到了什么...
- linux脚本获取经纬度,JS实现根据详细地址获取经纬度功能示例
- java 文件内容查找_java 查找一个TXT文件内容。
- JAVA-多线程 三 {多线程状态}JAVA从基础开始 -- 3
- STM32前言知识总结
- 对称复曲线(直线、缓曲、圆曲、缓曲、直线)中边桩坐标计算
- [Algorithms] Gale-Shapley算法(婚姻匹配问题,高考录取机制)
- Electron--快速入门
- box-sizing属性是什么作用?