APP下载

基于智能推荐的研究生选课系统研究

2021-12-03于源左景垠安瑛杨阳

教书育人·高教论坛 2021年11期

于源 左景垠 安瑛 杨阳

[摘    要]本文针对研究生选课过程中存在的问题,设计了基于智能推荐的研究生选课推荐系统。系统主要包括“先验”课程推荐、“后验”课程推荐和“智能”课程推荐。引入协同过滤推荐算法,系统可实现“智能”、个性化课程推荐。以机械工程专业的研究生选课为例,结合实例对比分析了基于项目和基于用户的协同过滤推荐算法的实现原理及其在研究生选课系统中算法的适用性。分析结果表明:在研究生选课推荐系统中,ItemCF算法比UserCF算法更能发挥优势,适用性更强。

[关键词]研究生选课;智能推荐;基于用户的协同过滤算法;基于项目的协同过滤算法

[中图分类号] G643         [文献标志码] A [文章编号] 1008-2549(2021) 11-0038-04

硕士研究生培养主要采取课程学习与科学研究并重的方式。随着高校教育体制的改革,研究生除了学习本专业的课程之外,还可以根据兴趣和自身发展需要选择与专业相关度较低的非学位课程,有助于激发学生学习热情,使其发展成为社会所需的复合型人才。[1]但是,由于导师选课指导的缺位、学生选课的盲目性和选课管理制度不健全等原因,许多刚入学的研究生对自己的课程和学习情况不甚了解,不清楚如何选择适合自己的课程。[2-5]他们往往根据自己对课程的主观判断或者根据往届研究生的建议进行选课,导致选课存在一定随意性,不仅浪费教育资源,而且无法达到研究生综合素质培养目标。针对上述情况,本文引入智能推荐算法,对具有基本信息管理功能的研究生选课系统进行研究和改进。在挖掘往年学生选课行为数据的基础上,通过协同过滤推荐算法探究课程之间的关联度并得到个性化推荐课程列表,在一定程度上对研究生选课提供了有效指导和个性化培养方案。

一、研究生选课智能推荐系统的功能设计

“智能推荐”是研究生选课系统的核心功能,在课程基本信息管理基础上,具备课程推荐的特点,其功能分为“课程推荐”“选课指导”和“个性化推荐”三个模块。“课程推荐”是系统依照研究生的研究方向,采用既定的培养方案进行的推荐,属于“先验”推荐;“选课指导”是系统通过研究生对课程的反馈及选课热度进行的推荐,属于“后验”推荐;“个性化推荐”是基于智能算法挖掘研究生的爱好和需求,推荐学生可能会感兴趣的课程,属于“智能”推荐。

通过该系统多维度、多功能组合的融合推荐,研究生可以深入了解本专业课程设置以及相关课程的历年选课情况,并据此选择既满足研究方向又兼顾个人兴趣的课程。研究生选课智能推荐系统的选课流程如图1所示。

(一)“课程推荐”功能模块

在“课程推荐”功能模块中,系统将根据研究生输入的研究方向通过模糊查詢的方法搜索出对应专业,再根据该专业培养方案中的培养计划和培养目标为研究生推荐与其研究方向匹配的课程列表。我国各高等院校制定的研究生培养方案是进行人才培养的指导性文件,其中对课程分类、课程体系设置、课程教学要求以及课程学分和学时安排等进行了较为系统的规划。根据研究生在选课系统中输入的研究方向,以研究生培养方案为依据进行课程推荐后,推荐的课程将自动显示在列表中,其作为“先验”推荐给出较为宽泛的研究生选课参考,适应大部分研究生学业及未来职业发展的需求。

(二)“选课指导”功能模块

在“选课指导”功能模块中,系统可向研究生展示相关专业课程的立体化信息,对课程特征进行深入的描述,不仅细致介绍课程所属类别、知识梗概和教学目标,也可满足学生关注的问题,如“课程课时数”“历史课程作业量”“实践教学比”“考试成绩均分”“教师教学经历”“教师授课风格”等。除此之外,系统具有大数据分析功能,基于历届研究生对课程的评价信息,计算出课程喜爱度指标。分值越高表示课程越受到学生欢迎,即选课热度更高。在学生输入课程名称或关键字之后,系统按照选课热度的高低将课程排列到列表中。

(三)“个性化推荐”功能模块

在个性化推荐功能模块中引入“协同过滤推荐算法”,即基于学生选课历史记录,通过挖掘学生的喜好和需求,基于学生不同偏好对其进行群组划分并向学生推荐课程,实现智能的、个性化的课程推荐。个性化推荐功能模块的优势在于生成的结果更加符合用户的个性化需求,更加符合用户的兴趣爱好,为学生制定个性化选课方案,属于一对一式信息推荐服务,可极大减少用户搜索相关信息所耗费的精力和成本。

二、基于协同过滤推荐算法的个性化课程推荐

推荐算法可以分为基于协同过滤的推荐、基于内容的推荐、基于知识的推荐和组合推荐等。[6]协同过滤是一种应用广泛的推荐算法,主要功能是预测和推荐,协同过滤推荐算法主要分为两类,即基于用户的协同过滤算法(user-based collaborative filtering, UserCF)和基于项目的协同过滤算法(item-based collaborative filtering, ItemCF)。这两种类型的协同过滤算法均不需要和目标用户进行直接交流,也不需要通过填写调查问卷等烦琐的方式搜集用户信息,而是通过相似用户的兴趣和需求挖掘目标用户的兴趣。由于大多数研究生并不清楚所选课程内容是否适合自己需求、自己是否对所选的课程感兴趣以及此课程是否能让自己的能力得到提升。因此,通过协同过滤算法为研究生智能推荐课程是完善研究生选课系统功能的有效途径。本文以机械工程专业的研究生选课为例,分别使用基于用户的协同过滤算法和基于项目的协同过滤算法得到向学生推荐的课程列表,并且比较了两种算法在研究生智能选课推荐系统中的适用性。

(一)基于用户的课程推荐

基于用户的课程推荐是以发展规划以及兴趣爱好相似的学生对课程的需求也相似作为前提。基于用户的课程推荐算法通过计算各用户之间的相似度,自动为目标用户推荐课表。在本系统中,基于用户的协同过滤算法主要包括两个步骤:1.找到所有与目标用户具有类似兴趣的学生列表;2.根据相似用户列表,挖掘目标用户没有选择的课程并加以推荐。以研究生A、B和C的选课情况为例对此算法加以说明。N(u)表示研究生A已经选择的课程集合,令N(ν)为研究生B已经选择的课程集合。学生A与学生B的相似度Wuser-AB的计算公式如式(1)所示。

假设学生A选择了“应用数理统计”“数值分析”“振动学”3门课程,学生B选择了“应用数理统计”“高分子材料”“最优化方法”3门课程,学生A和B之间的相似度为       即0.33。假设学生C选择了“数值分析”“最优化方法”2门课程,学生A和C之间的相似度为        即0.41。可以看出,随着选课系统用户的增加,学生相似度矩阵规模激增,用户相似度矩阵的计算负担也会急剧增加,给选课系统维护带来一定困难。

在计算出学生选课相似度的基础上,需要计算出学生对未选课程的兴趣度,其中学生选择了某门课程,则对该门课程的兴趣度为1,否则为0。例如,学生B和C均选择了“最优化方法”,其对“最优化方法”的兴趣度为1。学生A 并未选择课程“最优化方法”,可以计算出A对“最优化方法”的兴趣度为:Wuser-AB×1+ Wuser-AC×1=0.74。以此类推,计算出学生与其他所有学生的相似度,并在其基础上计算该生对所有未选课程的兴趣度后,按照该生兴趣度从高到低的原则对课程进行排序,得到向该生推荐的课程列表。需要指出的是随着系统中学生数量增加,累加得到的学生对某门课程的兴趣度数值也会增大。例如:系统计算得到某机械工程专业研究生对“先进制造理论与技术”的兴趣度为209.89,对“流体机械课程”的兴趣度是200.63,对“最优化方法”的兴趣度是193.07,对“研究生的压力应对与心理健康”的兴趣度是204.48,对“机械现代设计理论及方法”的兴趣度是201.08,对“弹性力学”的兴趣度是197.99,对“高聚物成型加工理论及设备”的兴趣度是278.85,对“数值分析”的兴趣度是202.73。系统自动对课程兴趣度进行排序,为该生智能推荐兴趣度排名靠前的课程:“高聚物成型加工理论及设备”(278.85)、“先进制造理论与技术”(209.89)、“研究生的压力应对与心理健康”(204.48)、“数值分析”(202.73)、“机械现代设计理论及方法”(201.08)。

(二)基于项目的课程推荐

用户相似度矩阵的计算会随着用户数量增多而倍增。而基于项目的协同过滤推荐算法可以解决这个问题,其中的“项目”即为“课程”,即给学生推荐那些和他们之前选择的课程相似的课程。在本系统中,基于项目的协同过滤算法主要包括以下两个步骤:1.计算课程之间的相似度;2.根据学生的历史行为和课程相似度生成课程推荐列表。以课程a和b为例对此算法加以说明。N(i)表示课程a选课用户集合,令N(j)表示课程b选课用户集合。课程a和b的余弦相似度Witem-ab的计算公式如式(2)所示。

假设课程a“数值分析”被5个学生选过,课程b“最优化方法”被4个学生选过,其中学生A和B都选了课程a“数值分析”和课程b“最优化方法”。课程a和b之间的相似度为          即0.45。在计算出课程相似度的基础上,需要计算学生对未选课程的兴趣度,其中学生已经选择了某门课程则对该门课程的兴趣度为1,否则为0。例如,学生A选择了“数值分析”“最优化方法”两门课程,则该生对“数值分析”“最优化方法”课程的興趣度为1。根据课程之间相似度,系统可自动搜索出分别与它们相似度最高的3门课程,如图2所示。系统搜索出“数值分析”“弹性力学”“高等流体力学”与“振动学”的相似度最高,“最优化方法”与“高等流体力学”“有限元法及其应用”和“流体机械”的相似度最高。在其基础上,计算得到该生对于未选课程兴趣度。例如:学生对“高等流体力学”的兴趣度为:1.0×0.4+1.0×0.5=0.9;对“有限元法及其应用”的兴趣度为:1.0×0.5=0.5。以此类推,计算出学生对所有未选课程的兴趣度后,按照兴趣度从高到低的原则对课程进行排序,得到向该生推荐的课程列表。学生选择的课程数目增大,累加得到的学生对某门课程的兴趣度数值也会增大。例如:系统计算得到某机械工程专业研究生对未选课程兴趣度分别为:“先进制造理论与技术”:11.51;“弹性力学”:11.02;“高聚物成型加工理论及设备”:13.05;“最优化方法”:11.06;“机械现代设计理论及方法”:11.12;“流体机械”:11.03;“数值分析”:11.10;“研究生的压力应对与心理健康”:11.15。系统自动对课程兴趣度进行排序,为该生智能推荐兴趣度排名靠前的课程:“高聚物成型加工理论及设备”:13.05;“先进制造理论与技术”:11.51;“研究生的压力应对与心理健康”:11.15。

(三)研究生选课系统中两种协同过滤算法的适用性

ItemCF算法计算的是课程相似度矩阵,高校研究生培养方案相对比较固定,课程数目一般几十门左右,课程相似度矩阵比较固定,因此维护成本较低;而UserCF算法计算的是用户相似度矩阵,随着研究生数量逐渐增加,选课系统用户数量急剧增加,用户数量远远大于课程数量,很显然,维护学生相似度矩阵的成本更高。从存储的角度来讲,UserCF需要消耗更大的空间复杂度。此外,ItemCF是根据用户历史选课行为推荐相似课程,更注重个性化推荐,而UserCF是推荐用户同学们关注的热门课程,更注重社会化。比如系统给用户推荐一门课程,给出的推荐理由是某某学生和你有相似兴趣,他选了这门课程,这较难让用户信服,因为用户有可能不认识那个和自己有相同兴趣的人;但是如果给出的理由是因为这门课程和你所选的课程比较相似,这样的解释相对更合理,增加用户对推荐系统的信任度,所以在研究生选课推荐系统中,ItemCF算法比UserCF算法更能发挥优势,适用性更强。

针对研究生课程信息管理系统存在的问题,引入智能推荐算法,赋予研究生选课系统智能推荐课程的功能。具体包括:根据研究生的研究方向,根据既定的培养方案进行课程推荐,即“先验”推荐;根据研究生对课程的反馈及选课热度进行课程推荐,即“后验”推荐;基于智能算法挖掘研究生的爱好和需求,利用协同过滤推荐算法,推荐学生可能感兴趣的课程,即“智能”推荐。此外,结合实例对比分析了基于项目和基于用户的协同过滤推荐算法的实现原理及在研究生选课系统中算法的适用性。分析结果表明:在研究生选课推荐系统中,ItemCF算法比UserCF算法更能发挥优势,适用性更强。

参考文献:

[1]赵振宇.财经类院校学生个性化选课系统的设计与实现[D].成都:电子科技大学,2013.

[2]梁晶晶.研究生选课的突出特征、影响因素及优化对策[J].教书育人:高教论坛,2018,06:76-78.

[3]王夙娟.研究生选课与研究课题相关性的研究[J].电子技术,2012,39(8): 87-89.

[4]叶友林,于洋,寇福生.基于Web技术的研究生选课模式研究[J].当代教育实践与教学研究,2015(9): 252-253.

[5]郝秦霞.基于R2指标的高维多目标差分进化推荐式课程系统[J].计算机应用,2020,40(10):2951-2959.

[6]黄美灵.推荐系统算法实践[M].北京:电子工业出版社,2019.

(责任编辑:刘洁)