贝叶斯泊松分解
一般形式
因为可以对观测数据进行灵活的符合实际的建模(不同的概率分布假设),贝叶斯概率分解模型已经成为了最常见的矩阵/张量分解方法。其中,贝叶斯泊松分解模型一方面可以对计数值(count data)进行有效的建模,另一方面得益于其非负的分解结构,可以用于替代传统的非负矩阵分解模型(NMF),因而被广泛应用于推荐系统、因子分析和聚类分析中。常见的贝叶斯泊松矩阵分解模型如下,其中观测值xij服从泊松分布,而其分解得到的因子矩阵的值则服从共轭的Gamma分布:
xij=K∑k=1zijk,zijk∼Pois(uikvjk),uik∼Gamma(a(u),b(u)a(u)),vjk∼Gamma(a(v),b(v)a(v)).其中Gamma分布的概率密度函数如下所示,$\alpha\in\mathbb{R}{+}为shape参数,\beta\in\mathbb{R}{+}为scale参数,\Gamma(n+1)=n!$为gamma函数:
Gamma(x;α,β)=exp((α−1)lnx−xβ−lnΓ(α)−αlnβ)Binary形式
变分推断
变分更新公式
上述模型的联合概率分布函数为
p(X,Z,U,V)=p(X∣Z)p(Z∣U,V)p(U)p(V)其对数形式展开如下
lnp(X,Z,U,V)=∑i∑j∑k(−uikvjk+zijkln(uikvjk)−lnΓ(zijk+1))+∑i∑j((a(u)−1)lnuik−a(u)b(u)uik−lnΓ(a(u))−a(u)lnb(u)a(u))+∑i∑j((a(v)−1)lnvjk−a(v)b(v)vjk−lnΓ(a(v))−a(v)lnb(v)a(v))与此同时,对后验概率分布的变分近似分布进行分解,得到
q(Z,U,V)=q(Z)q(U)q(V)=∏i,jqzij(zij)∏i,kquik(uik)∏j,kqvjk(vjk)根据变分贝叶斯推断笔记中的公式(3),我们可以对各个因子的最优化形式进行推导。首先,对于因子$q{\boldsymbol{z}{ij}}(\boldsymbol{z}_{ij})$,有
lnq∗zij(zij)=E(Θ∖zij)[lnp(X,Z,U,V)]+const=E(Θ∖zij)[∑k(−lnΓ(zijk+1)+zijk(lnuik+lnvjk))]+const=∑k(−lnΓ(zijk+1)+zijk(E[lnuik]+E[lnvjk]))+const=∑k(−lnΓ(zijk+1)+zijklneE[lnuik]+E[lnvjk])+const辅助变量zij的后验为多项式分布,其参数为
ϕ∗ijk=eE[lnuik]+E[lnvjk]∑keE[lnuik]+E[lnvjk]因此zijk的更新公式为
E[zijk]=xijϕ∗ijk进一步地,对于因子$q{u{ik}}(u_{ik})$,有
lnq∗uik(uik)=E(Θ∖uik)[lnp(X,Z,U,V)]+const=E(Θ∖uik)[(a(u)+∑jzijk−1)lnuik−(a(u)b(u)+∑kvjk)uik]+const=(a(u)+∑jE[zijk]−1)lnuik−(a(u)b(u)+∑kE[vjk])uik+const由共轭性,$q{u{ik}}(u_{ik})$仍然是Gamma分布,其参数为
α(u)∗ik=a(u)+∑jE[zijk],β(u)∗ik=(a(u)b(u)+∑kE[vjk])−1,因此uik的更新公式为
E[uik]=α(u)∗ikβ(u)∗ikE[lnuik]=ψ(α(u)∗ik)+lnβ(u)∗ik最后,因子$q{v{jk}}(v{jk})的计算与因子q{u{ik}}(u{ik})$类似。
变分下界计算
变分下界的计算公式如下:
L(q)=Eq[lnp(X,Θ)]+H(q(Θ))其中$H(q(\Theta))=-\mathbb{E}{q}[\text{ln}q(\Theta)],因此我们可以计算变分下界,其中\sum{i}\sum{j}\sum{k}\mathbb{E}\left[\text{ln}\Gamma(z_{ijk}+1)\right]$项可以在计算过程中消去
L(q)=−∑i∑j∑kE[uik]E[vjk]+∑i∑kE[lnuik](a(u)−1+∑jE[zijk])+∑j∑kE[lnvjk](a(v)−1+∑iE[zijk])+∑i∑k(−a(u)b(u)E[uik]−lnΓ(a(u))−a(u)lnb(u)a(u))+∑j∑k(−a(v)b(v)E[vjk]−lnΓ(a(v))−a(v)lnb(v)a(v))+∑i∑j(−lnΓ(xij+1)−∑kE[zijk]lnϕ∗ijk)+∑i∑k(−(α(u)∗ik−1)ψ(α(u)∗ik)+lnβ(u)∗ik+α(u)∗ik+lnΓ(α(u)∗ik))+∑j∑k(−(α(v)∗jk−1)ψ(α(v)∗jk)+lnβ(v)∗jk+α(v)∗jk+lnΓ(α(v)∗jk))参考
- Prem Gopalan, Jake M. Hofman, David M. Blei. “Scalable recommendation with hierarchical poisson factorization”. In UAI, 2015.