【论文总结】TextGCN
点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要4分钟
跟随小博主,每天进步一丢丢
来自 | 知乎
地址 | https://zhuanlan.zhihu.com/p/111945052
作者 | S先森
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
这篇论文,还是挺简单的基于GCN的应用型文章,主要的贡献在于构建了基于文本和词的异构图,使得在GCN上能够对文本进行半监督分类。
Graph Convolutional Networks for Text Classification
既然图是核心,那我们先看看图是怎么构建的。
1. 图的构建
1.1 节点
这个图包含了两种节点,分别是document节点和word节点,这不难理解,文本就只有词嘛。关于词的预处理,只要我们按照文章给出要求(包括低频词处理、停留词处理、标点符号的处理)来处理,基本上就能获得同样的节点数量(特别是词节点数量)。
1.2 边
这里的边也是包含两种边:document-word 和 word-word
document-word
这个边的权重就是 TF-IDF,用 sklearn 的 TfidfTransformer 函数就能获得,当然,也可以按照作者代码里的那样自己手写。
但是用 TfidfTransformer 值得注意的是一些参数的调整,我下面直接给出代码吧。
使用 Pipeline是为了能够处理更大量的文本,不让会导致内存溢出。
text_tfidf = Pipeline([("vect", CountVectorizer(min_df=1,max_df=1.0,token_pattern=r"\S+")),("tfidf", TfidfTransformer(norm=None,use_idf=True,smooth_idf=False,sublinear_tf=False))])
值得注意的 CountVectorizer 中的这三个参数 min_df, max_df 和 token_pattern,如果按照默认的来,会过滤掉一些词,这样就没法完全重现文章的最后效果。
而 TfidfTransformer 中,就要注意 norm=None ,这些都是复现过程中的一些坑。
这样,就能构建document-word的边及其权重。
word-word
在这里,文章用了一个叫做 PMI 的方法来计算的。简单来说,就是在一定的范围内,这两个词共现的频率,这很容易理解,就是共现次数越高,权重越大。
首先我们需要用一个长度为 L 的窗口(window)来把一个句子切割成一个个小段 (注意词去重)。这样,我们就会获得一大堆 windows(一堆长度为 L 的词片段),也就是 #W。
然后统计 词在 windows 里出现的频率;再统计 windows 每个window 里 词 两两组合 的频率。这样我们就能获得 #W(i) 和 #W(i, j)。
最后就是根据公式来计算了,如下图。
这样子,我们就完成了TextGCN里所说异构图了。
其他
TextGCN使用的是 one-hot 作为特征输入,我试了用随机或者GloVe、BERT,效果都莫名其妙地差,不知道为啥呢?
训练集和测试集 得按照数据集里标注的那样切割,随机划分,效果也会不好。
word-word PMI 这个边,去除了会有1%~3%的准确率下降,但训练速度会快很多,毕竟减少了很多边。
迭代次数和训练率也会影响最后的复现效果,严格按照论文里给出的条件吧。
那就总结到这里,以后补一下其他实验吧。
交流学习,进群备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
广告商、博主勿入!
【论文总结】TextGCN相关推荐
- 图注意力网络_EMNLP 2019开源论文:针对短文本分类的异质图注意力网络
本文同步发表在 PaperWeekly EMNLP 2019开源论文:针对短文本分类的异质图注意力网络mp.weixin.qq.com 本文由北邮和南洋理工联合发表在自然语言处理顶会 EMNLP 2 ...
- 我的第一篇论文诞生的故事
点击上方,选择星标或置顶,每天给你送干货! 作者:郭必扬时间:2020-12-16 [插播]年初抽47份大奖!!参加的人还很少,后天开奖! 新年大礼包:Xbox.Switch,PopMart芝麻街系列 ...
- 【论文阅读】Hierarchical Multi-modal Contextual Attention Network for Fake News Detection --- 虚假新闻检测,多模态
本博客系本人阅读该论文后根据自己理解所写,非逐句翻译,欲深入了解该论文,请参阅原文. 论文标题:Hierarchical Multi-modal Contextual Attention Networ ...
- NLP相关论文上新-2019
文章目录 2019.07 0724 0725 0726 0729 0730 0731 2019.08 0801 0802 0815 个人觉得有价值.有帮助的论文 2019.07 0724 计算机视觉和 ...
- 论文溯源树AMiner
来自 DBLP.ArXiv.STM 等多家学术出版机构和平台的数据表明,在过去 20 年间,计算机科学.物理学.统计学等研究领域的出版物总量都有大幅增加.像 CVPR.AAAI 等有关人工智能等新兴领 ...
- 论文阅读工具ReadPaper
对于搞科研的同学们来说,看论文是要经历的第一关,尤其是要读好多篇论文的时候,更是着实令人头大. 这不,最近无意中发现了个在线论文阅读网站:readpaper.com,号称「论文阅读笔记神器,硕博科研学 ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
- Distilling the Knowledge in a Neural Network 论文笔记蒸馏
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/bryant_meng/article/ ...
- Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
近日,PyTorch 社区发布了一个深度学习工具包 PyTorchHub, 帮助机器学习工作者更快实现重要论文的复现工作.PyTorchHub 由一个预训练模型仓库组成,专门用于提高研究工作的复现性以 ...
- ELMo解读(论文 + PyTorch源码)
ELMo的概念也是很早就出了,应该是18年初的事情了.但我仍然是后知后觉,居然还是等BERT出来很久之后,才知道有这么个东西.这两天才仔细看了下论文和源码,在这里做一些记录,如果有不详实的地方,欢迎指 ...
最新文章
- 九度 题目1548:平面上的点
- 4月3日 尤金.卡巴斯基在北大精彩演讲
- Python多线程下载网络URL图片的方法
- chromium net android移植
- C# 跨线程调用控件
- react(80)--判断值是否udefined
- 剑指offer(刷题21-30)--c++,Python版本
- java 获得文件的行数据_Java 读取文件指定行数据
- PowerDesigner(二)-项目和框架矩阵
- 第35次Scrum会议(11/23)【欢迎来怼】
- 我33岁,从国企主管零基础转型大数据开发,年薪涨了20W
- Linux的链接工具 putty 以及一些命令。
- sts bug SpringJUnit4ClassRunner
- phpexcel 日期 时分秒_PHPExcel对于Excel中日期和时间类型的处理
- 《精通脚本黑客》读本书吧
- 用C语言计算矩阵求和
- 免费把你的 GoogleDrive 和 OneDrive 变成图床
- latex参考文献引用【bibtex】
- c语言致命错误解决,解决VC++编译报错error C2248的方案
- 证券基础知识——证券标识代码