直觀理解 LDA (Latent Dirichlet Allocation) 與文件主題模型

TengYuan Chang
6 min readFeb 8, 2019

論文出處:Probabilistic Topic Models

隨著所有的資訊都被電子化,我們越來越容易被大量的資訊淹沒,而難以找到有效率的尋找,整理和理解大量的資訊。當今,我們主要透過兩種方式來和網路上的資訊互動:搜尋以及連結。我們會在搜尋引擎中輸入關鍵字,找到相關的文件,然後再透過文件之間的連結,找到更多其他的資訊。不僅 Google 搜尋引擎是基於這樣的邏輯打造的,如果妳有經營網站或部落格,要讓自己的內容被找到,整個 SEO 的基礎理論,也是基於這樣的行為所建構。

試想有沒有另外一種方式來更有效地處理網路上的資訊:每個網頁都被賦予多個不同層次的主題,在搜尋時,我們其實是從主題出發,確認這是不是我們感興趣的,並往下找到更細的分類,或是其他類似的主題,或是這個主題隨著時間的變化。透過這樣的方式,我們可以更有效且更為規模化地來消化及整理,搜索網路上的文本,而這,就是所謂的文件主題模型 (Topic Model)。文件主題模型採用非監督式學習的方式,不事先地人為去做標籤與註解,訓練的資料直接從文本而來,這讓我們有機會可以十分規模化地整理並摘要大量的文本,而其中最為知名的,就是 LDA。

LDA (Latent Dirichlet Allocation,中文可譯作隱含 Dirichlet 配置模型)

LDA 有兩個基本的原則:

  • 每篇文件都是由數個「主題 (Topic)」所組成
  • 每個主題都可以使用數個重要的「用詞 (Word)」來描述,且相同的用詞可同時出現在不同的主題之間。

以上面的文件作為範例,我們將這篇文章拆解成三個主題:

  • Data analysis (藍色): 例如 “computer” 和 “prediction”
  • Evolutionary biology (粉紅色): 例如 “life” 和 “organism”
  • Genetics (黃色): 例如 “sequenced” 和 “genes”

主題會在最一開始就決定好,甚至在還沒有文件時就已決定好主題,而每一篇文件的用詞則透過兩步驟的方式產生:

  1. 隨機的選取一個主題分佈
  2. (1) 從步驟一的主題分佈中,隨機選取其中一個主題 (2) 從此主題中,隨機的選取一個字詞

主題的數目是固定的,而不同的文件是由不同比例的各個主題組合而成。文件主題模型最核心要回答的問題,就是如何透過文件找到背後隱含的主題的結構。下圖即為分析 17,000 篇文件,並定義 100 個主題,使用 LDA 模型分析後產出的結果,左邊為主題的分佈,右邊為最頻繁出現的主題中,出現次數最多的前 15 個用詞。

用較生活化的例子來理解 LDA

想像今天你剛搬到一個台北,你是個宅宅,喜歡看二次元漫畫和打電玩,想知道台北有哪些宅宅的集散地,但跟朋友圈都還不熟,沒辦法直接開口問,此時你該怎麼做呢?

你找了台北市的幾個地區 (文件),並且觀察幾個認識的朋友 (用詞) 都在哪些地區出沒。不過因為你是新來的,所以你不知道那些地區有什麼特性 (主題),你也不清楚幾個朋友他們有什麼興趣 (主題)。

所以你決定了五個你覺得重要的類別來觀察,想知道這幾位分別被歸在哪一個類別,並透過觀察與猜測來幫他們歸類。舉例來說,你看到大雄出現在光華商場,推測他在那邊是因為大雄其實是個文青,去完華山順便去光華商場買東西;看到宜靜出現在信義區,推測那是因為她要和類別為好野人的阿福約在那邊吃飯。

剛開始肯定會猜不太準,但可以想辦法改善,比如說

  • 選定一個地區和一個朋友。比如說光華商場和大雄
  • 為什麼大雄會出現在光華商場附近,也許是其他也在光華商場的人和大雄都有類似的興趣。但仔細一看,比起文青,他們更像是喜歡電器的宅宅
  • 換句話說,有越多喜歡電器的人出現在光華商場,代表大雄和他們的興趣類別越相近,也代表大雄出現在光華商場是因為他對電器商品有極大的熱情
  • 所以,如果要你再猜一次,大雄為什麼會出現在光華商場,有比較大的機率是因為他是宅宅,而不是個文青!

反覆地觀察每個地區和每個人,並不斷地修正猜測,然後得到你想要的資訊:

  • 透過觀察同一個類別中的其他人,可以了解怎樣的人會被加入到這個類別中。舉例來說,如果你看到宜靜以及其他很多拿著手機自拍的年輕女生在某個類別中,你可能會把 “網美” 與這個類別做關聯
  • 對每個地區,你可以計算出會出現在某個地方的人的興趣的比例分佈,並用這個比例分佈來代表該地區。舉例來說,你可以計算出會出現在信義區的人,其中有 50% 的愛購物的人,30% 愛看電影的人,15% 的網紅,以及 5% 的宅宅。

這就是 LDA 的基本精神,事先定義好有限的興趣 (主題),並透過觀察地區 (文件) 與朋友 (用詞) 來計算出主題之間的關聯,以及各個文件的主題分佈,如此一來,只要文件夠多,就可以有效的快速理解不同文件的主題分佈,而網路上,最不缺的就是文件的數量。

LDA 的優缺點

LDA 有幾個優點:快速,直觀且容易理解,且可用來預測沒看過的文件中的主題。而他的缺點是需要對模型做不少人為的微調。模型的評估與驗證,以及如何較有效的呈現結果以及提供更好的互動方式給使用者,都會是未來研究發展的重點。

LDA 雖然從提出到至今已超過 10 年的時間,但導入快速的優點讓她仍舊被廣泛採用,例如 Airbnb 就使用她來理解用戶 App 內的訊息並從中歸納出用戶的意圖

以下文章介紹 Airbnb 如何應用 LDA 來理解和分類 app 內的用戶訊息:

參考資料:

  1. Introduction to Latent Dirichlet Allocation
  2. LDA Topic Models
  3. Text Mining with R

--

--

No responses yet