尽管基于上下文的词嵌入在许多自然语言处理任务中很成功,但将它直接应用于情感分析中可能就不会那么有效,情感分析是面向于挖掘、分析、组织文本的情感或观点的研究领域,基于上下文的词嵌入学习算法的最严重的问题是,他们只对单词的上下文建模但忽视了文本的情感信息。结果,具有相反的极性的词,比如good和bad,因为它们具有相似的上下文,所以在词嵌入空间中被映射为相邻向量,这在一些任务如词性标记中是有效的(因为它们具有相似的用法和语法角色),但是在应用于情感分析中时将会有很大问题,因为它们具有相反的情感极性标签。
为了得到适用于情感分析领域的词嵌入,唐都钰的一篇论文中提出了“情感词嵌入”的概念和训练算法,他是通过保留词语上下文的效果并利用文本情感来学习一个更强力的词嵌入。通过同时获取上下文和情感极性信息,在词嵌入空间中最近的词语不仅是语义相似而且偏向于拥有相同的情感极性,所以它能够将good和bad区分到空间的相反的两端。为了有效地学习情感词嵌入,论文中建立了损失函数为dedicated loss functions的神经网络模型来获取文本情感以及单词的上下文。
本文组织如下:在第二章中介绍研究现状,第三章是本论文的重点,介绍如何训练情感词嵌入,第四章介绍情感词嵌入的训练数据和模型参数设置,以及自己实现的情感词嵌入在词法级任务上的表现。最后总结全文。
2 研究现状
本章介绍内容包括:词嵌入的背景;文本情感分析和深度学习的相关概念和知识;前馈神经网络的网络结构和训练算法;词向量和语言模型的知识。在这一基础上,下一章将会提出面向情感分析任务的词嵌入模型。
2。1 词嵌入背景
在本节中,我们描述一下学习词嵌入的背景。词嵌入的目标是表示词语的意思。一个直接的方式就是把词语表示为onehot向量,它的长度是词汇表大小,所有维度中只有一个1,其余的均为0。然而,这样的onehot表示仅仅编码了词在词汇表中的编号信息,忽视了其在词典中的丰富的关系结构。一个通用的发现词语间相似处的方法就是学习词语的聚类[1,2],每一个词语都和一个离散类关联,同一个类下的词语在某些方面有相似之处。这引出了基于小词汇量的onehot表示。可以构造一个表示相似度的离散变量,这种离散变量可以通过基于聚类结果使用词语集间的硬或软间隔来获取,然而这种做法不太可取,许多研究者采用了其他办法:为每个单词学习一个连续的实向量,也就是我们所熟知的词嵌入。现有的词嵌入学习算法大多基于分布式假设,分布式假设是指:有相似上下文的词语,它们的含义也是相似的。许多矩阵分解方法可以被看作是在构建词嵌入。例如,潜在语义索引(LSI)[3]可以被认为是在学习一个有重构目标的线性词嵌入,它使用一个共现矩阵,例如,每一行代表一个词或术语,每一列表示一个独立的语料库中的文档。多维空间模拟语言利用矩阵的“termterm”共现统计,行和列对应词和条目代表给定单词出现在另一个词的上下文的次数。Hellinger主成分分析PCA[4]也被研究用于学习基于“termterm”共现统计的词向量。
随着深度学习和神经网络的复兴,大量的研究着力于使用神经网络来学习词嵌入。Bengio在他的论文[5]中阐述了他在这个领域的一些先驱性的工作。他们引入了一个神经概率语言模型,可以同时学习词嵌入和词语序列的概率。给出一个词wi和它前面的上下文单词,算法首先利用一个共享的查询表将每个上下文单词映射为词向量。然后,上下文词向量被用于前向神经网络的输入,网络的输出层使用softmax层用来预测下一个词wi的条件概率。神经网络的参数和查询表一起用反向传播算法来学习。随着Bengio的这篇论文的发表,大量其他方法被提出要么是加速了训练过程要么是捕捉到了更多的语义信息。Bengio和Senecal 通过把上下文单词和当前单词的词向量连接在一起,并且使用那些标记为负样例而观测为正样例的样本来有效地优化模型,引入了一个新的神经结构。Morin和Bengio 开发出层次softmax分解层次二叉树的条件概率。Mnih 和 Hinton开发出 log-bilinear语言模型。Collobert 和 Weston通过使用一个排名的hinge损失函数来训练词嵌入,它的做法是使用任意单词替换掉窗口中间的单词。Mikolov 在他的论文[6,7]中提出了连续的bag-of-words(CBOW)模型和连续的skip-gram模型,并发布了著名的word2vec工具包。CBOW模型利用上下文词向量来预测当前词,skip-gram模型利用当前词的词向量预测周围的词。Mnih 和Kavukcuoglu 使用噪声对比评估加速了词嵌入的训练速度。也有许多算法被提出以捕获到更丰富的语义信息,这些语义信息包括:全局文档信息,中文部件,上下文的依赖关系,多感知信息和语义词典信息。