王雅懿 王志海
(中央宣传部电影数字节目管理中心,北京 100866)
随着互联网技术的普及和发展,观众对电影的消费方式也不再局限于从影院或者电视上观看影片,通过互联网视频平台观看影片已经成为百姓日常观影的主要模式。另外,互联网线上观影用户有更多的选择空间,刚从影院下档的热片、经典老片都可以随意选择。为了方便用户选片、做好影片的精准投放,平台需要对影片的内容提取特征和分类,以便根据用户画像,向用户推荐感兴趣的影片。根据国家电影局公布的数据显示,2019 年全年生产影片1037部,2020年受疫情影响全年生产影片也有650部。如果靠人工将如此多的影片分类,需要耗费大量的人力和时间,由于每个人的评判标准不同,也会造成结果的差异性,降低分类质量和可用性。如果在影片分类的过程中引入机器学习的方法,就可以统一评判标准,提高效率。本次实验利用词向量、多标签分类等机器学习技术,实现根据影片简介对影片类型的预测。
词向量模型(Word2vec)是一种利用神经网络技术对上下文及目标词的关系进行建模,从而实现将词语向量化表示的方法。与独热算法(One-Hot)相比,词向量模型能够实现将词语转化为稠密的向量,并且近义词有相似的向量,有助于挖掘文字中词语和句子之间的特征。多标签分类 (Multi-label Classification)是一种改进的分类模型,可实现单个样本多标签多类别的分类,符合单部影片属于多个影片类型的应用场景。词向量与多标签分类经常用于文本情感分析,本实验将该技术应用于影片分类的场景中,利用词向量模型实现将影片简介转化为稠密向量,再通过多标签分类模型实现对影片类型的划分,为影片自动化分类提供探索性实验方案。
由于机器无法直接理解人类的语言,所以在将人类的语言交给机器处理时,首先要做的就是将语言数学化,通常数学化方式是将词语转换为一个向量,即向量化。词向量模型 (Word2vec)就是利用神经网络思想,将人类语言中的词语转换为数学向量的一种算法。与独热 (One-Hot)、基于共现矩阵的算法相比,词向量模型 (Word2vec)的优势在于,它不是简单的用数字对词语进行编码,而是用向量表示词与词间的语义关系,具有相似含义的词语,在词向量空间上的距离也是相近的。
词向量模型(Word2vec)有两种重要的模型结构:CBOW (Continuous Bag-Of-Word)模型和Skip-Gram (Continuous Skip-Gram)模型,CBOW模型是根据文本上下文来预测当前词;Skip-Gram模型是根据当前词来预测上下文。在本实验中将使用CBOW 进行模型搭建,CBOW 模型结构如图1所示。
图1 CBOW 模型结构
CBOW 模型将用于训练的语言样本拆分成多个样例(Context(w),w),其中w 是神经网络要预测的词语,Context(w)指词语w 的上下文,例如语言样本“文物局司机王保银意外发现失踪多年父亲所留下的遗物”,通过分词工具可以将语言样本分词“文物局 司机 王保银 意外 发现 失踪 多年 父亲 所留下 的 遗物”,如果要预测词语w为“发现”,选取预测词语前后3个词作为上下文,那么Context(w)为“司机 王保银 意外 失踪 多年 父亲”。
本次实验中使用的CBOW 模型,在输出层引入了负采样 (Negative Sampling)的概念,传统的CBOW 模型输出层使用的霍夫曼树 (Huffman Tree),而基于负采样的CBOW 使用的是相对比较简单的随机负采样,这样可以大幅度提高性能。负采样是一种根据词典D 中的词语在样本集C 中出现的频次取负样本的算法。基于负采样的CBOW 模型中已知上下文Context(w),预测词语w,那么w就是一个正样本,字典中其他词就是负样本。
将基于负采样的CBOW 模型拟合成一个数学模型,即目标函数,机器学习的过程就是求解目标函数最大值或最小值的过程。在推导整个样本集下的目标函数之前,为了方便理解,先推导单个样本的目标函数。
假定已经选好了一个关于正样本w 的负样本集NEG (w)≠φ,且对∀u∈D,定义:
L(u)表示词u的标签,即正样本的标签为1,负样本的标签为0。
对于一个给定的正样本 (Context(w),w),根据概率公式其目标函数可以写成式(2)形式,机器学习的目标就是求该公式的最大值:
由于负采样最后处理的是一个二分类问题,根
据二分类模型(Sigmoid)可以得到:
其中X表示Context(w)中各词的词向量之和,θ表示神经网络参数,σ是二分类问题常用的Sigmoid函数。
将式(1)(3)带入式 (2)中就可以得到单个正样本(Context(w),w)的目标函数:
得到单个样本的目标函数后,开始推导整个样本集的目标函数。对于整个样本集C,有目标函数:
为了便于求解,对G 取对数,则有最终目标函数:
得到整个样本集的目标函数后,用梯度上升法对目标函数最大值进行求解,求解过程中对模型参数进行迭代更新。为梯度上升推导方便,将式 (6)中的花括号内容简记为L (w,u),即:
利用随机梯度上升法分别对式 (7)θ和X求导,可得到导数:
对于神经网络参数θ,每次迭代的更新公式为:
多标签分类模型 (Multi-label Classification)是一种改进的分类模型,可实现单个样本多标签多类别的分类。多标签学习的算法可以分成两种:问题转化方法和算法改编方法。问题转化方法把多标签分类转化为其他机器学习问题,例如分类器链算法(Classifier Chains)将多标签分类转化为二分类,RAKEL 算法 (Random K-Labelsets)将多标签分类转化为多分类问题。算法改编方法通过对流行的机器学习技术改编来应对多标签问题。本次实验使用的神经网络模型就是通过改编输出层的激活函数和损失函数,从而达到支持多标签分类的目的。使用神经网络的优势在于,最终的输出结果是对每个标签可能为真的概率值,可以通过控制阈值来对预测结果进行调整。
普通多分类神经网络中,输出层的激活函数是Softmax函数,而在多标签分类模型中,输出层使用Sigmoid作为激活函数,这样输出层就将类别c建模为伯努利概率分布,并且每个标签间都是相互独立的:
将损失函数从交叉熵 (Categorical Crossentropy)改为二分类的交叉熵 (Binary Crossentropy)。二分类的交叉熵损失函数BCE (X)结果就是一个向量而不是一个数值,BCE (X)表示对第i个标签的预测值与真实值间的误差。
其中y是第i个标签0或1分类的真实值,f(x)为第i个标签的预测值。
基于影片简介的影片类型预测模型主要分为四个处理模块:数据清洗模块、词向量模型训练模块、多标签分类模型训练模块和测试集预测(见图2)。
图2 基于影片简介的影片类型预测模型处理模块
数据清洗模块,数据集中包含55000余部影片数据,数据字段包括影片名称、影片简介、影片类型、国籍字段。由于影片简介和影片类型要用于模型学习,所以将影片简介、类型缺失,以及全英文简介的影片样本信息从数据集中去掉。对于空行、多个空格等文本格式问题,在进行格式调整后放入样本集。经过清洗筛选后的样本集有33600余部影片信息。
词向量模型训练模块,在数据预处理的过程中主要是对训练文本进行分词和去停用词。利用分词工具将文本分词后,还要去掉停用词,停用词是语气词和没有意义的单词,例如:“么”“的”“吗”。搭建词向量训练模型,该模型采用基于负采样的CBOW 模型结构,为了让词向量包含更多信息并考虑到资源消耗情况,经过实验和测试,将词向量的维度设置为600维,最终得到训练好的词向量模型以及词向量矩阵。
多标签分类模型训练模块,在进行多标签分类前,要完成训练样本和标签的向量化,在本实验中,训练用的样本就是影片的简介文本,标签就是影片的类型。影片类型一共有39 类,因此将标签做成39维的向量,影片类型及影片数量如图3所示,如果影片属于某一类型,那么该类型所代表的向量维度数值就为1,否则为0。
图3 测试集影片类型与预测类型分布情况
表1 训练集各类型影片数量情况
影片简介可以通过词向量模型进行转化,简介中每个词语是一个600维向量,所有词语的词向量加和求取平均,就是该影片简介的特征向量。将样本和标签向量化之后,再将样本集按照8∶2的比例划分训练集和测试集,最终训练集影片数量26881,测试集影片数量6721。搭建多标签分类模型,模型结构如图4所示,输入层的神经元个数600,与简介的特征向量维度一致,中间隐藏层的神经元个数设置为200,输出层的神经元数量39,与标签维度一致。为了防止过拟合的情况,在损失函数中加入L2正则项。
图4 多标签分类模型神经网络结构
测试集预测模块,测试集的影片类型与训练集的影片类型基本保持同分布。在对测试集进行预测后,分别用单标签正确率和F1-score两种评价方式对预测结果进行评价。
测试集中共有影片信息6721条,测试集影片类型分布与预测结果基本保持一致。喜剧、爱情、动作等头部类型影片预测值与真实值在影片数量上基本一致。经典、文艺、灾难等类型影片由于训练的影片素材过少,导致没有影片被预测为这几类。大部分故事片都可以分入剧情类型,但是在分类时往往优先使用其他类型,例如:影片 《血战湘江》被标注为战争、历史,而不是剧情。因此导致样本中,剧情类型影片数量明显少于预测为该类型的影片数量。
对测试集的预测结果整体正确率96.57%。其中喜剧、爱情、动作等样本量较大的影片,预测正确率在85%~95%之间。剧情类型影片的预测正确率只有72%,在各类型的预测结果正确率中排名末位,见图5。综艺、伦理等样本数量较少的影片类型,正确率较高,分析其原因主要是:虽然所有影片都没有被分类到综艺、伦理等类型,但是由于这些类别的正例样本较少,负例样本占比远高于正例样本,导致即使所有影片都被分为负例,其正确率依然很高。这就暴露出将正确率作为评价标准,在正负例样本占比差异较大的情况下,评价结果并不客观。
图5 各类型预测结果正确率
F1-score作为模型最终的评价标准,可以有效应用在某类型正负样本数量差异过大的场景中。由于每个影片类型都是一个二分类问题,对比预测结果和真实值,可以将预测结果分为以下四种情况,见图6。
图6 预测结果的四种情况
精准率描述了在所有被预测为某类型的影片中,有多少影片是真正属于该类型的。召回率描述了属于某类型的影片,被预测出来的有多少。精准率和召回率的公式如下:
F1-score由精准率和召回率组成,公式如下所示:
对测试集的预测结果整体F1-score 得分为0.6364。从各影片类型的F1-score得分情况可以看出,F1-score得分结果与该类别的影片数量、影片类型与简介相关程度等因素有关。影片数量较多的类型得到了不错的结果,剧情是影片数量最多的类型,F1-score得分达到了0.82。而训练样本较少的影片类型预测结果并不理想,经典、伦理、灾难等影片数量不足100 部,F1-score得分几乎为0。短片、歌舞由于难以从影片简介中对其类型加以区分,所以F1-score得分不高,仅有0.2左右。喜剧、爱情、动作等热门类型影片数量在2000~4000 部区间,具有一定的规模,F1-score得分在0.5 左右,F1得分拥有很大的增长空间,是模型下阶段的优化重点(见图7)。
图7 各类型预测结果F1得分情况
本文实验性地将词向量、多标签分类等机器学习技术应用在对影片简介的文本分析上,实现了对影片类型的预测。模型还存在着一些问题,下一阶段将扩充训练样本的特征,将影片海报、影片时长、出品年代、国别等信息也加入到学习中,进一步提高模型的准确性,为影片信息的进一步挖掘和内容分类提供参考模型。