An Introduction to Conditional Random Fields[條件隨機場介紹]
An Introduction to Conditional Random Fields
By Charles Suttonand Andrew McCallum
文獻網址:http://homepages.inf.ed.ac.uk/csutton/publications/crftut-fnt.pdf
[譯]條件隨機場介紹
By wttttt
2.Modeling建模
本節我們從建模的角度描述CRFs,解釋一個條件隨機場是如何將結構化輸出的分佈表示成一個高維輸入向量的函式的。CRFs可以被理解成logistic迴歸分類器到任意圖形結構的一種擴充套件,或者理解成結構化資料的生成模型的判別模擬,比如說隱馬爾科夫模型(生成模型)。
我們首先對圖模型做一個簡要的介紹(2.1節),接著描述NLP(自然語言處理)中的生成和判別模型(2.2節)。然後我們將呈現條件隨機場的正式定義,既包括常用的線性鏈案例(2.3節),也包括通用圖結構(2.4節)。由於一個條件隨機場的精度強烈地依賴於所使用的特徵,因此我們也描述一些用於工程特徵的常用技巧(2.5節)。最後,我們介紹CRFs的兩個應用示例(2.6節),以及關於CRFs的典型應用領域的一個更廣闊的調研。
2.1圖形建模
圖模型是用於多變數概率分佈的一個有力的表示和推斷框架。它已經在多個隨機建模領域被證明是有效的,包括程式設計理論,計算機視覺,知識表示,貝葉斯統計以及自然語言處理。
多變數分佈的表示是昂貴的。舉例來說,n個二進位制變數的聯合概率表需要O(2^n)級別的浮點數儲存。圖形建模觀點的視角是多變數的分佈常常可以被表示為區域性函式的乘積,每個區域性函式取決於一個更小的變數子集。這種因式分解結果是與變數之間確定的條件依賴關係有了緊密的連線—兩種型別的資訊都容易地被概括成一個圖。確實,這種因式分解之間的關係,條件依賴,以及圖結構幾乎構成了大部分的圖形建模框架:條件依賴的視角對模型設計是最有用的,因式分解的視角對推論演算法設計是最有用的。
本節接下來的部分,我們將從因式分解和條件依賴的角度介紹圖模型,主要關注基於無向圖模型。一個更細節的現代圖形建模方法以及精確地推論可以參考Koller和Friedman的著作。
2.1.1無向圖
我們考慮隨機變數集合Y的概率分佈。我們通過整數s∈1,2,…,|Y| 索引這些變數。每個Ys∈Y來自集合Y,Ys可以是連續或離散的,儘管我們在這次研究中僅考慮離散的情況。Y的一個隨機賦值表示為向量y。給定一個變數Ys∈Y,符號ys表示y內分配給Ys的值。記號1{y=y’}表示y的指示函式,當y=y’時取值為1,否則取值0。我們還需要邊緣化符號。對於一個給定的變數賦值ys,我們使用和∑y\ys來表示所有可能的賦值y的和,其中y對於變數Ys的值是ys。
假設我們相信一個概率分佈p可以被表示成ψa(ya)形式的因子的乘積,其中a是1到A範圍的整數索引。每一個因子ψa僅取決於變數子集Ya⊆Y。ψa(ya)是一個非負標量,它可以被認為是ya之間的相容度量值。有高相容性的值之間將有更高的概率。因式分解可以允許我們更有效地表示p,因為集合Ya可能比全變數集Y小很多。
一個無向圖模型是概率分佈的家庭,根據每個給定的因子集合進行因式分解。正式地,給定一個Y的子集集合{Ya}(a=1 to A),一個無向圖模型是所有分佈的集合,它可以被寫作
對於任意選擇的因子F = {Ψa},其對所有的ya有Ψa(ya)≥0。(因子也被稱為區域性函式或相容性函式。)我們將使用術語隨機場來通過一個無向圖模型來定義的一個特別的分佈。
常量Z是歸一化因子,為了保證分佈p的和為1.它被定義為
Z被認為是因子集合的函式,它也被稱為配分函式(譯者注:partition function)。注意到(2.2)的求和式是基於指數級別的y的可能賦值。由於這個原因,Z的計算通常是棘手的,但是很多現有的工作是關於如何估計它的(參見第4節)。
術語“圖模型”的由來是因式分解(2.1)可以利用圖來簡潔地表示。一個非常自然地形式是通過因子圖(譯者注:factor graphs)。一個因子圖是一個雙向圖G=(V, F, E),圖中一個點集V={1,2,…,|Y| }指示模型的隨機變數,圖中其它點集F={1,2,…A}指示因子。圖的語義學是,如果一個變數點Ys(s∈V)與一個因子點Ψa(a∈F)相連,那麼Ys是Ψa的一個引數(譯者注:argument)。因此一個因子圖直接地描述了一個分佈p是如何分解成區域性函式的乘積的。
我們正式地定義這個概念--一個因子圖是否“描述”了一個給定的分佈。用N(a)表示索引為a的因子的鄰居。那麼:
定義2.1 如果存在因子圖G的一個區域性函式集合Ψa以至於p可以寫作如下形式,那麼分佈p(y)可依據G進行分解
一個因子圖G以同樣的方式描述一個無向圖模型。在(2.1),使用子集集合作為鄰居集合s {YN(a)|∀a ∈ F}。從定義(2.1)匯出的無向圖模型就是根據圖G因式分解得到的分佈集合。
舉例來說,圖2.1顯示了一個有三個隨機變數的因子圖的例子。圖中,圓圈是變數點,陰影框是因子點。我們已經根據變數和因子的索引為點貼上了標籤。這個因子圖描述了三個變數的所有的分佈p的集合,它可以變寫作p(y1,y2,y3)=Ψ1(y1,y2)Ψ2(y2,y3)Ψ3(y1,y3),對所有的y = (y1,y2,y3)。
圖模型的因式分解和變數之間的條件依賴之間存在緊密的聯絡。這種聯絡可以通過一個被稱作馬爾科夫網路的不同的無向圖來理解,馬爾科夫網路直接地表示了多變數分佈中的條件依賴關係。馬爾科夫網路僅僅基於隨機變數,而非隨機變數和因子。用G表示一個無向圖,其頂點V={1,2,…,|Y|}索引每一個隨機變數。對於一個變數索引s∈V,用N(s)表示它在G中的鄰居。如果分佈p滿足區域性馬爾可夫特性,那麼我們說p是關於G的馬爾科夫。區域性馬爾可夫性:對任意兩個變數Ys, Yt ∈Y,變數Ys在它的鄰居YN(s)下條件獨立於Yt。直覺地,這意味著YN(s)本身包含了預測Ys所需的所有有用資訊。
按照(2.1)給定一個分佈p的因式分解,一個相應的馬爾科夫網路可以通過連線所有共享同一個區域性函式的變數對來構建。
一個馬爾科夫網路從因式分解的角度來看是由不良的歧義的。考慮如圖2.2(左)所示的三節點馬爾科夫網路。任意的分佈因式分解成p(y1,y2,y3) ∝f(y1,y2,y3),f為正函式,對於該圖就是馬爾可夫的。然而,我們可能希望使用一個更嚴格的引數化形式,即p(y1,y2,y3) ∝ f(y1,y2)g(y2,y3)h(y1,y3)。圖中的第二種模型家族是第一種的嚴格子集,因此在這個更小的家族裡我們可能不需要那麼多的資料來精確地估計分佈。但是馬爾可夫網路形式不能夠分辨這兩種引數化形式。相比之下,因子圖更準確地描述了因式分解。
2.1.2 有向圖
無向模型中的區域性函式不需要直接地概率解釋,一個有向概率模型描述一個分佈是如何因式分解成區域性條件概率分佈的。G是一個有向無環圖,其中π(s)是G中的Ys雙親[譯者注:parents]的索引。一個有向圖模型是一個分佈家族,它可以被分解為:
我們將分佈p(ys|yπ(s))作為區域性條件分佈。注意π(s)對沒有雙親的變數可以是空的。在這種情況下p(ys|yπ(s))可以被理解成p(ys)。
可以通過感應來表示p被正確地歸一化。有向模型可以被認為是一種因子圖,圖中個體因子都通過特殊方式被區域性歸一化了,以至於因子等於變數子集下的條件分佈,並且歸一化變數Z=1。有向模型經常被用作生成模型,我們將會在2.2.3節解釋。一個有向模型的例子是樸素貝葉斯模型(2.7)。
2.1.3 輸入和輸出
該研究考慮我們預先知道要預測的變數的場景。模型中的變數將會被劃分成輸入變數X的集合,X我們假設總是可觀測的,另一個是輸出變數的集合Y,Y是我們希望預測的。例如,一個賦值x可能表示句子中所出現的每個單詞的向量,y表示每個單詞的語音標籤向量。
我們隊構建變數X∪Y的聯合分佈感興趣,我們將擴充套件之前的標號來適應這個。例如,基於X和Y的無向模型:
其中每個區域性函式Ψa取決於兩個變數子集Xa ⊆ X 以及 Ya ⊆ Y。歸一化常量變成
其中包括了所有x,y取值的和。
2.2 生成模型Vs判別模型
本節我們討論一些已用於自然語言處理的簡單圖模型的例子。儘管這些例子已經廣為人知,它們仍然可以使上一節的定義清楚化,並且闡述一些我們將會再次在CRFs的討論中提及的一些想法。我們會特別關注隱馬爾科夫模型,因為它與線性鏈條件隨機場關係密切。
本節的主要目的之一是比較生成模型和判別模型。我們將要討論的模型中,兩個是生成模型(樸素貝葉斯和HMM),一個是判別模型(logistic迴歸)。生成模型是描述一個標籤向量y如何概率的“生成“特徵向量x的模型。判別模型致力於相反的方向,直接地描述如何對一個特徵向量x賦予標籤y。原理上,使用貝葉斯準則,每一種型別的模型都可以被轉化為其他型別,但是實際上這些方法是有區別的,正如我們將在2.2.3節討論的,每一種都有潛在的優點。
2.2.1 分類
首先我們討論分類問題,也即,給定特徵x=(x1,x2,...,xK),預測一個單一離散類別y。一個簡單地實現方法是假設一旦標籤類別已知,所有的特徵是獨立的。這樣得到的分類器稱作樸素貝葉斯分類器。它是基於聯合概率模型:
該模型可以通過有向圖來描述,如圖2.3(左)。我們也可以將這個模型寫作因子圖的形式,通過定義Ψ(y) = p(y),對每個特徵xk定義因子Ψk(y,xk) = p(xk|y)。該因子圖如圖2.3(右)。
另一種著名的被自然地表示成圖模型的分類器是logistic迴歸(有時在NLP社群被稱作最大熵分類器)。該分類器是出於每個類的對數概率logp(y|x)是x的線性函式加上一個歸一化常數的假設。這形成了條件分佈:
其中 是歸一化常數項,θy是偏差權重,就像樸素貝葉斯中的logp(y)。不同於對每個類使用一個權重向量,如(2.8)所示,我們可以使用一個不同的記號,其中權重的單一集合可以在所有類別中共享。訣竅就是定義一個只對單一類非零的特徵函式集合。為了做到這個,特徵函式可以被定義為作為特徵權重,作為偏差權重。現在我們可以使用fk來索引每個特徵函式,使用θk來索引其相應的權重。使用這種記號技巧,logistic迴歸模型變成了:
我們引入這種記號因為它反射了我們將會呈現的CRFs的記號。
2.2.2 序列模型
分類器僅僅預測一個單一類變數,但是圖模型的真正力量在於它們建模多個互相關變數的能力。本節,我們討論依賴的最簡單形式,其中圖模型的輸出變數按序列排序。為了誘發這個模型,我們討論自然語言處理中的一個模型,命名實體識別(NER)任務。NER是個辨認和分類文字中的正確名字的問題,名字包括位置,比如中國;任命,比如喬治;以及組織,比如聯合國等。命名實體識別任務是給定一個句子,分割實體詞語,並將其按類別分類。該問題的挑戰在於,許多命名實體字串出現頻率太低,甚至在一個巨大的訓練集中,因此係統必須基於上下文來識別它。
NER的一個方法是獨立分類每一個詞作為人名、位置、組織或其他(意味著不是一個實體)中的一個。該方法的問題是它假定對給定輸入,所有的命名實體都是獨立的。事實上,相鄰單詞的命名實體標籤是相互依賴的;例如,New York是一個位置,而New York Times是一個組織。放鬆這種獨立假設的一個方法是將輸出變數組織成一個線性鏈。這就是隱馬爾可夫模型所使用的方法。HMM通過假定存在一個隱藏狀態序列來建模一個觀測序列。令S為有限的可能狀態,O為優先的可能觀測,也即,對所有的t 有xt ∈ O 及yt ∈ S。
為了建模聯合分佈p(y,x),HMM做了兩個獨立假設。第一,它假設每一個狀態僅僅依賴於它當前的前身(immediate predecessor),也即每一個狀態yt在給定yt-1的情況下與y1,y2,…,yt-2獨立。第二,它還假設每一個觀測變數xt僅取決於當前狀態yt。基於這些假設,我們可以使用三個概率分佈詳述HMM
為了簡化上述等式中的記號,我們建立一個“仿製”初始狀態y0。這允許我們將初始分佈p(y1)寫作p(y1|y0)。
HMM已經被用於許多自然語言處理中的額序列標籤任務中了,比如詞性標註,命名實體識別以及資訊提取。
2.2.3 比較
生成模型和判別模型都描述了(y,x)上的分佈, 但是它們致力於不同的方向。生成模型,比如樸素貝葉斯分類器和HMM,是聯合分佈的家族,可以被分解成p(y,x) = p(y)p(x|y),也即它描述了給定標籤,如何取樣,或“生成”特徵值。判別模型,比如logistic迴歸模型,是條件分佈p(y|x)的家族,也即分類規則被直接建模。原則上,判別模型也可以被用來獲取聯合分佈p(y,x),通過提供一個邊緣分佈p(x),但這很少需要。
生成和判別模型主要的概念不同在於條件分佈p(y|x)不包括p(x)的模型,其對分類而言是不需要的。建模P(x)的困難在於它常常含有高依賴性的難以建模的特徵。比如,在名稱實體識別中,一個樸素的HMM的應用僅依賴於一個特徵。但是很多詞語,尤其是正確地名稱將不會出現在訓練集中,因此詞身份特徵是沒有資訊量的。為了標註不可見的詞語,我們將利用詞的其他特徵,比如它的資本化、鄰居詞語、字首、字尾等。
判別模型的主要優點是它更適用於豐富的、交疊的特徵。為了理解這個,考慮樸素貝葉斯分佈家族(2.7)。這是一個聯合分佈的家族,其中的條件均具有“logistic迴歸形式”(2.9)。但是存在許多其他聯合模型,一些x之間有複雜的依賴關係,它們的條件分佈仍然具有(2.9)的形式。通過直接建模條件分佈,我們可以保留對p(x)形式的不可知。判別模型,例如CRFs,做了y之間條件獨立的假設,以及y如何依賴於x的假設,但是沒有對x之間的條件獨立性做假設。這個觀點可以通過圖來理解。假設我們有一個因子圖代表聯合分佈P(y,x)。如果我們接著構造一個條件分佈p(y|x)圖,任何僅依賴於x的因子從圖結構中消失。它們是條件不相關的,因為它們是關於y的常數。
為了概括生成模型中特徵的互相關性,我們有兩個選擇。第一個選擇使增強模型來表示輸入之間的相關性,比如通過加入每個xt之間的有向邊。但是這通常是很難實現。例如,很難想象如何對詞的大寫和詞的字尾之間建模,我們也特別不希望這麼做,因為我們總是觀察測試句子。
第二個選擇是簡化互相關性假設,比如樸素貝葉斯假設。例如,帶有樸素貝葉斯假設的HMM模型將會有p(x,y) =的形式。這種想法有時會很有效。但是它也可能有問題,因為獨立性假設會影響效能。例如,儘管樸素貝葉斯分類器在文件分類上表現很好,但是它在很多應用上效能平均比logistic迴歸要差。
並且,樸素貝葉斯會產生差的概率估計。作為一個解釋性的例子,設想在兩個特徵重複的分類問題上訓練樸素貝葉斯,也即,給定一個原始特徵向量x=(x1, x2,…xk),我們將其轉化為x’=(x1,x1,x2,x2,…xk,xk),然後運樸素貝葉斯。儘管資料集中沒有新增新的資訊,這個轉化會增加概率估計的信心,通過這個樸素貝葉斯對於p(y|x’)的估計比起p(y|x)會遠離0.5。
當我們生成序列模型時,類似樸素貝葉斯的假設變得尤其有問題,因為推論會合並模型不同部分的證據。如果每個序列位置的標籤概率估計都是自信的,那麼合理地合併它們將是困難的。
樸素貝葉斯和logistic迴歸之間的不同僅僅在於第一個是生成模型而第二個是判別模型;這兩個分類器對離散輸入在所有其他方面都是一樣的。樸素貝葉斯和logistic迴歸考慮同一個假設空間,因此任意logistic迴歸可以轉換成一個有相同決策邊界的樸素貝葉斯分類器,反之亦然。另一個說法是樸素貝葉斯模型(2.7)與logistic迴歸模型(2.9)定義了相同的分佈家族,我們可以這樣闡述:
這意味著如果樸素貝葉斯模型(2.7)依據最大條件似然來訓練,我們將會得到和logistic迴歸一樣的分類器。相反,如果logistic迴歸模型生成地解釋成(2.11)的形式,並且通過聯合似然p(y,x)最大化來訓練,那麼我們將得到和不鋪貝葉斯一樣的分類器。在Ng andJordan[98]的術語中,樸素貝葉斯和logistic迴歸組成了一個生成-判別對。一個近期的生成和判別模型的理論視角,可以參考Liang and Jordan [72]。
原則上,為什麼這些方法如此不同可能是不清晰的,因為我們總是可以使用貝葉斯準則來在這兩種方法之間轉換。例如,在樸素貝葉斯模型中,很容易將聯合p(y)p(x|y) 轉換成條件分佈p(y|x)。確實,這種條件和logistic迴歸有一樣的形式(2.9)。並且如果我們設法為資料獲得一個“真正的”生成模型,也即從實際取樣的資料中獲取分佈p*(y,x)=p*(y)p*(x|y),然後我們應該簡化p*(y|x)的計算,這實際上是判別方法的目標。但這是嚴格的,因為我們從未擁有這兩種方法在實際中不同的真實分佈。首先估計p(y)p(x|y),然後計算直接結果P(y|x)。換句話說,生成和判別模型都有著估計p(y|x)的目標,但是它們採取了不同的方法。
一種洞察了生成和判別建模的不同的觀點是由於Minka[93]。假設我們有一個生成模型pg,引數θ。根據定義,它有這樣的形式:
但是我們可以使用概率的鏈規則將將pg重寫成:
現在,我們將該生成模型與聯合概率家族上的一個判別模型進行比較。為了達到這個目的,我們定義一個輸入的先驗p(x),這樣p(x)可以從通過一些引數設定從pg中產生。也即,。那麼結果分佈是:
通過對比(2.13)和(2.14),我們發現條件方法能更自由的擬合資料,因為他不需要θ= θ’。直覺上,由於(2.13)中的引數θ在輸入分佈和條件分佈中都使用了。
機關到目前為止我們都在批判生成模型,但是他們確實有其優點。首先,生成模型可以更自然地處理潛在變數,部分標記資料以及未標記資料。在很多極端的例子中,當資料完全為標記,生成模型就可以被用在非監督模式中,然而非監督學習在判別模型中是不自然的,它仍處於研究活躍期。
第二,在某些例子中生成模型會比判別模型表現更好,直覺上是因為輸入模型p(x)可能在條件上有一個平滑的影響。Ng和Jordan[98]證明了這種影響在資料集很小的時候是尤其顯著的。對於許多特別的資料集,預測生成模型和判別模型誰的效能更好是不可能的。最後,有時要麼問題暗示了一個自然的生成模型,或應用需要預測未來輸出和輸入的能力,這些都使得生成模型更可取。
因為生成模型有著p(x,y)=p(y)p(x|y)的形式,它經常很自然的通過有向圖來表示,該有向圖中輸出y拓撲地先於輸入。類似地,我們會看到通過無向圖能更自然地表示判別模型。然而,並不總是符合上述情況,有無向生成模型,如Markov隨機場(2.32),有向判別模型,如MEMM(6.2)。
樸素貝葉斯迴歸和logistics迴歸之間的關係反應了HMMs和線性鏈CRFs之間的關係。正如樸素貝葉斯和logistics迴歸是生成-判別對一樣,HMM的判別的相似物為CRF的部分特別案例,這是我們下一節會講到的。它們四者之間的相似性關係展現在圖2.4中。
參考文獻:
【98】A. Y. Ng and M. I. Jordan, “Ondiscriminative vs. generative classifiers:
A comparison of logistic regression and naive Bayes,” inAdvances in Neural
Information Processing Systems 14, (T. G. Dietterich, S. Becker,and
Z. Ghahramani, eds.), pp. 841–848, Cambridge, MA: MIT Press,2002
【72】P. Liang and M. I. Jordan, “An asymptoticanalysis of generative, discriminative,
and pseudolikelihood estimators,” in International Conference on
Machine Learning (ICML), pp. 584–591, 2008.
【93】T. P. Minka, “Discriminative models, notdiscriminative training,” Technical
Report MSR-TR-2005-144, Microsoft Research, October 2005.
相關文章
- 條件隨機場CRF(一)從隨機場到線性鏈條件隨機場條件隨機場CRF
- 簡明條件隨機場CRF介紹 | 附帶純Keras實現條件隨機場CRFKeras
- 11_條件隨機場條件隨機場
- Spring條件註解@ConditionalSpring
- 條件隨機場實現命名實體識別條件隨機場
- Spring Framework 條件裝配 之 @ConditionalSpringFramework
- Random獲取隨機數random隨機
- MAC地址隨機化介紹Mac隨機
- Java 語法介紹(五):條件控制(轉)Java
- 隨機數種子(random seed)隨機random
- python random隨機模組使用Pythonrandom隨機
- oracle隨機數 — dbms_randomOracle隨機random
- 雙向迴圈神經網路+條件隨機場進行分詞神經網路條件隨機場分詞
- 【DBMS_RANDOM】使用 DBMS_RANDOM包生成隨機字串random隨機字串
- Python生成隨機數random模組Python隨機random
- JavaScript 隨機數方法 Math.random()JavaScript隨機random
- AS使用Random函式建立隨機數random函式隨機
- C# 隨機數 Random 的使用C#隨機random
- 偽隨機數 pseudo random number隨機random
- crf(條件隨機場)用於遙感影像分類結果的優化CRF條件隨機場優化
- 條件隨機場CRF(三) 模型學習與維特比演算法解碼條件隨機場CRF模型維特比演算法
- LevelDB 原始碼解析之 Random 隨機數原始碼random隨機
- python–模組之random隨機數模組Pythonrandom隨機
- C# 生成隨機數,呼叫Random方法C#隨機random
- javascript隨機數函式Math.random()JavaScript隨機函式random
- Spark2 Random Forests 隨機森林SparkrandomREST隨機森林
- 隨機函式DBMS_RANDOM.STRING隨機函式random
- 多執行緒程式設計介紹-條件變數執行緒程式設計變數
- 條件隨機場CRF(二) 前向後向演算法評估標記序列概率條件隨機場CRF演算法
- Java如何生成隨機數 - Random、ThreadLocalRandom、SecureRandomJava隨機randomthread
- Python隨機函式random使用詳解Python隨機函式random
- 第九篇:隨機森林(Random Forest)隨機森林randomREST
- Python隨機數生成模組random詳解Python隨機random
- Python模組學習:random 隨機數生成Pythonrandom隨機
- dbms_random包呼叫隨機數的方法:random隨機
- 【RANDOM】使用dbms_random.string產生隨機字串的用法及應用random隨機字串
- 【C#】比較 Random 與 RandomNumberGenerator 生成隨機字串C#random隨機字串
- java Math數學工具及Random隨機函式Javarandom隨機函式