文本分类的显式交互模型
摘要
文本分类是自然语言处理的基本任务之一。最近,与浅模型相比,深度神经网络在文本分类任务中取得了有前途的性能。尽管深度模型具有重要意义,但它们忽略了细粒度(单词和类之间的匹配信号)分类线索,因为它们的分类主要依赖于文本级表示。为了解决这个问题,我们引入了交互机制,将词级匹配信号合并到文本分类任务中。特别是,我们设计了一个新的框架,EXPlicit interAction Model(被称为EXAM),配备了交互机制。我们在几个基准数据集上证明了所提出的方法,包括多标签和多类文本分类任务。大量实验结果证明了该方法的优越性。作为副产品,我们已经发布了代码和参数设置以方便其他研究。
简介
文本分类是自然语言处理的基本任务之一,旨在将一段文本内容分类为一个或多个类别。 根据所需类别的数量,文本分类可以分为两组,即多标签(多类别)和多类(唯一类别)。 例如,将文章分类为不同的主题(例如,机器学习或数据挖掘)属于前者,因为文章可能同时处于几个主题之下。 相比之下,将电影的评论分类为其相应的评级等级属于多类组。 多标签和多类文本分词已广泛应用于许多领域,如情感分析(Cambria,Olsher和Rajagopal 2014),主题标记(Grave等2017)和文档分类(Yang et al.2016)。
特征工程在很长一段时间内主导了传统浅文本分类方法的性能。 各种基于规则和统计的特征,如词袋(Wallach 2006)和N-gram(布朗等1992)被设计用于描述文本,并被用于浅层机器学习模型,如线性回归(Zhu和 Hastie 2001)和支持向量机(Cortes和Vapnik 1995)作出判断。 传统解决方案存在两个缺陷:
1)人工提取特征的高劳动强度,
2)数据稀疏性(在给定数据集中N-gram只能发生几次)。
最近,由于能够解决上述问题,深度神经网络(Kim 2014; Iyyer等人2015; Schwenk等人2017; Liu,Qiu和Huang 2016; Grave等人2017)已成为用于文本分类的有希望的解决方案 。 深度神经网络通常学习输入文本的单词级表示,输入文本通常是矩阵,每行/列作为文本中单词的嵌入。 然后,他们将字级表示压缩为具有聚合操作(例如,池化)的文本级表示(向量)。 此后,网络最顶部的全连接(FC)层做出最终决定。 请注意,这些解决方案也称为 基于编码的方法 (Munkhdalai和Yu 2017),因为它们将文本内容编码为潜在的向量表示。
虽然已经取得了很大的成功,但是这些基于深度神经网络的解决方案自然地忽略了细粒度分类线索(即,词和类之间的匹配信号),因为它们的分类基于文本级表示。 如图1所示,这些解决方案的分类(即FC)层通过点积操作将文本级表示与类表示相匹配。 在数学上,它将FC层的参数矩阵解释为一组类表示(每列与一个类相关联)(Press and Wolf 2017)。 这样,文本属于某个类的概率很大程度上取决于它们的整体匹配分数,而不是字级匹配信号,然后这些信号将提供用于分类的显式信号(例如,导弹强烈地指示军事的主题)。
图1:使用文本级匹配进行文本分类的基于编码的方法示意图
为了解决上述问题,我们引入了交互机制(Wang和Jiang 2016b),它能够将字级匹配信号结合到文本分类中。 交互机制背后的关键思想是明确计算单词和类之间的匹配分数。 从单词级表示来看,它计算交互矩阵,其中每个条目是单词和类之间的匹配分数(它们的表示之间的点积),说明了单词级匹配信号。 通过将交互矩阵作为文本表示,后面的分类层可以包含细粒度的单词级信号以用于更精细的分类,而不是简单地进行文本级匹配。
基于交互机制,我们设计了一个EXPlicit interAction Model(称为EXAM)。 具体而言,我们提出的框架由三部分组成:字级编码器,交互层和聚合层。 字级编码器将文本内容投影到字级表示中。 此后,交互层计算单词和类之间的匹配分数(即,构建交互矩阵)。 然后,最后一层将这些匹配分数聚合成每个类的预测。 我们在多标签和多类文本分类上证明了我们提出的EXAM模型。 几个基准测试的广泛实验证明了所提方法的有效性,显著超越了对应的最新方法。
总之,这项工作的贡献有三个:
- 我们提出了一个新的框架,即EXAM,它利用交互机制明确地计算文本分类的词级交互信号。
- 我们在多标签和多类文本分类中证明了所提出的EXAM模型的合理性。 大量实验结果证明了该方法的有效性。
- 我们发布了我们的方法(包括一些基线)的实现和所涉及的参数设置,以方便后来的研究人员。
准备工作
在本节中,我们将介绍两种广泛使用的字级编码器:Gated Recurrent Units(GRU)(Chung et al.2014)和Region Embedding(Qiao et al.1188)。 这些编码器将一段输入文本投影到单词级表示中,作为所提方法的构建块。 对于本文中的符号,我们使用粗体大写字母(例如,)和粗体小写字母(例如,)分别表示矩阵和向量。我们使用非粗体字母(例如,x)来表示标量,以及 希腊字母(例如)作为参数。 用于表示矩阵的第行,表示第列向量,用于表示第i行和第j列交叉的元素。
Gated Recurrent Units
由于能够捕获顺序依赖性并且易于优化(即避免梯度消失和爆炸问题),Gated Recurrent Units(GRU)成为广泛使用的字级编码器(Liu,Qiu和Huang 2016; Yogatama et al.2017)。 通常,GRU在两个阶段中生成字级表示:
1)将文本中的每个字映射到embedding(实值向量),
2)将word embeddings序列投影到隐藏表示序列中,其编码顺序依赖。
Word embedding:字嵌入是将字从one hot向量映射到低维和实值向量的一般方法。 通过足够的数据,字嵌入可以捕获单词的高级表示。
Hidden representation:给定一个embedding特征序列:,GRU将为每个的第个时间步长的时候计算出一个向量 , 定义如下:
和在GRU中是可训练的参数,而和分别是和激活函数。 隐藏表示的序列表示为输入文本的单词级表示。
Region Embedding
尽管word embedding是单词的不错的表示,但它只能计算单个单词的特征向量。 【Qiao等人(2018)】提出了Region Embedding来学习和利用Ngrams的任务特定的分布式表示。 在Region Embedding中,单词的表示有两部分,单词本身的embedding和与本地上下文交互的加权矩阵。 对于单词,通过嵌入矩阵学习第一部分,并且通过在字典中的下标 在张量中查找第二部分,其中是词汇表的大小,是区域大小,是embedding大小。 然后,中的每一列用于与的相应相对位置中的上下文单词交互,以获得该区域中针对每个单词的上下文感知。 正式地,它由以下函数计算:
其中表示元素对位相乘。并且中间词的最终表示计算如下:
模型
问题描述
-
Multi-Class分类。 在此任务中,我们应该将每个文本实例分类为类中的一个。 假设我们有一个数据集,其中表示文本,one hot向量表示的标签,我们的目标是学习神经网络来对文本进行分类。
-
Multi-Label分类。 在此任务中,每个文本实例属于一组目标标签。 形式上,假设我们有一个数据集,其中表示文本,multi-hot 向量表示文本的标签。 我们的目标是学习神经网络来对文本进行分类。
模型概述
由于缺乏细粒度分类线索的基于编码的文本分类模型的局限性,我们提出了一种新的框架,名为EXPlicit nterAction Model(EXAM),利用交互机制来合并字级匹配信号。 从图2中可以看出,EXAM主要包含三个组件:
-
字级编码器,用于将输入文本投影到字级表示.
-
交互层,用于计算单词和类之间的交互信号的交互层。
-
聚合层,用于聚合每个类的交互信号并进行最终预测。
图2:使用字级匹配的EXAM方法的图示
考虑到在先前的研究中已经很好地研究了字级编码器(如第2节所述),并且这项工作的目标是学习细粒度分类信号,我们仅在以下小节中详细说明交互层和聚合层。。
交互层
交互机制广泛应用于匹配源文本内容和目标文本内容的任务,如自然语言推理(Wang和Jiang 2016b)和基于检索的聊天机器人(Wu et al.2017)。交互机制的关键思想是使用小单元之间的交互特征(例如,文本内容中的单词)来推断两个内容是否匹配的细粒度线索。受 配有基于编码的方法的交互机制以匹配文本内容的方法的成功启发,我们将交互机制引入到将文本内容与其类(即文本分类)匹配的任务中。
具体来说,我们设计了一个交互层,旨在计算单词和类之间的匹配分数。与传统交互层不同,传统交互层使用GRU等编码器提取源和目标的词级表示,这里我们首先将类投影到实值潜在表示中。换句话说,我们使用可训练的表示矩阵来编码类(每行代表一个类),其中表示类的数量,是embedding大小,等于单词size。然后我们采用点积作为交互函数来估计目标词和类之间的匹配分数,公式如下:
其中表示文本的字级表示,由编码器提取,其中表示文本的长度。 通过这种方式,我们可以通过以下方式计算交互矩阵:
请注意,我们拒绝更复杂的交互函数,例如元素对位乘法(Gong,Luo和Zhang 2017)和余弦相似度(Wang,Hamza和Florian 2017)以考虑效率。
聚合层
该层被设计为将每个类的交互特征聚合成logits ,其表示类和输入文本之间的匹配分数。 聚合层可以以不同的方式实现,例如CNN(Gong,Luo和Zhang 2017)和LSTM(Wang,Hamza和Florian 2017)。 但是,为了保持EXAM的简单性和高效性,这里我们只使用具有两个FC层的MLP,其中ReLU是第一层的激活函数。 形式上,MLP聚合 类s的交互特征,并计算其关联的logits如下:
其中,和是可训练的参数,是第一层中的偏差bias.
然后我们将logits标准化为,
进入概率。 请注意,我们遵循以前的工作(Grave et al.2017),并分别使用和进行多类和多标签分类。
损失函数
与之前的研究(Schwenk et al.2017)类似,在multi-class文本分类中,我们使用交叉熵损失作为我们的损失函数:根据之前的研究人员(Grave et al.2017),我们选择二元分类损失作为多标签损失函数:
基于广义编码的模型
在本节中,我们将详细说明如何将基于编码的模型解释为EXAM框架的特例。 由于FastText(Grave et al.2017)是最受欢迎的文本分类模型,并且已在文献中进行了广泛的研究,因此能够恢复它允许EXAM模仿大量的文本分类模型。
FastText包含三层:
1)用于获得字的字级表示的嵌入层;
2)用于获得文本级表示的平均池化层;
3)用于得到最终的 logits 的FC层
其中表示embedding大小,表示类的数量。 请注意,我们为了简明扼要省略了文档ID的下标。 形式上,它计算第类的logits 如下:
其中和是最后一个FC层中的可训练参数,表示文本的长度。 上面那个函数具有如下形式:
值得注意的是,正好是单词和类之间的交互特征。 因此,FastText是EXAM的一个特例,其中平均池化层作为聚合层。 在EXAM中,我们使用非线性MLP作为聚合层,并将FastText概括为非线性设置,这可能比原始设置更具表现力。
实验
Multi-Class分类
数据集 我们使用来自(Zhang,Zhao和LeCun 2015)的公开可用基准数据集来评估EXAM。 共有6个文本分类数据集,分别对应于情感分析,新闻分类,问答和本体提取任务。表1显示了我们实验中使用的数据集的描述性统计。 斯坦福标记器用于标记文本,所有单词都转换为小写。 我们使用padding来处理文本的各种长度,并且分别为每个数据集设置不同的最大长度。 如果文本的长度小于相应的预定义值,我们用零填充它; 否则我们会截断原文。 为了保证公平比较,采用了(Zhang,Zhao和LeCun 2015)的相同评估协议。 我们将来自训练集的10%样本分离为验证集,以便为我们的模型执行早期停止(early stop)。
超参数 对于multi-class任务,我们选择region embedding作为EXAM中的编码器。 区域大小为7,embedding大小为128.我们使用adam(Kingma和Ba 2014)作为优化器,初始学习率为0.0001,批量大小设置为16.对于聚合MLP,我们设置隐藏层的大小 为2倍交互特征长度。 我们的模型由MXNet(Chen等人,2015年)使用单个NVIDIA TITAN Xp实现和训练。
基线为了证明我们提议的EXAM的有效性,我们将其与几个最先进的基线进行了比较。基线主要有三种变体:
1)基于特征工程的模型;
2)基于字符(Char)的深度模型,
3)基于字(Word)的深度模型。
第一类使用文本中的特征进行分类,我们报告了BoW(Zhang,Zhao和LeCun 2015),N-gram(Zhang,Zhao和LeCun 2015)和Ngrams TFIDF(Zhang,Zhao和LeCun 2015)的结果作为基线。
第二个意味着模型的输入是原始文本中的字符,我们选择了Char-CNN(Zhang,Zhao和LeCun 2015),Char-CRNN(Zhang,Zhao和LeCun 2015)和VDCNN(Schwenk)等人,2017年)作为基线。
对于基于单词的深度模型,文本被预先分割为单词作为输入,我们应用小词CNN[Small word CNN](张,赵和LeCun 2015),大词CNN[Large word CNN](张,赵和LeCun 2015), LSTM(Zhang,Zhao和LeCun 2015),FastText(Grave et al.2017)和WC RegionEmb(Qiao et al.2018)作为基线。值得强调的是,所有基线和我们的EXAM都不会使用预先训练过的word embedding而不是像glove这样的其他语料库。
整体性能
我们将EXAM与几个最先进的基线进行了比较,以确保准确性。 所有结果总结在表2中。
观察到以下四点:
-
与其他方法相比,基于特征工程的模型在所有五个数据集上获得最差的结果。主要原因是特征工程不能充分利用训练集的监督,并且还受到数据稀疏性的影响。
-
基于Char的模型在两个Amazon数据集上获得最高的总分。可能有两个原因,
1)与基于Word的模型相比,基于Char的模型丰富了字符的监督,字符组合形成了N-gram,词干,单词和短语,有助于情感分类。
2)两个亚马逊数据集包含数百万个训练样本,完美适合VDCNN的深度残差架构。对于三个基于Char的基线,VDCNN在几乎所有数据集上都获得了最佳性能,因为它具有29个卷积层,允许模型学习更多字符组合。 -
基于Word的基线超过了三个数据集上的其他变体,并且在两个Amazon数据集上失败。主要原因是新闻分类这三个任务主要通过关键词进行分类,而基于Word的模型能够直接使用单词embedding而不组合字符。对于五个基线,W.C RegionEmb表现最佳,因为它学习region embedding以利用文本中的N-gram特征。
-
很明显,EXAM在三个数据集中实现了最佳性能:AG,Yah. A.和DBP。对于Yah.A.,EXAM将最佳性能提高了1.1%。此外,作为基于Word的模型,EXAM击败了其他两个亚马逊数据集上的所有基于单词的基线,在Amazon Full上的性能提升为1.0%,因为我们的EXAM考虑了类和单词之间更细粒度的交互功能,这对这项任务非常有帮助。
组分评估
我们研究了模型的变体,以进一步研究交互层和聚合层的有效性。我们构建了一个名为的模型,仅保留具有最大池层和FC层的编码器组件,以获得最终概率。 不考虑类和单词之间的交互功能,因此它会自动退化为基于编码的模型。我们在表3的所有数据集上报告了两个模型的结果,很明显不是原始上的补丁,验证了交互机制的有效性。我们还绘制了的汇聚线和数据集的。从图3中,红线代表而蓝色代表,我们观察到相对于所有数据集的收敛速度比快。因此,交互不仅带来性能提升,而且带来更快的收敛。可能的原因是,与第4节中提到的平均池化层相比,非线性聚合层引入了更多参数以适应交互特征。
Multi-Label分类
数据集
我们分别在两个不同的多标签文本分类数据集上进行了实验,分别命名为KanShan-Cup 数据集(基准)和Zhihu数据集。
- KanShan-Cup 数据集:该数据集由最大的华人社区问答平台知乎发布的问题竞赛标签主题(多标签分类)发布。 该数据集包含3,000,000个问题和1,999个主题(类),其中一个问题可能属于一到五个主题。 对于超过30个单词的问题,我们保留最后30个单词,否则,我们填充零。 我们将数据集分别分为2,800,000、20,000和180,000个问题的训练,验证和测试。
- Zhihu数据集:考虑到用户隐私和数据安全性,KanShan-Cup不提供问题和主题的原始文本,而是使用编号代码和带编号的分段词来表示文本消息。 因此,研究人员进行可视化和案例研究等分析是不方便的。 为了解决这个问题,我们构建了一个名为Zhihu数据集的数据集。 我们从志湖中选择了前1,999个常见主题,并抓取了与这些主题相关的所有问题。 最后,我们获得了3,300,000个问题,每个问题的主题少于5个。 我们采用3,000,000个样本作为训练集,30,000个样本作为验证,300,000个样本作为测试。
基线
我们应用以下模型作为基线来评估EXAM的有效性。
- 基于Char的模型:我们选择Char-CNN(Zhang,Zhao和LeCun 2015)和Char-RNN(Liu,Qiu和Huang 2016)作为代表这种方法的基线。
- 基于Word的模型:对于基于Word的模型,我们报告了TextCNN(Kim 2014),TextRNN(Liu,Qiu和Huang 2016)和FastText(Grave等2017)的结果。 这三个模型在KanShan-Cup比赛数据集中表现最佳,因此我们将它们应用为基于Word的基线。
超参数
我们通过MXNet(Chen等人,2015)实现了基线模型和EXAM。我们使用word2vec训练的矩阵(Mikolov等人2013)初始化embedding层,embedding大小为256.我们采用GRU作为编码器 ,每个GRU Cell有1,024个隐藏状态。 积累的MLP有60个隐藏单位。我们应用Adam(Kingma和Ba 2014)在一个NVIDIA TITAN Xp上优化模型,批量大小为1000,初始学习率为0.001。 验证集用于提前停止以避免过度拟合。 所有超参数都是凭经验选择的。
指标
我们使用以下指标来评估我们的模型和基线模型的性能。
- 精度:与传统的精度指标(Precision @ 5)不同,传统精度指标被设置为五个返回标签中相关主题标签的分数,我们利用加权精度来使得相关主题标签在返回列表中排名更高。 形式上,精度计算如下,
-
召回@ 5:召回是在五个相关主题标签的总量上检索的相关主题标签的分数,高召回意味着模型返回大多数相关主题标签。
-
:是精度和召回的谐波平均值,我们计算如下,
性能比较
表4给出了我们的模型和基线关于,和在两个不同数据集的性能。
我们从表4中观察到以下情况:
-
在Kanshan-Cup数据集中,基于Word的模型优于基于Char的模型。 这可能是因为在中文中,单词可以提供比字符更多的监督,而问题标记任务需要更多的单词监督。
-
对于基于Word的基线模型,所有基线具有相似的性能,这证实了FastText(Grave等人2017)中的结论,即简单网络与文本分类中的深度学习分类器相同。
-
我们的模型在两个不同的数据集上实现了最先进的性能,尽管我们只是稍微修改了TextRNN来构建EXAM。 与将整个文本编码为向量的传统模型不同,在EXAM中,类的表示首先与单词交互以获得更细粒度的特征,如图4.结果表明,在此任务中,单词级交互特征比全局文本级表示相对更重要。
交互可视化
为了说明显式交互的有效性,我们想象了一个问题的互动特征:“Second-hand TIDDA 1.6 T Mannual gear has gotten some problems, please everybody help me to solve it?”。 这个问题有5个主题:Car, Second-hand Car, Motor Dom, Autocar Conversation and Autocar Service。 EXAM只误分类了最后一个主题。 在图4中,我们观察到在对不同主题进行分类时,交互功能是不同的。 “Car”和“Second-hand Car”这两个主题非常注重像“Second-hand TIIDA”这样的词汇,而另一个主题如“Autocar Conversation”更侧重于“got some problems”。 结果清楚地表明,单词和类之间的交互特征是很好学习的和非常有意义的。
相关工作
文本分类
现有的文本分类研究可以分为两类:基于特征的模型和深度神经模型。前者侧重于人工特征,并使用机器学习算法作为分类器。词袋(Wallach 2006)是进行特征工程的一种非常有效的方法。 SVM和朴素贝叶斯一直是分类器。后者,深度神经模型,利用神经网络完成数据模型学习,已成为文本分类的有前途的解决方案。例如,Iyyer等人 (2015)提出深度平均网络(DAN)和Grave等人(2017)提出了FastText,两者都很简单但效率很高。为了获得文本中单词之间的时间特征,一些模型如TextCNN(Kim 2014)和Char-CNN(Zhang,Zhao和LeCun 2015)利用卷积神经网络,还有一些模型基于递归神经网络(RNN)。最近,约翰逊等人。 (2017)研究了剩余架构并建立了一个名为VD-CNN和Qiao等人的模型。 (2018)提出了一种用于文本分类的区域嵌入的新方法。但是,如简介中所述,所有这些方法都是文本级模型,而EXAM在单词级别进行匹配。
互动机制
交互机制广泛应用于自然语言句子匹配(NLSM)。 交互机制的关键思想是使用小单元之间的交互特征(如句子中的单词)进行匹配。 王等人。 (2016b)提出了一个“匹配 - 聚合”框架来执行自然语言推理中的交互。 在这项工作之后,Parikh等人。 (2016)将注意力机制整合到这个称为可分解注意力模型的框架中。 然后是王等人。 (2016a)讨论了文本匹配中的不同交互功能。 Yu等人。 (2017)采用树-LSTM来获得不同级别的单元来进行交互。 龚等人。 (2017)提出了一个密集交互式的推理网络,使用DenseNet来聚合密集的交互功能。 我们的工作与它们不同,因为它们主要将这种机制应用于文本匹配而不是分类。
结论
在这项工作中,我们提出了一个名为EXAM的新框架,它使用交互机制来明确地计算文本分类的单词级交互信号。 我们将建议的EXAM应用于多类和多标签文本分类。 对几个基准数据集的实验验证了我们提出的机制的有效性。 将来,我们计划研究不同交互功能在交互机制中的作用。 此外,我们感兴趣的是通过引入更复杂的聚合层(如ResNet或DenseNet)来扩展EXAM。
致谢
国家重点基础研究发展计划(973计划),编号:2015CB352502;
国家自然科学基金,编号:61772310,编号:61702300,编号:61702302;
2016年千人计划项目;
与腾讯AI Lab Rhino-Bird联合研究计划(No.JR201805);
山东大学基础研究基金(No. 2017HW001)。
参考文献
网友评论