-
利用RNN模型预测mooc辍学行为
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
RNN模型算法基础概念
RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出。
RNN单层网络结构:
以时间步对RNN进行展开后的单层网络结构:
RNN的循环机制使模型隐层上一时间步产生的结果, 能够作为当下时间步输入的一部分(当下时间步的输入除了正常的输入外还包括上一步的隐层输出)对当下时间步的输出产生影响。
如下图所示有两种表示方法,每张图片左边是RNN的神经元(称为memory cell),右边是按时间轴展开后的情况。每次输入两个信息输出两个信息,每轮处理hidden state。把同样神经元在时间上展开处理,比CNN更加节省参数,是一个相当高效的表示方法。
可参考如下公式表示,最后简化后的形式同一般神经元相同,输入信息乘权重加偏值:
因为RNN结构能够很好利用序列之间的关系, 因此针对自然界具有连续性的输入序列, 如人类的语言, 语音等进行很好的处理, 广泛应用于NLP领域的各项任务, 如文本分类, 情感分析, 意图识别, 机器翻译等。
-
RNN模型正向传播
RNN图示:
RNN正向传播:
-
RNN模型反向传播
RNN模型图示:
RNN反向传播:
-
RNN模型的优缺点
-
RNN算法实现
- 数据处理
由于学生的行为数据计数分布是非常不平衡的,所以我们要先进行归一化,这里选择的是z-score归一化,使得模型能够更快收敛。
在本文的学生辍学模型中,数据集就是一个不平衡的数据集,经统计,我们发现目标值为1(辍学)的用例数量与目标值为0(未辍学)的用例数量比值接近4:1,其实对于所有注册MOOC课程的学生来说,还有大部分是从来没有在MOOC上产生学习行为的,学生真实的辍学概率甚至达到了90%左右。这种比较不平衡的数据集造成的结果就是我们学习到的的模型决策边界会使得多数类的分类准确率更高,但是对于少数类的信息学习到的可能并不多。
为了削弱这种情况的影响,我们使用了一些解决数据不平衡问题的常用算法。本文采用了三类方法:在机器学习代价函数中赋予类别权重、过采样、欠采样。
赋予类别权重:本文前面对于损失函数的定义是统一的,举例来说,本文将正类判断为负类以及将负类判断为正类的损失是相同的,然而,现实中并不是如此,由于这里少数类只有多数类的1/4左右,为了平衡两类之间的关系,我们可以适当的提高少数类损失的权重,那么最后我们得到的模型会更好地拟合少数类样本。
过采样是指用一定的方法对类别样本数目较少的样本进行再次采样,使得两类样本的数目基本相等。所使用的方法主要是:随机过采样、SMOTE算法、bS MOTE。
欠采样则是对多数类的样本进行随机采样,使得达到均衡状态。所使用的方法主要有:随机欠采样、Near-Miss1、Near-Miss3。
- 特征工程
特征工程决定了最终我们的模型输入到底是什么样的,即每个用例有多少维特征,每个特征分别表示什么。这些特征直接决定了我们的模型学习效果,好的特征会对训练和测试结果带来质的提升。以下三种是经过实验之后能显著提升我们的测试结果的特征:
1.交互特征。交互特征包括学生注册课程并在课程学习中产生的特征,分两种类别,一种是统计特征,一种是二分类特征。统计特征包括学生与课程交互的events中的七种行为的总和特征。每个交互日志学生接触的课程对象所属的种类,主要分了以下几类:sequential,problem,chapter,video,combinedopenended,以及并未在原始数据中明确命名的种类,然后是一天24小时的学习统计数据,即学生在课程学习过程中产生的行为主要是在一天的什么时间段,如学生喜欢在晚上10点之后学习,产生的行为主要集中在晚上10点到11点这个时间段,这个时间段的数值就非常大,除此之外,还有一周七天的学习频率统计数据;二分类特征就是“是”或者“不是”,如课程特征就是一个二分类特征,学生注册的是哪个课程,经过统计总共有39个课程在数据中出现,所以我们进行0-1编码之后,每个学生课程交互数据中有39维特征是0-1特征,学生注册的这个课程对应的编号特征为1,其余的都为0。其实所有的统计特征都可以表示为二分类特征,如果在统计特征中的特征值不为0,在二分类特征中就为1,反之就为0。
2.时间特征。这里要预测的是未来10天的学生辍学情况,所以可以将时间粒度放大一些,比如10天作为一个时间的分割点,每10天学生都干了什么事情,做了多少事情。当然也可以将一周作为一个时间分割点,这样可能更符合常识。
3.依赖特征。这种特征建立在基本特征之上,能够显著地提升我们的模型效果。
构造依赖特征所使用的聚类算法:k-means算法、GMM算法、Field-aware GMM算法。
- “依赖”的第一层含义:“依赖”就是依赖学生或者课程自身的特点。
假设这里有一群身份、背景、性格、习惯都非常相似的学生,他们在MOOC上所表现出来的特征会有很多的相似性,这种相似性体现在他们是以某个点为中心独立同分布的生成他们的数据,那么我们必须把学生之间或者课程之间的相似度也考虑进去,这样就相当于针对性的训练某个学生集合产生的数据,训练出来的模型才会更可靠,也更准确。
- “依赖”的第二层含义:这些特征既依赖于训练数据集,又依赖于测试数据集。
训练数据在进行训练时,因为我们知道测试数据也有很多数据与训练数据是关联的,为了表示这种关联,我们就可以构造一些训练数据和测试数据共有的特征,这些特征就可以作为两者之间的依赖关系而存在,而且在我们针对于训练数据进行模型训练时,其实考虑了部分测试数据的信息。
- 分组依赖特征:分组依赖特征就是对于我们已有的基本特征进行分组,然后通过一定的数学运算得到最终的特征。具体过程如下图所示:
学生S在3门课程上产生的特征经过累加或者求平均之后得到分组依赖特征。此处“分组”即以学生为“组”,还有以课程为组,与其是相似的。所谓“累加法”,其实是最简单的一项处理方法,我们将同一个学生的行为数据做一个总和,得到他在各个课程中的各个行为分别总共为多少。上述“累加法”有一个缺陷就是还有很大一部分学生只注册了一个课程,那么产生的行为数据就比较少(相对与那些注册了多门课程的学生来说),那么我们就必须用“平均法”除以学生注册的总的课程数。
- 聚类依赖特征:分别计算39门课程的所有产生数据的用户的特征(object特征);分别对39门课程的数据进行聚类;将聚类的结果拼接起来。用聚类特征代替object的好处在于大大减小了特征的维度,并且利用了测试数据集中的数据,而且其中还包括了课程因素。
特征总结表:
- 模型基本介绍
1.RNN模型
左边是未展开的RNN模型,右图是展开之后的RNN,W2表示转移权重矩阵,W1表示输入权重矩阵,W3表示输出权重矩阵。X,Y分别表示输入与输出,在本文中分别表示学生的学习行为特征,以及学生是否辍学。可以看到RNN是一个循环结构,共享了三个权重矩阵,我们首先把输入数据按时间顺序分片然后输入到模型里,之后通过BPTT算法[18]进行权重的优化。
2.LSTM模型
Vanilla RNN模型有一些缺点十分明显:梯度弥散。由于时间序列太长,导致BPTT算法计算梯度的过程中,梯度的量级不断变小,到最后趋近于0,反过来说就是时间点靠前的数据无法对于权重矩阵产生影响,主要是后面时间点的数据在起作用,也就是前面时间点的数据信息无法传到后面。LSTM模型[19]的提出主要是为了解决这个问题,使得信息依赖可以传导的更长。LSTM模型与Vanilla RNN的结构主要区别在LSTM Cell,它也是LSTM能够传导长时间“记忆”的关键所在。
LSTM Cell中主要结构就是三个“门”,分别是“输入门”(input gate):it,“输出门”(output gate):ot,“忘记门”(forget gate):ft 。其中ct表示LSTM Cell的状态(t时刻),x表示输入数据,ht表示t时刻的隐含层输出数据。t时刻LSTM Cell中各变量计算方式如下:
其中Ⓧ表示向量元素对应相乘。仍然用BPTT算法来进行权重矩阵的优化。
- 模型评判标准——AUC
AUC即ROC曲线下的面积,英文全称Area Under the ROC Curve,ROC即受试者工作特征曲线(receiver operating characteristic curve), AUC是一个二分类问题的模型评判标准,ROC曲线的横坐标是True Positive Rate,即真阳率,纵坐标是False Positive Rate,即假阳率,AUC计算的就是ROC曲线与坐标轴之间围成的图形面积。AUC的意义是:随机抽出两个属于不同类别的测试用例,正类的用例在我们的模型下的预测值(属于正类的概率)大于负类用例的预测值的概率,是一个比准确率更加全面的评判标准。
- RNN模型构建
1.RNN模型特征组成
特征表示为timePeriod,则timePeriod1,timePeriod2,timePeriod3分别表示1-10,11-20,21-30天的用户行为特征,这里的用户行为特征包括:(1)problem_count–学生做课堂作业统计次数;(2)video_count–学生观看教学视频统计次数;(3)access_count–接触除了课堂作业以及教学视频以外的其他object统计次数;(4)wiki_count –接触课堂维基的统计次数;(5)discussion_count–接触论坛讨论的统计次数;(6)navigate_count–浏览课堂的其他信息次数;(7)page_close_count -关闭网页次数。
所以timePeriod1 = {problem_count1, video_count1, access_count1, wiki_count1, discussion_count1, navigate_count1, page_close_count1},总共七维特征。
2.数据集的划分
将数据集分为训练集、验证集、测试集,数据比例为:3:1:1,步骤如下:
(1)划分出测试集、训练集与验证集的并集,划分过程是随机的,即每个数据出现在每个数据集合的概率相等;
(2)将训练集与验证集的并集划分为4个大致相等集合;
(3)将(2)中产生的集合用于4-折交叉验证,确定最优超参数;
(4)将(1)中产生的并集全部用于训练,参数用(3)中确定的超参数;
(5)将训练出来的模型用于(1)中产生的测试集,得到实验结果。
3.RNN模型的改进
(1)训练过程的改进
一是想尽可能多的增加训练数据量,避免“过拟合”的产生;二是想将测试集中的信息也尽可能的考虑进去。
(2)单层循环神经网络的不足之处
单层LSTM以及Vanilla RNN学习到的信息的时间跨度是比较单一的,为了从输入数据中学习到多个时间跨度的信息,必须改变原来的网络结构,因为第一个时间片还有第二个时间片的行为数据都可能体现出学生的某种特征,可能会影响到最后一个时间片的结果。
(3)RNN改进1:RNN Regularization
RNN Regularization就是加上了一个dropout的处理,dropout的位置上选择的是同一时间片的节点,而各个时间片之间相连的隐含层节点有信息流动,为了让信息可以传播下去,我们必须要求他们之间是没有dropout操作存在的。而在特定时间片t内,输入层节点与隐含层、隐含层与隐含层、隐含层与输出层之间传递的信息是无需直接传播到下个时间片的,因此这些节点之间是存在dropout操作的。RNN Regularization的结构如图4-1所示,其中比较细的实线箭头表示dropout操作,黑色的粗体线表示信息的流向,也就是说信息从t-2时刻流动到了t+2时刻:
(4)RNN改进2:Deep RNN
用Deep RNN的一种原因就是为了表示一种复杂的层次结构,单层隐含层RNN能表示的模型更简单,但是对于这种层次结构却是无能为力的;其次,Deep RNN 能够从输入中学到不同时间跨度的信息,用这种结构是为了让模型能够复杂一些,能生成多的一些隐含特征。所谓的Deep RNN就是对于普通RNN里的隐含层进行stacking。Deep RNN模型图如下所示:
4.RNN模型实验结果对比
本次实验中使用的模型有Vanilla RNN(单层隐含层)、LSTM模型(单层隐含层)、Deep LSTM模型(没有dropout操作)、Deep LSTM模型(有dropout操作)。实验结果如图所示:
-
参考文献
[1]刘儒君. 慕课学生辍学预测模型的研究[D].华中科技大学,2017.
[2]Fei M, Yeung D Y. Temporal Models for Predicting Student Dropout in Massive Open Online Courses. In: Peng Cui. 2015 IEEE International Conference on Data Mining Workshop (ICDMW). Atlantic City, New Jersey: IEEE Computer Society Conference Publishing Services, 2015. 256-263.
[3]Balakrishnan G, Coetzee D. Predicting student retention in massive open online courses using hidden markov models. Electrical Engineering and Computer Sciences University of California at Berkeley, 2013.
[4]Graves A. Supervised Sequence Labelling with Recurrent Neural Networks. 第一版.Berlin: Springer-Verlag Berlin Heidelberg, 2012:39-48.
[5]Hochreiter S, Schmidhuber J. Long Short-Term Memory. Neural Computation, 1997, 9(8):1735-1780.
[6]Zaremba W, Sutskever I, Vinyals O. Recurrent Neural Network Regularization. Eprint Arxiv, 2015.
[7]Pardos Z A, Gowda S M, Baker R S J, et al. The sum is greater than the parts: ensembling models of student knowledge in educational software. ACM SIGKDD explorations newsletter, 2012, 13(2): 37-44.
[8]Hermans M, Schrauwen B. Training and analysing deep recurrent neural networks. Advances in Neural Information Processing Systems, 2013:190-198.
[9]Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors. Computer Science, 2012, 3(4): 212-223.
[10]Bellinger C, Drummond C, Japkowicz N. Beyond the Boundaries of SMOTE. In: Paolo Frasconi. Joint European Conference on Machine Learning and Knowledge Discovery in Databases. New York: Springer International Publishing, 2016. 248-263
[11]张聪. 基于特征工程的MOOC辍学预测研究[D].江西财经大学,2020.
[12]黄子亮. MOOC课程学生辍学行为预测方法研究[D].华南理工大学,2021.
[13]徐振国,张冠文,石林,安晶.MOOC学习者辍学行为的影响因素研究[J].现代教育技术,2017,27(09):100-106.
[14]陈立德. MOOC学习行为挖掘和辍学预测方法研究[D].西北农林科技大学,2018.
[15]方旭. MOOC学习行为影响因素研究[J]. 开放教育研究,2015,21(3):46-54.
[16]王洪岩. MOOC中的学习行为挖掘研究[D].山东大学图书馆,2016.
-
-
- 标签:
- RNN模型
-
加入的知识群:
学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~