Effective Feature Learning with Unsupervised Learning in MOOCs

Effective Feature Learning with Unsupervised Learning in MOOCs

《在慕课中使用无监督学习到的高效特征》

这篇文章是2019年发表在LAK会议上的一篇文章。随着互联网教育的兴起,网络教育在日常生活中已经越来越普及。接踵而至的就是世界各地学者对在线学习教育的各种研究。其中一个方向就是,根据学生在线表现对学生课程成绩进行预测。
而这篇文章,也是关于成绩预测的,不同的是,它的成绩预测方法并不着重于改造预测模型,而在于构建表征上。
作者认为,现在的很多人工智能方法(专家系统,知识图谱等除外)并不具备任何推理能力,它们其实都只是在学习数据的特征分布。所以有一种好的表征方式,要远好于去绞尽脑汁的想fancy模型。我相信很多研究者一定有和我一样的感觉。

1.Introduction

开头,作者都是不厌其烦,千篇一律地谈论成绩预测对于在线教育的研究意义。但是这篇文章着重于研究如何通过建立一个更好的学习状态的表征,来提高成绩预测的方法。
首先,本文数据来自于mooc,由香港科技大学的一堂叫做《Introduction to Computing with Java》十二章节的课程,有44,920个学生参加,只有九分之一的学生完成全部课程。
其次,作者的主要贡献有:

  1. 从杂乱无章的数据中初步攫取了一种具有(two-fold)两重意义的特征,即既包含内容意义,又包含时间意义的特征。(原文为raw feature in time-content domain)
  2. 提出了一种修正的LSTM-AE方法来对raw feature进行压缩,即一种提取embedding的方法。
  3. 这种压缩方法在预测模型上取得了很好的表现,并且有助于划分学生的学习表现

2.BACKGROUND

作者从mooc中得到的数据被作者洗成了包含两重意义的特征。通常情况下,我们用来做预测的特征一般都是,用户评论,观看时间,课后习题等巴拉巴拉的数据,这是content数据。而在这篇论文的数据,作者捕捉了用户在网上学习过程中,每一章节之间的行为动作。譬如,再学完一个章节之后,加载视频数量发生改变,于是有了学习本章之前的加载视频数量,和学完本章之后的视频加载数量。如下图所示
在这里插入图片描述
我们可以看到,作者有意的量化了用户在学习某一章节前后的行为。这些行为不同于content数据,独树一帜地形成了time数据(原文翻译照搬,自己意会),这也正是我说的,数据还是那个数据,就看你怎么构了,构的好,单车变摩托。
在这里插入图片描述
作者对特征进行了一个PCA的过程后,取出PCA后学习本章前的特征的first component,和学习前的first component。(注意:PCA中我们得人工定义源数据投影到K 个component中,也就是K是超参数。根据PCA的原理,first component是蕴含信息量最大,对投影后方差贡献最大的维度了。)上图显示,作者构建的这个特征经过PCA后,可以有效的对学生表现进行划分了。颜色代表grade,红线以上的为high grade,蓝线左边是low grade。
至此,我们就可以初步看到作者的意图了,PCA本质上也是个构建新表征的方法,PCA后的新特征,通过投影使我们可以直接看到学生成绩的分布情况。这么清晰的分布轮廓,我相信这时我们直接上机器学习方法也能得到很好的效果。

3.The Modified LSTM Auto-encoder

对于深度学习进行压缩的方法,自然要属于AE(自动编码器,就是两个DNN堆一起),还有基于RNN的encode-decode方法。有了LSTM以后,当然也会有LSTM-AE(就是基于LSTM的encode-decode),结构如下图所示。
在这里插入图片描述
LSTM-AE结构其实一目了然,无非就是把encode-decode算法的RNN换成了LSTM。这个编码算法存在着它的局限性,就是中间的产品embedding Z太依赖最近的特征。LSTM是对序列建模的算法,这样做的embedding很大的程度上被序列中的最后一个特征给主宰,而之前序列的特征的影响力呈指数级下降。
针对上述编码算法的缺陷,我们的主角出场了,就是修正的LSTM-AE,其结构如下:
在这里插入图片描述
我们看到编码器部分不变,而后面解码器变成两个了,其中一个解码器和LSTM-AE中的解码器一毛一样,不一样的是多了一个predicting 解码器。它居然用 k t 1 k_{t-1} 序列去预测 k t k_{t} 序列。熟悉word2vec的朋友们肯定很快反应过来了,似曾相识的画风。这不就是和word2vec一模一样的操作吗?!!!用序列的上下文,去训练中间特征的语义,这时候特征语义的训练空间不再是只依赖前项的local context,而是基于全局的上下文语义空间。但是,这样做也有它的局限性,就是embedding的size必须和模型输入的size一样大。因为predicting解码器要用原序列特征去预测后序序列,而embedding要作为输入参加预测操作,所以也必须和原序列同维度。
但是,这里我觉得可以,因为原特征相比于word2vec中极度稀疏的one-hot特征,信息丰富非常多。也就是说,原特征不存在稀疏的问题,根本不需要往低维语义空间去映射,原size就很ok。

4 EXPERIMENTS

首先,作者选取了两个baseline。分别是以下两种差分编码模型。
在这里插入图片描述
在这里插入图片描述
实验效果如下
在这里插入图片描述
在这里插入图片描述
根据对比我们可以发现,当一次输入7个序列的特征时,编码效果是最好的,MAE非常低。同时,embedding的size越大效果越好。而对比两种VAE压缩法,修正的LSTM-AE要明显好于它们。图12右图就是它们MAE的比较,假设CNN2-FC1的效果是1,比较的其它的算法MAE占比(率)。
在这里插入图片描述
在这里插入图片描述
上图表示了,压缩后的特征,再两种映射方法之后的分布情况。我们可以看到,当我们把三个序列喂进修正LSTM-AE时,学生的学情特征几乎一坨,难以区分开来。这种情况下我们去用任何预测器都不会取得很好的效果。而当序列为11的时候,我们可以明显看到low和high grade的学生的分布情况。在这种特征空间中,无论我们用那种预测器去做grade预测,一定都可以取得不错的结果。

ps: 1.看着这篇文章的修正LSTM-AE的时候,我想着,我如果把attention加进来又会怎么样,哈哈哈。真是天下文章一大抄,缝缝补补又一篇。 2.这篇文章的重点在于构建表征。构建表征时,如果你的数据很好,不是很稀疏(类似点击数据,词向量那样的数据时),这种方法不一定很有提高。也许用简单的PCA,也能打爆修正LSTM-AE,但是PCA的物理意义和LSTM-AE不同。在在线教育的研究中,有个常见的理论就是,平时成绩好的学生,最终预测成绩一定不差。所以LSTM这种基于序列的模型,就在这里相当有意义了,这也是为什么作者选这个模型做修正的原因吧,I think。