APP下载

基于协同过滤算法的教育平台课程推荐的研究

2021-03-04石弘利,王从瑜,谢维奇

电脑知识与技术 2021年34期

石弘利,王从瑜,谢维奇

摘要:进入大数据时代后,教育平台的资源量不断增长,带来便利的同时也为用户选择课程带来了困难。推荐系统是解决该问题的一个切实可行的办法。协同过滤算法广泛应用于推荐系统中。本文利用某教育平台 194975 条学习记录数据和 43917 条用户数据,通过分析两者的内容,构建了物品相似度矩阵,并根据矩阵进行用户个性化推荐。实验结果表明,该方法可以高效和准确地对教育平台在线课程推荐。

关键词:协同过滤算法;推荐;教育平台

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

文章编号:1009-3044(2021)34-0019-04

1  背景与研究意义

近年来,随着互联网与通信技术的高速发展,学习资源的建设与共享呈现出新的发展趋势,各种网课、视频直播课程等层出不穷,各种在线教育平台和学习应用纷纷涌现。尤其是2020年春季学期,受新型冠状病毒肺炎疫情影响,在教育部“停课不停学”的要求下,网络平台成为“互联网+教育”成果的重要展示阵地。因此,如何根据教育平台的线上用户学习信息,通过数据分析与数据挖掘为教育平台和用户提供精准的课程推荐服务成了线上教育的热点问题。

个性化推荐可以解决信息过载的问题,在当前疫情环境下,其对于教育平台在线课程也有着至关重要的意义。在现有的论文对教育平台在线课程的推荐研究中,孔德宇[1]等针对用户与课程资源关联程度不足的问题,使用层次分析法,分解了影响用户选择课程的因素,建立层级结构模型,提出了初步的解决方案;张楠[2]基于双属性评分矩阵及神经网络对协同过滤算法进行改进,提升了推荐算法的质量;陈子豪[3]基于UCC的个性化推荐算法研究,对MOOC在线教育平台情况分析,结果验证了该算法拥有更好的推荐性能;王永固等[4]基于改进协同过滤算法进行用户个性化推荐,结果表明与传统推荐算法相比,改进的组合协同过滤推荐算法具有更高的推荐精度。综合上述文献可以看出,学者们采用不同的推荐或改进推荐方法对在线学习课程进行推荐研究。

本文介绍了协同过滤算法的基本思想,并根据算法依据的不同,分别介绍基于邻域协同过滤算法的两大经典算法:基于用户的协同过滤算法与基于物品的协同过滤算法。采用后者对某教育平台在线课程进行推荐并通过召回率、准确率、覆盖率三个指标,检验推荐结果的优劣性。

2  算法介绍

2.1 协同过滤算法

协同过滤(Collaborative Filtering)算法的理论基础是,大部分具有相似三观、知识水平和兴趣爱好的用户所需求的信息或产品也是相似的[5]。其中“协同”二字,从字面上理解,就是多个用户间合作,将相似用户的评价进行合并归类,对指定用户信息喜好程度进行推荐[6]。协同过滤算法在信息过滤与推荐、电子商务网站、电影评论网站、在线视频网站等众多场景中得到广泛应用[7]。根据相似度计算的对象不同,可以将协同过滤算法分成两大类:一类是基于用户的协同过滤算法,一类是基于物品的协同过滤算法,简言之:物以类聚,人以群分。

2.2 基于用户的协同过滤算法

基于用户的协同过滤(User-based CF)算法的基本思想是:给用户推荐与其类似的用户产生行为的物品[8]。主要依据的是用户的历史行为数据,从中挖掘获取信息,并对这些数据进行评价。根据目标用户的产生行为即用户与用户之间的相似性,找到与指定用户有着类似喜好的用户群体并将该群体产生行为的内容推荐给指定用户;比如当一个用户A需要个性化推荐时,可以先找到和他兴趣相似的用户群组G,然后把G产生行为的且A尚未接受的物品推荐给A。

User-based CF算法利用相似用户的数据记录来计算彼此之间的相似度,常用方法包括Jaccard公式、余弦相似性(Cosine Similarity)、皮尔逊相关度(Pearson Correlation Coefficient),公式分别如下:

[sim(u,v)=N(u)⋂N(v)N(u)⋃N(v)]                            (1)

式(1)为Jaccard公式。其中,代表用户u与用户v之间的相似度,表示用户u喜欢的物品集合,表示用户v喜欢的物品集合。分子即为用户u,v同时喜欢的物品的个数,分母表示用户u,v总共喜欢的物品总数。

[sim(u,v)=cos(u,v)=u⋅vu2×v2=N(u)⋂N(v)N(u)⋅N(v)]            (2)

式(2)为余弦相似性公式,分子是同时喜欢用户u与用户v同时喜欢的物品的数量,分母是喜欢用户u与用户v喜欢的物品数的乘积的平方根。整体原理与Jaccard公式类似。

[sim(u,v)=i∈K(ru,i-ru)(rv,i-rv)i∈K(ru,i-ru)2i∈K(rv,i-rv)2]                 (3)

式(3)為皮尔逊相关度计算公式。代表用户u与用户v共同的物品评分集合。分别表示用户u,v对物品i的评分值。则分别代表用户u,v对每一个物品的平均均分。

计算用户间的相似度后,得到用户u对物品i的预测评分公式如式(4):

[Pu,i=ru+v∈Nsim(u,v)×(rv,i-rv)v∈Nsim(u,v)]                     (4)

上式中,是用户u对物品i的预测评分,是用户u已经评价的物品的评价均分,N是用户u的最近邻集合,v表示用户集合。

传统User-based CF算法存在以下问题:1)当用户评价物品为评分时,难以对推荐结果进行解释;2)若用户没有对某个物品进行评价,则无法进行推荐;3)当用户数量激增时,此算法性能驟减。

2.3 基于物品的协同过滤算法

基于物品的协同过滤(Item-based CF)算法的基本思想是:给用户推荐与其之前喜欢的物品相似的物品[9]。Item-based CF算法主要依据的是物品与物品之间的相似性,计算目标物品与用户产生行为的物品的相似度,将相似度较高的物品推荐给用户;如在电子商务网站购买过商品A的用户,经常会收到和商品A类似的商品推荐。在互联网中,Item-based CF算法已经被个性化推荐系统大量使用,同时其也可以为长尾物品更加丰富的领域所运用。

Item-based CF算法使用式(2)计算物品之间的相似度。在计算物品之间相似度之前,需要建立用户-物品倒排表(user-item inverted list),对每一个用户建立其产生行为的物品列表。在实际计算过程中,存在大部分用户对于物品的产生行为列表数目较小,极少数用户的物品产生行为列表数目较大的情况。这种现象的存在会极大影响整个算法的时间复杂度,导致整个算法的运行周期增长,效率下降。因此在生产环境中,首先计算出物品间相似度非0([N(u)⋂N(v)≠0])的物品组,随后对这些物品组进行后续的处理。这样操作的好处在于,可以节约计算物品相似度为0的物品组所用的时间,提升了整个算法的运行效率。

如图1所示,左侧表格即为计算后得到的每个用户的用户-物品倒排表,然后针对每个用户,将其倒排表中的物品两两加一,得到了每个用户对物品的中间矩阵,所有的中间矩阵都沿对角线对称。将上述所有用户的物品中间矩阵进行累加,得到共现矩阵[C]。根据共现矩阵[C]能够计算出每两个物品之间的相似度。

计算物品间的相似度后,得到用户u对物品j的预测评分公式如式(5):

[Pu,j=i∈N(u)⋂S(j,K)sim(j,i)⋅ru,i]                            (5)

上式中,是用户u对物品j的产生行为程度,代表用户u产生行为的物品集合,与物品j最为接近的K个物品集合,代表物品j与物品i间的相似度,表示用户u对物品i的产生行为程度。式(5)说明了与用户历史产生行为越类似的物品,越可能在生成的推荐列表中排在前列[10]。

2.4  User-based CF与Item-based CF比较

如表2所示,笔者将从以下五个方面对User-based CF算法与Item-based CF算法进行比较。

由推荐原理可知,User-based CF的推荐结果更加看重拥有相同兴趣用户的特点,结果体现了聚类化与社会化,Item-based CF的推荐着眼于用户的历史数据,从而挖掘出属于用户自身的特点,结果体现了个性化。两种算法适用的场景不同,下一步还需要针对冷启动问题分别对两种算法提出改进措施,从而进一步提升推荐效果。

3  实验与分析

3.1 数据介绍

本文实验所采用的数据来自某教育平台近两年真实数据,其中数据集包含两个部分,第一部分为194975 条学习记录数据,如表2所示;第二部分为43917 条用户数据,如表3所示。所有数据均经过脱敏处理。

3.2 实验流程

考虑到数据的体量较大,因此我们首先使用Python对数据进行清洗操作与初步描述性统计分析。如图2所示,数据清洗按照:“数据导入”“缺失值处理”“异常值处理”“重复值处理”“数据导出”五步进行。针对数据集中噪音数据的不同情况,本次实验采用不同的处理方式。以“异常值处理”为例:对于重要性较高的数据,结合上下文进行填补处理;对于重要性较低的数据或对后续推荐过程产生影响较小的数据进行删除或隐藏处理。

在本次实验中,我们采用基于物品的协同过滤算法,原因如下:

一、其适用于物品数明显小于用户数的场合,数据集中用户学习记录数远大于课程数,故采用基于物品的协同过滤算法。

二、数据集中尚未提供与课程内容相关的属性。基于物品的协同过滤算法不利用物品的内容属性计算物品之间的相似度,主要通过分析用户的行为计算物品之间相似度[11],非常符合当前场景。

针对清洗后的数据集中的用户学习记录表,提取其中的“用户编号”“课程编号”“学习进度”等字段作为推荐的基础数据集。随后对该数据集进行划分。训练集与测试集分别占原数据集的70%与30%。分别计算得到用户信息-课程信息评分表和课程信息-课程信息共现矩阵,选取式(2)来计算物品间相似度,并得到相似度矩阵,进而可以通过式(6)进行物品相似度归一化得到相似度矩阵,以提高推荐的准确度和覆盖性,这在后续的评价指标中有所体现。

[w'i,j=wi,jmaxwi,jj]                               (6)

最后根据相似度矩阵为指定用户选择K个产生行为的课程,选择推荐值前N个课程组成推荐列表,也就是针对目标用户组U,找到K个相似课程,并推荐前N个课程(本实验选择U=5,K=5,N=3)。最终返回形式为:用户编号1:{[课程编号1,推荐值 1],[课程编号2,推荐值 2],...[课程编号N,推荐值 N]},用户编号2:{[[课程编号1,推荐值 1],[课程编号2,推荐值 2]...,[课程编号N,推荐值 N]},...,用户编号U:{[[课程编号1,推荐值 1],[课程编号2,推荐值 2]...,[课程编号N,推荐值 N]}]。

除此之外,本实验结合用户已选课程的记录,对用户学习记录表中“学习时长”字段排名前五名的用户(用户41187、用户19267、用户1193、用户29748、用户21684)分别推荐了三门学习课程,最后的推荐结果如表5所示。

3.3 结果分析

由于本次实验不考虑评分,只是通过用户对物品的产生行为对推荐物品进行排序,选取其中前N个物品形成推荐列表推荐给用户[12]。因而从召回率、准确率、覆盖率三个方面对整个算法进行评价,<E:\2021知网文件\34-36\34\01xs2021342\Image\image30.pdf>代表算法根据训练集数据为用户u提供的推荐列表。<E:\2021知网文件\34-36\34\01xs2021342\Image\image31.pdf>表示用户u在测试集中实际产生行为的列表,召回率的计算公式如式(7)所示:

[recall=uR(u)⋂T(u)uT(u)]                         (7)

准确率描述的是推荐列表中用户产生行为的物品个数占测试集中用户产品行为物品个数的大小,计算公式如式(8)所示:

[precision=uR(u)⋂T(u)uR(u)]     ;                  (8)

覆盖率是通过推荐列表中所有物品占全部物品的比例来计算的,其值越大,说明推荐结果覆盖到的物品越多。<E:\2021知网文件\34-36\34\01xs2021342\Image\image34.pdf>代表所有用户,I代表所有物品,计算公式如式(9)所示:

将获得的推荐列表与测试集中的用户学习记录表按照上述公式进行计算,以召回率、准确率、覆盖率作为算法的评价指标。如表6所示,召回率为17.25%,准确率和覆盖率分别为20.59%和72.88%,整个结果说明了,使用基于物品协同过滤算法为教育平台在线课程推荐时,该算法不仅能够维持准确率与召回率之间的平衡,并且拥有良好的覆盖率,实现了为指定用户的个性化推荐。

4  结语

本文利用了某教育平台的近两年运营真实数据,运用数据分析与数据挖掘方法,初步分析了数据的各项指标信息。对协同过滤算法整体进行了详细的介绍,并通过基于物品的协同过滤算法对某教育平台线上课程进行用户推荐,并计算召回率、准确率和覆盖率等指标对推荐结果进行验证。在使用召回率、准确率和覆盖率时,三者检验的结果分别为17.25%,20.59%,72.88%,说明此算法在解决教育平台在线课程推荐的案例中有着优良的效果。今后将会尝试获取更加丰富的教育平台数据,并与其他类型的协同过滤算法进行结合,解决冷启动问题以提高推荐准确率。

参考文献:

[1] 孔德宇,孔若阳,赵燕慧,等.基于层次分析法的在线教育平台课程推荐研究[J].科技视界,2020(10):32-34.

[2] 张楠.面向在线教育的学习资源推荐方法研究与实现[D].西安:西安电子科技大学,2018.

[3] 陈子豪.在线教育中个性化推荐课程算法的研究与实现[D].北京:北京邮电大学,2017.

[4] 王永固,邱飛岳,赵建龙,等.基于协同过滤技术的学习资源个性化推荐研究[J].远程教育杂志,2011,29(3):66-71.

[5] 李星雨,宋娜,何锦儿,等.基于协同过滤算法的个性化课程推荐服务[J].现代信息科技,2019,3(24):121-122,125.

[6] 李娜.基于混合协同过滤的高校选课推荐方法研究[D].长沙:中南大学,2013.

[7] 吕杰,关欣,李锵,等.一种融合用户上下文信息和动态预测的协同过滤推荐算法[J].小型微型计算机系统,2016,37(8):1680-1685.

[8] 王婵.一种基于加权因子的混合协同过滤算法[J].电脑知识与技术,2018,14(9):14-16.

[9] 张玉叶.基于协同过滤的电影推荐系统的设计与实现[J].电脑知识与技术,2019,15(6):70-73.

[10] 王娜,何晓明,刘志强,等.一种基于用户播放行为序列的个性化视频推荐策略[J].计算机学报,2020,43(1):123-135.

[11] 葛昊,叶艳,包西林,等.基于主题模型的英语写作批阅系统个性化推荐模块设计与实现[J].科技和产业,2013,13(6):151-155.

[12] 张云洲.单类协同过滤推荐算法的研究[D].合肥:中国科学技术大学,2018.

【通联编辑:唐一东】