正在加载图片...
第3期 沈苗,等:北京大学课程推荐引擎的设计和实现 ·373. 4)冷启动问题的解决。基于学生的协同过滤 2013一2014学年度第1学期的学生作为推荐样本, 基本算法与基于用户的协同过滤算法相同,存在冷 是因为该批学生的选课情况已经成为历史,可以根 启动问题,当新学生要进行选课时,由于其没有历史 据这些学生的历史选课结果与推荐结果进行对比, 选课记录,无法从分类后的学生类中找到与其最相 判断算法准确度。算法中没有描述一年级新生的选 似的K名“邻居”学生,本文从实际出发,单独处理 课信息,按冷启动问题的解决方法直接进行推荐。 新生。鉴于新生第1学期课程量少的特点,将一年 2.3算法测评 级学生以专业、生源地、入学成绩分类,然后将二年 一个好的推荐引擎包含学生、课程和载体(选 级、三年级、四年级学生在一年级时选过的课程推荐 课系统)三方面,推荐引擎首先要为学生推荐其感 给目标学生。通过实验发现推荐结果的覆盖率达到 兴趣、能获取最大知识和综合技能的课程:其次学校 了95%以上,从而解决了冷启动问题。 开设的课程要能够被推荐给感兴趣的学生,而不是 总结以上问题,基于学生分类的协协同过滤算 覆盖面小,只推荐几门热门课程:最后,好的推荐引 法SuCF的流程如下。 擎可以通过推荐系统获取学生反馈,从而修改、完善 算法1基于学生分类的协同过滤SuCF。 推荐结果,一般可以从学校的教学评估、问卷调查获 输入:学生基本信息、课程基本信息、学生选课 取到。不同于传统的商业推荐系统,课程推荐不仅 信息。 要求准确预测学生的行为,而且能够帮助学生发现 输出:学生与对应推荐课程列表。 他们感兴趣的课程:同时为了平衡学校教学资源,还 数据源:12096名在读本科生的所有选课记录。 需要克服“长尾问题”。因此,准确度、覆盖率成为 推荐样本:2013一2014学年度第1学期10682 评测SuCF推荐算法的2个重要指标。 名待选课本科生。 1)预测准确度。 协同过滤,离线计算: 基于选课系统SuCF算法最终提供给学生提供 1)学生分类:以专业和成绩进行分类: 1个个性化的课程推荐列表,这种推荐也被成为 2)共119个专业的学生 TopN推荐,预测准确度通过准确率/召回率度量。 3)专业人数在40人以下的不使用成绩分类: 根据图4分析准确率P与召回率R的概念。 4)共分324类,每类学生数低于40,记为集 已选课程未选课程 合U。 推荐的课程 A 5)根据集合U找“邻居”学生集合K: 未推荐的课程 C 0 6)根据式(3)计算每位学生“与集合U中的 其他学生间的兴趣相似度: 图4课程推荐的4种情况 7)取相似度最高的K名“邻居”学生。 Fig.4 Four cases of course recommendation system 8)计算学生对课程的感兴趣程度: A表示系统推荐学生也选择了的课程列表,B 9)获取K名“邻居”学生的所选课程集合1: 10)只关注“邻居”学生已选,学生“未选的 表示系统推荐了学生未选择的课程列表,C表示系 选修课程。 统未推荐学生选择了的课程列表,D表示系统未推 11)根据式(2)计算学生u对集合I中的课程i 荐学生未选择的课程列表。召回率指已选课程中是 的感兴趣程度: 推荐的课程数量越多越好,可以被记录为 12)获取每位学生对应的推荐课程列表R。 A/(A+C),准确率可表示推荐的课程中,真正被选 选课系统,实时推荐: 择的越多越好,用A/(A+B)表示。 13)以选课系统为平台,获取每个推荐样本的 R= ∑.tlRm)nT)l 学号: ∑.elTw)l 14)实时过滤课程最新状态,剔除停开课,上课 时间与必修课冲突课程: P=- tlR(u)nTw)l (5) 15)实现推荐。 ∑R(w)川 本算法给学生推荐那些与他有共同专业、相同 式中:R(u)是所有推荐的课程列表,T(u)是学生 兴趣、一致实力的学生选过的课程,推荐结果着重反 已选的课程列表。 映与学生最相似的小群体的共同点。之所以选择 2)覆盖率1。4)冷启动问题的解决。 基于学生的协同过滤 基本算法与基于用户的协同过滤算法相同,存在冷 启动问题,当新学生要进行选课时,由于其没有历史 选课记录,无法从分类后的学生类中找到与其最相 似的 K 名“邻居”学生,本文从实际出发,单独处理 新生。 鉴于新生第 1 学期课程量少的特点,将一年 级学生以专业、生源地、入学成绩分类,然后将二年 级、三年级、四年级学生在一年级时选过的课程推荐 给目标学生。 通过实验发现推荐结果的覆盖率达到 了 95%以上,从而解决了冷启动问题。 总结以上问题,基于学生分类的协协同过滤算 法 StuCF 的流程如下。 算法 1 基于学生分类的协同过滤 StuCF。 输入:学生基本信息、课程基本信息、学生选课 信息。 输出:学生与对应推荐课程列表。 数据源:12 096 名在读本科生的所有选课记录。 推荐样本:2013—2014 学年度第 1 学期 10 682 名待选课本科生。 协同过滤,离线计算: 1)学生分类:以专业和成绩进行分类: 2) 共 119 个专业的学生 3) 专业人数在 40 人以下的不使用成绩分类; 4) 共分 324 类,每类学生数低于 40,记为集 合 U。 5)根据集合 U 找“邻居”学生集合 K: 6) 根据式(3)计算每位学生 u 与集合 U 中的 其他学生间的兴趣相似度; 7) 取相似度最高的 K 名“邻居”学生。 8)计算学生对课程的感兴趣程度: 9) 获取 K 名“邻居”学生的所选课程集合 I: 10) 只关注“邻居”学生已选,学生 u 未选的 选修课程。 11)根据式(2)计算学生 u 对集合 I 中的课程 i 的感兴趣程度; 12) 获取每位学生对应的推荐课程列表 R。 选课系统,实时推荐: 13)以选课系统为平台,获取每个推荐样本的 学号; 14)实时过滤课程最新状态,剔除停开课,上课 时间与必修课冲突课程; 15 )实现推荐。 本算法给学生推荐那些与他有共同专业、相同 兴趣、一致实力的学生选过的课程,推荐结果着重反 映与学生最相似的小群体的共同点。 之所以选择 2013—2014 学年度第 1 学期的学生作为推荐样本, 是因为该批学生的选课情况已经成为历史,可以根 据这些学生的历史选课结果与推荐结果进行对比, 判断算法准确度。 算法中没有描述一年级新生的选 课信息,按冷启动问题的解决方法直接进行推荐。 2.3 算法测评 一个好的推荐引擎包含学生、课程和载体(选 课系统)三方面,推荐引擎首先要为学生推荐其感 兴趣、能获取最大知识和综合技能的课程;其次学校 开设的课程要能够被推荐给感兴趣的学生,而不是 覆盖面小,只推荐几门热门课程;最后,好的推荐引 擎可以通过推荐系统获取学生反馈,从而修改、完善 推荐结果,一般可以从学校的教学评估、问卷调查获 取到。 不同于传统的商业推荐系统,课程推荐不仅 要求准确预测学生的行为,而且能够帮助学生发现 他们感兴趣的课程;同时为了平衡学校教学资源,还 需要克服“长尾问题”。 因此,准确度、覆盖率成为 评测 StuCF 推荐算法的 2 个重要指标。 1)预测准确度。 基于选课系统 StuCF 算法最终提供给学生提供 1 个个性化的课程推荐列表,这种推荐也被成为 TopN 推荐,预测准确度通过准确率/ 召回率度量。 根据图 4 分析准确率 P 与召回率 R 的概念。 图 4 课程推荐的 4 种情况 Fig. 4 Four cases of course recommendation system A 表示系统推荐学生也选择了的课程列表,B 表示系统推荐了学生未选择的课程列表,C 表示系 统未推荐学生选择了的课程列表,D 表示系统未推 荐学生未选择的课程列表。 召回率指已选课程中是 推 荐 的 课 程 数 量 越 多 越 好, 可 以 被 记 录 为 A / (A + C) ,准确率可表示推荐的课程中,真正被选 择的越多越好,用 A / (A + B) 表示。 R = ∑u∈U R(u) ∩ T(u) ∑u∈U T(u) (4) P = ∑u∈U R(u) ∩ T(u) ∑u∈U R(u) (5) 式中: R(u) 是所有推荐的课程列表, T(u) 是学生 已选的课程列表。 2)覆盖率[ 8 ] 。 第 3 期 沈苗,等:北京大学课程推荐引擎的设计和实现 ·373·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有