RDD(Resilient Distributed Dataset)译作弹性分布式数据集,是Spark中最常用的数据抽象,是一个只可读、可分区、可并行计算的数据集合。RDD允许将工作集缓存在内存中进行复用,大大地提升了查询速度。
RDD(Resilient Distributed Dataset)译作弹性分布式数据集,是Spark中最常用的数据抽象,是一个只可读、可分区、可并行计算的数据集合。RDD允许将工作集缓存在内存中进行复用,大大地提升了查询速度。
由于某些原因,国内访问ShareLaTeX或Overleaf网站速度特别慢而且经常掉线,科研环境十分不友好,因此有了自己搭建ShareLaTeX服务打算,且其支持Docker容器化部署,安装过程比较容易。本文记录了在实验室内网环境下利用Docker搭建ShareLaTeX服务的过程,并进行中文环境配置。
本地GitLab的安装需要部署各种依赖和其他服务,费时且麻烦,而直接使用Docker进行容器化部署则省时简单,只要运行一行命令即可使用。本文记录了在实验室内网环境下利用Docker搭建源码托管工具GitLab,并列出一些必要的个性化配置项。
因为可以对观测数据进行灵活的符合实际的建模(不同的概率分布假设),贝叶斯概率分解模型已经成为了最常见的矩阵/张量分解方法。其中,贝叶斯泊松分解模型一方面可以对计数值(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)).假设当前有一个贝叶斯模型,且其中的参数都有相应的先验分布。同时,模型中还可能有潜变量,将其与各种参数标记为Θ。同样地,把所有观测变量集合标记为Y。因此,我们希望找到分布q(Θ)来逼近真实后验分布p(Θ∣Y),而这可以通过最小化KL散度实现,也即:
KL(q(Θ)‖p(Θ|Y))=∫q(Θ)ln{q(Θ)p(Θ∣Y)}dΘ=lnp(Y)−∫q(Θ)ln{p(Y,Θ)q(Θ)}dΘ其中lnp(Y)表示模型证据(Evidence),则其下界(lower bound)可以定义为L(q)=∫q(Θ)lnp(Y,Θ)q(Θ)dΘ。因为模型证据是一个常量,当KL散度为0时,下界出现最大值,这就意味着q(Θ)=p(Y,Θ)。