半监督主题模型Correlation Explanation

Correlation Explanation是一种分析变量相关性的方法,可用于包含离散变量的任意数据(作者似乎把连续数据的模型也弄出来了,详细可参考作者的Github)。Correlation Explanation的基本原理是,假设变量YYY能对变量XXX很好地进行“解释”,即变量YYY与XXX强相关,那么XXX应该具有较低的不确定性,而对解释程度的量化是使用熵来描述的。

换个思路理解这个原理,有点像使用YYY去对XXX进行聚类(对特征聚类而不是对数据聚类),假设XXX有NNN个维度,我们现在想用MMM个YYY去“解释”XXX,当XiX_iXi​分配合理时,每个YjY_jYj​应该包含若干个XiX_iXi​,且每个YjY_jYj​内的XiX_iXi​达到较高相关度解释。

把这个思路对应到NLP中,就是做文本聚类/主题模型了,但也有点不一样,这里应该是对词/Token做聚类,文档的主题分布反而是副产品。

至于为什么是半监督,是因为建模的过程中引入了一个选择主题的变量αi,j\alpha_{i, j}αi,j​,可以在优化时固定某些值,即事先设定一些主题的Anchor词,优化后可以把相关的其他词聚在一起。

模型使用熵去描述目标函数,使用Lagrange乘子法优化,优化的过程类似EM过程或者坐标上升法,原理上比起Bayesian相关的Gibbs采样、Variational Inference,要简单一些。但是也由于这个模型需要信息论相关的知识体系(比如信息瓶颈之类的),在当前机器学习社区里面讨论的不多,造成原文理解起来有一定难度,所以这里就作一些浅显的解读。

  1. Discovering Structure in High-Dimensional Data Through Correlation Explanation
  2. Agglomerative Information Bottleneck
  3. Anchored Correlation Explanation: Topic Modeling with Minimal Domain Knowledge
  4. Correlation Explaination 学习笔记

信息论基础

随机变量XXX的熵为:

H(X)=−∑Xp(x)⋅log(p(x))H(X) = -\sum_{X}{p(x) \cdot \text{log}(p(x))} H(X)=−X∑​p(x)⋅log(p(x))

两个随机变量的互信息为:

I(X1:X2)=H(X1)+H(X2)−H(X1,X2)I(X_1: X_2) = H(X_1) + H(X_2) - H(X_1, X_2) I(X1​:X2​)=H(X1​)+H(X2​)−H(X1​,X2​)

定义Total Correlation:

TC(XG)=∑i∈GH(Xi)−H(XG){TC}(X_G) = \sum_{i \in G}{H(X_i)} - H(X_G) TC(XG​)=i∈G∑​H(Xi​)−H(XG​)

其中GGG是XXX的一个子集,直观来看就是子集中每一个随机变量熵之和减去子集的联合熵,当GGG中只有两个变量时,TCTCTC等价于两个变量的互信息。也就是说TCTCTC描述了集合中变量间的依赖程度。使用KL散度去理解可能会更加清晰:

TC(XG)=∑i∈GH(Xi)−H(XG)=∑i∈Glog(p(xi))(∫j≠ip(xG)dxj)dxi−H(XG)=∫xGp(xG)log(p(xG)∏i∈Gp(xi))dxG=DKL(p(xG)∥∏i∈Gp(xi))(6)\begin{array}{rcl} TC(X_G) & = & \sum\limits_{i \in G} H(X_i) - H(X_G) \\ & = & \sum\limits_{i \in G} log\big( p(x_i) \big) \big( \int\limits_{j \neq i} p(x_G)d{x_j} \big) d{x_i} - H(X_G) \\ & = & \int\limits_{x_G} p(x_G)log\big( \frac{p(x_G)}{\prod\limits_{i \in G} p(x_i)} \big) d{x_G} \\ & = & D_{KL}\bigg( p(x_G) \| \prod\limits_{i \in G}p(x_i) \bigg) \end{array} \tag{6} TC(XG​)​====​i∈G∑​H(Xi​)−H(XG​)i∈G∑​log(p(xi​))(j​=i∫​p(xG​)dxj​)dxi​−H(XG​)xG​∫​p(xG​)log(i∈G∏​p(xi​)p(xG​)​)dxG​DKL​(p(xG​)∥i∈G∏​p(xi​))​(6)

接着定义Conditional TCTCTC:

TC(X∣Y)=∑iH(Xi∣Y)−H(X∣Y){TC}(X| Y) = \sum_{i}{H(X_i| Y) - H(X| Y)} TC(X∣Y)=i∑​H(Xi​∣Y)−H(X∣Y)

那么我们就可以用TCTCTC与条件TCTCTC之差来衡量某一条件(变量)对于数据的 Correlation的贡献:

TC(X;Y)=TC(X)−TC(X∣Y)=∑i∈NnI(Xi:Y)−I(X:Y){TC}(X; Y) = {TC}(X) - {TC}(X| Y) = \sum_{i \in \mathbb{N}_n}{I(X_i: Y)} - I(X: Y) TC(X;Y)=TC(X)−TC(X∣Y)=i∈Nn​∑​I(Xi​:Y)−I(X:Y)

我们把YYY看成是解释XXX的隐变量,在主题模型的上下文中YYY就是主题变量,由于与LDA等生成模型不同,CorEx并没有似然函数的概念,而是使用Correlation描述数据的分布是否合理,合起来也就是Correlation Explanation了。

有个细节需要注意理解,Correlation Explanation的原文中隐变量YYY的取值是∣Y∣=k|Y| = k∣Y∣=k,而YYY的个数是mmm,即有Y1,Y2,⋯,YmY_1, Y_2, \cdots, Y_mY1​,Y2​,⋯,Ym​,这里面隐含的意思应该是可以解析XXX的隐变量是有多个的,比如在NLP中,Y1Y_1Y1​可以是主题,Y2Y_2Y2​可以是情感;也可以用YmY_mYm​表示不同的主题,每个主题又有两个取值{0,1}\{0, 1\}{0,1},表示某个主题是否有出现。

另外一个细节是I(X:Y)I(X: Y)I(X:Y)的计算:

I(X:Y)=∑x∈X,y∈Yp(x,y)log(p(x,y)p(x)p(y))=∑x∈X,y∈Yp(x)p(y∣x)log(p(y∣x)p(y))\begin{aligned} I(X: Y) =& \sum_{x \in X, y \in Y}{ p(x, y)\text{log}\bigg( \frac{p(x, y)}{p(x)p(y)} \bigg) } \\ =& \sum_{x \in X, y \in Y}{ p(x)p(y| x)\text{log}\bigg( \frac{p(y| x)}{p(y)} \bigg) } \end{aligned} I(X:Y)==​x∈X,y∈Y∑​p(x,y)log(p(x)p(y)p(x,y)​)x∈X,y∈Y∑​p(x)p(y∣x)log(p(y)p(y∣x)​)​

相关性解释模型

我们现在有一些观测变量XXX,也有隐藏变量YYY,以及知道了他们之间的所有分布:

  • 可以直接根据上述的相关性解释公式去计算YYY对XXX的解释程度;
  • 如果有多个YjY_jYj​,那么需要遍历所有的XiX_iXi​的分配情况,才能找出最优的分配方案,使得系统的相关性解释最大化;
  • 如果连分布都是未知的,假设分配到某个组的变量集合为GjG_jGj​,那么就需要把I(XGj:Yj)I(X_{G_j}: Y_j)I(XGj​​:Yj​)涉及到的概率都作为变量进行优化。

形式化描述这个优化问题,即是:

max⁡Gj,p(yj∣xGj)∑j=1mTC(XGj;Yj)s.t.∣Yj∣=kGj∩Gj′≠j=∅\begin{array}{cl} \underset{G_j, p(y_j| x_{G_j})}{\max} & \sum\limits_{j = 1}^m{{TC}(X_{G_j}; Y_j)} \\ {s.t.} & |Y_j| = k \\ & G_j \cap G_{j' \neq j} = \varnothing \end{array} Gj​,p(yj​∣xGj​​)max​s.t.​j=1∑m​TC(XGj​​;Yj​)∣Yj​∣=kGj​∩Gj′​=j​=∅​

把TC(XGj;Yj){TC}(X_{G_j}; Y_j)TC(XGj​​;Yj​)展开,得到:

max⁡Gj,p(yj∣xGj)∑j=1m(∑i∈GjI(Yj:Xi)−I(Yj:XGj))s.t.∣Yj∣=kGj∩Gj′≠j=∅\begin{array}{cl} \underset{G_j, p(y_j| x_{G_j})}{\max} & \sum\limits_{j = 1}^m \bigg( \sum\limits_{i \in G_j}{I(Y_j: X_i)} - I(Y_j: X_{G_j}) \bigg) \\ {s.t.} & |Y_j| = k \\ & G_j \cap G_{j' \neq j} = \varnothing \end{array} Gj​,p(yj​∣xGj​​)max​s.t.​j=1∑m​(i∈Gj​∑​I(Yj​:Xi​)−I(Yj​:XGj​​))∣Yj​∣=kGj​∩Gj′​=j​=∅​

由于各个GjG_jGj​是解耦的,为了更好的形式化,我们引入一个控制变量αi,j\alpha_{i, j}αi,j​,表示XiX_iXi​是否分配到GjG_jGj​中,优化问题改写为:

max⁡α,p(yj∣x)∑j=1m∑i=1nαi,jI(Yj:Xi)−∑j=1mI(Yj:X)\begin{array}{cl} \underset{\alpha, p(y_j| x)}{\max} & \sum\limits_{j = 1}^m \sum\limits_{i = 1}^n{ \alpha_{i, j}I(Y_j: X_i) } - \sum\limits_{j = 1}^m{I(Y_j: X)} \end{array} α,p(yj​∣x)max​​j=1∑m​i=1∑n​αi,j​I(Yj​:Xi​)−j=1∑m​I(Yj​:X)​

为了便于展开,首先处理单个YjY_jYj​:

∑i=1nαi,jI(Yj:Xi)−I(Yj:X)\sum\limits_{i = 1}^n{ \alpha_{i, j}I(Y_j: X_i) } - I(Y_j: X) i=1∑n​αi,j​I(Yj​:Xi​)−I(Yj​:X)

在优化目标函数的时候,原文直接给出了结论,合并了I(Yj:Xi)I(Y_j: X_i)I(Yj​:Xi​)和I(Yj:X)I(Y_j: X)I(Yj​:X)的公共部分,作者在这个Issue里面解答了,利用了边缘分布的技巧处理I(Yj:Xi)I(Y_j: X_i)I(Yj​:Xi​):

p(xi,y)=∑xj≠ip(x1,x2,…,xn,y)p(x_i, y) = \sum_{x_{j \neq i}}{p(x_1, x_2, \dots, x_n, y)} p(xi​,y)=xj​=i​∑​p(x1​,x2​,…,xn​,y)

注意上式中∑xj≠i\sum_{x_{j \neq i}}∑xj​=i​​的含义,是保留xix_ixi​为变量,遍历其他xjx_jxj​的值,如果在前面再遍历xix_ixi​的值,实际上等价于直接对联合分布遍历xxx的值。结合I(Yj:Xi)I(Y_j: X_i)I(Yj​:Xi​)的展开式有:

I(Yj:Xi)=∑yj,xip(yj,xi)log⁡(p(yj,xi)p(yj)p(xi))=∑yj,xp(yj,x)log⁡(p(yj,xi)p(yj)p(xi))I(Y_j: X_i) = \sum_{y_j, x_i}{ p(y_j, x_i)\log(\frac{p(y_j, x_i)}{p(y_j)p(x_i)}) } = \sum_{y_j, x}{ p(y_j, x)\log(\frac{p(y_j, x_i)}{p(y_j)p(x_i)}) } I(Yj​:Xi​)=yj​,xi​∑​p(yj​,xi​)log(p(yj​)p(xi​)p(yj​,xi​)​)=yj​,x∑​p(yj​,x)log(p(yj​)p(xi​)p(yj​,xi​)​)

现在可以重写优化目标函数:

L=∑yj,xp(x)p(yj∣x)(∑iαi,j(log⁡(p(yj∣xi))−log⁡(p(yj)))−(log⁡(p(yj∣x))−log⁡(p(yj))))+∑xλ(x)(∑yjp(yj∣x)−1)\begin{array}{rl} L &= \sum\limits_{y_j, x}{ p(x)p(y_j| x) \bigg( \sum\limits_i{\alpha_{i, j}( \log(p(y_j| x_i)) - \log(p(y_j)) )} - ( \log(p(y_j| x)) - \log(p(y_j)) ) \bigg) }\\ &+ \sum\limits_x{\lambda(x)}(\sum\limits_{y_j}{p(y_j| x)} - 1) \end{array} L​=yj​,x∑​p(x)p(yj​∣x)(i∑​αi,j​(log(p(yj​∣xi​))−log(p(yj​)))−(log(p(yj​∣x))−log(p(yj​))))+x∑​λ(x)(yj​∑​p(yj​∣x)−1)​

现在我们可以分别对每个变量求导、使导数为零、解出变量,在这里核心的变量是p(yj∣x)p(y_j| x)p(yj​∣x),p(y)p(y)p(y)、p(yj∣xi)p(y_j| x_i)p(yj​∣xi​)都是p(yj∣x)p(y_j| x)p(yj​∣x)的线性函数(因为p(x)p(x)p(x)、p(xi)p(x_i)p(xi​)是常数),可以解得:

p(yj∣x)=1Z(x)p(yj)∏i=1n(p(yj∣xi)p(yj))αi,jp(y_j| x) = \frac{1}{Z(x)}p(y_j)\prod_{i = 1}^n \bigg( \frac{p(y_j| x_i)}{p(y_j)} \bigg)^{\alpha_{i, j}} p(yj​∣x)=Z(x)1​p(yj​)i=1∏n​(p(yj​)p(yj​∣xi​)​)αi,j​

p(yj)=∑xp(x)p(yj∣x)p(y_j) = \sum_x{p(x)p(y_j| x)} p(yj​)=x∑​p(x)p(yj​∣x)

p(yj∣xi)=∑xj≠ip(yj∣x)p(x)/p(xi)p(y_j| x_i) = \sum_{x_{j \neq i}}{p(y_j| x)p(x)} / p(x_i) p(yj​∣xi​)=xj​=i​∑​p(yj​∣x)p(x)/p(xi​)

这里的xxx是指文档,我们无法遍历所有的xxx,所以使用训练集的语料去近似,因此每个p(yj∣x)p(y_j| x)p(yj​∣x),就是语料中每个文档属于某个主题的概率。当αi,j\alpha_{i, j}αi,j​固定的时候,我们可以用上面的公式得到最优的概率值;当得到概率值后,αi,j\alpha_{i, j}αi,j​的优化就是一个线性规划问题,可以得到:

αi,j∗=I[j=arg max⁡jˉI(Xi:Yjˉ)]\alpha_{i, j}^{*} = \mathbb{I}[ j = \underset{\bar{j}}{\argmax}{I(X_i: Y_{\bar{j}})} ] αi,j∗​=I[j=jˉ​argmax​I(Xi​:Yjˉ​​)]

然而这样的优化会有各种各样的问题(this leads to a rough optimization space),因此每次迭代实际上用了另一个方法:

αi,jt+1=(1−λ)αi,jt+λαi,j∗∗\alpha_{i, j}^{t + 1} = (1 - \lambda)\alpha_{i, j}^t + \lambda\alpha_{i, j}^{**} αi,jt+1​=(1−λ)αi,jt​+λαi,j∗∗​

αi,j∗∗=exp⁡(γ(I(Xi:Yj)−max⁡jˉI(Xi:Yjˉ)))\alpha_{i, j}^{**} = \exp(\gamma(I(X_i: Y_j) - \underset{\bar{j}}{\max}I(X_i: Y_{\bar{j}}))) αi,j∗∗​=exp(γ(I(Xi​:Yj​)−jˉ​max​I(Xi​:Yjˉ​​)))

整个CorEx模型的训练过程,就是迭代计算上述几个公式。整篇文章最难理解的点,是理解相关性解释用于聚类的逻辑,包括对YYY变量的理解、几个条件概率的理解等;还有就是细节问题,例如从边缘概率到联合概率的Trick,剩下的优化方法都没有太难理解的点。

半监督主题模型Correlation Explanation相关推荐

  1. 10亿级数据规模的半监督图像分类模型,Imagenet测试精度高达81.2% | 技术头条...

    译者 | linstancy 作者| I. Zeki Yanlniz, Herve Jegou, Kan Chen, Manohar Paluri, Dhruv Mahajan 编辑 | 蓝色琥珀鱼, ...

  2. Facebook AI 提出10亿级数据规模的半监督图像分类模型,ImageNet测试精度高达81.2%!...

    译者 | linstancy 作者| I. Zeki Yanlniz, Herve Jegou, Kan Chen, Manohar Paluri, Dhruv Mahajan 编辑 | 蓝色琥珀鱼, ...

  3. Labeled LDA(有监督)主题模型的理解、推理与编程

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com . 以下内容是个人的论文阅读笔记,内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 算法来源 算 ...

  4. 无监督-主题模型(TM)/隐语义模型(LFM)(四):LDA(隐狄利克雷分布)【 数据(似然)(多项分布)+先验分布(狄雷分布)-> 后验分布(狄雷分布),后验分布作为下一轮的先验分布】【广泛使用】

    一.LDA简介 1.概述01 LDA(Latent Dirichlet Allocation)模型是一种引入全概率模型的文本主题表示方法,其核心是:根据文本主题分布和主题词语分布的狄利克雷先验假设,结 ...

  5. 深度学习 英文 训练阶段_半监督深度学习训练和实现小Tricks

    临近毕业,忽然想实现一下一些比较经典的半监督深度学习算法.恰逢一周前有个师妹问我有没有关于半监督深度学习训练技巧的文章,我一想,好像没有,便想自己写一篇. Talk is cheap, show yo ...

  6. 李宏毅ML笔记12:半监督

    目录 生成式模型 有监督生成式模型 半监督生成式模型 直观解释 具体操作 基本原理 低密度分离假设 Self Training Self Training与generative model对比 基于熵 ...

  7. 半监督医学影像分割综述

    <半监督医学影像分割综述> 引言 两种不同类型的图像分割问题. 相应的语义类对每个像素进行分类,从而给图像中属于这个类的所有对象或区域一个相同的类标签. 实例分割试图更进一步,试图区分同一 ...

  8. 半监督方法:不确定性感知自增强模型

    半监督方法:不确定性感知自增强模型 文献:Uncertainty-aware Self-ensembling Model for Semi-supervised 3D Left Atrium Segm ...

  9. 如何兼容自训练与预训练:更高效的半监督文本分类模型

    论文标题: Neural Semi-supervised Learning for Text Classification Under Large-Scale Pretraining 论文作者: Zi ...

最新文章

  1. 网络基础 + 简易服务端和客户端
  2. 健身前到底该不该吃东西
  3. SM01 事务代码的加锁以及解锁
  4. 一个div 上下两行_用 Python 撸一个 Web 服务器第4章:动态渲染数据
  5. C++笔记-lambda表达式需要注意的地方
  6. VLC测试IPv4 IGMP/IPv6 MLD协议
  7. 最高月薪25K!一周收到7个15K以上的offer,他是如何做到的?
  8. 常用CASE工具介绍
  9. gstreamer向appsrc发送数据的代码
  10. 纽迪瑞科技入选快公司FastCompany最具创新力榜单:科技与制造TOP30
  11. 关于win11系统下查看无线网络密码的方式
  12. linux常中的cat命令,linux下cat命令详解
  13. 无处不在的健康关爱 东软发布健康云战略
  14. 虚拟机安装Win7时提示“缺少所需的CD/DVD驱动器设备驱动程序”
  15. 云中马在A股上市:总市值约为40亿元,叶福忠为实际控制人
  16. GB:香港城市大学孙燕妮组发表高准确度病毒株识别工具VirStrain
  17. Orange pi GPIO输出控制,裸机点灯大法(二)!
  18. 海量数据去重之SimHash算法简介和应用
  19. Matlab实现图像简单的几何校正
  20. 天文专业转计算机专业,计算机专业以后可以向天文学方向发展吗

热门文章

  1. pdf-dist实现pdf的预览
  2. 鞅: Martingale
  3. JpaRepository动态查询sql
  4. 大学计算机英语句子,英语经典句子(精选100句)
  5. 【文字识别】腾讯云API:提取表格数据并生成Excel文件
  6. 一文读懂阿里云网络 2020 云栖大会新品发布
  7. 【testNG】执行多个suit
  8. 深圳计算机中级职称如何申请,深圳中级职称评定有何流程
  9. 【数学知识】函数与复合函数编程实现
  10. python拍照搜题_中国大学慕课mooc用Python玩转数据期末考试搜题公众号答案