深入了解LDA以及其在推薦系統上的引用

2020-12-08 51CTO

 導讀

LDA是文檔分類上的經典算法,如何應用到推薦系統上,大家可以看看。

Latent Dirichlet Allocation(LDA)是一種無監督發現語料庫底層主題的主題建模算法。它已被廣泛應用於各種領域,特別是在自然語言處理和推薦系統中。這篇博文將帶你從LDA的概況介紹到詳細的技術說明,最後我們將討論LDA在推薦系統上的應用!

概要介紹

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

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

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

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

Plate表示法

為了更深入一點,讓我們討論一下LDA的符號表示法。在貝葉斯推理中,Plate表示法是一種圖形化的表示隨機變量抽樣的重複過程的方法。每個plate可以看作是一個「循環」,其中plate右下角的變量表示循環的迭代次數。下面是LDA的Plate表示法。

LDA plate 表示法

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

生成過程

現在我們大致了解了如何通過plate表示法來生成文檔。讓我們用數學來表示它。

  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

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

生成過程的可視化

狄利克雷分布

我們一直把狄利克雷作為黑盒子,卻沒有給出任何解釋。讓我們簡要地討論一下狄利克雷分布背後的直覺。一個k維狄利克雷分布由一個k維參數向量控制。下面我們展示一個狄利克雷分布的三維例子。基本思想是,alpha值越大,分布被推到中心的概率越大。這種分布使得確定與主題/文檔相關聯的單詞/主題的部分具有很高的靈活性,因為一些主題/文檔可能與一組很大的單詞/主題相關聯,而其他的可能不相關聯。

狄利克雷分布

學習

學習LDA模型的問題稱為「推理」問題。給定觀測變量w,以及超參數⍺和β,我們如何估計潛變量的後驗概率。

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

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

吉布斯抽樣

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

由於來自早期迭代的樣本不穩定,我們將丟棄樣本的第一個B次迭代,稱為「老化」。

LDA在推薦系統上的應用

LDA通常用於兩種情況下的推薦系統:

  1. 協同過濾(CF)
  2. 基於內容的推薦

協同過濾

當LDA應用於基於物品的CF時,物品和用戶類似於我們一直在討論的文檔和單詞(基於用戶的CF正好相反)。換句話說,每個物品都與用戶組(主題)上的分布相關聯,每個用戶組都是用戶的分布。使用LDA,我們可以發現用戶和物品之間的隱藏關係。

基於內容的推薦

第二個應用是基於內容的推薦,非常簡單。我們不只是利用普通的TF-IDF來提取每個物品的文本數據的特徵向量,而且還通過LDA來對這些文本數據的主題進行建模。下面提供了用於訓練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) 

訓練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)]''' 

推斷主題的分布向量

總結

在這篇博文中,我們討論了LDA從高層到詳細的數學解釋。另外,我們還討論了LDA在推薦系統上的應用,並提供了如何使用的示例代碼。我希望這篇文章對你有幫助,下次再見

【編輯推薦】

【責任編輯:

華軒

TEL:(010)68476606】

點讚 0

相關焦點

  • 運用sklearn進行線性判別分析(LDA)代碼實現
    在上一篇LDA線性判別分析原理及python應用(葡萄酒案例分析),我們通過詳細的步驟理解LDA內部邏輯實現原理,能夠更好地掌握線性判別分析的內部機制。當然,在以後項目數據處理,我們有更高效的實現方法,這篇將記錄學習基於sklearn進行LDA數據降維,提高編碼速度,而且會感覺更加簡單。LDA詳細介紹與各步驟實現請看上回:LDA線性判別分析原理及python應用(葡萄酒案例分析)。
  • 深入了解中藥顆粒劑(上)
    中藥顆粒劑的 製作工藝流程中藥顆粒劑的提取、純化分離、輔料選擇、制粒等製備工藝複雜,中藥顆粒劑的常用提取方法有煎煮法、滲漉、浸漬以及回流提取法,近年來,又引用了微波提取法、酶提取法與動態溫控提取法等等,進一步還要應用純化分離工藝,因為中藥成分複雜,非有效成分較多且結構複雜,有效成分的純化與分離是中藥顆粒劑質量穩定的關鍵,目前較常用的是水提醇沉法,還有根據有效成分溶解度的不同而採用醇提水沉法
  • RS485相關的應用,深入了解RS485
    RS485相關的應用,深入了解RS485 工業機器人前沿 發表於 2020-11-30 16:21:41 做工程很多時候會提到RS485控制線,它到底是什麼呢?
  • 地方微博的運營 可直接引用地方門戶發展模式
    其實地方微博的商業模式可以直接引用地方門戶的發展模式,具體可以參考一下幾點:{一、跨過地方微博的技術門檻,把成本降低}把項目成本降低是每一間企業開展一個項目首先思考的問題,特別是中小型企業,不然就很難擁有市場競爭力。
  • 深入了解SVD與糾纏
    再舉一個例子,你可以想像一個矩陣,其行是按照人為索引,其列是按照電影為索引。第 ij 項可以是 0 或 1,表示人 i 是否看過電影 j。在應用環境中--例如,推薦系統--可能希望計算這個矩陣的截斷SVD。在這裡只有最大的奇異值被保留。其餘的值被視為包含很少的信息,並被設置為零。通過這種方式,對角矩陣D在一個低維的 "特徵空間 "上運行,這為壓縮和收集數據信息提供了一個很好的方法。
  • 錄製宏時,絕對Absolute引用和相對Relative引用的區別
    第五節 錄製宏時,使用絕對(Absolute)引用和相對(Relative)引用的區別大家好,我們繼續VBA的學習,在上一講中,我們講到對於初學VBA人員,可以錄製一段代碼讓一些重複的工作能自動完成。這不失為一種提高效率的方法。但我們在錄製宏的時候,一定要注意區別絕對引用和相對引用。這節我將就這個問題給大家以詳細的講解。
  • 了解最常見的論文引用格式與參考書目格式
    今天小編來給大家解釋引用的重要性而其主要類型,教你如何正確使用常見的文本內引用與參考書目格式,即APA格式、MLA格式、CHICAGO格式及HARVARD格式。 引用的定義及其重要性 引用(citation)是你用來告訴讀者自己的作品中的某些材料來自其他文獻的方式。
  • LBS推薦系統的設計方法
    由於推薦系統是興趣點系統的核心,所以接下來,我們將介紹推薦系統。推薦系統是一個很龐大的課題,將分成兩期予以介紹:本期講述推薦系統的設計方法,包含推薦系統的數學基礎和設計原理。關於推薦系統有很多經典的應用,比如:淘寶/天貓/亞馬遜上的商品都是通過推薦系統來排列的;各種音樂應用(比如網易雲音樂或者蝦米音樂)都是按照推薦系統的原理來向用戶推薦音樂的;今日頭條等新聞推薦應用已經充分說明了新聞推薦的力量;Netflix的電影推薦技術也為優酷/搜狐等視頻應用指明了道路。
  • Nature推薦:對付審稿人「強迫引用」,新方法來了
    ,發現約80名科學家「長期反覆地」操縱他人參考文獻列表;還有約16%的作者「可能在某種程度上參與了操縱論文引用。」 雖然新方法可發現審稿人的疑似強迫引用行為,但研究人員也表示,科學家往往會因為簡單的計量引用而得到獎勵,「這才是從根本上需要改變的」。
  • 引用半徑和引用影響半徑的確定
    一、引用半徑的確定    按坑道系統所佔範圍加以圈定,並使其等於一假想圓面積,此圓的半徑即為引用半徑(r0),亦稱「大井」半徑。不同幾何形態坑道系統引用半徑的計算公式見表1。表1  確定引用半徑(r0)的公式礦坑平面圖r0表達式公式符號說明
  • 深入了解The Graph
    目前,開發者可以在自己的基礎架構上運行一個Graph節點,也可以在我們的託管服務上開發一個。其中,開發者構建和部署從Web3數據源提取數據並為其編制索引的子圖。目前已經有許多領先的以太坊項目創建了子圖,包括Uniswap、ENS、DAOstack、Synthetix和Moloch等。
  • 引用參考文獻時et al.的用法
    當引述這樣的論文時,若使用哈佛系統(即名稱和發表年份),將會有一長串的名字,因此,大多數期刊推薦使用et al.,et al.的意思是「其他人」,為拉丁文「et alii」或「et aliae」的縮寫。引用參考文獻時,應該標明論文的多少位作者後才使用et al.呢?這方面,不同期刊有不同的做法。
  • Excel相對引用、絕對引用和混合引用
    上述例子中,我們稱D2:D7區域為從屬單元格,B2:C7區域為引用單元格,在上述下拉複製的過程中,從屬單元格與引用單元格的相對位置不變,這稱為相對引用。絕對引用繼續以上述表格為例,我們在D2中輸入公式「=B2*$C$2」,然後下拉複製算出結果,這時我們看到D7中公式變為「=B7*$C$2」,如下圖。在上述下拉複製的過程中,公式中的引用單元格,即「$C$2」絕對位置不變,這稱為絕對引用。
  • 揭秘佳緣用戶推薦系統
    佳緣用戶推薦系統天真的算法年:2011-20132011年8月我加入世紀佳緣,開始時主要負責佳緣的交友推薦系統優化,後來我這個團隊也負責其他的機器學習事情,比如佳緣的網警系統(抓惡意用戶)。剛來時團隊加上我只有3個人,做的事基本集中在推薦系統,以及對業務部門新產品的接口支持。
  • 帶你詳細深入了解薩德系統中威脅最大的相控陣雷達的工作原理
    帶你詳細深入了解薩德系統中威脅最大的相控陣雷達的工作原理 工程師2 發表於 2018-05-18 10:37:00 薩德反導系統,也叫THAAD,即末端高空防禦飛彈
  • 深入業務,打造行業背景下的BI系統
    如何打造行業背景下的BI系統?筆者認為需要做好這兩步:通過需求分析深入業務,明確係統解決的問題;以及,結合業務,整理源數據,制定指標和算法,設計展現形式,完成數據分析設計。在搭建BI(商業智能)系統時,通常有兩種選擇:一是選用市面上的BI產品;另一種則是自建BI系統。直接購買BI產品相比自建BI系統的優點是:能快速使用、更加成熟、節約成本。
  • 【科普知識】深入了解玻璃纖維
    因其作用和性能多樣,其組分相當複雜。在漏嘴出口到拉絲機上纖維卷取點的距離叫拉絲作業線,這段距離視工藝要求可以人為地規定得長些或短些。六、原絲烘乾為了減輕纖維與集束器和排線器等的接觸摩擦,並保護纖維的原形以及賦予纖維某些特殊性能,在拉製成型過程中必須對纖維外表面通過塗油輥或槽輪塗覆浸潤劑。這種浸潤劑可分澱粉型和增強型兩大類,前者用於紡織砂,後者用於增強型製品。他們通常都是水乳液。
  • 談談excel公式中的相對引用、絕對引用、混合引用
    這兩天一同事在拉帶公式的單元格時發現老出錯問我怎麼解決,我看了下原來他不理解相對引用、絕對引用、混合引用的用法,據了解還有不少同事不懂呢!今天就給那些還不理解相對引用、絕對引用、混合引用的同學補補課,科普下吧。
  • 深入了解工業應用的高性能RF MEMS開關
    打開APP 深入了解工業應用的高性能RF MEMS開關 發表於 2019-04-15 14:02:25 深入了解工業應用的高性能
  • 泰勒彩寶:帶您一分鐘深入了解藍寶石
    泰勒彩寶:帶您一分鐘深入了解藍寶石藍寶石和紅寶石同屬於剛玉族礦物,主要成分是鋁的氧化物,硬度為9,僅次於鑽石。藍寶石在《系統寶石學》上的定義是:即除去紅寶石以外的所有剛玉寶石,所以藍寶石的顏色十分豐富,千萬不要被「藍寶石」這個名稱給欺騙了。藍寶石的品質該如何判斷?