APP下载

改进型协同过滤的网络课程推荐算法

2021-08-28高立强

电脑与电信 2021年6期
关键词:倾向性列表准确率

高立强 缪 凯

(南京工程学院计算机工程学院,江苏 南京 211167)

1 引言

随着信息技术和互联网的发展,知识共享的速度和体量得到了突破和飞跃。然而在信息技术加速知识传播的同时,不可避免地造成了信息过载现象(Information Overload)的问题[1]。无论是信息消费者还是信息生产者都遇到了很大的挑战。2020 年在疫情的冲击下,网络教育成为时代宠儿,在线课程也面临着信息过载的问题:用户急速增加,课程数量庞大,但质量参差不齐。为了充分发掘优质课程,满足用户复杂需求,需要一种针对网络课程的推荐算法。

2 国内外研究现状

目前,推荐系统大致分为以下几种:基于内容的推荐、协同过滤推荐、基于知识的推荐、基于网络结构的推荐、组合推荐及其他推荐[2]。其中,协同过滤算法利用用户的行为数据,通过分析所有用户的互动数据,使推荐列表能够越来越满足用户的个性化需求。协同过滤推荐一般分为两类:基于用户的协同过滤推荐算法和基于物品的协同过滤推荐算法[3]。基于用户的协同过滤算法的基本思想是找到与目标用户兴趣相似的用户集合所喜欢的而目标用户不认识的物品;而基于物品的协同过滤算法的基本思想是找到与目标用户喜欢的物品相似的物品[4]。协同过滤算法拥有善于推荐复杂的非结构化对象、善于发现兴趣点、推荐性能随用户增多而提升等特点。但也存在诸多问题,如冷启动、数据稀疏性、推荐质量依赖历史数据集等。

目前,大多数的推荐算法针对电子商务和图书电影音乐进行研究。针对网络课程的推荐算法相对研究较少。文献[5]中,通过引入对课程文本内容的挖掘,使用课程文本向量计算课程相似度,增加物品特征,进而预测目标用户对潜在课程兴趣集的评分,达到对目标用户进行课程推荐的目的。文献[6]中,对传统的基于内容的推荐算法在物品建模以及相似度计算方面存在的语义分析不足的缺陷进行改进,并提出了一种基于内容和word2vec的慕课推荐算法。文献[7]通过挖掘E-Learning 平台的用户数据特点,实现基于用户协同过滤的个性化课程推荐。

3 改进型协同过滤的网络课程推荐算法

3.1 简述

基于物品的协同过滤算法给用户推荐那些和他们之前喜欢的物品相似的物品,该算法并不利用物品的内容属性,它主要通过分析用户的行为记录计算物品之间的关联。该算法认为,物品A和物品B具有很大的关联性是因为喜欢物品A的用户大都也喜欢物品B。

在网络课程的推荐系统中,课程A和课程B之间具有很大的配合度是因为学习A 课程的用户大都也学习过B 课程。同时,专业知识的学习往往有很大的关联性,下一阶段的学习内容和过往学习通常属于同一学科科目。

本文的改进型网络课程推荐算法首先通过用户评分、课程完成度、收藏情况等反馈数据计算用户对于已选课程的兴趣度。然后根据课程所属大科目划分数据集,这样极大地增加了课程之间存在高配合度的概率,解决了数据稀疏性的问题。将这些课程构造成课程集合,利用不同用户对同一课程的兴趣度依次计算集合中所有课程之间配合度。根据配合度和用户已选课程的兴趣度计算用户对未知课程的兴趣度,生成排序列表。最后通过实验确定推荐N值,将前N个课程作为TopN列表推荐给用户。

3.2 计算用户对已知课程的兴趣度

利用课程完成度、收藏和评分等反馈数据,计算用户对已知课程的兴趣度,公式为:

rui取值范围[0,2],精确到万分位,数值越高代表兴趣度越高;Pui为用户u对课程i的评分,取值为[1,10]的整数,默认为7;Tui为用户u对课程i的完成度,取值范围[0,1],精确到百分位,Lui为用户u是否对课程i有收藏行为,若有则为1,反之为0。

3.3 获取课程集合

当课程数量较多时,在下一步计算物品配合度矩阵代价会很大,同时存在严重的数据稀疏性问题。由于同一大学科类目下课程之间的配合度要远高于不同学科之间课程的配合度,因此在计算课程配合度之前,先根据其所属的科目标签,划分不同的数据集。这样缩小了课程配合度的计算量,同时一定程度上缓解了数据稀疏性的问题。

3.4 计算课程间的配合度

定义当用户对已知课程的兴趣度rui>0.76 时,则视为有倾向性。根据上文所述的“学习A课程的用户一般也学习了B课程”,定义A、B课程间的配合度为:

其中,WAB表示A、B课程间的配合度,N(A)为对A课程有倾向性的用户数量,N(B)为对B 课程有倾向性的用户数量。

为了增加推荐的覆盖率,惩罚热门课程的权重。同时根据IUF(Inverse User Frequence),惩罚活跃用户的权重。修正后的配合度计算公式为:

其中,N(u)为用户u 有倾向性的课程数量。N(A)和N(B)分别为对A课程和B课程有倾向性的用户数量。

3.5 计算用户对未知课程的兴趣度

在得知同一大科目数据集中课程之间的配合度后,通过如下公式计算用户u对课程j的兴趣度:

其中,N(u)是用户有倾向性的课程集合,S(i,K)是和课程i配合度最高的K个物品的集合,wij是课程i和j的配合度,rui是用户u对课程i的兴趣度。由于测试的数据集较小,这里K取5。该公式的含义是,和用户历史上具有倾向性的课程配合度越高的课程,越有可能在用户的推荐列表中获得较高的排名。

3.6 获取推荐列表

在获得了用户对未知课程的兴趣度后,根据兴趣度排序推荐前N名课程,这里N的取值会显著影响覆盖率和准确度等评测指标,通过测试实验最终确定向用户推荐的TopN列表。

4 数据测试与结果分析

4.1 数据源

由于目前从大型公开课网站获取用户的选课情况等个人信息困难,为了顺利进行数据测试,我们采用了数据仿真模拟的方法,仅对计算机学科数据集进行仿真模拟。首先,爬取某网站计算机类别下的在线课程名称,再通过问卷调查的方式得到用户数据,包含历史行为和未来倾向。通过这种方式来最大限度模拟网络课程学习的真实场景。虽然实际在线学习的选课情况更加复杂,但以上实验数据模拟了用户在进行网络课程学习时的主观倾向,能够反映出实验算法的特点。本文通过比较同一数据集下N 的取值分析证明算法的效果。

4.2 推荐系统的评测指标

在网站提供推荐服务的时候,对于TopN 推荐算法一般采用准确率,召回率和覆盖率来进行预测准确率的判断。

(1)准确率的定义为:

R(u)是根据用户的行为给出的推荐列表,T(u)是用户的行为列表。

(2)覆盖率的定义为:

R(u)是根据用户的行为给出的推荐列表,I是总物品列表。

(3)召回率的定义为:

R(u)是根据用户的行为给出的推荐列表,T(u)是用户的行为列表。

4.3 测试内容与结果

由于不同的N值,将会显著影响到算法的各项评测指标的数值,因此,在实际的网站应用中,只有选择合适的推荐N值,才能取得最好的推荐效果。由于本文所选取的数据集较小,因此,N值为从1 到28,间隔3 选取N值,所得的数据如图1准确率,图2召回率,图3 F值图,图4覆盖率所示。

图1 准确率

图2 召回率

图3 F值

从图1 中可以看出,随着推荐数目N的不断增加,该算法所形成的准确率总体呈先上升后下降趋势,当N值取值为16 时,准确率取得最高,并随着N值的增大,准确率反而成一个下降趋势。因此,可以得出准确率与N值并不成明显的正相关或者负相关的关系。图2中所示,召回率随着推荐数据N的不断增加,总体呈一个上升趋势。由于推荐N值的增加,推荐数目也在提高,其跟用户实际行为列表的重复度也会随之提高,然而用户的行为列表是一定的,因此不难理解,随着推荐N值的提高,召回率呈现一个上升的趋势。然而准确率与召回率此消彼伏,与N值并没有一个很明显的正负相关关系,因此采用F值,即准确率与召回率的调和平均数来确定一个对于该数据集最合适的推荐N值。从图3 中可以看出,当N值取16时,所获得的F值最高,因此,在基于本数据集和本算法中,推荐N值取得16时,效果最佳。从图4 中可以看出,覆盖率随着N值的增加,明显呈一个上升的趋势,直到覆盖率稳定不变,达到最大值。

图4 覆盖率

5 总结

本文提出了改进型协同过滤的网络课程推荐算法,首先根据反馈数据计算用户对已知课程的兴趣度,然后根据用户倾向性计算同一学科类别数据集下课程间的配合度,并在计算中对热门物品和活跃用户附加惩罚以提高覆盖率,最后,根据用户对已知课程的兴趣度和配合度计算对未知课程的配合度并排序为推荐列表。通过实验验证了划分学科类别、计算兴趣度并判定倾向性、基于课程协同过滤等符合网络课程的特性,具有较好的网络课程推荐性能。

猜你喜欢

倾向性列表准确率
公众对我国足球归化运动员的情感倾向性——基于大数据的微博情感分析
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
学习运用列表法
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
扩列吧
分析我国体育新闻报道中的倾向性文献综述
论汪曾祺小说的真实性和倾向性
文化适应视角下的中介语倾向性探讨