1. 程式人生 > >Author-Topic Model與ACT-LDA分析與解析

Author-Topic Model與ACT-LDA分析與解析

Generative Models for Document(文章的生成模型)

這裡的Document(文章)是包括兩部分:文章的作者集合,組成文章內容的單詞集合。例如:

Document 1表示為:

clip_image001

Document 2表示為:

clip_image002

我們將Document d的作者集合表示為clip_image004,內容的單詞集合表示為clip_image006。如 clip_image008= {張三,李四} ,clip_image010 = { good good study day day up } ;

clip_image012= {王五,李四} , clip_image014={ search knowledge read more books }。

D 個 Document的集合C就可以表示為:

C = {(

clip_image010[1],clip_image008[1]), (clip_image014[1],clip_image012[1]), ……,(clip_image016,clip_image018)}。

下面解釋什麼是Generative Models for Document(文章生成模型)?

在我們的Author Topic Model(作者主題模型)中,每個author都對應一個在topics上的多項分佈 ,每個topic都對應一個在word(單詞)上的多項分佈。如圖:

image

那麼一個Document d的內容是如何生成的?

對於Document d中的每個word(單詞),首先從clip_image004[1](作者集合)中等概率選擇一個作者,然後根據此作者在Topics上的概率分佈,隨機選擇一個Topic,最後根據這個Topic在words(單詞)上的概率分佈,隨機產生這個單詞。

如果Document d 中的單詞有clip_image021個,這個過程要重複clip_image021[1]次。

每個Document都這麼做便生成了整個資料集合。

我們用個例子也解釋這個過程。

Document 1表示為:

clip_image001[1]

對於第一個單詞good,它是這麼產生的:從clip_image008[2]= {張三,李四}中等概率隨機選擇一個作者,假設選中了“張三”,然後根據張三在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

clip_image023

我們這樣理解這幅圖:

箭頭理解為變數之間的條件依賴,如圖

clip_image025

clip_image027條件依賴於w,或者說w概率生成clip_image027[1]。方框表示重複取樣(生成),次數在右下角標識,如上圖,重複取樣了N次。

在Author Topic Model中,Document(文章)中的單詞w,和共同作者clip_image029都是已知的,或者說是可觀察的,在圖上表示為有填充的圓。

每個author都對應一個在topics上的多項分佈 ,圖中用clip_image031表示。每個topic都對應一個在words(單詞)上的多項分佈,圖中用clip_image033表示。

clip_image031[1]clip_image033[1]都有一個對稱的 Dirichlet prior clip_image035。也就是clip_image031[2]clip_image033[2]是依靠了先驗知識。A表示資料集合中作者的總個數,T是Topic的個數。

對於一個Document中的每個單詞,我們從clip_image029[1](作者集合上的均勻分佈)中隨機取樣一個作者x,然後從和x對應的多項分佈clip_image031[3]中取樣一個Topic z,再從Topic z 對應的多項分佈clip_image033[3]中取樣一個單詞。取樣過程重複clip_image021[2]次,生成Document。D個Document重複這一過程,便生成了整個資料集。

Bayesian Estimation of the Model Parameters

模型引數的貝葉斯估計

在Author Topic Model 中,有兩組未知引數:author-topic 分佈clip_image031[4]

和topic-word分佈clip_image033[4]。我們採用 Gibbs sampling 方法估計它們。

對於每個單詞,根據下面公式為其取樣author和topic。

clip_image039

這裡clip_image041代表一篇文章中第i個單詞分配給第j個Topic和第k個作者。clip_image043代表第i個單詞是詞典中第m個詞彙。clip_image045代表除第i個單詞之外其餘單詞的Topic和Author分配。

clip_image047表示單詞m在此次分配之前已經分配給Topic j的總個數。clip_image049表示到目前為止,作者k分配給Topic j的總個數。

V是詞典的總個數(資料集合中所有不同單詞的個數),T是Topic 的個數。

演算法估計期間,我們只需要追蹤兩個矩陣。一個是V x T(word

by topic)計數矩陣,另一個是K x T (author by topic)計數矩陣。

最後,我們根據這兩個計數矩陣估算author-topic 分佈clip_image031[5]和topic-word分佈clip_image033[5]

clip_image051

clip_image053表示Topic j 使用單詞 m 的概率

clip_image055表示作者k 在Topic j 的概率

演算法一開始為每篇文章中每個單詞隨機分配一個Topic,隨機分配一個作者(從這篇文章的作者集合中)。然後根據等式(1),對每篇文章中每個單詞進行取樣,取樣重複I次。

假設 V x T(word by topic)計數矩陣 clip_image057,K x T (author by topic)計數矩陣clip_image059分別如下:

clip_image057[1]

image clip_image059[1]

clip_image061 Document 1表示為:

clip_image001[2]

如何為“good”分配Topic和Author?

共有 {張三,Topic1}, {張三,Topic2},{張三,Topic3},

{李四,Topic1}, {李四,Topic2},{李四,Topic3} 六種可能。

這六種情況的概率是不一樣的,根據等式(1)

clip_image063同理求出其餘情況的概率,根據這個概率分佈,隨機產生一種分配。

重複這一過程取樣每個單詞。

最後根據等式(2)和(3)求出clip_image031[6]和 clip_image033[6]

附錄:

在AT原始paper中有幅貝葉斯網路圖,想看懂這幅圖只需要一點貝葉斯網路的基礎知識就可以了,所以這裡把需要理解的地方列出來。

先舉一個例子:聯合概率P(a,b,c)=P(c|a,b)P(b|a)P(a)可以表示為如下圖

clip_image065

箭頭表示條件概率,圓圈表意一個隨機變數。這樣我們就可以很容易的畫出一個條件概率對應的貝葉斯網路。

對於更復雜的概率模型,比如

clip_image067

由於有N個條件概率,當N很大時,在圖中畫出每一個隨機變數顯然不現實,這是就要把隨機變數畫到方框裡:

clip_image025[1]

這就表示重複N個tn.

在一個概率模型中,有些是我們觀察到的隨機變數,而有些是需要我們估計的隨機變數,這兩種變數有必要在圖中區分開:

clip_image069

如上圖,被填充的圓圈表明該隨機變數被觀察到並已經設為了被觀察到的值。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

###############################################

 今天下午看到唐傑團隊作品ArnetMiner的話題分析部分用的是ACT topic model,搜到下面這篇文章。

ACT-LDA:整合話題、社群和影響力分析的概率模型   這篇文章2013年發表在期刊《電腦科學與探索》上。但是ArnetMiner的話題分析部分是09年做的,估計後來改用ACT-LDA模型了。   下面簡單介紹下ACT-LDA。   ACT-LDA的資料集:人的關係網+人的文件(該文件最好有多個作者,比如文件可以是論文,可以是微博(轉發的都算作者))。   ACT-LDA認為社群(community detection,或者可以認為是圖上的聚類)是話題的分佈,同時是人的分佈。相當於是說,一個話題可以屬於多個社群,一個人可以屬於多個社群。   看下這個概率圖模型: ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model

 一篇文件的生成過程如下: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都是事先指定。   原文用變分貝葉斯分拆隱變數的後驗概率,如下: ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model
   原文在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 ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model
原文基於一些觀察,假定2個文字是否連結與文字內容和作者所屬社群相關。 u是作者所屬社群,這裡alpha對所有作者都是一樣的,與作者本身無關(在Author-Topic model和Author-Recipient-Topic model裡每個作者一個alpha),因此能處理大規模資料集,而且如果作者們都在一個小領域內的話這樣更合理。 G是觀察到的連結,服從伯努利分佈,引數是ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model,它是根據實際資料猜應該是對數線性函式,ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model 用變分貝葉斯,也是把u,z,theta3個隱變數看成獨立的。 可以用來做連結預測和社群發現。

--------------------------- 最近又瞄到一篇類似的工作,《The Author-Topic Model for Authors and Documents》 Griffiths 04年的。 ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model 圖模型如上。 對於每篇文擋,它的作者列表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》