赞
踩
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征进行组合,构成高阶组合特征。
假设有A B两组特征,C为受到A B两种特征影响的因素,且对特征A来说,其有
A
i
,
i
∈
[
0
,
1
]
{A^i,i\in [0,1]}
Ai,i∈[0,1]两种特征取值。同时,对于特征B来说,其有
B
j
,
j
∈
[
0
,
1
]
{B^j,j\in[0,1]}
Bj,j∈[0,1]两种特征取值。
那么,现在得到两种特征A B分别对因素C的影响表:
表
1
表1
表1
因素C的取值 | 特征A的取值 | 特征B的取值 |
---|---|---|
0 | A1 | B1 |
1 | A2 | B1 |
1 | A1 | B2 |
0 | A2 | B2 |
如果将A B特征组合起来去判断对C因素的影响,那么就可以得到如下表格:
表 2 表2 表2
因素C的取值 | A1 B1 | A2 B1 | A1 B2 | A2 B2 |
---|---|---|---|---|
0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
由表2中可以看到,最终得到的组合特征维度数等于组合的两个特征A B的数量之积。
虽然上述特征组合可以解决一些问题,但是当特征数量增加,且每个特征对应的特征取值数量增加时,得到的组合特征的维数将是无法预估的。
在这种情况下,就可以用不同特征A B对应的低维向量 k k k来表示,实际上这等价于推荐系统中矩阵分解的过程。
假设我们有一个用户-电影评分矩阵,其中行代表用户,列代表电影,每个元素表示用户对电影的评分。但是,由于用户没有对所有电影都进行了评分,因此矩阵中存在缺失值。我们的目标是通过矩阵分解来预测用户对未评分电影的评分,以进行个性化推荐。
数据准备:
首先,我们将用户-电影评分矩阵表示为一个稀疏矩阵,其中缺失值用0或NaN表示。
Movie1 | Movie2 | Movie3 | Movie4 |
---|---|---|---|
User1 | 5 | 3 | 0 |
User2 | 0 | 4 | 0 |
User3 | 1 | 0 | 5 |
矩阵分解模型选择:
选择适当的矩阵分解模型,例如基于奇异值分解(Singular Value Decomposition,SVD)的方法,其中矩阵被分解为三个矩阵的乘积:用户特征矩阵、电影特征矩阵和奇异值矩阵。
特征提取:
通过对用户-电影评分矩阵进行矩阵分解,得到用户特征矩阵和电影特征矩阵。用户特征矩阵包含了每个用户的潜在特征表示,电影特征矩阵包含了每部电影的潜在特征表示。
填充缺失值:
使用得到的用户特征矩阵和电影特征矩阵,可以预测缺失值(未评分电影)的评分。通过计算用户特征矩阵和电影特征矩阵的乘积,可以得到预测的评分矩阵。
Movie1 | Movie2 | Movie3 | Movie4 |
---|---|---|---|
User1 | 5 | 3 | 4.2 |
User2 | 2.8 | 4 | 3.5 |
User3 | 1 | 3.1 | 5 |
通过填充缺失值,我们得到了完整的评分矩阵,使得我们可以为用户推荐未评分的电影,例如,对于User2来说,我们可以推荐Movie1和Movie3。
上述过程中如何通过用户特征矩阵和电影特征矩阵来预测原始的用户-评分矩阵中缺失值的过程如下:
假设对初始的用户-评分矩阵进行分解得到用户特征矩阵和电影评分特征矩阵
将用户-电影评分矩阵分解为用户特征矩阵和电影特征矩阵的乘积。假设我们将用户特征矩阵表示为
U
U
U,电影特征矩阵表示为
V
V
V,则原始的评分矩阵
R
R
R 可以表示为:
R
=
U
V
T
R=UV^T
R=UVT
在实际应用中,我们通常采用梯度下降等优化算法来最小化预测评分矩阵与实际评分矩阵之间的误差。
预测评分:
利用得到的用户特征矩阵和电影特征矩阵,可以预测缺失值(未评分电影)的评分。以用户
i
i
i 和电影
j
j
j 为例,我们可以将评分预测为:
r
^
i
,
j
=
u
i
v
i
T
\hat{r}_{i,j}=u_i v_i^T
r^i,j=uiviT
其中 u i u_i ui 是用户 i i i 的特征向量, v j v_j vj 是电影 j j j 的特征向量, v j T v_j^T vjT 表示电影 j j j 的特征向量的转置。
推荐:
通过预测评分,我们可以为用户推荐未评分的电影。例如,可以根据预测评分的值从大到小排序,然后选择前
k
k
k 个评分最高的电影进行推荐。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。