[标题]
《Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks》

[代码地址]
tensorflow: https://github.com/CRIPAC-DIG/TextING
pytorch: https://github.com/beiweixiaoxu/TextING-pytorch
[知识储备]
什么是GNN(Graph Neural Networks)?

什么是transductive learning 和 inductive learning?

目录

  • 一、背景与概览
    • 1.1 相关研究
    • 1.2 贡献点
    • 1.3 相关工作
  • 二、模型
    • 2.1 Graph Construction
    • 2.2 Graph-based Word Interaction
    • 2.3 Readout Function
    • 2.4 training object
    • 2.5 Model Variant
  • 三、实验与评估
  • 四、结论与个人总结
  • 五、参考
  • 六、拓展
    • 数据预处理
    • 模型
      • GraphLayer
      • ReadoutLayer

一、背景与概览

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,但似乎是每一个单词(hvh_vhv)有一个(由自己x一个参数而来的)权重(sigmoid(f1(hv))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
  • 图中不存在句子节点,所以句子和单词之间没有联系
  • 单词和单词之间依然是使用滑动的窗口,但没有使用PMI指标
  • GNN感觉和GCN差不多,但文中用的是GGNN
  • 如何批处理?--------->需要把feature和adj都padding成 ?x max_length x dim 和 ? x max_length x max_length的规格
  • 句子向量表示通过pooling得到

五、参考

如何理解 inductive learning 与 transductive learning? - CharlesFeng的回答 - 知乎
https://www.zhihu.com/question/68275921/answer/529156908
tf.reduce_sum( ) 函数用法
numpy中pad函数的常用方法

六、拓展

下面是部分代码的理解。

数据预处理

以R8数据集的训练集为例,通过preprocess_adjpreprocess_features把train_adj和train_feature分别padding成(4937, 291, 291)和(4937, 291, 300)维度的矩阵,同时还有一个train_mask(4937, 291, 1),对于第i个句子而言,train_mask[i]这一行只在前"句子长度"的位置上为1.

模型

GraphLayer

  1. h(t−1)Wah^(t-1)W_ah(t1)Wa

    Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks论文理解相关推荐

    1. 阅读笔记(Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks)

      Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks (每个文档都有自己 ...

    2. Every Document Owns Its Structure: Inductive Text Classification via GNN (TextING)

      文章目录 摘要 引言 文本分类方法 TextING构建思路和创新点 方法 构图 基于图的词交互 读出函数 模型变种 实验 数据集 对比模型 实验设置 结果 参考文献 摘要   文本分类是自然语言的基础 ...

    3. 【笔记】Every Document Owns Its Structure Inductive Text Classifification via

      [笔记]Every Document Owns Its Structure: Inductive Text Classifification via Graph Neural Networks 一.背 ...

    4. 《Bag of Tricks for Node Classification with Graph Neural Networks》阅读笔记

      论文地址:Bag of Tricks for Node Classification with Graph Neural Networks 一.概述 本文作者总结了前人关于图上半监督节点分类任务的常用 ...

    5. GNN Tricks《Bag of Tricks of Semi-Supervised Classification with Graph Neural Networks》

      Wang Y. Bag of Tricks of Semi-Supervised Classification with Graph Neural Networks[J]. arXiv preprin ...

    6. SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 论文/GCN学习笔记

      1 前置知识:卷积与CNN 该内容在论文中并没有涉及,但理解卷积和CNN对于GCN的理解有帮助,因为GCN是将CNN推广到新的数据结构:graph上面. 1.1与1.2的内容均来自视频:https:/ ...

    7. Node Classification with Graph Neural Networks(使用GNN进行节点分类)

      文章目录 Setup 准备数据集 处理和可视化数据集 拆分数据集为分层训练集和测试集 训练和评估的实现 Feedforward Network(FFN) 构建一个Baseline神经网络模型 为bas ...

    8. 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks

      Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks论文解读 1. 概述 2. ...

    9. paper reading:[renormalization]Semi-supervised Classification with Graph Convolutional Networks

      paper reading:[Renormalization Trick] Semi-supervised classification with graph convolutional networ ...

    最新文章

    1. [整合] 解决 Dell T640 安装显卡后风扇转速不降低
    2. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...
    3. strtotime()加半个小时_椰子鸡这样做太好吃了,一滴水不用加,鲜香嫩滑,做法非常简单...
    4. 【Vue】详解 SFC 与 vue-loader
    5. cloudflare免费设置_Cloudflare 入门教程:使用 Cloudflare 免费 CDN 加速 amp; 保护自己的网站...
    6. 如何判断 linux内核 中 如何判断 条件编译
    7. delphi 分析抓取html,delphi网页数据抓取
    8. 高斯过程回归,得到预测标签和不确定度度
    9. TwinCAT软件部分参数介绍
    10. gke google_使用ExternalDNS扩展GKE
    11. Java内存Happen-Before
    12. Townscaper for Mac 城市建造模拟
    13. redis单点故障方案
    14. 拼多多——多多的数字组合
    15. 安装sulley注意点
    16. 根据当前日期获取本周、本月、本季度相关日期
    17. 《SysML精粹》学习记录--第六章
    18. 微信视频气泡 android,变变微信聊天气泡
    19. 不到 20 人的 IT 公司该去吗?
    20. 【豆瓣达人总结】做爱做的事,看有趣的人

    热门文章

    1. wireshark抓包后查看数据报时的过滤规则/过滤语法及举例说明
    2. win10 C盘满 清理终极大法
    3. linux系统手柄模拟器下载,Switch Amiibo模拟器(Windows|Linux PC + JoyControl + Bluetooth)...
    4. 微信测试号中token和url的设置
    5. CentOS 7 下的软件安装方法及策略
    6. 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
    7. 云计算企业级小架构部署应用综合练习-二- Ansible 部署 Elastic Stack(ELK)
    8. 数年沉寂之后,VR/AR产业开始起飞!
    9. K8s学习(二)——核心组件
    10. 【沃顿商学院学习笔记】宏观经济学——11全球治理Global Governance