首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度学习在新闻情感分析中的应用

一、背景介绍

随着互联网的快速发展,网络新闻服务已成为主要的网络信息载体。越来越多的民众通过网络新闻了解时事动态,并通过评论的形式表达观点、抒发情感。了解新闻内容中的情感,可以掌握舆论的态度和情绪变化,有助于企业实现舆情分析和监控,并及时应对处理突发的舆情事件。因此,自动识别网络新闻中所表达的正负面情感,具有重要的理论意义和实用价值。

本文在利用传统NLP技术处理海量新闻语料的基础上,结合深度学习技术,对网络新闻的情绪自动判别和预测进行了深入研究。通过使用基于tensorflow的keras深度学习框架,建立了CuDNNGRU+Conv1D深度神经网络,能够较为准确地识别网络新闻中正负面情感,为建立舆情平台打下了底层基础。

二、深度学习与NLP

深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习是一种特定类型的机器学习,具有强大的能力和灵活性,它将大千世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念、从一般抽象概括到高级抽象表示)。

传统机器学习算法在NLP领域已经有了相当多的研究成果,比如应用很广泛的基于规则特征的SVM分类器,以及加上朴素贝叶斯方法的SVM分类器,当然还有最大熵分类器、基于条件随机场来构建依赖树的分类方法。但在传统的文本分类词袋模型中,在将文本转换成文本向量的过程中,往往会造成文本向量维度过大的问题。从2013年的word2vec开始,自然语言处理领域引爆了深度学习这个热点,目前取得重要成果的NLP任务大多在文本理解范畴,如文本分类,机器翻译,文档摘要,阅读理解等。本文使用了在文本分类中常用的深度神经网络——双向CuDNN加速门控循环单元(Bi-CUDA Deep Neural Network Gated Recurrent Unit,Bi-CuDNNGRU) 和卷积神经网络(Convolutional Neural Network, CNN)。

三、新闻情感深度模型实现

下文具体阐述了某公司搭建舆情平台中利用基于tensorflow的keras框架的新闻情感深度模型实现。通过前期不同结构深度神经网络的选择和后期多种超参数搭配调整,最终得到能够准确判断新闻情感的最优模型。

1、训练语料样本

样本为从舆情平台随机搜索出的30W条新闻数据,打上的标签为0~1之间的数,越靠近0其负面情感越强烈,靠近1则正面情感更强,在0.5附近情感为中性。

2、深度模型结构的选择

首先我们分别选取了单独的LSTMs和CNNs模型结构,经过研究发现:

循环神经网络:可以能够很好的捕获上下文信息,但它是有偏差的模型,后输入的词要比先输入的词占有更重要的地位,所以在获取整篇文档语义时这种方法就不那么有效了。在实际应用中发现文档靠前部分的权重偏小,而靠后位置的权重较大,不能很好的反应整篇文档的整体真实情感。

卷积神经网络:是个无偏的模型,对比RNN可以很好的获取文档的语义信息,但是为了简化卷积核都采用固定的窗口,难点在于确定窗口大小,太小的窗口可能丢失重要信息,太大的窗口又会扩大参数空间。在实际应用中发现其不能联系上下文语境识别情感内容,缺少长时记忆能力。

所以最终我们选择了GRU+Conv1D的模型结构,使模型具有长短时记忆的同时,能够无偏的判断整篇文档的情感。其中GRU是LSTM的一个变种,它将遗忘门和输入门合成了一个单一的更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。它比标准的LSTM模型要简单,也是非常流行的变体,其结构如下图所示。

3、各类超参数的选择

Bi-GRU由于其运行机制的问题,并行计算能力不强。我们改用了CuDNN加速的Bi-GRU后,能够最大限度的提升其并行计算能力,在输入单元为600,训练样本为27W时,使用GTX1070进行GPU加速运算,一个epoch的运行时间从30min提升到了3min,使密集调参能够实现。

最终,我们设定词向量维度为100 ;GRU输出维度是128,采取双向结构;Conv1d卷积核数目为64,长度为3,使用valid padding;优化器选用RMSprop,损失函数为categorical_crossentropy多类的对数损失。

4、epoch的选择

确定了模型的结构和参数后,我们将30W标签数据分为27W的训练数据和3W的测试数据,然后对模型进行了训练,训练结果如下图所示:

可以观察到训练集损失持续下降,而测试集损失在第二个epoch达到最低,之后由于出现过拟合开始增长,所以我们选择epoch数目为2。

5、情感模型完整运行流程

第一步,词嵌入:一种词的类型表示,具有相似意义的词具有相似的表示,是将词汇映射到实数向量的方法总称,在词嵌入中,词由密集向量表示,其中矢量表示单词投射到连续向量空间中。一个单词在向量空间中的位置是从文本中学习的,并且基于使用该文本时的单词。本次采用的是Keras嵌入层方法,建立的向量维度为100;

第二步,GRU层:词嵌入层输出的向量数据经过SpatialDropout1D后进入GRU层。GRU即Gated Recurrent Unit,为了克服RNN无法很好处理远距离依赖而提出了LSTM,而GRU则是LSTM的一个变体,GRU保持了LSTM的效果同时又使结构更加简单。本次采用的GRU输出维度是128,采取双向结构。

第三步,Conv1d层: 在一维输入信号上进行邻域滤波。CNN通过卷积操作能够很好的提取出数据中的潜在特征,而1d的卷积层能过够很好的应用到文本处理方面。本次采用的Conv1d卷积核数目为64,长度为3,使用valid padding。

第四步,并行GlobalAveragePooling1D与GlobalMaxPooling1D层:全局平均和最大池化,能够提取出每个Feature Map平均和最强的特征,最大限度减少参数量。本次采用的两个全局池化为并行层,最终都进入全连接层中。

第五步,全连接层:在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。本次采用的全连接层激活函数为softmax,输出标签数目为3。

第六步,训练方法:优化器选用RMSprop,损失函数为categorical_crossentropy多类的对数损失。

四、后续优化

根据舆情平台实时数据量,如果算力足够的情况下,可以采取多分支模型融合的方式,训练出一个更大的模型。这种融合技术可以使最终的模型效果好于其中每个单个的模型,但要求单个模型要有足够的差异才能使最终模型得到更多的提升,融合模型如下图所示。

此融合模型在原有模型的基础上增加了一个使用字向量做词嵌入并使用LSTM做为第一层的模型。增加的单模型效果不如原单模型,但是在模型融合之后最终模型效果有所提升。

五、总结与展望

进入深度学习时代后,不同的向量建模不仅方便了后续的自然语言处理,而且最关键的是这个过程可以依据不同的应用场景来encode不同的语言特征。这一过程比以往传统机器学习要灵活的多,我们不需要依赖语言学知识和经验去显式人工建模。但深度神经网络缺乏理论基础,可解释性差的缺点在NLP领域依旧存在。而且目前深度学习也未能有效的利用自然语言中的语言学知识,但是深度学习在NLP领域完善了表示学习,随着计算机算力的提升带来的模型准确性的大幅提高,较之以往的技术来说是一个巨大的飞跃。相信深度学习与NLP的结合将会越来越紧密,其在NLP各方面的应用也将继续快速发展,技术应用前景十分广阔。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G1RQT100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券