zoukankan      html  css  js  c++  java
  • Topic Model 和 Graphical Model 的 Inference

    昨天浏览了一些老师所做的研究工作,对一些问题又有了新的认识。

    Topic Model 的研究,看起来主要会分为两个派别,在 Machine Learning 中,主要使用的是 LDA,而在 Data Mining 中很多人使用 PLSA。从方法上说,PLSA 比 LDA 要简单很多,但 LDA 能够克服 PLSA 的一些本质问题,并且有人证明了 PLSA 是 LDA 的一种极限情况。Topic Model 的核心思想,就是将 Topic 视作一个 Topic 在词上的概率分布,即 topic z 可以用 P(w|z) 来进行刻画,同时将 document 视作是在 topic 上的分布,即 P(z|d),并为文档集的生成建立概率模型。之前读的时候觉得 PLSA 就是对这个模型进行 MLE 估计,而 LDA 则是做 Bayesian 估计。

    在 Data Mining 中使用的 PLSA 模型,主要利用的就是 P(w|z) 这个topic 在词上的分布,有时候并没有完整且 solid 的概率框架,有时候还会加入一些经验性的东西。在进行参数估计的时候用的一般是 EM 算法或者其扩展的变体 GEM。虽然理论上并不是很完善,但实际运用过程中也能够取得很好的效果,这也就够了。

    但在 Machine Learning Community 里面用的 LDA 模型,则有更完善的理论框架。由于模型更加复杂,exact inference 已经不能求解,于是图模型上的很多 approximate inference 方法被引入进来,主流的两类是 variational inference 和 sampling methods,昨天看到 MIT 的 Tommi Jaakkola 所带的一个学生提出了使用 Linear Programming 做 Graphical Models 上的 inference 的方法,还没有认真看(实际上,前面的两种我都还没有搞懂)。这些复杂性甚至导致 Large Scale Inference 本身成为了一个研究方向。

    从这里也就可以看出两个 Community 各自的特点了。但我相信,当技术的发展足够适应复杂应用的时候,LDA 在 Mining 中都会得到更广泛的应用,因为其理论的确更加完善,而且没有 PLSA 的 overfitting 等诸多问题。

    ---------------------------------------------------------------------------------------------------------------------------------------------

    现在的 Machine Learning 中,一个非常重要的问题就是所要处理的数据量是巨大的、高维的。在统计模型中做 inference,通常是在已知一些变量的值的情况下,估计另一些变量的概率分布,也就是求一些条件概率和边缘概率分布。为数众多的变量常常难以处理,Graphical Model的引入,使得我们可以利用变量之间的条件独立关系,从而将他们的耦合从模型中去除,以将模型进行分解和简化。其实这样看来,Graphical Model 使用的也就是分治策略。在 inference 中,所采用的也多半是从图上相邻的节点之间进行 message passing 或者其他的 propagation,这其实也是一个利用条件独立性进行decouple的过程。

    但两种主流的 approximate inference 方法 variational inference 和 sampling 都有各自的缺点。前者只能对概率值给出 bound,并不保证能找到最好的值。而有时这个 bound 还是很松的 bound。而 sampling 方法理论上可以收敛到最佳值,但是收敛的过程可能会很长。

    这些我们所面临的困难,就是 inference 的意义所在吧。

    对我来说,知道的这些真是皮毛,这学期里希望能把此文中提到的这些搞懂就好了。
  • 相关阅读:
    [LeetCode] Trips and Users 旅行和用户
    [LeetCode] Rising Temperature 上升温度
    [LeetCode] Delete Duplicate Emails 删除重复邮箱
    [LeetCode] Department Top Three Salaries 系里前三高薪水
    Spring boot Jackson基本演绎法&devtools热部署
    使用spring tool suite(STS)工具创建spring boot项目和出现错误后的处理
    Spring Boot 2.0官方文档之 Actuator
    springboot 使用webflux响应式开发教程(二)
    SpringBoot在自定义类中调用service层等Spring其他层
    springBoot单元测试-模拟MVC测试
  • 原文地址:https://www.cnblogs.com/alexdeblog/p/3119739.html
Copyright © 2011-2022 走看看