-
近年来互联网技术的飞速发展,带动了视频网站的兴起,不论是观影人数还是人们投入到电影产业中的消费,都在不断地增长。面对如今数量庞大的电影基数,为了满足用户个性化的观影需求,也为了解决电影信息严重过载的问题,许多电影网站都开始了关于电影个性化推荐算法的研究。目前大部分网站的电影推荐都是基于用户观看电影的历史纪录,通过历史纪录来分析用户的观影偏好来进行推荐。然而,人们对电影的喜好会受一些其他因素的影响,如年龄、当地天气、外界环境等。在电影推荐领域,将情境信息融入到传统的推荐算法中,将会提供更加精确的推荐结果,算法也会更加灵活。
国内外很多学者对情境感知推荐(Situational Awareness Recommendation,SAR)进行了深入的研究。Baltrunas等[1]将情境因素融入推荐系统,提出了CAMF(Context-Aware Matrix Factorization)推荐模型,在传统的矩阵分解中融入了情境偏置。兰艳等[2]尝试将随机森林算法应用于情境推荐中。陈星等[3]尝试将情境感知应用到智能家居中。以上对情境感知推荐系统的研究都取得了很好的成果,但也存在着各个情境因素对同一个项目的影响权重没有分开考虑的问题。同时,通过矩阵分解算法得到的推荐结果也存在着可解释性差的问题[4]。
为了解决上述问题,本文提出了一种混合推荐算法CAMF-CM(Context-Aware Matrix Factorization-Classification Model)。将用户的情境信息和评分数据输入到深度学习模型中,以此来学习用户的个体特征和电影特征,得到用户在给定情境信息下的观影倾向,再将其与改进了情境权重的CAMF算法结合,增强了模型的学习能力和可解释性[5]。在LDOS-COMODA数据集上进行了相关的数据预处理,然后以平均绝对误差(MAE)为评价指标,设计了相关的实验。实验结果表明,本文提出的CAMF-CM算法能够有效地降低预测误差,改善推荐结果的质量。
-
矩阵分解算法在推荐领域已有广泛的应用,其思想是将数据集中的用户评分矩阵
${\bf{R}} \in {{\bf{R}}^{n \times m}}$ 分解成用户隐性特征矩阵${\bf{P}} \in {{\bf{R}}^{n \times f}}$ 和项目隐性特征矩阵${\bf{Q}} \in {{\bf{R}}^{m \times f}}$ ,且满足将用户u的特征向量用pu表示,评分项目i的特征向量用qi表示,那么使用矩阵分解算法计算得出的向用户u推荐物品i的推荐分数可以表示为
为了找到式(2)中的特征向量pu、qi,也为了衡量矩阵分解的好坏,需要规定一个损失函数如下:
其中:K为已有评分记录的(u,i)对集合;rui为用户u对项目i的真实评分;
$\lambda ({\left\| {{{ q}_i}} \right\|^2} + {\left\| {{{ p}_u}} \right\|^2})$ 为防止过拟合的正则化项;$\lambda $ 为正则化系数。损失函数是为了计算平方项损失,需要达到的目标是使每一个元素(非缺失值)的e(i,j)的总和最小[6]。 -
在进行评分预测时,每个用户都有各自的评价倾向,有些用户习惯打高分,有些用户的分数则区别不大。为了提高预测的准确性,需要引入用户的全局偏置[7],记为bu。同理,每个电影项目也有各自的倾向,将项目的全局偏置记为bi,bu和bi采用Baseline预测算法[8]进行计算。评分预测公式如下:
其中:μ为该项目评分的平均值。为了计算bi、bu,需要引入目标函数,计算公式如下:
-
CAMF预测模型[1]中设定每个情境因素对项目的影响相同。该预测模型中,引入了情境偏置的概念,记为bc,作为情境因素对某个项目的影响。
其中:t为项目所属类别;cj为情境要素,共包含k个情景要素;
$b{(t)_{{c_j}}}$ 表示情境要素cj对t类别影视项目的影响。将情境偏置与传统的矩阵分解算法结合,得到融合了情境偏置的评分预测公式如下:其中:
${\hat r_{{u_i}{c_1}{c_2}\cdots{c_k}}}$ 表示用户u在情境要素$c_1,c_2,\cdots,c_k $ 下对影视项目i的预测评分。将该融入情境偏置的评分预测融入矩阵分解中,得到融合了情境信息的目标函数:其中:
${r_{ui}}$ 为训练集中的实际评分。 -
目前常用的分类算法有决策树算法[9]、贝叶斯算法、k-近邻算法和支持向量机算法。这些算法经过前人们的研究和实践,被证明是高效、准确的。本文采用决策树算法,从数据集LDOS-COMODA中选取情境信息作为标签,经过训练得到特征与标签之间的关系模型,并将新的数据进行标签分类。本文将数据集中的日期、地点、情绪、状态、时间、天气等情境因素作为特征集,将电影的风格、年代、类型作为训练标签,通过决策树模型进行训练,得到基于情境数据下的用户和项目的隐性[10]特征向量,以及用户在特定情境下的观影倾向。
-
CAMF算法设定每个情境因素对项目的影响是相同的,但实际情况中,每个情境因素对用户的影响应该是不同的[11],例如有些用户的情绪更容易受到特定情境因素的影响,例如天气和观影日期,对其他情境因素则并不太在意,因此,需要对情境因素设定各自的权重。本文从LDOS-COMODA数据集中选取了12个情境因素进行实验,对每个情境因素设定其权重gj,则修改后的情境偏置公式为
特定情境因素的权重值gj通过实验确定,信息增益作为衡量信息对决策的影响性的重要方法,将其应用在情境权重的计算中,将数据集中的情境数据分别计算其信息增益,对结果取平均值,并將观影时的情绪作为基准,得到情境权重如表1所示。
Project Numbering Weight Project Numbering Weight Time g1 0.21 Endemo g7 0.03 Daytype g2 0.19 Physical g8 0.31 Location g3 0.07 Decision g9 0.07 Weather g4 0.33 Interaction g10 0.12 Social g5 0.11 Age g11 0.23 Mood g6 1 Sex g12 0.17 表 1 情境权重描述
Table 1. Description of context weights
为了进一步提高推荐的灵活性,将Baseline算法中用户和项目的全局偏置bi、bu引入改进后的CAMF算法的评分预测函数中,加入全局偏置后的预测公式如下:
改进后的目标函数为
其中:
$\lambda ({\left\| {{{ q}_i}} \right\|^2} + {\left\| {{{ p}_u}} \right\|^2} + {b_i}^2 + {b_u}^2 + \sum\limits_{j = 1}^k {b{{(t)}_{{c_j}}}^2} {g_j}^2)$ 为正则化 项;λ为正则化系数,其他参数与基本矩阵分解算法一致。 -
CAMF-CM是结合了改进的CAMF算法和决策树算法的混合推荐算法。其算法流程如图1所示。
首先,基于改进的CAMF推荐算法得到了初始的推荐列表,该列表为包含了用户的全部类型偏好的TOP-N列表。因为可能包含了目标用户在给定情境下并不感兴趣的类型[12],因而需要使用决策树模型对数据集进行训练,得出用户在特定情境下的观影倾向。对初始TOP-N列表进行二次筛选。CAMF-CM混合推荐算法的计算流程如下:
算法1 混合推荐算法CAMF-CM
输入:用户电影评级矩阵R,用户特征矩阵P,电影特征矩阵Q,用户数量M,电影数量N,用户情境因素数量F1,电影特征标签数量F2,包含了用户对电影实际评分Ri的评分矩阵F3。
输出:MAE均值
计算流程:
开始:
(1)依据Bsaeline算法,计算用户全局偏置bi,电影项目全局偏置bu。
(2)计算用户特征向量pu,电影特征的隐藏向量qi。
(3)计算情境偏置,使用改进的CAMF算法,根据公式(10)计算评估分数Pi,并生成TOP-N推荐列表。
(4)使用决策树算法对情境数据集LDOS-COMODA进行特征标签训练,得到用户在给定情境下的电影偏好。
(5)根据第3步得到的TOP-N推荐结果,集合决策树模型得到的用户在给定情境下的选择倾向,对TOP-N列表进行再次筛选,得到最终TOP-N推荐列表。
(6)算法效率验证。采用10折交叉验证法,分别计算协同过滤算法基本矩阵分解算法、Baseline预测算法和CAMF-CM混合算法的MAE均值,得到最终结果。
结束
CAMF-CM混合推荐算法实际是一个由粗到精筛选的过程,将改进的CAMF算法所生成的TOP-N推荐列表,结合分类模型训练得出的用户在特定情境下的观影倾向进行二次筛选,得到最终的推荐列表[13]。
-
本文所使用的数据集为LDOS-COMODA电影数据集,该数据集包含了用户对电影的评分和当时的情境信息,详细数据分布如表2所示。
表 2 LDOS-COMODA电影评分数据集描述
Table 2. LDOS-COMODA movie rating data set description
从LDOS-COMODA数据集中选取包含Time、Daytype、Location、Weather、Social、Mood、Endemo、Physical、Decision、Interaction;Age和Sex这12个情境变量作为参数进行实验。先对数据进行预处理,设定情境变量的值均为正整数,若有缺失值,用该项情境因素已有数据中的众数进行填充[14]。处理后的情境数据集内容描述如表3所示。
Projeet Description Time Morning(1) Afternoon(2) Evening(3) Night(4) Daytype Working day(1) Weekend(2) Holiday(3) Location Home(1) Public Place(2) Friend's house(3) Weather Sunny/clear(1) Rainy(2) Stormy(3) Snowy(4) Cloudy(5) Social Alone(1) My partner(2) Friends(3) Colleagues(4) Parents(5) Public Place(6) My family(7) Mood Positive(1) Neutral(2) Negative(3) Endemo Sad(1) Happy(2) Scared(3) Surprised(4) Angry(5) Disgusted(6) Neutral(7) Physical Healthy(1) Ill(2) Decision User's choice(1) Given by other(2) Interaction First(1) n-th(2) Age 1-18(1) 19-40(2) 41-60(3) 60-(4) Sex Male(1) Female(2) 表 3 情境要素描述
Table 3. Description of context elements
实验环境:
Windows 10操作系统,16 GB内存,Intel(R) Core(TM) i7-8700k CPU 3.70 GHz,编程语言采用Python3。
-
平均绝对误差(Mean Absolute Error)MAE和均方根误差(Root Mean Squared Error)RMSE是RS (Recommended System)领域常用的预测准确度的评估标准[15],本文采用MAE作为算法的评价指标,它表示预测值和观测值之间绝对误差的平均值,计算公式如下:
其中:N为测试集大小;Pi为预测评分;Ri为实际评分。MAE值越小,准确度越高,推荐质量越高。
-
为了得到精确的结果,采用10折交叉验证的方法进行实验。实验过程中,将数据集分为10份,根据不同的算法进行不同的配置。采用协同过滤算法进行实验时,取9份作为训练集,1份作为测试集。采用基本矩阵分解算法、Baseline预测算法和CAMF-CM混合推荐算法算法进行实验时,取8份作为训练集,1份作为测试集,1份作为验证集。每次实验结束后将样本进行轮换,取MAE均值作为最后结果。
-
对于协同过滤算法,将近邻数量k设置为5 ~ 50,取间隔为5,观察MAE均值的变化曲线,如图2所示。由图2可知,MAE均值在0.96 ~ 0.98间波动,当k=30时,MAE均值取得极小值,约为0.959,此时推荐效果最好。
-
对于基本矩阵分解算法,设定正则化系数λ和学习率
$\gamma $ 的取值为0.01 ~ 0.05,取0.01作为间隔进行实验。迭代数设置为100次,向量维度为10,实验结果如图3所示。可见当λ=0.03、γ=0.01时,MAE均值取得极小值,约为1.95,此时推荐效果最好。 -
对于Baseline预测算法,同样设定正则化系数λ和学习率
$ \gamma $ 的取值为0.01 ~ 0.05,取0.01作为间隔进行实验。迭代数设置为100次,向量维度为10,实验结果如图4所示。由图4可见,当λ=0.03且$ \gamma =0.04 $ 时,MAE均值取得极小值,约为0.806,此时推荐效果最好。 -
在CAMF-CM混合算法中,分类模型采用决策树模型进行训练,改进的CAMF算法中设定正则化系数λ和学习率
$ \gamma $ 的取值同样为0.01~0.05,取0.01作为间隔进行实验。迭代数设置为100次,向量维度为10,CAMF-CM混合模型在λ取0.04且$ \gamma =0.01$ 时,MAE均值最小,约为0.747,实验结果如图5所示。各种算法的MAE均值对比结果如图6所示。与其他3种算法相比,CAMF-CM混合算法的MAE均值最小,推荐结果更加精确。
-
在个性化影视推荐领域,如果能够融合用户特定的情境信息,对于提高推荐系统的准确率有着重大的影响,本文提出了一种融合了加入情境信息的矩阵分解算法和分类模型的混合推荐算法,通过实验结果表明,该混合算法相较于基于用户的协同过滤算法,基本矩阵分解算法、Baseline预测算法而言有着更高的准确率,由于实验中的数据集的情境信息数量有限,算法还需要进行进一步优化。混合算法的分类模型只使用了电影的类别,年份,总评分等标签信息,并且也没有对用户对电影评分的合理性进行分析,所以研究还可以进一步深入。在之后的研究中,可以对用户对电影的评分进行预处理,去掉数据集中明显不合理的评分,并且在矩阵分解算法的目标函数中,对每一个情境信息的合理权重进行进一步的分析,使情境权重能够根据用户自身评分特征进行变化,使算法更加高效和合理。在提高算法的性能上,还可以在算法上进行其他的一些优化,例如添加评分用户个人的信用权重,对同一电影在不同时期的评分进行分析处理等。
融合分类和情境偏好的矩阵分解电影推荐算法
Matrix Decomposition Movie Recommendation Algorithm by Combining Classification and Context Preference
-
摘要: 为提高个性化影视推荐的准确率,提出了一种融合了决策树模型和包含了用户情境信息的矩阵分解算法的混合推荐算法。通过融入了情境偏置的矩阵分解算法,得到初始的影视推荐列表,之后通过分类模型的训练,得出用户在特定情境下对电影类型的偏好。将初始推荐列表根据分类模型得出的用户特定情境下的偏好进行二次筛选,得到最终推荐结果。相较于传统的协同过滤算法、矩阵分解算法和Baseline算法,该混合推荐算法通过两层筛选的过程,推荐准确率得到了提高,提高了推荐系统的性能。Abstract: In order to improve the accuracy of personalized film and television recommendation, a hybrid recommendation algorithm CAMF-CM is proposed, which combines a decision tree model and a matrix decomposition algorithm containing user context information. A matrix decomposition algorithm that incorporates context preferences is used to obtain the initial movie recommendation list TOP-N. Then, a decision tree algorithm is used to perform feature label training on the context data set Ldos-Comoda to obtain the user's movie preferences in a given context. According to the TOP-N recommendation results obtained previously, the user's selection tendency in a given context is collected by the decision tree model, and the TOP-N list is filtered again to obtain the final TOP-N recommendation list. The method of verifying the efficiency of the algorithm is a ten-fold cross-validation method, which calculates the MAE mean of the collaborative filtering algorithm, the basic matrix decomposition algorithm, the Baseline prediction algorithm, and the CAMF-CM hybrid algorithm. The final result is obtained by comparing the size of the MAE mean. This method can solve the problem of the lack of interpretability of the results obtained by the traditional matrix factorization algorithm, and it can also solve the problem that the traditional recommendation algorithm does not consider the situation. After a comparative selection of decision tree models in the context data set LDOS-CoMoDa, compared with user-based collaborative filtering algorithms, basic matrix decomposition algorithms, and Baseline recommendation algorithms, the CAMF-CM recommendation algorithm has higher accuracy.
-
表 1 情境权重描述
Table 1. Description of context weights
Project Numbering Weight Project Numbering Weight Time g1 0.21 Endemo g7 0.03 Daytype g2 0.19 Physical g8 0.31 Location g3 0.07 Decision g9 0.07 Weather g4 0.33 Interaction g10 0.12 Social g5 0.11 Age g11 0.23 Mood g6 1 Sex g12 0.17 表 2 LDOS-COMODA电影评分数据集描述
Table 2. LDOS-COMODA movie rating data set description
表 3 情境要素描述
Table 3. Description of context elements
Projeet Description Time Morning(1) Afternoon(2) Evening(3) Night(4) Daytype Working day(1) Weekend(2) Holiday(3) Location Home(1) Public Place(2) Friend's house(3) Weather Sunny/clear(1) Rainy(2) Stormy(3) Snowy(4) Cloudy(5) Social Alone(1) My partner(2) Friends(3) Colleagues(4) Parents(5) Public Place(6) My family(7) Mood Positive(1) Neutral(2) Negative(3) Endemo Sad(1) Happy(2) Scared(3) Surprised(4) Angry(5) Disgusted(6) Neutral(7) Physical Healthy(1) Ill(2) Decision User's choice(1) Given by other(2) Interaction First(1) n-th(2) Age 1-18(1) 19-40(2) 41-60(3) 60-(4) Sex Male(1) Female(2) -
[1] BALTRUNAS L, LUDWIG B, RICCI F. Matrix factorization techniques for context aware recommendation[C]// Proceedings of the 2011 ACM Conference on Recommender Systems, RecSys 2011. Chicago, USA: ACM, 2011: 23-27. [2] 兰艳, 曹芳芳. 面向电影推荐的时间加权协同过滤算法的研究[J]. 计算机科学, 2017, 44(4): 295-301. doi: 10.11896/j.issn.1002-137X.2017.04.060
[3] 陈星, 黄志明, 叶心舒, 等. 智能家居情境感知服务的运行时建模与执行方法[J]. 软件学报, 2019, 30(11): 3297-3312.
[4] CAKIR O, ARAS M E. A recommendation engine by using association rules[J]. Procedia-Social and Behavioral Sciences, 2012, 62: 452-456. doi: 10.1016/j.sbspro.2012.09.074 [5] 郭娣, 赵海燕. 融合标签流行度和时间权重的矩阵分解推荐算法[J]. 小型微型计算机系统, 2016, 37(2): 293-297. doi: 10.3969/j.issn.1000-1220.2016.02.019
[6] KOREN Y. Factorization meets the neighborhood: A multifaceted collaborative filtering model[C]//Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. USA: ACM, 2008: 426-434. [7] 候营辉, 阳旺. 用户情境感知的流式移动应用推荐[J]. 计算机工程与应用, 2019, 55(11): 129-135. doi: 10.3778/j.issn.1002-8331.1802-0031
[8] WU X, CHENG B, CHEN J. Collaborative filtering service recommendation based on a novel similarity computation method[J]. IEEE Transactions on Services Computing, 2017, 10(3): 352-365. doi: 10.1109/TSC.2015.2479228 [9] FRÉMAL S, LECRON F. Weighting strategies for a recommender system using item clustering based on genres[J]. Expert Systems with Applications, 2017, 77: 105-113. doi: 10.1016/j.eswa.2017.01.031 [10] SALAKHUTDINOV R, MNIH A. Bayesian probabilistic matrix factorization using Markov chain Monte Carlo [C]// International Conference on Machine Learning. [s. l]: ACM, 2008: 880-887. [11] 张潇璐, 赵学敏, 刘璇. 基于情境感知的高校移动图书知识资源推荐研究[J]. 情报科学, 2020, 38(1): 48-52.
[12] 袁静. 国内外情景感知服务研究综述[J]. 国家图书馆学刊, 2018, 27(3): 41-49.
[13] 史海燕, 韩秀静. 情境感知推荐系统研究进展[J]. 情报科学, 2018, 36(7): 163-169.
[14] 杨东红, 吴邦安, 孙晓春. 基于机器学习的网络评论信息有用性预测模型研究[J]. 情报科学, 2019, 37(12): 34-39.
[15] KIM J, LEE D, CHUNG K Y. Item recommendation based on context-aware model for personalized u-healthcare service[J]. Multimedia Tools & Applications, 2014, 71(2): 855-872. -