APP下载

基于层级注意力模型的无监督文档表示学习①

2018-09-17欧阳文俊徐林莉

计算机系统应用 2018年9期
关键词:层级文档向量

欧阳文俊,徐林莉

(中国科学技术大学 计算机科学与技术学院,合肥 230027)

大数据时代,随着文本数据的大量增长,如何通过计算机的存储和表示这些文本成为一个重要的问题.许多文本任务的首要步骤就是文本表示(Text Representation),它在自然语言处理(Natural Language Processing,NLP)中一直是一个热门的话题也具有非常广泛的应用[1,2],早期的文本表示模型统计单词中文本中的词频或者通过少量的文特征词来表现整个句子的特征.Harris 在 1954 年提出了词袋(Bag-of-Words,BoW)和Bag-of-n-gram模型.BoW将一段文本表示成一个与词汇表等长的向量,但是这种方法失去单词在文本中出现的次序信息,不同句子可能有相同的向量表示.Bag-of-n-gram虽然加入了单词的次序信息,但同时向量的维度也大大提高了.词频-逆文档频率(TFIDF)用统计特征提取的方法表示文本.这些方法都属于文本的高维集中式表示,通常向量的维度很大而且很稀疏,丢失了文本的语义信息,计算复杂度非常高.

Bengio 2003年提出基于神经网络模型的单词分布式表示(Distributed Representations)算法[3],它是一种将文本表示成低维实数向量的方法.此后分布式表示学习的研究发展迅速,其中包括单词表示和文档表示,也可以称为词嵌入(Word Embeddings)和文档嵌入(Document Embeddings),将词或者文档嵌入到一个连续的空间,得到词和文档的分布式表示[4–7].标记数据在大数据时代是非常昂贵的,文本的分布式表示作为一种无监督学习(Unsupervised Learning),能够直接从大量未标记文本中学习特征,这是分布式表示的一大优势.此外,分布式表示的另一个优点是得到的向量具有良好的语义性质,例如词向量的类比(analogy)性质:v(北京)-v(中国)=v(巴黎)-v(法国).分布式表示学习得到的向量作为其他机器学习模型的输入,很大程度提升它们对文本的理解能力,所以分布式表示在自然语言应用中起到非常重要的作用.

现有的无监督文档表示方法没有考虑单词在句子中的重要性,也没有考虑句子在文档中的重要性,等价的看待所有的单词和句子,这与人类在理解文本的时候是不相符的.为了解决这种文本中单词不同重要性的问题,注意力机制开始引入到文本任务中[8–10].注意力机制考虑的是在文本序列中每个单词对目标任务起到的作用不是等价的,而是着重关注在句子中关键的一些词.现有大部分具有注意力机制的NLP工作都是监督学习(Supervised Learning)模型,它们为单个任务提出相适应的注意力机制.注意力机制在一系列监督的自然语言处理任务中体现了它的作用和价值,但在无监督的任务中还没有过多的研究,如何将注意力机制引入到无监督的文本表示学习上成文本文研究的重点.对于文档来说,它的层级结构也使得本文的注意力机制与众不同,文档中的重要成分是句子,句子的重要成分才是词,所以本文研究了一个层级的注意力机制.

最终,文本将无监督的文本表示应用在文档表示中,同时考虑文档的层级结构,加入注意力机制,构建一个基于层级注意力机制的无监督文档表示模型(Hierarchical Attention Document Representation,HADR).本文提出的文档表示方法更加具有语义性,得到文档表示的同时得到了每个词的重要性和每个句子的重要性.下面总结本文的主要贡献:

1)提出一种无监督的注意力机制应用在文档的分布式表示中;

2)在得到文档表示时,考虑了文档的层级结构;

3)HADR模型得到的文档表示在情感分类实验上取得了更好的表现.

1 相关工作

1.1 词嵌入与文档表示

单词分布式表示高效的从大量未标记文本中学习单词向量,也称作词嵌入.该方法将词嵌入到一个低维空间,得到每个词的稠密向量表示,向量的每个维度都具有一定的语义信息.相似含义的词汇具有相似的表示,也就是它们的余弦相似度比较大.相反的可以通过两个词语向量的余弦相似度来判断它们在语义空间是否相似.这样,词的语义相关性很好的通过向量计算量化.

最早的单词分布式表示模型是Bengio 2003年提出的神经网络语言模型(Neural Network Language Model,NNLM)[3],它是一个 4 层的神经网络模型,通过上文的词来预测下文的词,输入层的参数即词向量表示矩阵可以自动学习.由于NNLM隐藏层数目过多导致计算复杂度过高,因此词嵌入技术受到限制,无法应用于海量文本的训练,词嵌入技术也因此在很长一段时间内停滞不前.Mikolov 2013 年改进了 NNLM,提出了现在经典的Word2Vec[4,5],该模型去掉一个非线性隐层,是一个只有输入层、隐藏层和输出层的3层神经网络.作者还分别提出两种不同的训练方式CBOW和Skip-Gram,都是通过目标单词和上下文之间的关系建模.与NNLM模型相比,Word2Vec大大的提升了词向量训练效率.除了神经网络模型学习词向量以外,还有基于共现矩阵分解的方法[11,12],并且Omer Levy证明了对PMI矩阵分解的方法与Skip-Gram模型是等价的[12].

单词的分布式表示技术在NLP应用中取得了不错的效果,一些研究开始将分布式表示学习利用到文档上,希望得到一篇文档的表示向量[7,13–15].Le 等人2014年扩展CBOW和Skip-Gram分别提出了文档的分布式表示学习模型PV-DM和PV-DBOW[7],它们的神经网络的结构与Word2Vec模型相比没有变化,只不过在输入层添加了文档向量的学习.如果两篇文档具有较多相似的词语,那它们的文档向量也是比较接近的.实验验证了文档表示在分类任务上有不错的效果.现有的文档表示模型没有考虑文档中词语的重要性,即使两篇文章有较多相似的但不重要单词,也不能认为两篇文档相似,所以在学习文档表示时,考虑单词重要性尤为关键.因此本文在表示文档的时候着重考虑了各部分的重要性.

1.2 注意力机制

注意力机制首先应用在图像问题中[8,16],该研究动机来源于人类的注意力机制,在图像和自然语言处理问题中,可以看成图像或者文本中不同部分的重要性体现.

Bahdanau第一次在机器翻译模型中引入了注意力机制[9],之后注意力机制在自然语言处理中得到广泛应用.Wang尝试把注意力机制引入到无监督句子表示学习上,扩展 PV-DM 方法,提出了 aCSE 模型[14],Wang认为窗口中的所有单词重要性是不一样的,上下文的每个单词应该赋予一个权值,这个权值依赖距离目标词的位置,并且在训练的时候得到.这种注意力的构造是一种局部的注意力,体现的是局部重要性,仍然无法看出一个词对于理解整个句子或文档的全局重要性.

Yang为了解决文档分类问题,提出了一个层级注意力模型(Hierachical Attention Network,HAN)[10].该文考虑一篇文档具有的层级结构,即文档由句子构成,句子由词构成,在构建文档的表示之前先构建句子表示,然后通过句子表示得到文档的最终表示,单词和句子的重要性在不同的文档中都可能不同.Yang构建的层级注意力模型是一个监督的学习模型,并且仅限于应用在单个自然语言处理任务上.

在基于无监督学习的文档表示模型中,现有的模型没有考虑文档的层级关系,aCSE[14]只考虑单词的局部重要性,而且这种基于位置的注意力不合理,没有考虑单词与单词的关系,它适用于较短的文本.另一方面,在基于监督学习的文档表示模型中,HAN虽然考虑了文档的层级关系和使用了层级注意力机制,但由于监督学习局限性,无法处理大量的未标记的文本,学习的特征受到局限.

结合上述的模型,本文把大量的未标记文本数据利用起来,同时考虑到文档的层级结构和文本的注意力机制,通过无监督的学习方式得到文档的表示,称为基于层级注意力机制的无监督文档表示学习方法.该模型可以高效的学习海量数据特征,通过浅层模型得到文本的语义表示.

2 HADR 模型

2.1 CBOW模型和Skip-Gram模型

词嵌入模型一般通过大量的无监督文本训练词向量.在词嵌入模型中,假设词汇表是 V,一般的,中文文本需要将句子进行分词操作才能统计词汇表,每个词将表示成一个长度为d的向量,所有的词向量可以组成一个词矩阵 W ∈Rd×|V|,词wi,{i=1,2,···,|V|}的向量表示可以写成v(wi).给定一篇文档可以表示成S={w1,w2,···,wl},l是文档的长度.大部分词嵌入模型都需要构建句子中的滑动窗口,假设wt为目标单词,wt的上下文由相邻的一些单词构成,表示为ct={wt−k,···,wt+k},不包括wt,ct可以看成一个随着变化而移动的滑动窗口,2k是窗口的大小.Word2Vec的两个模型可以写成极大化如下目标函数的形式:

其中,ct是wt的上下文,概率函数可以表示成一个softmax函数:

在CBOW模型中,ywt表示成隐藏变量和向量的内积,在 S k i p-G r a m模型中,.CBOW中的隐藏变量可以用上下文的窗口向量表示,一般是窗口内所有单词向量的均值或者相连,而Skip-Gram中的隐藏变量就是wt上下文中的一个单词向量.如果是利用均值表示,隐藏变量写成如下形式:

训练过程需要大量的文本语料库,将语料库构造一系列的滑动窗口,利用随机梯度下降和反向传播算法优化,不断的对参数更新,同时对词向量进行更新,得到最终的语言模型.CBOW和Skip-Gram的优势在于用一个比较简单的神经网络模型就可以构造出语言模型,同时得到了具有语义相关性的单词分布式表示.而且论文利用负采样(Negative Sampling),子采样(Subsampling)和层级softmax等技术进一步提升了模型的效率[3,4].

2.2 PV-DM和PV-DBOW

PV-DM和PV-DBOW类比Word2Vec的方式学习文档的特征表示,分别在CBOW和Skip-Gram模型中添加一个段ID(Paragraph ID),这个段ID就是指句子或者文档的表示向量,维度与词向量相同,记为v(S).基于CBOW的句子表示模型称为PV-DM,它在构造隐藏变量时联合窗口内的词向量和文档向量v(S),隐藏向量可以写成如下形式:

PV-DBOW是直接通过当前的段ID来预测文档中所有的目标单词.隐藏向量就是文档向量h(wt)=v(S).相比Word2Vec模型,PV-DM和PV-DBOW的优化方式相似,每篇文档多出一个文档向量的更新,它们的结构如图1所示.

图1 PV-DM 和 PV-DBOW 模型

2.3 HADR模型

HADR模型是本文提出的一个基于注意力机制文档表示模型,该模型研究了文档的层级结构,提出一种基于层级的注意力机制利用在文档的表示学习中.相比于PV-DM和aCSE来说考虑更加词与词之间的相关性[7,14].

假设文档具有层级关系,文档由句子构成,句子由单词构成.D= {S1,S2,···,SN},N表示文档包含的句子的个数,同样的,第n个句子可以表示成是第n个句子的长度.与Word2Vec结构类似,假设目标单词是wn,t,上下文可以表示成.为了同时得到句子向量和文档向量,层级结构语言模型通过句子,文档和窗口单词来预测目标单词,HADR模型的目标函数如下:

通过窗口向量v(cn,t),句子向量v(Sn),文档向量v(D)三个向量构造当前窗口的隐藏变量,然后通过隐藏变量和单词向量构造的softmax函数实现目标单词wn,t的预测.最关键的问题就是如何构建这个隐藏向量才能体现文档中的重要组成部分.下面介绍通过层级的方式来构造层级的隐藏变量,构造一种层级的注意力机制.

相比于CBOW模型,为了体现窗口中单词对窗口向量的贡献不一样,在将所有词向量相加的时候,给每个词向量赋予一个权值.表示成如下形式,a0代表0级注意力机制,窗口向量也可以看成0级隐藏变量:

在上下文中,窗口内的词与目标词语义越相近,它对窗口的贡献越大,赋予更大的权值.例如窗口单词是“the cat is”,目标单词是“playing”,“cat”与“playing”相关,权值越大,“the”、“is”与“playing”不相关,权值小.由于词向量的语义相关性,可以通过向量的内积来表示单词之间的相关性.0级注意力可以通过归一化的向量内积表示:

0级注意力机制的设计是针对一个单词的局部注意力.另外一方面,本文希望能得到一个句子或者一篇文档的全局注意力,也就是针对句子或者文档中的每个单词的重要性.当词向量和句子向量比较接近时,模型给句子赋予更大的权值,这样1级注意力就可以用加入sigmoid函数的词向量和句向量内积表示,如下:

Sigmoid函数作为神经网络的激活函数,形式如下sigmoid(x)=1/(1+exp(−x)).与 PV-DM 模型类似,1 级隐藏变量就可以表示成上一级隐藏向量和句子向量的加权求和:

至此,最终的隐藏向量构造出来了,a2n表示句子Sn在文档D中的重要性.接下来的步骤与PV-DM相同了,通过最终隐藏向量去预测目标词wn,t.HADR模型在更新文档向量、句子向量和词向量的同时更新各级的注意力值,并且所有的变量直到得到最优的模型更新停止,最终得到具有更强语义的句子表示和文档表示,并且量化了词在句子中的重要性(注意力)和句子在文档中的重要性.HADR结构如图2所示.

图2 层级注意力结构的文档表示模型

3 实验与结果分析

为了研究层级注意力机制在文档表示中的作用,本文从情感分析实验与现有的未加入注意力机制的PV-DM和Word2Vec模型进行对比.在这个章节中,本文开始介绍模型使用的数据集,然后介绍实验代码的实现以及参数的设置,最后介绍基于文档表示的情感分析,并且与现有一些模型对比.

3.1 IMDB数据集和预处理

IMDB(Internet Movie Data Base)是英文的电影评分数据集,每条评论包括一条文本,可能是一个句子(sentence),也可能是由多个句子组成的文档(document).在所有IMDB数据中,一部分评论已经打分为1-10,更高的评分表示用户更加喜欢该电影,对应的评论也具有更积极地评价.更多的,把打分划分为消极的(1,2,3,4 分)、积极的(7,8,9,10 分),将中性打分(5,6分)的评论数据删除.IMDB情感分类的任务就是给定一条评论文本,预测它的情感是积极的还是消极的.除了已打分的评论,还有一部分评论没有任何打分,本文的模型通过无监督学习方式把这些未标记评论也加入到单词向量的学习中来.图3中展示了100 000条积极、消极和未标记评论数据的分布.

图3 IMDB积极、消极和未标记数据大小

在实验中,本文对评论数据进行了预处理操作,删除停用词(stop words),例如在英文中的停用词有:the,a,of等.在情感分析中,停用词的作用非常小,几乎不影响整个句子的含义.同时将所有的字符都转化成小写字符,删除语料库中频率低于5个的单词,最终得到的词汇表大小为64 720.通过这样一系列的预处理操作降低了计算复杂度.

3.2 实现与参数设置

本文扩展Python库gensim中Doc2Vec脚本,实现了文本提出的HADR模型.为了让HADR模型和现有的模型具有可比性,文本使用了相似的参数设置:初始的学习率alpha设置为0.05,滑动窗口大小为5(目标单词左右各5个单词),负采样大小为25个单词,子采样取值为 10e–3.训练的时候采用了分层 softmax,删除了词频小于5的单词.为了使得单词向量和句子向量充分的学习,HADR算法和对比算法都迭代20次.在对比模型的时候使用相同的向量维度进行对比.

3.3 情感分析实验

通过模型得到文档的特征表示之后,本文使用IMDB数据情感分析来评价文本表示学习的性能.电影评论信息能表示一个电影的评价,它代表了一个电影的商业价值,对电影评论进行情感分析具有重大的意义.实验通过给定的训练集来预测测试集合中评论的情感分类,分类器使用了来自scikit-learn库的逻辑回归代码,逻辑回归是一个成熟的特征分类模型,在很多分类问题上取得不错的效果.本文使用50 000个已标记的数据进行情感分类实验,利用5折交叉验证进行实验,也就是将数据分成5份,其中4份作为训练数据,剩下的一份作为测试数据,最终取5次实验的均值值作为指标.

本文对比了一些文本表示模型,其中包括:

(1)Word2Vec[4,5]:Word2Vec 模型得到词向量,参数设置和本文模型相似,文档表示向量通过所有的词向量相加得到(Google的C代码);

(2)Doc2Vec[7]:通过 gensim 中的 Doc2Vec 脚本得到的文档表示,参数设置与本文的模型相似(gensim实现);

(3)TF-IDF:通过 TF-IDF 算法统计文本的词频-逆文档频率作为的文本特征(scikit-learn实现).

本文使用相同参数的逻辑回归分类器对不同模型得到的文档表示进行分类实验,实验通过正确率(Accuracy)来评价,正确率越高表明模型的效果越好.文本对比了在不同维度下,不同模型的情感分类效果,如图4所示.我们可以看出随着维度的增长,不同模型都呈现的性能都有提升的趋势,HADR模型在考虑了文档中单词和句子的重要性之后取得了最好的效果,并且在dim=200的时候效果基本接近最佳,之后增大文本表示维度对情感分类的效果影响不大.

同时实验对比了Doc2Vec和HADR模型在不同迭代步数的分类正确率,两个模型使用相同的向量维度dim=200,而且运行到20最大的迭代步数,其他参数与3.2章节相同.Doc2Vec和HADR模型实验对比结果如图5所示.同样的每次分类使用5折交叉验证取5次实验的平均值.从图中可以看出,两个模型在随着迭代步数增长,性能都有所提升,而且迭代步数达到一定步数,性能提升比较小.

图4 HADR算法与对比算法的分类正确率对比

图5 HADR 算法与 Doc2Vec 不同迭代次数的性能

4 结论与展望

基于Le等人提出的PV-DM算法[7],本文在考虑了句子中不同单词具有不同重要性以及文档中句子也具有不同重要因素,提出一种具有层级结构的注意力模型来学习文本表示.改进的算法不仅得到了文档更好的表示,也得到文档的多级表示,同时通过这样无监督的注意力模型得到句子中每个单词重要性以及文档中每个句子的重要性,这样将文本中每个部分的注意力值量化出来.下一步工作将继续考虑文本的其他因素学习文本表示,模拟人类遗忘机制,人类在阅读一段文本的时候不仅会将注意力转移到几个关键的单词上或者句子上还会部分遗忘之前看的内容.之后的工作希望能构建一个具有遗忘机制的文本表示模型.

猜你喜欢

层级文档向量
浅谈Matlab与Word文档的应用接口
科室层级护理质量控制网的实施与探讨
向量的分解
有人一声不吭向你扔了个文档
聚焦“向量与三角”创新题
军工企业不同层级知识管理研究实践
基于军事力量层级划分的军力对比评估
职务职级并行后,科员可以努力到哪个层级
Word文档 高效分合有高招
向量垂直在解析几何中的应用