文本表示简介

SIGAI 特邀作者:徐国海

研究方向:自然语言 处理、知识图谱

导言

文本分类是自然语言处理中研究最为广泛的任务之一,通过构建模型实现对文本内容进行自动分类,有很多应用场景,比如新闻文章主题分类,产品评论情感分类,检索中用户查询的意图分类等等。文本分类的大致流程:文本预处理,抽取文本特征,构造分类器。其中研究最多的就是文本特征抽取,更广义上说是文本表示。

关于文本表示,研究者从不同的角度出发,提出大量的文本表示模型。本文重点梳理现有模型,大致分为三类,即基于向量空间模型、基于主题模型和基于神经网络的方法,针对每类给出一些具有代表性的模型,阐述其基本思想,对于具体的细节,读者可以阅读给出的参考文献。


基于向量空间模型的方法

向量空间模型是将文本表示成实数值分量所构成的向量,一般而言,每个分量对应一个词项,相当于将文本表示成空间中的一个点。向量不仅可以用来训练分类器,而且计算向量之间的相似度可以度量文本之间的相似度。

最常用的是TF-IDF计算方式,即向量的维度对应词表的大小,对应维度使用TF-IDF计算。向量空间模型的优点是简单明了,向量维度意义明确,效果不错,但也存在明显的缺点,其一,维度随着词表增大而增大,且向量高度稀疏;其二,无法处理“一义多词”和“一词多义”问题。

在向量空间模型中,文档集合相当于表示成高维稀疏矩阵,如图1中所示,文档集合矩阵的维度是N*V,其中N是文档数目,V是词表的大小。为了更好的提升文本的语义表示能力,有人提出通过矩阵分解的方法,对高维稀疏矩阵进行分解,最为著名的便是潜在语义分析(Latent semantic analysis, LSA),具体而言,LSA会构建一个文档与词项的共现矩阵,矩阵的元素一般通过TFIDF计算得到,最终通过奇异值分解的方法对原始矩阵降维,可以得到文档向量和词项向量。如图1所示,分解后,每个文档可以用k维向量表示(k << V),相当于潜在语义分析实现对文档的低维语义表示。但是,以上过程通过矩阵分解得到,空间中维度的物理含义不明确,无法解释。

图1 LSA

基于主题模型的方法

第2节中提到LSA算法通过线性代数中奇异值分解实现文档映射到低维语义空间里的向量,但是空间中每一个维度是没有明确物理意义的,主题模型尝试从概率生成模型的角度实现文本的表示,每一个维度是一个“主题(topic)”,这个主题通常是一组词的聚类,因此可以通过主题大概猜测每个维度所代表的语义,具有一定的解释性。

最早的主题模型pLSA (probabilistic LSA),假设文档具有主题分布,文档中的词从主题对应的词分布中抽取。如图2所示,以d表示文档,w表示词,z表示主题(隐变量),则文档和词的联合概率p(d, w)的生成过程可表示为:

其中p(z|d)和p(w|z)作为参数可以用EM算法进行学习。然而,pLSA没有假设主题的的先验分布,导致参数随训练文档的数目呈线性增长,参数空间很大。

图2 pLSA

于是,有人提出更加完善的主题的模型LDA(Latent Dirichlet allocation),可以认为pLSA体现频率学派的思想,而LDA是贝叶斯学派的思想,LDA在已有的模型上中的2个多项式分布引入了狄利克雷先验分布,从而解决pLSA中存在的问题。如图3所示,每个文档的主题分布为多项式分布Mult(θ),其中θ从狄利克雷先验分布Dir(α)抽取,同理,对于主题的词分布为多项式分布Mult(Φ),参数Φ也是从狄利克雷先验Dir(β)抽取得到。

图3 LDA

基于主题模型的方法,引入“主题”概念,具有一定的物理意义,从而得到文档的主题分布表示。当然,主题模型很存在一些问题,比如训练参数多导致训练时间长,对短文本的建模效果不好,主题数目的设置需要人工设定可能导致不合理。后来,也有很多人提出改进的方法,在这就不一一赘述了。

基于神经网络的方法

现今,基于神经网络的方法受到广泛关注,各种各样的模型被相继提出,本节总结其中最具有代表性的模型,将其分为三类:

第一类,基于词向量合成的模型,该类方法仅是在词向量基础上简单合成;

第二类,基于RNN/CNN的模型,该类方法利用更复杂的深度学习模型对文本进行建模;

第三类,基于注意力机制的模型,在已有神经网络模型基础上,引入注意力机制,提升文本建模效果。

基于词向量合成的模型

2003年Bengio等人开始使用神经网络来做语言模型的工作,尝试得到词的低维、稠密的向量表示,2013年Mikolov等人提出简化的模型,即著名的Word2Vec,包含两个模型CBOW和Skip-gram,前者通过窗口语境预测目标词出现的概率,后者使用目标词预测窗口中的每个语境词出现的概率。语义上相似或相关的词,得到的表示向量也相近,这样的特性使得Word2Vec获得巨大成功。

后来,Mikolov等人又延续Word2Vec的思想,提出Doc2Vec,核心思想是将文档向量当作“语境”,用来预测文档中的词。Doc2Vec算法可以得到词向量和文档向量。如图4所示,两个算法的思想基本一致。

图4 Word2Vec和Doc2Vec比较

其实,也可以通过最简单的合成方式实现从词向量到句子向量的表示,fastText就是这样简单有效的模型,如图5所示,输入层是词向量,然后通过把句子里的词向量平均就得到句子的表示,最后送到分类器中。不过,输入端会另外补充一些n-gram信息来捕捉局部序列信息。fastText是线性分类模型,实验表明在诸多“简单”文本分类任务中表现出色,且具备训练速度非常快的优点,所以可以成为很好的Baseline。

图5 fastText模型

基于RNN/CNN的模型

自然语言中,词构成句子,句子构成文档,有很多工作尝试合理表示词向量同时,也有很多模型被提出来建模句子和文档,其中最常见的网络结构便是LSTM和CNN。

2014年Kim提出基于卷积神经网络的文本分类,如图6所示,输入是句子对应的词向量矩阵,经过一层卷积层和一层Max Pooling层,得到句子的表示,送入到全连接层,最后softmax输出。卷积神经网络擅长提取重要的局部特征,在文本分类中,可以理解为不同大小的卷积核在提取不同n-gram特征。一般认为,卷积神经网络无法考虑长距离的依赖信息,且没有考虑词序信息,在有限的窗口下提取句子特征,会损失一些语义信息。

图6 CNN网络用于文本分类

针对CNN的不足之处,LSTM和GRU等循环神经网络因为擅长捕捉长距离信息,所以也被大家尝试用来文本表示。如图7所示,图中利用双向LSTM来建模输入句子,输入是句子的词向量,输入至BiLSTM中进行序列建模。最后句子表示,可以尝试两种方法,其一,选择最后的hidden state用来表示句子;其二,所有hidden state的平均用于表示句子。

图7 BiLSTM用于文本表示

刚才分析到,CNN擅长提取局部特征,而LSTM擅长捕捉长距离信息,不难想到,有人尝试结合两种网络的优点,提出RCNN用于文本建模。如图8所示,整个网络结构主要有两部分组成,循环结构和Max Pooling。循环结构,可以理解为,在已有词向量为输入的基础上,通过双向RNN网络学习每一个词的左、右上下文信息,接着将三部分(left context, word embedding, right context)表示向量拼接起来,作为句子中每一个词的表示,然后使用变换得到中间语义表示;Max Pooling层,采用element-wise的max pooling方式,可以从变长的输入中得到固定的句子表示。

图8 RCNN用于文本表示

基于注意力机制的模型

注意力被认为是一种有效选择信息的方式,可以过滤掉大量与任务无关的信息,最先在机器翻译任务中被提出,解决seq2seq中encoder过程把源序列映射成固定大小的向量存在“损失”信息的情况。紧接着,Attention被推广到各种NLP任务中,文本表示任务当然不例外。这里,主要介绍两种Attention的形式,Hierarchical Attention 和 Self-Attention。

Hierarchical Attention网络结构,如图9所示,该模型基于两个基本假设,其一,文档是分层结构的,词构成句子,句子构成文档;其二,文档中不同词或句子提供的信息量不一样的,该模型适合用来表示包含多个句子的文档的表示问题。模型主要由word encoder和sentence encoder,以及相应的attention组成,word encoder部分用于得到句子的表示,该层的输入为句子的词向量,经过双向GRU后得到中间表示,word attention部分对中间表示按attention值进行加权得到此句最终的句子表示;sentence encoder部分用于得到文档的表示,使用word encoder部分得到文档中所有句子的表示后,将此作为sentence encoder部分的输入,类比word encoder的计算,可以最终得到文档的表示。简言之,利用Hierarchical Attention结构,一层词输入得到句子表示,一层句子输入得到文档表示。即使文档长度较长,但是在注意力的作用下,依然可以较好的捕捉到有效的特征信息,忽略无意义的输入。

图9 Hierarchical Attention

Self-Attention网络结构,如图10所示,大多数神经网络模型将文本表示成一维的向量,但是此模型通过二维矩阵来表示句子,包括两部分,一部分是双向的LSTM,另一部分是自注意力机制,自注意力机制实现对双向LSTM中所有的隐藏状态以不同权重的方式线形组合,每一次组合获得句子的一部分表示,多次组合便得到矩阵表示(图中矩阵M)。

图10 Self-Attention

总结

本文简述了具有代表性的文本表示模型,将现有模型分为三类进行介绍,包括基于向量空间模型、基于主题模型和基于神经网络的方法。不过,本文中提及的神经网络方法大部分都是有监督方法,通常都是结合具体的应用根据有监督的信息进行训练,其实也有大量的方法是通过无监督的方法获得普适性的文本表示,感兴趣的读者可以自行去翻阅相关文献。

参考文献

1.信息检索导论,第14、18章

2.短文本理解, 计算机研究与发展2016

3.LDA数学八卦

4.Distributed Representations of Words and Phrases and their Compositionality, NIPS2013

5.Distributed Representations of Sentences and Documents, ICML2014

6.Bag of Tricks for Efficient Text Classification, EACL2017

7.Convolutional Neural Networks for Sentence Classification, EMNLP2014

8.Recurrent Convolutional Neural Networks for Text Classification, AAAI2015

9.Hierarchical Attention Networks for Document Classification, NAACL2016

A Structured Self-attentive Sentence Embedding, ICLR2017

原文发布于微信公众号 - SigAI(SIGAICN)

原文发表时间:2018-08-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

隐马尔科夫模型 和动态贝叶斯网络

(一):定义及简介: 介绍(introduction) 通常我们总是对寻找某一段时间上的模式感兴趣,这些模式可能出现在很多领域:一个人在使用电脑的时候使用的命...

6105
来自专栏量子位

机器学习萌新必学的Top10算法

在机器学习领域里,不存在一种万能的算法可以完美解决所有问题,尤其是像预测建模的监督学习里。 ? 比方说,神经网络不见得比决策树好,同样反过来也不成立。 最后的结...

3646
来自专栏AI科技评论

学界 | CVPR2017精彩论文解读:直接处理三维点云的深度学习模型

AI 科技评论按:CVPR 2017已经落下帷幕,但对精彩论文的解读还在继续。下文是Momenta高级研究员陈亮对此次大会收录的 PointNet:Deep L...

7023
来自专栏机器学习算法与理论

深度学习核心技术实战 NLP-word2vec

多分类的逻辑回归- softmax模型 word2vec:词向量 one-hot representation 对应位置为1,但不能表达词之间的关系 本质...

872
来自专栏人工智能LeadAI

BAT机器学习面试1000题系列(第150~279题)

长文~可先收藏再看哟~ 150、在感知机中(Perceptron)的任务顺序是什么?深度学习 DL基础 易 1 随机初始化感知机的权重 2 去到数据集的下一批(...

4.4K10
来自专栏机器学习算法与Python学习

收藏!机器学习与深度学习面试问题总结.....

3317
来自专栏数据科学与人工智能

【机器学习】聚类算法总结

聚类的目标是使同一类对象的相似度尽可能地小;不同类对象之间的相似度尽可能地大。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算...

4239
来自专栏机器之心

学界 | Hinton提出泛化更优的「软决策树」:可解释DNN具体决策

选自arXiv 机器之心编译 参与:刘晓坤、黄小天 近日,针对泛化能力强大的深度神经网络(DNN)无法解释其具体决策的问题,深度学习殿堂级人物 Geoffrey...

3347
来自专栏PPV课数据科学社区

收藏!机器学习与深度学习面试问题总结.....

后向传播是在求解损失函数L对参数w求导时候用到的方法,目的是通过链式法则对参数进行一层一层的求导。这里重点强调:要将参数进行随机初始化而不是全部置0,否则所有隐...

1342
来自专栏华章科技

浅说深度学习

在机器学习中,我们(1)读取数据,(2)训练模型,(3)使用模型对新数据做预测。训练可以看作是当模型拿到新数据的时候、逐步学习一个的过程。在每一步,模型做出预测...

1472

扫码关注云+社区

领取腾讯云代金券