基于深度学习的在线推荐学习系统设计与开发

2021-11-03 03:43陈建峡周世星
湖北工业大学学报 2021年5期
关键词:卷积神经网络模块

张 宇, 程 玉,陈建峡, 周世星, 高 奕

(湖北工业大学计算机学院, 湖北 武汉 430068)

随着在线学习系统上发布的课程不断增多,用户容易由于课程资源的繁多而不知所措,提高了用户获取所需资源的难度。智能推荐系统可以明显改善以上问题。智能推荐技术能够在纷繁复杂的信息里提取出需要的信息,也可以根据日志信息进行用户推荐。时至今日,推荐系统的研究热点和被关注程度都很高,应用前景也很宽广。传统的推荐方法尽管可以完成推荐任务,但是面对冷启动和习数矩阵的问题效果有限。而融合多元异构信息的混合推荐方法可以缓和以上问题,但是在辅助信息具有大规模、多模态、数据异构、数据稀疏以及分布不均匀等特点时也面临挑战。

目前,随着深度学习在很多相关领域比如推荐和自然语言处理领域的推广,基于深度学习的推荐系统比起传统的推荐模型更加强大,推荐质量更高。2015年,纪淑娟等人[1]通过神经网络获取了用户视频中的隐形评分;李贵、王爽等人[2]通过三维张量模型,对三种实体(用户-物品-标签)完成了潜在语义关联分析,提升了标签推荐系统的准确性;LiSheng等人[3]结合矩阵分解和深度学习提出了一种协同过滤深层体系结构,使用分解评分矩阵,然后使用深度学习得到评分和边缘信息里的潜在因素,来使得协同过滤时潜在学习因素效果更加明显。2016年,TrapitBansal等人[4]提出了一种可以很好解决冷启动问题的方法,这种方法使用了深递归神经网络;张福正等人[5]在提前结构表示时使用TransR的异构网络嵌入方法,然后使用叠加去噪自动编码器得到项目文本表示、通过堆叠卷积自动编码器得到项目视觉表示,并在此基础上提出了协作知识库嵌入(CKE)集成框架。2017年LiSheng等人建立了一种深层协同神经网络模型,缓解了该领域的数据稀疏问题;易义峰、高宜聪等人为了完善基于知识的推荐系统,针对传统基于知识的推荐推出了一种认知信息增益的测量模型。

由于Youtube网站的视频资源具有数据规模大、数据新鲜度高、数据早上大等特点,COVINGTON等[6]选择DNN来处理离散以及连续变量。但是,通过学习获得的视频和用户向量在分布上可能还是存在偏差。后来,出现了一类结合DNN和协同过滤推进算法的模型,它包括特征表示和评分预测两大模块,它是ZHANG等人[7]为了提高推荐性能提出的。LIU等人[8]提出了上下文感知递归神经网络(CA-RNN),它通过对上下文和序列信息进行建模可以提高推荐效果。YING等人[9]为了降低模型训练时的复杂度提出了可伸缩的图卷积神经网络(GCN)算法-PinSage,通过使用局部卷积可以达到目的。TANG等人[10]提出一种基于卷积的序列嵌入模型——Caser模型,这种模型可以为长期兴趣和序列模式的获得给出一种简洁且统一的网络结构。KIM等人[11]提出了一种上下文感知模型,这种模型在概率矩阵分解(PMF)中的卷积矩阵分解(ConvMF)中集成了卷积神经网络,它在处理上下文信息的稀疏问题时有着不错的效果。TUAN 等人[12]提出了一种可以对不同类型和性质的数据进行建模的三维卷积神经网络。深度学习不仅在挖掘用户和项目间非线性关系时很高效,还可以在大量数据源中获取数据本身内部的复杂关系。

1 相关技术

1.1 推荐方法

传统的推荐方法主要分为基于内容的推荐方法、协同过滤的推荐方法和混合推荐方法,对于个性化的推荐系统来讲,一般包含着如下方面:用户、用户特征、对象特征模型以及推荐算法(图1)。

图 1 推荐系统架构

推荐系统从用户的交互信息记录与获取出发,分析抽取用户与物品的个性特征,并将这些信息传到推荐算法中,根据不同的推荐算法进行的训练与分析,将推荐信息反馈给用户,对象推荐模型的对象可以有多种,例如学习资源、课程、电影、音乐等。

1.2 基于卷积神经网络的推荐系统

卷积神经网络(CNN)是一种常见于深度学习领域的神经网络。使用CNN来构建训练模型有着训练复杂度低、训练参数少的优点,将它应用到推荐系统中可以显著提高准确性。

卷积神经网络包括输入层、卷积层、池化层、全连接层和输出层,其中卷积层和池化层组合形成了特征提取器。在卷积层中,上一层神经元只连接部分下一层神经元,并且在CNN中采用了权值共享,即卷积核,这不仅使得神经网络中的参数个数得到了明显的减少,还降低了过拟合的弊端。卷积神经网络原理见图2。

图 2 卷积神经网络原理

2 系统分析与设计

2.1 系统分析

系统中存在具有不同权限的用户:管理者与学习者。不同的用户对系统有着不同的透明度。学习者经过注册即可进行学习,进行课程的和在线实验案例的选择和浏览,在论坛进行发、回帖交流。管理者为最高权限角色。相应的功能有关键信息管理(学生、课程主要信息的管理),用户管理(用户的权限与信息),学习资源管理(课程资源,视频资源),后台管理,信息分析。

2.2 系统总体设计

2.2.1系统总体框架设计在线学习系统包含了多种子系统与业务功能,根据Vue.js的组件化和模块化思想,这些功能也分成了很多的模块和组件。组件化的系统各个功能之间的耦合性得以减低,而且在重用性方面有着质的变化。系统包括四层结构,即系统门户层、应用模块层、功能模块层与数据存数层(图3)。

图 3 系统框架

1)系统门户层:针对于不同的用户提供不同的服务。学习者可以进行视频学习,浏览课程资料与进行在线的提问;管理员可以进行学习信息、课程资源的管理和问题的解答。

2)应用模块层:描述各个模块的实现步骤操作。Vue.js进行前端开发,vue-video-player开源插件进行视频播放,axios进行HTTP请求,深度学习模型进行数据处理和分析。

3)功能模块层:表达并划分具有不同功能的子模块,并且与数据层相连接,为数据存储层的操作提供信息传递服务。

4)数据存储层:对不同用户的信息、系统的信息进行存储。包括学生信息,论坛信息,课程信息,管理信息。

2.2.2系统总体功能设计本系统采用基于B/S架构,使用MVC模式,前端由Vue.js框架实现,后端使用SpringBoot搭建。围绕学生学习网络化、多样化、智能化的设计展开开发的在线学习系统,预期实现功能见图4。

图 4 在线学习系统总体功能

1)学生个性化学习推荐模块 通过收集学生学习内容,成绩,课程偏好,弱势课程,学习记录等多种特征信息,进行信息处理分析,并针对学习者推荐出个性化的学习课程。

2)学生学习评价模块 通过学习偏好(主要是学习内容)的总结,对学生进行综合性的成绩判定和学习评价。

3)在线视频学习模块 管理员可以上传自己的学习课程视频,学生通过在线学习系统进行视频学习,并且系统记录用户的播放情况等功能。

4)在线程序实践模块 通过在线程序实践平台实现相关课程程序开发练习,提高学生的动手能力。

5)用户管理子模块 控制用户的登录,已经登录信息的缓存以及新用户的注册和用户信息存储。

6)课程资料管理模块 在该子系统中,教师用户上传课程资料,这些资料包括PDF、PPT、Word文档、实验指导书等,学生用户可以下载这些课程资料,是在线学习一个不可或缺的环节之一。

7)在线交流子模块 通过论坛发回帖等与同学、老师们进行学习交流,经验分享。

8)知识图谱展示模块 构建课程知识图谱,便于学生直观地学习和查询资料。

本学习系统涉及到了多种模块。用户登录注册、在线学习、在线实验、资源共享,在线交流等功能。其中在线学习包括在线视频学习,课程资料如PPT,Word文档,实验指导书学习等,能够满足学生的多种个性化需求,提高学习效率。

3 推荐评分预测模型

3.1 模型总体设计

本文设计了以神经网络为基础的评分预测模型。这种模型在词嵌入和文本卷积网络的基础上融合了深度学习模型,在具有用户以及学习资源的特征向量上做出了改进,并且在此基础上使用深度学习挖掘出隐藏的兴趣特征。并借助用户的历史评分信息,来进行模型的训练,利用分数来表达用户和学习资源的一种潜在关联。最终提高了推荐效果性能,使用户体验得到了提升。模型分为训练和推荐两个部分(图5)。

图 5 推荐评分预测模型

3.1.1训练过程在训练的过程中,进行学习者特征向量和学习资源向量的提取。

学习者特征向量的抽取利用词嵌入将用户的id、姓名、偏好等特征作为输入,形成一个可以模拟一个用户特征的向量。在此之后将用户的特征向量通过两层全连接层进行训练,抽取出各用户特征之间的潜在关系。

学习资源特征向量的抽取通过文本卷积网络来进行课程名词向量的获得,课程id和课程类型经过嵌入层来模拟不同属性的特征向量,最后使用全连接层进行属性向量的链接整合。

文本卷积网络第一层是输入层,这一层是句子中的词语按照对应的上下顺序排列的矩阵,成立句子矩阵

A=[x1,x2,…,xm,…,xn]

网络的第二层是卷积层,这一层每个单词通过嵌入层的个体向量组成了一个整体嵌入矩阵。通过输入矩阵和滤波器的点乘再加上编制项,卷积运算公式:

hi=f(W1⊙xi*j+l-1+b)

最后利用激活函数进行输出,激活函数:

第三层为池化层,这一层使用Max-over-timePooling方法。此类方法是将上步处理过的一维特征进行提取,在卷积窗口当中提取其中最大的值作为此窗口的特征值。

第四层是全连接+softmax层,这层通过使用Dropout技术的特性来控制训练的拟合度,并且用L2正则化限制该层的权值参数。这样做是为了防止因为隐藏单元的自适应导致拟合程度减轻。

经过四层处理之后,得到学习资源Title的向量特征。

3.1.2推进过程用户和学习者特征向量在抽取之后需要经过神经网络层进行模型训练,通过已有的用户历史数据,即不同用户对不同课程之间的打分情况,以此作为最后网络的输入,进行整体性的训练,训练完毕的模型将拥有用户对不同课程预测打分的效果,课程推荐就是根据预测分值的不同来进行的。

本文采取mini-batch梯度下降法。

其中a表示为学习率,随着训练时间而不断迭代减小并趋近于0。

本论文利用损失函数来界定实际输出与标签值的差距,本模型使用较为经典的交叉熵损失函数来进行训练。公式如下:

交叉熵损失函数在训练学习过程中容易出现梯度消失,模型无法收敛,为解决这一问题,本文在模型中加入L2正则化。对于网络中不重要的特征进行权值衰减处理。最后结合L2正则化以及交叉熵:

在训练场过程中,使用反向传播的方式可以进行损失函数的迭代递减,批处理的大小由N来表示,正则化参数为β,全连接层的参数为θ。通过梯度下降的优化与损失递减,最后将收敛于一个最小区间浮动,此时可将此模型训练停止。

3.2 模型实验

3.2.1 edX开放数据集edX开放数据集中包含了哈佛大学和麻省理工学院从2012到2013年在edX平台开设的16门课程相关数据。

3.2.2在线学习系统数据集提供了数十个属性,包括课程数据,学习者信息,学习者行为特点等。

3.3 实验结果

将测试集抽取一部分作为验证集进行验证,以课程评分为目标值进行比对,对数据集的评分表中内容进行评分比较,最终准确率为78.34%,召回率为77.56%,F1值为78.56%(表1)。

表1 训练结果表

4 系统实现

本在线学习系统分为首页导航、登录注册、课程资源、在线实验和学习论坛共四大主要的功能模块,以下是系统在windows10操作系统下,使用edge浏览器的实验结果。

4.1 首页导航

图6页面利用vue.js项目开发中常用的elemen-ui来进行ui架构。导航栏让用户可以方便的切换页面。走马灯展示最新最近的大数据学习资讯。三个卡片介绍各个模块的特色和功能。关系图直观地展示大数据学习的知识框架。各个大数据技术的官网跳转让用户可以方便地了解它们。

图 6 导航页面

4.2 登录注册

登录注册(图7)模块可以通过首页导航跳转,登录表单对账户、密码和验证码的格式进行基本的验证。表单提交后则会进行进一步的账户和密码进行验证,验证通过则导航栏的登录部分回变为退出,用户信息会作为全局状态存入系统,不通过则会给出对应的错误提示。

图 7 录注册页面

4.3 学习论坛

论坛(图8)模块采用常见的发回贴模式,用户点击发帖按钮即可编辑自己对学习的想法或者问题,发送到论坛之中。也可以浏览其他用户发的帖子进行评论等操作,互相交流。

图 8 论坛首页

4.4 课程资源

课程资源(图9、10)模块提供了海量关于大数据学习的视频等资源,点击对应的卡片即可跳转到视频播放页面进行查看。每个用户观看视频时会产生历史记录,通过历史记录,基于深度学习的推荐算法会推荐给用户适合的学习资源。

图 9 课程选择页面

图10 视频播放页面

4.5 在线实验

在线实验模块依托于JupyterLab平台,用户点击对应的实验卡片就可以跳转到juypter平台在线进行对应的实验,巩固和实践所学的知识,以完善的学习流程提高学习效率。

图11 实验选择页面

图12 JupyterLab实验页面

4.6 课程推荐流程

本文使用python语言实现了神经网络为基础的评分预测模型。用户登录系统后每次观看视频时把用户和视频id作为历史观看记录以json格式传输到后端。后端对历史记录做去重处理后存入历史文档。后端程序用开辟进程的方式调用评分预测模型,以用户历史记录作为输入,得到推荐序列输出。推荐序列会被传输到前端,作为推荐结果(图13)。

图13 推荐结果页面

5 结论

对于在线学习系统来说,学习资源自然是越多越好,但是大量的学习资源在更大程度满足用户的同时也会增加用户选择成本,违背了学习平台提高用户学习效率的出发点。相较于传统推荐算法,本文基于更加高效的深度学习的推荐系统,为用户进行个性化的学习资源推送简化用户的资源选择流程。对课程的知识体系,以知识图谱的形式进行抽取和展示,直观地展示大数据课程的知识结构。为了方便用户在学习后的实践,本文借助Jupyter平台实现了在线的实验模块,用户可以直接在学习平台上进行案例实践。在此基础上,本文在学习平台中内置了一个小型的论坛模块,方便用户的交流。

猜你喜欢
卷积神经网络模块
28通道收发处理模块设计
基于神经网络的船舶电力系统故障诊断方法
“选修3—3”模块的复习备考
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
从滤波器理解卷积
基于神经网络的中小学生情感分析