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

深度学习技术

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

基于内容的推荐系统

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

题目张一李二王三赵四
题目15500
题目250
题目340
题目40054
题目5005

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

*题目张一李二王三赵四知识点1知识点2
x(1) x ( 1 ) 题目155000.90.0
x(2) x ( 2 ) 题目2501.00.01
x(3) x ( 3 ) 题目3400.990.0
x(4) x ( 4 ) 题目400540.11.0
x(5) x ( 5 ) 题目50050.00.9

我们对每个题目的关于特征知识点1、知识点2的描述,组成一个样本,这里共有5个样本: x(1),x(2),x(3),x(4),x(5) x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) ,对于每个样本是一个二维向量,如下所示:

x(1)=[x(1)1x(1)2]=[0.90.0] x ( 1 ) = [ x 1 ( 1 ) x 2 ( 1 ) ] = [ 0.9 0.0 ]

x(2)=[x(2)1x(2)2]=[1.00.01] x ( 2 ) = [ x 1 ( 2 ) x 2 ( 2 ) ] = [ 1.0 0.01 ]

x(3)=[x(3)1x(3)2]=[0.990.0] x ( 3 ) = [ x 1 ( 3 ) x 2 ( 3 ) ] = [ 0.99 0.0 ]

x(4)=[x(4)1x(4)2]=[0.11.0] x ( 4 ) = [ x 1 ( 4 ) x 2 ( 4 ) ] = [ 0.1 1.0 ]

x(5)=[x(5)1x(5)2]=[0.00.9] x ( 5 ) = [ x 1 ( 5 ) x 2 ( 5 ) ] = [ 0.0 0.9 ]

但是为了简化之后计算过程,我们通常希望将仿射变换转化为线性变换,然后利用矩阵乘法运算来求解,因为现有科学计算库均对矩阵运算做了优化,可以提高运算效率,减少数值计算中由于数值表示精度所引发的问题。
对于一个仿射变换:
y=wTx+b=[w1w2]T[x1x2]+b=w1x1+w2x2+b y = w T x + b = [ w 1 w 2 ] T [ x 1 x 2 ] + b = w 1 ⋅ x 1 + w 2 ⋅ x 2 + b

其中 wRn,xRn w ∈ R n , x ∈ R n 均为n维向量,而b为一个标量。为了处理问题方便,我们令 w0=b w 0 = b x0=1 x 0 = 1 ,并将其分别加到w和x前面,如下所示:
y=wTx=w0w1w2Tx0x1x2=w0x0+w1x1+w2x2=w1x1+w2x2+b y = w T x = [ w 0 w 1 w 2 ] T [ x 0 x 1 x 2 ] = w 0 ⋅ x 0 + w 1 ⋅ x 1 + w 2 ⋅ x 2 = w 1 ⋅ x 1 + w 2 ⋅ x 2 + b

由此可见,这两种表示方式是等价的。基于这种表示法,我们就可以写出基于内容的推荐系统了,我们将在下一节中讨论这个问题。
这里写图片描述
花花公子品牌旗舰店

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值