1. 绪论
随着信息技术的快速发展,尤其是互联网和大数据的普及,用户面临的信息量急剧增加,如何从海量信息中提取有价值的内容并满足用户的个性化需求,成为了当前研究的核心课题。在这一背景下,深度学习技术,尤其是卷积神经网络(CNN)和注意力机制,逐渐成为推荐系统中的核心技术。这些技术能够有效捕捉用户与物品之间复杂的关系,从而提升推荐准确性和系统的鲁棒性。基于CNN和注意力机制的深度学习模型,不仅能够处理高维数据,自动提取特征,减少人工干预,还能深度挖掘用户兴趣,提供更加个性化的推荐服务,提升用户满意度与平台的商业价值。因此,这一研究不仅推动了学术进展,还为电商、社交媒体、在线教育、音乐和视频推荐等多个领域的应用提供了新的思路和方法,具有广泛的应用前景和巨大的市场潜力。
2. 基于CNN及注意力机制的电影推荐算法模型
本章节的研究重点是基于CNN及注意力机制的电影推荐算法。我们将首先介绍用户和电影的相关特征,并分析如何有效地将这些特征转化为适合模型处理的形式。接着,我们将讨论如何利用卷积神经网络(CNN)提取特征中的局部信息,结合自注意力机制挖掘全局依赖关系,从而提升推荐系统的性能[1]。
2.1. 特征处理模块
在本研究中,我们提出了一种基于卷积神经网络(CNN)和注意力机制的电影推荐模型,旨在通过多模态特征融合和深度优化,显著提升电影推荐的准确性和个性化程度。模型的整体框架由用户特征嵌入、电影特征嵌入、卷积模块、自注意力机制、LSTM层、残差模块以及评分预测等关键模块构成。下面介绍两大特征处理的部分,如图1所示。
其一,对于用户特征嵌入部分,我们对年龄、性别和职业等用户特征进行了精细化处理。年龄通过离散化分桶的方式被划分为多个区间,例如将10~19岁归为“青少年”类别,随后通过嵌入层映射为稠密向量。性别采用one-hot编码,分别用[1, 0]和[0, 1]表示男性和女性,同样通过嵌入层转换为稠密向量。职业作为多分类特征,直接通过嵌入层映射为稠密向量。这一系列处理将离散特征和连续特征统一映射为相同维度的稠密向量,有效解决了特征异构性问题,为后续的特征交互提供了坚实基础。
其二,对于电影特征嵌入部分,我们对电影的类型和ID进行了处理。电影类型采用multi-hot编码,例如“科幻|动作”会被编码为一个向量,然后通过嵌入层和卷积层处理,以捕捉类型组合模式,如“科幻 + 冒险”的联合特征。卷积核在滑动窗口内捕获特征共现模式,每个卷积核的输出对应一个潜在语义空间,例如“青少年偏好类型组合”,通过梯度加权类激活映射(Grad-CAM)可以可视化关键特征区域。同时,每部电影的唯一ID通过嵌入层映射为稠密向量,保留了电影个体的独特性。
Figure 1. Feature processing structure diagram
图1. 特征处理结构图
综上,我们将模型的详细数学描述和总体设计展示如下:
(1)
① 用户特征嵌入:
(2)
年龄离散化分桶(如10~19岁→青少年)、性别(one-hot编码)、职业(嵌入层)将离散特征(如职业编码)和连续特征(如年龄)映射为统一维度的稠密向量,解决特征异构性问题。
② 电影特征嵌入:
(3)
卷积层处理多类型标签(如“科幻|动作”),捕捉类型组合模式,ID嵌入保留个体独特性。
符号关联:
:用户与电影特征的拼接,构建交互空间。
:Sigmoid函数将输出映射为0~5的评分值。
在本研究提出的电影推荐模型中,我们通过一系列关键设计实现了对用户和电影特征的深度挖掘与融合,从而显著提升了推荐系统的性能。首先,我们采用了多模态输入的设计,将用户特征(如年龄、性别、职业等)和电影特征(如类型、ID等)分别通过嵌入层映射为稠密向量,解决了特征异构性问题,为后续的特征交互提供了统一的基础。
为了捕捉用户与电影之间的复杂关联,我们引入了特征交叉模块。通过卷积模块,模型能够提取局部交互模式,例如“青少年用户”与“科幻电影”之间的潜在关联。这种局部模式的捕捉使得推荐系统能够更精准地理解用户对不同类型电影的偏好。在处理用户观影行为的时序特征方面,我们采用了时序建模。LSTM层能够有效处理用户观影序列的时序依赖关系,例如连续观看同一导演的电影。通过这种方式,模型不仅能够捕捉用户的长期偏好,还能及时发现用户的兴趣漂移,从而为用户提供更贴合其动态兴趣的推荐[2]。
2.2. 模型的架构与实现
在深入解析该模型的架构设计时,我们绘制了框架流程图,以直观呈现模型的运行机制与各模块之间的协同关系,如图2所示。
Figure 2. Movie recommendation system framework flowchart
图2. 电影推荐系统框架流程图
第一步对局部特征进行提取。基于CNN的细粒度特征捕捉在局部特征提取环节,以卷积神经网络(CNN)作为核心技术,专门针对电影类型等具有空间局部关联的特征展开处理。电影类型特征并非孤立存在,而是存在如“动作 + 冒险”“剧情 + 爱情”等组合模式,CNN通过卷积核在特征空间上的滑动操作,能够精准捕捉这类局部组合模式。例如,针对电影类型特征矩阵,卷积核可提取不同类型间的潜在关联特征,挖掘出隐藏的类型搭配偏好。经过卷积操作后,再通过池化层降维,在保留关键局部信息的同时压缩特征维度,最终形成细粒度的局部特征表达,为后续模型分析提供坚实的基础特征输入。
第二步进行全局关系挖掘,注意力机制驱动的特征关联分析。在全局关系挖掘层面,模型引入注意力机制(Layer1) [3],通过动态计算不同特征间的关联权重,打破特征独立处理的局限。例如,在用户历史行为与电影特征的交互过程中,注意力机制[4]可识别对用户决策影响更大的特征——若用户近期频繁观看科幻类电影,模型会自动提升科幻电影相关特征(如科幻类型标签、科幻电影导演等)的权重。在此基础上,叠加自注意力模块增强全局特征挖掘能力,该模块能基于用户实时行为数据,持续调整特征权重分配,使模型更灵活地适应用户兴趣变化,深度挖掘跨特征的全局依赖关系,从而捕捉用户潜在的综合偏好。
第三步,LSTM对用户兴趣动态的捕捉。针对用户观影行为的时序特性,模型采用LSTM层进行时序建模[5]。用户观影序列蕴含着丰富的时序依赖关系,如连续观看同一导演的多部作品、短期内集中观看某一题材电影等。LSTM凭借其独特的门控机制,能够有效记忆长序列中的关键信息,不仅可以捕捉用户长期稳定的观影偏好(如长期喜爱悬疑题材),还能及时发现兴趣漂移(如突然对纪录片产生关注)。例如,当用户连续观看某位导演的电影时,LSTM会强化对该导演相关电影特征的学习,将时序依赖转化为特征表达,为动态兴趣推荐提供核心依据,使推荐结果更贴合用户实时兴趣。
第四步,在此基础上进行深度特征融合与优化。残差连接与全连接层的协同作用在深度特征融合与优化阶段,模型通过残差连接(Layer2)和全连接层(Layer3~Layer4)实现特征的高效整合与输出。残差连接[6]作为深层网络训练的“稳定器”,通过跳跃连接融合用户长期兴趣(如基于基础画像的历史评分模式)与短期兴趣(LSTM提取的近期行为特征),避免因网络层数增加导致的梯度消失或爆炸问题,确保底层特征信息不丢失。经过残差连接优化后,全连接层作为最终融合环节,对处理后的特征进行加权整合,通过多层非线性变换,捕捉特征间复杂的高阶交互关系——例如,将用户年龄、历史行为、电影类型等特征深度融合,最终输出精准的预测评分,使模型能够更准确地捕捉用户偏好,提升电影推荐的精度与有效性。
2.3. 模型概况
在电影推荐系统中,为了增强推荐结果的强相关性,我们从特征工程、评估指标、消融实验、注意力可视化以及冷启动处理机制等多个方面进行了针对性的设计与优化,具体模块如表1所示。
在特征工程方面,电影推荐系统通过采用1D卷积对multi-hot类型编码进行处理,以显式建模不同类型组合的协同效应,精准捕捉用户对电影类型的偏好[7]。同时,引入时间上下文嵌入,将电影年份按照年代进行分段,以捕捉用户对经典电影与新片的偏好差异。在评估指标上,使用RMSE和MAE衡量评分预测的准确性,HR@K和NDCG@K用于Top-K推荐任务的评估。此外,通过消融实验验证各模块的重要性,进一步分析注意力机制、LSTM等模块对推荐系统性能的贡献。为了应对深度网络中的梯度消失问题,系统引入了残差连接,这有助于避免信息在深层网络中逐渐消失,确保梯度有效传播,从而提高模型的训练效率和稳定性。在电影推荐的可解释性方面,采用电影属性注意力可视化机制[8],展示推荐原因,增强系统透明度。对于冷启动问题,采用针对新用户和新电影的不同策略,结合人口统计特征和类型、年份嵌入,缓解冷启动问题并提高推荐质量。
Table 1. Module function analysis table
表1. 模块功能分析表
步骤 |
数据处理 |
数学操作 |
电影推荐关联性 |
输入 |
用户ID、年龄、性别、历史行为电影ID、类型、年份 |
|
原始特征对齐MovieLens数据字段 |
嵌入 |
用户年龄分桶嵌入
电影类型卷积嵌入 |
|
类型卷积适配multi-hot编码特性 |
交叉 |
拼接用户与电影特征 |
|
构建联合交互空间 |
注意力 |
计算用户–电影匹配度 |
|
动态突出关键特征交互 |
时序模型 |
处理用户观影序列 |
|
捕捉兴趣演化轨迹 |
残差融合 |
长期 + 短期兴趣 |
|
防止深层网络丢失基础特征 |
通过以上多方面的综合优化与设计,我们的电影推荐系统能够显著提升推荐结果的相关性和个性化程度,增强用户体验,同时在面对冷启动问题时也能提供有效的解决方案,确保推荐系统的稳定性和可靠性。
3. 推荐模型的实验与分析
3.1. 数据处理与特征处理
3.1.1. 数据集
在本章中,为了更好地检验该电影推荐系统的性能以及各指标水准,我们选用了较为知名的MovieLens网站电影评分数据作为本次实验的数据集,其中包括100多万条电影评分数据以及不同用户的基本信息数据。该数据集中,一共有三个.dat后缀文件(movies、ratings和users),在movies的表中包含电影名称、ID及所属类别,ratings文件中包含用户ID以及分别对应的评分数据,users文件则是所有已统计用户的基本信息。以下是该数据集中各个文件的随机五条数据,具体情况如表2所示。
Table 2. Movie information table
表2. 电影信息表
电影ID |
电影名称 |
电影类别 |
3 |
Grumpier Old Men (1995) |
Comedy Romance |
8 |
Tom and Huck (1995) |
Adventure Children’s |
9 |
Sudden Death (1995) |
Action |
10 |
GoldenEye (1995) |
Action Adventure Thriller |
15 |
Cutthroat Island (1995) |
Action Adventure Romance |
Table 3. Scoring information table
表3. 评分信息表
用户ID |
电影ID |
评分 |
时间戳 |
1 |
608 |
4 |
978301398 |
1 |
1246 |
4 |
978302091 |
2 |
1357 |
5 |
978298709 |
2 |
3068 |
4 |
978299000 |
5 |
2987 |
4 |
978243170 |
如表3所示,在评分信息表中有一列为时间戳,它是用于在数据中记录事件发生的时间点,而在该系统中,我们在电影数据集中引入时间戳有助于评估模型的实时预测能力,验证其稳定性,应用于时间序列预测,同时支持数据分析与可视化,从而全面提升推荐系统的性能和用户体验。
Table 4. User information table
表4. 用户信息表
用户ID |
性别 |
年龄 |
职业 |
邮编 |
12 |
M |
25 |
12 |
32793 |
13 |
M |
45 |
1 |
93304 |
14 |
M |
35 |
0 |
60126 |
15 |
M |
25 |
7 |
22903 |
16 |
F |
35 |
0 |
20670 |
用户信息如表4所示,其中“F”和“M”分别代表女性和男性,并且为了后续数据分析和模型检验,我们将年龄以及职业分别用不同的数据来替代,对此要进行必要说明,具体情况见表5。
Table 5. Comparison table for age information
表5. 年龄信息对照表
替代值 |
年龄区间 |
1 |
18岁以下 |
18 |
18~24岁 |
续表
25 |
25~34岁 |
35 |
35~44岁 |
45 |
45~49岁 |
50 |
50~55岁 |
56 |
56岁以上 |
由于该模型暂无进行对特定职业的敏感特征抓取的功能并鉴于对后续模型检验并无影响,在这里对不同编号所对应的职业不再详细描述。
3.1.2. 数据预处理
经过上述对数据集的详细介绍以及数据的选用,我们从MovieLens数据集中筛选了有效数据,将movies、ratings和users三张表进行合并,分别通过将电影编号和用户编号作为合并的索引将后续实验验证所需数据整合在一张大表中,无效信息则选择删除[9],合并并且经过处理后的数据集如表6所示。
Table 6. Merged dataset
表6. 合并后的数据集
用户ID |
电影ID |
评分 |
时间戳 |
电影标题 |
电影类别 |
性别 |
年龄 |
职业 |
邮编 |
2015 |
986 |
1 |
975035760 |
Fly Away Home (1996) |
Adventur Children’s |
M |
18 |
4 |
1003 |
4077 |
539 |
4 |
965444857 |
Sleepless in Seattle (1993) |
Comedy Romance |
F |
35 |
2 |
22030 |
2237 |
3514 |
3 |
974596081 |
Joe Gould’s Secret (2000) |
Drama |
F |
35 |
6 |
14905 |
3391 |
2093 |
3 |
1046190153 |
Return to Oz (1985) |
Adventure Children’s Fantasy Sci-Fi |
M |
18 |
4 |
48135 |
822 |
2987 |
3 |
981481471 |
Who Framed Roger Rabbit (1988) |
Adventure Animation Film-Noir |
F |
25 |
1 |
7666 |
在上表中,由于一部电影可能存在多个类别标签,为了能够将其划分清楚,我们通过在中间插入“|”来进行分割。
3.1.3. 特征提取
数据预处理的过程中,我们筛选了部分有效的数据,其中大部分均为提取到的特征,例如用户ID、电影ID、用户信息等,保留了这些电影及用户的基本属性信息,具体所提取到的特征信息总览如下表7所示。
Table 7. Feature selection
表7. 特征选取
特征类别 |
特征选取 |
特征编码 |
电影特征 |
电影ID |
MovieID |
电影类别 |
Genres |
用户特征 |
用户ID |
UserID |
性别 |
Gender |
年龄 |
Ade |
职业 |
Occupation |
以上提取到的特征在模型代码中均有体现,具体的特征处理过程和步骤已在前文详述,在此不再过多赘述,直接进行模型验证实验。
3.2. 实验设计
3.2.1. 参数选取
现在进行实验参数设置[10],在实验分析时我们会采用超参数初步选取的方式进行,从而得到最优值,具体参数设置如表8所示。
Table 8. Experimental parameter setting
表8. 实验参数设置
参数名称 |
参数值 |
嵌入层(output_dim) |
64 |
卷积层数 |
64 |
LSTM层 |
64 |
残差块(dropout_rate) |
0.2 |
学习率(learning_rate) |
0.0001 |
批量大小(batch_size) |
64 |
训练参数(epochs) |
100 |
训练参数(patience) |
10 |
3.2.2. 实验过程描述
后续模型训练过程中,使用预设参数进行训练,并通过自动调整超参数、监控训练集和验证集误差变化来优化模型。当验证集损失在10个epoch内未改善时,训练将提前终止。训练完成后,使用测试集评估模型性能,计算MSE、RMSE和MAE。通过参数敏感性分析,调整嵌入层的output_dim、卷积层的filters和kernel_size、LSTM的units等参数,观察其对模型性能的影响。此外,通过分析残差分布、注意力机制输出、LSTM层激活值和梯度,进一步优化模型结构和参数设置。最终,通过检验测试集上的MSE、RMSE和MAE值,评估不同参数设置对模型性能的影响,为模型优化提供参考。
3.3. 实验结果及分析
3.3.1. 参数选取实验
为了优化模型性能,本节对模型中多个关键超参数进行了系统性实验分析。通过调整这些超参数,我们旨在找到最佳配置,以提高模型在评分预测任务上的表现。以下是各超参数的实验设置、结果分析以及对实验结果的解释。下面实验中我们不断地更新参数值大小来进行多次实验检测,直到找到超参数最合适的值,具体参数值变更如表9所示。
通过一系列详细的实验,我们探讨了不同超参数设置对模型性能的影响,包括嵌入层的大小、卷积层数、LSTM层大小、残差块的dropout_rate、学习率、批量大小以及训练参数patience。每个实验都旨在平衡模型的复杂度、特征提取能力与过拟合风险,从而找到最佳的预测模型。例如,调整嵌入层的output_dim可以影响特征提取的能力,同时控制过拟合;改变卷积层数则影响模型对局部特征的捕捉能力;而LSTM层的设置决定了模型对时间序列特征的处理能力。此外,残差块的dropout_rate、学习率、批量大小及训练参数patience都直接影响模型的训练效率、收敛速度和稳定性。以下是经过多次实验后得到的最佳检验数据,如图3所示。
Table 9. Hyperparameter setting value
表9. 超参数设置值
参数名称 |
参数值 |
嵌入层(output_dim) |
64/128/192 |
卷积层数 |
1/2/3 |
LSTM层 |
32/64/128 |
残差块(dropout_rate) |
0.1/0.2/0.3 |
学习率(learning_rate) |
0.0001/0.001/0.01 |
批量大小(batch_size) |
32/64/128 |
训练参数(patience) |
5/10/20 |
Figure 3. Experimentally verified numerical change plot
图3. 实验验证数值变化图
从图表中可以看出,随着训练的进行,模型的MSE、RMSE和MAE均迅速下降,并在后期趋于平稳,表明模型的预测误差逐步减小,训练效果逐渐提高,最终收敛到一个稳定的状态,表现出良好的训练效果。结合终端的实际计算数据,我们可以判断该预测模型的良好性能。
3.3.2. 实验结果分析
在本轮超参数实验中,我们逐步选取了表现较为优异的一组数据并得到以下结论:
1) 嵌入层(output_dim):192的嵌入维度能够更好地捕捉用户特征,但模型复杂度较高,容易过拟合。64的嵌入维度模型简单,但特征提取能力较弱,容易欠拟合。128的嵌入维度在两者之间,可能提供更好的平衡。
2) 卷积层数:128的卷积层数能够更好地捕捉局部特征,但模型复杂度较高,容易过拟合。32的卷积层数模型简单,但特征提取能力较弱,容易欠拟合。64的卷积层数在两者之间,可能提供更好的平衡。
3) LSTM层:128的LSTM层能够更好地捕捉序列特征,但模型复杂度较高,容易过拟合。32的LSTM层模型简单,但特征提取能力较弱,容易欠拟合。64的LSTM层在两者之间,可能提供更好的平衡。
4) 残差块(dropout_rate):0.3的残差块能够更好地捕捉残差表达能力,但模型复杂度较高,容易过拟合。0.1的残差块模型简单,但特征提取能力较弱,容易欠拟合。0.2的残差块在两者之间,可能提供更好的平衡。
5) 学习率:0.01的学习率能够更好地收敛,但模型复杂度较高,容易过拟合。0.0001的学习率模型简单,但收敛速度较慢,容易欠拟合。0.001的学习率在两者之间,可能提供更好的平衡。
6) 批量大小:128的批量大小能够更好地捕捉数据的多样性,但训练时间较长,容易过拟合。32的批量大小模型简单,但训练效率较高,容易欠拟合。64的批量大小在两者之间,可能提供更好的平衡。
7) 训练参数(patience):20的patience值能够更好地平衡模型的收敛速度和过拟合风险,但训练时间较长,容易过拟合。5的patience值模型简单,但训练效率较高,容易欠拟合。10的patience值在两者之间,可能提供更好的平衡。
3.3.3. 对比实验分析
接下来,我们对不同的推荐模型进行比较,重点考察了引入残差连接对模型性能的影响。我们选择了几种经典的推荐算法,如K最近邻(KNN)和奇异值分解(SVD),以及一种基于深度学习的推荐模型。对于深度学习模型,我们分别测试了带有和不带有残差连接的版本,以观察残差连接是否能有效提升模型的性能。
首先基于梯度消失可能会出现的问题,我们穿插增加了残差网络,为此我们也对增加残差连接后的模型与原模型进行比较,未增加残差时的模型详情如图4所示。
Figure 4. Evaluation diagram of the model without residuals
图4. 无残差模型评估图
从本次结果与之前结果对比可以明显看出,残差连接在提高模型性能方面发挥了重要作用。深度神经网络通常容易遇到梯度消失或梯度爆炸的问题,尤其是在层数较多时。残差连接通过将输入信号直接传递到后续层,允许梯度在反向传播时更容易地流动,从而减轻了梯度消失的影响。这种结构的优势在深度学习模型中得到了体现,特别是在训练较深的网络时,残差连接显著改善了模型的收敛速度和最终表现。
为了验证我们的推荐模型的优异性能,我们将模型与其他的经典模型性能进行了对比分析,这些建立的模型同样使用了相同的训练集和验证集,评估指标为Top-K准确率(HR@K)和标准化折损累积增益(NDCG@K) [11]。这些指标用于衡量推荐系统的准确性和相关性,能够有效反映推荐系统的实际效果,具体评估指标分析图如图5所示。
在HR@K指标上,深度学习模型(特别是带有残差连接的版本)表现出明显的优势。相比之下,传统的KNN和SVD模型在这一指标上的表现较为逊色。具体而言,KNN和SVD的HR@K值分别为0.72和0.75,而深度学习模型(Plain)的HR@K为0.82,带残差的深度学习模型(Residual)则达到了0.85。这表明,深度学习模型能够更好地捕捉用户与物品之间复杂的非线性关系,尤其是在大规模数据集上,残差连接有助于避免梯度消失问题,进一步提升了模型的推荐精度。
Figure 5. Comparison diagram of the performance of different models
图5. 不同模型的性能对比图
在NDCG@K指标上,我们观察到类似的趋势。KNN和SVD的NDCG@K分别为0.65和0.68,而深度学习模型(Plain)达到了0.75,带残差的深度学习模型(Residual)进一步提升至0.78。NDCG@K指标考虑了推荐列表中项目的顺序,因此它更加侧重于排名质量。残差连接的引入使得深度学习模型不仅能够提高准确率,还能够在排序上获得更好的效果,进一步提升了推荐的相关性。
4. 研究总结
综上,本研究提出的基于CNN和注意力机制的个性化电影推荐模型在提升推荐效果方面取得了较好的效果,但随着技术的发展,仍然存在进一步优化和拓展的空间。未来的研究将继续探索深度学习技术在推荐系统中的应用,尤其是在多模态数据融合、冷启动问题解决和跨域推荐等方面,以期为用户提供更加精准、个性化和实时的推荐体验。
基金项目
长春理工大学大学生创新创业训练计划项目(项目编号:S202410186248)。
NOTES
*通讯作者。