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

基于内容的推荐系统是根据内容的特征来进行推荐,如文本信息的词向量,商品的属性等信息,我们这里则是根据题目的知识点来进行推荐。
根据上篇博文的内容,我们可以将题目样本表示为如下形式:

x ( 1 ) = [ x 0 ( 1 ) x 1 ( 1 ) x 2 ( 1 ) ] = [ 1.0 0.9 0.0 ]

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

x ( 3 ) = [ x 0 ( 3 ) x 1 ( 3 ) x 2 ( 3 ) ] = [ 1.0 0.99 0.0 ]

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

x ( 5 ) = [ x 0 ( 5 ) x 1 ( 5 ) x 2 ( 5 ) ] = [ 1.0 0.0 0.9 ]

在这里我们设样本特征向量x的维度为n,则n=2,注意这里不包括我们为了计算方便而添加的输助 x 0
为了解决用户对未知题目打分预测问题,我们引入参数向量 θ R n + 1 = R 3 。对于每个学生我们都用一个参数向量 θ R n + 1 ,来描述,则我们的参数集为: { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) } = { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , θ ( 4 ) } 。假设我们要预测学生张一对第三个题目3的需要程度,我们首先找到描述这个题目的特征向量:
假设我们要预测用户张一对第三个题目3的需要程度,我们首先找到描述这个题目的特征向量:
x ( 3 ) = [ x 0 ( 3 ) x 1 ( 3 ) x 2 ( 3 ) ] = [ 1.0 0.99 0.0 ]

如果我们已经知道参数集的值,例如对于张一来说,其对应的参数为:
θ ( 1 ) = [ 0.0 5.0 0.0 ]

那么张三对题目3的需要程度可以通过下式来计算:
θ ( 1 ) T x ( 3 ) = [ 0.0 5.0 0.0 ] T [ 1.0 0.99 0.0 ] = 5.0 × 0.99 = 4.95

所以我们预测张一将对题目3的需要程度为4.95分,那么这个分数是否合理呢?我们看到,张一对知识点1基本都非常需要练习,而对知识点2基本不需要再练习,对同样是知识点1的题目3需要程度为4.95分是比较合理的,因此我们认为是一个合理的预测结果。如果我们将这个题目推荐给张一,他就很可能补足其在知识点1上的漏洞。
如果我们预先知道参数集 { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) } 的值,我们就可以很容易的预测出学生j对题目i的需要程度。但是我们是不可能预先知道这些参数的值的,因此我们的问题就变成怎样求出参数集的值。
我们先引入一个变量 m ( j ) ,代表学生j做过题目的总数。
对于学生j,我们要通过学习得到 θ ( j ) ,我们的学习任务可以表述为:选取适当的 θ ( j ) ,使得下式所表示的误差值最小:
min θ ( j ) 1 2 m ( j ) i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) 2

上式中叠加i:r(i,j)=1表示对学生j所有做过的题目,我们利用参数 θ ( j ) 计算出该学生对题目i的需要程度,求出其与学生j对题目i的真实需要程度的偏差,并取平方,然后将所有题目的平方差相加,得到总的平方和误差,再除以用户j打过分影片的数量,得到一个平均值,我们的任务就是通过选择合适的 θ ( j ) ,使得这个值达到最小。
在实际算法中,我们要会加上一个 L 2 调整项,表明我们希望参数 θ ( j ) 的长度(2范式)平方最小,即参数值越小越好,如下所示:
min θ ( j ) ( 1 2 m ( j ) i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) 2 + λ 2 m ( j ) k = 1 n θ k ( j ) 2 )

式中第二项为权值衰减项(Weight Decay),λ代表我们希望调整项起的作用,λ取较小值时,调整效果小,取较大值时调整效果大,取0时相当于没有调整。另外,还需要注意的是,式中k=1开始,因为我们第0维表示的是偏移量b,而我们通常不调整偏移量,所以k=1开始,n为特征向量维数,在我们这个问题中n=2。
因为式中的 m ( j ) 是一个常量,求最小值时,去掉也不会影响最终结果,为了简化运算,我们去掉 m ( j ) ,可以得到学习参数 θ ( j ) 的代价函数:
min θ ( j ) ( 1 2 i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) 2 + λ 2 k = 1 n θ k ( j ) 2 )

我们不仅需要学习学生j的参数向量 θ ( j ) ,我们需要学习所有学生参数向量 { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) } ,所以代价函数就变为如下式所示:
min θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) ( 1 2 j = 1 n u i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) 2 + λ 2 j = 1 n u k = 1 n θ k ( j ) 2 )

通过上面的讨论,我们可以得到代价函数为:
J ( θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) ) = min θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) ( 1 2 j = 1 n u i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) 2 + λ 2 j = 1 n u k = 1 n θ k ( j ) 2 )

我们采用梯度下降算法,可以得到如下公式:
θ 0 ( j ) = θ 0 ( j ) α i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) x 0 ( i )

k = 1 , , n 时:
θ k ( j ) = θ k ( j ) α ( i : r ( i , j ) = 1 ( θ ( j ) T x ( i ) y ( i , j ) ) x k ( i ) + λ θ ( j ) )

式中 α 为超参数学习率,需要人工设定。
以上就是基于内容的推荐系统,其核心原理就是通过对每道题目的知识点进行人工标注,同时根据学生做题情况,推出学习对知识点的掌握情况,最后根据这些信息来进行推荐。在下一小节中,我们将向大家介绍另一类推荐算法,即基于深度学习技术的协同过滤算法。
电热水壶
白领最爱的电热水壶

猜你喜欢

转载自blog.csdn.net/Yt7589/article/details/81535073
今日推荐