黄耀 董安明
为满足用户影视个性化点播需求,本文提出一种基于深度学习和协同滤波相融合的影视节目推荐算法,通过构建多层感知网络实现用户偏好特征和节目特征的提取,进而利用所得到的特征信息通过协同过滤分别给出用户所喜欢的同类型节目以及偏好节目的推荐。实验表明本算法所推荐的影视节目能够充分迎合用户的个性化需求。
随着移动互联网的发展,移动视频在人们日常娱乐生活中越来越普及。与此同时,影视文化产业的快速发展,影视剧数目和类型的不断推陈出新,加剧了信息过载问题,导致人们难以从海量资源中找到符合自己口味和兴趣的影视剧。个性化推荐通过大数据分析,挖掘用户的个性化影视剧观看需求,可将有价值的信息主动推荐给潜在用户,为解决此类问题提供了一种有效途径。
影视剧推荐系统近几年引起学术界的极大关注。有研究提出了一种基于情境感知的个性化影视推荐算法,通过融入情境要素对用户评分的影响,使得预测评分更加精准。还有研究把用户相似度和用户权重的思想融入经典推荐算法中,使得推荐结果更符合用户的审美口味。也有研究在电影推荐中考虑在线评论中的情感因素,提出了基于协同过滤算法的影视营销推荐算法,通过神经网络并结合扩散算法构建了用户生成推荐列表。
本文以中国网络电视台(CNTV)移动用户真实观影大数据为基础,构建了一种基于协同过滤与深度学习相结合的影视剧推荐算法。所提算法利用深度学习技术得到了用户特征矩阵和节目特征矩阵,进而使用协同过滤的方法进行推荐。实验表明此方法所推荐的影视剧能够更好地迎合用户需求。
系统模型
数据集及需求
本文使用的数据集来自于 CNTV 手机电视在 2019 年 10 月份产生的约 4 900 万条数据。其涵盖的信息如图 1 所示,包括用户 ID、操作系统、所连接的网络、移动运营商信息、所在地区、观看时间、节目类别、节目名称以及观看行为记录(如播放、拖动、停止等)等。本文的目标是根据该数据集为用户推荐感兴趣的节目,以提升收视率。
系统架构
本文将协同过滤与深度学习技术相结合,来构建影视节目推荐系统,为目标用户推荐感兴趣的节目,如图 2 所示。
协同过滤算法又称社会过滤,被廣泛应用于推荐系统设计,其背后的原理是已有事物偏好相似的用户对新事物的偏好也基本一致,从而可根据其他用户的偏好向目标用户推荐。协同过滤方法需要首先找出一组与目标用户偏好一致的邻居用户,然后通过分析该邻居用户的喜好,将其推荐给目标用户。
基于协同过滤的思想,根据数据集中所挖掘出的用户特征和节目特征相似度的对比,实现 2 个功能:
①为指定用户推荐符合其偏好的节目。主要思路是通过计算该用户的特征向量与某影视剧特征向量之间的相似度,从而推荐相似度高的节目。
②为指定用户推荐其喜欢的同类型节目。其基本思路是计算不同节目特征向量之间的相似度,并找出相似度较高的影视剧。
深度学习特征提取
为了获取上述用户和节目特征向量,本文采用了深度学习技术,通过构建深度神经网络,从所给定的数据集上自动学习并抽取特征向量。所提出的基于深度学习的特征提取模型如图 3 所示。将用户 ID、用户省份、节目 ID 和节目名称等信息,通过嵌入层和文本卷积神经网络(CNN)编码后,送入对应的多层全连接神经网络构成的多层感知器(MLP),分别输出用户特征向量和节目特征向量。这 2 个特征再送入乘法层,最终输出预测的播放次数。以该预测播放次数作为用户偏好程度的评分。
在训练阶段,通过将输出预测播放次数与数据集中实际的播放次数进行对比,得到预测均方误差(MSE),从而构成深度网络的损失函数,用于实现神经网络参数的优化调整。
该模型在接收输入数据时使用了嵌入层,将非数值数据转换成数值数据,保证神经网络可以处理。对节目名,使用文本卷积神经网络将文本处理为特征数据,即首先将一句话分割成单词,再通过嵌入层产生单词向量编码,然后由 CNN 产生电影名的特征向量。
实验及分析
数据预处理
图 3 所示的嵌入层将原始的非数值文本数据转化为数值数据只提取需要的数据列。经过数值化处理后的数据,如图 4所示。
深度学习训练收敛曲线
利用数据集中随机选择的 100 万条数据对图 3 所示的深度学习特征提取模块进行训练,其损失函数首先曲线如图 5所示。可见算法经过数轮迭代即可收敛。
协同过滤推荐结果
在训练结束后,应用图 3 所示的深度学习网络得到输入数据的用户特征值矩阵和节目特征值矩阵。在此基础上,利用余弦相似度计算图 1 所示所示的相似度,并最终得到协同过滤的 2 种类型节目推荐结果。
其中,图 6 给出了对 ID 为 24 的用户所实现的关于体育节目的同类型节目推荐结果。可以看到,对该用户主要推荐了体育节目,以及与体育精神特征有关的影视剧(《决胜》)。图 7 显示了对该用户所推荐的有可能喜欢的影视节目。可见,此算法不仅仅推荐体育界面,还推荐了热播剧。
本文提出了一种基于协同滤波和深度学习相结合的节目推荐算法。利用深度学习技术,对央视移动视频统计数据进行挖掘,产生用户偏好特征和节目相似特征,进而利用协同过滤实现对特定用户的专属节目推荐。实验结果表明,该方法能够为用户提供同类型节目推荐以及偏好节目推荐。