统计学习 | 贝叶斯高斯张量分解

贝叶斯高斯张量分解 (Bayesian Gaussian tensor decomposition/factorization) 是一种以贝叶斯推断 (Bayesian inference) 、高斯假设为基础的张量分解技术,其发展在很大程度上得益于早先提出的概率矩阵分解和贝叶斯矩阵分解,应用场景包括推荐系统 (recommender system)、图像复原 (image completion/inpainting) 以及一些以缺失数据或者稀疏数据为背景的时空数据挖掘 (spatio-temporal data analytics)。

0 用于机器学习问题的优势

一般而言,将贝叶斯推断用于求解张量分解的好处可简单地归结为以下几点。第一,张量分解本身存在着非凸优化的问题,即采用贝叶斯推断很可能会带来更好的解;第二,由实际数据组织起来的张量往往存在着不完整性的问题,如推荐系统的评分张量 (对应用户、商品、季度) ,此时采用贝叶斯推断可大大利用其对于稀疏学习的优势;第三,在张量分解的过程中能够刻画观测数据的随机性,也能一定程度上避免过拟合。

1 贝叶斯张量分解的发展历程

【描述】众所周知,我们常见的矩阵可以当做二维数组,而张量所对应的数组则一般是三维或者更多维的 (multi-dimensional),张量能够简单地看作是矩阵的多维延伸,从代数的角度来看,很多跟张量有关的模型都可以找到相应的矩阵模型,这里的贝叶斯张量分解也不例外,它可以看作是贝叶斯矩阵分解的多维模型。

1.1 一种随着季度变化的推荐系统

在2010年的时候,卡耐基梅隆大学的Xiong等人发表了一篇有趣的文章,标题是《Temporal collaborative filtering with bayesian probabilistic tensor factorization》,即用贝叶斯张量分解完成一种随着季度变化的推荐系统,在多伦多大学的Salakhutdinov和Mnih于2007年和2008年发表的两篇文章(分别是概率矩阵分解 - NIPS 2007贝叶斯矩阵分解 - ICML 2008)的基础上,Xiong等人提出了一个考虑时序约束的贝叶斯张量分解模型,并且极大地推动了后来贝叶斯张量分解模型的发展。

简单来说,假设有一个由用户-商品-季度构成的张量 \mathcal{Y} ,大小为 m\times n\times f ,其中, m 表示用户的数量, n 表示商品的数量, f 则表示总共的季度,那么,将用户因子 (user factor) u_{is} 和商品因子 (item factor) v_{js} 构成的矩阵分解 ( r 表示分解结构的秩)

\color{blue}{y_{ij}\approx\sum_{s=1}^{r}u_{is}v_{js}}

添加关于时间的因子 (temporal factor),形式如下:

\color{blue}{y_{ijt}\approx\sum_{s=1}^{r}u_{is}v_{js}x_{ts}}

就得到了一个张量分解。

我们可以很明显地看到,这里的张量分解并不比矩阵分解复杂多少,只需要这么简单的一步,即添加时间因子,我们就能够实现从矩阵分解到张量分解的“跨越”。

考虑到实际的数据往往存在着随机性,现假设高斯分布适用于该张量分解任务,即

\color{blue}{y_{ijt}\sim\mathcal{N}\left(\sum_{s=1}^{r}u_{is}v_{js}x_{ts},\tau^{-1}\right)}

为什么要用高斯分布呢?原因首先在于高斯分布是“最常用的”,我们碰到的很多数据如果看一下它的统计分布,可能绝大多数的分布图都长得跟高斯分布很像;另外一点则在于高斯分布携带着很多不错的性质,这里面包括其指数项的形式以及共轭分布。

回想一下:高斯分布的形式是怎样的呢?

高斯分布 (Gaussian distribution),也称为正态分布 (normal distribution,简写 \mathcal{N} ),其概率密度函数为
\mathcal{N}(x\mid \mu,\tau)=\sqrt{\frac{\tau}{2\pi}}e^{-\frac{1}{2}\tau(x-\mu)^2}
其中, \tau 是精度项 (precision),等于正态分布中方差的倒数,这样定义可以方便共轭先验的选取。

实际上,在张量分解的高斯分布假设中,指数项

-\frac{1}{2}\tau\left(y_{ijt}-\sum_{s=1}^{r}u_{is}v_{js}x_{ts}\right)^2

与张量分解常用的损失函数

\min_{U,V,X} ~~\frac{1}{2}\sum_{(i,j,t)\in\Omega}\left(y_{ijt}-\sum_{s=1}^{r}u_{is}v_{js}x_{ts}\right)^2

形式是一致的,所不同的是,采用贝叶斯框架在求解过程中能够有效地应对非凸优化问题。

在张量分解中,我们的任务是寻求合理的分解结构,为了通过贝叶斯推断估计出因子矩阵 U\in\mathbb{R}^{m\times r}V\in\mathbb{R}^{n\times r}X\in\mathbb{R}^{f\times r} ,需要进一步设置共轭先验 (仍然是高斯分布),

\color{blue}{\boldsymbol{u}_{i}\sim\mathcal{N}\left(\boldsymbol{\mu}_{u},\Lambda_{u}^{-1}\right),i=1,2,...,m}

\color{blue}{\boldsymbol{v}_{j}\sim\mathcal{N}\left(\boldsymbol{\mu}_{v},\Lambda_{v}^{-1}\right),j=1,2,...,n}

其中,向量 \boldsymbol{u}_{i},\boldsymbol{v}_{j} 分别是矩阵 U,V 的第 i 行和第 j 行,这里的 \mathcal{N}(\cdot) 表示多元正态分布。

顺便提一下,带有时序变化的推荐系统当然也有一些优势,举个简单的例子,如果我们找到了用户A的偏好,发现他以往喜欢绿色的鞋子,但当季火爆的鞋子却是蓝色的,那么推荐系统这时候再推荐一款绿色的鞋子可能就不太符合用户A的口味了。

为了把用户A在上一个季度的偏好 (比如青睐阿迪达斯) 和本季度的商品推荐完美地结合起来,于是,一个巧妙的设计产生了,即

\color{blue}{\boldsymbol{x}_{t}\sim\mathcal{N}\left(\boldsymbol{x}_{t-1},\Lambda_{x}^{-1}\right),t=2,3,...,f}

由于每个季度都有三个月,时间相对较长,所以他们仅仅将 \boldsymbol{x}_{t}\boldsymbol{x}_{t-1} (两个交替季度)进行了关联。

就这样,时序关系融入到了贝叶斯框架中,当然,如果要完成一个贝叶斯张量分解,还需要对超参数 \left\{\boldsymbol{\mu}_{u},\Lambda_{u},\boldsymbol{\mu}_{v},\Lambda_{v},\Lambda_{x}\right\} 设置共轭先验,并且推导出模型参数和超参数的后验分布,这在原文中都有详细的说明,感兴趣的读者可以阅读原文开源代码

【原文结果】以Netflix公开的电影评分数据为基础,对比以往的贝叶斯矩阵分解 (Bayesian probabilistic matrix factorization, BPMF),贝叶斯张量分解 (Bayesian probabilistic tensor factorization, BPTF) 显现出了优越性(结果如图1)。
图1 贝叶斯矩阵分解和贝叶斯张量分解的收敛情况对比,纵轴的RMSE表示绝对误差,其中,D是矩阵和张量分解结构的秩,随着秩的增大,贝叶斯矩阵分解和贝叶斯张量分解结果都会有所提升,然而,秩并非可以无限增大,秩取得过大,会大大增加计算量,且误差也不会再降低。


1.2 贝叶斯张量分解与图像复原

在计算机视觉中,有一类备受关注的问题被称为图像复原 (image completion/inpainting),即修复图像/图片的残缺部分,目前张量模型以及诸如生成对抗网络 (generative adversarial network, GAN)等深度学习方法都已经得到了很好的应用。

赵启斌等人于2015年发表了一篇文章 - 《Bayesian CP Factorization of Incomplete Tensors with Automatic Rank Determination》,即给出了一个面向不完整张量的贝叶斯张量分解方法,同时考虑了如何自动选取张量分解结构的秩,他们尝试将贝叶斯张量分解引入图像复原问题。

不过,在此之前,Liu等人在2013年发表了一篇很有影响力的文章 - 《Tensor Completion for Estimating Missing Values in Visual Data》,他们系统地提出了一类特殊的张量填充算法 (tensor completion),并用于图像复原问题,不同的是,Liu等人的张量模型是将张量填充转变成了求解迹范数 (trace norm) 最小化的优化问题,文章中并没有出现张量分解。

回到贝叶斯张量分解,同样假设高斯分布满足张量分解结构,为了避免公式符号混乱,我们在这里延续前面的写法,即贝叶斯张量分解为

\color{blue}{y_{ijt}\sim\mathcal{N}\left(\sum_{s=1}^{r}u_{is}v_{js}x_{ts},\tau^{-1}\right)}

如果想求解模型中的三个因子矩阵,还需要引入共轭先验,即

\color{blue}{\boldsymbol{u}_{i},\boldsymbol{v}_{j},\boldsymbol{x}_{t}\sim\mathcal{N}\left(\boldsymbol{0},[\text{diag}(\boldsymbol{\lambda})]^{-1}\right)}

与前面的因子矩阵先验假设不同之处在于,这里只引入了一个超参数,即向量 \boldsymbol{\lambda}\in\mathbb{R}^{r} ,这里有一个比较强的假设,即先验分布的协方差是对角阵 (diagonal matrix)。

虽然这样设置共轭先验看似有点偷懒且不足为奇,但事实上却十分精妙,它一方面简化了整个模型的贝叶斯网络,另一方面,赵启斌等人在原文中采用的是变分推断 (variational inference),简化后的模型可大大降低公式推导的难度。

对模型参数 \tau 和超参数 \boldsymbol{\lambda} 再分别设置共轭先验,即

\color{blue}{\tau\sim\text{Gamma}(\alpha,\beta)}

\color{blue}{\lambda_{s}\sim\text{Gamma}(\alpha,\beta),s=1,2,...,r}

伽马分布 (Gamma distribution) 的概率密度函数为
\text{Gamma}(x\mid\alpha,\beta)=\frac{1}{\Gamma(\alpha)}\beta^{\alpha}x^{\alpha-1}e^{-\beta x}

这样,无论是利用变分推断还是Gibbs采样(一种MCMC随机采样方法),只需要推导参数 \left\{U,V,X,\tau,\boldsymbol{\lambda}\right\} 的后验就能够完成一个贝叶斯张量分解了,由于篇幅原因,这里不再详述(作者提供了具体的公式推导和源代码,感兴趣的读者可以自行阅读)。

【原文结果】相比其他图像复原算法,原文方法 (FBCP & FBCP-MP) 优势显著,特别是对于高缺失率下的图像复原,修复结果远好于其他方法(结果如图2)。
图2 各种图像复原方法所取得的修复效果,第一列作为观测值,从上到下依次对应着缺失率为70%、80%、90%、95%,HaLRTC和FaLRTC是Liu等人于2013年提出的张量完整化算法。

2 贝叶斯高斯张量分解模型

前面简单地介绍了两个比较有趣的贝叶斯张量分解模型,我们此时对贝叶斯张量分解的结构和建模思路也有了一些认识,接下来,我们来继续看看贝叶斯高斯张量分解具体是怎样的。

2.1 贝叶斯推断的基础知识

贝叶斯推断是求解贝叶斯张量分解的重要工具,如果我们不加深对贝叶斯推断的理解,那么掌握贝叶斯张量分解可能就变成了无稽之谈。
一般而言,贝叶斯推断主要分为随机型采样和确定型参数估计,代表性的算法分别有MCMC (Markov chain Monte Carlo, 马尔可夫链蒙特卡洛)和变分推断,相比之下,变分推断要比MCMC抽象,在迭代过程中,每代的计算消耗也较大,不过其主要优势是得到模型近似解的收敛速度快。

在贝叶斯模型中,我们通常是希望找到模型的后验分布 (posterior distribution),这里可以回想一下在概率论中学习过的贝叶斯定理以及全概率公式。

根据贝叶斯准则,后验分布正比于观测值构成的似然 (likelihood) 和先验 (prior distribution) 的乘积,即
\color{blue}{p(\theta\mid\boldsymbol{y})=\frac{p(\boldsymbol{y}\mid\theta)p(\theta)}{\int p(\boldsymbol{y}\mid\theta)p(\theta)d\theta}\propto p(\boldsymbol{y}\mid\theta)p(\theta)}
其中, \boldsymbol{y} 表示观测值,相应地, p(\boldsymbol{y}\mid\theta) 是似然; \theta 表示模型的参数, p(\theta) 是先验分布。如果要估计出模型参数 \theta ,我们需要先求出后验分布 p(\theta\mid\boldsymbol{y})

另外,贝叶斯推断中先验分布的设置是很有讲究的,会涉及到共轭先验 (conjugate prior),维基百科中的词条Conjugate prior - Wikipedia系统地罗列了各种共轭先验和相应的后验分布。


2.2 极简的贝叶斯高斯张量分解模型

贝叶斯高斯张量分解模型事实上是一种特殊的贝叶斯模型,在很多关于贝叶斯张量分解或者贝叶斯矩阵分解的研究中,给定高斯假设是最理想的做法,并且模型的复杂程度完全取决于共轭先验的设计,在这里,我们先来看一个极简的模型(赵启斌等提出,可回顾本文1.2节)。

不妨把前面给出的模型重新写一下,以便加深印象。

  • 高斯假设下的张量模型:

\color{blue}{y_{ijt}\sim\mathcal{N}\left(\sum_{s=1}^{r}u_{is}v_{js}x_{ts},\tau^{-1}\right)}

  • 模型参数的先验分布:

\color{blue}{\boldsymbol{u}_{i},\boldsymbol{v}_{j},\boldsymbol{x}_{t}\sim\mathcal{N}\left(\boldsymbol{0},[\text{diag}(\boldsymbol{\lambda})]^{-1}\right),\forall i,j,t}

\color{blue}{\tau\sim\text{Gamma}(\alpha,\beta)}

  • 超参数的先验分布:

\color{blue}{\lambda_{s}\sim\text{Gamma}(\alpha,\beta),s=1,2,...,r}

其中,上面出现的向量如 \boldsymbol{u}_{i},\boldsymbol{v}_{j},\boldsymbol{x}_t,\boldsymbol{\lambda}\in\mathbb{R}^{r} 在没有特殊说明的情况下,都表示列向量; \alpha\beta 也是模型的超参数。


2.2.1 推导模型参数 \boldsymbol{u}_{i},\boldsymbol{v}_{j},\boldsymbol{x}_{t} 的后验分布

有了上述假设,我们实际上已经得到了一个贝叶斯网络。对于模型参数,例如 \boldsymbol{u}_{i} ,它的似然来自于观测值 y_{ijt} ,先验是一个多元正态分布,因此, \boldsymbol{u}_{i} 的后验分布仍然是一个多元正态分布,即 \color{blue}{\boldsymbol{u}_{i}\sim\mathcal{N}\left(\tilde{\boldsymbol{\mu}}_{u},\tilde{\boldsymbol{\Lambda}}_{u}^{-1}\right)} ,后验的参数如下:

\color{blue}{\tilde{\Lambda}_{u}=\tau\sum_{j,t:(i,j,t)\in\Omega}\boldsymbol{w}_{jt}\boldsymbol{w}_{jt}^{T}+\text{diag}(\boldsymbol{\lambda})}

\color{blue}{\tilde{\boldsymbol{\mu}}_{u}=\tau\tilde{\Lambda}_{u}^{-1}\sum_{j,t:(i,j,t)\in\Omega}\boldsymbol{w}_{jt}y_{ijt}}

其中,向量 \boldsymbol{w}_{jt}=\boldsymbol{v}_{j}\circledast\boldsymbol{x}_{t}\in\mathbb{R}^{r} ,符号 \circledast 表示点乘 (element-wise product),即对于任意 s=\left\{1,2,...,r\right\} ,满足 w_{is}=v_{js}x_{ts} ;若 \Omega 表示张量 \mathcal{Y} 中所有被观测到的元素的索引集合,则后验参数中的求和符号下标 j,t:(i,j,t)\in\Omega 是切片 (slice) \mathcal{Y}_{:jt} 中被观测到的元素的索引。

事实上,模型参数 \boldsymbol{v}_{j}\boldsymbol{x}_{t} 的后验分布参数与 \boldsymbol{u}_{i} 类似,即

  • \color{blue}{\boldsymbol{v}_{j}\sim\mathcal{N}\left(\tilde{\boldsymbol{\mu}}_{v},\tilde{\boldsymbol{\Lambda}}_{v}^{-1}\right)} ,后验分布的参数为

\tilde{\Lambda}_{v}=\tau\sum_{i,t:(i,j,t)\in\Omega}\boldsymbol{w}_{it}\boldsymbol{w}_{it}^{T}+\text{diag}(\boldsymbol{\lambda})

\tilde{\boldsymbol{\mu}}_{v}=\tau\tilde{\Lambda}_{v}^{-1}\sum_{i,t:(i,j,t)\in\Omega}\boldsymbol{w}_{it}y_{ijt}

  • \color{blue}{\boldsymbol{x}_{t}\sim\mathcal{N}\left(\tilde{\boldsymbol{\mu}}_{x},\tilde{\Lambda}_{x}^{-1}\right)} ,后验分布的参数为

\tilde{\Lambda}_{x}=\tau\sum_{i,j:(i,j,t)\in\Omega}\boldsymbol{w}_{ij}\boldsymbol{w}_{ij}^{T}+\text{diag}(\boldsymbol{\lambda})

\tilde{\boldsymbol{\mu}}_{x}=\tau\tilde{\Lambda}_{x}^{-1}\sum_{i,j:(i,j,t)\in\Omega}\boldsymbol{w}_{ij}y_{ijt}

其中,向量 \boldsymbol{w}_{it}=\boldsymbol{u}_{i}\circledast\boldsymbol{x}_{t}\in\mathbb{R}^{r}\boldsymbol{w}_{ij}=\boldsymbol{u}_{i}\circledast\boldsymbol{v}_{j}\in\mathbb{R}^{r} .

由于这些参数的后验分布推导起来比较繁琐,下面只以 \boldsymbol{u}_{i} 为例,感兴趣的读者可以尝试着推导一下 \boldsymbol{v}_{j}\boldsymbol{x}_{t} 的后验分布,他们的推导过程与 \boldsymbol{u}_{i} 是完全一致的。

【推导示例】就模型参数 \boldsymbol{u}_{i} 而言,似然来自 \mathcal{Y}_{:jt} 中被观测到的元素:
\mathcal{L}(\mathcal{Y}_{:jt}\mid\boldsymbol{u}_{i},V,X,\tau)\propto\prod_{j,t:(i,j,t)\in\Omega}\exp\left\{-\frac{1}{2}\tau\left(y_{ijt}-\boldsymbol{u}_{i}^{T}\boldsymbol{w}_{jt}\right)^2\right\}
是很多高斯分布的乘积。
为方便推导,将 \sum_{s=1}^{r}u_{is}v_{js}x_{ts} 写成向量乘积,即 \boldsymbol{u}_{i}^{T}(\boldsymbol{v}_{j}\circledast\boldsymbol{x}_{t}) 或者\boldsymbol{u}_{i}^{T}\boldsymbol{w}_{jt} ,指数项需要写成如下形式:
=\prod_{j,t:(i,j,t)\in\Omega}\exp\left\{-\frac{1}{2}\tau\left(y_{ijt}-\boldsymbol{u}_{i}^{T}\boldsymbol{w}_{jt}\right)\left(y_{ijt}-\boldsymbol{u}_{i}^{T}\boldsymbol{w}_{jt}\right)^T\right\}
\propto\exp\left\{-\frac{1}{2}\boldsymbol{u}_{i}^{T}(\tau\sum_{j,t:(i,j,t)\in\Omega}\boldsymbol{w}_{jt}\boldsymbol{w}_{jt}^{T})\boldsymbol{u}_{i}+\frac{1}{2}\boldsymbol{u}_{i}^{T}(\tau\sum_{j,t:(i,j,t)\in\Omega}y_{ijt}\boldsymbol{w}_{jt})\right\}
通过这种简单的“变形”,可以得到一个关于 \boldsymbol{u}_{i} 的多元正态分布。

由于 \boldsymbol{u}_{i}\sim\mathcal{N}\left(\boldsymbol{0},[\text{diag}(\boldsymbol{\lambda})]^{-1}\right) 是一个多元正态分布 (multi-variate normal distribution, MVN),概率密度函数为
p(\boldsymbol{u}_{i}\mid\boldsymbol{\lambda})\propto\exp\left\{-\frac{1}{2}\boldsymbol{u}_{i}^{T}\text{diag}(\boldsymbol{\lambda})\boldsymbol{u}_{i}\right\}
依据贝叶斯准则,后验分布正比于似然和先验的乘积,因此,
p(\boldsymbol{u}_{i}\mid\tilde{\boldsymbol{\mu}}_{x},\tilde{\Lambda}_{x})\propto\mathcal{L}(\mathcal{Y}_{:jt}\mid\boldsymbol{u}_{i},V,X,\tau)p(\boldsymbol{u}_{i}\mid\boldsymbol{\lambda})
\propto\exp\left\{-\frac{1}{2}(\boldsymbol{u}_{i}-\tilde{\boldsymbol{\mu}}_{x})^{T}\tilde{\Lambda}_{x}(\boldsymbol{u}_{i}-\tilde{\boldsymbol{\mu}}_{x})\right\}
后验分布也是一个多元正态分布,从而可以得到后验分布的参数 \tilde{\boldsymbol{\mu}}_{x},\tilde{\Lambda}_{x}


2.2.2 推导模型参数 \tau 的后验分布

在张量分解的贝叶斯网络中,可通过 \color{blue}{\tau\sim\text{Gamma}\left(\tilde{\alpha},\tilde{\beta}\right)} 对参数 \tau 进行采样更新,其中

\color{blue}{\tilde{a}=a_0+\frac{1}{2}\sum_{(i,j,t)\in\Omega}1\left\{y_{ijt}\neq 0\right\}}

\color{blue}{\tilde{\beta}=\beta_0+\frac{1}{2}\sum_{(i,j,t)\in\Omega}\left(y_{ijt}-\sum_{s=1}^{r}u_{is}v_{js}x_{ts}\right)^2} .

2.2.3 推导超参数 \boldsymbol{\lambda} 的后验分布

更新后的超参数 \tilde{\alpha},\tilde{\beta} 分别为

\color{blue}{\tilde{\alpha}=\alpha_0+\frac{1}{2}\left(m+n+f\right)}

\color{blue}{\tilde{\beta}=\beta_0+\frac{1}{2}\left(\sum_{i=1}^{m}{u}_{is}^2+\sum_{j=1}^{n}{v}_{js}^2+\sum_{t=1}^{f}{x}_{ts}^2\right)}

超参数 \color{blue}{\lambda_s\sim\text{Gamma}\left(\tilde{\alpha},\tilde{\beta}\right),s=1,2,...,r} .

3 算法实现

【实例】给定一个以交通流量数据构造出来大小为\color{blue}{7\times 4\times 3}的张量\color{blue}{\mathcal{Y}}, 其中\mathcal{Y}(:,:,1)=\left[\begin{array}{cccc} 155 & 74 & 493 & 426 \\ 108 & 44 & 350 & 359 \\ 175 & 78 & 567 & 581 \\ 181 & 111 & 517 & 552 \\ 137 & 53 & 489 & 485 \\ 90 & 44 & 306 & 290 \\ 139 & 55 & 398 & 390 \\ \end{array}\right]\mathcal{Y}(:,:,2)=\left[\begin{array}{cccc} 172 & 69 & 590 & 386 \\ 104 & 39 & 310 & 304 \\ 158 & 74 & 505 & 546 \\ 176 & 90 & 525 & 552 \\ 150 & 64 & 438 & 459 \\ 73 & 32 & 281 & 299 \\ 127 & 51 & 358 & 382 \\ \end{array}\right]\mathcal{Y}(:,:,3)=\left[\begin{array}{cccc} 225 & 92 & 443 & 436 \\ 94 & 44 & 355 & 356 \\ 139 & 77 & 575 & 604 \\ 175 & 98 & 574 & 553 \\ 126 & 67 & 593 & 484 \\ 58 & 49 & 348 & 301 \\ 144 & 71 & 444 & 396 \\ \end{array}\right]7表示7个流量检测器,4表示4天,3表示三个时间窗(每15min),元素表示交通流量(辆/15min或veh/15min)。

图3 利用贝叶斯高斯张量分解模型解决缺失数据修复问题 (matlab)的小实验,在实现的过程中,需要先产生一部分缺失数据。
该Jupyter notebook的下载地址为BGCP imputation example - Jupyter notebook,其中,源代码来源于transdim - GitHub项目。

4 阅读材料

张量分解以及矩阵分解一直是机器学习中的重要内容,更为有趣的是,结合贝叶斯学习框架构建的张量分解模型与一般意义上的“张量分解”有显著区别,即前者通过对模型参数进行后验的分布估计,而后者往往是明确一个具体的“损失函数”(loss function),直接采用交替最小二乘法 (alternating least square, ALS) 或者梯度下降法 (gradient descent method) 等求解。贝叶斯张量分解当然也有一定的优势,它能够轻松应对常见的非凸优化问题。

在过去的十年里,最有影响力的一篇张量分解文章当属Tamara G. Kolda和Brett W. Bader于2009年发表的综述论文《Tensor decompositions and Applications》(链接为:public.ca.sandia.gov/~t),在此基础上,对贝叶斯张量分解感兴趣的读者可以阅读前面提及的文献。

编辑于 2019-04-23

文章被以下专栏收录