短文本分类及相关技术

目录

 

01  背景介绍

02  短文本分类划分

03  深度CNN结合知识进行文本分类[1]

3.1 概述

3.2 整体步骤

一:利用知识库概念化短文本

二:模型整体结构设计

3.3 实验

04  主题记忆机制[4]

4.1 概述

4.2 模型结构设计

4.3 实验

05  总结


01  背景介绍

文本分类作为文本理解的基本任务、能够服务于大量应用(如文本摘要、情感分析、推荐系统等等),更是长期以来学术界与工业界关注的焦点。

先前的方式主要采取人设定特征(词袋、词性标注、树核等)或者ML/DNN对文本进行表达(朴素贝叶斯 、SVM),具体来说分为以下几种:词嵌入向量化:Word2vec、FastText等;卷积神经网络特征提取:Test-CNN、Char-CNN等;上下文机制:Text-RNN、BiRNN、RCNN等;记忆存储机制:EntNet、DMN等;注意力机制:HAN等。

 

短文本由于内容简短,易于阅读和传播,被民众广泛使用,在新闻标题、社交媒体信息和短信中随处可见,但是内容简短、缺失会引起数据稀疏,与段落或者文章不同,短文本并不总能观察出句法,且短文本存在的多义和错误往往使内容不清楚,难以理解语义,导致模型分类没有足够特征进行类别判断,分类任务困难。

 

02  短文本分类划分

为了克服短文本分类的困难,需要获得更多的语义和句法信息,要求更先进的文本表达模型。根据是否利用外部资源,(短)文本分类分为两类:显式表示和隐式表示。

 

显式表示主要指传统方式:分块、标注和句法分析。可以从多方面设计有效特征:资源/知识库(如*), 词性标记,依存句法分析。但是也存在不少缺陷,如:对机器来说很难收集有用特征消除歧义;存在数据稀疏问题,实体不在知识库;依靠大量高质量数据,对于某些特定语言/场景难以实现。

而隐式表示则是利用Neural Language Model (NLM) 文本映射到隐式语义空间,特征化为向量,借助深度神经网络捕捉更丰富信息,对文本有更好理解。它的缺陷则是针对新和不常用词效果差;容易忽视重要关系,需要额外的知识补充。

 

针对短文本分类,若采用显式模型,由于短文本的句法语义信息利用传统的NLP手段难以捕捉,有时模型不起作用;而采用隐式模型,许多真实应用场景中,像某些专有名词(并不常用)出现会很频繁,而且IsA relation等会缺失。因此单独使用哪一种方式都不合适,需要二者结合互补,将已有的知识如逻辑规则可以融入到深度神经网络,调节学习过程。因此需要提出将二者融合的深度神经网络 ,本文将针对此类工作进行介绍。

 

03  深度CNN结合知识进行文本分类[1]

3.1 概述

文章[1]针对短文本理解问题,将显式和隐式表示结合在一起,构建DNN框架。利用大的知识库丰富短文本信息,将每篇短文和知识库中的相关概念结合在一起,紧接着利用预训练的word embedding将词语和短文本对应的概念结合起来产生对应embedding,将word-concept embedding输入到CNN学习显式知识。

由于显式模型和隐式模型结合仍然不可避免地弄错语义信息,如buy apple iphone7,采用知识库和预训练的word embedding无法识别iphone7。受到character level language model 启发[2],文章将输入的word-concept的embedding和字符级别的embedding结合在一起以获得更多语义特征,使用单独的CNN,只有字符embedding输入,联结到主网络的全连接层,作为输出层的特征向量,结果上iphone7就会和iphone产生相似的特征。

作者将该方案命名为Knowledge Powered Convolutional Neural Network (KPCNN),其特点是能够通过两个子网络提取word-concept以及character信息。

3.2 整体步骤

一:利用知识库概念化短文本

引入概念向量C:

 C={<c1,w1>,<c2,w2>,…,<ck,wk>}

ci 为知识库概念,Wi 表示和短文本相关性的和ci的权重,在数据集Probase(世俗事实分类)当中K为10。结合文本,通过Probase提供的API获得概念向量。

如“CNOOC Signed a PSC with ROC”返回:{<client,0.9>, <channel,0.6>,<mythological creature,0.6>,<international well-known enterprise,0.2>,<chinese oil major,0.2>}。

 

二:模型整体结构设计

如图1所示模型设计,目标是将概念知识和短文本embedding结合起来。其中针对word和concept采用预训练word embedding并保持不变,允许字符级别的embedding在训练过程更新。整体结构为CNNs架构,均为一层输入,两层卷积,两层池化,两层隐含层,其中一路针对文本的word和concept embedding,一路针对字符embedding(输入为编码的字符序列)。

短文本分类及相关技术

图 1:KPCNN整体模型结构

 

输入层的embedding矩阵包含了word和concept的embedding信息(其中针对每个concent既有对应向量也有着相应权重),计算方式如下:

短文本分类及相关技术

 

经过卷积层,池化层针对每个特征图采取max-over-time pooling,选择每个维度较大值,以此从特征图中获得固定长度的向量。经过隐层tanh和dropout输出,两部分向量拼接在一起通过输出层转换为分类概率。而在训练过程中,参数采用较大化对数似然和Adagrad更新。

 

3.3 实验

在以下五个数据集中,数据集概述如表1所示,该方案基本都展示出较好的效果,结果如表2所示。和本方案做对比的是两个基于特征的方法和两个基于神经网络的方法,基于前文所述算法本文自身建立了WCCNN和KPCNN两种模型。

 

对比的各个模型简介如下:

Word-Concept Embedding + LR(WC+LR)

使用带权重的word embedding和concept embedding代表短文。对于带权重的word embedding,使用tf-idf数值作为权重。针对给定concept 向量,concept embedding是每个concept embedding的带权平均:

短文本分类及相关技术

整体的embedding是word向量和concept向量的平均,然后使用LR进行分类。

 

BoW+SVM

采用传统SVM进行分类,使用unigrams作为文本特征,每个特征的权重是每个unigram的频率。

 

CNN

使用一层CNN多通道结构进行text embedding。

 

CharCNN

12层CNN,输入只有字符特征[3]。

 

WCCNN

本文提出,只使用提出模型的上半部分,embedding是word和concept的联结。

短文本分类及相关技术

表 1:数据集概述

 

短文本分类及相关技术

表 2:不同数据集下各个模型的准确度对比

 

进一步实验发现若采用不同的embedding,使用如图2的两种embedding并不如word2vec效果好,主要原因是这两种未知词语太多,导致实验结果变差,如表3所示:

短文本分类及相关技术

图 2:不同embedding下的实验结果

 

短文本分类及相关技术

表 3:每一种embedding未知词语的数目

 

04  主题记忆机制[4]

4.1 概述

短文本分类也可以引入主题记忆网络。之前的工作大多是利用外部知识或者预训练话题扩展特性,文章[4]提出可利用memory network针对文本分类编码潜在的主题表示,在分类同时给出主题(主题建模+分类)。

 

主题词相较于低频词或常用词,往往能更好地指明文本的类别。因此,过去的工作已经证明,用主题模型学出的主题表示,能够有效地提高文本分类的性能。然而,目前的大多数文本分类任务在用到主题表示的时候,往往采用两步走的方法,先训练好主题模型,然后将主题模型输出的主题表示去初始化文本分类的特征空间。近期,神经主题模型的提出,使得主题模型与大量的深度学习任务能够在多任务学习 (multi-task learning) 的框架下被联合训练,以本文最基础的任务——文本分类作为这种新的训练模式的一个初期的探索,提出了一种新的网络模型 Topic Memory Networks(主题记忆网络)。

短文本分类及相关技术

图 3:Tweet用于分类的例子

(其中Ri为第i个训练样例,s为测试样例,[]为标签)

 

如图3样例所示,测试样例S仅有11个词,没有丰富文本,分类器很容易分到和R1相同类别 (R2只有一个词相同)。那么如何丰富短文本信息呢?我们发现R2中的wristbands和Bieber 语义共现,暗示了主题。针对测试样例S,这种共现现象可以进一步帮助理解wristbands。因此引入topic memory networks (TMN) ,不依赖外部知识,模型可以识别对于分类暗示的词,如S当中的wristbands。因而文章尝试探索文档级别词共现模式,如R2当中的wristbands和bieber。

 

4.2 模型结构设计

基于神经主题模型neural topic models可以发现隐含话题,在文档级别捕捉词的共现[5]。为了利用这个潜在话题来分类,受到Memory network启发(允许模型把attention放置在对分类有帮助的潜在主题)文章提出了主题记忆机制。有了这样语料级别的潜在主题表示,每个短文本例子得到丰富,帮助减轻数据稀疏。模型整体结构示意图如图4。

短文本分类及相关技术

图 4:主题记忆整体模型结构示意图

 

整体模型结构分为三部分,通过一个联合的学习策略同时更新:神经主题模型用于学习主题表示(产生隐含主题);主题记忆机制将学到的主题表示映射到对文本分类有用的特征空间,成为分类特征;分类器输出文本分类标签,多种分类器(CNN/RNN)均适配,CNN在之前工作证明针对文本分类更为有效。

 

输入为文本表示,每个文本两种表示,词袋模型向量bag-of words(BoW) term vector和词索引向量word index sequence vector。词袋模型向量注入神经主题模型产生主题表示,主题表示进一步与词索引向量匹配,在主题记忆机制学习分类特征。分类器将主题记忆机制产生的表达和词索引向量连结起来,预测针对输入的分类标签。

 

神经主题模型受到neural topic model(NTM)启发,在神经网络中产生隐含话题。该模型基于auto-encoder变体(VAE),其中连续隐含变量z作为中间表达,它的产生类似于LDA,每个短文本都有一个主题概率分布θ(K维,K个话题),通过gaussianSoftmax结构产生,每个话题k下有词概率分布[6]。NTM基于VAE模型,encoder估计初始参数,decoder描述产生过程。不同于基本VAE,NTM包括了额外的主题概率分布和词概率分布,生成隐含主题表示,使得学习过程中解释性更好。

 

主题记忆机制将neural topic model(NTM) 产生的隐含话题映射得到分类特性。引入 source memory S 和 target memory T 两个矩阵,将topic-word权重矩阵作为输入,经过两个RELU**的感知器。期间会计算主题概率分布和匹配概率,添加分类特征。其中第K个话题和索引向量中的第l个词embedding的匹配度可以计算为:

短文本分类及相关技术

为了实现主题模型与文本分类的联合训练,主题记忆网络的损失函数为主题模型的训练目标 variational lower-bound 以及文本分类器的训练目标 cross-entropy 的加权和。

 

4.3 实验

实验基于4个数据集,数据集的基本情况如表4所示,分类结果如表5。其中TMN(Joint TM inference)表示主题记忆网络,TMN(Separate TM inference) 表示先预训练好神经主题模型,之后把其输出的主题表示初始化主题记忆机制来进行文本分类。TMN表示神经主题模型与文本分类联合训练。分类模型当中,BTM是其中一种面向短文本的主题模型 biterm topic model,NTM为neural topic model。两个版本的主题记忆网络的结果显著高于所有的比较模型(p<0.05 paired t-test)。

短文本分类及相关技术

表 4:实验数据集基本信息

短文本分类及相关技术

表 5:4个数据集上不同模型分类结果

 

基于表5,可以得到以下结论:

1 结合主题信息,隐含主题信息对短文本理解有帮助

2 神经网络具有有效性(优于SVM)

3 CNN效果优于AttBiLSTM[7],有更好的编码效果

4 主题记忆是有效的(TMN),效果优越

5 联合训练是有效的

同时,表6为在三个数据集下,四种模型计算所得的CV coherence 分数 (https://github.com/dice-group/Palmetto) 。以此作为评测指标,可以看出TMN都得到较好的效果。

短文本分类及相关技术

表 6:四种模型下的CV coherence

 

通过与文本分类联合训练,主题模型能够学到更有意义的主题表示,来自分类标签的监督帮助无监督主题模型找到合适标签;主题模型引入神经网络也是十分有效的。

 

如图5(a)所示,可视化热力图中主题概率分布位于上方,主题记忆权重矩阵P 位于下方。主题记忆网络学到了更多的表示,允许模型把attention 置于对文本分类有用的潜在主题。虽然三个主题的相关主题词大多都不被包含于 S 当中,但是通过挖掘词与词的共现关系,主题模型成功扩展了 S 中主题词 wristband 的语义,如(b)所示,从而使得 S 得以被正确分类到 New Music Live。

短文本分类及相关技术

图 5:主题记忆机制中存储的S 中每个词与各主题之间的关系热度图

 

05  总结

KPCNN通过将短文本的显式表示和隐式表示结合起来,利用大规模知识库概念化短文本,采用word-concept embedding的方式,此外进一步加入character level information,以此获得更多的额外信息,在常用数据集上已经证明了方法的有效性。

 

而基于Topic Model的短文本分类方法要旨是基于词在文章中的共现关系,从大量的词汇中找出主题词(例如 S 中的 wristbands),这部分主题词在一部分的文章中经常出现,但并不似常用词一般在大部分文章中都频繁出现。主题模型与文本分类在神经网络框架下进行结合,是主题表示与其他深度学习任务联合训练的一个尝试,希望能够对后续对于主题表示与深度学习的研究与应用有所启发。

 

引用

[1] Jin Wang, Zhongyuan Wang, Dawei Zhang, Jun Yan. Combining Knowledge with Deep Convolutional Neural Networks for Short Text Classification.IJCAI 2017.

[2] Yoon Kim, Yacine Jernite, David Sontag, and Alexander M. Rush. Character-aware neural language models. In AAAI, pages 2741–2749, 2016.

[3] Xiang Zhang, Junbo Zhao, and Yann LeCun. Character-level convolutional networks for text classification. In NIPS, pages 649–657, 2015.

[4] Jichuan Zeng, Jing Li, Yan Song, Cuiyun Gao, Michael R. Lyu, and Irwin King. Topic Memory Networks for Short Text Classification. EMNLP 2018.

[5] Xiaohui Yan, Jiafeng Guo, Yanyan Lan, and Xueqi Cheng. 2013. A Biterm Topic Model for Short Sexts. In 22nd International World Wide Web Conference, WWW 2013, Rio de Janeiro, Brazil, pages 1445–1456.

[6] Yishu Miao, Edward Grefenstette, and Phil Blunsom.2017. Discovering Discrete Latent Topics with Neural Variational Inference. In Proceedings of the 34th International Conference on Machine Learning,ICML 2017, Sydney, NSW, Australia, pages 2410–2419.

[7] Dongxu Zhang and Dong Wang. 2015. Relation Classification via Recurrent Neural Network. CoRR, abs/1508.01006.