1.本发明属于教育信息化领域,具体涉及一种基于在线教育平台数据的课程推荐方法,涉及学生基础属性以及学生社交关系的在线课程推荐方法。
背景技术:
2.随着信息技术的飞速发展,信息资源以几何增长的形式存储在互联网平台,人们需要花费越来越多的时间来查找自己所需要的信息资源。近些年来,推荐算法在越来越多的平台开始使用,比如在电影推荐、书籍推荐等方面取得了不错的成效,为人们的日常生活节约了宝贵的时间。在互联网在线教育平台,无数的学子们在使用过程中产生了大量的学习行为数据,利用这些历史行为数据,可以对学生进行个性化课程推荐,使学生更加快速的获取自己想要的课程,从而达到更好的学习效果。
3.自从2013年在人工智能领域研究人员正式提出了词向量技术,即embedding技术。在此之后embedding技术在人工智能各个领域迅速推广,如自然语言处理领域以及智能推荐算法领域。现今在推荐算法领域,越来越多的人将各种不同的物品转换成向量,通过embedding技术,数字向量可以代表一种事物,这是一种数字化的表达方式,如此,推荐算法在计算事物之间的相似度更加准确。在图神经网络中,将物品或者人构造节点,通过人与人、人与物之间的关系,构造出图神经网络中节点与节点之间形成的边的关系。图神经网络使得人与人、人与物品之间形成了一个整体,不再是彼此之间相互独立的关系,通过图神经网络得到的向量在代表人或事物的时候更加准确有效。
技术实现要素:
4.本发明的目的就是为了克服现有技术中的不足之处,利用embedding技术以及图神经网络模型,提供一种基于在线教育平台数据的课程推荐方法,该方法以学生为中心,考虑了不同学生之间的交互数据的影响,全面发挥数据的价值,利用前沿的图神经网络gnn算法模型,深度挖掘了学生与学生之间的关系,同时也考虑了课程与课程之间的相似度、学生与课程的历史交互数据,从而实现更加可靠的推荐方式。
5.本发明的目的是通过如下技术措施来实现的。
6.一种基于在线教育平台数据的课程推荐方法,该课程推荐方法是基于学生基础信息以及学生在学习过程中产生的历史数据,包括以下步骤:
7.(1)从在线教育平台数据库中获取学生与课程的相关数据d0;
8.(2)从数据d0中得到学生的相关数据,包括基础信息数据d1、学生与课程之间的历史交互数据d2、学生与学生之间的历史交互数据d3;
9.(3)根据基础信息数据d1建立学生基础属性数据矩阵x;
10.(4)根据学生与课程之间的历史交互数据d2建立学生参加过的课程序列,获取每一门课程的向量表达方式,即course_embedding_dict,其数据样式为{“course id”:“course embedding”};
11.(5)再次根据学生与课程之间的历史交互数据d2获取每一个学生对参加过的课程的评分,并建立一个评分矩阵r,其数据样式为{“student id”,“course id”,“course grade”};
12.(6)根据学生与学生之间的历史交互数据d3,建立学生与学生之间的邻接矩阵a,矩阵a存储的值为0或1,0代表学生之间产生的交互,1代表学生之间并未产生交互;
13.(7)通过矩阵x与矩阵a以及gae算法模型建立一个字典student_embedding_dict,其数据样式为{“student id”:“student embedding”},其中student embedding是一种向量,其维度大小与course embedding维度大小保持一致;
14.(8)通过字典course_embedding_dict、student_embedding_dict以及评分矩阵r计算每一个学生对于未参加过的课程的预估评分。
15.(9)根据预估评分得到针对每一个学生的待推荐课程列表,从待推荐课程列表中按照预估评分的降序排列方式选取top n作为实际推荐课程推送给相关学生。
16.本发明基于在线教育平台数据的课程推荐方法与现有课程推荐方式相比,具有如下优势:
17.本发明在数据利用方面更加全面,考虑到学生与学生之间交互的影响:如果学生之间产生了交互行为,如关注、点赞,那么其中一位学生更有可能需要学习其关注或点赞对象所学习过的课程。另外,本发明利用embedding技术使得在推荐流程中学生与课程以更准确的数据化方式表达出来。
附图说明
18.图1是本发明基于在线教育平台数据的课程推荐方法流程图。
具体实施方式
19.下面将结合附图及实施例,对本发明中的技术方案进行具体描述。显然所描述的实施例是本发明部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
20.下面结合图1,具体介绍本发明的实现步骤。
21.s1,如图1所示,以数据埋点或者数据日志的方式获取学生与课程的相关数据,并将这些数据存储在本地服务器中的数据库得到相关数据d0。
22.s2,首先从在线教育平台的数据库下载学生的基础信息数据d1,学生与课程进行历史交互数据d2,学生与学生之间的历史互动数据d3,对于d1、d2以及d3数据中有缺失的部分,如果缺失比例大于20%,利用众数填补缺失数据,如果缺失比例小于20%,直接删除该条数据。
23.s3,根据基础信息数据d1,获取学生的总人数n,遍历每一个学生的基础数据,建立一个关于学生的属性数据矩阵x
n*p
,其中p代表的是学生的基础属性维度大小。学生的基础属性维度包括但不限定为年龄、性别、专业等。x
n*p
的数据样式为{“student id”,“age”,“highest degree”,“post count”,“reply count”“is student”,“learn long time count
”…
}。
24.s4,根据学生与课程进行历史交互数据d2遍历每一个学生与课程的交互数据,建
立学生参加过的课程序列,该序列按照学生与课程交互的时间顺序排列,将所有学生的课程序列组合起来形成一个列表course_embedding_dict,其数据样式为{“student id”,[“math id”,“english id”,“physics id
”…
]},将该数据输入到genism算法库中从而得到一个字典,其数据样式为{“course id”:“course embedding”},其中course embedding一种向量,其维度大小是设为d。genism是一个python开源库,可以运行在linux,windows以及macos不同平台,只要将语料库作为输入并设置向量大小即可得到事物的向量表达方式,学生的课程序列即可作为语料库输入到genism库当中,最终得到课程向量的表达结果。
[0025]
s5,根据学生与课程进行历史交互数据d2,遍历每一个学生与课程的交互数据,建立一个关于学生与课程交互信息的矩阵s
m*3
,其中m代表的是学生与课程之间交互形成数据量,一个学生可以对应多门课程,s
m*3
的数据样式为{“student id”,“course id”,“grade”},任意一名学生i对一门课程j的真实评分grade记作rate
ij
。
[0026]
s6,根据学生与学生之间的历史互动数据d3,先获取学生总的人数n,然后建立一个邻接矩阵a
n*n
。对于矩阵a
n*n
里面第i行、第j列元素的值a
ij
,代表的是第i个学生与第j个学生的互动情况,对于i≠j的情况,第i个学生与第j个学生之间存在任意互动行为,则记a
ij
=1,否则a
ij
=0,对于i=j的情况,直接令a
ij
=1。
[0027]
s7,将获取的学生的属性数据矩阵x
n*p
以及上一步骤获取的邻接矩阵a
n*n
这两个矩阵输入到gae算法模型当中,得到所有每一个学生的向量表示,实例化数据样式为{“student id”,“student embedding”},并设定“student embedding”的维度大小为d。gae是一种基于gcn实现的gnn算法,该算法基于图的数据结构计算图中每一个节点embedding向量,利用pyg开源库可以实现该算法,其实现所需的基本步骤为设置两层gcn卷积层,再设置其激活函数为relu,relu函数是一种分段线性函数,把所有的负值都变为0,而正值不变。在算法训练时,设置相对熵函数为其损失函数,相对熵损失函数的数学表达形式为最后以随机梯度的训练方式得到学生的向量表达结果。
[0028]
s8,假设以上数据中每一个学生i的embedding向量为ui,每一门课程j的embedding向量为ci,从步骤s5中获取的每一个学生i对每一个课程的真实评分为rate
ij
,利用以下公式计算学生i对于课程j的预估得分为:
[0029][0030]
对此公式的解释如下:
[0031]
n(j)表示上过课程j的其他学生的集合,|n(j)|表示上过该课程j的所有的学生人数,product(ui,u
p
)表示学生i与学生p的向量点积,rate
pj
表示学生p对课程j的真实评分,s(i)表示学生i上过的其他课程的集合,|s(j)|表示学生i上过的其他课程总的数量,product(cq,cj)表示课程q与课程j的向量点积。
[0032]
s9,对步骤8中计算出的每一个学生对课程的预估评分进行降序排列,筛选并排除掉学生已经上过的所有的课程,最后得到针对每一个学生的待推荐课程列表,其数据样式为{“student id”,[“math id”,“english id”,“physics id
”…
]}。
[0033]
s10,从每位学生所有的待推荐课程中选取前n门课程推荐,n值大小一般取10。
[0034]
本说明书未作详细描述的内容,属于本专业技术人员公知的现有技术。
[0035]
应当说明的是,以上包含的本发明实例内容说明,是为了详解释本发明的技术特征。在不脱离本发明的前提下,所做出的若干改进和修饰也受本发明的保护,因此本发明的保护范围应当以本技术的权利要求所界定的内容为标准。
技术特征:
1.一种基于在线教育平台数据的课程推荐方法,其特征在于该课程推荐方法是基于学生基础信息以及学生在学习过程中产生的历史数据,包括以下步骤:(1)从在线教育平台数据库中获取学生与课程的相关数据d0;(2)从数据d0中得到学生的相关数据,包括基础信息数据d1、学生与课程之间的历史交互数据d2、学生与学生之间的历史交互数据d3;(3)根据基础信息数据d1建立学生基础属性数据矩阵x;(4)根据学生与课程之间的历史交互数据d2建立学生参加过的课程序列,获取每一门课程的向量表达方式,即courseembedding;(5)再次根据学生与课程之间的历史交互数据d2获取每一个学生对参加过的课程的评分,并建立一个评分矩阵r,其数据样式为{“student id”,“course id”,“course grade”};(6)根据学生与学生之间的历史交互数据d3,建立学生与学生之间的邻接矩阵a,矩阵a存储的值为0或1,0代表学生之间产生的交互,1代表学生之间并未产生交互;(7)通过矩阵x与矩阵a以及gae算法模型建立一个字典student_embedding_dict,其数据样式为{“student id”:“student embedding”},其中student embedding是一种向量,其维度大小与course embedding维度大小保持一致;(8)通过字典course_embedding_dict、student_embedding_dict以及评分矩阵r计算每一个学生对于未参加过的课程的预估评分;(9)根据预估评分得到针对每一个学生的待推荐课程列表,从待推荐课程列表中按照预估评分的降序排列方式选取top n作为实际推荐课程推送给相关学生。2.根据权利要求1所述的基于在线教育平台数据的课程推荐方法,其特征在于步骤(9)中n值取10。
技术总结
本发明属于教育信息化领域,提供一种基于在线教育平台数据的课程推荐方法,利用embedding技术以及图神经网络模型,基于学生基础信息以及学生在学习过程中产生的历史数据,考虑了不同学生之间的交互数据的影响,全面发挥数据的价值,利用前沿的图神经网络GNN算法模型,深度挖掘了学生与学生之间的关系,同时也考虑了课程与课程之间的相似度、学生与课程的历史交互数据,从而实现更加可靠的推荐方式。方式。方式。
技术研发人员:杨宗凯 刘智 刘三女牙 粟柱 张格
受保护的技术使用者:华中师范大学
技术研发日:2021.11.29
技术公布日:2022/3/8