溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

分析LDA在推薦系統(tǒng)上的引用

發(fā)布時(shí)間:2021-11-05 14:30:03 來(lái)源:億速云 閱讀:204 作者:iii 欄目:web開(kāi)發(fā)

本篇內(nèi)容介紹了“分析LDA在推薦系統(tǒng)上的引用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

 導(dǎo)讀

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

Latent Dirichlet  Allocation(LDA)是一種無(wú)監(jiān)督發(fā)現(xiàn)語(yǔ)料庫(kù)底層主題的主題建模算法。它已被廣泛應(yīng)用于各種領(lǐng)域,特別是在自然語(yǔ)言處理和推薦系統(tǒng)中。

概要介紹

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

分析LDA在推薦系統(tǒng)上的引用

每個(gè)文檔都由一個(gè)主題分布組成

分析LDA在推薦系統(tǒng)上的引用

每個(gè)主題都用單詞的分布來(lái)表示

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

Plate表示法

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

分析LDA在推薦系統(tǒng)上的引用

LDA plate 表示法

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

生成過(guò)程

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

  1. 從狄利克雷分布(θ_i ~ Dir(?),i從1到M)中采樣θ

  2. 從另一個(gè)狄利克雷分布(φ_k ~ Dir(β) k從1到K)中采樣φ

  3. 從z_ij ~ Multinomial(θ_i) 采樣,從w_ij ~ Multinomial(φ_z_ij) 中采樣,i從1到M,j從1到N

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

分析LDA在推薦系統(tǒng)上的引用

生成過(guò)程的可視化

狄利克雷分布

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

分析LDA在推薦系統(tǒng)上的引用

狄利克雷分布

學(xué)習(xí)

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

分析LDA在推薦系統(tǒng)上的引用

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

分析LDA在推薦系統(tǒng)上的引用

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

吉布斯抽樣

利用吉布斯采樣,我們可以避免直接計(jì)算棘手的積分?;镜南敕ㄊ?,我們想從p (w  |?,β)中采樣來(lái)估計(jì)這個(gè)分布,但我們不能直接這樣做。相反,Gibbs抽樣允許我們迭代地計(jì)算一個(gè)潛在變量的后驗(yàn)值,同時(shí)固定所有其他變量。通過(guò)這種方式,我們可以獲得后驗(yàn)分布p(θ,  z, φ| w, ?, β)。

對(duì)于每次迭代,我們交替采樣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, ?, β)

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

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

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

  1. 協(xié)同過(guò)濾(CF)

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

協(xié)同過(guò)濾

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

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

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

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

# 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)]'''

推斷主題的分布向量

“分析LDA在推薦系統(tǒng)上的引用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

lda
AI