基于协同过滤算法的学生选课偏好研究
——以河北北方学院为例
2021-12-28刘志媛张艺璇
刘志媛,王 飞,张艺璇
(1.河北北方学院 理学院,河北 张家口 075000;2.河北北方学院 经济管理学院,河北 张家口 075000)
0 引 言
推荐系统以用户行为数据为基础,综合利用数学建模、统计检验和机器学习等技术手段,对数据蕴含的结构特征进行深度挖掘与提取,实现对用户属性特征、行为特征和偏好特征的全方位刻画,形成用户画像,并最终达到对不同用户进行个性化智能推荐的目的。在实际应用中,推荐系统在社交网络、电商销售、搜索引擎等领域的应用取得了巨大成功,它通过提高产品服务质量,给产品供给方产生了巨大的经济效益。同时,推荐系统的应用也提高了使用者的满意度和用户体验。因而从福利经济学的角度讲,推荐系统的应用具有改善社会福利水平的作用[1-2]。目前,高等教育教学改革是高等院校的一个长期工作重点,然而,推荐系统在高等教育特别是学生选课方面的应用存在明显不足。研究推荐系统在高校学生选课方面的应用,对于提高高等院校的教育教学质量,提升高校的学生服务质量和人才培养质量,具有重要意义[3-4]。
关于推荐系统的应用与研究,可以追溯到20世纪90年代。根据切入点的不同,推荐系统可以基于内容、效用和协同过滤等方面进行个性化推荐。考虑到大学生往往自我认知能力有限,且对专业兴趣和就业能力要求把握不准,以及基于协同过滤在处理非结构化对象和共享他人经验等方面的优势,本文以主流推荐系统为基础,构建一个基于item协同过滤算法的学生选课推荐系统[5-6]。
最终,本研究成功构建了一个基于item协同过滤算法的学生选课推荐系统,并用编程语言进行了算法实践。同时,本研究在全校范围内抽选了2个专业共计60名同学进行了系统试用,并调查了相关学生的使用反馈。结果显示,56名同学对课程推荐结果十分满意,4名同学比较满意。这表明,基于item协同过滤算法的学生选课推荐算法,可以在一定程度上挖掘学生的学习潜力和兴趣爱好等特征,有助于识别学生的选课偏好,存在可以进一步推广的潜力。构建基于该算法的学生选课推荐系统,有助于提高学生在选课方面的效率,也有助于提升学校在教学方管理方面的能力。
1 学生选课推荐算法理论
协同过滤是在海量数据中挖掘出小部分与指定学生课程偏好类似的学生,之后指定这些类似学生成为近邻学生,然后把近邻学生喜欢的课程组织成一个按照被偏好程度排序的目录,最后根据类似学生的课程偏好排序给指定学生推荐课程[7]。
基于协同过滤的推荐算法以个体行为特征相似性度量为基础,通过计算指定新样本(学生)与数据库中原有样本之间的相似性,对新样本进行聚类,找出原有样本中与新样本在行为特征方面较为相似的个体,并将其作为近邻样本(近邻学生)。之后,生成近邻样本的选课集,并按照偏好评分对选课集进行排序。最终,基于新样本与近邻学生的相似度以及近邻学生的选课偏好,对学生进行选课推荐。需要解决的重要问题有:
一是如何通过行为数据计算学生之间的相似度,并要求该相似度能够反映学生的兴趣爱好和学习特长。
二是在确定了新样本的近邻学生后,如何确定基于近邻学生选课记录的推荐课程被选集。
1.1 相似性度量方法
样本间的相似性度量是聚类分析的基础。在做分类时,通常将一个样本视为n维欧式空间中的1个向量,因此,可以从以下2个角度对n维欧式空间中2个向量的相似性进行度量。一是从向量距离的角度,二是从向量夹角的角度。特别地,由于高维空间中的欧式距离仍然满足距离的三角不等式,因此,欧式距离是度量高维空间中向量距离的最常用方法。考虑到样本相似性度量并不是向量距离的简单计算,并且不同的数据类型需要使用不同的相似性度量方法,本文在此对相似度量的主要方法进行简要梳理[8]。
(1)欧氏距离(Euclidean distance)度量法
在高维空间中,欧式距离是最贴近三维空间中距离直观含义的对向量空间中点的距离的一种度量方法。通过引入欧式距离概念,向量空间就有了长度和角度的概念。假设样本x和y是n(n≥1)维欧式空间里的2个点,其中
x=[x1,x2,x3,…,xn]T
(1)
y=[y1,y2,y3,…,yn]T
(2)
则欧氏距离计算公式如下:
(3)
(2)曼哈顿距离(Manhattan distance)度量法
曼哈顿距离也称为城市街区距离(city block distance)。假设样本x和y是n(n≥1)维空间里的2个点,得到式(1)、(2),则曼哈顿距离计算公式如下
(4)
(3)切比雪夫距离(Chebyshev distance)度量法
切比雪夫距离也是定义向量空间中点距离的一种重要度量方法,该方法取分量维度上距离的最大值作为切比雪夫距离。具体地,假设样本x和y是n(n≥1)维空间里的2个点,得到式(1)、(2),则切比雪夫距离计算公式如下
(5)
(4)闵可夫斯基距离(Minkowski distance)度量法
闵氏距离有时也指时空间隔,为俄裔德国数学家闵可夫斯基(H.Minkowski,1864—1909)最先表述。假设样本x和y是n(n≥1)维空间里的2个点,得到式(1)、(2),则闵可夫斯基距离计算公式如下
(6)
从计算公式看,闵氏距离将分量视为服从同分布,同时也不考虑分量在量纲上的差异。
(5)标准化欧氏距离(standardized Euclidean distance)度量法
与闵氏距离类似,简单欧氏距离同样存在将分量视为服从同分布的问题,也忽略了分量在均值和方差等方面的差异。通过先对分量做标准化处理,再计算欧式距离,就得到了一种改进的标准化欧式距离。假设样本x和y是n(n≥1)维空间里的2个点,得到式(1)、(2),则标准化欧氏距离计算公式如下
(7)
(6)夹角余弦(cosine)度量法
夹角余弦值是从方向角度对样本点相似性的一种度量,并在诸多领域被广泛使用。假设样本x和y是n(n≥1)维空间里的两个点,得到式(1)、(2),则向量夹角余弦计算公式如下
(8)
从上式看,向量夹角余弦值的绝对值小于等于1,其大小可以反应两个向量的相似性,值越大表明2个向量的相似度越高。而且,向量夹角余弦值为正,表明2个向量具有同向关系,反之,则表明2个向量具有负向关系。综合考虑有关相似性度量方法,以及本文的研究需要,在计算学生的相似性时,本文采用基于向量夹角余弦值的相似性度量方法。
1.2 基于学生的协同过滤
在推荐系统中,本研究选择了50个高年级学生及其前一年的的选课记录作为基础样本,并参考夹角余弦相似性度量法,计算同学之间的相似度[9]。为了便于分析,此处以7名同学为例,介绍学生的协同过滤过程。假设有A、B、C、D、E、F和G,7位同学,在a、b、c、d和e,5门课程中选择自己想要选修的课程,其选课情况如下。
图1 样本学生选课列表
基于以上同学选课情况及夹角余弦相似性度量法,计算学生之间的相似性。例如:
A和B之间的相似度为
(9)
A和C之间的相似度为
(10)
考虑到上述算法需要计算指定样本(学生)到其他任意样本之间的相似度,为了提高算法的计算效率,提出如下改进方案:
第一步:建立课程到学生的倒查表;
第二步:基于倒查表,建立学生的同现矩阵。
根据样本中每门课程的被选情况,建立如图2所示的倒查表。
图2 样本学生选课倒查表
基于图2的倒查表,生成不同学生的同现矩阵,结果见表1。
表1 样本学生的同现矩阵
将上述同现表进行归一化,结果见表2。
表2 样本学生同现矩阵的归一化矩阵
通过以上数据,可以计算A同学选择c和d课程的概率分别是
P(A,c)=WAC*P(AC)+WAE*P(AE)=0.067
(11)
P(A,d)=WAB*P(AB)+WAE*P(AE)+WAF*P(AF)+WAG*P(AG)=0.30
(12)
1.3 基于课程的协同过滤
基于协同过滤设计推荐系统时,不仅需要基于行为数据找出指定学生的近邻学生,还需要对课程的相似性进行评估。在评估课程相似性时,本算法是利用学生对课程的评分来评估不同课程之间的相似。旨在展示算法流程,此处仍基于A、B、C、D、E、F和G,7位同学,在a、b、c、d和e,5门课程中的选课记录进行分析,其选课情况见图3。
图3 样本学生选课记录
类似于对学生的分析,首先构建课程的同现矩阵,具体结果见表3。
然后,对课程的同现矩阵进行归一化处理。其公式如下
(13)
处理后的结果见表4。
表4 课程同现矩阵的归一化矩阵
接着,建立学生对课程的评分矩阵。出于简单考虑,此处假设学生对未选课程的评分为0,对已选课程的评分为1,得到不同学生对不同课程的评分结果如下。
图4 样本学生课程评分
在得到学生对课程的评分,以及课程之间的相似度之后,估算学生u对备选课程o的偏好程度。公式如下
(14)
公式(14)中,度量的是学生u对课程o的偏好程度,计算出指定学生对所有备选课程的偏好程度是构建学生选课推荐系统的基础。另外,公式中C(0,N)表示和备选课程o相似的课程的集合,wu,i代表备选课程o和课程i之间的相似度,而pu,i则是基于近邻学生计算的学生u对课程i的偏好程度。
2 学生选课推荐算法流程及编程实现
2.1 算法逻辑与主要模块
基于协同过滤算法的学生选课推荐系统的逻辑是,首先基于学生历史选课数据,评估学生库中样本学生与新样本学生的相似性,并通过设定相似度阈值筛选出近邻学生,之后根据近邻学生的选课偏好和课程相似度,对新样本学生进行选课推荐[10]。该算法的主要模块有
模块一:寻找近邻学生
以学生选课数据为基础,利用聚类分析方法,通过计算对比学生之间的相似性,寻找指定学生的近邻学生集。
模块二:课程相似性度量
根据学生选课历史数据库,通过建立倒查表和同现矩阵,评估不同课程之间的相似性。
模块三:课程评分
基于学生对课程的打分,建立课程评分。虽然学生对课程的主观打分能较好地反应学生对不同课程的偏好程度,但为了减少数据搜集难度以及提高可操作性,在推荐系统构建初期可以假定如果学生选了该课程则评分为1,否则为0。
模块四:个性化推荐
在近邻学生寻常、课程相似度计算以及课程评分的基础上,同时考虑学生相似性和课程相似性,根据近邻学生的选课偏好进行个性化推荐。
2.2 选课推荐结果
本研究选取了60位学生进行系统使用,表5给出部分同学基于协同过滤算法的课程推荐结果作为示例。
表5 课程信息
程序运行结果如图5~6所示。
图5 试用同学1
图6 试用同学2
3 结 论
本文以学生选课历史数据为基础,使用协同过滤算法对学生的选课偏好进行研究,并基于该算法建立了一个大学选课推荐系统。从实验效果看,使用协同过滤算法,能够对学生的属性特征、行为特征和偏好特征进行挖掘和提取,有助于解决大学生在选课时存在的随意性和盲目性问题,同时能够提高学校在教育教学方面的管理效率。特别地,本文研究表明,基于协同过滤算法的学生选课推荐系统,更够更好地平衡学生特征和课程特征之间的关系,有助于实现学生学习能力与课程要求、学生选课偏好与课程特征以及学生能力培养与职业要求之间的优化匹配。