基于内容的推荐系统是根据内容的特征来进行推荐,如文本信息的词向量,商品的属性等信息,我们这里则是根据题目的知识点来进行推荐。
根据上篇博文的内容,我们可以将题目样本表示为如下形式:
x(1)=⎡⎣⎢⎢⎢x(1)0x(1)1x(1)2⎤⎦⎥⎥⎥=⎡⎣⎢1.00.90.0⎤⎦⎥
x
(
1
)
=
[
x
0
(
1
)
x
1
(
1
)
x
2
(
1
)
]
=
[
1.0
0.9
0.0
]
x(2)=⎡⎣⎢⎢⎢x(2)0x(2)1x(2)2⎤⎦⎥⎥⎥=⎡⎣⎢1.01.00.01⎤⎦⎥
x
(
2
)
=
[
x
0
(
2
)
x
1
(
2
)
x
2
(
2
)
]
=
[
1.0
1.0
0.01
]
x(3)=⎡⎣⎢⎢⎢x(3)0x(3)1x(3)2⎤⎦⎥⎥⎥=⎡⎣⎢1.00.990.0⎤⎦⎥
x
(
3
)
=
[
x
0
(
3
)
x
1
(
3
)
x
2
(
3
)
]
=
[
1.0
0.99
0.0
]
x(4)=⎡⎣⎢⎢⎢x(4)0x(4)1x(4)2⎤⎦⎥⎥⎥=⎡⎣⎢1.00.11.0⎤⎦⎥
x
(
4
)
=
[
x
0
(
4
)
x
1
(
4
)
x
2
(
4
)
]
=
[
1.0
0.1
1.0
]
x(5)=⎡⎣⎢⎢⎢x(5)0x(5)1x(5)2⎤⎦⎥⎥⎥=⎡⎣⎢1.00.00.9⎤⎦⎥
x
(
5
)
=
[
x
0
(
5
)
x
1
(
5
)
x
2
(
5
)
]
=
[
1.0
0.0
0.9
]
在这里我们设样本特征向量x的维度为n,则n=2,注意这里不包括我们为了计算方便而添加的输助 x0 x 0 。
为了解决用户对未知题目打分预测问题,我们引入参数向量 θ∈Rn+1=R3 θ ∈ R n + 1 = R 3 。对于每个学生我们都用一个参数向量 θ∈Rn+1 θ ∈ R n + 1 ,来描述,则我们的参数集为: {θ(1),θ(2),θ(3),...,θ(nu)}={θ(1),θ(2),θ(3),θ(4)} { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) } = { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , θ ( 4 ) } 。假设我们要预测学生张一对第三个题目3的需要程度,我们首先找到描述这个题目的特征向量:
假设我们要预测用户张一对第三个题目3的需要程度,我们首先找到描述这个题目的特征向量:
x(3)=⎡⎣⎢⎢⎢x(3)0x(3)1x(3)2⎤⎦⎥⎥⎥=⎡⎣⎢1.00.990.0⎤⎦⎥
x
(
3
)
=
[
x
0
(
3
)
x
1
(
3
)
x
2
(
3
)
]
=
[
1.0
0.99
0.0
]
如果我们已经知道参数集的值,例如对于张一来说,其对应的参数为:
θ(1)=⎡⎣⎢0.05.00.0⎤⎦⎥
θ
(
1
)
=
[
0.0
5.0
0.0
]
那么张三对题目3的需要程度可以通过下式来计算:
θ(1)T⋅x(3)=⎡⎣⎢0.05.00.0⎤⎦⎥T⎡⎣⎢1.00.990.0⎤⎦⎥=5.0×0.99=4.95
θ
(
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),...,θ(nu)} { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) } 的值,我们就可以很容易的预测出学生j对题目i的需要程度。但是我们是不可能预先知道这些参数的值的,因此我们的问题就变成怎样求出参数集的值。
我们先引入一个变量 m(j) m ( j ) ,代表学生j做过题目的总数。
对于学生j,我们要通过学习得到 θ(j) θ ( j ) ,我们的学习任务可以表述为:选取适当的 θ(j) θ ( j ) ,使得下式所表示的误差值最小:
minθ(j)12m(j)∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))2
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) θ ( j ) 计算出该学生对题目i的需要程度,求出其与学生j对题目i的真实需要程度的偏差,并取平方,然后将所有题目的平方差相加,得到总的平方和误差,再除以用户j打过分影片的数量,得到一个平均值,我们的任务就是通过选择合适的 θ(j) θ ( j ) ,使得这个值达到最小。
在实际算法中,我们要会加上一个 L2 L 2 调整项,表明我们希望参数 θ(j) θ ( j ) 的长度(2范式)平方最小,即参数值越小越好,如下所示:
minθ(j)(12m(j)∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))2+λ2m(j)∑k=1nθ(j)k2)
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 ) 是一个常量,求最小值时,去掉也不会影响最终结果,为了简化运算,我们去掉 m(j) m ( j ) ,可以得到学习参数 θ(j) θ ( j ) 的代价函数:
minθ(j)(12∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))2+λ2∑k=1nθ(j)k2)
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) θ ( j ) ,我们需要学习所有学生参数向量 {θ(1),θ(2),θ(3),...,θ(nu)} { θ ( 1 ) , θ ( 2 ) , θ ( 3 ) , . . . , θ ( n u ) } ,所以代价函数就变为如下式所示:
minθ(1),θ(2),θ(3),...,θ(nu)(12∑j=1nu∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))2+λ2∑j=1nu∑k=1nθ(j)k2)
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),...,θ(nu))=minθ(1),θ(2),θ(3),...,θ(nu)(12∑j=1nu∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))2+λ2∑j=1nu∑k=1nθ(j)k2)
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)0=θ(j)0−α∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))x(i)0
θ
0
(
j
)
=
θ
0
(
j
)
−
α
∑
i
:
r
(
i
,
j
)
=
1
(
θ
(
j
)
T
x
(
i
)
−
y
(
i
,
j
)
)
x
0
(
i
)
当 k=1,…,n k = 1 , … , n 时:
θ(j)k=θ(j)k−α(∑i:r(i,j)=1(θ(j)Tx(i)−y(i,j))x(i)k+λθ(j))
θ
k
(
j
)
=
θ
k
(
j
)
−
α
(
∑
i
:
r
(
i
,
j
)
=
1
(
θ
(
j
)
T
x
(
i
)
−
y
(
i
,
j
)
)
x
k
(
i
)
+
λ
θ
(
j
)
)
式中 α α 为超参数学习率,需要人工设定。
以上就是基于内容的推荐系统,其核心原理就是通过对每道题目的知识点进行人工标注,同时根据学生做题情况,推出学习对知识点的掌握情况,最后根据这些信息来进行推荐。在下一小节中,我们将向大家介绍另一类推荐算法,即基于深度学习技术的协同过滤算法。
![电热水壶](https://img.alicdn.com/bao/uploaded/i4/2633297767/TB2RX8iD_JYBeNjy1zeXXahzVXa_!!2633297767.jpg_150x150_.webp)
白领最爱的电热水壶