主要内容

fitlda

符合潜在狄利克雷分配(LDA)模型

描述

潜在狄利克雷分配(LDA)模型是一个话题模型,发现潜在主题的集合文件和推断单词概率在主题。如果模型是适合使用bag-of-n-grams模型,然后该软件将字格作为单独的单词。

例子

mdl= fitlda (,numTopics)LDA模型符合numTopics主题bag-of-words或bag-of-n-grams模型

例子

mdl= fitlda (计数,numTopics)适合一个LDA模型文档表示为一个矩阵的频率计数。

mdl= fitlda (___,名称,值)使用一个或多个指定附加选项名称-值对参数。

例子

全部折叠

复制的结果在这个例子中,集rng“默认”

rng (“默认”)

加载示例数据。该文件sonnetsPreprocessed.txt莎士比亚的十四行诗的包含预处理版本。文件包含每行一个十四行诗,单词之间用一个空格来分隔。提取的文本sonnetsPreprocessed.txt在换行字符,文本分割成文档,然后标记文件。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

创建一个bag-of-words模型使用bagOfWords

袋= bagOfWords(文档)
袋= bagOfWords属性:计数:[154 x3092双]词汇:“公平”“生物”“欲望”…]NumWords: 3092 NumDocuments: 154

适合一个LDA模型有四个主题。

numTopics = 4;numTopics mdl = fitlda(袋)
最初的话题作业在0.213222秒内取样。= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |迭代每个相对| | |时间培训|主题|主题| | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | 0 | 0.49 | 1.000 | 1.215 e + 03 | | 0 | | 1 | 0.02 | 1.0482 e-02 e + 03 | 1.128 | 1.000 | 0 | | 2 | 0.02 | 1.7190 e 03 e + 03 | 1.115 | 1.000 | 0 | | 3 | 0.02 | 4.3796 e-04 e + 03 | 1.118 | 1.000 | 0 | | 4 | 0.01 | 9.4193 e-04 e + 03 | 1.111 | 1.000 | 0 | | 5 | 0.01 | 3.7079 e-04 e + 03 | 1.108 | 1.000 | 0 | | 6 | 0.01 | 9.5777 e-05 e + 03 | 1.107 | 1.000 | 0 | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
mdl = ldaModel属性:NumTopics: 4 WordConcentration: 1 TopicConcentration: 1 CorpusTopicProbabilities: [0.2500 - 0.2500 0.2500 - 0.2500] DocumentTopicProbabilities: [154 x4双]TopicWordProbabilities: (x4 3092双)词汇:“公平”“生物”…]TopicOrder:“initial-fit-probability”FitInfo: [1 x1 struct]

使用词云可视化的话题。

topicIdx = 1:4次要情节(2,2,topicIdx) wordcloud (mdl topicIdx);标题(主题:“+ topicIdx)结束

图包含wordcloud类型的对象。wordcloud类型的图表标题主题:1。wordcloud类型的图表标题主题:2。wordcloud类型的图表标题主题:3。wordcloud类型的图表标题主题:4。

适合一个LDA模型由一组文档字数矩阵。

复制这个例子的结果,集rng“默认”

rng (“默认”)

加载示例数据。sonnetsCounts.mat包含一个单词统计矩阵和相应的预处理词汇版本的莎士比亚的十四行诗。的值计数(i, j)对应的次数j词的词汇出现在文档。

负载sonnetsCounts.mat大小(数量)
ans =1×2154 3092

适合7 LDA模型与主题。抑制详细输出,集“详细”为0。

numTopics = 7;mdl = fitlda (numTopics计数,“详细”,0);

可视化多个主题混合使用堆叠柱形图表。可视化前三个输入文档的主题混合物。

topicMixtures =变换(mdl计数(1:3,:));图barh (topicMixtures,“堆叠”1)xlim([0])标题(“主题混合”)包含(“主题概率”)ylabel (“文档”)传说(“主题”+字符串(1:numTopics),“位置”,“northeastoutside”)

图包含一个坐标轴对象。坐标轴对象与标题主题混合物包含7杆类型的对象。这些对象代表主题,主题2,主题,主题4,主题,主题,主题7。

复制的结果在这个例子中,集rng“默认”

rng (“默认”)

加载示例数据。该文件sonnetsPreprocessed.txt莎士比亚的十四行诗的包含预处理版本。文件包含每行一个十四行诗,单词之间用一个空格来分隔。提取的文本sonnetsPreprocessed.txt在换行字符,文本分割成文档,然后标记文件。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

创建一个bag-of-words模型使用bagOfWords

袋= bagOfWords(文档)
袋= bagOfWords属性:计数:[154 x3092双]词汇:“公平”“生物”“欲望”…]NumWords: 3092 NumDocuments: 154

适合一个LDA模型与20的话题。

numTopics = 20;numTopics mdl = fitlda(袋)
最初的话题作业在0.035863秒内取样。= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |迭代每个相对| | |时间培训|主题|主题| | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | 0 | 0.02 | 5.000 | 1.159 e + 03 | | 0 | | 1 | 0.08 | 5.4884 e-02 e + 02 | 8.028 | 5.000 | 0 | | 2 | 0.06 | 4.7400 e 03 e + 02 | 7.778 | 5.000 | 0 | | 3 | 0.05 | 3.4597 e 03 e + 02 | 7.602 | 5.000 | 0 | | 4 | 0.05 | 3.4662 e 03 e + 02 | 7.430 | 5.000 | 0 | | 5 | 0.05 | 2.9259 e 03 e + 02 | 7.288 | 5.000 | 0 | | 6 | 0.06 | 6.4180 e-05 e + 02 | 7.291 | 5.000 | 0 | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
mdl = ldaModel属性:NumTopics: 20 WordConcentration: 1 TopicConcentration: 5 CorpusTopicProbabilities: [0.0500 0.0500 0.0500 0.0500 0.0500……]DocumentTopicProbabilities: [154 x20的双]TopicWordProbabilities: [3092 x20的双]词汇:(“公平”“生物”…]TopicOrder:“initial-fit-probability”FitInfo: [1 x1 struct]

预测主题数组的新文档。

newDocuments = tokenizedDocument ([“在一个叫什么名字?增加了其他名字同样芬芳。”“如果音乐是爱情的食粮,玩。”]);newDocuments topicIdx =预测(mdl)
topicIdx =2×119日8

使用词云可视化预测主题。

图次要情节(1、2、1)wordcloud (mdl, topicIdx (1));标题(“主题”+ topicIdx(1)次要情节(1、2、2)wordcloud (mdl, topicIdx (2));标题(“主题”+ topicIdx (2))

图包含wordcloud类型的对象。19 wordcloud类型的图表标题话题。8 wordcloud类型的图表标题话题。

输入参数

全部折叠

输入bag-of-words或bag-of-n-grams模型,指定为一个bagOfWords对象或一个bagOfNgrams对象。如果是一个bagOfNgrams函数对象,然后将每个语法视为一个字。

的话题,指定为一个正整数。对于一个例子,演示如何选择主题的数量,看看为LDA模型选择的主题

例子:200年

频率计数的话,指定为一个矩阵的非负整数。如果您指定“DocumentsIn”“行”值,然后计数(i, j)对应的次数j词的词汇出现在文档。否则,该值计数(i, j)对应的次数词的词汇出现在j文档。

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:“规划求解”、“真空断路”指定使用近似变分求解贝叶斯。
解算器选项

全部折叠

解算器的优化,指定为逗号分隔组成的“规划求解”和下列之一:

随机解算器

  • “savb”——使用随机近似变分贝叶斯[1][2]。这个解算器是最适合大型数据集,可以容纳一个好的模型减少数据的传递。

批处理解决

  • 研究生院理事会的——使用倒塌的吉布斯抽样[3]。这个解算器可以更准确的在长时间运行的成本。的的简历装有CGS函数不支持模型。金宝app

  • “真空断路”——使用近似变分贝叶斯[4]。这通常解决者跑得快于倒塌的吉布斯抽样和变分贝叶斯倒塌,但可以不准确。

  • “cvb0”——用变分贝叶斯倒塌,零的秩序[4][5]。这比近似变分贝叶斯解算器可以更准确的长时间运行的成本。

为一个例子,演示如何解决比较,看看比较LDA解决者

例子:“规划求解”、“savb”

对数似相对宽容,指定为逗号分隔组成的“LogLikelihoodTolerance”和积极的标量。当达到这个公差优化终止。

例子:“LogLikelihoodTolerance”, 0.001

选择合适的主题集中,指定为逗号分隔组成的“FitTopicConcentration”,要么真正的

符合之前的狄利克雷函数 α = α 0 ( p 1 p 2 p K ) 的混合物, α 0 浓度和话题吗 p 1 , , p K 语料库是主题概率之和为1。

例子:“FitTopicProbabilities”,假的

数据类型:逻辑

选择合适的主题集中,指定为逗号分隔组成的“FitTopicConcentration”,要么真正的

批处理的解决者研究生院理事会的,“真空断路”,“cvb0”,默认为FitTopicConcentration真正的。的随机解算器“savb”,默认的是

符合之前的狄利克雷函数 α = α 0 ( p 1 p 2 p K ) 的混合物, α 0 浓度和话题吗 p 1 , , p K 语料库是主题概率之和为1。

例子:“FitTopicConcentration”,假的

数据类型:逻辑

初始浓度估计的话题,指定为逗号分隔组成的“InitialTopicConcentration”和一个负的标量。每个主题函数集浓度TopicConcentration / NumTopics。有关更多信息,请参见潜在狄利克雷分配

例子:“InitialTopicConcentration”, 25岁

主题订单,指定为以下之一:

  • “initial-fit-probability”——分类主题的语料库主题概率(输入文档集CorpusTopicProbabilities属性)。

  • “无序”——不要把话题。

词集中,指定为逗号分隔组成的“WordConcentration”和一个负的标量。软件集主题上的狄利克雷之前(每个主题概率这个词)是对称的狄利克雷分布参数的值WordConcentration / numWords,在那里numWords是词汇输入文档的大小。有关更多信息,请参见潜在狄利克雷分配

面向文档的字数矩阵,指定为逗号分隔组成的“DocumentsIn”和下列之一:

  • “行”——输入矩阵的单词统计行相应的文档。

  • “列”——输入单词统计的转置矩阵列对应的文件。

此选项仅适用于如果你输入文件指定为一个矩阵的单词计数。

请注意

如果你东方字数矩阵,这样文件并指定对应列“DocumentsIn”、“列”,那么你可能会经历在optimization-execution时间显著减少。

批处理解决方案

全部折叠

最大迭代次数,指定为逗号分隔组成的“IterationLimit”和一个正整数。

此选项只支持批量解决(金宝app研究生院理事会的,“真空断路”,或“cvb0”)。

例子:“IterationLimit”, 200年

随机解算器选项

全部折叠

通过数据的最大数量,指定为逗号分隔组成的“DataPassLimit”和一个正整数。

如果您指定“DataPassLimit”但不是“MiniBatchLimit”的默认值“MiniBatchLimit”将被忽略。如果你指定“DataPassLimit”“MiniBatchLimit”,然后fitlda使用参数处理最少的观测结果。

此选项仅支持随机(金宝app“savb”)解决。

例子:“DataPassLimit”, 2

最大数量的mini-batch流逝,指定为逗号分隔组成的“MiniBatchLimit”和一个正整数。

如果您指定“MiniBatchLimit”但不是“DataPassLimit”,然后fitlda忽略的默认值“DataPassLimit”。如果你指定“MiniBatchLimit”“DataPassLimit”,然后fitlda使用参数处理最少的观测结果。默认值是装天花板(numDocuments / MiniBatchSize),在那里numDocuments输入文档的数量。

此选项仅支持随机(金宝app“savb”)解决。

例子:“MiniBatchLimit”, 200年

Mini-batch大小,指定为逗号分隔组成的“MiniBatchLimit”和一个正整数。函数过程MiniBatchSize文档在每个迭代中。

此选项仅支持随机(金宝app“savb”)解决。

例子:“MiniBatchSize”, 512年

学习速率衰减,指定为逗号分隔“LearnRateDecay”和积极的标量小于或等于1。

对于mini-batcht学习速率的函数集 η ( t ) = 1 / ( 1 + t ) κ ,在那里 κ 是学习速率衰减。

如果LearnRateDecay接近于1,那么学习速率衰减更快,mini-batches早些时候模型主要来自学习。如果LearnRateDecay是接近于0,那么学习速率衰减较慢和模型更mini-batches继续学习。有关更多信息,请参见随机解算器

此选项只支持随机解算器(金宝app“savb”)。

例子:“LearnRateDecay”, 0.75

显示选项

全部折叠

验证数据监控优化收敛,指定为逗号分隔组成的“ValidationData”和一个bagOfWords对象,bagOfNgrams对象,或一个稀疏矩阵的单词计数。如果验证数据是一个矩阵,那么数据必须具有相同的取向和相同数量的单词作为输入文件。

模型验证的频率的迭代次数,指定为逗号分隔组成的“ValidationFrequency”和一个正整数。

默认值取决于适合使用的求解模型。随机解算器的默认值是10。对于其他解决者,默认值是1。

冗长的层面上,指定为逗号分隔组成的“详细”和下列之一:

  • 0 -不显示详细的输出。

  • 1 -显示进度信息。

例子:“详细”,0

输出参数

全部折叠

输出LDA模型,作为一个返回ldaModel对象。

更多关于

全部折叠

潜在狄利克雷分配

一个潜在狄利克雷分配(LDA)模型是一个文档的主题模型,发现潜在主题的集合文件和推断单词概率在主题。LDA模型的集合D文档主题混合物 θ 1 , , θ D ,在K主题的特征向量的概率 φ 1 , , φ K 。模型假定主题混合物 θ 1 , , θ D 和主题 φ 1 , , φ K 遵循狄利克雷分布与集中参数 α β 分别。

这个话题混合物 θ 1 , , θ D 是概率向量的长度K,在那里K是主题的数量。条目 θ d 的概率是主题中出现的d文档。这个话题混合物对应的行DocumentTopicProbabilities财产的ldaModel对象。

的话题 φ 1 , , φ K 是概率向量的长度V,在那里V词汇是词的数量。条目 φ v 对应的概率v词的词汇出现主题。的话题 φ 1 , , φ K 对应的列TopicWordProbabilities财产的ldaModel对象。

考虑到主题 φ 1 , , φ K 之前和狄利克雷 α 的混合物,LDA假定以下文档的生成过程:

  1. 示例主题混合 θ ~ 狄利克雷 ( α ) 。随机变量 θ 是一个概率向量的长度K,在那里K是主题的数量。

  2. 每个单词的文档:

    1. 示例主题索引 z ~ 分类 ( θ ) 。随机变量z是一个整数1到K,在那里K是主题的数量。

    2. 样一个词 w ~ 分类 ( φ z ) 。随机变量w是一个整数1到V,在那里V词汇表中的单词量,代表相应的单词词汇量。

在这种生成过程中,文档的联合分布 w 1 , , w N 混合物,与主题 θ 和主题索引 z 1 , , z N 是由

p ( θ , z , w | α , φ ) = p ( θ | α ) n = 1 N p ( z n | θ ) p ( w n | z n , φ ) ,

在哪里N在文档的字数。求和的联合分布z然后整合 θ 收益率文档的边缘分布w:

p ( w | α , φ ) = θ p ( θ | α ) n = 1 N z n p ( z n | θ ) p ( w n | z n , φ ) d θ

下面的图表说明了LDA模型作为概率图形模型。阴影节点观测变量,没有阴影的节点是潜变量,节点没有轮廓模型参数。箭头强调随机变量之间的依赖关系和板块显示重复节点。

狄利克雷分布

狄利克雷分布是一个持续的多项分布的泛化。给定类别的数量 K 2 ,浓度参数 α ,在那里 α 是一个向量的正实数的长度K狄利克雷分布的概率密度函数是由

p ( θ α ) = 1 B ( α ) = 1 K θ α 1 ,

在哪里B表示的多元函数

B ( α ) = = 1 K Γ ( α ) Γ ( = 1 K α )

狄利克雷分布的一个特例对称的狄利克雷分布。对称的狄利克雷分布的特点是浓度参数 α 的所有元素 α 都是一样的。

随机解算器

mini-batches随机规划求解过程文档。它更新每个主题词概率使用加权和的概率计算每个mini-batch前mini-batches和概率。

对于mini-batcht学习速率,解算器设置 η ( t ) = 1 / ( 1 + t ) κ ,在那里 κ 是学习速率衰减。

学习速率衰减的函数使用更新 Φ 每个主题的词概率矩阵,设置

Φ ( t ) = ( 1 η ( t ) ) Φ ( t 1 ) + η ( t ) Φ ( t * ) ,

在哪里 Φ ( t * ) 矩阵从mini-batch吗t, Φ ( t 1 ) 矩阵从mini-batches通过吗t1。

学习开始之前(当t= 0),该函数初始化初始词概率/主题 Φ ( 0 ) 随机值。

兼容性的考虑

全部展开

行为改变R2018b

引用

[1]福尔兹,詹姆斯,利瓦伊尔斯,克里斯托弗•杜布瓦Padhraic Smyth,麦克斯威灵电机。“随机崩溃对潜在狄利克雷分配变分贝叶斯推理。”In19 ACM SIGKDD学报》国际会议上知识发现和数据挖掘,446 - 454页。ACM, 2013年。

[2]霍夫曼,马修·D。,David M. Blei, Chong Wang, and John Paisley. "Stochastic variational inference."机器学习的研究》杂志上14日,没有。1 (2013):1303 - 1347。

[3]格里菲斯,托马斯·L。和马克Steyvers。“寻找科学话题。”美国国家科学院院刊》上101年,没有。增刊1 (2004):5228 - 5235。

[4]亚松森,亚瑟,马克斯•威林Padhraic Smyth, Yee Whye格兰。“平滑和主题模型的推理。”In二十五日会议程序的不确定性人工智能27-34页。AUAI出版社,2009年。

[5]格兰,绮W。,David Newman, and Max Welling. "A collapsed variational Bayesian inference algorithm for latent Dirichlet allocation." In先进的神经信息处理系统,1353 - 1360页。2007年。

介绍了R2017b