摘  要:      原有的主题模型是基于词袋模型的假设,很大程度上忽略单词的前后顺序或其主题连贯性。本文提出一个基于神经网络的话题生成模型,假定每个词的生成取决于句子中的历史单词,通过使用基于递归神经网络(RNN)的框架考虑句子中单词序列性,将句子的分布式表示作为神经网络模型的基本输入,通过将topic model与神经网络结合,利用周围单词的上下文关系来建模。实验结果表明,本文提出的LDA-LSTM算法对于文档语义性表达方面的提升具有重要作用。

关键词:    主题模型; LSTM; RNN; LDA.

A Recurrent NeuralNetwork Based Topic Model

Key words:  topic model; LSTM;RNN; LDA.

1      引言

主题模型是建模文本数据的一种有效工具,通过主题模型可以衡量文档之间的语义相似性。对于一篇文档,我们求出来的主题分布可以看作是对文档的一个抽象表示。对于概率分布,我们可以通过一些距离公式来计算出两篇文档的语义距离,从而得到它们之间的相似度。隐含狄利克雷分布(Latent Dirichlet Allocation, LDA)和其相关变种[1]为代表的统计主题模型统计模型是当前主题模型的主流。在这些模型中,文档中的任意一个单词标记被认为关联着一个主题,单词标记被认为是从一个隐变量混合模型中产生的,其中隐变量即为每个单词标记关联的主题,每个混合成分代表相应主题下单词分布的概率。即每一个文档Doc都是由多个主题Topic组成,而每一个主题Topic由多个词Word组成。对于每个单词标记,其主题的分配是与文档级别的主题权重相关的。由于建模文档生成过程的有效性和高效性,主题模型己经在非常多的现实应用中发挥了很大的作用,例如情感分析[2],社交网络分析[3]和推荐系统[4]

目前基本上所有的主题模型均采用了词袋(Bag of Words)模型的假设,也即每个文档被认为是单词的无序集合,文档中的每个单词标记的产生过程是互相独立的,单词之间的顺序不会被考虑。同时,通过假设模型顺序信息之间的过渡主题是马尔可夫链的。词袋模型带来了计算上的方便,然而却忽视了:1)文档中单词的序列性;2)文档中一个比较短的语句中每个单词主题的一致性。例如文献[5]中所展示的例子:以下两个英文句子:“the department chair couches offers”和“ thechair department offers couches”,它们有着完全相同的词袋模型表示,却包含完全不同的的语义主题信息。

之前的若干工作均是关于单词的分布式表达。相比而言,句子级别递归主题模型更加关注基于神经网络的句子分布式表达,单词分布式表达只是用来作为表达句子的基本单元,也即神经网络的基本输入,而不再是主要的优化目标。

2    基于神经网络的主题模型

2.1    循环神经网络

为更好理解对于话题检测的计算和方法,主要的定义方法列举如下[6-8]:

定义1 递归神经网络(RNN):RNN是一种依赖于内部记忆来处理任意时序输入的前馈神经网络,设输入的序列集合为,在时间更新步骤时候隐藏层的状态为,产生的输出向量为,其中,T依赖于输入序列的长度,算法的迭代过程如下:

其中,U,W,V分别为输入隐藏层、隐藏层、输出隐藏层加权矩阵,b和c为偏差向量,而tanh(.) 函数为非线性双曲正切函数,用于神经元之间的计算。

定义2 长短记忆模型(LSTM):通过用储存单元来替换常规的激活函数,储存单元则是由一个输入门、输出门和内部状态构成,LSTM对循环单元状态不会在每一步更新,一个记忆单元包括一个记忆细胞ct 和一个时间状态t。

定义3  门限循环(GRU):相比较LSTM,GRU训练参数更少,参数表示过程如下:

其中,门rt 表示新输入数据与之前的记忆单元之间的关系,更新门zt表示将ht向下一个门单元传递的程度,若则新的ht将直接传递到下一个隐藏层;若则新的ht1将完全传递给ht

2.2    主题模型LDA

最具有代表性的主题模型是隐含狄利克雷分布(LDA)[9]。在LDA中,文档中的每个单词被认为均对应一个主题,单词主题是由文档级别的主题权重互相独立抽样得来。语料中共有M个文档,对于某个文档而言,其对应的主題权重是由一个超参数向量α对应的隐含狄利克雷抽样得来,即θ代表一个多项分布,其维度为主题个数。该文档共含有N个单词标记,每个单词标记的主题索引为Z,Z是由多项分布抽样而来。P代表每个主题下的单词分布,最终毎个单词W是由P的第Z个多项分布(即W对应的主题)抽样产生的。LDA主题推断方法主要包括变分推断和Gibbs采样方法。LDA模型有向概率图模型如图1所示。

图1 LDA模型有向概率图

LDA 概率主题模型生成文本的过程如下:

(1)       对于主题Z,根据Dirichlet分布Dir(β) 得到该主题上的一个单词多项式分布向量φ;

(2)       根据泊松分布P得到文本的单词数目N;

(3)       根据Dirichlet分布Dir(α) 得到该文本的一个主题分布概率向量θ;

(4)       对于该文本N个单词中的每一个单词Wn:

(4.1)从θ的多项式分布Multinomial(θ)随机选择一个主题Z;

(4.2)从主题Z的多项式条件概率分布Multinomial(φ) 选择一个单词作为Wn

2.3    基于神经网络的主题模型

为了准确表征句子中单词之间的长短依赖,基于神经网络的主题模型采用LSTM来建模句子,LSTM的输入是句子单词的分布式表达向量,如同之前的神经网络主题模型[10],这里使用单词分布式表达可提升单词主题表示的语义性。假定一共有K个主题,词典为W,其中共含有W个单词,文档语料库中一共包含M个文档,记为D,与LDA相同,主题的混合权重是由一个K维的Dirichlet分布得来,具体的生成过程如下:

(1) 从Dirichlet先验分布Dir(α)抽样得到文档di的主题权重θi;

(2) 对于第j个句子sij

a)           从以θt为主题权重的多项式分布中抽取第j个句子的主题索引kij;

b)          计算LSTM的第t步的隐含状态ht。,从以下分布中抽样得到第t个单词yt

图2主题模型文档生成过程

图2 表明了主题模型文档的生成过程,其中,虚线代表句子主題kij对于产生句子中每个单词的影响。从该图中可以看出,对于LSTM当前一步的隐状态和单词,有两方面因素影响其生成,一是该句子到现在时刻为止所有的历史单词;二是该句子的主题。主题的分布式表达Kij加入了LSTM的单元模块计算中,计算过程如下:

3    试验

实验包括两部分:

1) 定量实验,通过对文档进行建模,评估单词级别的Perplexity,分别用来检验不同主题文档的生成能力和所抽取的主题的词的表达能力。

2) 文档分类,主要检验在不同主题下递归主题模型对于数据分类的准确率来验证递归主题模型在生成主题句子主题方面的能力。

3.1    试验数据集

本文采用的两种公开的数据集,分别为20newsgroup数据集和Wiki10+数据集。

1)        20newsgroup数据集。该数据集包含18800封电子邮件,其中可以划分为20个不同的类,例如religion、politics和sports。20newsgroup数据集被分成了含有11149封邮件的训练集及含有7403封测试集邮件。平均每个文档含有135个单词标记。

2)        Wiki10+数据集。该数据集是维基百科中部分Web文档的集合,每个文档均关联一些标签,例如philosophy、software和music。与文献[11]中的处理方式类似,保留了最高频的25种标签,并从原始数据集中移除掉了不对应这25种标签中任意一种的文档,最终形成了含有11150个文档的训练集和5775个文档的测试集作为最终使用的Wiki10+数据集。与20newsgroup数据集相比,Wikil0+平均每个文档含有更多的单词标记。

对于这两个数据集,首先进行去除了低频单词,并将所有的单词设置为小写形式,最终形成的词表大小为32k(20newsgroup)和41k(Wiki10+)。在句子的切分时,我们使用公开的NLTK工具包来将这两个文本数据集切割为句子的形式。

3.2    基准模型

设置如下的最优模型作为基准模型:

1)        LDA模型。对于经典的LDA模型,使用开源的GibbsLDA工具包来执行实验。

2)        Doc-NADE。Doc-NADE是一种基于单词分布式表达和受限玻尔兹曼机的主题模型,也是神经网络主题模型的典型代表,在实验中使用了原作者提供的源代码。

3)        HTMM。如前所述,HTMM不再使用词袋假设,而是考虑了主题建模中句子内部的主题一致性与句子之间主题的马尔可夫传递性,属于句子级别的主题模型。与Doc-NADE类似,HTMM的源代码由原作者提供。

设置单词词嵌入向量维度、主题嵌入表达向量维度和LSTM隐藏层维度分别为128,128和600。在实验中,本文设置了两组主题个数,K=128和K=256分别检验不同主题个数对不同模型性能的影响。LSTM的参数矩阵被设置为正交矩阵,单词和主题分布式表达向量的每个元素均服从均匀分布(-0.015,0.015),同时在训练过程中得到优化。超参数α设置为0.5,变分参数γ初始化为0.5。同时,minibatch大小设置为5, 在优化LSTM参数时,使用了线程级别的异步随机梯度下降AdaGrad算法对W加速,算法的初始学习率设为0.04。

3.3    文档建模

在文档建模任务中,度量不同主题模型预测文档生成的准确程度采用的定量评价指标为在测试集上的平均单词Perplexity。Perplexity是与数据似然相关的一个量,定义为:

其中M为测试集中的文档个数。Ni是文档di中的单词个数。低的Perplexity值代表更好的文档建模能力。不同主题模型的文档建模实验结果如表1所示。

表1 不同主题模型下单词的平均Perplexity

Dataset

Wiki 10+

K=128

K=256

LDA

989

1007

Doc-NADE

923

883

HTMM

867

938

LDA-LSTM

323

429

考虑句子中单词序列性的模型(即LDA-LSTM递归主题模型)比其他模型拥有普遍更好的性能,这进一步验证了单词序列性信息的重要性。更进一步,LDA-LSTM比HTMM拥有更低的Perplexity,这也证明了建模长程依赖的LSTM-RNN比固定大小单词窗口为输入的一般前向传递神经网络有更好的序列建模能力。

3.4    文档分类

对于20newsgroup数据集,我们使用了多分类Logistic Regression分类器,评价标准为分类的准确率;对于Wiki数据集,对于每个文档可能对应多个类标记(即标签Tag),对毎个类分别使用Logistic Regression,最终分类结果由Micro-F1分数来代表。Logistic Regression分类器我们使用LibSVM中的相应模块Liblinear。对于两个数据集,我们均留出训练数据的10%作为验证集(ValidationDataset)。

表2 不同模型在不同主题下的分类能力

Dataset

20Newsgroup

K=128

K=256

LDA

0.457

0.432

Doc-NADE

0.471

0.446

HTMM

0.465

0.431

LDA-LSTM

0.513

0.522

由表2试验表明,基于分布式向量的主题模型(即Doc-NADE,LDA-LSTM主题模型)比其他的主题模型有更好的效果,这体现了分布式向量在提升文档语义性表达方面的重要作用,也体现了联合学习单词、句子分布式表达与主题模型提升后者的必要性。

4    结束语

本论文介绍了主题模型及其相关的扩展,传统LDA基于词袋模型,无法建模诸如单词多义性、全局主题等其他自然语言信息,对于单词的顺序依赖模型和主题的连贯性考虑较少,考虑到递归神经网络对于序列化自然语言的显著性能,本文通过使用LSTM,提出了一种隐含神经网络模型来进行建模和文档分类,从而实现单词消歧义与自然语言分布式表达的联合学习。这种方法比原始单词分布式表达和基于聚类的多语义分布式表达技术更好的性能,同时拥有更少的参数。

同时,本文将单词多义性和单词知识关系加入单词分布式表达的学习过程中,使得所学习到的单词-语义分布式表达拥有更好的关系表达。通过这种方式所获得的单词分布式表达可更好地建模单词的多义性和单词之间的复杂语义关系,具有更高的准确率。

参考文献

[1]  David M Blei, Andrew Y Ng, and Michael IJordan. Latent dirichlet allocation. The Journal of machine Learning research, 3:993–1022,2003.

[2]  Duyu Tang, Bing Qin, and Ting Liu. DocumentModeling with Gated Recurrent Neural Network for Sentiment Classification, EMNLP,1422–1432, 2015.

[3]  AlexanderPak, Patrick Paroubek. Twitter as a corpus for sentiment analysis and opinionmining, LREc, 1320–1326, 2010(10).

[4]  Min Yang, Tianyi Cui, and Wenting Tu.Ordering-sensitive and semantic aware topic modeling. In Twenty-Ninth AAAIConference on Artificial Intelligence, 2015.

[5]  Jon D Mcauliffe and David M Blei.Supervised topic models. In Advances in neural in- formation processingsystems, 121–128, 2008.

[6]  Daniel Ramage, Susan Dumais, and DanLiebling. Characterizing microblogs with topic models. ICWSM 2010.

[7]  Thomas L Griffiths, Mark Steyvers, DavidM Blei, and Joshua B Tenenbaum. Integrating topics and syntax. In Advances inneural information process- ing systems, 537–544, 2004.

[8]  Di Wang andEric Nyberg. A long shortterm memory model for answer sentence selection inquestion answering. Proceedings of the 53rd Annual Meeting of the Associationfor Computational Linguistics and the 7th International Joint Conference onNatural Language Processing, 2016.

[9]  Yoshua Bengio, Re jean Ducharme, PascalVincent, and Christian Janvin. A neural probabilistic language model. TheJournal of Machine Learning Research, 3:1137–1155, 2003.

[10]  Hochreiter, S., and Schmidhuber, J. 1997. LongShort-Term Memory. Neural Computation 9(8):1735–1780.

[11]  ZiqiangCao, Sujian Li, Yang Liu, Wenjie Li, and Heng Ji. A novel neural topic modeland its supervised extension. In Twenty-Ninth AAAI Conference on ArtificialIntelligence, 2015.

基于循环神经网络的主题模型相关推荐

  1. 情感分析:基于循环神经网络

    情感分析:基于循环神经网络 Sentiment Analysis: Using Recurrent Neural Networks 与搜索同义词和类比词类似,文本分类也是单词嵌入的一个下游应用.在本文 ...

  2. 双向循环神经网络_情感分析:基于循环神经网络

    情感分析:基于循环神经网络 Sentiment Analysis: Using Recurrent Neural Networks 与搜索同义词和类比词类似,文本分类也是单词嵌入的一个下游应用.在本文 ...

  3. python输出一首诗_基于循环神经网络(RNN)的古诗生成器

    基于循环神经网络(RNN)的古诗生成器,具体内容如下 之前在手机百度上看到有个"为你写诗"功能,能够随机生成古诗,当时感觉很酷炫= = 在学习了深度学习后,了解了一下原理,打算自己 ...

  4. TensorFlow练手项目二:基于循环神经网络(RNN)的古诗生成器

    基于循环神经网络(RNN)的古诗生成器 2019.01.02更新: 代码比较老了,当时的开发环境为Python 2.7 + TensorFlow 1.4,现在可能无法直接运行了.如果有兴趣,可以移步我 ...

  5. 基于循环神经网络的格兰杰因果网络重构

    复杂网络建模的反问题是网络重构,获得节点之间的关系对于分析网络特性有着至关重要的作用.常用的网络重构方法有:1 相关性分析,2 压缩感知,3 动力学方程,4 因果分析,5 深度学习,6 概率图模型,7 ...

  6. 论文学习——基于循环神经网络的电信行业容量数据预测方法

    文章目录 0 封面 1 标题 title 2 摘要 abstract 3 关键字 keywords 4 总结 conclusion 5 引言 introduction 6 介绍 LSTM 6.1 LS ...

  7. Python实现PSO粒子群优化循环神经网络LSTM分类模型项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 PSO是粒子群优化算法(Particle Swarm Optim ...

  8. Chemistry.AI | 基于循环神经网络(RNN)预测分子性质

    Chemistry.AI | 基于卷积神经网络(CNN)预测分子特性 环境准备 Python版本:Python 3.6.8 PyTorch版本:PyTorch1.1.0 RDKit版本:RDKit 2 ...

  9. 【自然语言处理(NLP)】基于循环神经网络实现情感分类

    [自然语言处理(NLP)]基于循环神经网络实现情感分类 活动地址:[CSDN21天学习挑战赛](https://marketing.csdn.net/p/bdabfb52c5d56532133df2a ...

最新文章

  1. 主流html5桌面应用开发,主流HTML5开发工具推荐
  2. 高性能缓存服务器Varnish详解
  3. 用Apache Ivy实现项目里的依赖管理
  4. 权限管理系统系列之序言
  5. 在LINUX系统中安装KVM虚拟化
  6. http 使用curl发起https请求 error 60 51
  7. python教程(六)·字符串
  8. 调用支付jsapi缺少参数package怎么解决_干货:如何借助小程序云开发实现小程序支付功能(含源码)...
  9. 各大视频网站下载神器
  10. 计算机加域后数据库无法登录,客户端多台计算机登录域失败,显示如下
  11. Tmall商城系统后台管理订单模块分析
  12. 软件测试之TCP、UPD协议详解
  13. 云运维拓扑图_云平台网络拓扑图
  14. 文件分割与合并(Java)
  15. JavaScript学习笔记(25) JavaScript.then()这个方法是什么意思?
  16. Room 使用解析(2.4.2 版本)
  17. 全球顶级的14位程序员大神!
  18. 使用evo工具评估ORB_SLAM2在TUM数据集上的运行轨迹
  19. Nginx 搭建DASH服务器
  20. 超级简洁的Python风格加解密

热门文章

  1. Qt 控制台程序:和原生C++的融入
  2. PHP文件在线加密源码
  3. 电源自动测试系统-DC/DC 电源自动测试系统NSAT-8000,免费看方案视频效果
  4. 光线追踪渲染实战(五):低差异序列与重要性采样,加速收敛!
  5. 2022年3月17日美国Embarcadero公司正式发布 RAD Studio Delphi 11.1 Alexandria
  6. 【音乐铃声定时播放器】红苹果MP3音乐铃声定时播放器
  7. 阿里P5-基础知识4
  8. Java 三种集合的遍历方式
  9. 基于layui实现的日历记事本
  10. Matlab 分段函数怎么画 表示方式 (推荐)