APP下载

一种融合协同过滤与分类的习题推荐算法

2022-05-30刘洪瑞倪佳鑫周序杰袁光辉刘兆春

电脑知识与技术 2022年28期
关键词:遗忘曲线个性化推荐协同过滤

刘洪瑞 倪佳鑫 周序杰 袁光辉 刘兆春

摘要:文章提出了一种根据学生兴趣特征和习题掌握水平来进行协同推荐的思路,并通过遗忘曲线设置知识点回顾的关键时间点进行混合推荐。该算法使用协同过滤推荐算法,具有推荐过程复杂度低、准确度高等特点。实验结果表明,该算法能够有效地进行习题推荐。

关键词:个性化推荐;协同过滤;极端梯度提升;遗忘曲线

中图分类号:TP18      文献标识码:A

文章编号:1009-3044(2022)28-0023-03

1 概述

随着互联网在线教育技术的高速发展,越来越多的高等院校利用大规模的开放式在线课程与在线判题系统对学生进行多方面培养。在利用信息技术进行高效教学的同时,面对大量课程内容与习题数据的海量激增,如何针对学生兴趣与知识漏洞进行针对性的课程与习题推荐成为研究热点。使用个性化推荐是解决信息过载的一种有效手段,在习题推荐领域,采用协调过滤算法能有效地根据学生相似度、习题难度、知识点提供推荐[1]。基于不同知识点的习题,通过遗忘曲线的记忆规律进行复习性习题推荐,能有效地提高学生该知识点的记忆率。通过记录不同学生完成对应习题所消耗平均时间,以及对应习题完成的正确率,作为习题分类的特征标签,使用分类算法,将不同规模、难易度的习题进行分类。

近年来,各类推荐算法逐渐被应用于习题推荐中,当前习题推荐算法主要分为基于模型的协同过滤推荐算法和基于知识点层次图的推荐算法[2],其中基于模型的协同过滤推荐算法研究现状如下: 柏茂林通过习题正答概率与用户能力特征,形成能力水平相似用户模型[3];付兴华通过设计与构建学习兴趣模型和学习资源模型,进行组合推荐[4];姜盼通过皮尔逊相关系数求解相似度,解决冷启动问题[5]。基于知识点层次图的推荐算法研究现状如下: 蒋昌猛提出学生知识点掌握概率模型,进而提出TOPN进行推荐[6];蒋昌猛等借鉴课程知识特点,构建知识点层次权重图,进而实现习题推荐[7]。丁强使用知识点之间的关系构建学习路径图,提取习题特征词作词典,提高学习效率[8]。

兴趣偏好,即多者相比更喜欢其中某些事物,是一种心理性倾向,与自身兴趣、相关内容以及思维相关。近年来,各领域均对兴趣偏好进行研究,在计算机科学领域,提高用户行为及画像进行兴趣推荐,在购物、搜索、访问、网络社交中应用广泛,使用收集与分析的用户偏好信息,推荐给用户较为喜欢的事物,提高了用户的使用体验,实现双赢。

协同过滤推荐算法与知识点层次图推荐算法相比,前者结构简单、易于实现、能够快速地处理数据。在实际应用中,面对不同规模、难易程度的题目,常重复推荐难易度相同的题目,且不能准确识别学生的知识点掌握情况。后者能够根据学生的知识点掌握情况进行推荐,但难以根据学生的学习进度进行进一步推荐。

为解决上述中存在的问题,本文提出一种融合协同过滤与分类的习题推荐算法,提高习题推荐系统的性能和学生使用体验,有效降低推荐过程的复杂度,实现为学生提供符合当前学习情况的习题推荐。

2 融合协同过滤与分类的习题推荐算法

2.1 协同过滤算法

在推荐系统领域中,协同过滤算法被广泛应用,成为该领域研究最深入、业界最为认可、应用最为广泛的推荐算法[9]。在单独使用协同过滤算法进行习题推荐时,忽略了学生对该习题知识点的掌握程度,常出现推荐较难或特别容易的习题。在融合协同过滤与分类的习题推荐算法中,通过协同过滤算法计算学生的相似度,再使用分类算法推荐不同难度的习题。根据学生学习、训练记录,使用艾宾浩斯遗忘曲线,在适当的时间点推荐學生上一阶段知识点的习题,加以巩固,进而实现习题推荐。

在使用协同过滤算法进行习题推荐时,学生间共同学习、训练的习题越多,共同偏好的相似度越高,基于对方产生的习题推荐正确率越高。使用[u]和[v]分别表示两个学生,使用[={u1,u2,...,un}]、[V={v1,v2,...,vn}]分别表示两学生的特征向量。

[simu,v=U∩VU∪V]         (1)

使用式(1) 可计算学生之间的相似度。并设置相似度阈值[a],当学生之间相似度大于相似度阈值时,则判断两个学生为近邻学生,为他们训练的习题进行相互推荐。

2.2 分类模型

在融合协同过滤与分类的习题推荐算法中,使用各习题的平均完成时间、平均失分率,通过设置阈值,将习题分为简易、复杂题型,形成分类模型。同时根据学生的做题时长、失分率,判断学生的知识点掌握情况,配合协同过滤算法,进行习题推荐。

极端梯度提升(XGBoost) ,是一种梯度提升框架,能够通过分布式、并行计算实现高速梯度提升。使用集合[S=(s1,s2,...,sn)]表示[n]个学生,学生[si]做过[M]道习题的集合为[E=(e1si,e2si,...,emsi)],学生[si]做第1到[emsi]道习题花费时间的集合为T[=(t1si,t2si,...,tmsi)]。设置阈值[φ],则依据学生习题时间消耗程度的近邻学生掌握相似度列表可使用公式(2) 计算获得。

[SimClassS,M=i=1n(j=1ttjsi·tjsi+1j=1t(tjsi)2×j=1t(tjsi+1)2-φ)]  (2)

其中,学生掌握相似度由阈值[φ]调节,[φ]的取值范围为[0,1]。随着[φ]的增加,判定两个学生为近邻学生所需的掌握程度越近似。

2.3 艾宾浩斯遗忘曲线

德国心理学家艾宾浩斯研究发现,遗忘在学习后立即开始,而且遗忘的过程是非线性的。最初遗忘速度很快,以后逐渐缓慢,最后会保持在一个水平[10],可用公式(3) 表示:

[ft=100k(logt)c+k]      (3)

通过反复实验,发现[c=1.5],[k=1.84][11],较为符合人的记忆遗忘规律。学生在学习、训练某知识点的一定习题后,会进一步学习其他知识点习题。通过遗忘曲线规律,将上一阶段习题及时推荐给学生,复习巩固知识点。

2.4 模型融合

混合模型融合了协同过滤算法、分类模型的优点,在大量数据累积的情况下,混合模型有着较好的推荐结果。将协同过滤与分类模型进行流水线混合,并使用分级混合、得到掌握程度相近似的近邻学生,使用并行混合,帮助学生回顾遗忘知识点。

基于协同过滤算法,使用学生特征向量,计算学生间相似度,寻找学习、训练进度相似的近邻学生。得到近邻学生后,使用分类模型,输入近邻学生的习题时间消耗和失分率,得到近邻学生间的掌握相似度,并找到掌握程度相近的近邻学生,为他们训练的习题进行相互推荐,进而实现习题推荐。

3 实验方案及结果

3.1 实验数据

本实验在校园中成立Python学习小组,共计180名学生,进行无进度要求的Python学习,并搭建在线判题系统(OnlineJudge) ,要求小组成员在系统中进行自由习题训练,为习题推荐系统提供前期数据。进行自由学习30天后,将学习小组成员分为两组,各90名学生,一组使用协同过滤的习题推荐系统,另一组使用融合协同过滤与分类的习题推荐系统(设置阈值[a=0.75,φ=0.9]) ,每天为所在組的每位学生产生20道推荐习题,再随机抽取未推荐习题10道,组成30道习题。要求每位同学每天在30道习题中选取10道自己喜爱的题目进行作答。实验共进行10天,得到使用协同过滤的习题推荐系统的共18000道习题及学生选择作答的9000道习题,以及使用融合协同过滤与分类的习题推荐系统的共18000道习题及学生选择作答的9000道习题。

3.2 评估方法

准确率(Accuracy)是推荐系统中常用的评价指标,指学生选择所推荐习题数量与学生未选择不推荐习题数量之和与所有习题数量的比例。即10道推荐习题中学生选择回答的数量与10道未推荐习题中学生未选择回答的数量和,与总题数20的比例。

召回率(Recall) 是推荐系统中常用的评价指标,指学生选择所推荐习题数量、学生选择所推荐习题数量与学生未选择不推荐习题数量之和的比例。即10道推荐习题中学生选择回答的数量,与10道推荐习题中学生选择回答的数量与10道未推荐习题中学生未选择回答的数量和的比例。

[accuracy =TP+TNTP+FN+FP+TN]   (4)

[recall=TPTP+FN]

其中TP为将正类预测为正类数,FN为将正类预测为负类数,FP为将负类预测为正类数,TN为将负类预测为负类数。

3.3 实验及结果分析

3.3.1 实验环境

实验环境操作系统为Windows 10 64位,语言为Python 3.6,采用 TensoFlow GPU 1.14 版本,显卡为 NVIDIA GTX1060-6G,内存:16G,共90台。使用OnlineJudge系统进行学生个性化习题在线推送及在线判题。

3.3.2 习题推荐及结果对比

在习题推荐的实验中,实验将本文提出的融合协同过滤与分类的习题推荐算法对比单独使用协同过滤进行习题推荐,以精确度、召回率的指标来评价习题推荐的效果。从3.1中描述的实验得出数据集,实验结果如表1所示,从中可以得到以下结论:

1) 在该数据集中,本文提出的融合协同过滤与分类的习题推荐算法习题推荐效果优于单独使用协同过滤算法,精确度、召回率均具有优势。说明融合协同过滤与分类的习题推荐算法相比单独使用协同过滤算法能够更精准地进行习题推荐,比其他算法更加有效。

2) 在实验中,进行“冷启动”时,精确度、召回率均比较低。重复进行3.1中描述的实验,在已积累一定量学生数据后,进行“热启动”,精确度、召回率均有提升。说明通过积累用户数据来提高习题推荐的精确度、召回率的方法是有效的。

4 结束语

本算法通过对传统协同过滤算法加入分类算法,实现混合推荐,并应用到习题推荐中,有效地向学生推荐习题,让学生能够得到难易度合适的习题,同时在关键时刻进行知识点回顾,提高了习题推荐质量,促进了学生高效学习。通过控制并不断增加习题难易度,有效提高了学生进一步学习的积极性。该算法在实际应用中取得较好效果,但前期需要积累一定量的用户数据,提高协同过滤精准度,也需要经常回顾用户数据,清除长期停滞的用户数据,使推荐内容及时跟进。

参考文献:

[1] 陈云峰.基于用户偏好多样性的推荐算法研究及应用[D].合肥:中国科学技术大学,2018.

[2] 刘建国,周涛,汪秉宏.个性化推荐系统的研究进展[J].自然科学进展,2009,19(1):1-15.

[3] 柏茂林.基于协同过滤的数学习题个性化推荐系统的设计与实现[D].锦州:渤海大学,2018.

[4] 付兴华.基于协同过滤算法的移动学习系统的设计与实现[D].北京:北京工业大学,2017.

[5] 姜盼.基于协同过滤的习题推荐系统设计与实现[D].荆州:长江大学,2017.

[6] 蒋昌猛.基于知识点的个性化习题推荐研究[D].西安:西北大学,2017.

[7] 蒋昌猛,冯筠,孙霞,等.基于知识点层次图的个性化习题推荐算法[J].计算机工程与应用,2018,54(10):229-235.

[8] 丁强.基于学习路径图的习题推荐算法研究——以程序设计基础课程为例[D].西安:西北大学,2016.

【通联编辑:唐一东】

猜你喜欢

遗忘曲线个性化推荐协同过滤
英语词汇学习浅析
中学课堂启发式教学之思考
基于链式存储结构的协同过滤推荐算法设计与实现
基于相似传播和情景聚类的网络协同过滤推荐算法研究
个性化推荐系统关键算法探讨
基于协同过滤算法的个性化图书推荐系统研究
混合推荐算法在电影推荐中的研究与评述
艾宾浩斯记忆模型在电力运维自学习系统中的应用与研究
遗忘曲线在高职英语词汇教学中的应用