一、异常检测问题动机
- 在现实中,我们经常会遇到 “异常检测” 的任务:识别罕见、异常、不符合正常模式的数据点。
- 例:工业设备故障检测,银行欺诈识别,异常流量检测等。
- 核心特点:异常样本稀少,难以用监督学习训练模型。
二、高斯分布
-
建立算法前,需要假设每个特征满足 高斯(正态)分布。
-
在单一特征 xjx_jxj 上:
p(xj;μj,σj2)=12π σjexp(−(xj−μj)22σj2) 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) -
参数:
- μj\mu_jμj:该特征的均值(样本平均)
- σj2\sigma_j^2σj2:方差(样本方差)
-
-
若所有特征相互独立,样本在多维空间上的概率为:
p(x)=∏j=1np(xj;μj,σj2) p(x) = \prod_{j=1}^n p(x_j; \mu_j, \sigma_j^2) p(x)=j=1∏np(xj;μj,σj2)
三、算法流程
- 估计参数 μj\mu_jμj, σj2\sigma_j^2σj2,使用训练集中每个特征的样本统计量。
- 计算异常概率:对于新样本 xxx,计算其在模型下的联合似然 p(x)p(x)p(x)。
- 设定阈值 ϵ\epsilonϵ:
- 若 p(x)<ϵp(x) < \epsilonp(x)<ϵ,则判定为异常(anomaly)。
- 否则为正常样本。
通过此方法,我们能识别出那些在训练数据分布之下概率极低的样本。
四、异常检测系统的开发与评估
- 开发流程:
- 从正常数据中估计 p(x)p(x)p(x)。
- 设定阈值 ϵ\epsilonϵ,根据历史异常样本调优。
- 使用混淆矩阵指标(TP, FP, FN, TN)评估系统效果。
- 评估标准:
- 精准率(Precision)、召回率(Recall)、F1 分数
- 目标:低误报率、高召回率(尤其在安全或故障检测场景)。
五、与监督学习的对比
特性 | 异常检测(无监督) | 监督学习 |
---|---|---|
数据需求 | 正常样本丰富,异常样本稀少 | 同时需要正常和异常样本 |
应用场景 | 异常未知、难以标注的场景 | 标签已知、结构明确的分类任务 |
模型训练目标 | 学习正常分布 | 最小化预测误差 |
- 异常检测更适合异常样本稀少或未知的情况。
六、特征选择
- 特征选取关键性强:
- 异常表现往往体现在特定特征上,不选择合适特征可能无法检测异常。
- 可考虑大量候选特征,采用统计方法初筛,再人工选 +
- 重要:避免冗余特征造成噪声、过拟合或高维问题。
七、实践建议
- 建议基于领域知识选择特征,例如:
- 监控系统:时间、人为操作数据、温度、压力等环境变量;
- 金融领域:交易金额、频率、地理偏移等;
- 一般场景:不仅采用数值特征,还应注意衍生与组合特征设计。
- 数据预处理建议:
- 标准化或归一化处理,保证每个特征都能被高斯假设合理拟合;
- 挑选异常标签作为验证集,用于阈值设定和调优。
八、推荐系统问题背景
推荐系统帮助用户发现他们可能喜欢的物品,解决数据海量化导致的选择困难问题。
常见应用场景:
- 电影推荐(Netflix, 豆瓣)
- 商品推荐(Amazon, 淘宝)
- 音乐推荐(Spotify, 网易云)
数据表示:
- 设 nun_unu 是用户数量,nmn_mnm 是物品数量。
- y(i,j)y^{(i,j)}y(i,j):用户 jjj 对物品 iii 的评分。
- r(i,j)=1r(i,j) = 1r(i,j)=1 如果评分存在,否则为 0。
九、协同过滤的动机
核心假设:喜欢相似物品的用户,通常对其他相似物品也有类似偏好。
数学上:
- 每个物品 iii 用向量 x(i)∈Rnx^{(i)} \in \mathbb{R}^nx(i)∈Rn 表示其特征。
- 每个用户 jjj 用向量 θ(j)∈Rn\theta^{(j)} \in \mathbb{R}^nθ(j)∈Rn 表示其偏好。
预测评分:
y^(i,j)=(θ(j))Tx(i)
\hat{y}^{(i,j)} = (\theta^{(j)})^T x^{(i)}
y^(i,j)=(θ(j))Tx(i)
这里的内积表示:
- 如果 θ(j)\theta^{(j)}θ(j) 与 x(i)x^{(i)}x(i) 方向一致(高相似度),评分就高。
- 如果方向相反(不匹配),评分就低。
十、协同过滤成本函数
我们希望学出使预测评分与真实评分尽量接近的参数:
J(x,θ)=12∑(i,j):r(i,j)=1((θ(j))Tx(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
原理解析:
- 前半部分:最小化预测评分误差的平方和。
- 正则化项:
- 防止过拟合(防止 x(i)x^{(i)}x(i) 和 θ(j)\theta^{(j)}θ(j) 的值无限增大以拟合少数评分)。
- 控制模型复杂度,提升泛化能力。
十一、梯度更新公式
为了最小化成本函数,我们对每个参数求偏导:
∂J∂x(i)=∑j:r(i,j)=1((θ(j))Tx(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))Tx(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∈Rnm×nuY \in \mathbb{R}^{n_m \times n_u}Y∈Rnm×nu,协同过滤希望找到:
Y≈XΘT
Y \approx X \Theta^T
Y≈XΘT
其中:
- X∈Rnm×nX \in \mathbb{R}^{n_m \times n}X∈Rnm×n:每行是物品特征 x(i)x^{(i)}x(i)。
- Θ∈Rnu×n\Theta \in \mathbb{R}^{n_u \times n}Θ∈Rnu×n:每行是用户参数 θ(j)\theta^{(j)}θ(j)。
这类似于 低秩矩阵分解,但不同于传统 SVD:
- 只拟合已评分项。
- 通过正则化避免过拟合。
矩阵分解解释了推荐系统能在稀疏评分矩阵中填补空白。
十三、均值归一化
为什么需要?
有的物品评分普遍高(如经典电影),有的用户评分普遍高或低。
若不处理:
- 模型可能学出错误的特征和偏好方向。
方法:
- 每个物品减去均值:
ynorm(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))Tx(i)+μ(i)
\hat{y}^{(i,j)} = (\theta^{(j)})^T x^{(i)} + \mu^{(i)}
y^(i,j)=(θ(j))Tx(i)+μ(i)
均值归一化后:
- 参数更易学。
- 推荐结果不受评分基准偏置干扰。
十四、冷启动与扩展问题
冷启动
- 新用户:没有历史评分,难以学出 θ(j)\theta^{(j)}θ(j)。
- 新物品:没有评分,无法学 x(i)x^{(i)}x(i)。
解决方案:
- 混合推荐(协同过滤 + 内容推荐)。
- 初始阶段用物品属性或用户画像特征。
可扩展性
- 协同过滤可以高效并行化,适合大规模分布式系统。
- 常与近似优化(随机梯度下降、分布式矩阵分解)结合。
十五、推荐系统
主题 | 方法 | 本质 | 工程实践 |
---|---|---|---|
协同过滤 | 矩阵分解,梯度下降 | 学习用户与物品的低维向量表示 | 正则化防过拟合、均值归一化去偏置、混合推荐应对冷启动 |
矩阵分解 | 评分矩阵低秩分解 | 潜在因子模型 | 适用于稀疏评分矩阵 |
十六、背后原理深挖
正则化的本质:
- 避免在已评分样本上过拟合。
- 让低维表示更平滑,提升泛化能力。
为什么是内积?
- 内积度量向量相似性,符合“相似物品评分相近”的假设。
- 简单高效,可快速计算所有物品的预测分数。
与 SVD 区别:
- SVD 对整个矩阵分解,协同过滤只针对已评分项。
- 协同过滤更灵活(可加正则、均值归一化、融合上下文)。