前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于RoBERTa模型进行互联网新闻文本情感分析实现top1

基于RoBERTa模型进行互联网新闻文本情感分析实现top1

作者头像
大数据技术与机器学习
发布2021-12-08 08:36:11
1.4K0
发布2021-12-08 08:36:11
举报

随着网络新闻服务的飞速发展,网络上产生了大量的新闻文本信息,探索新闻文本背后的情绪表达,可以为政府和企业提供潜在价值。本题给定互联网新闻文本标题及新闻文本内容,要求判断新闻的情感极性(包括正面极性,中性极性和负面极性),是自然语言处理领域的典型分类任务。针对该任务,本文采用了RoBERTa模型,并改造了多个上层模型并通过投票融合的方式取得了较好的结果。在CCF BDCI的新闻情感分析的评测任务上,该方法在最终的B榜评测数据上,F1分值达到了0.81697最高分。

赛题描述

本赛题是对互联网新闻长文本进行情感极性分类,其中正面情绪对应0,中性情绪对应1,负面情绪对应2。而评分指标采用Macro-F1值,具体如下:

其中,TP是真样例,FP是假阳例,FN是假阴例,通过以上公式得到该类F1值,将每一类F1值求平均,即得到Macro-F1值。

数据分析

本赛题的原始特征是新闻的标题和新闻的内容。因此我们对新闻标题和新闻内容进行简单统计分析。图1中前三个个小图分别是关于新闻标题,新闻内容以及新闻总长度的字数分布情况。可以观察到,大部分的新闻长度都集中在0到5000之间。

图1:对数据集的简单统计分析

此外,我们还对训练数据集的新闻情感极性类别进行统计,如图1中第四小图所示,发现三个类别的分布并不是特别均匀,特别是0类即正面情绪样本仅占10.4%,需要在后续的方案中考虑这一因素。

本文项目代码 获取

关注微信公众号 datanlp ,然后回复关键词 情感分析 即可获取

模型结构

基于RoBERTa模型[1],进行上层结构改造,具体包括如下方法:

1.模型分为两部分,可以看做下层是n个RoBERTa模型(参数共享),把新闻文本分成n段后分别输入,上层使用双向GRU来连接n个RoBERTa的pooler_output输出,最后进行分类。这样可以解决用RoBERTa处理长文本的问题。见图2模型结构1。

图2:基于RoBERTa模型的五种结构

2.提取bert模型内部隐藏层第一状态位输出。

通过提取最后2层或最后3层的第一个状态输出向量,与原先的bert模型pooler_output拼接,最后进行分类。见图2模型结构2,3,4。

3.利用bert模型最后一个隐含层所有状态位信息。

这些状态信息可以连接更深层的网络模型,如双向LSTM[3]、双向GRU[4]。通过更深层的网络模型提取文本的更高维度特征,然后通过提取隐含层状态、平均池化、最大池化等操作聚合双向GRU输出和隐含层状态特征,最后拼接bert模型的pooler_output进行分类。见图2模型结构5。

模型参数与融合细节

比赛中,我们尝试了多种bert预训练模型[2],其中准确率最高的是RoBERTa-wwm-ext-large[5],但其显存占用也较多。以bert_gru为例,为节省显存,finetune时单GPU的batch 大小参数即per_gpu_train_batch_size设为4,gradient_accumulation_steps设为4,这样每次输入1个样本,梯度累计4次后,再进行反向传播更新参数,以牺牲一定训练速度来节省显存;参数learning_rate设为1e-5,采用三角学习率,首先warm_up,学习率逐渐变大,再linear lr decay,学习率逐渐变小,有效改善训练效果。

对于每个模型,我们采用了分层抽样5折交叉验证,分层抽样保证了每折数据集中的各类别样本比例保持不变,每折选择验证集上F1值最高的模型对测试集进行预测,最后5折融合采用概率平均。不同模型融合采用简单投票,得票数最多的类别为最终预测结果。

实验结果与分析

以上模型均为分层5折交叉验证后的结果,数据列中“头512”指的是截取新闻头部512个字符训练和预测;“头256+尾256”是截取头部256个字符和尾部256个字符分别输入BERT, 然后在上层使用双向GRU连接;伪标签是将预测结果加入训练集,在训练过程中引入测试集分布,从而提高模型性能,我们选择每折加入10%的测试集;数据清洗中,一个是将url、html等无关信息去除,另一个是规范标点符号,新闻中很多标点符号本应该为中文标点符号,却写成了英文标点符号,我们进行了改正。

从结果可以看出,“头256+尾256”比“头512”的效果更好,可能头尾包含的情感信息比头部要更多。我们采用的数据清洗方法反而会使效果变差,伪标签的加入能有效提高单模分数。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习入门与实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档