自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入了解LDA以及其在推薦系統(tǒng)上的引用

開發(fā) 前端
LDA是文檔分類上的經(jīng)典算法,如何應(yīng)用到推薦系統(tǒng)上,大家可以看看。

 導(dǎo)讀

LDA是文檔分類上的經(jīng)典算法,如何應(yīng)用到推薦系統(tǒng)上,大家可以看看。

 

 

 

[[314096]]

 

Latent Dirichlet Allocation(LDA)是一種無監(jiān)督發(fā)現(xiàn)語料庫底層主題的主題建模算法。它已被廣泛應(yīng)用于各種領(lǐng)域,特別是在自然語言處理和推薦系統(tǒng)中。這篇博文將帶你從LDA的概況介紹到詳細(xì)的技術(shù)說明,最后我們將討論LDA在推薦系統(tǒng)上的應(yīng)用!

概要介紹

LDA是語料庫/文檔的生成概率模型。它基于“詞袋”假設(shè),即詞語和文檔是可互換的。也就是說,忽略了文檔中文字的順序,或者忽略了文檔的順序。其基本思想是每個文檔都是由不同的主題組合而成,而每個主題的是通過單詞的分布來描述。

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

每個文檔都由一個主題分布組成

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

每個主題都用單詞的分布來表示

LDA假設(shè)單個文檔的生成都是通過從每個文檔中抽取主題,然后從每個抽取的主題中抽取單詞來生成的。為了獲得單詞和主題的適當(dāng)分布,我們可以使用Gibbs Sampling、Maximum a Posteriori (MAP)或expect Maximization (EM)來訓(xùn)練LDA。

Plate表示法

為了更深入一點(diǎn),讓我們討論一下LDA的符號表示法。在貝葉斯推理中,Plate表示法是一種圖形化的表示隨機(jī)變量抽樣的重復(fù)過程的方法。每個plate可以看作是一個“循環(huán)”,其中plate右下角的變量表示循環(huán)的迭代次數(shù)。下面是LDA的Plate表示法。

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

LDA plate 表示法

在上面的圖中有兩個組件。上面的plate,有K個主題,這些主題的詞的狄利克雷分布由超參數(shù)β控制。同樣,下面的表格描述了有M個文檔,每個文檔包含N個單詞?;疑膱A圈w是觀察到的單詞,圓圈代表不同的潛在變量。z指的是與w相關(guān)聯(lián)的主題,θ是文檔主題的狄利克雷分布,由另一個超參數(shù)⍺控制。

生成過程

現(xiàn)在我們大致了解了如何通過plate表示法來生成文檔。讓我們用數(shù)學(xué)來表示它。

  1. 從狄利克雷分布(θ_i ~ Dir(⍺),i從1到M)中采樣θ
  2. 從另一個狄利克雷分布(φ_k ~ Dir(β) k從1到K)中采樣φ
  3. 從z_ij ~ Multinomial(θ_i) 采樣,從w_ij ~ Multinomial(φ_z_ij) 中采樣,i從1到M,j從1到N

以《紐約時報(bào)》為例。首先,對于每個新聞文章,我們對整個文檔的主題分布θ_i_進(jìn)行采樣。對每個主題中詞的分布φ_k_進(jìn)行采樣。然后,對于每個文檔中的詞j,我們從給定的主題分布Multinomial(θ_i)中得到一個主題z_ij,然后從給定的詞的分布Multinomial(φ_z_ij)中的到w_ij,并基于w_ij采樣得到一個單詞。這個過程通過下面的圖來表示。

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

生成過程的可視化

狄利克雷分布

我們一直把狄利克雷作為黑盒子,卻沒有給出任何解釋。讓我們簡要地討論一下狄利克雷分布背后的直覺。一個k維狄利克雷分布由一個k維參數(shù)向量控制。下面我們展示一個狄利克雷分布的三維例子?;舅枷胧牵琣lpha值越大,分布被推到中心的概率越大。這種分布使得確定與主題/文檔相關(guān)聯(lián)的單詞/主題的部分具有很高的靈活性,因?yàn)橐恍┲黝}/文檔可能與一組很大的單詞/主題相關(guān)聯(lián),而其他的可能不相關(guān)聯(lián)。

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

狄利克雷分布

學(xué)習(xí)

學(xué)習(xí)LDA模型的問題稱為“推理”問題。給定觀測變量w,以及超參數(shù)⍺和β,我們?nèi)绾喂烙?jì)潛變量的后驗(yàn)概率。

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

然而,分母中計(jì)算的積分在計(jì)算上是很麻煩的。

 

深入了解LDA以及其在推薦系統(tǒng)上的引用

 

因此,必須使用近似推理。常用的方法是吉布斯抽樣和變分推論。在這篇文章中,我們將重點(diǎn)討論前者。

吉布斯抽樣

利用吉布斯采樣,我們可以避免直接計(jì)算棘手的積分。基本的想法是,我們想從p (w |⍺,β)中采樣來估計(jì)這個分布,但我們不能直接這樣做。相反,Gibbs抽樣允許我們迭代地計(jì)算一個潛在變量的后驗(yàn)值,同時固定所有其他變量。通過這種方式,我們可以獲得后驗(yàn)分布p(θ, z, φ| w, ⍺, β)。

對于每次迭代,我們交替采樣w,⍺,β,并固定所有其他變量。算法如下面的偽代碼所示:

For i from 1 to MaxIter:

  1. Sample θ_i} ~p(θz= z_{i-1, φ = φ_{i-1}w, ⍺, β)
  2. Sample z_i} ~p(zθ =θ_{i, φ = φ_{i-1}w, ⍺, β)
  3. Sample φ_i} ~p(φθ = θ_{i, z= z_{i}w, ⍺, β)

由于來自早期迭代的樣本不穩(wěn)定,我們將丟棄樣本的第一個B次迭代,稱為“老化”。

LDA在推薦系統(tǒng)上的應(yīng)用

LDA通常用于兩種情況下的推薦系統(tǒng):

  1. 協(xié)同過濾(CF)
  2. 基于內(nèi)容的推薦

協(xié)同過濾

當(dāng)LDA應(yīng)用于基于物品的CF時,物品和用戶類似于我們一直在討論的文檔和單詞(基于用戶的CF正好相反)。換句話說,每個物品都與用戶組(主題)上的分布相關(guān)聯(lián),每個用戶組都是用戶的分布。使用LDA,我們可以發(fā)現(xiàn)用戶和物品之間的隱藏關(guān)系。

基于內(nèi)容的推薦

第二個應(yīng)用是基于內(nèi)容的推薦,非常簡單。我們不只是利用普通的TF-IDF來提取每個物品的文本數(shù)據(jù)的特征向量,而且還通過LDA來對這些文本數(shù)據(jù)的主題進(jìn)行建模。下面提供了用于訓(xùn)練LDA和推斷給定文檔主題的示例代碼。

 

  1. from gensim.test.utils import common_textsfrom gensim.corpora.dictionary import Dictionaryfrom gensim.models import LdaModel# Create a corpus from a list of textscommon_dictionary = Dictionary(common_texts)common_corpus = [common_dictionary.doc2bow(text) for text in common_texts]# Train the model on the corpus.lda = LdaModel(common_corpus, num_topics=10) 

訓(xùn)練LDA

 

  1. # infer the topic distribution of the second corpus.lda[common_corpus[1]]'''output[(0, 0.014287902), (1, 0.014287437), (2, 0.014287902), (3, 0.014285716), (4, 0.014285716), (5, 0.014285714), (6, 0.014285716), (7, 0.014285716), (8, 0.014289378), (9, 0.87141883)]''' 

推斷主題的分布向量

總結(jié)

在這篇博文中,我們討論了LDA從高層到詳細(xì)的數(shù)學(xué)解釋。另外,我們還討論了LDA在推薦系統(tǒng)上的應(yīng)用,并提供了如何使用的示例代碼。我希望這篇文章對你有幫助,下次再見

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2013-04-10 11:16:19

iPad的MouseE

2013-10-09 11:07:31

日志文件系統(tǒng)

2019-05-07 10:03:47

Linux系統(tǒng)發(fā)行版

2010-10-29 10:04:27

2010-11-19 16:22:14

Oracle事務(wù)

2010-07-13 09:36:25

2010-06-23 20:31:54

2009-08-25 16:27:10

Mscomm控件

2022-08-26 13:48:40

EPUBLinux

2020-09-21 09:53:04

FlexCSS開發(fā)

2020-07-20 06:35:55

BashLinux

2009-10-13 10:42:01

綜合布線系統(tǒng)

2015-09-21 11:28:57

使用Linux系統(tǒng)

2019-08-02 08:59:21

Token認(rèn)證服務(wù)器

2019-11-29 16:21:22

Spring框架集成

2017-01-20 08:30:19

JavaScriptfor循環(huán)

2018-02-24 13:21:02

2018-09-04 16:20:46

MySQ索引數(shù)據(jù)結(jié)構(gòu)

2016-10-20 08:46:17

2021-09-03 08:27:47

FortinetSASE平臺安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號