时间:2024-05-04
黄东晋,耿晓云,李 娜,丁友东
(上海大学,上海 200072)
现如今,观影已经逐渐成为人们日常生活中不可或缺的一种娱乐消遣方式,作为观众,希望每一次观影体验都是物超所值的,而电影评分很大程度上决定人们是否选择这部电影;对于投资商来说,准确地预测出评分可以有效减少利益损失。时至今日,国内外在电影方面的预测系统多数集中在票房的预测,电影评分预测系统很少且大多忽略电影文本信息对于评分的影响,往往只采用了一些常用的特征信息或者电影评论信息,并且特征工程处理方式不够完善,机器学习算法较单一,最终导致误差普遍较高。
2012年,Andrei等人[1]基于社交媒体数据,确定电影的定性和定量活动指标,通过提取两组表面和文本特征进行电影评分的预测,但评价电影的用户的人口统计数据可能与分享评论的人不同且数据处理过于复杂。2014年,Rajitha等人[2]提出一种基于视频中观众观影时的表情和肢体动作的电影评分预测系统,但由于该实验对于观众的要求较高,自我报告实现比较困难。2017年,Mustafa等人[3]提出一种基于混合属性使用和集成学习的电影用户评分预测系统,能够较好地预测评分。同年刘明昌基于豆瓣电影数据构建了混合评分预测系统,有效提高了预测准确性。2018年,黄幸颖等人[4]提出了一种克服了协同过滤算法中稀疏性影响的基于自编码网络的电影评分预测系统,但同时它带来的非凸函数的优化问题使得实验结果并不稳定。
针对这些问题,该文结合自然语言处理技术,提出一种基于混合特征的电影评分预测系统,巧妙综合了文本特征[5]和常用的电影特征的优势,实验结果表明,混合特征能够显著降低预测误差,使得该系统能够较为准确地预测电影评分。
该文提出的基于混合特征的电影评分预测系统主要由文本矢量化、文本评分预测模型以及基于混合特征的评分预测模型这三部分组成。
具体流程如图1所示。
图1 系统框架
(1)UI输入导演、三位主演、上映时间、电影类型等电影特征信息和电影简介文本信息传入后端,文本信息经过预处理后由维基百科语料库预训练好的Bert模型进行矢量化,从而得到文本矢量特征;
(2)利用SVM算法对该矢量特征进行训练建模,预测文本评分;
(3)将文本评分作为一维新特征加入到预处理好的电影特征信息中,通过Random Forest算法预测最终的电影评分并返回到UI界面。
在自然语言处理中首先要考虑的就是词在计算机中的表示方法,对于文本信息,词嵌入要做的就是把单词嵌入到低维空间中用向量来表示,因此近义词的词向量距离理应较近。由于任意一个词都可以用它的相邻词来表示,所以一般情况下,可以通过统计学方法或者基于不同结构的神经网络的语言模型来生成词向量。
One-hot编码使用参数0和1表示,词向量的维度等于词的总数量且仅一位有效,通常用来处理离散型数值特征,但是当特征较多时,矩阵会过于稀疏。而词袋模型则认为大量独立无序词汇的集合形成文本,其在文本里出现的次数作为这个词的向量,但仍然存在矩阵稀疏性,另外该方法丢失了上下文信息。2013年谷歌推出一种引起业界轰动的分为Skip-gram和CBOW两种模型的词向量工具-Word2vec[6],其中前者是由中心词预测上下文,后者是由上下文预测中心词,通过层次softmax和负采样技术大幅度改进了词向量模型的性能。由于该模型引入了上下文,使得词向量带有语义信息,所以近义词的词向量具有相似性,但是该模型只考虑到了局部信息,而忽视了全局统计信息。为了解决这个问题,斯坦福NLP实验组于2014年推出全局词向量表达工具Glove[7],该工具的本质是将全局矩阵分解和局部文本框捕捉两大技术进行结合,提高了很多NLP基础任务的准确率。然而它们都忽略了一个问题,即一词多义性,2018年华盛顿大学提出的使用双向长短期记忆模型(bi-directional long short-term memory,Bi-LSTM)[8]的基于语言模型的词向量(embedding from language models,ELMO)工具[9]就是针对这一问题进行了优化,但LSTM序列模型有两大缺陷,一是无法双向考虑上下文信息,二是并行计算能力差。所以2018年Google推出了采用Transformer编码器的Bert[10]词向量模型,通过与自注意力机制相结合,真正实现了双向编码。
文中的电影文本信息首先要经过预处理,包括过滤特殊字符、去停用词等工作,然后使用预训练好的Bert词向量模型对文本进行向量化。
2.1.1 Bert词向量模型
真正实现双向编码的Bert模型能够有效联系上下文,显著提高泛化能力。Bert模型将Transformer编码器和注意力机制结合起来,比RNN的效率更高,同时对于长文本的效果更好[10]。
其中Transformer模型是由1个编码器组和1个解码器组构成,而它们又分别由6个编码器和6个解码器组成。如图2所示,每个编码器包括一个前馈神经网络和一个帮助编码器在编码单词的过程中理解输入序列中的其他单词的自注意力机制,而每个解码器在编码器的基础上增加了一层用来帮助当前节点获取当前需要关注的重点内容的编码-解码注意力层。
图2 编码-解码器
Transformer模型的具体流程是:首先将通过Embedding处理后的输入数据送到编码器中,然后相继由自注意力机制和Feed Forward进行处理,输出到下一个编码器,最后将解码器的输出通过一个全连接层和一个softmax进行映射,选取最大概率的词。
2.1.2 文本矢量化
Bert的使用分为预训练和微调,其中预训练包括MLM和NSP[10],前者是指随机选取15%的词,其中80%的概率采用mask标记,10%的概率采用随机词替代,剩下10%的概率不做替换,然后利用上下文来预测这些词。后者是指判断输入Bert的两个文本的连续性,相当于二分类任务。
Bert词向量模型以字为最小单位,不需要对文本进行分词,输入由三个嵌入特征构成。Bert模型在预处理好的维基百科语料上进行预训练,获得Bert词向量模型,然后对预处理过的电影文本信息进行矢量化,输出768维文本向量。
当前的回归预测模型主要是机器学习算法和深度学习算法的应用,常用的有线性回归、决策树回归、SVM、Random Forest、xgboost、LSTM、CNN等。
2011年Dong Nguyen等人[11]提出基于线性回归算法的文本作者年龄预测模型,实验表明话语模式与个人识别之间的相关性高达0.74,平均绝对误差在4.1至6.8之间。2015年蔡慧苹等人[12]提出基于Word embedding和CNN的情感分类模型,其准确率比传统ML高了约5个百分点。2017年Ashok等人[13]提出一种利用支持向量回归算法在线模式开发基于机器视觉的铁矿石等级预测模型,实验表明测试样品的观察值和预测值之间的相关系数为0.824 4,该模型对于铁矿石等级的预测性能较好。同年胡西祥针对微博评论构建基于DL的情感分类模型,其准确率为84.5%。随后Torlay等人[14]提出基于xgboost算法的癫痫患者分析及分类,AUC指标为96%。同时王斌构建了基于LSTM的交通流量预测系统,实验表明平均精度为95%。对比实验表明,SVM和Random Forest在该电影数据集上的表现最优,所以下面就这两种算法做一些简要的介绍。
2.2.1 Random Forest
Random Forest[15]是一种由多个弱分类器对数据进行训练并预测的集成算法,一个样本数据有多个分类输出结果,而最终的类别由投票机制确定。
该算法流程如图3所示。对于每个分类器,首先采用有放回机制在所有的数据样本中随机选取部分样本,然后从这些样本的特征中再随机选取部分特征,并挑选出最好的特征。同时每棵决策树都无剪枝的尽可能的生长直至输出一个分类结果,通过多数为胜的投票机制确定最终输出类别。
Random Forest是一种实用性很强的算法,在目前所有的算法中具有较好的准确率,而且在大数据集和高维特征上都有很好的表现。
图3 Random Forest结构
2.2.2 SVM
SVM[16]是一种适用于处理分类和回归问题的基于统计学的有监督的二分类器,主要问题是如何在特征空间中使数据点与超平面的距离最大化。该算法在训练过程中首先利用拉格朗日乘子法[17]与对偶学习法来处理最优化问题,然后由序列最小优化(sequential minimal optimization,SMO)来求解。
其中线性可分SVM适用于严格线性可分的数据集,假设超平面为:
y=wTx+b
(1)
则数据点(xi,yi)与超平面的距离为:
(2)
其几何距离为:
(3)
(4)
=p*
(5)
则其对偶问题为:
=Q*
(6)
且Q*≤P*,根据Slater条件可知存在xi使得Q*=P*,对w和b求偏导后通过SMO算法来求解。
线性SVM适用线性不可分数据集,增加了松弛变量,其超平面和决策函数与前面的相同。而非线性SVM引入了核函数,通过非线性映射使该数据线性可分,然后按照线性SVM的方法求解。
本次实验的硬件配置是基于macOS High Sierra系统,CPU型号为3.5GHz 6-Core Intel Xeon E5,内存为16G;软件配置:编程工具为Pycharm2018.3.2,基于Python3.7编程语言和Tensorflow1.13.1框架,此外还使用了gensim库、jieba分词库、pandas库和scikit_learn库等。
如图4所示,系统UI包括输入和输出两部分,其中输入是指用户输入电影名、电影特征信息以及电影简介文本信息,输出是指前端输入的信息传输到后端,后端进行处理后,将预测出的评分返回到UI界面。
该文设计了两组实验,分别是文本评分预测模型实验和基于混合特征的评分预测模型实验,实验性能指标采用均方根误差RMSE。
图4 系统UI界面
第一组实验是文本评分预测模型实验,使用的数据是豆瓣爬取的12 491条电影的文本信息,即电影简介,其中以0.8和0.2的比例切分训练测试样本。
该实验首先使用预训练好的Bert和Word2vec模型分别矢量化输入数据得到文本矢量特征,然后基于SVM算法建模,调参后使用最佳参数训练测试。同时为了验证该模型性能的优劣性,使用了另外十种算法进行对比实验,实验结果如图5所示,横坐标为十一种算法,纵坐标为RMSE值。
图5 Bert和Word2vec效果对比
实验结果表明,在该数据集上Bert词向量效果要优于Word2vec,且SVM算法的表现最好,RMSE为1.43。为了更加直观地观察模型性能,在测试集中随机选取50条数据,评分预测值与实际值的比较结果如图6所示,容易看出基本走势大致相同,但整体误差较大,说明仅仅依靠文本特征无法很好地预测评分。
图6 基于SVM算法的评分预测值与真值的结果对比
第二组实验是基于混合特征的评分预测模型实验,基于上一组实验中的2 500条测试样本,依据是否含有文本特征这一条件设计一组对比实验。样本中的主要信息包括电影ID、名称、上映年份、类型、导演、演员和豆瓣评分等,同样以0.8和0.2的比例切分训练测试样本。
该实验首先根据是否包含电影文本信息将数据集分为两组,在将数据标准化后,分别基于Random Forest算法构建模型,通过网格搜索调参获得最佳模型参数,然后随机划分数据集进行100次训练预测实验,计算RMSE的平均值,同时为了验证模型性能的优劣性,分别使用了另外十种算法进行对比实验,两组实验结果对比如表1所示。
实验结果表明,电影特征信息和文本信息的特征混合能够显著提升模型性能,且在该数据集上表现最优的算法为Random Forest,其RMSE为0.564 3,在测试集中随机选取50条数据,评分预测值与实际值的比较结果如图7所示。最后为了评估该系统的用户体验度,邀请了30位同学来体验,为该系统打分,采用10分制,问卷统计结果如表2所示,可以看出该系统操作性、流畅性以及实用性很好,但是UI设计和耗时性有待改进。
表1 对比结果
表2 问卷统计结果
图7 基于Random Forest算法的评分预测值与实际值的结果对比
利用自然语言处理技术与机器学习算法的优势,提出了基于混合特征的电影评分预测系统,通过对比实验可看出Bert具有更好的词向量效果且混合特征可显著提升模型性能,另外实验结果表明机器学习算法中SVM和Random Forest算法在该电影数据集上的表现最好,系统预测准确率较高。当然该系统还存在不足之处,比如实时性不高且UI设计不够完美,后期可以针对Bert模型进行改进,加快文本的向量化过程,另外在UI设计方面,可以在得到评分预测结果的同时背景中加入对应电影海报的展示,使得系统界面更加智能美观。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!