非负张量分解技术详解
立即解锁
发布时间: 2025-09-08 01:19:35 阅读量: 24 订阅数: 18 AIGC 


源分离与机器学习
# 非负张量分解技术详解
## 1. 贝叶斯张量分解
### 1.1 层次贝叶斯模型
贝叶斯张量分解用于协作过滤,其中观察到的张量 \(X = \{X_{lmn}\}\) 是沿着 \(L\) 个时间、 \(M\) 个用户和 \(N\) 个项目收集的评分值。该方法遵循层次贝叶斯模型,对不同层的变量分布进行假设,并实施完整的贝叶斯推理。
在模型构建中,似然函数 \(p(X|C,B,W,\sigma^2)\) 的定义与某式相同。因子参数 \(C = \{C_l\}_{l = 1}^L\)、 \(C_0\)、 \(B = \{B_m\}_{m = 1}^M\) 和 \(W = \{W_n\}_{n = 1}^N\) 的先验分布定义如下:
- \(p(C_l|R_c^{-1}) = N\left(C_l|C_{l - 1},R_c^{-1}\right)\)
- \(p(C_0|\mu_c,R_c^{-1}) = N\left(C_0|\mu_c,R_c^{-1}\right)\)
- \(p(B_m|\mu_b,R_b^{-1}) = N\left(B_m|\mu_b,R_b^{-1}\right)\)
- \(p(W_n|\mu_w,R_w^{-1}) = N\left(W_n|\mu_w,R_w^{-1}\right)\)
模型参数包括三维因子矩阵及其高斯参数,即 \(\Theta = \{C,B,W,\sigma^2,\Theta_c = \{\mu_c,R_c\},\Theta_b = \{\mu_b,R_b\},\Theta_w = \{\mu_w,R_w\}\}\)。
超参数 \(\Xi\) 由 \(C\)、 \(B\) 和 \(W\) 分布中假设的参数组成。均值向量 \(\{\mu_c,\mu_b,\mu_w\}\) 和精度矩阵 \(\{R_c,R_b,R_w\}\) 由高斯 - 威沙特分布构建的共轭先验表示:
- \(p(\Theta_c) = p(\mu_c|R_c)p(R_c)= N\left(\mu_c|\mu_0,(\beta_0R_c)^{-1}\right)W (R_c|\rho_0,V_0)\)
- \(p(\Theta_b) = p(\mu_b|R_b)p(R_b)= N\left(\mu_b|\mu_0,(\beta_0R_b)^{-1}\right)W (R_b|\rho_0,V_0)\)
- \(p(\Theta_w) = p(\mu_w|R_w)p(R_w)= N\left(\mu_w|\mu_0,(\beta_0R_w)^{-1}\right)W (R_w|\rho_0,V_0)\)
方差参数 \(\sigma^2\) 也由具有超参数 \(\{\alpha,\beta\}\) 的逆伽马分布的共轭先验建模。完整的超参数集为 \(\Xi = \{\mu_0,\beta_0,\rho_0,V_0,\alpha,\beta\}\)。
### 1.2 贝叶斯学习算法
根据完整的贝叶斯推理,需要计算预测分布 \(p(X|\Xi)\) 进行数据重建。边缘分布通过对所有参数 \(\Theta = \{C,B,W,\sigma^2,\Theta_c,\Theta_b,\Theta_w\}\) 积分得到:
\[p(X|\Xi) = \prod_{l,m,n}p(X_{lmn}|\Xi)=\prod_{l,m,n}\int p(X_{lmn},\Theta|\Xi)d\Theta=\prod_{l,m,n}\int p\left(X_{lmn}\left|\sum_{k}C_{lk}B_{mk}W_{nk},\sigma^2\right.\right)\times p(C,B,W,\sigma^2,\Theta_c,\Theta_b,\Theta_w|\Xi)d\{C,B,W,\sigma^2,\Theta_c,\Theta_b,\Theta_w\}\]
由于上述预测分布的精确解在分析上难以处理,引入马尔可夫链蒙特卡罗采样方法,通过对从相应后验分布中抽取的潜在变量样本 \(\{C^{(l)}_{l'},B^{(l)}_{m},W^{(l)}_{n},(\sigma^2)^{(l)},\Theta^{(l)}_{c},\Theta^{(l)}_{b},\Theta^{(l)}_{w}\}\) 的似然函数进行平均来近似积分。预测分布近似为:
\[p(X|\Xi) \approx \frac{1}{L}\sum_{l = 1}^{L}\prod_{l',m,n}p\left(X_{l'mn}\left|C^{(l)}_{l'},B^{(l)}_{m},W^{(l)}_{n},(\sigma^2)^{(l)},\Theta^{(l)}_{c},\Theta^{(l)}_{b},\Theta^{(l)}_{w},\Xi\right.\right)\]
贝叶斯张量分解的吉布斯采样算法步骤如下:
1. 初始化 \(\{C^{(1)},B^{(1)},W^{(1)}\}\)
2. 对于每个采样迭代 \(l\):
- 使用个体后验分布采样超参数:
- \(\Theta^{(l)}_{c} \sim p\left(\Theta_c\left|C^{(l)}\right.\right)\)
- \(\Theta^{(l)}_{b} \sim p\left(\Theta_b\left|B^{(l)}\right.\right)\)
- \(\Theta^{(l)}_{w} \sim p\left(\Theta_w\left|W^{(l)}\right.\right)\)
- \((\sigma^2)^{(l)} \sim p\left(\sigma^2\left|C^{(l)},B^{(l)},W^{(l)},X\right.\right)\)
- 对于每个用户(或频率 bin) \(m\):
- 采样用户(或频率)因子 \(B^{(l + 1)}_{m} \sim p\left(B_m\left|C^{(l)},W^{(l)},\Theta^{(l)}_{b},(\sigma^2)^{(l)},X\right.\right)\)
- 对于每个项目(或时间帧) \(n\):
- 采样项目(或时间)因子 \(W^{(l + 1)}_{n} \sim p
0
0
复制全文
相关推荐









