機(jī)器學(xué)習(xí)算法之主題模型(LFM LSI PLSI LDA)

LFM(MF分解技術(shù))、LSI(SVD分解)、PLSI(EM)、LDA

隱語(yǔ)義模型LFM和LSI,PLSI,LDA,Topic Model其實(shí)都屬于隱含語(yǔ)義分析技術(shù),是一類概念,他們?cè)诒举|(zhì)上是相通的,都是找出潛在的主題或分類。這些技術(shù)一開(kāi)始都是在文本挖掘領(lǐng)域中提出來(lái)的,近些年它們也被不斷應(yīng)用到其他領(lǐng)域中,并得到了不錯(cuò)的應(yīng)用效果。比如,在推薦系統(tǒng)中它能夠基于用戶的行為對(duì)item進(jìn)行自動(dòng)聚類,也就是把item劃分到不同類別/主題,這些主題/類別可以理解為用戶的興趣。

主題模型:Topic Model

topic model是針對(duì)文本隱含主題的建模方法,針對(duì)第一個(gè)case,馬云對(duì)應(yīng)的主題是阿里巴巴,阿里巴巴集團(tuán)也隱含阿里巴巴主題,這樣兩個(gè)文本的主題匹配上,認(rèn)為他們是相關(guān)的,針對(duì)第二個(gè),分別針對(duì)水果以及手機(jī)主題,我們認(rèn)為他們是不相關(guān)的。

究竟什么是主題?主題就是一個(gè)概念、一個(gè)方面。它表現(xiàn)為一系列相關(guān)的詞,能夠代表這個(gè)主題。比如如果是”阿里巴巴“主題,那么”馬云“”電子商務(wù)“等詞會(huì)很高的頻率出現(xiàn),而設(shè)計(jì)到”騰訊“主題,那么“馬化騰”“游戲”“QQ”會(huì)以較高的頻率出現(xiàn)。如果用數(shù)學(xué)來(lái)描述一下的話,主題就是詞匯表上詞語(yǔ)的條件概率分布,與主題密切相關(guān)的詞,條件概率p(w|z)越大。主題就像一個(gè)桶,裝了出現(xiàn)頻率很高的詞語(yǔ),這些詞語(yǔ)和主題有很強(qiáng)的相關(guān)性,或者說(shuō)這些詞語(yǔ)定義了這個(gè)主題。同時(shí),一個(gè)詞語(yǔ),可能來(lái)自于這個(gè)桶,也可能來(lái)自那個(gè)桶,比如“電子商務(wù)”可以來(lái)自“阿里巴巴”主題,也可以來(lái)自“京東“主題,所以一段文字往往包含多個(gè)主題,也就是說(shuō),一段文字不只有一個(gè)主題。

上面介紹了主題的概念,我們最為關(guān)心的是如何得到這些主題?這就是topic model要解決的問(wèn)題。

define: d表示文檔,w表示詞語(yǔ),z表示隱含的主題。

p(w|d)=∑zp(w|z)p(z|d)

其中p(w|d)表示w在文檔d中出現(xiàn)的概率,針對(duì)訓(xùn)練語(yǔ)料,對(duì)文本進(jìn)行分詞,w的頻度除以文檔所有詞語(yǔ)的頻度和,可以求出,對(duì)于未知數(shù)據(jù),model用來(lái)計(jì)算該value.

p(w|z)表示在給定主題情況下詞語(yǔ)的出現(xiàn)的概率是多少,刻畫(huà)詞語(yǔ)和主題的相關(guān)程度。

p(z|d)表示文檔中每個(gè)主題出現(xiàn)的概率

所以主題模型就是 利用大量已知的p(w|d)詞語(yǔ)-文檔信息,訓(xùn)練出來(lái)主題-文檔p(z|d)以及詞語(yǔ)-主題p(w|z)。

主題模型的用途:

1.計(jì)算文本的相似性,考慮到文本語(yǔ)義,更好的刻畫(huà)文本相似性,避免多義詞,同義詞的影響

2.文本聚類,用戶聚類(RS)

3.去除噪音,只保留最重要的主題,更好的刻畫(huà)文檔


1. LFM:隱語(yǔ)義模型,MF分解

最終的用戶評(píng)分矩陣(混淆矩陣)=P* Q

P矩陣代表了 user-class

Q矩陣代表了class-item

class:根據(jù)自動(dòng)聚類算法獲得幾個(gè)類標(biāo)簽;

P、Q中的參數(shù)通過(guò)模型學(xué)習(xí)得到:

計(jì)算損失函數(shù):隨機(jī)梯度下降法,使得損失值最?。?/p>

參考文獻(xiàn):http://blog.csdn.net/harryhuang1990/article/details/9924377

2. LSI(LSA)模型:基于SVD分解

LSI: Latent Semantic Analysis (Latent Semantic Indexing)

背景:

傳統(tǒng)的信息檢索中:將單詞作為特征,構(gòu)造特征向量;計(jì)算查詢單詞與文檔間的相似度;

但是沒(méi)有考慮到語(yǔ)義、同義詞等相關(guān)信息;

在基于單詞的檢索方法中,同義詞會(huì)降低檢索算法的召回率(Recall),而多義詞的存在會(huì)降低檢索系統(tǒng)的準(zhǔn)確率(Precision)

我們希望找到一種模型,能夠捕獲到單詞之間的相關(guān)性。如果兩個(gè)單詞之間有很強(qiáng)的相關(guān)性,那么當(dāng)一個(gè)單詞出現(xiàn)時(shí),往往意味著另一個(gè)單詞也應(yīng)該出現(xiàn)(同義 詞);反之,如果查詢語(yǔ)句或者文檔中的某個(gè)單詞和其他單詞的相關(guān)性都不大,那么這個(gè)詞很可能表示的是另外一個(gè)意思(比如在討論互聯(lián)網(wǎng)的文章中,Apple 更可能指的是Apple公司,而不是水果) ?。

LSA(LSI)使用SVD來(lái)對(duì)單詞-文檔矩陣進(jìn)行分解。SVD可以看作是從單詞-文檔矩陣中發(fā)現(xiàn)不相關(guān)的索引變量(因子),將原來(lái)的數(shù)據(jù)映射到語(yǔ)義空間內(nèi)。在單詞-文檔矩陣中不相似的兩個(gè)文檔,可能在語(yǔ)義空間內(nèi)比較相似。

SVD,亦即奇異值分解,是對(duì)矩陣進(jìn)行分解的一種方法,一個(gè)t*d維的矩陣(單詞-文檔矩陣)X,可以分解為T*S*DT, 其中T為t*m維矩陣,T中的每一列稱為左奇異向量(left singular vector),S為m*m維對(duì)角矩陣,每個(gè)值稱為奇異值(singular value),D為d*m維矩陣,D中的每一列稱為右奇異向量。在對(duì)單詞文檔矩陣X做SVD分解之后,我們只保存S中最大的K個(gè)奇異值,以及T和D中對(duì)應(yīng) 的K個(gè)奇異向量,K個(gè)奇異值構(gòu)成新的對(duì)角矩陣S’,K個(gè)左奇異向量和右奇異向量構(gòu)成新的矩陣T’和D’:X’=T’*S’*D’T形成了一個(gè)新的t*d矩陣。

還原后的X’與X差別很大,這是因?yàn)槲覀冋J(rèn)為之前X存在很大的噪音,X’是對(duì)X處理過(guò)同義詞和多義詞后的結(jié)果。

在查詢時(shí),對(duì)與每個(gè)給定的查詢q,我們根據(jù)這個(gè)查詢中包含的單詞(Xq)構(gòu)造一個(gè)偽文檔:Dq=XqTS-1,然后該偽文檔和D’中的每一行計(jì)算相似度(余弦相似度)來(lái)得到和給定查詢最相似的文檔。

參考:http://www.cnblogs.com/kemaswill/archive/2013/04/17/3022100.html


3. PLSI:基于概率LSI

盡管基于SVD的LSA取得了一定的成功,但是其缺乏嚴(yán)謹(jǐn)?shù)臄?shù)理統(tǒng)計(jì)基礎(chǔ),而且SVD分解非常耗時(shí)。Hofmann在SIGIR'99上提出了基于概率統(tǒng)計(jì)的PLSA模型,并且用EM算法學(xué)習(xí)模型參數(shù)。PLSA的概率圖模型如下:


參考文獻(xiàn):http://san-yun.iteye.com/blog/1966653

? ? ? ? ? ? ? ? ?http://blog.csdn.net/yangliuy/article/details/8330640


3. LDA(推薦系統(tǒng)應(yīng)用):

回顧:

主題模型就是 利用大量已知的p(w|d)詞語(yǔ)-文檔信息,訓(xùn)練出來(lái)主題-文檔p(z|d)以及詞語(yǔ)-主題p(w|z);在LDA模型中,主題-文檔分布是α,詞語(yǔ)-主題分布是β;

對(duì)于數(shù)據(jù)集D中的每個(gè)文檔w,LDA假定了如下的生成過(guò)程:

LDA是一個(gè)三層的模型,α,β是全局超參數(shù),采樣一次即可。θd是文檔級(jí)別的變量,每生成一個(gè)文檔時(shí)采樣一次。zn,wn是單詞級(jí)別的變量,每生成一個(gè)單詞時(shí)采樣一次

(1)選擇一個(gè)N~Poisson(?),N是該文檔中單詞的個(gè)數(shù);

(2)選擇一個(gè)θ~Dir(α),θ是主題分布所服從Dirichet(α)的參數(shù);

(3)對(duì)于文檔中的每一個(gè)詞wn:

? ? ? ? a.選擇一個(gè)主題zn~Multinomial(θ);每個(gè)主題服從多項(xiàng)式分布;

? ? ? ? b.在選定主題zn后,在該主題對(duì)應(yīng)的詞分布中選擇一個(gè)單詞wn,它的概率是p(w|zn,β)。wn~Multinomial(β);,

補(bǔ)充:

伯努利分布: 0-1分布;

二項(xiàng)分布:多個(gè)伯努利分布

多項(xiàng)式分布:有多個(gè)結(jié)果,伯努利分布的擴(kuò)展

beta分布:來(lái)源于二項(xiàng)分布,是二項(xiàng)分布的共軛先驗(yàn);x~U(0,1),隨機(jī)采樣后,排序之后的分布即為beta分布;

狄雷克類分布:多變量的bata分布

從Dirichet(α)中獲得一篇文檔的主題分布函數(shù)θ,作為先驗(yàn)分布;θ是文檔級(jí)別的;

D:數(shù)據(jù)集D中包含M個(gè)文檔,D=w1,w2,…,wM;w:每個(gè)文檔中有N個(gè)單詞,w=(w1,w2,...,wN),wn是文檔詞序列的第n個(gè)詞;

z:z代表一個(gè)主題,是一個(gè)k維向量,k是主題個(gè)數(shù),第k個(gè)主題可以表示為:zk=1,zj=0,k≠j,所以每個(gè)z是一個(gè)單位向量;

w:w代表一個(gè)詞,是一個(gè)V維向量,V是總詞典的大小,詞典中第v個(gè)詞可以表示為:wv=1,wu=0,u≠v,所以每個(gè)w都是一個(gè)單位向量;

α:是狄利克雷分布的參數(shù),是我們要估計(jì)的參數(shù);

β:是一個(gè)k*V的矩陣,k是主題個(gè)數(shù),V是詞典個(gè)數(shù),β(i,j)代表主題zi中單詞wj的概率,也就是說(shuō),β中存儲(chǔ)的是主題-詞分布,是我們要估計(jì)的參數(shù)。

概率模型圖,我們可以得到如下概率公式:

θ服從多項(xiàng)式分布,我們最終獲得一topic分布

給定α,β,根據(jù)文檔生成的過(guò)程,可以得到,主題分布的參數(shù)θ,N個(gè)主題的集合z,N個(gè)單詞的集合w,的聯(lián)合分布:

N 個(gè)主題,N個(gè)單詞
求得W的邊緣分布

目標(biāo):從給定的文檔和word中,學(xué)習(xí)出一個(gè)topic分布模型,取對(duì)數(shù)似然:

wd是詞語(yǔ)一篇文檔的詞語(yǔ)集合,有M篇文檔

算法如下:

3.1 Gamma函數(shù)?

3.2 二項(xiàng)分布


3.3 Beta 分布


參考http://blog.csdn.net/happyer88/article/details/45936107

http://www.cnblogs.com/lixiaolun/p/4455764.html

http://blog.csdn.net/zhaoyin654/article/details/49153999

4. MF(矩陣分解一致)

http://blog.csdn.net/litoupu/article/details/16944359

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容