LTM(Lifelong Topic Modeling)介绍

论文题目是《Topic Modeling using Topics from Many Domains, Lifelong Learning and Big Data》(Chen and Liu, 2014)

摘要:Topic modeling has been commonly used to discover topics from document collections. However, unsupervised models can generate many incoherent topics. To address this problem, several knowledge-based topic models have been proposed to incorporate prior domain knowledge from the user. This work advances this research much further and shows that without any user input, we can mine the prior knowledge automatically and dynamically from topics already found from a large number of domains. This paper first proposes a novel method to mine such prior knowledge dynamically in the modeling process, and then a new topic model to use the knowledge to guide the model inference. What is also interesting is that this approach offers a novel lifelong learning algorithm for topic discovery, which exploits the big (past) data and knowledge gained from such data for subsequent modeling. Our experimental results using product reviews from 50 domains demonstrate the effectiveness of the proposed approach.

传统的主题模型不用多讲,大家应该了解,不了解的可以阅读《LDA数学八卦》。但传统的主题模型是一个完全无监督的模型,会产生许多不合逻辑的topic,就这个问题,许多引入来自用户的领域先验知识的主题模型被提出。而本文所提到的加入Lifelong Learning思想的主题模型则不需要任何用户输入,就能从大量领域已挖掘的主题中自动地和动态地挖掘先验知识。

这篇文章首先提出了一个在建模过程中动态地挖掘先验知识的新方法,随后利用一个新的主题模型来指导model inference。

主要思想是:利用大数据和从这些数据中获取的知识来帮助随后的建模。

基于Lifelong思想的问题设定

Question: how to find good past knowledge and use it to help new topic modeling tasks?
Data: product reviews in the sentiment analysis context

数据是产品评论数据。

什么知识

  • Should be in the same aspect/topic
    => Must-Links
    e.g., {picture, photo}
  • Should not be in the same aspect/topic
    => Cannot-Links
    e.g., {battery, picture}

后面会通过例子说明。

算法流程

主要分两步:
1. Step 1(先验topic的生成,后称p-topic):
给定来自n个领域的一个文档集合D={D1,…,Dn}D=\{D_1, …, D_n\},使用Algorithm 1 PriorTopicsGeneration对每个领域的文档Di∈DD_i\in D运行LDA来生成一系列topic SiS_i(lines 2 and 4)。然后把这些n个领域的topic并起来生成所有topic的集合SS。我们称这个SS为prior topic(或p-topic)集合。这些p-topic集合随后会被用在LTM来生成先验知识。(LTM在下一节详解)
接着就进行Iterative Improvement :S中的p-topic可以通过迭代来改善。也就是说,上一轮迭代中的S可以通过下一轮的LTM过程帮助从D中生成更好的topic。lines 1,5-7和10反映了这个过程。LTM从第二轮开始使用。


2. Step 2(testing)
给定一个测试文档集合DtD^t和一个p-topic集合,利用LTM(Algorithm 2)来生成topics。为了区分这些topic和p-topic,我们把它们称为current topics(c-topics)。注意DtD^t可以是来自于DD或新领域的一个文档集合。这里可以被看做两种方式:(1)来自DtD^t的topics可以是在LTM利用了Knowledge Mining的S中的p-topics集合的一部分 (2)不是S中p-topics的一部分。

Lifelong learning:以上过程可以很自然地应用上lifelong learning思想。SS是系统生成的一个知识库(knowledge base,如p-topic set),而LTM是学习算法。给定一个新的学习任务GG(如主题建模)和它的数据(如DtD^t),lifelong learning可以分为两个主要阶段:
1. Phase 1:Learning with prior knowledge:这对Step 2至关重要,它需要解决两个子问题(Step 1是初始化):

a) 为任务G识别共享知识(shared knowledge)。在S中识别出可以为G所用的部分知识。在我们的例子中,$K^t$就是shared knowledge(在Algorithm 2中)
b) 基于知识的学习。在$K^t$的帮助下利用一个学习算法来为任务G学习。在我们的例子中,他就是GibbsSampling方法。

2. Phase 2:知识的保留和合并。在我们的例子中,如果G是一个新任务,我们就简单地把G的topic加进S中。如果G是一个旧任务,我们在S中替换它的topics。

LTM模型

像其他许多主题模型一样,LTM也是用Gibbs Sampling来推断,但是LTM有一个很不同的采样器,它可以引入先验知识和处理知识错误。

LTM的工作流程:首先它对数据集DtD^t在没有知识的帮助下跑Gibbs Sampler的N次迭代来生成初始topic集AtA^t(line 1, Algorithm 2)。由于它没有用到先验知识,所以它等效于LDA。然后它执行另外N次Gibbs Sampling(line 2-5)。但是在每次迭代中,他首先对AtA^t中的所有topics使用KnowledgeMining方法(Algorithm 3)来挖掘pk-sets KtK^t,然后利用这些KtK^t来从DtD^t中生成新的topic集。

Knowledge Mining算法

对于每个p-topic sk∈Ss_k\in S,找到在AtA^t中与它最匹配的c-topic aj∗a_{j^*}。Mtj∗M^t_{j^*}用来给c-topic aj∗a_{j^*}挖掘pk-sets(line 7)。我们给每个c-topic aj∗a_{j^*}找最匹配的p-topics,是因为我们需要aj∗a_{j^*}特定的p-topis来更准确的knowledge set mining。下面,我们叙述topic match和knowledge set mining算法。

Topic match(line 2-5, Algorithm 3):为了找到c-topic aj∗a_{j^*}在sks_k中最匹配的topic,我们使用KL散度来计算两个分布的差异(line 2,3)。在这篇文章中,我们使用对称KL散度来计算所有散度,即(KL(P,Q)+KL(Q,P))/2(KL(P,Q)+KL(Q,P))/2。取KL散度最小且超过阈值π\pi的sks_k加入到Mtj∗M^t_{j^*}中。

Mine Knowledge sets using frequent itemset mining(FIM):这个比较简答,就是平时所说的频繁项集。从Mtj∗M^t_{j^*}中找出出现次数查过频数阈值(也称minimum support)的词项集(长度不定)。这些频繁项集就作为后来的must-links知识。
例子:

我们这里选用的词项集长度为2,minimum support为2。

Gibbs Sampler

这个Gibbs Sampler跟LDA的不同,它需要加入利用先验知识的机制,以及在采样过程中处理错误知识的能力。

1. 加入先验知识和处理错误知识

这部分比较复杂,讲述了两种urn model,一种是simple polya model(SPU, LDA遵从),一种是generalized Polya urn model(GPU模型,Mahmoud,2008,本文使用的)。后者可以在Gibbs Sampling中利用像词对这样的先验知识(Mimno, et al.,2008)。

(这里我尝试着描述一下这两种模型,有误请指出)

当一个有着特定颜色的球被取出时,这个球需要携带一个相同颜色的球被放回到瓮中。瓮中的内容随时间变化,它有一个自我增强的属性,即”the rich get richer”。


而GPU则不同,但一个特定颜色的球被取出时,两个这种颜色的球被放回,且携带一定数量的其他颜色的球,来增加其他颜色在瓮中的比例。

在我们的例子中应用这种思想:当词ww被分配了主题t,与ww共享主题t的pk-set的w′w'也被分配特定次数主题t,这个次数由矩阵A′t,w′,wA'_{t,w',w}决定。这里的主题t的pk-set是从主题t的p-topics匹配得到的。

下面讨论矩阵A′t,w′,wA'_{t,w',w}如何设定,它反映词之间在主题t的相关性。这里我们也考虑错误知识的问题。由于pk-set是从多个先前领域的p-topics中自动挖掘出来的,pk-set中词的语义关系在新的领域中未必正确。判定pk-set是否适合是一个挑战。一个方法就是在当前领域计算pk-set中词的相关性。他们越相关,越有可能适合这个领域,应该被提升更多。他们越不相关,越有可能是错误知识,应该被提升更少。

为了衡量当前领域的pk-set中两个词的相关性,我们使用PMI。

PMI(w1,w2)=logP(w1,w2)P(w1)P(w2)

PMI(w_1,w_2)=log{P(w_1,w_2)\over P(w_1)P(w_2)}
其中:

P(w)=#Dt(w)#Dt

P(w)={\#D^t(w)\over \#D^t}

P(w1,w2)=#Dt(w1,w2)#Dt

P(w_1,w_2)={\#D^t(w_1,w_2)\over \#D^t}

#Dt(w)\#D^t(w)为DtD^t中包含词w的文档数,#Dt(w1,w2)\#D^t(w_1,w_2)为DtD^t中包含词w1w_1和词w2w_2的文档数。#Dt\#D^t为DtD^t的文档总数。

PMI值为正说明词之间语义相关,而PMI值为非正说明有微小相关或不相关。我们加入一个参数因子μ\mu来控制GPU模型应该多大程度相信PMI值。

A′t,w′,w=⎧⎩⎨1,μ×PMI(w,w′),0,w=w′(w,w′) is a pk-set of totherwise

A'_{t,w',w}=\begin{cases} 1,&\text{$w = w'$} \\ \mu \times PMI(w,w'),&\text{$(w,w')$ is a pk-set of t} \\ 0,&\text{otherwise} \end{cases}

2. Gibbs Sampler的条件概率公式

P(zi=t|z−i,w,α,β,A′)∝n−id,t+α∑Tt′=1(n−id,t+α)×∑Vw′=1A′t,w′,w×n−it,w′+β∑Vv=1(∑Vw′=1A′t,w′,v×n−it,w′+β)

P(z_i=t|z^{-i},w,\alpha,\beta,A')∝\\ {{n^{-i}_{d,t}+\alpha}\over \sum_{t'=1}^T ({n^{-i}_{d,t}+\alpha})} \times {{\sum_{w'=1}^V A'_{t,w',w} \times n_{t,w'}^{-i}+\beta} \over {\sum_{v=1}^V (\sum_{w'=1}^V A'_{t,w',v} \times n_{t,w'}^{-i}+\beta)} }

Reference

[1] Zhiyuan Chen and Bing Liu. Topic Modeling using Topics from Many Domains, Lifelong Learning and Big Data. Proceedings of the 31st International Conference on Machine Learning (ICML 2014), June 21-26, Beijing, China.
[2] LDA数学八卦

LTM(Lifelong Topic Modeling)介绍相关推荐

  1. 用GibbsLDA做Topic Modeling

    http://weblab.com.cityu.edu.hk/blog/luheng/2011/06/24/%E7%94%A8gibbslda%E5%81%9Atopic-modeling/ 用Gib ...

  2. Collaborative topic modeling(推荐)算法实现中的大数组问题

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com . 以下内容是个人的论文阅读笔记,内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 问题背景 最近,在使用 ...

  3. Targeted Topic Modeling for Focused Analysis(TTM的理解)

    问题描述 问题定义 最简单的实现方法 作者提出的模型 代码 本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载 ...

  4. Topic Exchange介绍

    一.Topic Exchange介绍 topic exchange和direct exchange类似,都是通过routing key和binding key进行匹配,不同的是topic exchan ...

  5. LML(Lifelong Machine Learning)介绍

    最近做评论分析碰到一些瓶颈,阅读了众多论文,还是觉得刘兵老师靠谱,实用派的翘楚.于是了解了他近年来发的论文,发现了一个很新颖的词"lifelong",而且还在KDD 2016做tu ...

  6. RabbitMq(七) Topic模式介绍及代码示例

    概述: 在上一文章中我们介绍了路由模式(Routing),routing模式是不同的消息队列绑定了不同的路由key,但是我们看出路由key为固定的字符串标记.而本章中的Topic模式则为在路由模式下, ...

  7. Topic Modeling of Short Texts: A Pseudo-Document View

    PTM认为大量的短文本是从数量少得多但大小正常的潜在文档中产生的,这些潜在文档被称为伪文档. 通过学习伪文档而不是短文本的主题分布,PTM具有固定数量的参数,并在训练语料相对不足时获得避免过拟合的能力 ...

  8. 如何在Python中活学活用主题词模型(Topic Modeling)和隐狄利克雷分布(LDA)

    主题词模型是一种统计模型,用于发现文档集合中出现的抽象"主题". Latent Dirichlet Allocation(LDA)是主题模型的一个例子,用于将文档中的文本分类为特定 ...

  9. A topic modeling framework for spatio-temporal information management(2020)

    摘要 在诸如Twitter这样的动态环境中,实时处理和学习相互冲突的数据,特别是来自不同想法.地点和时间的消息,是一项具有挑战性的任务,最近受到了广泛的关注.本文介绍了一个管理.处理.分析.检测和跟踪 ...

  10. RocketMQ Topic/Group/Tags介绍

    Topic 功能介绍 Topic是RocketMQ里对消息的一级归类. RocketMQ通过Topic完成消息的发布和订阅.消息生产者将消息发送到Topic中,而消息消费者则通过订阅该Topic来消费 ...

最新文章

  1. 数据库连接类:DatabaseConnection
  2. Visual Studio 2013软件安装教程
  3. 实用C#编程规范(转载)
  4. (详细)Hibernate查询技术(Query、Session、Criteria),Hibernate的三种状态,Hibernate集合struts2实现登录功能(二)
  5. tensorflow dataset.shuffle dataset.batch dataset.repeat 理解 注意点
  6. Android EditText密码框的可见性设置
  7. why my employee binding does not work - important MVC debug
  8. 「澳洋主数据项目」主数据促企业变革
  9. ajax html页面传参数,jQuery AJAX:如何将大型HTML标记作为参数传递?
  10. (转)shiro权限框架详解03-shiro介绍
  11. Jmeter 快速入门教程(三-1) --添加响应断言(即loadrunner中所指的检查点)
  12. mysql存表情出错的解决方案(类似\xF0\x9F\x98\x86\xF0\x9F)
  13. 程序员新入手MacStudio的装机环境
  14. 怎样让Windows便签的提醒事项一直留在锁定桌面上
  15. document.getElementsByClassName的理想实现(@司徒正美 大神)
  16. uni-app设置屏幕亮度
  17. 国内硕士申请加拿大计算机博士难度,【经验分享】如何申请加拿大硕士研究生或者博士?...
  18. APIView与序列化组件使用
  19. unity打包游戏后物体的移动速度不一样?
  20. 大一作业HTML个人网页作业(宠物狗)

热门文章

  1. 大表哥有个项目,10W预算,让我顺手做了算了......
  2. 傲梅备份服务器系统,傲梅轻松备份如何还原系统的详细解析
  3. Jenkins项目配置-maven项目-全面
  4. 基于 Creator 3.0 的 3D 换装
  5. Java OpenCV 裁剪图片
  6. WIN7常用使用设置
  7. PostgreSQL命令行常用命令psql
  8. Discuz X 多页面专题制作教程
  9. 碎片(Fragments)
  10. 吴恩达老师深度学习课程完整笔记