建立算法前,需要假设每个特征满足 高斯(正态)分布。
在单一特征 x j x_j xj 上:
p ( x j ; μ j , σ j 2 ) = 1 2 π σ j exp ( − ( x j − μ j ) 2 2 σ j 2 ) p(x_j; \mu_j, \sigma_j^2) = \frac{1}{\sqrt{2\pi}\,\sigma_j} \exp\left(-\frac{(x_j - \mu_j)^2}{2\sigma_j^2}\right) p(xj;μj,σj2)=2πσj1exp(−2σj2(xj−μj)2)
参数:
若所有特征相互独立,样本在多维空间上的概率为:
p ( x ) = ∏ j = 1 n p ( x j ; μ j , σ j 2 ) p(x) = \prod_{j=1}^n p(x_j; \mu_j, \sigma_j^2) p(x)=j=1∏np(xj;μj,σj2)
通过此方法,我们能识别出那些在训练数据分布之下概率极低的样本。
特性 | 异常检测(无监督) | 监督学习 |
---|---|---|
数据需求 | 正常样本丰富,异常样本稀少 | 同时需要正常和异常样本 |
应用场景 | 异常未知、难以标注的场景 | 标签已知、结构明确的分类任务 |
模型训练目标 | 学习正常分布 | 最小化预测误差 |
推荐系统帮助用户发现他们可能喜欢的物品,解决数据海量化导致的选择困难问题。
常见应用场景:
数据表示:
核心假设:喜欢相似物品的用户,通常对其他相似物品也有类似偏好。
数学上:
预测评分:
y ^ ( i , j ) = ( θ ( j ) ) T x ( i ) \hat{y}^{(i,j)} = (\theta^{(j)})^T x^{(i)} y^(i,j)=(θ(j))Tx(i)
这里的内积表示:
我们希望学出使预测评分与真实评分尽量接近的参数:
J ( x , θ ) = 1 2 ∑ ( i , j ) : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) 2 + λ 2 ∑ j ∥ θ ( j ) ∥ 2 + λ 2 ∑ i ∥ x ( i ) ∥ 2 J(x, \theta) = \frac{1}{2} \sum_{(i,j): r(i,j)=1} \left( (\theta^{(j)})^T x^{(i)} - y^{(i,j)} \right)^2 + \frac{\lambda}{2} \sum_j \|\theta^{(j)}\|^2 + \frac{\lambda}{2} \sum_i \|x^{(i)}\|^2 J(x,θ)=21(i,j):r(i,j)=1∑((θ(j))Tx(i)−y(i,j))2+2λj∑∥θ(j)∥2+2λi∑∥x(i)∥2
原理解析:
为了最小化成本函数,我们对每个参数求偏导:
∂ J ∂ x ( i ) = ∑ j : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) θ ( j ) + λ x ( i ) \frac{\partial J}{\partial x^{(i)}} = \sum_{j: r(i,j)=1} \left( (\theta^{(j)})^T x^{(i)} - y^{(i,j)} \right) \theta^{(j)} + \lambda x^{(i)} ∂x(i)∂J=j:r(i,j)=1∑((θ(j))Tx(i)−y(i,j))θ(j)+λx(i)
∂ J ∂ θ ( j ) = ∑ i : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) x ( i ) + λ θ ( j ) \frac{\partial J}{\partial \theta^{(j)}} = \sum_{i: r(i,j)=1} \left( (\theta^{(j)})^T x^{(i)} - y^{(i,j)} \right) x^{(i)} + \lambda \theta^{(j)} ∂θ(j)∂J=i:r(i,j)=1∑((θ(j))Tx(i)−y(i,j))x(i)+λθ(j)
用梯度下降或高阶优化方法(如 L-BFGS)同时更新 x ( i ) x^{(i)} x(i) 和 θ ( j ) \theta^{(j)} θ(j)。
矩阵视角:
设评分矩阵 Y ∈ R n m × n u Y \in \mathbb{R}^{n_m \times n_u} Y∈Rnm×nu,协同过滤希望找到:
Y ≈ X Θ T Y \approx X \Theta^T Y≈XΘT
其中:
这类似于 低秩矩阵分解,但不同于传统 SVD:
矩阵分解解释了推荐系统能在稀疏评分矩阵中填补空白。
有的物品评分普遍高(如经典电影),有的用户评分普遍高或低。
若不处理:
y norm ( i , j ) = y ( i , j ) − μ ( i ) y_{\text{norm}}^{(i,j)} = y^{(i,j)} - \mu^{(i)} ynorm(i,j)=y(i,j)−μ(i)
训练完成后预测值:
y ^ ( i , j ) = ( θ ( j ) ) T x ( i ) + μ ( i ) \hat{y}^{(i,j)} = (\theta^{(j)})^T x^{(i)} + \mu^{(i)} y^(i,j)=(θ(j))Tx(i)+μ(i)
均值归一化后:
解决方案:
主题 | 方法 | 本质 | 工程实践 |
---|---|---|---|
协同过滤 | 矩阵分解,梯度下降 | 学习用户与物品的低维向量表示 | 正则化防过拟合、均值归一化去偏置、混合推荐应对冷启动 |
矩阵分解 | 评分矩阵低秩分解 | 潜在因子模型 | 适用于稀疏评分矩阵 |