Self-Taught convolutional neural networks for short text clustering(翻译)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fanyuwgy/article/details/87891715

因为直接从word上面复制过来,有一点乱码,望见谅,yua习原文地址如下:

https://scholar.google.com/scholar?hl=zh-CN&as_sdt=0%2C5&q=Self-Taught+convolutional+neural+networks+for+short+text+clustering&btnG=

自学习的卷积神经网络进行短文本聚类

摘要:

由于文本表示的稀疏性,短文本聚类是一个具有挑战性的问题。在这里,我们提出了一种灵活的自学习卷积神经网络短文本聚类框架(又名STC2 ),该框架可以灵活、有效地融合更多有用的语义特征,并在无监督的情况下学习无偏置的深度文本表示。在这个框架中,我们首先使用一种已有的无监督的降维方法来将原始文本的特征嵌入为二进制码中。然后,探索单词嵌入并将其输入到卷积神经网络以学习深度特征表示,同时输出单元用于在训练过程中拟合预训练的二进制代码。最后,我们通过K-means聚类来聚类刚刚得到的特征代表,从而获得最好的聚类效果。大量实验结果表明,在三个公共短文本数据集上进行测试时,我们所提出的框架是有效的,灵活的,并且优于几种流行的聚类方法。

关键词:

语义聚类、神经网络、短文本、无监督学习

  1. 介绍:

短文本聚类因其应用广泛而具有重要意义,比如用户剖析(Li, Ritter, & Hovy, 2014)和推荐系统(Wang, Li, Chen, & Lin, 2010)。然而,短文本聚类具有数据稀疏性问题,大多数单词仅在每个短文本中出现一次(Aggarwal & Zhai, 2012)。因此,术语频率-逆文档频率(TF-IDF)度量在短文本的情况下不能很好地工作。为了解决这个问题,一些研究人员致力于扩展和丰富维基百科(Banerjee, Ramanathan, & Gupta, 2007)或本体(Fodeh, Punch,& Tan, 2011)的数据上下文。然而,这些方法涉及到比较难的自然语言处理(NLP)知识,仍然使用高维表示,这可能会导致内存和计算时间的浪费。克服这些问题的另一种方法是探索一些复杂的模型来对短文本聚类。例如,Yin and Wang (2014)提出了一种基于Dirichlet多项式混合模型的短文本聚类方法。然而,如何设计一个有效的模型是一个公开的问题,而且大多数基于词袋(BoW)直接训练的方法都是浅层结构,不能保持准确的语义相似性。

近年来,在文字嵌入的帮助下,神经网络在构建文本表示方面表现出了很好的表现,如递归神经网络(RecNN) (Socher et al., 2011, Socher et al., 2013)和递归神经网络(RNN) (Mikolov, Kombrink, Burget, Cernocky, & Khudanpur, 2011)。然而,RecNN表现出构建文本树的高时间复杂度,并且使用在最后一个词的位置计算的隐藏层来表示文本的RNN是偏向模型,其中后面的词比早先的词更占优势(Lai, Xu, Liu, & Zhao, 2015)。而对于非偏向模型,可以从具有非显性学习权重的文本中的所有单词中提取一个文本的学习表示。最近,卷积神经网络(CNN)作为最流行的非偏置模型并应用卷积滤波器来捕获局部特征,在许多NLP应用中实现了更好的性能,例如句子建模,关系分类和其他传统的NLP任务。以前的大部分工作都是关注CNN解决有监督的NLP任务,而在本文中,我们的目的是探讨CNN在一个无监督的NLP任务的强大功能,即短文本聚类。

我们系统地介绍了一个用于短文本聚类的简单但有效的强大自学习卷积神经网络框架,叫做STC2 。我们提出的方法的总体架构如图1所示。我们受Lin, Shen, Suter, and Hengel (2013)以及Zhang, Wang, Cai, and Lu (2010)的启发,利用自学的学习框架来完成我们的任务。 特别地,借助于一个传统的无监督降维函数,首先将原始文本特征嵌入到紧凑二进制代码B中。 然后将从字嵌入投射的文本矩阵S馈入CNN模型以学习深度特征表示h,并且使用输出单元来拟合预训练的二进制码B。在获得学习的特征之后,对其使用K均值算法。 将文本聚类成聚类C。显然,我们称自己的方法是“自学习”,因为CNN模型是从前一阶段产生的伪标签中学习的,这与Raina, Battle, Lee, Packer, and Ng (2007)中的“自学”一词完全不同。我们的主要贡献可归纳如下:

我们提出了一个灵活的短文本聚类框架,探讨了CNN与传统无监督降维方法相结合的可行性和有效性。

无偏置的特征表示可以通过我们的自学习的CNN框架而不使用任何外部标记/标签或复杂的NLP预处理来学习。

我们对三个短文本数据集进行了大量实验。实验结果表明,该方法在准确性和规范化互信息方面均取得了优异的性能。

图1.我们提出的用于短文本聚类的STC2 框架的体系结构。实线和空心箭头分别表示特征和梯度的前向和后向传播方向。STC2 框架由深度卷积神经网络(CNN),无监督降维函数和来自CNN顶部隐藏层的深度特征表示的K均值模块组成。

 

这项工作是我们会议论文的延伸(Xu et al., 2015),它们在以下方面有所不同。首先,我们在本文中提出了一个通用的自学CNN框架,它可以灵活地耦合各种语义特征,而会议版本可以看作是这项工作的一个具体例子。其次,在本文中,我们在实验中使用新的短文本数据集Biomedical来验证我们的方法的有效性。第三,我们花了很大精力来研究在我们自学CNN框架中集成的各种不同语义特征的影响,这些都没有在会议论文中有所体现。

为了方便读者重现,我们在网站上公布了我们实验中使用的数据集和软件。

本文的其余部分安排如下:在第2部分,我们首先简要地调查了几个相关的工作。在第3节中,我们描述了建议的方法STC2 和实现细节。 实验结果和分析见第4节。最后,结论在最后一节给出。

 

  1. 相关工作

在本节中,我们从以下两个角度回顾相关工作:短文本聚类和深度神经网络。

    1. 短文本聚类

有几项研究试图克服短文本表示的稀疏性。一种方法是扩展和丰富数据的上下文。例如,Banerjee et al. (2007)提出了一种通过使用维基百科的附加特征丰富其表示来提高短文本聚类的准确性的方法。Fodeh et al. (2011) 将来自本体的语义知识融入到文本聚类中。然而,这些工作需要坚实的NLP知识,并且仍然使用高维表示,这可能导致浪费存储器和计算时间。另一个方向是将原始特征映射到缩小的空间,例如潜在语义分析(LSA) (Deerwester, Dumais, Landauer, Furnas, & Harshman, 1990),拉普拉斯特征映射 (LE) (Ng, Jordan, & Weiss, 2002),和地方保留索引(LPI) (He & Niyogi, 2004)。甚至一些研究人员也研究了一些复杂的模型来聚类短文本。例如,Yin and Wang (2014)提出了一种基于Dirichlet多项式混合模型的短文本聚类方法。此外,一些研究甚至将上述两个流集中起来。例如,Tang, Wang, Gao, Hu, and Liu (2012)提出了一种新的框架,通过使用机器翻译来丰富文本特征,并通过矩阵分解技术同时减少原始特征。

尽管上述聚类方法可以在一定程度上缓解短文本表示的稀疏性,但大多数方法忽略了文本中的词序,属于浅层结构,不能完全捕获准确的语义相似性。

    1. 深度神经网络

近年来,人们对DNN产生了兴趣,许多研究人员将注意力集中在使用深度学习来学习特征。 Hinton and Salakhutdinov (2006)使用DAE来学习文本表示。在微调过程中,他们使用反向传播来找到易于重建字数矢量的代码。

最近,研究人员建议使用外部语料库来学习每个单词的分布式表示,称为单词嵌入(Turian, Ratinov, & Bengio, 2010),以提高NLP任务的DNN性能。 Word2vec的Skip-gram和连续词袋模型 (Mikolov, Sutskever, Chen, Corrado, & Dean, 2013) 提出了一种基于两个词向量之间内在产品的简单单层架构,以及 Pennington, Socher, and Manning (2014) 引入了一种新的单词表示模型,称为GloVe,它捕获全局语料库统计数据。

为了学习句子的紧凑表示向量,Le and Mikolov (2014) 从预测句子中的单词(名为段向量(Para2vec))直接扩展了之前的Word2vec(Mikolov, Sutskever et al., 2013)。 Para2vec仍然是一种基于窗口的浅层方法,需要更大的语料库才能产生更好的性能。更多的神经网络利用单词嵌入来捕获真正有意义的句法和语义规律,例如RecNN (Socher et al., 2011, Socher et al., 2013)和RNN (Mikolov et al., 2011)。然而,RecNN表现出构建文本树的高时间复杂度,并且使用在最后一个词处计算的层来表示文本的RNN是偏向模型。最近,长期短期记忆(LSTM)(Hochreiter & Schmidhuber, 1997)和门控反复单元(GRU) (Cho, Van Merriënboer, Gulcehre et al., 2014)作为RNN的复杂的反复隐藏单位,在许多序列生成问题中已经展示了它的优势,例如机器翻译(Sutskever,Vinyals,&Le,2014),语音识别(Graves,Mohamed,&Hinton,2013)和文本对话(Shang,Lu,&Li,2015)。虽然如此,CNN更好地学习无偏置的隐式特征,已经成功地用于第1节中描述的许多监督NLP学习任务,并且在最近的工作中提出了各种基于CNN的变体,例如动态卷积神经网络(DCNN) (Kalchbrenner et al., 2014),门控递归卷积神经网络(grConv) (Cho, van Merriënboer, Bahdanau, & Bengio, 2014)和自适应分层句子模型(AdaSent) (Zhao, Lu, & Poupart, 2015)。

在过去的一段时间内,Visin et al. (2015) 试图用CNN中的卷积层代替用于识别物体识别的无偏置特征,使用四个RNN(称为ReNet)向四个不同方向扫描的低层特征:(1)从下到上,(2)从上到下底部,(3)从左到右,(4)右到左。然而,ReNet在三个基准数据集中的任何一个上都没有超过最先进的卷积神经网络,它也是一种用于分类的监督学习模型。idea来自word2vec的Skip-gram (Mikolov, Chen et al., 2013, Mikolov, Sutskever et al., 2013),Skip-thought模型 (Kiros et al., 2015)描述了一种无监督学习通用分布式的方法——句子编码器。类似于Skip-gram模型,Skip-thought模型训练编码器 - 解码器模型,该模型试图重建编码句子的周围句子并释放现成的编码器以提取句子表示。甚至一些研究人员也会向CNN引入连续的Skip-gram和负抽样,以无监督的方式来学习视觉的表现(Wang & Gupta, 2015)。本文从一个新的角度出发,提出了一个通用的自学习CNN框架,它可以灵活地耦合各种语义特征,在一个无监督学习任务(即短文本聚类)上取得良好的表现。

 

  1. 方法

假设一个拥有n 训练文本的数据集,表示为:X={xi:xiRd×1}i=1,2,…,n ,这里的d是初始词袋表示的维度。将其标签集表示为T={1,2,…,C}。并将预训练的单词嵌入集表示为E={ewi:e(wi)∈Rdw×1}i=1,2,…,|V| ,其中dw 是单词向量的维度,|V|是词的大小。为了以无监督的方式从CNN学习到r维的深度特征表示h,采用一些无监督降维方法fdr(x) ,来指导CNN模型的学习。 我们的目标是基于学习到的深度特征表示将这些文本X聚类到聚类C中,同时保持语义一致性。

如图1所示,所提出的框架由三个部分组成,即深度卷积神经网络(CNN),无监督降维函数和K-means模块。在其余部分中,我们首先分别给出前两个组件,然后给出可训练参数和目标函数来学习深度特征表示。最后一节介绍如何对学习到的功能执行聚类。

图2.动态卷积神经网络的体系结构(Kalchbrenner et al., 2014)。 首先通过查找字嵌入将输入文本投影到矩阵特征,然后通过宽卷积层,折叠层和k-max池层,这在输出层之前提供深度特征表示。

    1. 深度卷积神经网络

在本节中,我们简要回顾一个流行的深度卷积神经网络,动态卷积神经网络(DCNN) (Kalchbrenner et al., 2014)作为CNN的一个实例,在以下部分中,其作为我们提出的方法的基础并且已经成功用于完全监督性学习任务——文本分类。

以图2中的两个卷积层的神经网络为例,网络将原始输入文本转换为强大的表示。具体地,通过查找单词嵌入E将每个原始文本向量xi 投影到矩阵表示S∈Rdw×s 中,其中s是一个文本的长度。 我们还让W={Wi}i=1,2Wo 表示神经网络的权重。网络定义变换f(.):Rd×1Rr×1(d≥r) ,其将输入原始文本x变换为r维深度表示h。 有三种基本操作描述如下:

宽一维卷积:此操作m∈Rm 应用于句子矩阵S∈Rdm×s 的单个行,并产生结果矩阵CR(dm/2)×k ,其中m是卷积核的宽度。

折叠操作:在此操作中,特征图中的每两行简单地按分量求和。对于dw 行的映射,折叠操作返回dw / 2行的映射,从而使表示的大小减半并产生矩阵特征CR(dm/2)×(s+m-1) 。请注意,折叠操作操作不会引入任何其他参数。

动态k-max池化:假设汇集参数为k,k-max池化选择矩阵C的每行中k个最高值的子矩阵CR(dm/2)×k 。对于动态k-max池,池化参数k被动态的选择以便允许平滑提取更高阶和更长范围的特征(Kalchbrenner et al., 2014)。 给定最顶层卷积层的固定池化参数ktop ,第l卷积层中k-max池的参数k可以如下计算:

kl=max⁡(ktop,[L-lLs])

其实l是网络中卷积核的数量

    1. 无监督降维

如图1所示,降维函数定义如下:

Y=fdr(X)

其中,Y∈Rq×n 是q维的减少潜在空间表示。 在这里,我们将四种流行的降维方法作为我们框架中的示例。

平均嵌入(AE):该方法直接平均单词嵌入,其分别用TF和TF-IDF加权。Huang, Socher, Manning, and Ng (2012)将这一策略作为其任务的全局背景, Lai et al. (2015)和 Socher et al. (2013)使用此方法进行文本分类。 一个文本中所有单词向量的加权平均值可以如下计算:

Yxi=i=1kwwi.e(wi)i=1ww(wi)

其中wwi 可以是任何加权函数,它捕获文本x中单词wi 的重要性。

 

隐性语义分析:LSA(Deerwester et al., 1990)是最流行的全局矩阵分解方法,其应用相应术语/文档矩阵的降维线性投影,奇异值分解(SVD)。 假设X的等级是r,LSA将X分解为其他三个矩阵的乘积:

S=UVT

其中,.=diag(σ1σr)σ1σ2σr 是X的奇异值,U∈Rd×r 是一组左奇异向量,V∈Rn×r 是一组右奇异向量。 LSA使用U中的顶部q向量作为变换矩阵,以将原始文本特征嵌入到q维子空间Y中。

 

拉普拉斯特征映射(LE):图拉普拉斯算子的顶部特征向量,在文本的相似性矩阵上定义,用于该方法,其可以发现文本空间的流形结构(Ng et al., 2002)。为了避免存储密集相似性矩阵,提出了许多近似技术来减少LE的存储器使用和计算复杂度。有两种代表性的近似方法,稀疏相似矩阵和Nyström近似。在之前的研究(Cai et al., 2005, Zhang et al., 2010)之后,我们选择前一种技术,通过使用热核如下构建n×n 局部相似性矩阵A:

Aij=exp-||xi-xj||22σ2,if xiNkxj or vice versa0,                otherwise

其中,σ 是调整参数(默认值为1),Nk(X) 表示x的k近邻值的集合。通过引入n×n 对数矩阵D,其输入由Dii=j=1nAij 给出,图拉普拉斯L可以通过(D-A)计算。通过求解以下目标函数可以得到最优q×n 实值矩阵Y:

argminY      trYLYT

subject to    YDYT=I

           YDI=0

其中tr(.)是跟踪函数,YDYT=I 要求不同的维度不相关,YD1=0要求每个维度实现正或负的相等概率。

 

局部保持投影 (LPI): 该方法通过近似线性函数Y=WLPITX (Zhang et al., 2010)来扩展LE以处理看不见的文本,并且通过在黎曼流形上找到拉普拉斯-贝尔特拉米算子的本征函数的最优线性近似来获得子空间向量(He & Niyogi, 2004)。与LE类似,我们首先构造局部相似性矩阵A,然后可以通过(D-A)计算图拉普拉斯L,其中Dii 测量xi 周围的局部密度并且等于j=1nAIJ 。 计算以下广义特征问题的特征向量a和特征值λ:

XLXTa=λXDXTa

可以获得映射函数WLPI={ai,…,aq} 并将其应用于看不见的数据(Cai et al., 2005)。

 

所有上述方法在缩小潜在空间表示Y中捕获文本之间的语义相似性要求比在原始表示X中更好,而在我们的框架的帮助下,可以进一步增强短文本聚类的性能——自学习的卷积神经网络。

    1. 学习

CNN的最后一层是输出层,如下所示:

O=WOh

其中,h是深度特征的代表,O∈Rq 是输出向量,WORq×r 是权重矩阵

为了结合潜在语义特征Y,我们首先通过将阈值设置为中值向量中值(Y)将实值向量Y二值化为二进制码B.. 然后,输出向量O用于通过q逻辑运算拟合二进制代码B,如下所示:

Pi=exp⁡(Oi)1+exp⁡(Oi)

要训练的所有参数定义为θ

θ={E,W,WO}

给定训练文本集合X和预训练的二进制代码B,参数的对数似然如下:

Jθ=i=1nlogp(bi|xi,θ)

在之前的工作 (Kalchbrenner et al., 2014)之后,我们通过反向传播对小批量网络进行训练,并使用Adagrad更新规则(Duchi, Hazan, & Singer, 2011)执行基于梯度的优化。 对于正则化,我们使用50%的退出率到倒数第二层 (Kalchbrenner et al., 2014, Kim, 2014)。

    1. K-Means聚类

利用给定的短文本,我们首先利用训练好的深度神经网络获得语义表示h,然后采用传统的K-means算法进行聚类。

  1. 实验
    1. 数据集

我们在三个公共短文本数据集上测试我们提出的方法。 表1,表2中描述了这些数据集的摘要统计和语义主题。

 

表1.文本数据集的统计信息:C:分类数量;;Num:数据集大小; Len:文本的平均值/最大长度;| V |:词汇量。

数据集

C

Num

Len

|V|

SearchSnippets

8

12340

17.88/38

30642

StackOverflow

20

20000

8.31/34

22956

Biomedical

20

20000

12.88/53

18888

 

表2.来自我们实验中使用的三个文本数据集的语义主题(即标签/标签)的描述。

SearchSnippets:8个不同的领域

business

computers

health

education

culture

engineering

sports

politics

StackOverflow: 20个语义标记

svn

oracle

bash

apache

excel

matlab

cocoa

Visual-studio

Osx

Wordpress

spring

Hibernate

Scala

Sharepoint

Ajax

Drupal

qt

Haskell

Linq

magento

Biomedical: 20 MeSH major topics

aging

chemistry

cats

erythrocytes

glucose

potassium

lung

lymphocytes

spleen

mutation

Skin

norepinephrine

insulin

prognosis

risk

myocardium

sodium

mathematics

swine

temperature

 

SearchSnippets(数据集名字):该数据集是使用Phan用到的8个不同域的预定义短语从Web搜索事务的结果中选择的。

StackOverflow(数据集名字):我们使用Kaggle.com上发布的挑战数据。原始数据集包括截至2012年7月31日至2012年8月14日的3,370,528个样本。在我们的实验中,我们从20个不同的标签中随机选择20,000个问题标题,如表2所示。

Biomedical(数据集名字):我们使用BioASQ官方网站上发布的挑战数据。 在我们的实验中,如表2所示,我们从20个不同的MeSH主题中随机选择20000个论文题目。如表1所示,所选论文题目的最大长度为53。

对于这些数据集,我们随机选择10%的数据作为开发集。 由于SearchSnippets已由Phan等人预处理。 我们不会进一步处理这个数据集。 在StackOverflow中,文本包含许多计算机术语,符号和大写字母是有意义的,因此我们不执行任何预处理过程。 对于Biomedical,我们删除符号并将字母转换为小写。

  1. 预先训练的单词向量

我们使用公开的word2vec7工具训练单词嵌入,除了使用48的向量维度和5最小化计数之外,大多数参数设置与Mikolov,Sutskever等人相同。在Google新闻设置上训练单词向量。对于SearchSnippets,我们在Wikipedia转储上训练单词向量。对于StackOverflow,我们在上面描述的StackOverflow数据集(包括问题标题和帖子内容)的整个语料库上训练单词向量。对于Biomedical,我们在2014年训练文章的所有标题和摘要上 来训练单词向量。表3中列出了这些学习向量在三个数据集上的覆盖范围,随机初始化了预训练单词集中不存在的单词。

 

表3 三个数据集上的字嵌入的覆盖范围。| V | 是词汇量和| T | 是令牌的数量。

数据集

|V|

|T|

SearchSnippets

23826(77%

211575(95%)

StackOverflow

19639(85%)

162998(97%)

Biomedical

18381(97%)

257184(99%)

 

  1. 对比

在实验中,我们将一些广泛使用的文本聚类方法与我们的方法进行了比较。 除了K-means,Skip-thought Vectors,递归神经网络和基于段落矢量的聚类方法之外,直接基于3.2节中描述的流行的无监督降维方法的四种基线聚类方法。 我们进一步将我们的方法与其他一些非偏置神经网络进行比较,例如双向RNN。 更多细节如下:

K-means:K-means (Wagstaff, Cardie, Rogers, & Schrödl, 2001)关于原始关键词特征,它们分别用术语频率(TF)和术语频率-逆文档频率(TF-IDF)加权。

Skip-thought Vectors (SkipVec):该基线(Kiros et al., 2015)给出了现成的编码器以产生高度通用的句子表示。 编码器使用大量小说进行训练,并提供三种编码器模式,即具有2400维度的单向编码器,具有2,400维度的双向编码器和组合编码器(前两者各有2,400个维度)。 分别在这些矢量表示上采用K-means。

Recursive Neural Network (RecNN):在Socher et al. (2011),树结构首先通过无监督递归自动编码器贪婪近似。 然后,半监督递归自动编码器用于基于预测结构捕获文本的语义。 为了使这种基于递归的方法完全无监督,我们删除第二个短语中的交叉熵误差以学习向量表示,并随后在顶部的树节点的学习向量和所有向量的平均值上使用K均值。

Paragraph Vector (Para2vec):K-means是由Paragraph Vector(Para2vec)生成的固定大小特征向量(Le & Mikolov, 2014) ,这是一种学习单词和段落的分布式表示的无监督方法。 在我们的实验中,我们使用Mesnil, Mikolov, Ranzato, and Bengio (2014)。

Average Embedding (AE):K-means分别用TF和TF-IDF对单词嵌入的加权平均向量进行加权。 平均向量的维数等于且决定于我们实验中使用的单词向量的维数。

Latent Semantic Analysis (LSA):K-means对于通过奇异值分解方法生成的简化子空间矢量。子空间的维度默认设置为簇的数量,我们还以10:10:200进行迭代赋值给维度的以获得最佳性能,即SearchSnippets上的10,StackOverflow上的20和Biomedical上的20。

Laplacian Eigenmaps (LE):该基线使用拉普拉斯算子特征图并随后采用K-means算法,这是众所周知的谱聚类(Belkin & Niyogi, 2001)。子空间的维度默认设置为簇的数量 (Cai et al., 2005, Ng et al., 2002),我们以10:10:200迭代赋值给维度,以获得最佳性能,即 SearchSnippets的20,StackOverflow的70个,我们Biomedical的30。

Locality Preserving Indexing (LPI):该基线将文本投影到较低维度的语义空间中,可以发现原始特征空间的几何和区分结构 (Cai et al., 2005)。 子空间的维度默认设置为簇的数量(Cai et al., 2005),我们以10:10:200迭代赋值给维度以获得最佳性能,即SearchSnippets上的20,StackOverflow上的80和 Biomedical上的30。

bidirectional RNN (bi-RNN):我们在框架中用一些双RNN模型替换CNN模型,如图1所示。 特别注意,LSTM和GRU单元将被用于实验中。 为了从可变长度矢量序列生成固定长度文档表示,对于基于bi-LSTM和bi-GRU的聚类方法,我们进一步利用三种池化方法:最后池化(使用最后隐藏状态),平均池化和元素最大池化。 这些池化方法分别用于先前的工作中(Cho, Van Merriënboer, Gulcehre et al., 2014, Lai et al., 2015, Palangi et al., 2015, Tang et al., 2015)。 对于正则化,具有大于40的l2范数的所有参数的训练梯度被剪切为40,如先前的工作(Sukhbaatar, Weston, & Fergus, 2015)。

    1. 评估指标

通过将带标签文本的聚类结果与文本语料库提供的标签进行比较来评估聚类性能。两个度量标准,准确度(ACC)和归一化互信息度量(NMI)用于测量聚类性能(Cai et al., 2005, Huang et al., 2014)。给定文本xi ,让citi 分别为获得的簇标签和语料库提供的标签。准确度定义为:

ACC=i=1nδ(ti,map(ci)n

其中,n是文本的总数,δ (x,y)是指标函数,如果x = y则等于1,否则等于零,而map(ci )是将每个聚类标签ci 映射到等效标签的置换映射函数,该等效标签出自于Hungarian算法的文本数据。

标签/标签集T和聚类集C之间的标准化互信息(Chen, Song, Bai, Lin, & Chang, 2011) 是用于评估集群任务的流行度量。它的定义如下:

NMIT,C=MI(T,C)H(T)H(C)

其中,MI(T,C) 是T和C之间的互信息。H(.) 是熵函数,分母H(T)H(C) 是用来将互信息归一化到[0,1]的范围内。

    1. 超参数设置

大多数参数都是针对这些数据集统一设置的。在之前的研究(Cai et al., 2005)之后,当构造LE和LPI的图形结构时方程式(5)中的最近邻居数量固定为15。 对于CNN模型,网络具有两个卷积核。卷积滤波器的宽度均为3。方程式(1)中最高k-max池的k值是5。第一卷积层的特征映射的数量是12,并且第二卷积层是8个。这两个卷积层都跟折叠层。我们进一步将单词嵌入dw 的维度设置为48.最后,深度特征表示r的维度固定为480。此外,我们将学习率λ设置为0.01,将小批量训练大小设置为200。在方程式(8)中输出大小设置与第4.3节所述的基线方法中子空间的最佳维度相同。

对于初始质心在使用K-means算法时对聚类结果有显着影响,我们用随机初始质心(具体地说,统计显着性为100倍)重复K均值多次 (Huang et al., 2014)。在应用K-means之前,将所有子空间向量归一化为1,并且报告的最终结果是在三个文本数据集上使用所有聚类方法的5次试验的平均值。

    1. 结果和分析

在表4,表5中,我们报告了我们提出的方法和四种基线方法(K-means,SkipVec,RecNN和Para2vec基于聚类方法)的ACC(准确率)和NMI(互信息)性能。直观地,我们得到一个普遍的观察结果:(1)基于BoW的方法,包括K-means(TF)和K-means(TF-IDF),以及基于SkipVec的方法表现不佳; (2)基于RecNN的方法,包括RecNN(Ave.)和RecNN (Top + Ave.),做得更好;  (3)Para2vec与大多数基线的表现相当;  (4)评估清楚地证明了我们提出的方法STC2的优越性。这是预期的结果。对于基于SkipVec的方法,现成的编码器在BookCorpus数据集上进行训练(Zhu et al., 2015),然后应用于我们的数据集以提取句子表示。 SkipVec编码器可以生成通用的句子表示,但对于特定的数据集可能效果不佳,在我们的实验中,StackOverflow和Biomedical数据集由许多计算机术语和医学术语组成,例如“ASP.NET”,“XML”,“C#”, “serum”和“glycolytic”。当我们仔细观察时,我们发现RecNN(Top)表现不佳,甚至比K-means(TF-IDF)差。原因可能是虽然递归神经模型引入树结构来捕获组合语义,但顶节点的向量主要捕获有偏见的语义,而树节点中所有向量的平均值(如RecNN(Ave.))可能更好表示句子级语义。我们还得到另一个观察结果,尽管我们提出的STC2-LE和STC2-LPI在所有三个数据集中都优于基于BoW和基于RecNN的方法,但STC2-AE和STC2-LSA只表现出与RecNN(Ave.)相似的性能。和RecN(Top + Ave.)在StackOverflow和Biomedical的数据集中做。

 

表4.我们提出的方法的ACC(准确率)与三个数据集上的三种聚类方法的比较。 对于RecNN(Top),K-means在顶部树节点的学习向量上进行。 对于RecNN(Ave.),K-means是对树中所有向量的平均值进行的。 有关基线设置的更多详细信息,请参见第4.3节。

方法

SearchSnippets

准确率(%)

StackOverflow

准确率(%)

Biomedical

准确率(%)

K-means (TF)

24.75 ± 2.22

13.51 ± 2.18

15.18 ± 1.78

K-means (TF–IDF)

33.77 ± 3.92

20.31 ± 3.95

27.99 ± 2.83

SkipVec (Uni)

28.23 ± 1.08

08.79 ± 0.19

16.44 ± 0.50

SkipVec (Bi)

29.24 ± 1.57

09.59 ± 0.15

16.11 ± 0.60

SkipVec (Combine)

33.58± 1.95

09.34± 0.24

16.27 ± 0.33

RecNN (Top)

21.21± 1.62

13.13± 0.80

13.73 ± 0.67

RecNN (Ave.)

65.59± 5.35

40.79± 1.38

37.05 ± 1.27

RecNN (Top+Ave.)

65.53± 5.64

40.45± 1.60

36.68 ± 1.29

Para2vec

69.07 ± 2.53

32.55 ± 0.89 

41.26 ± 1.22

STC2 -AE

68.34 ± 2.51

40.05 ± 1.77

37.44 ± 1.19

STC2 -LSA

73.09 ± 1.45

35.81± 1.80

38.47 ± 1.55

STC2 -LE

77.09± 3.99

51.13 ± 2.80

43.62  ±  1.00

STC2 -LPI

77.01± 4.13

51.14 ±  2.92

43.00 ± 1.25

 

表5.我们提出的方法的NMI(互信息)与三个数据集上的三种聚类方法的比较。 对于RecNN(Top),K-means在顶部树节点的学习向量上进行。 对于RecNN(Ave.),K-means是对树中所有向量的平均值进行的。 有关基线设置的更多详细信息,请参见第4.3节。

方法

SearchSnippets

互关系(%)

StackOverflow

互关系(%)

Biomedical

互关系(%)

K-means (TF)

09.03 ± 2.30

07.81 ± 2.56

09.36 ± 2.04

K-means (TF–IDF)

21.40 ± 4.35

15.64 ± 4.68

25.43 ± 3.23

SkipVec (Uni)

10.98 ± 0.93

02.24 ± 0.13

10.52 ± 0.41

SkipVec (Bi)

09.27 ± 0.29

02.89 ± 0.20

10.15 ± 0.59

SkipVec (Combine)

13.85 ± 0.78

02.72 ± 0.34

10.72 ± 0.46

RecNN (Top)

04.04 ± 0.74

09.90 ± 0.96

08.87 ± 0.53

RecNN (Ave.)

50.55 ± 1.71

40.58 ± 0.91

33.85 ± 0.50

RecNN (Top+Ave.)

50.44 ± 1.84

40.21 ± 1.18

33.75 ± 0.50

Para2vec

50.51 ± 0.86

27.86 ± 0.56

34.83 ± 0.43

STC2 -AE

54.01 ± 1.55

38.22 ± 1.31

33.58 ± 0.48

STC2 -LSA

54.53 ± 1.47

34.38  ±  1.12

33.90 ± 0.67

STC2 -LE

63.16 ± 1.56

49.03  ±  1.46

38.05 ± 0.48

STC2 -LPI

62.94 ± 1.65

49.08  ±  1.49

38.18  ±  0.47

 

我们在框架中用一些其他无偏置模型(如bi-LSTM和bi-GRU),进一步替换我们框架中的CNN模型,并将结果报告在表6,表7中。作为实例, 从LPI生成的二进制代码用于指导bi-LSTM / bi-GRU模型的学习。从结果中我们可以看出,基于bi-GRU和bi-LSTM的聚类方法同样表现良好,没有明显的优势,并且与LPI(最佳)相比都获得了很大的提升。与这些基于双LSTM / bi-GRU的模型相比,评估结果仍然证明了我们的方法方法,基于CNN的聚类模型在大多数情况下的优越性。 正如Visin et al. (2015)提出的结果。尽管双向或多向RNN模型执行良好的无偏置特征提取,但它们在某些任务上的表现并不优于最先进的CNN。

 

表6.我们提出的方法的ACC(召回率)与三个数据集上的一些其他无偏置模型的比较。对于LPI,我们按照第4.3节中的描述在最佳维度下投影文本。 对于基于bi-LSTM和bi-GRU的聚类方法,从LPI生成的二进制代码用于指导bi-LSTM / bi-GRU模型的学习。

方法

SearchSnippets

准确率(%)

StackOverflow

准确率(%)

Biomedical

准确率(%)

bi-LSTM (last)

64.50 ± 3.18

46.83 ± 1.79

36.50 ± 1.08

bi-LSTM (mean)

65.85 ± 4.18

44.93 ± 1.83

35.60 ± 1.21

bi-LSTM (max)

61.70 ± 5.10

38.74 ± 1.62

32.83 ± 0.73

bi-GRU (last)

70.18 ± 2.62

43.36 ± 1.46

35.19 ± 0.78

bi-GRU (mean)

70.29 ± 2.61

44.53 ± 1.81

36.75 ± 1.21

bi-GRU (max)

65.69 ± 1.02

54.40  ±  2.07

37.23 ± 1.19

LPI (best)

47.11 ± 2.91

38.04 ± 1.72

37.15 ± 1.16

STC2 -LPI

77.01  ±  4.13

51.14 ± 2.92

43.00  ±  1.25

 

表7.我们提出的方法的NMI(互信息)与三个数据集上的一些其他无偏置模型的比较。 对于LPI,我们按照第4.3节中的描述在最佳维度下投影文本。 对于基于bi-LSTM和bi-GRU的聚类方法,从LPI生成的二进制代码用于指导bi-LSTM / bi-GRU模型的学习。

方法

SearchSnippets

互关系(%)

StackOverflow

互关系(%)

Biomedical

互关系(%)

bi-LSTM (last)

50.32 ± 1.15

41.89 ± 0.90

34.51 ± 0.34

bi-LSTM (mean)

52.11 ± 1.69

40.93 ± 0.91

34.03 ± 0.28

bi-LSTM (max)

46.81 ± 2.38

36.73 ± 0.56

31.90 ± 0.23

bi-GRU (last)

56.00 ± 0.75

38.73 ± 0.78

32.91 ± 0.40

bi-GRU (mean)

55.76 ± 0.85

39.84 ± 0.94

34.27 ± 0.27

bi-GRU (max)

51.11 ± 1.06

51.10  ±  1.31

32.74 ± 0.34

LPI (best)

38.48 ± 2.39

27.21 ± 0.88

29.73 ± 0.30

STC2 -LPI

62.94  ±  1.65

49.08 ± 1.49

38.18  ±  0.47

 

为了弄清楚哪些因素使我们提出的方法起作用,我们以条形图报告了我们提出的方法以及相应的基线方法的ACC和MNI的结果,如图3,图4所示。很明显,尽管AE和LSA与LE和LPI一样好甚至更好,特别是在StackOverflow和Biomedical的数据集中,STC2 -LE和STC2 -LPI实现了比STC2 -AE和STC2 -LSA更大的性能增强。可能的原因是用于指导CNN模型学习的伪监督引入了互补的特征。特别是对于AE情况,输入CNN模型的输入特征和用于指导CNN模型学习的伪监督都来自字嵌入。在我们提出的方法中没有不同的语义特征,因此STC2 -AE中的性能增强受到限制。对于LSA情况,正如我们所知,LSA将进行矩阵分解以找到原始特征空间的最佳子空间近似,以最小化全局重建误差。正如Pennington et al. (2014) 和 Li et al. (2015) ,最近指出用word2vec或一些方差训练的单词嵌入基本上是做矩阵分解的操作。因此,CNN中输入和伪监督之间的信息并没有很大程度上相互脱离,并且STC2 -AE的性能增强也不太令人满意。对于LE和LPI情况,我们知道LE提取原始特征空间的流形结构,LPI提取原始特征空间的几何和区分结构(Cai et al., 2005)。我们猜测我们的方法STC2 -LE和STC2 -LPI与LE和LPI相比都有很大的提升,因为LE和LPI都获得了有用的语义特征,并且这些特征也不同于用作CNN输入的字嵌入。从这个观点来看,我们说当伪监督能够获得语义上有意义的特征时,我们提出的STC有可能表现得更有效,这与CNN的输入不同。

          

图3(a)  SearchSnippets.                    3(b) StackOverflow

图3(c) Biomedical

3使用我们提出的基于AELSALELPISTC2的ACC(在三个短文本数据集测试)

        

图4(a)  SearchSnippets.                    4(b) StackOverflow

图4(c) Biomedical

3使用我们提出的基于AELSALELPISTC2的NMI(在三个短文本数据集测试)

此外,根据表4-5和图3-4中的K-means和AE的结果。我们注意到TF-IDF加权为K-means提供了更显着的改进,而TF加权比平均嵌入的TF-IDF加权更好。也许原因是预训练的单词嵌入编码了一部分来自外部语料库的有用信息,并且能够在没有TF-IDF加权的情况下获得更好的结果。同时,我们发现LE在SearchSnippets数据集中获得了比LPI,LSA和AE更不寻常的良好性能,而在其他两个数据集中找不到。为了更清楚地了解这一点,并对我们提出的方法和其他基线进行更好的演示,我们进一步报告了图5中SearchSnippets上的二维文本嵌入,使用Van der Maaten and Hinton (2008) 得到分布式随机邻居嵌入在聚类方法中使用的特征表示。我们可以看到AE和LSA的结果似乎与LE和LPI的结果相当好或甚至更好,这与图3-4中ACC和NMI的结果不同。同时,RecNN(Ave.)的性能优于BoW(TF和TF-IDF),而RecNN(Top)则没有,这与表4,表5中ACC和NMI的结果相同。然后我们猜测两者都是“与上述相同”和“与上述不同”只是一个很好的例子来说明可视化工具(如t-SNE)可以获得一些有用的测量结果信息,这些信息与ACC和NMI不同。此外,从这个t-SNE的互补视角,我们可以看到我们的STC2 -AE,STC2 -LSA,STC2 -LE和STC2 -LPI在不同的语义主题(即标记/标签)中显示出更明确的边缘,分别与AE,LSA,LE和LPI进行比较,并与基线,BoW和基于RecNN的基线进行比较。

图5.用(a)TF和(b)TF-IDF加权的原始关键字特征的二维嵌入,(c)RecNN中顶部树节点的向量,(d)RecNN中所有树节点的平均向量 ,(e)用TF加权的平均嵌入,基于LSA的子空间特征(f),(g)LE和(h)LPI,来自(i) STC2-AE,(j) STC2-LSA,(k) STC2-LE和(l) STC2-LPI的深度学习特征。 以上所有特征分别用于K-means(TF),K-means(TF-IDF),RecNN (Top),,RecNN (Ave.),AE (TF), LSA(best),,LE (best), LPI (best),,以及我们在SearchSnippets上提出的STC2-AE,STC2-LSA,STC2-LE和STC2-LPI。

 

从所有这些结果中,通过三个数据集下的ACC,NMI和t-SNE三个度量,我们可以得出一个可靠的结论,即我们提出的方法是获得短文本聚类的有用语义特征的有效方法。

 

5.结论

随着社交媒体的涌现,短文本聚类已成为一项日益重要的任务。 本文探讨了基于从提出的自学习卷积神经网络中学习的深度特征表示来聚类短文本的新视角。 我们的框架可以在不使用任何外部标记/标签和复杂的NLP预处理的情况下成功完成,我们的方法是一个灵活的框架,其中传统的降维方法可用于提高性能。 我们对三个短文本数据集的广泛实验研究表明,我们的方法可以实现明显更好的性能。 将来,需要更多的研究来解决如何在提出的框架中选择和合并更有效的语义特征。

  1. 致谢

我们要感谢评论者的评论,并感谢Kaggle和BioASQ提供数据集。 这项工作得到了国家自然科学基金(编号61602479,61303172和61403385)和中国科学院战略重点研究计划(批准号XDB02070005)的支持。

猜你喜欢

转载自blog.csdn.net/fanyuwgy/article/details/87891715