
在文本挖掘中,主題模型是比較特殊的一塊,它的思想不同于我們常用的機(jī)器學(xué)習(xí)算法,因此這里我們需要專門來(lái)總結(jié)文本主題模型的算法。本文關(guān)注于潛在語(yǔ)義索引算法(LSI)的原理。
1. 文本主題模型的問題特點(diǎn)
在數(shù)據(jù)分析中,我們經(jīng)常會(huì)進(jìn)行非監(jiān)督學(xué)習(xí)的聚類算法,它可以對(duì)我們的特征數(shù)據(jù)進(jìn)行非監(jiān)督的聚類。而主題模型也是非監(jiān)督的算法,目的是得到文本按照主題的概率分布。從這個(gè)方面來(lái)說,主題模型和普通的聚類算法非常的類似。但是兩者其實(shí)還是有區(qū)別的。
聚類算法關(guān)注于從樣本特征的相似度方面將數(shù)據(jù)聚類。比如通過數(shù)據(jù)樣本之間的歐式距離,曼哈頓距離的大小聚類等。而主題模型,顧名思義,就是對(duì)文字中隱含主題的一種建模方法。比如從“人民的名義”和“達(dá)康書記”這兩個(gè)詞我們很容易發(fā)現(xiàn)對(duì)應(yīng)的文本有很大的主題相關(guān)度,但是如果通過詞特征來(lái)聚類的話則很難找出,因?yàn)?a href='/map/julei/' style='color:#000;font-size:inherit;'>聚類方法不能考慮到到隱含的主題這一塊。
那么如何找到隱含的主題呢?這個(gè)一個(gè)大問題。常用的方法一般都是基于統(tǒng)計(jì)學(xué)的生成方法。即假設(shè)以一定的概率選擇了一個(gè)主題,然后以一定的概率選擇當(dāng)前主題的詞。最后這些詞組成了我們當(dāng)前的文本。所有詞的統(tǒng)計(jì)概率分布可以從語(yǔ)料庫(kù)獲得,具體如何以“一定的概率選擇”,這就是各種具體的主題模型算法的任務(wù)了。
當(dāng)然還有一些不是基于統(tǒng)計(jì)的方法,比如我們下面講到的LSI。
2. 潛在語(yǔ)義索引(LSI)概述
潛在語(yǔ)義索引(Latent Semantic Indexing,以下簡(jiǎn)稱LSI),有的文章也叫Latent Semantic Analysis(LSA)。其實(shí)是一個(gè)東西,后面我們統(tǒng)稱LSI,它是一種簡(jiǎn)單實(shí)用的主題模型。LSI是基于奇異值分解(SVD)的方法來(lái)得到文本的主題的。而SVD及其應(yīng)用我們?cè)谇懊娴奈恼乱捕啻沃v到,比如:奇異值分解(SVD)原理與在降維中的應(yīng)用和矩陣分解在協(xié)同過濾推薦算法中的應(yīng)用。如果大家對(duì)SVD還不熟悉,建議復(fù)習(xí)奇異值分解(SVD)原理與在降維中的應(yīng)用后再讀下面的內(nèi)容。
這里我們簡(jiǎn)要回顧下SVD:對(duì)于一個(gè)m×n的矩陣
A,可以分解為下面三個(gè)矩陣:
有時(shí)為了降低矩陣的維度到k,SVD的分解可以近似的寫為:
如果把上式用到我們的主題模型,則SVD可以這樣解釋:我們輸入的有m個(gè)文本,每個(gè)文本有n個(gè)詞。而Aij則對(duì)應(yīng)第i個(gè)文本的第j個(gè)詞的特征值,這里最常用的是基于預(yù)處理后的標(biāo)準(zhǔn)化TF-IDF值。k是我們假設(shè)的主題數(shù),一般要比文本數(shù)少。SVD分解后,
Uil對(duì)應(yīng)第i個(gè)文本和第l個(gè)主題的相關(guān)度。
Vjm對(duì)應(yīng)第j個(gè)詞和第m個(gè)詞義的相關(guān)度。
Σlm對(duì)應(yīng)第l個(gè)主題和第m個(gè)詞義的相關(guān)度。
也可以反過來(lái)解釋:我們輸入的有m個(gè)詞,對(duì)應(yīng)n個(gè)文本。而Aij則對(duì)應(yīng)第i個(gè)詞檔的第j個(gè)文本的特征值,這里最常用的是基于預(yù)處理后的標(biāo)準(zhǔn)化TF-IDF值。k是我們假設(shè)的主題數(shù),一般要比文本數(shù)少。SVD分解后,
Uil對(duì)應(yīng)第i個(gè)詞和第l個(gè)詞義的相關(guān)度。
Vjm對(duì)應(yīng)第j個(gè)文本和第m個(gè)主題的相關(guān)度。
Σlm對(duì)應(yīng)第l個(gè)詞義和第m個(gè)主題的相關(guān)度。
這樣我們通過一次SVD,就可以得到文檔和主題的相關(guān)度,詞和詞義的相關(guān)度以及詞義和主題的相關(guān)度。
3. LSI簡(jiǎn)單實(shí)例
這里舉一個(gè)簡(jiǎn)單的LSI實(shí)例,假設(shè)我們有下面這個(gè)有10個(gè)詞三個(gè)文本的詞頻TF對(duì)應(yīng)矩陣如下:
這里我們沒有使用預(yù)處理,也沒有使用TF-IDF,在實(shí)際應(yīng)用中最好使用預(yù)處理后的TF-IDF值矩陣作為輸入。
我們假定對(duì)應(yīng)的主題數(shù)為2,則通過SVD降維后得到的三矩陣為:
從矩陣Uk我們可以看到詞和詞義之間的相關(guān)性。而從
Vk可以看到3個(gè)文本和兩個(gè)主題的相關(guān)性。大家可以看到里面有負(fù)數(shù),所以這樣得到的相關(guān)度比較難解釋。
4. LSI用于文本相似度計(jì)算
在上面我們通過LSI得到的文本主題矩陣可以用于文本相似度計(jì)算。而計(jì)算方法一般是通過余弦相似度。比如對(duì)于上面的三文檔兩主題的例子。我們可以計(jì)算第一個(gè)文本和第二個(gè)文本的余弦相似度如下 :
sim(d1,d2)=(?0.4945)?(?0.6458)+(0.6492)?(?0.7194)(?0.4945)2+0.64922(?0.6458)2+(?0.7194)2
5. LSI主題模型總結(jié)
LSI是最早出現(xiàn)的主題模型了,它的算法原理很簡(jiǎn)單,一次奇異值分解就可以得到主題模型,同時(shí)解決詞義的問題,非常漂亮。但是LSI有很多不足,導(dǎo)致它在當(dāng)前實(shí)際的主題模型中已基本不再使用。
主要的問題有:
1) SVD計(jì)算非常的耗時(shí),尤其是我們的文本處理,詞和文本數(shù)都是非常大的,對(duì)于這樣的高維度矩陣做奇異值分解是非常難的。
2) 主題值的選取對(duì)結(jié)果的影響非常大,很難選擇合適的k值。
3) LSI得到的不是一個(gè)概率模型,缺乏統(tǒng)計(jì)基礎(chǔ),結(jié)果難以直觀的解釋。
對(duì)于問題1),主題模型非負(fù)矩陣分解(NMF)可以解決矩陣分解的速度問題。對(duì)于問題2),這是老大難了,大部分主題模型的主題的個(gè)數(shù)選取一般都是憑經(jīng)驗(yàn)的,較新的層次狄利克雷過程(HDP)可以自動(dòng)選擇主題個(gè)數(shù)。對(duì)于問題3),牛人們整出了pLSI(也叫pLSA)和隱含狄利克雷分布(LDA)這類基于概率分布的主題模型來(lái)替代基于矩陣分解的主題模型。
回到LSI本身,對(duì)于一些規(guī)模較小的問題,如果想快速粗粒度的找出一些主題分布的關(guān)系,則LSI是比較好的一個(gè)選擇,其他時(shí)候,如果你需要使用主題模型,推薦使用LDA和HDP。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實(shí)踐的落地者與價(jià)值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價(jià)值,最終要在 “實(shí)踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場(chǎng)景的分 ...
2025-09-10