《Character-level Convolutional Networks for Text Classification》论文阅读笔记

1. Abstract

本文对使用字符级卷积网络(ConvNet)进行文本分类进行了实证探索。 我们构建了几个大型数据集,以表明字符级卷积网络可以实现最先进的或有竞争力的结果。 与传统模型(如词袋、n-gram 及其 TFIDF 变体)以及深度学习模型(如基于单词的 ConvNet 和递归神经网络)进行比较。



2. Introduction

文本分类是自然语言处理的一个经典主题,其中需要为自由文本文档分配预定义的类别。 文本分类研究的范围从设计最佳特征到选择最佳的机器学习分类器。 迄今为止,几乎所有的文本分类技术都是基于单词的,其中一些有序单词组合(例如n-gram)的简单统计通常表现最好。

另一方面,许多研究人员发现卷积网络(ConvNets)对于从原始信号中提取信息非常有用,范围从计算机视觉应用到语音识别等。 特别是,深度学习研究早期使用的时滞网络本质上是对顺序数据进行建模的卷积网络。

在本文中,我们探索将文本视为字符级别的一种原始信号,并将时间(一维)ConvNet 应用于其中。 在本文中,我们仅使用分类任务来举例说明 ConvNet 理解文本的能力。 从历史上看,我们知道卷积网络通常需要大规模数据集才能工作,因此我们也构建了其中的几个数据集。 与传统模型和其他深度学习模型进行了广泛的比较。

本文的贡献之一,构建了多个文本分类数据集,极大地推动了文本分类的研究工作。

文献中探索了将卷积网络应用于文本分类或自然语言处理。 事实证明,ConvNet 可以直接应用于分布式或离散单词嵌入,而无需了解语言的句法或语义结构 这些方法已被证明比传统模型具有竞争力。

还有使用字符级特征进行语言处理的相关作品。 其中包括使用带有线性分类器的字符级 n-gram,以及将字符级特征合并到 ConvNets 中。 特别是,这些 ConvNet 方法使用单词作为基础,其中在单词或单词 n-gram级别提取的字符级特征形成分布式表示。 观察到词性标记和信息检索的改进。

本文是第一篇仅将 ConvNet 应用于字符的文章。 我们表明,当在大规模数据集上进行训练时,深度卷积网络不需要单词知识,此外,先前研究的结论是卷积网络不需要有关语言的句法或语义结构的知识。 这种工程简化对于可以适用于不同语言的单个系统至关重要,因为无论是否可以分割成单词,字符始终构成必要的构造。 仅处理字符还有一个优点,可以自然地学习异常字符组合,例如拼写错误和表情符号。

本文的历史意义之二,提出的ChatTextCNN方法因为只使用字符信息,所以可以用于多种语言中。



3. 传统经典算法模型

在这里插入图片描述

3.1 Bag of words

算法:
1.构建一个50000个词的词表
2.对于一篇文档d,统计词表中每个词在d中出现的次数
3.根据词表中每个词在d中出现的次数,构建一个词表大小的向量。

对于 TFIDF,我们使用计数作为术语频率。 逆文档频率是样本总数与训练子集中包含该单词的样本数除以对数。 通过除以最大特征值来对特征进行归一化。

在这里插入图片描述

3.2 基于词向量的k-means

算法:
1.首先将每个词映射成一个词向量(使用训练好的词向量)
2.在所有的词上使用k-means进行聚类,类别数为5000
3.对于每个词,都划分其属于哪个k-means类
4.对于一篇文档d中的每个词,查看它属于哪个类别,然后一篇文档就可以表示成一个5000维的向量,每个位置代表这篇文档中有多少属于这个类别的词。
5.后面接多分类的logistic回归。


3.3 基于词的卷积网络模型

可以看我前面的两篇blogTextCNN论文阅读笔记DCNN论文阅读笔记


3.4 长短时记忆模型

算法:
1.将训练好的word2vec词向量输入到LSTM
2.LSTM每个时间步的输出取平均作为文档的表示
3.后面接一个多分类的logisitc回归
在这里插入图片描述



4.Character-level Convolutional Networks

4.1 一维卷积

这里的卷积操作和TextCNN论文里所做的卷积操作是一样的。

在这里插入图片描述

4.2 字符量化

实际上就是把字符映射为数字,这里没用字符嵌入的表示,而是直接使用独热编码来表示。不在字符表中的字符用全零向量表示。

4.3 model design

网络由6个卷积层,3个全连接层组成。第1、2、6个卷积后有最大池化层。输入的特征数等于70,输入特征长度为1014。作者认为1014个字符已经可以捕获大部分感兴趣的文本。还在3个全连接层之间插入2个dropout 模块来正则化。dropout为0.5。

在这里插入图片描述

4.3.1 卷积层设置

在这里插入图片描述
网络提供了两种卷积尺寸,大的采用1024个卷积核,小的采用256个卷积核。使用高斯分布对权重进行初始化,large model采用的均值和标准差分别为(0, 0.02)。small model采用的均值和标准差分别为(0,0.05)。

feature相当于2d卷积中的通道数(每层的卷积核数量),kernel相当于2d卷积中的卷积核尺寸。池化操作采用非重叠的最大池化,即池化尺寸等于步长3。


4.3.2 全连接层设置

在这里插入图片描述

4.3.3 模型优缺点

缺点:

  1. 字符级别的文本长度特别长,不利于处理长文本的分类
  2. 只使用字符级别信息,所以模型学习到的语义方面的信息较少
  3. 在小语料上效果较差

优点:
4. 模型结构简单,并且在大语料上效果很好
5. 可以用于各种语言,不需要做分词处理
6. 在噪音比较多的文本上表现较好,因为基本上不存在OOV问题、


4.3.4 用PyTorch搭建Model

import torch
import torch.nn as nn
import torch.nn.functional as F
 
class CharTextCNN(nn.Module):
    def __init__(self,config):
        super(CharTextCNN,self).__init__()
        in_features = [config.char_num] + config.features[0:-1]
        # layer1的输入通道数为字符个数(70);
        # layer2~输入通道数(论文中的 small/large Feature)依次从list读入,注意没有 list最后一个元素,因为list的第一个元素为layer2的输入通道(即第一层的输出通道数),依次...
        out_features = config.features  # 读入输出通道数
        kernel_sizes = config.kernel_sizes  # 读取卷积核尺寸(论文中的kernel)
 
        self.convs = []
        self.conv1 = nn.Sequential(
                    nn.Conv1d(in_features[0], out_features[0], kernel_size=kernel_sizes[0], stride=1),
                    nn.BatchNorm1d(out_features[0]),
                    nn.ReLU(),
                    nn.MaxPool1d(kernel_size=3, stride=3)
                )
        self.conv2  = nn.Sequential(
            nn.Conv1d(in_features[1], out_features[1], kernel_size=kernel_sizes[1], stride=1),
            nn.BatchNorm1d(out_features[1]),
            nn.ReLU(),
            nn.MaxPool1d(kernel_size=3, stride=3)
        )
        self.conv3 = nn.Sequential(
            nn.Conv1d(in_features
图卷积网络(Graph Convolutional Networks,简称GCN)在文本分类任务中的应用是指将文本数据表示为图结构,然后利用GCN模型从这个图中学习文本特征并进行分类。相比传统的基于词向量的文本分类方法,GCN可以充分利用文本中的语义关系和上下文信息,提高文本分类的准确性。 GCN模型的主要思想是将每个文本表示为一个节点,每个节点与其它节点之间建立连接,形成一个图结构。节点之间的连接可以表示为共现矩阵或者语义关系矩阵,其中每个元素表示两个节点之间的关系强度。在这个图结构中,每个节点的特征可以表示为一个向量,比如词向量、TF-IDF权重等。 GCN模型的核心是基于图卷积操作的神经网络。通过多层的图卷积操作,GCN模型可以逐层聚合节点的特征,并利用节点之间的连接信息进行上下文感知。最终,GCN模型可以将图中节点的特征映射到一个低维向量空间中,然后使用全连接层对向量进行分类。 在文本分类任务中,GCN模型通常用于处理有标签的数据,其中每个文本都有一个标签。模型的训练过程是通过最小化预测标签与真实标签之间的差距来实现的。在预测阶段,GCN模型可以对新的文本进行分类,并输出其属于每个标签的概率。 总之,GCN模型是一种利用图结构进行文本分类的方法,它可以充分利用文本中的语义关系和上下文信息,提高文本分类的准确性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值