法律状态公告日
法律状态信息
法律状态
2023-02-28
未缴年费专利权终止 IPC(主分类):G06Q50/20 专利号:ZL2015100906383 申请日:20150228 授权公告日:20171003
专利权的终止
2017-10-03
授权
授权
2015-07-01
实质审查的生效 IPC(主分类):G06Q50/20 申请日:20150228
实质审查的生效
2015-06-03
公开
公开
技术领域
本发明涉及一种推荐方法及系统,尤其是一种基于学生属性的课程推荐方法及系统。
背景技术
随着互联网技术的高速发展,信息过载问题亟须解决。用户希望从海量信息中快速准确 的获取所需信息,信息创造者则希望其信息能够在海量数据中被迅速发掘并应用。在此情况 下,互联网的技术从最初的分类目录到搜索引擎再到推荐引擎,在电子商务中得到了快速发 展,其中推荐引擎是近些年学术界和产业界研究的重点,推荐引擎实现了用户与信息间的主 动交互,通过用户行为和特征“猜测”用户感兴趣的内容并进行推荐,是一种根据不同用户的 特点进行推荐的个性化服务。
首先关注学生在常规选课系统中如何实现选课,一般来说,学生根据学校的培养手册计 算本学期所需学分,根据学分要求分类,针对不同的课程类别分别选择课程,例如本学期计 划选择4学分的通选课,然后开始浏览,关注课程类型、授课教师、学分、学时、上课时间 等课程因素,找到符合自己要求的课程进行选择,选择后选课系统会提示是否符合选课条件 (如有某种先行课的要求或有专业限制要求等)、上课时间与本学期的必修课或已选课程是 否冲突。如果选课失败,学生需要重新去浏览其他通选课程。这里提出的问题是学生在有一 定限制(学分和课程类型限制)的情况下,面对信息过载(几千门可选课程)所采用的常规 措施。在此过程中学生已经根据自身特点进行了一定的分类,但是这种简单的分类并没有明 确学生的需求,有些学生面对众多课程甚至无法通过关键字来搜索自己可能感兴趣的方向, 需要人或工具来帮助他做出筛选,给出建议供其选择,事实上大部分学生也确实这样做了— —通过询问身边同学或学长随便选择一些课程以满足学分要求。这样做导致的主要弊端有 二:学生不能根据个人情况私人定制自己的学习计划(如爱好、实力、当前学业进展等); 某些精品课程由于知选课人数较少最终停开,浪费教学资源。学生也不能时时刻刻都去咨询 “前辈”,所以,一个个性化的课程推荐系统显得尤为重要。
除常规选课系统出现的上述问题外,在选课过程中,学生从大量开设的课程中找到符合 自己要求的课程也是一件非常困难的事情,因为学生大部分情况下没有特别明确的需求,无 法通过关键字搜索进行查询,因此各种课程想要更加突出自己的特点让学生去关注,让学生 更好的利用教学资源,也是一件非常困难的事情。推荐系统的基本任务就是解决这个矛盾 的,常规选课系统的课程推荐引擎一方面让学生更了解自身特点挖掘适合的课程,另一方面 让学校的教学资源得到充分的展示,实现学校、学生共赢的局面。如图1所示是课程推荐引 擎的基本任务图——联系学生和课程,解决课程信息过载的问题。
申请号为200910080946.2的专利申请公开了一种基于客户特征的协同过滤推荐方法和 系统;申请号为201180071727.3的专利申请公开了一种用于提供基于特征的协同过滤的方 法和装置;申请号为201310094323.7的专利申请公开了一种基于兴趣图谱的推荐引擎;申 请号为201310443008.0的专利申请公开了一种基于电子商务平台的保险推荐系统框架及保 险推荐方法;申请号为201410196044.6的专利申请公开了一种基于产品相似度的电子商务 推荐系统及其方法;但是上述系统或方法均属于商品推荐,以商品为研究对象,并不能直接 运用于课程推荐;因为课程推荐与商品推荐相比有许多独特的地方:
1)推荐目标不同。商品推荐的目的是尽可能的推广商品,只要能获取利润,不用 考虑商品资源平衡、商品类型等因素。而课程推荐从宏观上讲,其目的是促进优质教育资源 普及共享,提高教育质量、促进教育公平、构建学习型社会和人力资源强国;从学校角度, 推荐的目的是使更多的课程被学生知晓,甚至面向社会,发挥教育资源最大的作用,为学生 提供更大的便利;从学生角度,推荐的目的是使学生全面了解学校资源,更好的统筹规划自 己的培养计划,更多的体验自己感兴趣的课程,最终成为全面发展人才。综合来讲,课程推 荐的目的是使每位学生都明确适合自己的培养方案并选择自己感兴趣、有价值的课程;使学 校的教学资源得到更合理的利用。
2)“马太效应”。选课系统在消除“马太效应”上的要求比电子商务中的商品推荐具有 更高的要求,研究表明推荐系统是具有一定马太效应的。在电子商务中的商品推荐系统中, 一定的马太效应对推荐的效果并不一定完全有害,比如在某个时段流行的商品或者歌曲在很 大程度上大部分人都会喜欢,这个时候把这件商品或者歌曲推荐给每个用户也不会有很大的 问题,这种情况下马太效应反而会给电子商务网站带来很大的收益。但是选课系统的要求则 完全不同,选课系统要求完全消除马太效应,某门课的选课人数是有上限的,不可能给每个 人都推荐同一门课程。如果选课人数达到上限,推荐引擎应该马上停止推荐这门课程。
3)总量控制。电子商务中的推荐系统是没有总量控制的,推荐的出发点是尽可能 的让用户“购买”产品或者服务,越多越好。而课程推荐系统则完全不同,学生选课的学分是 有总量控制的,不是学生选的课越多越好,而是在一定总量控制下,达到最优化选择。
4)信息准确度不同。实际上是指用户行为和特征的全面性和准确性。电子商务网 站上,用户的信息仅限于注册信息,内容少且真实性差,电商能够参考的有价值的信息一般 是用户的行为,包含用户的历史购物、浏览记录、购物车、收藏夹,及对商品的评价和评分 等信息。而大学的选课系统建立在整个学生管理信息系统大平台下,可以获得关于学生的海 量真实信息,包括图书借阅信息、教学评估信息、历史开设情况、课时学分等课程特征、任 课教师、选课学生的成绩列表等。此外,由于和传统的商品推荐所获取的用户行为、特征具 有差别,也导致在进行算法设计时采取不同于传统商品推荐的算法。
5)实时性要求不同。课程推荐相较于商品推荐,实时性要求更高。主要体现在课 程推荐是依托在选课系统中实现的。某段时间内同时访问选课系统的学生数量众多,需要系 统实时判断每门课程是否达到选课限制人数、实时判断每位学生所选课程是否与必修课或其 他选定课程在上课时间上有冲突。对于不符合条件的课程则进行其他相似的推荐。
申请号为201410246038.7的专利申请公开了一种智能选课推荐的方法,但是该申请是 基于用户在选课页面的行为进行推荐的(类似于商品推荐),由于学生的行为是很粗糙且具 有不确定性的,例如学生浏览课程,其可能只是盲目的点击,因而并不能进行准确的课程推 荐;另外,该专利申请中所说的课程评分,在实际中往往也是做不到的,因为有些高校是不 进行课程评价的,还有些高校的课程评价是不和选课系统在一个平台下,无法实现数据共 享。因而当前急需一种能够实现课程准确推荐的推荐方法及系统。
发明内容
本发明的目的在于,提供一种基于学生属性的课程推荐方法及系统,它可以有效解决现 有技术中存在的问题,尤其是现有的课程推荐系统无法实现准确的课程推荐的问题。
为解决上述技术问题,本发明采用如下的技术方案:基于学生属性的课程推荐方法,包 括以下步骤:
S1,根据学生的属性,计算目标学生与其他学生间的相似度,查找与目标学生的选课爱好 相似的“邻居”学生集合;
S2,查找目标学生未选,但“邻居”学生选修的课程进行推荐。
优选的,步骤S1中,采用改进的余弦相似度公式计算目标学生u与其他学生v间的相似 度:
其中,wuv表示学生u和学生v之间的相似度,N(u)和N(v)分别表示学生u和学生v曾 经选修的课程集合,因子1/(log1+|N(i)|)用于降低学生u和学生v共同兴趣课程列表中专业课 程对相似度的影响,N(i)表示所有选过课程i的学生集合,从而不但可以计算目标学生u与 其他学生v间的相似度,而且还能降低学生u和学生v共同兴趣课程列表中专业课程对相似 度的影响,使得课程推荐更准确、合理。
前述方法中,步骤S1还包括:假设具有相同属性的学生对课程的喜好程度相似,同时 已完成课程的成绩相似的学生实力相当;将学生(指所有在读学生)按照属性(包括专业特 征、学生已完成课程的成绩以及已修课程的类别)进行聚类处理;确定目标学生所属的类, 并计算目标学生与该类中其他学生间的相似度,查找与目标学生的选课爱好相似的“邻居”学 生集合,从而可以在保证推荐准确度的基础上,大大降低时间复杂度。
优选的,步骤S2中所述的查找目标学生未选,但“邻居”学生选修的课程进行推荐具体 包括:查找目标学生u未选但“邻居”学生选修的课程i,计算学生u对课程i的感兴趣程度:
其中,表示学生u对课程i的感兴趣程度,wuv表示学生u和学生v之间的相似 度,S(u,K)表示与学生u的相似度最高的K个“邻居”学生,N(i)表示所有选过课程i的学生 集合。
前述的基于学生属性的课程推荐方法中,所述的K值为20,从而可以得到较准确的推 荐结果,同时召回率和覆盖率也较高。
上述方法中,所述的目标学生所在的年级低于“邻居”学生所在的年级,从而可以有效解 决冷启动问题,同时还可以实现学生对课程的感兴趣程度的离线计算,得到目标学生可能感 兴趣的课程列表,从而可以大大提高数据请求的实时性。
实现前述方法的基于学生属性的课程推荐系统,包括:
相似度计算模块:用于根据学生的属性,计算目标学生与其他学生间的相似度;
“邻居”学生集合查找模块:用于查找与目标学生的选课爱好相似的“邻居”学生集合;
课程推荐模块:用于查找目标学生未选,但“邻居”学生选修的课程进行推荐。
优选的,相似度计算模块采用改进的余弦相似度公式计算目标学生u与其他学生v间的 相似度:
其中,表示学生u和学生v之间的相似度,N(u)和N(v)分别表示学生u和学生v曾 经选修的课程集合,因子1/(log1+|N(i)|)用于降低学生u和学生v共同兴趣课程列表中专业课 程对相似度的影响,N(i)表示所有选过课程i的学生集合,从而不但可以计算目标学生u与 其他学生v间的相似度,而且还能降低学生u和学生v共同兴趣课程列表中专业课程对相似 度的影响,使得课程推荐更准确、合理。
更优选的,所述的课程推荐模块还包括:
聚类模块:用于将学生按照属性(包括专业特征、学生已完成课程的成绩以及已修课程的类 别)进行聚类处理;
所属类确定模块:用于确定目标学生所属的类。
优选的,所述的课程推荐模块还包括:
感兴趣程度计算模块:用于计算学生u对课程i的感兴趣程度。
具体的,采用以下方式计算学生u对课程i的感兴趣程度:
其中,表示学生u对课程i的感兴趣程度,wuv表示学生u和学生v之间的相似 度,S(u,K)表示与学生u的相似度最高的K个“邻居”学生,N(i)表示所有选过课程i的学生 集合。
优选的,所述的K值为20,从而可以得到较准确的推荐结果,同时召回率和覆盖率也 较高。
上述方法中,所述的目标学生所在的年级低于“邻居”学生所在的年级,从而可以有效解 决冷启动问题,同时还可以实现学生对课程的感兴趣程度的离线计算,得到目标学生可能感 兴趣的课程列表,从而可以大大提高数据请求的实时性。
与现有技术相比,本发明具有以下优点:
1.本发明基于学生的属性数据(主要包括学生基本信息、学生历史选课信息、学生已完 成课程的成绩信息和课程信息等),可以实现更准确的课程推荐;同时采用本发明的课程推 荐方法及系统,可获得较高的召回率和覆盖率;
2.本发明提出的基于学生属性聚类的协同过滤算法,对学生相似度的计算方法进行改 进,利用因子1/(log1+|N(i)|)降低学生u和学生v共同兴趣课程列表中专业课程对相似度的影 响,从而不但可以计算目标学生u与其他学生v间的相似度,而且还能降低学生u和学生v 共同兴趣课程列表中专业课程对相似度的影响,使得课程推荐更准确、合理;
3.本发明的课程推荐方法及系统不依赖于课程本身的数据,它是领域独立的;
4.本发明采用学生选课历史信息作为数据源,为本发明的课程推荐提供数据支持,由于 这些学生选课历史信息和每学期需要选课的学生都是固定不变的,因而本发明可以实现将学 生对课程的感兴趣程度在选课前进行离线计算,得到目标学生可能感兴趣的课程列表,不仅 弱化了算法复杂度的重要性,而且采取离线计算和在线推荐协调合作的方式,可以进一步实 现课程推荐的实时性和准确性;
5.假设具有相同属性的学生对课程的喜好程度相似,同时已完成课程的成绩相似的学 生实力相当;将学生按照属性(包括专业特征、学生已完成课程的成绩以及已修课程的类 别)进行聚类处理;确定目标学生所属的类,并计算目标学生与该类中其他学生间的相似 度,查找与目标学生的选课爱好相似的“邻居”学生集合,从而可以在保证推荐准确度的基础 上,大大降低时间复杂度。
6.本发明解决了冷启动的问题——本发明的基于学生属性的课程推荐方法同商品推荐一 样,存在冷启动问题,当新学生要进行选课时,由于其没有历史选课记录,无法从分类后的 学生类中找到与其最相似的K名“邻居”学生,因此本发明设定所述的目标学生所在的年级低 于“邻居”学生所在的年级(即将一年级学生以专业、入学成绩分类后作为目标学生,然后将 二年级、三年级、四年级学生在一年级时选过的课程推荐给目标学生),从而可以有效解决 冷启动问题,同时还可以实现学生对课程的感兴趣程度的离线计算,得到目标学生可能感兴 趣的课程列表,从而可以大大提高数据请求的实时性。
附图说明
图1是课程推荐引擎的基本任务图;
图2是本发明的课程推荐原理图;
图3是课程推荐的四种情况示意图;
图4是选课系统中的推荐界面;
图5是本发明的实施例的方法流程图。
下面结合附图和具体实施方式对本发明作进一步的说明。
具体实施方式
本发明的实施例1:基于学生属性的课程推荐方法,如图5所示,包括以下步骤:
S1,假设具有相同属性的学生对课程的喜好程度相似,同时已完成课程的成绩相似的学生实 力相当;将学生按照属性(包括专业特征、学生已完成课程的成绩以及已修课程的类别)进 行聚类处理;确定目标学生所属的类,并计算目标学生与该类中其他学生间的相似度,查找 与目标学生的选课爱好相似的“邻居”学生集合;其中,采用改进的余弦相似度公式计算目标 学生u与其所在类中的其他学生v间的相似度:
其中,wuv表示学生u和学生v之间的相似度,N(u)和N(v)分别表示学生u和学生v曾 经选修的课程集合,因子1/(log1+|N(i)|)用于降低学生u和学生v共同兴趣课程列表中专业 课程对相似度的影响,N(i)表示所有选过课程i的学生集合;
S2,查找目标学生未选,但“邻居”学生选修的课程进行推荐,具体包括:查找目标学生u 未选但“邻居”学生选修的课程i,计算学生u对课程i的感兴趣程度:
其中,表示学生u对课程i的感兴趣程度,wuv表示学生u和学生v之间的相似 度,S(u,K)表示与学生u的相似度最高的K个“邻居”学生,N(i)表示所有选过课程i的学生 集合。所述的K值为20。
上述方法中,所述的目标学生所在的年级低于“邻居”学生所在的年级。
实现上述方法的基于学生属性的课程推荐系统,包括:
聚类模块:用于将学生按照属性(包括专业特征、学生已完成课程的成绩以及已修课程 的类别)进行聚类处理;
所属类确定模块:用于确定目标学生所属的类;
相似度计算模块:用于根据学生的属性,计算目标学生与其所在类别中其他学生间的相 似度;
“邻居”学生集合查找模块:用于查找与目标学生的选课爱好相似的“邻居”学生集合;
课程推荐模块:用于查找目标学生未选,但“邻居”学生选修的课程进行推荐。
所述的课程推荐模块还包括:感兴趣程度计算模块:用于计算学生u对课程i的感兴趣 程度。
实施例2:基于学生属性的课程推荐方法,如图5所示,包括以下步骤:
S1,根据学生的属性,计算目标学生与其他学生间的相似度,查找与目标学生的选课爱好相 似的“邻居”学生集合;其中,采用改进的余弦相似度公式计算目标学生u与其他学生v间的 相似度:
其中,wuv表示学生u和学生v之间的相似度,N(u)和N(v)分别表示学生u和学生v曾 经选修的课程集合,因子1/(log1+|N(i)|)用于降低学生u和学生v共同兴趣课程列表中专业 课程对相似度的影响,N(i)表示所有选过课程i的学生集合;
S2,查找目标学生未选,但“邻居”学生选修的课程进行推荐,具体包括:查找目标学生u未 选但“邻居”学生选修的课程i,计算学生u对课程i的感兴趣程度:
其中,表示学生u对课程i的感兴趣程度,表示学生u和学生v之间的相似 度,S(u,K)表示与学生u的相似度最高的K个“邻居”学生,N(i)表示所有选过课程i的学 生集合。
上述的目标学生所在的年级低于“邻居”学生所在的年级。
实现上述方法的基于学生属性的课程推荐系统,包括:
相似度计算模块:用于根据学生的属性,计算目标学生与其他学生间的相似度;
“邻居”学生集合查找模块:用于查找与目标学生的选课爱好相似的“邻居”学生集合;
课程推荐模块:用于查找目标学生未选,但“邻居”学生选修的课程进行推荐。
所述的课程推荐模块还包括:感兴趣程度计算模块:用于计算学生u对课程i的感兴趣程 度。
本发明的实验例(如图5所示):
协同过滤,离线计算:
1学生分类:根据学生的专业特征和已完成课程的成绩以及已修课程的类别将学生进 行分类:
2共119个专业的学生;
3专业人数在40人以下的不使用成绩分类;
4共分324类,每类学生数低于40,记为集合U;
5根据集合U找“邻居”学生集合K:
6通过计算每位学生u与U集合中的其他学生间的相似 度,其中,wuv表示学生u和学生v之间的相似度,N(u)和N(v)分别表示学生u和学生v曾 经选修的课程集合,因子1/(log1+|N(i)|)用于降低学生u和学生v共同兴趣课程列表中专业课 程对相似度的影响,N(i)表示所有选过课程i的学生集合;
7取相似度最高的K名“邻居”学生;
8计算学生对课程的感兴趣程度:
9获取K名“邻居”学生的所选课程集合I:
10只关注“邻居”学生已选,学生u未选的选修课程;
11通过计算学生wuv对集合I中的课程i的感兴趣程 度,其中,表示学生u对课程i的感兴趣程度,表示学生u和学生v之间的相似 度,S(u,K)表示与学生u的相似度最高的K个“邻居”学生,N(i)表示所有选过课程i的学生 集合;
12获取每位学生对应的推荐课程列表R。
尽管本发明的算法对时间复杂度要求不高,但是每学期选课的学生数庞大,以2011~ 2012学年度第一学期为例,本科生选课人数达到11697人,这些学生要在选课系统上进行 查询、选课、取消等一系列操作,可操作课程有1247门,这里的课程已经经过处理,其中 只包含选修、限选、任选和全校通选课,不包含必修课、专业必修课、课程设计、试验课、 论文、社会实践等性质的课程。根据研究发现:如果每位学生都与其他的一万多名学生进行 计算相似度是没有必要的,因此,在进行协同过滤算法之前可以引入人口统计学规律,利用 学生基本信息对学生进行分类,首先将学生分为不同的类然后以类为单位计算该类学生对某 门课程的感兴趣程度,简化算法的同时并不会影响到推荐的准确度。这里进行了如下假设: 假设同一个院系同一个专业的学生对课程的喜好有更多的相似;假设历史课程成绩平均值接 近的同学拥有相同的实力。基于这两个假设,聚类算法主要以学生所在专业与学生历史成绩 作为主要参数进行分类。
本发明的算法给学生推荐那些和他有共同专业、相同兴趣、一致实力的学生选过的课 程,推荐结果着重于反映和学生最相似的小群体的共同点。之所以选择13~14学年度第一 学期的学生作为推荐样本是因为该批学生的选课情况已经成为历史,可以根据这些学生的历 史选课结果与推荐结果进行对比,判断算法的准确度。算法中没有描述一年级新生的选课信 息,按冷启动问题的解决方法直接进行推荐。存在6个专业选课人数太少,作为不规则数据 剔除。
如图2所示,即本发明的课程推荐原理图,实现了将学生A选择过的课程1推荐给学 生C。
本发明的算法准确度评测:
一个好的推荐引擎包含学生、课程和载体(如选课系统)三个方面,推荐引擎首先要为 学生推荐其感兴趣、能获取最大知识和综合技能的课程;其次学校开设的课程要能够被推荐 给感兴趣的学生,而不是覆盖面小,只推荐几门热门课程;最后,好的推荐引擎可以通过推 荐系统获取学生反馈,从而修改、完善推荐结果,一般可以从学校的教学评估、问卷调查获 取到。不同于传统的商业推荐系统,课程推荐不仅要求准确预测学生的行为,而且能够帮助 学生发现他们感兴趣的课程;同时为了平衡学校教学资源,还需要克服“长尾问题”。因此, 准确度、覆盖率成为评测课程推荐算法的两个重要指标。
a)预测准确度
本发明的基于选课系统的课程推荐方法最终能够给学生提供一个个性化的课程推荐列 表,这种推荐也被成为TopN推荐,预测准确度通过准确率/召回率度量。根据图3分析准确 率与召回率的概念:
A表示系统推荐学生也选择了的课程列表,B表示系统推荐了学生未选择的课程列表, C表示系统未推荐学生选择了的课程列表,D表示系统未推荐学生未选择的课程列表。召回 率指已选课程中是推荐的课程数量越多越好,可以被记录为A/(A+C),准确率可表示推 荐的课程中,真正被选择的越多越好,用A/(A+B)表示。
其中,R(u)是推荐给学生u的所有课程列表,T(u)是学生u已选的课程列表。
b)覆盖率
预测准确度是最关键的算法评测标准,即判断系统推荐的课程是否最终被学生选择了。 但是存在的问题是,假设学生本来计划选择一门课程,那么实际上这个推荐是没有意义的, 因此,不但要准确预测学生的预期,还要扩展学生的视野,帮助学生认识更多被埋没的精品 课程,挖掘他们可能感兴趣的课程。采用覆盖率来表示推荐系统能够推荐出来的课程占总课 程集的比例:
其中η为所有课程的集合,U为学生集合,R(u)为推荐给学生u的所有课程列表。
选课系统中的课程推荐服务实现:
以北京大学选课系统为平台,在进入选课系统后,页面会弹出“你可能感兴趣的课程”对 话框,其中列出为该学生量身定制的课程名称。如图4为选课系统中的推荐界面。
推荐结果分析:
本课程推荐引擎主要通过为已有选课历史的学生样本进行推荐,以13~14学年度第一 学期的选课为例,名学生进行了选课,计算其准确率、召回率和覆盖率,分析算法结果。
本系统实现时,难点是K值的判断。K表示与目标学生最相似的学生数,以目标学 生未选择而这K名学生已选择的课程为预推荐名单分析目标学生对这些课程的兴趣程度, 最终选出8~10门目标学生可能最感兴趣的课程进行推荐。这里K的选取很重要,当K 取值较小时,可能造成算法复杂度的增加以及覆盖率的降低,K值很大时推荐准确度会受 到影响,下表1给出了本发明的基于学生属性的课程推荐的实验结果。
表1不同K值下的课程推荐实验结果
从上表可以看出,本发明的课程推荐系统的准确率和召回率并不是与K值成线性关系, 选择K为20左右会得到较准确的推荐结果;而随着K的增大,系统越来越倾向于推荐热门 课程,导致覆盖率降低。
机译: 通过基于学生属性和与学生相关的准则进行的计算机化的学生分组分配来提供分组学习的系统和方法
机译: 通过基于学生属性和与学生变量相关的标准进行的计算机化的学生小组作业提供小组学习的系统和方法
机译: 通过基于学生属性和学生变量相关准则的计算机化的学生分组作业来提供分组学习的系统和方法