本发明涉及在线学习中课程视频推荐的技术领域,具体涉及一种在线学习中基于降噪自编码器混合模型的课程视频推荐算法。
背景技术
近年来,随着在线学习的快速发展,课程视频的推荐在帮助人们克服信息过载方面扮演着越来越重要的角色,如何对用户偏好进行准确建模并向其推荐感兴趣的课程视频是一个热点技术问题。
混合推荐是在线学习中课程视频推荐的一种重要方法,但是,大多数的混合推荐算法依赖于手工特征提取,导致有些复杂的属性及属性之间的相关关系难以处理,这样不仅浪费大量时间在特征提取上,而且提取出的特征很可能是不准确的,这是现有在线学习中课程视频混合推荐算法的一个不足。
此外,大多数的混合推荐算法都是对多种推荐算法的结果进行简单的线性加权求和,导致推荐的准确度不够高,这是现有在线学习中课程视频混合推荐算法的另一个不足。
技术实现要素:
针对现有在线学习中课程视频推荐算法的不足,本发明提供了一种在线学习中基于降噪自编码器混合模型的课程视频推荐算法,该算法包含基于降噪自编码器的用户特征提取算法与课程视频特征提取算法、自适应矩阵分解模型的评分预测算法两个部分,其中本发明提供的基于降噪自编码器的特征提取算法能够自动从历史评分和属性信息中提取出用户和课程视频的有效特征,避免了手工提取特征的繁琐流程;本发明提供的自适应矩阵分解模型的评分预测算法将降噪自编码器提取的用户和课程视频特征融入矩阵分解之中,建立内容信息和用户—课程视频评分矩阵的非线性交互关系,与现有的课程视频推荐算法相比能够得到更高的推荐准确度。
本发明的特征在于包含以下内容:
1、一种基于降噪自编码器的混合模型的课程视频推荐算法
该算法包含基于降噪自编码器的用户特征提取算法和课程视频特征提取算法、自适应矩阵分解模型的评分预测算法两个部分,见图1。
2、基于降噪自编码器的用户特征提取算法和课程视频特征提取算法
为了解决手工提取特征较繁琐的问题,本发明提供了基于降噪自编码器的特征提取算法,该特征提取算法又分为对用户特征的提取算法和对课程视频特征的提取算法。当提取用户特征时,见图5,降噪自编码器的输入对应于用户的历史评分记录和用户属性信息的噪声版本,经过训练,可获得用户的隐含层特征表示;当提取课程视频特征时,见图6,降噪自编码器的输入对应于课程视频的历史评分记录和课程视频属性信息的噪声版本,最终可获得课程视频的隐含层特征表示。
3、自适应矩阵分解模型的评分预测算法
在得到降噪自编码器提取的用户特征和课程视频特征后,本发明提供了自适应矩阵分解模型的评分预测算法,见图4。该算法首先将降噪自编码器提取的用户特征和课程视频特征嵌入到矩阵分解的低维矩阵当中,建立新的评分预测公式,具体表达式见公式(1);基于该公式建立损失函数,具体表达式见公式(2);然后利用该损失函数对各个参数求梯度,具体表达式见公式(3)、公式(4)、公式(5)、公式(6)、公式(7)和公式(8);采用随机梯度下降算法更新参数,具体表达式见公式(9)、公式(10)、公式(11)、公式(12)、公式(13)和公式(14);最后根据对课程视频的预测评分,为每个用户提供一个课程视频推荐列表。
附图说明
图1是本发明提供的一种在线学习中基于降噪自编码器混合模型的课程视频推荐算法的流程图。
图2是图1中s1的流程图。
图3是图1中s2的流程图。
图4是图1中s3的流程图。
图5是降噪自编码器提取用户特征的神经网络结构图。
图6是降噪自编码器提取课程视频特征的神经网络结构图。
本发明所用到的符号说明:
n-用户数
m-课程视频数
k-隐特征向量的维度
γ-学习率
λ-正则项
τ-迭代阈值
p-用户属性特征的维度
q-课程视频属性特征的维度
具体实施方式
下面结合附图,对本发明的具体实施方式做详细说明。
本发明公开了一种在线学习中基于降噪自编码器混合模型的课程视频推荐算法,该算法包含基于降噪自编码器的用户特征提取算法和课程视频特征提取算法、自适应矩阵分解模型的评分预测算法两个部分。
基于降噪自编码器的混合模型的课程视频推荐算法整体流程图如图1所示。一、初始化
本部分对应图1中的s1,详细流程图见图2。
s1:初始化
s1.1:初始化参数集
1)根据实际数据集对用户数n和课程视频数m进行赋值。
2)该算法的使用者指定编码特征向量维度k、学习率γ、正则项系数λ和迭代阈值τ。
3)随机初始化缩放系数αu和αi、偏移向量∈u和∈i,将偏差项bu和bi都置为0。
s1.2:初始化评分列表和属性列表
以n行m列的矩阵r=(rui)表示第u个用户对第i部课程视频的评分值,其中u∈{1,2,3,…,n},i∈{1,2,3,…,m}。以矩阵r的行为主,得到用户的评分列表
s1.3:初始化用户-课程视频评分的三元组
用三元组t=<u,i,r>表示用户对课程视频的评分信息;u表示用户集,且|u|=n,i表示课程视频集,且|i|=m,r表示评分信息矩阵。
二、特征提取
本部分对应图1中的s2,具体流程图见图3。
s2:基于降噪自编码器的特征提取算法
s2.1:提取用户特征
1)遍历所有用户并获取每个用户的评分列表
2)对降噪自编码器的输入数据加上随机噪声,得到损坏版本
3)利用函数
4)自编码器训练结束后,经过编码函数udae*(su,xu)=fu(wu·su+vu·xu+bu)得到用户的隐含层特征表示。
s2.2:提取课程视频特征
1)遍历所有课程视频并获取每部课程视频的评分列表
2)对自编码器的输入数据加上随机噪声,得到损坏版本
3)利用函数
4)自编码器训练结束后,经过编码函数idea*(si,yi)=fi(wi·si+vi·yi+bi)得到课程视频的隐含层特征表示。
三、自适应矩阵分解
本部分对应图1中的s3,具体流程图见图4。
s3:自适应矩阵分解的评分预测算法
s3.1:建立评分预测公式:
式(1)中,
s3.2:建立评分预测的损失函数l:
式(2)中,rui是用户u对课程视频i的真实评分;iui是一个指示函数,当rui=0时,即用户u对课程视频i没有评分,则iui=0;否则iui=1;λ表示正则项系数;freg=αu2+αi2+bu2+bi2+‖∈u‖2+‖∈i‖2,这里加入正则项的目的是为了防止过拟合。
s3.3:初始化迭代次数z=1
s3.4:利用下面6个公式获得第z次迭代的6个参数的梯度值:
s3.5:采用随机梯度下降算法(sgd)进行参数更新
式(9)到式(14)中,γ表示学习率。
s3.6:将z+1赋值给z,判断z≤τ是否成立;若成立,则转到步骤4执行;否则,转到步骤7执行;其中τ表示迭代次数的阈值。
s3.7:获取每个用户评分预测最高的前k部课程视频,构成用户的课程视频推荐列表。
1)根据式(1)的公式计算第u个用户对第i部课程视频(i=1,2,…,m)的评分预测
2)对每个用户u(u=1,2,…,n),采用1)的方法得到所有用户的课程视频推荐列表。