Tree-Structured Neural Topic Model
树结构的神经主题模型
论文概述
题目:Tree-Structured Neural Topic Model
作者:Masaru Isonuma1 Junichiro Mori1 Danushka Bollegala2 Ichiro Sakata1 1 The University of Tokyo 2 University of Liverpool
发表会议:ACL20
论文链接:https://www.aclweb.org/anthology/2020.acl-main.73.pdf
背景 Modivation
背景:现有Topic Model在层级提取与端到端下游应用方面不能很好地兼顾
解决问题:融合了树结构的主题模型与DRNN、AEVB神经模型,使得模型可以处理端到端的任务。
采用方法:DRNN、AEVB
传统方法
### 基于LDA、AEVB等传统主题模型
缺陷:传统主题模型结构较为扁平,而主题往往是有一些从属关系的。
树形结构主题模型(Tree-structred topic models)
克服了传统模型的扁平化的问题,可以探测主题中的潜在树结构,并且引导用户选择自己想要感知的信息粒度。因为传统方法不是完全端到端的,因此直接使用树模型在下游应用是较为困难的。通过神经网络与树结构结合,可以通过学习参数的方式来优化树结构在下游应用中的表现。
idea
提出TSNTM模型,融合了树形结构模型与主题模型,在平面主题上添加AEVB(贝叶斯变分自编码器),同时应用DRNN对树结构(包括树的路径以及层级)进行建模,在祖先节点与兄弟节点之间添加DRNN结构。
大致的思路作者已经给出,有些类似先前的那篇球形树嵌入的文章,只不过这篇文章不需要提前输入预先定义的结构树,而是可以直接从文章中提取树状的主题结构,这个树是unbounded(实际上是有一个预设的深度和广度,但是实际生成的过程中,主题的结构也会随之改变)的,并且可以通过关键词对其进行描述。
过程架构如图所示:
大致任务流就是根据输入的语料获知树结构所需的分布和样本,过程分为两部分:
-
构建树结构
-
获取词分布
Pipe Line
DRNN求解主题分布
该步骤的目的是从文档语料中构建树结构
该步骤主要实现步骤1:
具体过程如下:
-
首先基于一假设:从文档中抽取的向量x符合高斯分布
-
然后依据树型结构的DRNN对话题的结构进行建模,网络结构如图(原文的图我感觉不便于理解,本图摘自博客)
每个node受到其父母节点以及上一级兄弟节点的影响,训练过程同一般RNN,Hidden层定义公式如下:
-
然后可以得到每个node计算出的话题(路径)以及层级的向量(这里叫breaking proportions,我也没有找到太好的翻译)
k是话题的索引,l是层级的索引。
得到上述的向量以后,依照下面的公式可以得到路径分布π和层级分布η
DRNN求解主题下词分布
依据上面得到的结果,这里可以计算出每个topic和topic下词的分布:
其中,U是单词的embedding,tk是topic的embedding,下面的分母项是限制层级深度的稀疏参数。l为层数。层数越大,分母越小,整体越大,softmax后的结果越接近1.
这里同时对主题之间的关系做了一定的限制,与miao等人将神经网络引入主题模型的处理方式不同,前者将主题之间强制正交,但是树形的主题模型中,父母与子女节点的主题是有联系的。
这里通过在变分目标中加入正则项来限制,产生的效果是,在同一父母的孩子之间正交,父母与孩子之间有相关性:
AEVB求解
该步骤通过变分推断,用一高斯分布q来逼近我们在先前过程中产生的分布特征,进而优化最初在文档中抽样x的分布。通过最小化:
得到q分布可以作为抽取最初x的高斯分布:
树结构动态更新
由于论文的树结构是无界的,为了约束生成主题的粒度与生成主题(节点)的数目,下面有两条约束:
若pk大于一阈值,则添加该节点(主题)。
若某一节点以及其所有子节点(主题)小于一阈值则对其进行剪枝。
也正是因为树结构的更新,导致这个主题模型实际生成的主题数目有可能大于预设的完全树的上限
Experiment
数据集:20NewsGroups、Amazon product reviews
BaseLine:nCRP、RSB
指标:
- NPMI(normalized pointwise mutual information)衡量词之间的相似性,越高越好
- Average perplexity 平均困惑度
结果:
Result
除了模型表现更好以外,时间复杂度也更好。随着数据集增多,该模型的运行时间并没有较大的变化。而在32000文档数下,nCRP要比起慢了15倍。该模型对更大数据集的扩展性更好。