factor(a function/table)是對於variables(the scope of the factor)的某種combination的fitness。在BN中factor就是conditional probability distribution(CPD);但factor並不總對應着某種概率(當然也不一定取0~1),比如說在MRF中。和數據庫table的操作類 似,factor上的基本操作有factor product ,factor marginalization & factor reduction。
實際中最常用的模型大概是含有shared structure和shared parameters的模型,比如說NLP里面的sequence model,舉一個做Named entity recognition的例子,聯系着latent變量的參數(type of entity),是independent of the place and the sequence的(假設position in the sequence與參數無關),這樣的好處是:
- reuse of parameters
- allow us to apply the same model to sequences of varying length
Template models are languages that specify how variables inherit dependency model from template(representation that allows us to solve multiple problems using the same exact model)
==============================================
Online Bayesian Probit Regression介紹之Factor Graph
Factor Graph 是概率圖的一種,概率圖有很多種,最常見的就是Bayesian Network (貝葉斯網絡)和Markov Random Fields(馬爾可夫隨機場)。在概率圖中,求某個變量的邊緣分布是常見的問題。這問題有很多求解方法,其中之一就是可以把Bayesian Network和Markov Random Fields 轉換成Facor Graph,然后用sum-product算法求解。
基於Factor Graph可以用sum-product算法可以高效的求各個變量的邊緣分布。
sum-product算法,也叫belief propagation,有兩種消息,一種是變量(Variable)到函數(Function)的消息(就是方塊到圓的消息):m:x→f,另外一種是函數(Function)到變量(Variable)的消息:m:f←xmf→x
===========================================
關於factor graph
所謂factor graph(因子圖),就是對函數因子分解的表示圖,一般內含兩種節點,變量節點和函數節點。我們知道,一個全局函數能夠分解為多個局部函數的積,因式分解就行了,這些局部函數和對應的變量就能體現在因子圖上。比如,我現在有一個全局函數,其因子分解方程是
那么我們將其寫成方便表示的
其對應的factor graph如下:
圖等價於:
在因子圖中,所有頂點,要不然就是變量節點不然就是函數節點,邊線表示他們之間的函數關系。在講解朴素貝葉斯和馬爾可夫的時候,我們變線上標注的符 號,也就是Psi函數表示符號,就是表示我們模型中x和y的聯系函數。Psi函數在不同的環境下有着不同的含義,因此解釋這種東西總是比較棘手的。在動態模型里面,或者任何其他的圖概率模型,都是可以用因子圖表示的,而Psi在這里,表征的通常都是概率或者條件概率。 因子圖和Psi函數表示法,在machine learning的paper中是比較常用的。
勢函數解釋:
注:應一些朋友要求把勢函數再講一下。我們說像上圖這種鏈式CRF的情況,可以把勢函數理解為聯合概率密度的歸一化分解因子,勢函數的作用域都是圖的一個最大分團(Maxima clique)。 每一個學過圖論的朋友都應該聽說過clique這個概念,對於給定圖G=(V,E)。其中,V={1,…,n}是圖G的頂點集,E是圖G的邊集。圖G的團 就是一個兩兩之間有邊的頂點集合。如果一個團不被其他任一團所包含,即它不是其他任一團的真子集,則稱該團為圖G的極大團(maximal clique)。頂點最多的極大團,稱之為圖G的最大團(maximum clique)。請參見WIKI解釋。實際上,理論上講,如果不是鏈式CRF,那么勢函數表示的就是一個圖中的每一個團,而不是最大團。
學術化一點講,勢函數是一個表示其對應的clique狀態的非負實值函數,表征的是該clique的狀態。舉個例子,對於馬爾可夫網絡來說,其聯合概率分布可以看成
這里的x(k)就表示第k個clique的狀態,或者說是出現在這個clique之中的變量的狀態。
對於一個圖中的每一個clique來講,它有一個狀態,用勢函數表示,狀態則是由多個feature的加權和構成,因為一個clique是包含多個 節點的,每個節點,其對應的隨機變量,都會對應一個feature。文章后面就會提到,我們分析時候選用最簡單的二元模型來當作每一點的feature。
對,這就是隱馬爾可夫模型的因子圖。
================================================