主题模型LDA
轉(zhuǎn)自:主題模型TopicModel:主題模型LDA的應(yīng)用
http://blog.csdn.net/pipisorry/article/details/45665779
主題模型LDA的應(yīng)用
拿到這些topic后繼續(xù)后面的這些應(yīng)用怎么做呢:
除了推斷出這些主題,LDA還可以推斷每篇文章在主題上的分布。例如,X文章大概有60%在討論“空間探索”,30%關(guān)于“電腦”,10%關(guān)于其他主題。
這些主題分布可以有多種用途:
聚類: 主題是聚類中心,文章和多個(gè)類簇(主題)關(guān)聯(lián)。聚類對(duì)整理和總結(jié)文章集合很有幫助。參看Blei教授和Lafferty教授對(duì)于Science雜志的文章生成的總結(jié)。點(diǎn)擊一個(gè)主題,看到該主題下一系列文章。
特征生成:LDA可以生成特征供其他機(jī)器學(xué)習(xí)算法使用。如前所述,LDA為每一篇文章推斷一個(gè)主題分布;K個(gè)主題即是K個(gè)數(shù)值特征。這些特征可以被用在像邏輯回歸或者決策樹這樣的算法中用于預(yù)測任務(wù)。
降維:每篇文章在主題上的分布提供了一個(gè)文章的簡潔總結(jié)。在這個(gè)降維了的特征空間中進(jìn)行文章比較,比在原始的詞匯的特征空間中更有意義。
排序:The very best ways to sort large databases of unstructured text is to use a technique called Latent Dirichlet allocation (LDA).
皮皮blog
應(yīng)用于推薦系統(tǒng)
在使用LDA(Latent Dirichlet Allocation)計(jì)算物品的內(nèi)容相似度時(shí),我們可以先計(jì)算出物品在話題上的分布,然后利用兩個(gè)物品的話題分布計(jì)算物品的相似度。比如,如果兩個(gè)物品的話題分布相似,則認(rèn)為兩個(gè)物品具有較高的相似度,反之則認(rèn)為兩個(gè)物品的相似度較低。計(jì)算分布的相似度可以利用KL散度來計(jì)算:
DKL(p||q)=∑i∈Xp(i)ln(p(i)/q(i),其中p和q是兩個(gè)分布,KL散度越大說明分布的相似度越低。
[基于主題模型的學(xué)術(shù)論文推薦系統(tǒng)研究]
隱語義模型LFM和LSI,LDA,Topic Model其實(shí)都屬于隱含語義分析技術(shù),是一類概念,他們?cè)诒举|(zhì)上是相通的,都是找出潛在的主題或分類。這些技術(shù)一開始都是在文本挖掘領(lǐng)域中提出來的,近些年它們也被不斷應(yīng)用到其他領(lǐng)域中,并得到了不錯(cuò)的應(yīng)用效果。比如,在推薦系統(tǒng)中它能夠基于用戶的行為對(duì)item進(jìn)行自動(dòng)聚類,也就是把item劃分到不同類別/主題,這些主題/類別可以理解為用戶的興趣。
對(duì)于一個(gè)用戶來說,他們可能有不同的興趣。就以作者舉的豆瓣書單的例子來說,用戶A會(huì)關(guān)注數(shù)學(xué),歷史,計(jì)算機(jī)方面的書,用戶B喜歡機(jī)器學(xué)習(xí),編程語言,離散數(shù)學(xué)方面的書, 用戶C喜歡大師Knuth, Jiawei Han等人的著作。那我們?cè)谕扑]的時(shí)候,肯定是向用戶推薦他感興趣的類別下的圖書。那么前提是我們要對(duì)所有item(圖書)進(jìn)行分類。那如何分呢?大家注意到?jīng)]有,分類標(biāo)準(zhǔn)這個(gè)東西是因人而異的,每個(gè)用戶的想法都不一樣。拿B用戶來說,他喜歡的三個(gè)類別其實(shí)都可以算作是計(jì)算機(jī)方面的書籍,也就是說B的分類粒度要比A小;拿離散數(shù)學(xué)來講,他既可以算作數(shù)學(xué),也可當(dāng)做計(jì)算機(jī)方面的類別,也就是說有些item不能簡單的將其劃歸到確定的單一類別;拿C用戶來說,他傾向的是書的作者,只看某幾個(gè)特定作者的書,那么跟A,B相比它的分類角度就完全不同了。
顯然我們不能靠由單個(gè)人(編輯)或team的主觀想法建立起來的分類標(biāo)準(zhǔn)對(duì)整個(gè)平臺(tái)用戶喜好進(jìn)行標(biāo)準(zhǔn)化。
此外我們還需要注意的兩個(gè)問題:
? R矩陣是user-item矩陣,矩陣值Rij表示的是user i 對(duì)item j的興趣度,這正是我們要求的值。對(duì)于一個(gè)user來說,當(dāng)計(jì)算出他對(duì)所有item的興趣度后,就可以進(jìn)行排序并作出推薦。LFM算法從數(shù)據(jù)集中抽取出若干主題,作為user和item之間連接的橋梁,將R矩陣表示為P矩陣和Q矩陣相乘。其中P矩陣是user-class矩陣,矩陣值Pij表示的是user i對(duì)class j的興趣度;Q矩陣式class-item矩陣,矩陣值Qij表示的是item j在class i中的權(quán)重,權(quán)重越高越能作為該類的代表。所以LFM根據(jù)如下公式來計(jì)算用戶U對(duì)物品I的興趣度
我們發(fā)現(xiàn)使用LFM后,?
那么,接下去的問題就是如何計(jì)算矩陣P和矩陣Q中參數(shù)值。一般做法就是最優(yōu)化損失函數(shù)來求參數(shù)。在定義損失函數(shù)之前,我們需要準(zhǔn)備一下數(shù)據(jù)集并對(duì)興趣度的取值做一說明。
數(shù)據(jù)集應(yīng)該包含所有的user和他們有過行為的(也就是喜歡)的item。所有的這些item構(gòu)成了一個(gè)item全集。對(duì)于每個(gè)user來說,我們把他有過行為的item稱為正樣本,規(guī)定興趣度RUI=1,此外我們還需要從item全集中隨機(jī)抽樣,選取與正樣本數(shù)量相當(dāng)?shù)臉颖咀鳛樨?fù)樣本,規(guī)定興趣度為RUI=0。因此,興趣的取值范圍為[0,1]。
采樣之后原有的數(shù)據(jù)集得到擴(kuò)充,得到一個(gè)新的user-item集K={(U,I)},其中如果(U,I)是正樣本,則RUI=1,否則RUI=0。損失函數(shù)如下所示:
上式中的 是用來防止過擬合的正則化項(xiàng),λ需要根據(jù)具體應(yīng)用場景反復(fù)實(shí)驗(yàn)得到。損失函數(shù)的優(yōu)化使用隨機(jī)梯度下降算法:
其中,α是學(xué)習(xí)速率,α越大,迭代下降的越快。α和λ一樣,也需要根據(jù)實(shí)際的應(yīng)用場景反復(fù)實(shí)驗(yàn)得到。本書中,作者在 MovieLens 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),他取分類數(shù)F=100,α=0.02,λ=0.01。
? ? ? ? ? ? ? ?【注意】:書中在上面四個(gè)式子中都缺少了
綜上所述,執(zhí)行LFM需要:
LFM的偽代碼可以表示如下:
總結(jié)來說,LFM具有成熟的理論基礎(chǔ),它是一個(gè)純種的學(xué)習(xí)算法,通過最優(yōu)化理論來優(yōu)化指定的參數(shù),建立最優(yōu)的模型。
[使用LFM(Latent factor model)隱語義模型進(jìn)行Top-N推薦]
[主題模型LDA及其在微博推薦&廣告算法中的應(yīng)用]
皮皮blog
LDA主題模型用于BUG修復(fù)人推薦
[缺陷修復(fù)人預(yù)測(Bug Triaging)]
[LDA主題模型用于BUG修復(fù)人推薦《DRETOM: developer recommendation based on topic models for bug resolution》]
[主題模型在文本挖掘中的應(yīng)用.pdf]
ref:?
http://blog.csdn.net/pipisorry/article/details/45771045
LDA的python實(shí)現(xiàn)
從0開始實(shí)現(xiàn)
Shuyo的github代碼:實(shí)現(xiàn)語言,Python,實(shí)現(xiàn)模型,LDA,Dirichlet Process Gaussian Mixture Model,online HDP,HDPLDA,Interactive Topic Model,Labeled LDA
地址:https://github.com/shuyo/iir/tree/master/lda
arongdari的github代碼:實(shí)現(xiàn)語言,Python,實(shí)現(xiàn)模型,LDA,Correlated Topic Model,Relational topic model,Author-Topic model,HMM-LDA,Discrete Infinite logistic normal,Supervised Topic Model,Hierarchical Dirichlet process,Hierarchical Dirichlet scaling process
地址:https://github.com/arongdari/python-topic-model
ahmaurya的github代碼:實(shí)現(xiàn)語言,Python,實(shí)現(xiàn)模型,Topic Over Time
github代碼地址:https://github.com/ahmaurya/topics_over_time
Blei實(shí)驗(yàn)室的代碼:實(shí)現(xiàn)語言,Python,實(shí)現(xiàn)模型,online lda,online HDP,turbo topic model,topic model visualization engine,實(shí)現(xiàn)語言,C,實(shí)現(xiàn)模型,correlated topic model,discrete infinite logistic normal,HLDA,lda,實(shí)現(xiàn)語言C++,實(shí)現(xiàn)模型,ctr,class-slda,Dynamic Topic model and the influence model,實(shí)現(xiàn)語言R,實(shí)現(xiàn)模型 lda
github代碼地址:http://www.cs.columbia.edu/~blei/topicmodeling_software.html
gensim實(shí)現(xiàn)[主題模型TopicModel:通過gensim實(shí)現(xiàn)LDA?]
[Latent Dirichlet Allocation in Python
Latent Dirichlet Allocation in?Python
Online LDA的python實(shí)現(xiàn)
github:python-topic-model
Multicore LDA in Python: from over-night to over-lunch]
[Getting started with Latent Dirichlet Allocation in Python?install?lda]
pyspark實(shí)現(xiàn)LDA
[Spark:聚類算法之LDA主題模型算法?]
LDA的c/c++實(shí)現(xiàn)
GibbsLDA++: A C/C++ Implementation of Latent Dirichlet Allocation (LDA) using Gibbs Sampling for Parameter Estimation and Inference
GibbsLDA++: A C/C++ Gibbs Sampling LDA | SourceForge.net
plda - A parallel C++ implementation of fast Gibbs sampling of Latent Dirichlet Allocation - Google Project Hosting
Latent Dirichlet Allocation in C
Latent?Dirichlet?Allocation(LDA)主題模型算法實(shí)現(xiàn)及源碼解析_AriannaChen_新浪博客
皮皮Blog
LDA的java實(shí)現(xiàn)
MALLET:實(shí)現(xiàn)語言,Java,實(shí)現(xiàn)模型,LDA,HLDA,Pachinko Allocation Model,此外,還實(shí)現(xiàn)了HMM,最大熵馬爾科夫模型和條件隨機(jī)場;
yangliuy/LDAGibbsSampling · GitHub
JGibbLDA: A Java Implementation of Latent Dirichlet Allocation (LDA) using Gibbs Sampling for Parameter Estimation and Inference
概率語言模型及其變形系列(5)-LDA Gibbs Sampling 的JAVA實(shí)現(xiàn) - Coding for Dreams - 博客頻道 - CSDN.NET
http://www.arbylon.net/projects/LdaGibbsSampler.java
LDA的R實(shí)現(xiàn)
R下用GlossEx做關(guān)鍵詞抽取和主題分析
from:http://blog.csdn.net/pipisorry/article/details/45771045
ref:?主題模型及其變種的實(shí)現(xiàn)代碼匯總
總結(jié)
- 上一篇: WinRAR 4.0 简体中文正式版美化
- 下一篇: 绘制自己的人际关系图_攒人脉,建圈子,从