深度学习在线教育平台实践---内容推荐系统1

深度学习技术

众所周知,深度学习和人工智能技术在教育领域的应用,一直是在线教育界的王冠,是众多在线教育企业正在做的事情。但是直到目前为止,虽然有很多深度学习和人工智能解决方案,但是真正能够在实践中应用和落地的项目却并不多,大多数解决方案还停留在概念阶段或收集数据阶段,离实际应用还有一段距离。本系列文章,将以我们在高三地理教学中实际使用的个性题库系统为例,向大家详细介绍基于深度学习技术的题库推荐系统的技术原理,以及在实际应用中的信息架构设计技术。

基于内容的推荐系统

随着机器学习和深度学习的流行,基于机器学习和深度学习的推荐算法,在最近一段时间,逐渐成为了主流应用技术。我们的个性化题库系统,其核心就是一个根据学生实际情况,向学生推荐相关题目的推荐系统。
在这一部分,我们将以个性化题库系统为例,讲述一个典型的基于深度学习的推荐系统。我们所假想的场景如下:假设我们的客户是K12学校或K12在线教育公司,有大量题目供学生付费练习,并评估学生对题目的掌握程度用(0~5星的评分来表示),客户希望利用学生对题目的评分信息,向学生推荐学生薄弱的知识点的题目。
目前客户已经收集到的信息如下所示:

题目 张一 李二 王三 赵四
题目1 5 5 0 0
题目2 5 0
题目3 4 0
题目4 0 0 5 4
题目5 0 0 5

表中第1列为题目,其中前三个题目为知识点1,后两个题目为知识点2。第2~5列为不同的学生,表中每个单元格为某个学生对某个题目的需要程度。如果学生没有做过该题目,我们用?来表示。其中0表示学生做过该题目,结果完全正确,不需要再做练习。而5则表示学生做该题目完全错误,急需补充该题相关知识点。
为了便于问题的讨论,我们引入如下符号:
n_u:学生总数
n_m:题目总数
r(i, j):第j个学生是否做过第i个题目,1代表已经做过,0代表未做过(表格中?表示的单元格)
y^{(i, j)}:第j个学生对第i个题目的需要程度,此时必有r(i,j)=1,即学生j做过题目i
有了上述定义之后,我们的任务就变成了在已经知道r(i,j)y^{(i,j)}的情况下,形式如上表所示,预测学生对没有做过的题目需要程度,也就是要预测表中?的单元格中最有可能的数字。例如预测学生1对题目3这个题目的需要程度。因为我们的数据集很小,我们通过直觉可以很容易预测出来,因为学生1对知识点1的题目需度程度都很高,题目3是一个知识点1的题目,所以学生1对题目3的需要程度也会很高,所以我们可以预测张三对题目3的需要程度可能会是5分。但是如果上面的表格变为数以亿计的数据,我们就很难通过直觉做出判断了,我们就需要借助于推荐系统来完成这一任务了。
基于内容的推荐算法,首先要对待推荐题目的内容进行描述。在这里,我们用两个特征来描述各个题目,分别是:知识点1、知识点2。接下来我们对每个题目,给出在这两个特征上的得分,如下表所示:

题目 张一 李二 王三 赵四 知识点1 知识点2
x^{(1)} 题目1 5 5 0 0 0.9 0.0
x^{(2)} 题目2 5 0 1.0 0.01
x^{(3)} 题目3 4 0 0.99 0.0
x^{(4)} 题目4 0 0 5 4 0.1 1.0
x^{(5)} 题目5 0 0 5 0.0 0.9

我们对每个题目的关于特征知识点1、知识点2的描述,组成一个样本,这里共有5个样本:{x^{(1)}, x^{(2)}, x^{(3)}, x^{(4)}, x^{(5)}},对于每个样本是一个二维向量,如下所示:
\boldsymbol{x}^{(1)}=\begin{bmatrix} x^{(1)}_1\\ x^{(1)}_2 \end{bmatrix}=\begin{bmatrix} 0.9\\ 0.0 \end{bmatrix}
\boldsymbol{x}^{(2)}=\begin{bmatrix} x^{(2)}_1\\ x^{(2)}_2 \end{bmatrix}=\begin{bmatrix} 1.0\\ 0.01 \end{bmatrix}
\boldsymbol{x}^{(3)}=\begin{bmatrix} x^{(3)}_1\\ x^{(3)}_2 \end{bmatrix}=\begin{bmatrix} 0.99\\ 0.0 \end{bmatrix}
\boldsymbol{x}^{(4)}=\begin{bmatrix} x^{(4)}_1\\ x^{(4)}_2 \end{bmatrix}=\begin{bmatrix} 0.1\\ 1.0 \end{bmatrix}
\boldsymbol{x}^{(5)}=\begin{bmatrix} x^{(5)}_1\\ x^{(5)}_2 \end{bmatrix}=\begin{bmatrix} 0.0\\ 0.9 \end{bmatrix}
但是为了简化之后计算过程,我们通常希望将仿射变换转化为线性变换,然后利用矩阵乘法运算来求解,因为现有科学计算库均对矩阵运算做了优化,可以提高运算效率,减少数值计算中由于数值表示精度所引发的问题。
对于一个仿射变换:
y=\boldsymbol{w}^T\boldsymbol{x}+b=\begin{bmatrix} w_1\\ w_2 \end{bmatrix}^T \begin{bmatrix} x_1\\ x_2 \end{bmatrix} + b=w_1 \cdot x_1+w_2 \cdot x_2+b
其中\boldsymbol{w} \in R^n, \boldsymbol{x} \in R^n均为n维向量,而b为一个标量。为了处理问题方便,我们令w_0=bx_0=1,并将其分别加到w和x前面,如下所示:
y=\boldsymbol{w}^T\boldsymbol{x}=\begin{bmatrix} w_0\\ w_1\\ w_2 \end{bmatrix}^T \begin{bmatrix} x_0\\ x_1\\ x_2 \end{bmatrix}=w_0 \cdot x_0+w_1 \cdot x_1+w_2 \cdot x_2=w_1 \cdot x_1+w_2 \cdot x_2+b
由此可见,这两种表示方式是等价的。基于这种表示法,我们就可以写出基于内容的推荐系统了,我们将在下一节中讨论这个问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,402评论 0 2
  • 支持向量机 0.引言 本文主要参考了李航的《统计学习方法》。是本人学习支持向量机的学习笔记。首先对支持向量机做简单...
    吴金君阅读 1,154评论 2 5
  • 二维平移矩阵: P^{'}=T(t_{x},t_{y}){\cdot}P \begin{bmatrix} x^{'...
    杨sy阅读 346评论 0 0
  • 我所在的小城申请全国文明城市有几年了,今年估计市里下了很大的决心,势在必得啊 ! 我们市还在早几年就开...
    漂泊laoxiao阅读 220评论 0 2
  • 一个人要出轨的话,哪怕第三者再丑,他也照样会出轨。因为第三者带给人的,不止是美色或者帅气,或许还有新鲜感,或许是征...
    黎夏之云阅读 877评论 2 6