一种基于异构信息网络与深度学习的课程推荐系统的制作方法

文档序号:17890626发布日期:2019-06-13 15:36阅读:224来源:国知局
一种基于异构信息网络与深度学习的课程推荐系统的制作方法

本发明涉及一种基于异构信息网络与深度学习的课程推荐系统,属于计算机人工智能领域。



背景技术:

随着互联网的普及和迅猛发展,如今互联网已经成为人们最重要的获取信息的渠道。互联网能打破时间与空间的局限,使人们能够更高效的获取信息,而在线教育就顺应了人们从互联网高效获取知识的需求,学习者足不出户便可接触自己感兴趣的教育资源。由于在线教育发展导致的课程数量激增,在线教育平台也面临着信息过载的情况。在选择课程时,学习者面对数量庞大琳琅满目的课程会感到不知所措。因此,如何帮助学习者选择恰当的课程开展个性化学习成为在线教育平台建设亟待解决的关键问题。

推荐系统是解决这一问题的一种十分有效的方式。目前在线课程领域的推荐系统主要还是使用传统的关联规则分析,协同过滤或矩阵分解的技术。如baher等对比分析了四种关联规则分析算法在课程推荐上的推荐效果,最终发现先验关联规则算法的效果最优并将其应用于课程推荐系统中(参见文献:bahers,lobolmrj.acomparativestudyofassociationrulealgorithmsforcourserecommendersystemine-learning[j].internationaljournalofcomputerapplications,2012,39(1):48-52.)陈永康等使用apriori算法和协同过滤算法对真实的在线学习数据,网络招聘数据以及个人信息进行关联规则挖掘,并在此基础上构建了一个基于大数据的在线就业课程推荐系统(参见文献:陈永康,章美仁.基于大数据的在线就业课程推荐系统[j].电子商务,2017(4):72-73.)。shah等提出了一种基于相似度正则化低秩矩阵分解技术的推荐算法,该算法能快速而稳定对预测用户-物品矩阵进行预测,并将其应用于在线课程的推荐系统。(参见文献:shahd,shahp,banerjeea.similaritybasedregularizationforonlinematrix-factorizationproblem:anapplicationtocourserecommendersystems[c]tencon2017ieeeregion10conference.ieee,2017:1874-1879.)。徐江红等结合推荐算法中的矩阵分解技术,建立基于专业相关性、高值学分、实操性、教师评分和娱乐性为潜在因子的用户-潜在因子和课程-潜在因子的关系矩阵模型,最终结合余弦相似度算法,计算出用户受潜在因子的影响程度与课程对潜在因子贡献程度的相似度,并将相似度大的课程推荐给学生(参见文献:徐江红,赵婉芳,赵静雅.基于潜在因子算法的课程推荐系统研究[j].微处理机,2017,38(5):40-43.)。这些方法虽然可以取得不错的推荐效果,但还存在以下局限性:

(1)传统的课程推荐系统更多的只考虑对用户和课程的学习关系进行建模,很少引入其他的辅助信息来参与推荐,因此推荐效果还有一定的提升空间。

(2)在引入辅助信息来参与推荐时,传统的推荐系统只是简单的将辅助信息作为特征来引入,并没有相应的系统模块去针对辅助信息的形式来构建辅助信息与用户和课程之间的高阶关系。

针对上述问题,本发明提出了一种结合异构信息网络中的有效子网络与深度学习的课程推荐系统,将异构信息网络作为辅助信息引入到推荐系统中,并设计相应的系统模块来对异构信息网络中的有效子网络进行建模,最终推荐系统基于深度学习模型来学习异构信息网络与用户和课程间的高阶关系,并为用户推荐其可能感兴趣的课程。



技术实现要素:

本发明的技术解决问题:解决传统推荐系统对辅助信息利用不足以及如何对辅助信息进行有效建模的问题,提供一种结合异构信息网络中的有效子网络与深度学习的课程推荐系统,从而保证能更精准的为用户推荐可能感兴趣的课程,提高用户的学习积极性。

本发明提出的基于异构信息网络与深度学习的课程推荐系统在deepfm深度学习模型的基础上,引入了异构信息网络中的有效子网络信息,并针对效子网络设计了单独的系统结构,使得课程推荐系统的推荐效果更佳精准。

本发明的技术解决方案:基于异构信息网络与深度学习的课程推荐系统,如图1所示,包含如下三个系统模块:

1)课程异构信息网络节点向量化模块;

2)有效子网络提取模块;

3)基于有效子网络的深度学习课程推荐模块。

通过构建上述三个系统模块,可以完成本发明基于异构信息网络与深度学习的课程推荐系统,其中课程异构信息网络节点向量化模块以及有效子网络提取模块是本发明的基础部分,基于有效子网络的深度学习课程推荐模块是本发明的核心部分。

3.1课程异构信息网络节点向量化模块:

首先对异构信息网络及其相关的概念进行定义。

定义1异构信息网络:异构信息网络是一种有向图并且满足如下条件:

1.包含一个实体映射函数其中表示一个预先定义好的实体集合。

2.包含一个边映射函数其中表示一个预先定义好的边集合。

3.实体集合与边集合满足

一个简单的课程异构信息网络,如图2所示。在课程异构信息网络中,实体也称为节点,而边可以称为关系。在图2中包含了许多用户,课程,课程类型,学校等节点,同时也包含了节点间的关系。如用户与课程相连表示用户对课程的选学关系,课程与学校向量表示课程由该学校开设的从属关系等。

定义2元路径实例:给定异构信息网络中的两个实体起始实体到终止实体元路径实例为在异构信息网络中从所经过的路径。

定义3元路径实例类型:起始实体到终止实体所经过的实体所属类别的顺序(c1-c2-c3…-cn)。

在图2中,一个从用户1到课程1的元路径实例为(用户1-课程1-用户2-课程2)。而这个元路径实例所属的类型为(用户-课程-用户-课程)。

定义4用户-课程隐式反馈矩阵:给定用户集合以及课程集合用户-课程隐式反馈矩阵中的每一个元素ru,i满足条件:当用户u学习过课程i,则ru,i=1,否则ru,i=0。

课程异构信息网络节点向量化模块的主要功能是:根据输入的异构信息网络数据以及用户-课程隐式反馈矩阵数据,将异构信息网络中的节点转化为向量,生成节点-向量查询表供有效子网络提取模块和基于有效子网络的深度学习课程推荐模块调用。

课程异构信息网络节点向量化模块实现的过程如下:

(1)元路径实例提取:基于用户-课程隐式反馈矩阵中值每一个为1的点rij,提取用户i到课程j在课程异构信息网络中的n个元路径实例,这些元路径实例必须属于提前选定的k种元路径实例类型。

(2)生成正反馈节点对:对于每一个元路径实例,将元路径实例中出现的节点两两组合成正反馈节点对,若元路径实例中包含m个节点,则可以产生m(m-1)/2个正反馈节点对。

(3)生成负反馈节点对:对于每一个元路径实例,将元路径实例中出现的每一个节点,与任意3(m-1)/2个元路径实例中未出现的节点进行两两组合生成负反馈节点对,若元路径实例中包含m个节点,则共可以产生3m(m-1)/2个负反馈节点对。

(4)初始化节点向量:为正反馈节点对与负反馈节点对中的每一个节点分别初始化一个d维的向量作为该节点的向量表示。

(5)最小化目标函数:使用正反馈节点对与负反馈节点对的向量来构造并最小化目标函数,在最小化目标的过程中不断更新节点的向量。所选取的目标函数如公式1所示:

公式1:

其中,li代表对第i个节点的目标函数,vi表示节点i的向量表示,vj表示与节点i相对应的正反馈节点j,σ函数为sigmiod函数,n(vi)′表示由节点i产生的负反馈节点对中负反馈节点的集合,vt表示负反馈集合中节点t的向量表示,log表示以2为底的对数函数。

(6)输出节点-向量查询表:目标函数最小化完成后,所有将节点以及其向量表示构造成节点-向量查询表,并输出。

3.2有效子网络提取模块:

首先对相关概念进行如下定义:

定义5子网络:给定异构信息网络中的两个实体起始实体到终止实体之间的子网络为包含至少1个元路径实例中出现的实体和边的异构信息网络。

定义6子网络类型:若之间的子网络内仅包含同一种类型的元路径实例,则此类型为该子网络类型。

有效子网络提取模块的功能是:基于输入的节点-向量查询表、异构信息网络数据以及用户-课程隐式反馈矩阵数据,处理并生成基于有效子网络的深度学习课程推荐模块所需的用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本以及用户-课程负反馈有效子网络。

有效子网络提取模块实现的过程如下:

(1)生成用户-课程正反馈样本:基于用户-课程隐式反馈矩阵中每一个值为1的点rij,使用对应的用户i和课程j作为一条正反馈样本。

(2)生成用户-课程负反馈样本:基于用户-课程隐式反馈矩阵中每一个值为1的点rij,随机抽取5个rik为0的点对应的课程k,分别与用户i组合生成5条负反馈样本。

(3)生成用户-课程正反馈有效子网络与用户-课程负反馈有效子网络:对于所有用户-课程正反馈样本和用户-课程正反馈样本中的每一对用户i与课程j,产生k个课程异构信息网络中从用户i节点到课程j节点的不同类型的有效子网络。一般而言,提取,课程异构信息网络中用户i节点到课程j节点属于(c1-c2-c3…-cn)类型的有效子网络的过程为:

(3.1)元路径实例生成:(c1-c2-c3…-cn)类型元路径实例生成时,会遍历课程异构信息网络并获取用户i节点到课程j节点中所有属于(c1-c2-c3…-cn)类型的元路径实例。

(3.2)节点提取:为属于c2~cn-1类型的节点,分别提取每个类型中的m个节点,节点的提取采用相同的方法:对提取的元路径实例中相应位置属于该类型的所有节点,计算这些节点与头尾节点的相似度,并取相似度最高的前m个节点作为该类型的提取结果。其中,节点p与头尾节点的相似度计算公式如公式2所示:

公式2:

其中,simh,t,p表示节点p与头节点h和尾节点t的相似度,vh表示头节点的向量,vt表示尾节点的向量,vp表示节点p的向量。

(3.3)有效子网络生成:根据课程异构信息网络中的拓扑结构,提取出包含用户i节点,物品i节点,各类型节点的提取结果和相关的边的子网络作为有效子网络。

(4)输出用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本以及用户-课程负反馈有效子网络。

3.3基于有效子网络的深度学习课程推荐模块:

与传统基于协同过滤模型的课程推荐系统和基于深度学习的课程推荐系统不同,本发明实现了一个可以使用有效子网络作为辅助信息的深度学习课程推荐系统。基于有效子网络的深度学习课程推荐模块是推荐系统中的核心模块。以下简称课程推荐模块。课程推荐模块基于deepfm模型,并在此基础上为引入有效子网络设计了特殊的模型网络结构。

课程推荐模块会为每一个用户和课程学习学习相应的嵌入向量,并且会为输入模型的用户-课程对,使用特殊的注意力-卷积结构来学习到与该用户-课程对相关的多个不同类型有效子网络的向量表示,然后将用户嵌入向量、物品潜入向、多个有效子网络向量组合,并分别输入到fm学习层和deep学习层去学习浅层和深层的不同表示,这样的方式将进一步的提高推荐效果。

课程推荐模块的功能是:以用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本、用户-课程负反馈有效子网络以及节点-向量查询表作为输入,最终会训练一个深度学习课程推荐模型,此模型可以为每一个输入的用户-课程进行评分预估,并依据预估的评分为来为用户推荐其预估评分高的课程。

课程推荐模块实现的过程如下:

(1)初始化模块参数、用户隐向量和物品隐向量:根据用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本、用户-课程负反馈有效子网络以及节点-向量查询表来初始化模块的参数以及用户和物品的隐向量。

(2)有效子网络向量化:将用户-课程正反馈有效子网络和用户-课程负反馈有效子网络中的所有的k种类型的有效子网络转化为向量。转化过程会经过如下步骤:

(2.1)获取层次向量表示:对于一个(c1-c2-c3…-cn)类型的有效子网络而言,将其看作是一个有c1-c2-c3…-cn层次的网络,每一层由属于该类别的节点组成。可以为c2~cn-1层计算相应的层次向量表示(c1层和cn层只有一个节点,可直接使用节点-向量查询表中相应的向量来表示)。cl层向量表示vcl可通过公式3计算获得:

公式3:

其中,vcl为cl层的向量表示,p(cl)′为cl层包含的节点,vp为节点p在节点-向量查询表中相应的向量,αu,p,i表示该向量的权重,而对于每一个αu,p,i,由公式4和公式5计算得到:

公式4:

公式5:

在公式4中,表示初始权重,函数f表示sigmoid函数,wu,wi,wp均为权重向量,vu表示c1层的单个节点的节点向量,vi表示cn层的单个节点在节点-向量查询表中相应的向量,vp与公式3中的vp含义相同,b表示偏置项。

在公式5中,αu,p,i表示向量权重,与公式4中的含义相同,p(cl)′为cl层包含的节点,表示cl层包含的节点t的初始权重,函数exp(x)表示自然对数e的x次方。

(2.2)计算有效子网络向量:将步骤(2.1)中获取到的n个层次向量按最后一维拼接成矩阵xp在将xp经过卷积变换,得到类别g子网络的向量表示vg。

(3)计算fm学习层的输出:将用户隐向量和物品隐向量与步骤(2)中得到的有效子网络向量作为输入,使用fm算法计算出m学习层的输出结果。

(4)计算deep学习层的输出:将用户隐向量和物品隐向量与步骤(2)中得到的有效子网络向量作为输入,使用mlp多层感知机算法计算出deep学习层的输出。

(5)最小化目标函数:将步骤(3)和步骤(4)的输出结合,得到模型的预测结果。使用预测结果来构造目标函数,并在最小化目标函数的过程中不断更新模块参数、用户隐向量和物品隐向量。在最小化目标函数时,选取的目标函数如公式6所示:

公式6:

其中,lu,i表示对用户u和课程i的损失函数,为模型对正反馈样本中用户u和课程i的预测结果,n′为当前用户u和课程i对应的负反馈样本对中的课程集合,为模型对用户u和负反馈样本对中的课程集合内的课程t的预测结果,log表示以2为底的对数函数;

(6)生成课程推荐模型:目标函数最小化完成后,可生成课程推荐模型。课程推荐模型可以为每一个输入的用户-课程进行评分预估,并依据预估的评分为来为用户推荐其预估评分高的课程。

本发明与现有技术相比的优点在于:课程推荐系统可以有效解决在线教育领域中信息过载的问题,帮助学习者选择恰当的课程开展个性化学习。传统的课程推荐系统只考虑对用户和课程的学习关系进行建模,存在对辅助信息的利用不足以及无法对辅助信息进行有效建模的缺点。针对上述缺点,本发明提出了一种结合异构信息网络中的有效子网络与深度学习的课程推荐系统,系统包含课程异构信息网络节点向量化模块、有效子网络提取模块和基于有效子网络的深度学习课程推荐模块三大模块,在deepfm深度学习模型的基础上,引入了异构信息网络中的有效子网络信息,并针对效子网络设计了单独的系统结构,使得课程推荐系统的推荐效果更佳精准。在实际应用中发现,基于异构信息网络与深度学习的课程推荐模型比传统的基于关联规则分析,协同过滤以及矩阵分解的推荐模型效果更好。

附图说明

图1基于异构信息网络与深度学习的课程推荐系统集成图;

图2课程异构信息网络示意图;

图3课程异构信息网络节点向量化模块实现过程;

图4有效子网络提取模块实现过程;

图5基于有效子网络的深度学习课程推荐模块实现过程。

具体实施方式

以下结合具体实例和附图对本发明进行详细说明。

如图1所示,基于异构信息网络与深度学习的课程推荐系统包含三个模块,分别是课程异构信息网络节点向量化模块、有效子网络提取模块、基于有效子网络的深度学习课程推荐模块。

整体实现过程如下:

(1)从数据库中读取用户信息数据、课程信息数据和用户-课程学习数据,并构造课程异构信息网络和用户-课程隐式反馈矩阵。其中,课程异构信息网络中包含四种类型的节点,分别是用户、学科学段、课程、课程类型。而对于用户-课程隐式反馈矩阵,若在用户-课程学习数据中用户i对课程j具有选课行为记录,则用户-课程隐式反馈矩阵中rij为1,否则为0。

(2)选定4种元路径实例类型作为元路径实例提取的依据,分别是:(用户-课程-用户-课程)、(用户-学科学段-用户-课程)、(用户-课程-课程类型-课程)、(用户-学科学段-课程类型-课程)。然后将课程异构信息网络和用户-课程隐式反馈矩阵作为课程异构信息网络节点向量化模块的输入,把课程异构信息网络中的节点转化为向量,生成节点-向量查询表。

(3)将节点-向量查询表、异构信息网络数据以及用户-课程隐式反馈矩阵数据输入有效子网络提取模块,处理并生成基于有效子网络的深度学习课程推荐模块所需的用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本以及用户-课程负反馈有效子网络。

(4)以用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本、用户-课程负反馈有效子网络以及节点-向量查询表作为基于有效子网络的深度学习课程推荐模块的输入,训练深度学习课程推荐模型。

(5)对于每一个用户,使用课程推荐模型,为该用户未学习过的所有课程进行评分预估,并将分数最高的前20门课程作为推荐结果。

上述步骤中各模块的具体实现过程如下:

5.1课程异构信息网络节点向量化模块

课程异构信息网络节点向量化模块实现过程如图3所示:

(1)元路径实例提取:对于用户-课程隐式反馈矩阵中值每一个为1的点rij,提取用户i到课程j在课程异构信息网络中的元路径实例,包括:20个(用户-课程-用户-课程)类型的元路径实例、20个(用户-学科学段-用户-课程)类型的元路径实例、20个(用户-课程-课程类型-课程)类型的元路径实例、20个(用户-学科学段-课程类型-课程)类型的元路径实例。

(2)生成正反馈节点对:对于每1个元路径实例,将元路径实例中出现的节点两两组合成正反馈节点对,每1个元路径实例将产生6个正反馈节点对。

(3)生成负反馈节点对:对于每1个元路径实例,将元路径实例中出现的每一个节点,与任意6个在元路径实例中未出现的节点进行两两组合生成负反馈节点对,每1个元路径实例将产生24个负反馈节点对。

(4)初始化节点向量:为正反馈节点对与负反馈节点对中的每一个节点分别初始化一个32维的向量作为该节点的向量表示。

(5)最小化目标函数:使用正反馈节点对与负反馈节点对的向量来构造并最小化目标函数。

(6)输出节点-向量查询表:目标函数最小化完成后,所有将节点以及其向量表示构造成节点-向量查询表,并输出。

5.2.有效子网络提取模块

有效子网络提取模块实现过程如图4所示:

(1)生成用户-课程正反馈样本:基于用户-课程隐式反馈矩阵中每一个值为1的点rij,使用对应的用户i和课程j作为一条正反馈样本。

(2)生成用户-课程负反馈样本:基于用户-课程隐式反馈矩阵中每一个值为1的点rij,随机抽取5个rik为0的点对应的课程k,分别与用户i组合生成5条负反馈样本。

(3)生成用户-课程正反馈有效子网络:对于所有用户-课程正反馈样本和中的每1对用户i与课程j,产生4个在课程异构信息网络中从用户i节点到课程j节点的有效子网络,包括1个(用户-课程-用户-课程)类型有效子网络、1个(用户-学科学段-用户-课程)类型有效子网络、1个(用户-课程-课程类型-课程)类型有效子网络、1个(用户-学科学段-课程类型-课程)类型有效子网络。以(用户-学科学段-课程类型-课程)类型有效子网络为例,提取该子网络的过程为:

(3.1)元路径实例生成:遍历课程异构信息网络并获取用户i节点到课程j节点中所有属于(用户-学科学段-课程类型-课程)类型的元路径实例。

(3.2)节点提取:分别提取1个用户节点,30个学科学段节点,30个-课程类型节点和1个课程节点。节点提取的方法相同,以提取学科学段节点为例,计算每一条(用户-学科学段-课程类型-课程)类型的元路径实例中学科学段节点与用户节点和课程节点的相似度,并将相似度最高的前30个节点作为提取结果。

(3.3)有效子网络构建:根据课程异构信息网络中的拓扑结构,提取出包含1个用户节点,1个物品节点,30个学科学段节点,30个课程类型节点和相关的边的子网络作为有效子网络。

(4)生成用户-课程负反馈有效子网络:对于所有用户-课程正负馈样本和中的每1对用户i与课程j,产生4个在课程异构信息网络中从用户i节点到课程j节点的有效子网络,包括1个(用户-课程-用户-课程)类型有效子网络、1个(用户-学科学段-用户-课程)类型有效子网络、1个(用户-课程-课程类型-课程)类型有效子网络、1个(用户-学科学段-课程类型-课程)类型有效子网络。提取过程如步骤(3.1)到步骤(3.3)所示。

(5)输出用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本以及用户-课程负反馈有效子网络。

5.3.基于有效子网络的深度学习课程推荐模块

基于有效子网络的深度学习课程推荐模块实现过程如图5所示:

(1)初始化模块参数、用户隐向量和物品隐向量:根据用户-课程正反馈样本、用户-课程正反馈有效子网络、用户-课程负反馈样本、用户-课程负反馈有效子网络以及节点-向量查询表来初始化模块的参数以及用户和物品的隐向量。

(2)有效子网络向量化:将用户-课程正反馈有效子网络和用户-课程负反馈有效子网络中的所有的4种类型的有效子网络转化为向量。以(用户-学科学段-课程类型-课程)类型有效子网络为例,向量转化过程会经过如下步骤:

(2.1)获取层次向量表示:使用公式3,公式4和公式5,分别计算出用户层次向量表示、学科学段层次向量表示、课程类型层次向量表示、课程层次向量表示。

(2.2)计算有效子网络向量:将步骤(2.1)中获取到的用户层次向量表示、学科学段层次向量表示、课程类型层次向量表示、课程层次向量表示,按最后一维拼接成矩阵x,在将x经过卷积变换,得到(用户-学科学段-课程类型-课程)类型有效子网络的向量表示v。

(3)计算fm学习层的输出:将用户隐向量和物品隐向量与步骤(2)中得到的有效子网络向量作为输入,使用fm算法计算出m学习层的输出结果。

(4)计算deep学习层的输出:将用户隐向量和物品隐向量与步骤(2)中得到的有效子网络向量作为输入,使用mlp多层感知机算法计算出deep学习层的输出。

(5)最小化目标函数:将步骤(3)和步骤(4)的输出结合,得到模型的预测结果。使用预测结果来构造目标函数,并在最小化目标函数的过程中不断更新模块参数、用户隐向量和物品隐向量。

(6)生成课程推荐模型:目标函数最小化完成后,可生成课程推荐模型。课程推荐模型可以为每一个输入的用户-课程进行评分预估,并依据预估的评分为来为用户推荐其预估评分高的课程。

应用举例:本发明的系统及方法已成功应用于奥鹏在线教育平台的教师培训系统,为各省市参与培训的教师进行培训课程的推荐。在线ab测试中,基于异构信息网络与深度学习的课程推荐系统在ab测试中的各项指标均优于基于协同过滤,关联规则分析以及矩阵分解的课程推荐系统,证明了本发明系统及方法具有较好的推荐效果。

本发明未详细描述的部分属于本领域公知技术。

以上虽然描述了本发明的具体实施方法,但是本领域的技术人员应当理解,这些仅是举例说明,在不背离本发明原理和实现的前提下,可以对这些实施方案做出多种变更或修改,因此,本发明的保护范围由所附权利要求书限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1