基于机器学习与先进transformer模型的情感预测
Emotion Prediction Based on Machine Learning and Advanced Transformer Model
DOI: 10.12677/AAM.2023.123111, PDF, HTML, XML, 下载: 206  浏览: 451 
作者: 孙 睿:天津商业大学理学院,天津;周艳聪*:天津商业大学信息工程学院,天津
关键词: 朴素贝叶斯Logistic回归BERTDistilBERTRoBERTaNaive Bayes Logistic Regression BERT DistilBERT RoBERTa
摘要: 本文立足于针对文本的情感分析,以Yelp数据集为例进行评估。Yelp评论的评级预测可以通过多种方式进行,如情绪分析和五星评级分类。在本文中,我们将基于评论文本对餐馆的评级进行预测。在分析了原始数据分布之后,首先创建了一个平衡的训练子数据集,后分割数据集、提取特征,同时应用朴素贝叶斯和Logistic回归两种机器学习方法和基于transformer的BERT、DistilBERT和RoBERTa三种深度学习模型进行评估比较。从训练时间和训练效果两个方面给出结果,为读者提供实际的选择依据。
Abstract: Based on the emotional analysis of the text, this paper takes Yelp data set as an example to evaluate it. The rating prediction of Yelp reviews can be made in many ways, such as sentiment analysis and five-star rating classification. In this paper, we will predict the rating of restaurants based on the review text. After analyzing the distribution of the original data, a balanced training sub-data set is first created, then the data set is segmented and features are extracted. At the same time, two ma-chine learning methods, naive Bayes and Logistic regression, and three deep learning models based on transformer, BERT, DistilBERT and RoBERTa, are applied to evaluate and compare. The results are given from two aspects: training time and training effect, which provides practical basis for readers to choose.
文章引用:孙睿, 周艳聪. 基于机器学习与先进transformer模型的情感预测[J]. 应用数学进展, 2023, 12(3): 1090-1099. https://doi.org/10.12677/AAM.2023.123111

1. 引言

情感分析是分析一段文本并确定表达者态度的过程,人们可以根据文本中所呈现的内容来预测情感倾向,从而做出判断。随着对文本分析的技术方法不断发展,对情感预测的准确率也在不断提高,放在商业环境中,情感预测被广泛用于评估客户满意度、进行市场调查和监测品牌声誉等领域 [1]。如今数字媒体盛行,对企业在线评论的重要性越发不容忽视,客户可以发布他们对企业的评论,其他潜在客户或店主也可以查看这些评论。来自顾客的正面反馈可能会提高业绩,而负面的反馈可能会产生相反的后果。本文旨在一个公开的大型数据集上对现有情感预测方法进行分析比较,验证效果并为企业决策提供依据,为研究者从训练时间和训练效果两个维度上提供参考。

2. 研究现状

作为自然语言处理领域的子研究领域之一,针对文本展开的情感分析进行了大量研究。从方法的演进上大致经过以下几个阶段:构建情感词典、基于机器学习的方法和基于深度学习的方法 [2]。随着研究的深入,几种深度学习方法进入研究视野,主要分为四类:基于递归神经网络、基于卷积神经网络、基于记忆网络、基于自我注意机制 [3]。近年来,基于transformer模型的方法更是进入了研究视野。Yang等人 [4] 提出了对评论文本的深度表示,并增加优化了输入文本的部分,以提高整体性能 [5]。提出了情感分类任务的端到端新架构,其灵感来自于最近的多任务联合学习的研究 [6]。对分类任务采用了多种特征生成方法和朴素贝叶斯、逻辑回归、支持向量机(SVM)和高斯判别分析等几种机器学习模型进行评估。在测试集上,五星分类的最佳准确率为64% [7]。一些深度学习模型,如神经网络、递归神经网络(RNN)、长短期记忆(LSTM)和双向编码器表示(BERT)也被应用于 [8]。随着在该领域的不断研究,目前主要有以下几个挑战:1) 长篇文字和短篇文字中的歧义、组合性、长期依赖性和否定识别仍然是自然语言处理和情感分析中的挑战。2) 跨域任务的性能仍然滞后于在同一领域上训练和测试的效果,需进一步的工作来生成跨不同领域有更好泛化能力的模型。3) 预训练过的语言模型虽已突破了许多NLP任务的边界,但对于机构、中小企业和独立研究者无法获得大量资源来说是一个障碍,侧面阻止了前沿深度学习研究的普遍化。

3. 数据与预处理

3.1. 数据集概况

Yelp是成立于2004年的最大的公司之一,旨在发布关于企业的评论,它提供了一个开放的数据集,即Yelp开放数据集 [9],它包含了大量关于企业的评价数据,是一个适合个人、教育和学术的标准数据集。在Yelp开放数据集的多个任务中,基于他们的评论来预测餐馆的评级是一个基本且重要的任务,这个任务可以被看作是一个多分类问题,即输入文本数据(评论),输出预测的类(1~5颗星)。该数据集包括来自10个大都市地区的209,393家企业的8,021,122条评论,这些数据以JSON文件为结构进行存储,包括商家、评论、用户和照片等字段。本文将只用到商家数据和评论数据。

3.2. 数据准备

3.2.1 创建子数据集

为了获得更准确的评级预测,本文将只使用餐厅类别中的企业数据。从business.json中获取了52,268个餐厅的商家ID,从review.json中获取了4,724,471条评论。部分数据样本如表1所示。同时,每个评级类别的评论数量并不相等,这些数据的分布如图1表2所示。可以发现,数据偏向于两个极性,有67.94%的评论是4星和5星。这种不平衡的分布在 [10] 中得到了验证。

Table 1. Example of Yelp Dataset

表1. Yelp数据集示例

Figure 1. Rating Distribution of Yelp Dataset

图1. Yelp数据集评级分布

Table 2. Distribution of Yelp Dataset

表2. Yelp数据集分布

现为了处理不平衡的原始数据,需重建一个平衡的训练数据集,并以70:15:15的比例划分训练集、验证集和测试集。因此,从一个训练数据集的原始数据中重新采样了100万条评论,其中每个类别有20万条评论(1~5颗星)。此外,验证集和测试集均有20万条评论,但它们大致遵循原始数据的不平衡分布。

3.2.2. 向量化

为了使数据能正确输入模型,首先将文本文档转换为数值数据(矩阵),以此来构建特征。在 [1] 中给出了一些详细的文本预处理管道,本文使用scikit-learn [11],具体操作如下:

1) 用Count Vectorizer和整数型Tf-Idf Vectorizer进行单词表示;

2) 使用unigram和bigram;

3) 去停止词;

4) 最低文档频率为5;

5) 所有单词转换为小写字母;

Count Vectorizer可以将文本转换为token计数矩阵,而Tf-Idf Vectorizer将使用Tf-Idf来代替token计数。Tf-idf是术语频率 Tf ( t , d ) 和逆文档频率 i d f ( t ) 的乘积:

Tf-idf ( t , d ) = Tf ( t , d ) × i d f ( t ) (1)

其中 Tf ( t , d ) 为文档d中术语t出现的频率,而 i d f ( t ) 定义为:

i d f ( t ) = l o g n 1 + df ( t ) (2)

其中n为本文数据集中的文档总数, df ( t ) 为文档集中包含术语t的文档数量。对于二进制版本的向量器,所有非零计数都设置为1。稀疏矩阵也从这些向量器中输出。

4. 实验与结果

4.1. 评估指标

本文将使用以下四种评估指标:

1) 准确率。表示预测正向的样本占总样本个数的比例:

A c c u r a c y = T P + T N T P + F P + F N + T N (3)

2) 精确率。表示预测为正向的样本在实际也为正向的样本占预测为正向样本的比例:

Precision = T P T P + F P (4)

3) 加权F1值。

1 q Q | y ^ q | q Q | y ^ q | F 1 ( y q , y ^ q ) (5)

其中Q是标签的集合, y q 是带有q标签的子集, y ^ q 是预测为q的集合,而

F 1 = 2 × Precision × Recall Precision + Recall (6)

4) 混淆矩阵。以矩阵的形式呈现评估效果,记作C,行代表数据的真实归类标签,列代表数据被预测的标签, C i j 为实际标签为i但被预测为j的数量占所有实际标签为i的比例。

4.2. 基于经典机器学习方法

文献 [11] 说明更简单的模型,如逻辑回归和支持向量机,比更复杂的模型LSTM和BERT,能更有效地预测情绪。为验证这一点,本文将经典机器学习方法作为比较基准,选取朴素贝叶斯和Logistic回归 [12] 这两种方法进行实验。其中朴素贝叶斯模型实现最为方便,运行时间最短,其余模型训练时间记录在表3。在测试集上的准确性、精确性和加权f1值如表4所示,混淆矩阵分别如图2图3所示。可以看到Logistic回归以64.23%的准确率优于朴素贝叶斯。

Table 3. Training time record of each model

表3. 各模型训练时间记录表

Table 4. Comparison of model effects

表4. 模型效果比较

Figure 2. Confusion Matrix of Naive Bayes on Test Set

图2. 测试集上朴素贝叶斯的混淆矩阵

Figure 3. Confusion Matrix of Logistic regression on Test Set

图3. 测试集上Logistic回归的混淆矩阵

4.3. 基于先进transformer模型

近年来,基于transformer的模型 [13] 成为重要的情感分析技术,它们在巨大的任务上优于许多其他最先进的方法。在本文实验的第二大部分,我们在Yelp评级预测任务中使用了三个基于transformer的模型,包括:BERT [14] 、DistilBERT [15] 和RoBERTa [16]。需要注意,在该部分由于训练资源的限制,我们将缩小数据集为10万条评论,其中每个类别有2万条评论(1~5颗星),验证集和测试集也均为2万条评论。

在进行这部分实验之前,需要对评论的token数进行统计分析,如图4所示,有70.47%的评论不超过128个标记,92.17%的评论不超过256个标记。

Figure 4. Token number distribution of comment text

图4. 评论文本的token数分布

4.3.1. Deep Bidirectional Transformers (BERT)

BERT是一种语言表示模型,对未标记文本的左右上下文进行预先训练,用于语言模型和下一个句子预测任务。这样一个模型,当在自然语言文本的大型语料库上进行预训练时,仅用一个额外的输出层进行微调后,可以用于广泛的训练任务。目前有两种BERT架构可用:一个较小的110M参数的基础BERT模型(12个transformer块,768个隐藏单元,12个自我注意头),另一个较大的340M参数的BERT模型(24个transformer块,1024个隐藏单元,16个自我注意头)。本文将对这两种BERT模型均进行实验,训练结果如表4所示,相应的混淆矩阵如图5图6所示。在设置方面,最大序列长度为128,batch size为16。

可以发现,BERT (base, large)要比BERT (base, cased)准确率高出1.02%,加权F1值提高了0.0015,这也是符合预期的,前者比后者具有更多的参数,但运行时间多出了一倍。

Figure 5. Confusion Matrix of Cased Base BERT on Test Set

图5. 测试集上Cased Base BERT的混淆矩阵

Figure 6. Confusion Matrix of Cased Large BERT on Test Set

图6. 测试集上Cased Large BERT的混淆矩阵

4.3.2. DistilBERT

DistilBERT模型是BERT模型的提炼,其中保留了97%的BERT语言理解能力,提高了60%的性能 [17]。在测试集上的结果如表4所示,混淆矩阵如图7所示。可以发现,与多参数的BERT相比,DistilBERT模型的精度降低了约为1.36%,但在运行速度上比基础BERT模型快了一倍。当计算资源有限时,DistilBERT将是一个很有吸引力的选择。

Figure 7. Confusion Matrix of DistilBERT on Test Set

图7. 测试集上DistilBERT的混淆矩阵

4.3.3. RoBERTa

RoBERTa [16] 改进了预训练程序,并在几个NLP任务上取得了先进的结果。本文实验中采用预训练的roberta-base架构进行实验,相关实验结果见表4,混淆矩阵如图8所示。可以发现,该模型是最优的,与多参数的BERT模型相比,两者类似的运行时间的情况下,准确率提高了0.62%,且有更高的得分。这表明RoBERTa模型将是不考虑计算资源时更高预测指标的优选。

Figure 8. Confusion Matrix of RoBERTa on Test Set

图8. 测试集上RoBERTa的混淆矩阵

5. 结论

在本文中,从Yelp大型数据集的评论文本中预测了评分。首先对Yelp开放数据集进行详尽的统计分析,阐述其分布概况,并创新性地建立了一个平衡的训练数据集,以适应之后的训练。其次基于Tf-idf向量器进行数值表示,采用了朴素贝叶斯和逻辑回归两种经典机器学习模型进行情感预测,与BERT、DistilBERT和RoBERTa三种基于transformer的模型比较,经过实验验证,发现以下两点结论:1) 在训练时间上机器学习方法实现轻松,运行时间短,可以作为基准,而较为先进的三种模型中,DistilBERT模型训练时间最有优势,在计算资源有限的情况下是一个较佳的选择。2) 在分类效果上,多参数的BERT模型比基础BERT模型高出1.02个百分点,DistilBERT模型的指标略低,而RoBERTa模型达到了69.75%的准确率,与该数据集上的最高水平相近。本文对transformer预训练模型进行了验证,未来将以此为基础,进行多模态模型的探索。此外,由于计算资源的限制,本文模型效果尚有提升空间。

NOTES

*通讯作者。

参考文献

[1] Liu, S.Q. (2020) Sentiment Analysis of Yelp Reviews: A Comparison of Techniques and Models. ArXiv: 2004.13851.
[2] 刘兵. 情感分析: 挖掘观点、情感和情绪[M]. 北京: 机械工业出版社, 2019: 149-156.
[3] Zhou, Z.Y. and Liu, F.A. (2021) Filter Gate Network Based on Multi-Head Attention for Aspect-Level Sentiment Classification. Neurocomputing, 441, 214-225,
https://doi.org/10.1016/j.neucom.2021.02.041
[4] Yang, Z.L., Dai, Z.H., Yang, Y.M., Carbonell, J., Salakhutdinov, R.R. and Le, Q.V. (2019) XLNet: Generalized Autoregressive Pretraining for Lan-guage Understanding. ArXiv:1906.08237
[5] Guda, B.P.R., Garimella, A. and Chhaya, N. (2021) EmpathBERT: A Bert-Based Framework for Demographic-Aware Empathy Prediction. ArXiv Preprint ArXiv: 2102.00272.
[6] Yu, B.Y., Zhou, J.X., Zhang, Y. and Cao, Y.N. (2017) Identifying Restaurant Features via Sentiment Analysis on Yelp Re-views. ArXiv: 1709.08698.
[7] Asghar, N. (2016) Yelp Dataset Challenge: Review Rating Prediction. ArXiv: 1605.05362.
[8] Perez, L. (2017) Predicting Yelp Star Reviews Based on Network Structure with Deep Learning. ArXiv: 1712.04350.
[9] Yelp Open Dataset.
https://www.yelp.com/dataset
[10] Cui, Y. (2015) An Evaluation of Yelp Dataset. ArXiv: 1512.06915.
[11] Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M. and Duchesnay, E. (2011) Scikit-Learn: Machine Learning in Python. Journal of Machine Learning Research, 12, 2825-2830.
[12] Hastie, T., Tibshirani, R. and Friedman, J. (2001) The Elements of Statistical Learning. In: Springer Series in Statistics, Springer, New York.
https://doi.org/10.1007/978-0-387-21606-5
[13] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A.N., Kaiser, L. and Polosukhin, I. (2017) Attention Is All You Need. ArXiv: 1706.03762.
[14] Devlin, J., Chang, M.W., Lee, K. and Toutanova, K. (2018) BERT: Pre-Training of Deep Bi-directional Transformers for Language Understanding. ArXiv: 1810.04805.
[15] Sanh, V., Debut, L., Chaumond, J. and Wolf, T. (2019) Distilbert, a Distilled Version of BERT: Smaller, Faster, Cheaper and Lighter. ArXiv: 1910.01108.
[16] Liu, Y.H., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D.Q., Levy, O., Lewis, M., Zettlemoyer, L. and Stoyanov, V. (2019) Roberta: A Robustly Optimized BERT Pretraining Approach. ArXiv: 1907.11692.
[17] Guda, B.P.R., Srivastava, M. and Karkhanis, D. (2022) Sentiment Analysis: Predicting Yelp Scores. ArXiv: 2201.07999.