Author-Topic Model與ACT-LDA分析與解析
Generative Models for Document(文章的生成模型)
這裡的Document(文章)是包括兩部分:文章的作者集合,組成文章內容的單詞集合。例如:
Document 1表示為:
Document 2表示為:
我們將Document d的作者集合表示為,內容的單詞集合表示為。如 = {張三,李四} , = { good good study day day up } ;
= {王五,李四} , ={ search knowledge read more books }。
D 個 Document的集合C就可以表示為:
C = {(
下面解釋什麼是Generative Models for Document(文章生成模型)?
在我們的Author Topic Model(作者主題模型)中,每個author都對應一個在topics上的多項分佈 ,每個topic都對應一個在word(單詞)上的多項分佈。如圖:
那麼一個Document d的內容是如何生成的?
對於Document d中的每個word(單詞),首先從(作者集合)中等概率選擇一個作者,然後根據此作者在Topics上的概率分佈,隨機選擇一個Topic,最後根據這個Topic在words(單詞)上的概率分佈,隨機產生這個單詞。
每個Document都這麼做便生成了整個資料集合。
我們用個例子也解釋這個過程。
Document 1表示為:
對於第一個單詞good,它是這麼產生的:從= {張三,李四}中等概率隨機選擇一個作者,假設選中了“張三”,然後根據張三在Topics上的概率分佈(0.1,0.6,0.3)隨機選擇一個Topic,選中Topic2的可能性較大,假設選中了Topic2。再根據Topic2在words上的概率分佈,選擇word(單詞),這次正好選中了“good”。
Author Topic Model 認為所有Document的內容都是這樣生成的。而我們面臨的問題是,如果我們認可我們的資料集就是這麼產生的,反過來我們要推斷這個生成過程是怎樣的,即估計每個作者在Topic上的概率是如何分佈的,每個Topic在word(單詞)上的概率是如何分佈的。
Graph Model(圖模型)
下面我們討論Author Topic Model的Graph Model
我們這樣理解這幅圖:
箭頭理解為變數之間的條件依賴,如圖
條件依賴於w,或者說w概率生成。方框表示重複取樣(生成),次數在右下角標識,如上圖,重複取樣了N次。
在Author Topic Model中,Document(文章)中的單詞w,和共同作者都是已知的,或者說是可觀察的,在圖上表示為有填充的圓。
每個author都對應一個在topics上的多項分佈 ,圖中用表示。每個topic都對應一個在words(單詞)上的多項分佈,圖中用表示。
和都有一個對稱的 Dirichlet prior 。也就是和是依靠了先驗知識。A表示資料集合中作者的總個數,T是Topic的個數。
對於一個Document中的每個單詞,我們從(作者集合上的均勻分佈)中隨機取樣一個作者x,然後從和x對應的多項分佈中取樣一個Topic z,再從Topic z 對應的多項分佈中取樣一個單詞。取樣過程重複次,生成Document。D個Document重複這一過程,便生成了整個資料集。
Bayesian Estimation of the Model Parameters
模型引數的貝葉斯估計
在Author Topic Model 中,有兩組未知引數:author-topic 分佈,
和topic-word分佈。我們採用 Gibbs sampling 方法估計它們。
對於每個單詞,根據下面公式為其取樣author和topic。
這裡代表一篇文章中第i個單詞分配給第j個Topic和第k個作者。代表第i個單詞是詞典中第m個詞彙。代表除第i個單詞之外其餘單詞的Topic和Author分配。
表示單詞m在此次分配之前已經分配給Topic j的總個數。表示到目前為止,作者k分配給Topic j的總個數。
V是詞典的總個數(資料集合中所有不同單詞的個數),T是Topic 的個數。
在演算法估計期間,我們只需要追蹤兩個矩陣。一個是V x T(word
by topic)計數矩陣,另一個是K x T (author by topic)計數矩陣。
最後,我們根據這兩個計數矩陣估算author-topic 分佈和topic-word分佈。
演算法一開始為每篇文章中每個單詞隨機分配一個Topic,隨機分配一個作者(從這篇文章的作者集合中)。然後根據等式(1),對每篇文章中每個單詞進行取樣,取樣重複I次。
假設 V x T(word by topic)計數矩陣 ,K x T (author by topic)計數矩陣分別如下:
如何為“good”分配Topic和Author?
共有 {張三,Topic1}, {張三,Topic2},{張三,Topic3},
{李四,Topic1}, {李四,Topic2},{李四,Topic3} 六種可能。
這六種情況的概率是不一樣的,根據等式(1)
同理求出其餘情況的概率,根據這個概率分佈,隨機產生一種分配。
重複這一過程取樣每個單詞。
附錄:
在AT原始paper中有幅貝葉斯網路圖,想看懂這幅圖只需要一點貝葉斯網路的基礎知識就可以了,所以這裡把需要理解的地方列出來。
先舉一個例子:聯合概率P(a,b,c)=P(c|a,b)P(b|a)P(a)可以表示為如下圖
箭頭表示條件概率,圓圈表意一個隨機變數。這樣我們就可以很容易的畫出一個條件概率對應的貝葉斯網路。
對於更復雜的概率模型,比如
由於有N個條件概率,當N很大時,在圖中畫出每一個隨機變數顯然不現實,這是就要把隨機變數畫到方框裡:
這就表示重複N個tn.
在一個概率模型中,有些是我們觀察到的隨機變數,而有些是需要我們估計的隨機變數,這兩種變數有必要在圖中區分開:
如上圖,被填充的圓圈表明該隨機變數被觀察到並已經設為了被觀察到的值。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
###############################################
今天下午看到唐傑團隊作品ArnetMiner的話題分析部分用的是ACT topic model,搜到下面這篇文章。
《ACT-LDA:整合話題、社群和影響力分析的概率模型》 這篇文章2013年發表在期刊《電腦科學與探索》上。但是ArnetMiner的話題分析部分是09年做的,估計後來改用ACT-LDA模型了。 下面簡單介紹下ACT-LDA。 ACT-LDA的資料集:人的關係網+人的文件(該文件最好有多個作者,比如文件可以是論文,可以是微博(轉發的都算作者))。 ACT-LDA認為社群(community detection,或者可以認為是圖上的聚類)是話題的分佈,同時是人的分佈。相當於是說,一個話題可以屬於多個社群,一個人可以屬於多個社群。 看下這個概率圖模型:一篇文件的生成過程如下:1.先指定是屬於哪個社群(yd~Multinomial(a))。2.然後是生成文件裡的詞,生成文件的作者list。3.生成詞的過程是:假定詞的總數Nd從Possion分佈抽取。每個主題對應的詞的分佈phi~Dir(b)。首先抽取社群的話題分佈,C1~Dir(k1),對於每個詞,它的主題~Multinomial(C1).抽取了這個詞的主題theta_dn後,詞~Multinomial(phi). 4.生成作者List的過程是:假定作者數量Hd從Possion分佈抽取。每個社群對應的人的分佈C2~Dir(k2)。因為已經知道了文件屬於社群yd,所以Hd個人是從社群yd對應的C2裡抽取的。 這裡觀察到的變數是wdn,adh,隱變數是yd,C1,theta_dn,C2,phi, 引數是k1,b,a,k2。需要指出的是,社群數量Q和主題數量K都是事先指定。 原文用變分貝葉斯分拆隱變數的後驗概率,如下:
原文在SIGIR,NIPS,WWW,KDD4個會議上找了些文章,利用文章title和作者list生成資料集。作者指定社群數Q=4,話題數K=4. 後來進一步提出ACT-LDA+,認為會議可以看成文章的社群,在變分貝葉斯迭代的過程中增加yd屬於那個社群的概率。 我認為原文有幾點不足:1.coauthor之間是有序的,而原文的做法忽略了這種序關係。2.變分貝葉斯的分拆打斷了所有的隱變數之間的非獨立關係。 這個模型可以用HDP擴充套件成層次結構的社群。 ----------------- 最近又看到一篇結合主題模型與社群發現的論文。 《Topic-link lda:joint models of topic and author community》 ICML2009
原文基於一些觀察,假定2個文字是否連結與文字內容和作者所屬社群相關。 u是作者所屬社群,這裡alpha對所有作者都是一樣的,與作者本身無關(在Author-Topic model和Author-Recipient-Topic model裡每個作者一個alpha),因此能處理大規模資料集,而且如果作者們都在一個小領域內的話這樣更合理。 G是觀察到的連結,服從伯努利分佈,引數是,它是根據實際資料猜應該是對數線性函式, 用變分貝葉斯,也是把u,z,theta3個隱變數看成獨立的。 可以用來做連結預測和社群發現。
--------------------------- 最近又瞄到一篇類似的工作,《The Author-Topic Model for Authors and Documents》 Griffiths 04年的。 圖模型如上。 對於每篇文擋,它的作者列表ad已知。對於每個詞,先抽一個作者出來,然後根據該作者的主題分佈抽一個主題出來,然後根據主題抽一個詞出來。 具體我沒看,文章後面提出該方法能用於智慧指派, given an abstract of a paper and a list of the authors plus their known past collaborators, generate a list of other highly likely authors for this abstract who might serve as good reviewers. 主要是利用author的主題分佈算author之間的KL距離。 ------------------------------------------------- 《A Bayesian Framework for Community Detection Integrating Content and Link》