02 主题模型 - SVD矩阵分解、LSA模型

01 主题模型 - 大纲

主题模型 克服了传统信息检索中文档相似度计算方法的缺点,并且能够在海量的数据中找出文字间的语义主题。主题模型在自然语言和给予文本的搜索上起到了重要的作用。

怎样才能生成主题?对文章的主题应该怎么分析?这是主题模型要解决的问题。

从结果上来看,我们希望将一个包含(词语×文档)的矩阵,分解成(词语×主题)和(主题×文档)两个矩阵相乘的结果。如果可以分解成功,那么矩阵对应的主题向量就是我们所有获取的主题信息。 从而达到了文档分类的结果。

当我们想要提取文档隐含主题的时候,我们可以通过矩阵分解来提取我们需要的信息。下面介绍矩阵分解的算法。

三、SVD 奇异值分解

将m×n的矩阵,分解成三个m×r、r×r、r×n的矩阵。这是我们本质上想要做的事情。但是有些时候我们的原始m×n矩阵比较大,我们可以这样操作:
1、在m×r矩阵中取前k列。
2、在r×r矩阵中我们取对角线的k个元素。
3、在r×n矩阵中取前k行。
即分解形成:m×k、k×k、k×n三个矩阵。这三个矩阵相乘的结果近似于原始矩阵m×n矩阵。


求解SVD的方法:

定义: 现在有矩阵An×n,Xn×1是一个向量。如果AX=λX;那么λ就是矩阵A的一个特征值,X是当前特征值λ对应的特征向量。

一个特征向量可以对应多少特征值?1个。
一个特征值可以对应多少特征向量?多个。
为了使特征向量唯一,我们要对特征向量做标准化。
有了特征向量和特征值以后,我们便可以对原始矩阵A进行矩阵分解了。

思考: 我们想将方阵An×n分解成:A=WΣW-1
W是特征向量形成的矩阵,Σ是系数,就类似特征值λ;
标准化操作,令 |W|=1 即 WiTWi
∴ WTW=1 → WT = W-1→ A=WΣW-1
但上述的前提是矩阵A是一个方阵。如果A不是方阵,那么矩阵分解就必须用到SVD的方法。

奇异值分解的几何意义:https://www.jianshu.com/p/e1b8a315fd36


SVD的特性

对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。

由于可以使用小矩阵来近似的描述样本信息的这个重要特性,SVD可以常用于PCA降维、推荐系统以及主题模型等场景中。


四、LSA模型

潜在语义分析(Latent Semantic Analysis, LSA),也叫做Latent Semantic Indexing, LSI. 是一种常用的简单的主题模型。LSA是基于奇异值分解(SVD)的方法得到文本主题的一种方式。

分析为什么用近似值: 我们在做奇异值分解的时候,我们可以得到一个矩阵相乘的分解结果。我们认为可以用前K个特征构成一个近似的分解结果。我们来分析一下,如果分解的结果是这样的形式:Um×mm×nVTn×n;分解出来的矩阵大小和我的文章个数 |μ文| 或词的个数 |μ词| 挂钩。如果文章里的词特别多,那么我分解出来的结果,即提取出来的主题个数,不是m就是n,就没有了分解的意义。
所以我们要通过一个近似的方法,k代表的是我们主题的个数。|μ主题|


总结: 我们输入的有m个文本,每个文本有n个词。而Aij则对应第i个文本的第j个词的特征值。k是我们假设的主题数,一般要比文本数少。

SVD分解后:
Uil 对应第i个文本和第l个主题的相关度。
Vjm 对应第j个词和第m个词义的相关度
Σlm 对应第l个主题和第m个词义的相关度

值得注意的是:Vjm词义相关度也是一个隐含变量。
思考: 我们通过奇异值分解出来的是3个矩阵。Am×n = Um×kk×kVTn×k; 那么三个矩阵需要由几个不同的变量?

1、一个矩阵分解成两个个矩阵的时候,有文章、词语、主题三个变量。我认为多出来的一维变量是主题。

2→3

2、那么现在两个个矩阵矩阵分解到三个矩阵的时候,有文章、词语、主题、词义 四个变量。多出来的一维变量是词义

Uil 对应第i个文本和第l个主题的相关度。
Vjm 对应第j个词和第m个词义的相关度
Σlm 对应第l个主题和第m个词义的相关度

下面通过一个例子来进一步解释这个问题。


LSA案例

假设有10个词、3个文本对应的词频TF矩阵如下:

我们该如何去做矩阵分解?

假定主题数为2,通过SVD降维后的三个矩阵分布为:

通过SVD矩阵分解我们可以得到文本、词与主题、语义之间的相关性,但是这个时候计算出来的内容存在负数,我们比较难解释,所以我们可以对LSI得到文本主题矩阵使用余弦相似度计算文本的相似度的计算。最终我们得到第一个和第三个文档比较相似,和第二个文档不太相似。(备注:这个时候直接在文本主题矩阵的基础上直接应用聚类算法即可)

03 主题模型 - LSA案例


LSA主题模型总结

除非数据规模比较小,而且希望快速的粗粒度的找出一些主题分布关系,否则我们一般不会使用LSA主题模型。

优点:
原理简单,一次SVD分解即可得到主题模型,可以同时解决词义的问题。

缺点:
1、SVD分解的计算非常耗时,对于高维度矩阵做SVD分解非常困难;
2、主题模型数量的选取对于结果的影响非常大,很难选择合适的k值;
3、LSA模型不是概率模型,缺乏统计基础,结果难以直观的解释。

04 主题模型 - NMF
06 主题模型 - pLSA又称pLSI - 基于概率的潜在语义分析模型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容