條件隨機場介紹(2)—— An Introduction to Conditional Random Fields


2. 模型

本部分從建模的角度討論條件隨機場,解釋條件隨機場如何將結構化輸出上的概率分布表示為高維輸入向量的函數。條件隨機場即可以理解為邏輯回歸在任意圖結構上的擴展,也可以理解為結構化數據的生成模型(如隱馬爾可夫模型)的判別化。

本部分首先對圖模型做一個簡單的介紹(2.1節),並對NLP中的生成模型和判別模型進行分析(2.2節)。然后給出條件隨機場的正式定義,包括常用的線性鏈條件隨機場(2.3節)和任意圖結構(general graphical structures)的條件隨機場(2.4節)。由於條件隨機場的精度高度依賴它所使用的特征集,我們還將介紹最常使用的特征工程技巧(2.5節)。最后,給出了兩個條件隨機場應用的例子(2.6節),並對條件隨機場在各領域的使用做簡要綜述(2.7節)。

2.1 圖模型

圖模型是多元概率分布的表達和推斷強有力的工具。其有效性已經在很多隨機建模領域得到證明,包括編碼理論[89]、計算機視覺[41]、知識表達[103]、貝葉斯統計[40],以及自然語言處理[11, 63]等。

直接表示多變量的分布很困難。例如,如果要存儲\(n\)個二值變量,需要\(O(2^n)\)數量級的浮點數。圖模型的思想是將多變量的分布表示為多個局部函數(local functions)的乘積,每個局部函數僅依賴一個較小的變量集合。這種因子分解的方式與變量間的條件獨立關系緊密相關——因子分解和條件獨立這兩種類型的信息都可以很容易的用圖表示。實際上,正是因子分解、條件獨立以及圖結構之間的這種關系構成了基於圖的建模框架的強大功能:條件獨立的視角在設計模型的時候非常有用,因子分解的視角在設計推斷算法的時候非常有用。

本節的其余部分,我們從因子分解和條件獨立兩個角度介紹圖模型,重點關注基於無向圖的模型。關於圖模型及近似推斷請參考Koller 和Friedman的書[57](《概率圖模型:原理與技術》)。

2.1.1 無向模型

考慮隨機變量集合\(Y\)上的概率分布。記\(s\in 1,2,\cdots,|Y|\)為變量的下標。每個變量\(Y_s\in Y\)的值來自集合\(\mathcal{Y}\),它可以是連續或是離散的,本文主要考慮離散的情況。向量\(\mathbf{y}\)表示\(Y\)的任意取值。記\(\mathbf{1}_{\{y=y'\}}\)\(y\)的指示函數,當\(y=y'\)時值為\(1\),否則為\(0\)。此外,我們還需要用於將概率分布邊緣化的符號。對於一個固定的變量值\(y_s\),我們用\(\sum_{\mathbf{y} \backslash y_s}\)表示對\(\mathbf{y}\)中所有值等於\(y_s\)的變量\(Y_s\)求和【求邊緣分布】。

本文中的符號表示:一般情況下大寫為隨機變量或隨機向量(粗體),小寫為隨機變量或向量(粗體)的取值,花體為取值空間。

假設概率分布\(p\)可以表示為因子的乘積,每個因子的形式為\(\Psi_a(\mathbf{y}_a)\),其中\(a\)是取值為\(1\)\(A\)的下標,\(A\)為因子的數量。因子\(\Psi_a(\mathbf{y}_a)\)為非負標量,可以被認為是\(\mathbf{y}_a\)中各個取值之間的相容性的度量。數值之間具有較高的相容度就表示它們具有較高的概率。因子分解使我們能更有效的表示概率分布\(p\),因為集合\(Y_a\)要遠小於完全變量集合\(Y\)

無向圖模型是一族概率分布,其中每個因子分解對應一組因子集合。嚴格地,給定\(Y\)的一組子集\(\{Y_a\}_{a=1}^A\),無向圖模型是能寫為如下形式的所有的概率分布的集合

\[p(\mathbf{y})=\frac{1}{Z}\prod_{a=1}^A\Psi_a(\mathbf{y}_a), \tag{2.1} \]

其中,對任意選擇的因子$\mathcal{F}={\Psi_a} \(,都有\)\Psi_a(\mathbf{y}_a)\ge 0 \ (\text{for all }\mathbf{y}_a)$。因子也可稱為局部函數(local functions)或相容性函數(Compatibility functions)。通常把無向模型定義的概率分布稱為隨機場

常量\(Z\)是歸一化因子,用以保證概率分布\(p\)的和為\(1\),定義為

\[Z=\sum_\mathbf{y}\prod_{a=1}^A\Psi_a(\mathbf{y}_a). \tag{2.2} \]

\(Z\)可以被看作因子集合\(\mathcal{F}\)的函數,被稱為配分函數(partition function)。注意式(2.2)中,在\(\mathbf{y}\)上的求和運算量是指數級的,因此\(Z\)的計算通常比較困難,但是可以通過近似方法來求得(第4節)。

術語“圖模型”的由來,是因子分解(式2.1)可以利用圖(graph)簡潔地表示。其實更自然的表示形式是因子圖(factor graphs)[58]。因子圖是一種兩分圖(bipartite graph)\(G=(V,F,E)\),其中節點集合\(V=\{1,2,\cdots,|Y|\}\)表示模型中的隨機變量,節點集合\(F=\{1,2,\cdots,A\}\)表示模型中的因子。因子圖的含義是如果變量節點\(Y_s \ \ (s\in V)\)與因子節點\(\Psi_a \ \ (a \in F)\)相連,則\(Y_s\)\(\Psi_a\)的參數(argument)。因此,因子圖直接地描述了概率分布\(p\)是如何被分解為局部函數之積的。

下面,我們對因子圖是否能描述一個給定的概率分布給出嚴格定義。令\(N(a)\)為因子圖中第\(a\)個因子的鄰節點下標集合。於是:


定義2.1 對於概率分布\(p(\mathbf{y})\),如果存在一組局部函數\(\Psi_a\)使得\(p\)可以寫為下式的形式,

\[p(\mathbf{y})=Z^{-1}\prod_{a \in F}\Psi_a(\mathbf{y}_{N(a)}) \tag{2.3} \]

則它可以分解為一個因子圖\(G\)


因子圖與一組隨機變量子集以同樣的方式描述無向模型。式(2.1)將一組隨機變量子集看作鄰居關系(neighborhoods)\(\{Y_{N(a)}| \forall a \in F \}\)。定義2.1中的無向圖模型,等價於根據\(G\)進行因子分解的所有概率分布的集合。

例如,圖2.1為一個具有三個隨機變量的因子圖。圖中,圓表示隨機變量節點,方塊表示因子節點,並根據相應的變量或因子進行了標記。該因子圖描述了所有能寫為\(p(y_1,y_2,y_3)=\Psi_1(y_1,y_2)\Psi_2(y_2,y_3)\Psi_3(y_1,y_3)\)\(\mathbf{y}=(y_1,y_2,y_3)\)的概率分布的集合。

圖模型的因子分解和變量之間的條件獨立之間有緊密的關系。這種關系可以通過另一種無向圖來理解,稱為馬爾可夫網絡。馬爾可夫網絡中僅有隨機變量節點,不包含因子節點。令\(G\)為一個無向網絡,節點為隨機變量(下標為\(V=\{1,2,\cdots,|Y|\}\))。對於下標為\(s \in V\)的隨機變量,令\(N(s)\)表示它在\(G\)中的鄰節點下標集合。如果\(G\)滿足局部馬爾可夫性,那么就可以說分布\(p\)是關於\(G\)馬爾可夫的。局部馬爾可夫性:任意兩個變量\(Y_s, Y_t \in Y\),變量\(Y_s\)在給定鄰節點\(Y_{N(s)}\)的條件下獨立於\(Y_t\)【注:\(p(Y_s,Y_t|Y_{N(s)})=p(Y_s|Y_{N(s)})p(Y_t|Y_{N(s)})\)】。直覺上,這意味着\(Y_{N(s)}\)本身包含了預測\(Y_s\)所需的全部有用信息。

從因子分解的角度看,馬爾可夫網絡具有模糊性。考慮圖2.2(左)所示的三個節點的馬爾可夫網絡。任意能夠因子分解為\(p(y_1,y_2,y_2)\propto f(y_1,y_2,y_2)\)\(f\)為正函數)的概率分布都滿足該馬爾可夫網絡。然而,我們可能希望使用一種更嚴格的參數化形式,即\(p(y_1,y_2,y_2)\propto f(y_1,y_2)g(y_2,y_3)h(y_1,y_3)\)。第二種模型是第一種模型的嚴格子集,因此不需要那么多的數據來精確地估計概率分布。但是馬爾可夫網絡不能區分這兩種參數化形式。相比之下,因子圖更明確地描述了因子分解。

2.1.2 有向模型

無向模型中的局部函數不需要直接的概率解釋(可以不是概率函數),有向圖模型則描述一個分布如何被分解為局部條件概率分布。令\(G\)為有向無環圖,其中\(\pi (s)\)\(G\)中節點\(Y_s\)的父節點下標集合。有向圖模型是因子分解為如下形式的概率分布族:

\[p(\mathbf{y})=\prod_{s=1}^S p(y_s|\mathbf{y}_{\pi(s)}). \tag{2.4} \]

我們稱概率分布\(p(y_s|\mathbf{y}_{\pi(s)})\)為局部條件分布。注意\(\pi{(s)}\)可以為空集,即節點無父節點。這種情況下,\(p(y_s|\mathbf{y}_{\pi(s)}) = p(y_s)\)

如引言部分所示,\(p\)需要被歸一化。有向模型可以被認為是一種特殊的因子圖,其中單個因子都通過特殊的方式被局部歸一化,它滿足(a)因子等於變量子集上的條件分布,(b)歸一化常量\(Z=1\)。有向模型常用於表示生成式模型,如2.2.3節所示。有向模型的一個例子是貝葉斯模型(式2.7),如圖2.3(左圖)所示。圖中,陰影節點表示在數據集中觀測到的變量。在本文中會使用多次使用這種表示方式。

2.1.3 輸入和輸出

本文考慮待預測變量已知的情況。模型中的變量分為變量\(X\)的集合和輸出變量集合\(Y\),假設\(X\)總是可觀測的,需要預測的是輸出變量\(Y\)。例如,\(\mathbf{x}\)表示一個句子中的單詞構成的向量,\(\mathbf{y}\)\(\mathbf x\)中每個單詞對應的詞性標記所構成的向量。

我們感興趣的是構建變量\(X\cup Y\)的聯合分布,基於前中文介紹的標記,\(X\)\(Y\)上的無向圖模型表示為

\[p(\mathbf{x},\mathbf{y})=\frac{1}{Z}\prod_{a=1}^A \Psi_a (\mathbf{x}_a, \mathbf{y}_a), \tag{2.5} \]

其中,每個局部函數\(\Psi_a\)依賴於兩個變量子集\(X_a \subseteq X\)\(Y_a \subseteq Y\)。歸一化常量為

\[Z=\sum_{\mathbf{x},\mathbf{y}} \prod_{a \in F} \Psi_a(\mathbf{x}_a, \mathbf{y}_a), \tag{2.6} \]

其中涉及到對全部\(\mathbf{x}\)\(\mathbf{y}\)求和。

此處,\(\mathbf{x}\)\(\mathbf{y}\)無條件依賴關系,\(X\)\(Y\)作為網絡中的節點具有相同的地位

2.2 生成模型 VS 判別模型

本節我們討論幾種簡單的用於自然語言處理的圖模型。盡管這些模型已經廣為人知,但介紹它們不僅能使上一節的定義更為清晰,而且能夠引出條件隨機場中的一些問題。我們會特別關注隱馬爾可夫模型,原因在於它與線性鏈條件隨機場緊密相關。

本節的主要目的是對比生成模型(Generative models)和判別模型(Discriminative models)。在接下來討論的幾個模型中,兩個是生成模型(朴素貝葉斯和隱馬爾可夫)一個是判別模型(邏輯回歸)。生成模型是那些描述了標記向量\(\mathbf{y}\)是如何按概率生成特征向量\(\mathbf{x}\)的模型。判別模型則相反,它直接描述了如何為給定特征向量\(\mathbf{x}\)分配一個標記\(\mathbf{y}\)。理論上說,兩種模型可以利用貝葉斯規則相互轉換,但實際上兩種方法是不同的,都有各自的優缺點(見2.2.3節)。

2.2.1 分類

首先我們來討論分類(classification)問題,即給定特征向量\(\mathbf{x}=(x_1,x_2,\cdots,x_K)\),預測離散取值的類別標記\(y\)。解決該問題的一種簡單的方法是,假設一旦類別標記能夠確定,則所有特征是相互獨立的。這就是是朴素貝葉斯分類器(naive Bayes classifier)。它基於一個聯合概率模型,其形式為:

\[p(y,\mathbf{x})=p(y)\prod_{k=1}^K p(x_k | y). \tag{2.7} \]

該模型可以描述為圖2.3(左)所示的有向模型。如果因子定義為\(\Psi(y)=p(y)\),每個特征\(x_k\)的因子為\(\Psi_k(y,x_k)=p(x_k|y)\) ,也可以用因子圖表示將該模型,如圖2.3(右)所示。

另一種可以自然地表示為圖模型的分類器是邏輯回歸(在自然語言處理領域作為最大熵模型而知名)。該分類器的思想是假設每個類別的對數概率\(\log p(y|\mathbf{x})\)\(\mathbf{x}\)的線性函數【本文中的log都是指自然對數】,再乘以一個規范化常數。這樣,就得到條件分布:

\[p(y|\mathbf{x})=\frac{1}{Z}\exp \left\{ \theta_y + \sum_{j=1}^K \theta_{y,j}x_j\right\}, \tag{2.8} \]

其中\(Z(\mathbf{x})=\sum_y \exp\{\theta_y + \sum_{j=1}^k \theta_{y,j}x_j\}\)為歸一化常量。\(\theta_y\)是偏差權重(bias weight),與朴素貝葉斯模型中的\(\log p(y)\)類似【式2.7】。不同於為每個類使用一個權重向量(式2.8),我們還可以使用不同的標記,令所有類別使用同一個權重集合。這樣表示的關鍵在於定義一個特征函數集合,每個特征函數的值僅在對應的類別中才不為0。於是,為特征權重定義函數\(f_{y',j}(y,\mathbf{x})=\mathbf{1}_{\{y'=y\}}x_j\),為偏差權重定義函數\(f_{y'}(y,\mathbf{x})=\mathbf{1}_{\{y'=y\}}\)。現在,我們可以利用\(f_k\)來表示每個特征函數\(f_{y',j}\),利用\(\theta_k\)表示相應的權重\(\theta_{y',j}\)。利用這種標記技巧,邏輯回歸模型變為:

\[p(y|\mathbf{x})=\frac{1}{Z(\mathbf{x})}\exp \left\{ \sum_{k=1}^K \theta_k f_k(y,\mathbf{x})\right\}. \tag{2.9} \]

我們引入這種表示方法的原因,是它會應用在稍后介紹的CRFs中。

2.2.2 序列模型

分類器僅能預測單一的類別變量,而圖模型能夠為許多相互依賴的變量構建預測模型。本節中,我們討論變量之間(可能是)最簡單形式的依賴,模型的輸出變量為一個序列。我們以自然語言處理中的命名實體識別(named-entity recognition, NER)問題為例,引出該模型。命名實體識別,是識別並分類文本中的專有名稱,包括位置,例如China;人名,例如George Bush;組織,例如United Nations。命名實體識別的任務,是切分出給定句子中屬於實體的詞並對實體類型進行分類(人,組織,位置等等)。該問題的難點,是很多命名實體字符串的出現頻率很低,即便是在大規模訓練集中也是如此,因此必須利用上下文信息進行識別。

命名實體識別的方法之一,是獨立地將每個詞分類為PERSON、LOCATION、ORGANIZATION或OTHER(不是命名實體)。該方法的問題在於它假設給定輸入,所有的命名實體標記是獨立的。實際上,命名實體標記在相鄰的詞之間是相互依賴的;例如,盡管New York是個位置,但New York Times是一個組織。可以將輸出變量排成一個線性鏈來放松該獨立性假設。隱馬爾可夫模型采用了這種方法[111]。隱馬爾可夫模型假設觀測序列\(X=\{x_t\}_{t=1}^T\)背后隱含着一個狀態序列\(Y=\{y_t\}_{t=1}^T\)。令\(S\)為所有可能狀態組成的有限集,\(O\)為所有可能觀測值組成的有限集。對所有的\(t\)\(x_t \in O, y_t \in S\)。在命名實體問題中,每個觀測\(x_t\)是位於\(t\)位置的詞,每個狀態\(y_t\)是命名實體標記,即PERSON、LOCATION、ORGANIZATION或OTHER中的一種。

為了便於構建聯合分布模型\(p(\mathbf{y},\mathbf{x})\),隱馬爾可夫模型有兩個獨立性假設。第一,假設每個狀態僅依賴於前驅狀態(immediate predecessor),也就是說給定前驅狀態\(y_{t-1}\),狀態\(y_t\)與所有的\(y_1,y_2,\cdots, y_{t-2}\)都不相關。第二,每個觀測\(x_t\)僅依賴於當前狀態\(y_t\)。基於這兩個假設,可以利用三個概率分布來描述隱馬爾可夫模型:初始狀態分布\(p(y_1)\);轉移概率\(p(y_t|y_{t-1})\);觀測概率\(p(x_t|y_t)\)。狀態序列\(\mathbf{y}\)和觀測序列\(\mathbf{x}\)的聯合概率可以因子分解為

\[p(\mathbf{y},\mathbf{x})=\prod_{t=1}^T p(y_t|y_{t-1})p(x_t|y_t). \tag{2.10} \]

為了簡化其見,領虛擬初始狀態\(y_0\)作為每個狀態序列的第一個狀態。這樣就可以將初始狀態分布\(p(y_1)\)記為\(p(y_1|y_0)\)

隱馬爾可夫模型已經在自然語言處理中的許多序列標注任務得到應用,如詞性標記、命名實體識別、信息抽取等。

2.2.3 比較

不管是生成模型還是判別模型,都是\((\mathbf{y}, \mathbf{x})\)上分布的描述,但是其思路不同。生成模型,如朴素貝葉斯分類器和隱馬爾可夫模型,是因子分解為\(p(\mathbf{y},\mathbf{x})=p(\mathbf{y})p(\mathbf{x}|\mathbf{y})\)的聯合分布族。它描述了根據已知標記,如何生成特征樣本。判別模型,如邏輯回歸是條件分布族\(p(\mathbf{y}|\mathbf{x})\),直接針對分類規則進行建模。理論上來說,判別模型也可以通過乘以邊緣分布\(p(\mathbf{x})\)得到聯合分布\(p(\mathbf{y},\mathbf{x})\),但幾乎沒有需要這樣做的情況。

判別模型和生成模型概念上的主要不同之處在於條件分布\(p(\mathbf{y}|\mathbf{x})\)不包含模型\(p(\mathbf{x})\),它對於分類來說不是必要的。\(p(\mathbf{x})\)的構建通常比較困難,因為它包含了許多高度相互依賴的特征。例如,在命名實體識別中,原始的隱馬爾可夫模型僅使用了一個特征,即詞匯本身。但是很多詞,特別是專有命詞,不會出現在訓練集中,因此詞匯本身作為特征信息量不足。為了對未知詞匯進行標記,我們還需要使用其他特征,如首字母大小寫、相鄰的詞、前綴和后綴、是否出現在預先定義的人或位置的列表中,等等。

判別模型的優點在於它能夠利用更豐富的、重疊的特征。為了更好的進行理解,考慮式(2.7)的朴素貝葉斯分布族。它是一個聯合分布族,其條件分布都為“邏輯回歸形式”(式2.9)。但是存在其他的聯合模型,有的\(\mathbf{x}\)之間有着復雜的依賴關系,其條件分布也為式(2.9)的形式。通過直接構建條件分布,我們可以不必理會\(p(\mathbf{x})\)的形式。判別模型,如條件隨機場,假設\(\mathbf{y}\)之間是條件獨立的,並假設了\(\mathbf{y}\)是如何依賴\(\mathbf{x}\)的,但是對於\(\mathbf{x}\)之間的依賴關系並沒有做任何假設。這也可以理解為圖的形式。假設有一個因子圖表示聯合分布\(p(\mathbf{y},\mathbf{x})\)。如果我們為條件分布\(p(\mathbf{y}|\mathbf{x})\)構建圖,那么任何僅依賴於\(\mathbf{x}\)的因子都不會出現在圖結構中。原因在於它們是條件獨立的,關於\(\mathbf{y}\)是常數。

為了在生成模型中包含相關的特征,我們有兩種選擇。第一,利用增強的模型來表示輸入之間的相關性,即向每個\(\mathbf{x}_t\)中添加有向邊。但是這樣做常常很難實現。例如,很難想像如何對詞的大小寫和詞的后綴之間的依賴關系建模,我們也特別不希望這么做,因為我們可能以任何形式觀察測試句子。

第二個選擇是簡化獨立性假設,如朴素貝葉斯假設。例如,在朴素貝葉斯假設下隱馬爾可夫模型的形式可能為\(p(\mathbf{x},\mathbf{y})=\prod_{t=1}^Tp(y_t|y_{t-1})\prod_{k=1}^Kp(x_{tk}|y_t)\)。這種思路在某些情況下很有效。但是也可能存在問題,因為獨立性假設可能會影響性能。例如,盡管朴素貝葉斯分類器在文檔分類中非常有效,但是在很多應中的表現都不如邏輯回歸[19]。

進一步地,朴素貝葉斯也可能會得到較差的概率估計。例如,假設要為一個兩分類問題訓練朴素貝葉斯分類器,其中所有特征都是重復的。也就是說,給定初始特征向量\(\mathbf{x}=(x_1,x_2,\cdots,x_K)\),我們將其轉化為\(\mathbf{x}'=(x_1,x_1,x_2,x_2,\cdots,x_K,x_K)\),然后運行朴素貝葉斯算法。盡管沒有向數據中添加任何新信息,該變化將會提高概率估計的信度,意思是朴素貝葉斯估計\(p(y|\mathbf{x}')\)比起\(p(y|\mathbf{x})\)要更遠離0.5(更大或更小)。

類似朴素貝葉斯的假設在擴展至序列模型時的問題優其嚴重,因為推斷過程需要合並模型各部分的證據。如果各標記的概率估計的信度都過高的話,那么就很難合理地將它們合並。

朴素貝葉斯和邏輯回歸的不同之處僅在於前者是生成模型,而后者是判別模型。在離散輸入下,這兩個分類器在其他方面完全相同。朴素貝葉斯和邏輯回歸的假設空間相同,從某種意義上來說,任何邏輯回歸分類器都可以轉化為一個具有相同決策邊界的朴素貝葉斯分類器,反之亦然。另一種解釋這種情況的說法是,如果我們將朴素貝葉斯模型(式2.7)與邏輯回歸(式2.9)生成式地描述為下式(2.11),則它們定義了相同的概率分布族:

\[p(y,\mathbf{x})=\frac{\exp\{\sum_k\theta_k f_k(y,\mathbf{x})\}}{\sum_{\tilde{y},\tilde{\mathbf{x}}}\exp\{\sum_k\theta_kf_k(\tilde{y}, \tilde{\mathbf{x}})\}}. \tag{2.11} \]

這意味着如果對朴素貝葉斯模型(式2.7)通過條件似然最大化進行訓練,我們就會得到與邏輯回歸同樣的分類器。反之,如果邏輯回歸模型被生成式地表示,即像式(2.11)一樣,通過聯合似然\(p(y,\mathbf{x})\)最大化進行訓練,則我們可以得到與朴素貝葉斯相同的分類器。根據Ng和Jordan[98]的說法,朴素貝葉斯和邏輯回歸構成了一對生成-判別對(generative-discriminative pair)。最新的關於生成模型和判別模型的研究參見Liang和Jordan[72]。

大體上來說,生成模型和判別模型如此不同的原因是不明確的,因為我們總是可以利用貝葉斯規則在兩種方法之間進行轉換。例如,在朴素貝葉斯模型中,很容易將聯合概率\(p(\mathbf{y})p(\mathbf{x}|\mathbf{y})\)轉換為條件分布\(p(\mathbf{y}|\mathbf{x})\)。實際上,該條件具有與邏輯回歸模型(式2.9)相同的形式。如果我們從數據中獲得一個“真實”的生成模型,即生成樣本數據的分布\(p^*(\mathbf{y},\mathbf{x})=p^*(\mathbf{y})p^*(\mathbf{x}|\mathbf{y})\),然后我們可以簡單的計算真正的\(p^*(\mathbf{y}|\mathbf{x})\),這正是判別模型。但是我們不可能得到真實的分布,於是造成實踐中兩種方法是不同的。先估計\(p(\mathbf{y})p(\mathbf{x}|\mathbf{y})\)然后計算\(p(\mathbf{y}|\mathbf{x})\)(生成式方法),與直接求得\(p(\mathbf{y}|\mathbf{x})\)相比,得到的是模型的不同估計。換句話說,生成模型和判別模型的目的是一樣的,都是估計\(p(\mathbf{y}|\mathbf{x})\),但采用了不同的實現途徑。

文獻Minka[93]給出了生成模型和判別模型區別的另一種觀點。假設生成模型\(p_g\)的參數為\(\theta\)。根據定義,其形式為:

\[p_g(\mathbf{y},\mathbf{x};\theta)=p_g(\mathbf{y};\theta)p_g(\mathbf{x}|\mathbf{y};\theta). \tag{2.12} \]

也可以利用概率的鏈式規則將\(p_g\)重寫為:

\[p_g(\mathbf{y},\mathbf{x};\theta)=p_g(\mathbf{x};\theta)p_g(\mathbf{y}|\mathbf{x};\theta). \tag{2.13} \]

其中\(p_g(\mathbf{x};\theta)\)\(p_g(\mathbf{y}|\mathbf{x};\theta)\)通過推斷進行計算,即\(p_g(\mathbf{x};\theta)=\sum_{\mathbf{y}}p_g(\mathbf{y},\mathbf{x};\theta)\)\(p_g(\mathbf{y}|\mathbf{x};\theta)=p_g(\mathbf{y},\mathbf{x};\theta)/p_g(\mathbf{x};\theta)\) 【因為\(p_g(\mathbf{y},\mathbf{x},\theta)\)已知】。

接下來,將該生成模型與相同聯合分布族上的判別模型進行比較。為了進行比較,還需要定義輸入數據的先驗概率\(p(\mathbf{x})\),使得\(p(\mathbf{x})\)可以通過一些參數配置從\(p_g\)中得到。即\(p(\mathbf{x})=p_c(\mathbf{x};\theta')=\sum_{\mathbf{y}}p_g(\mathbf{y},\mathbf{x}|\theta')\),其中\(\theta'\)一般與式(2.13)中的\(\theta\)不同。然后,將其與條件分布\(p_c(\mathbf{y}|\mathbf{x};\theta)\)結合,\(p_c(\mathbf{y}|\mathbf{x};\theta)\)也可以從\(p_g\)中得到,即\(p_c(\mathbf{y}|\mathbf{x};\theta)=p_g(\mathbf{y},\mathbf{x};\theta)/p_g(\mathbf{x};\theta)\)。於是可得到如下分布:

\[p_c(\mathbf{y},\mathbf{x})=p_c(\mathbf{x};\theta')p_c(\mathbf{y}|\mathbf{x};\theta). \tag{2.14} \]

比較式(2.13)和式(2.14),可以看出條件的方法能更自由的擬合數據,因為它不要求\(\theta = \theta'\)。直覺上,由於式(2.13)中的參數\(\theta\)在輸入分布和條件分布都使用了,因此參數集必須要同時較好的滿足兩個分布。潛在的代價是降低\(p(\mathbf{y}|\mathbf{x})\)的精度以提高\(p(\mathbf{x})\)的精度。然而,前者是我們所關心的,后者是我們不關心的。不過,從另一方面說,自由度的增加也使得訓練數據過擬合的風險增大了,從而降低了對未知數據的泛化能力。

盡管直到目前我們都在強調缺點,但是生成模型也的確有其優點。首先,生成模型在處理潛變量、部分標注數據和未標注數據的時候更加自然。在最極端情況下,當數據完全未標注時,生成模型可以使用無監督學習方法訓練,而判別模型的無監督學習則不夠自然,還是一個待解決的問題。

第二,生成模型在某些情況下比判別模型好,直覺上是因為輸入模型\(p(\mathbf{x})\)對條件模型有平滑作用。Ng和Jordan[98]聲稱這種情況在數據集較小的時候優其明顯。不過,對於給定數據集要判斷生成模型好還是判別模型好是不可能的。最后,在某些情況下生成模型更可取。例如,實際問題需要一個自然的生成模型,或者實際應用要求模型既能預測輸入特征又能預測輸出特征。

由於生成模型的形式為\(p(\mathbf{y},\mathbf{x})=p(\mathbf{y})p(\mathbf{x}|\mathbf{y})\),因此可以自然地用有向圖表示,其中輸出\(\mathbf{y}\)拓撲上是輸入的前驅。類似地,判別模型使用無向圖表示更加自然地。不過,情況也並非總是如此。例如,馬爾可夫隨機場(式2.32)是無向的生成模型,而MEMM(式6.2)是有向判別模型。利用有向圖(其中\(\mathbf{x}\)\(\mathbf{y}\)的前驅)描述判別模型也是有用的。

隱馬爾可夫模型與線性鏈條件隨機場的關系與朴素貝葉斯和邏輯回歸的關系類似。正如朴素貝葉斯與邏輯回歸是一個生成-判別對,隱馬爾可夫也可以導出一個判別模型,該模型是條件隨機場的特例,我們在下一節將會討論這個問題。朴素貝葉斯、邏輯回歸、生成模型、條件隨機場的類比關系如圖2.4所示。

2.3 線性鏈條件隨機場

為了引出線性鏈條件隨機場,我們首先考慮隱馬爾可夫模型中的聯合分布\(p(\mathbf{y},\mathbf{x})\)和對應的條件分布\(p(\mathbf{y}|\mathbf{x})\)。關鍵點在於,該條件分布實際上是一個具有特殊的特征函數的條件隨機場。

首先,我們將式(2.10)所示的隱馬爾可夫聯合分布重寫為一種更易於擴展的形式。即

\[p(\mathbf{y},\mathbf{x}) = \frac{1}{Z} \prod_{t=1}^T\exp \left\{ \sum_{i,j \in S}\theta_{ij}\mathbf{1}_{\{y_{t}=i\}} \mathbf{1}_{\{y_{t-1}=j\}} +\sum_{i \in S} \sum_{o \in O} \mu_{oi} \mathbf{1}_{\{y_t=i\}} \mathbf{1}_{\{x_t = o\}} \right\}, \tag{2.15} \]

其中,\(\theta = \{\theta_{ij}, \mu_{oi}\}\)是分布的實值參數,\(Z\)是歸一化常數。如果式(2.15)中沒有\(\frac{1}{Z}\)項則在某些\(\theta\)的取值下得到的並不是一個概率函數,例如,將所有參數取值為1。

原文腳注:並非所有\(\theta\)的取值都是有效的,因為\(Z\)的求和定義,即\(Z=\sum_\mathbf{y}\sum_{\mathbf{x}} \prod_{t=1}^T\exp \left\{ \sum_{i,j \in S}\theta_{ij}\mathbf{1}_{\{y_{t}=i\}} \mathbf{1}_{\{y_{t-1}=j\}} +\sum_{i \in S} \sum_{o \in O} \mu_{oi} \mathbf{1}_{\{y_t=i\}} \mathbf{1}_{\{x_t = o\}}\right\}\) ,可能並不會收斂。例如,一個具有一個參數的模型,\(\theta_{00}>0\)。該問題其實對條件隨機場來說並不是個問題,因為條件隨機場中對\(Z\)中的求和常常是基於一個有限集。

現在,令人感興趣的是式(2.15)描述了與式(2.10)所示的幾乎完全相同類型的隱馬爾可夫型。每一個同質隱馬爾可夫模型都可以通過下面的參數設置寫成式(2.15)的形式,

\[\begin{align} \theta_{ij} & = \log p(y' = i | y= j) \\ \mu_{oi} & = \log p(x=o | y =i) \\ Z &= 1 \end{align} \]

反方向的轉換也可以,即每個如式(2.15)所示的因子分解都是一個隱馬爾可夫模型(但不是一定是同質隱馬爾可夫模型,這是個惱人的技術問題)。這在第4.1節利用前-向后向算法構建相應的隱馬爾可夫模型部分可以看出來。因此,盡管該參數化過程增加了靈活性,但我們並沒有向隱馬爾可夫模型的分布族中添加任何新的分布。

通過引入特征函數,我們可以將式(2.15)寫得更簡潔一些,就像在式(2.9)所示的邏輯回歸中那樣。每個特征函數的形式為\(f_k(y_t,y_{t-1},x_t)\)。為了再現式(2.15),每個狀態轉移\((i,j)\)都需要一個特征函數\(f_{ij}(y,y',x)=\mathbf{1}_{\{y=i\}}\mathbf{1}_{\{y'=j\}}\),每個狀態-觀測對\((i,o)\)也需要一個特征函數\(f_{io}(y,y',x)=\mathbf{1}_{\{y=i\}}\mathbf{1}_{\{x=o\}}\)。令\(f_k\)為更通用的函數,來涵蓋\(f_{ij}\)\(f_{io}\)。於是,可以將隱馬爾可夫模型寫為:

\[p(\mathbf{y},\mathbf{x})=\frac{1}{Z}\prod_{t=1}^T\exp \left\{ \sum_{k=1}^K \theta_k f_k (y_t,y_{t-1},x_t) \right\}. \tag{2.16} \]

再一次,式(2.16)定義了與式(2.15)完全一樣的分布族,當然也與式(2.10)所定義的分布族一樣。

最后一步,是給出式(2.16)所對應的條件分布\(p(\mathbf{y}|\mathbf{x})\)。即:

\[p(\mathbf{y}|\mathbf{x})=\frac{p(\mathbf{y},\mathbf{x})}{\sum_{\mathbf{y}'}p(\mathbf{y}',\mathbf{x})} =\frac{\prod_{t=1}^T\exp\left\{ \sum_{k=1}^K \theta_k f_k(y_t,y_{t-1},x_t) \right\}}{\sum_{\mathbf{y}'} \prod_{t=1}^T\exp\left\{ \sum_{k=1}^K \theta_k f_k(y'_t,y'_{t-1},x_t) \right\}} \tag{2.17} \]

條件分布(2.17)是一種特殊的線性鏈條件隨機場,它僅以當前詞匯本身做為特征。但其他類型的條件隨機場可以利用輸入數據的更豐富的特征,如當前詞匯的前綴后綴、前后相鄰的詞,等等。這種擴展僅要求對現有的式子做很小的改變。僅需將特征函數變為比指示函數更一般化的形式。這就引出了線性鏈條件隨機場的一般定義:


定義 2.2\(Y, X\)為隨機向量,\(\theta=\{\theta_k\} \in \Re^K\)為參數向量,\(\mathcal{F}=\{f_k(y,y',\mathbf{x}_t)\}_{k=1}^K\)是實值特征函數集合。線性鏈條件隨機場是具有如下形式的分布\(p(\mathbf{y}|\mathbf{x})\)

\[p(\mathbf{y}|\mathbf{x}) = \frac{1}{Z(\mathbf{x})} \prod_{t=1}^T \exp \left\{ \sum_{k=1}^K\theta_kf_k(y_t,y_{t-1},\mathbf{x}_t) \right\}, \tag{2.18} \]

其中\(Z(\mathbf{x})\)是一個依賴於輸入的規范化函數

\[Z(\mathbf{x}) = \sum_{\mathbf{y}} \prod_{t=1}^T \exp \left\{ \sum_{k=1}^K\theta_kf_k(y_t,y_{t-1},\mathbf{x}_t) \right\}. \tag{2.19} \]


注意:式(2.18)中的\(\mathbf{x}_t\)為個體(如輸入序列中的第\(t\)個單詞)相關的特征向量,而式(2.17)中相應的\(x_t\)表示具體的個體(第\(t\)個單詞本身)。

從定義可看出,線性鏈條件隨機場可以描述為\(\mathbf{x}\)\(\mathbf{y}\)上的因子圖,即

\[p(\mathbf{y}|\mathbf{x})=\frac{1}{Z(\mathbf{x})} \prod_{t=1}^T \Psi_t(y_t,y_{t-1}, \mathbf{x}_t) \tag{2.20} \]

其中每個局部函數具有特殊的對數線性形式:

\[\Psi_t(y_t,y_{t-1}, \mathbf{x}_t)=\exp \left\{ \sum_{k=1}^K \theta_kf_k(y_t,y_{t-1}, \mathbf{x}_t) \right\}. \tag{2.21} \]

這種形式在我們下節討論任意結構條件隨機場的時候會很有用。

通常,參數向量\(\theta\)從數據中學習得到,參見第5部分。

根據前文的分析,我們知道如果聯合分布\(p(\mathbf{y},\mathbf{x})\)的因子分解為隱馬爾可夫模型,則相關的條件分布\(p(\mathbf{y}|\mathbf{x})\)為線性鏈條件隨機場。這種像隱馬爾可夫模型一樣的條件隨機場如圖2.5所示。不過,其他類型的線性鏈條件隨機場也非常有用。例如,在隱馬爾可夫模型中,無論輸入是什么,從狀態\(i\)到狀態\(j\)的轉移會得到同樣的概率評分,\(\log p(y_t=j|y_{t-1}=i)\)。在條件隨機場中,我們可以簡單地通過添加一個特征\(\mathbf{1}_{\{y_t=j\}}\mathbf{1}_{\{y_{t-1}=1\}}\mathbf{1}_{\{x_t=o\}}\),來允許狀態轉移\((i,j)\)的概率評分依賴於當前觀測向量。具有這種轉移特征的條件隨機場如圖2.6所示。這種條件隨機場常用在文本處理應用中。

實際上,由於條件隨機場不考慮變量\(\mathbf{x}_1,\cdots,\mathbf{x}_T\)之間的依賴關系,我們可以允許因子\(\Psi_t\)依賴於整個觀測向量\(\mathbf{x}\)而不破壞線性圖結構——允許我們將\(\mathbf{x}\)看作單一變量。結果,特征函數可以重寫為\(f_k(y_t,y_{t-1},\mathbf{x})\),能夠將輸入變量\(\mathbf{x}\)作為整體進行度量。不僅限於線性鏈條件隨機場,任意結構條件隨機場也具有這種特點。具有這種結構的線性鏈條件隨機場的圖如圖2.7所示。圖中,我們並不再把\(\mathbf{x}_1,\cdots,\mathbf{x}_T\)作為單個節點表示,而是將\(\mathbf{x}=(\mathbf{x}_1,\cdots,\mathbf{x}_T)\)作為單一的大觀測節點,所有因子依賴於該節點。

為了說明每個特征都可以依賴於所有時間步觀測值的線性鏈條件隨機場,我們將\(f_k\)中的觀測值參數寫為一個向量\(\mathbf{x}_t\),該向量應該理解為包含所有需要在時間\(t\)計算特征的全局觀測值\(\mathbf{x}\)。例如,如果條件隨機場使用了后繼詞\(x_{t+1}\)作為特征,則特征向量\(\mathbf{x}_t\)包含詞\(x_{t+1}\)

最后,注意到歸一化常數\(Z(\mathbf{x})\)對所有可能的狀態序列進行求和,包含了指數級的項數。不過,可以利用前向-后向算法高效的計算,參見4.1節。

2.4 任意結構條件隨機場

本節我們將線性鏈條件隨機場擴展至任意圖結構之上,與Lafferty等[63]最早給出的條件隨機場定義一致。從概念上來說,這種擴展非常直接,只需簡單地從線性鏈因子圖轉移至任意結構的因子圖之上。


定義 2.3\(G\)\(X\)\(Y\)之上的因子圖。如果對\(X\)的任意取值\(\mathbf{x}\),分布\(p(\mathbf{y}|\mathbf{x})\)能因子分解為\(G\),則\((X,Y)\)是一個條件隨機場。


因此,每個條件分布\(p(\mathbf{y}|\mathbf{x})\)都是對應着因子圖(或許沒有什么價值)的條件隨機場。如果\(F=\{\Psi_a\}\)\(G\)中的因子集合,則條件隨機場的條件分布為

\[p(\mathbf{y}|\mathbf{x})=\frac{1}{Z(\mathbf{x})}\prod_{a=1}^A \Psi_a (\mathbf{y}_a, \mathbf{x}_a). \tag{2.22} \]

上式與無向圖模型一般定義(式2.1)的不同之處在於歸一化常量變為歸一化函數\(Z(\mathbf{x})\)。由於條件能夠使圖模型得到簡化,因此\(Z(\mathbf{x})\)可以計算,而常量\(Z\)則通常難以計算。

正如我們在隱馬爾可夫和線性鏈條件隨機場中所做的那樣,令\(\log \Psi_a\)為預定特征集上的線性函數,即

\[\Psi_a(\mathbf{y}_a,\mathbf{x}_a)=\exp \left\{ \sum_{k=1}^{K(A)} \theta_{ak} f_{ak}(\mathbf{y}_a, \mathbf{x}_a) \right\}, \tag{2.23} \]

其中,不管是特征函數\(f_{ak}\)還是權值\(\theta_{ak}\)的下標都包含\(a\),用以強調每個特征在不同因子中有不同的權值。甚至不同的因子有着不同的特征函數集。注意如果\(\mathbf{x}\)\(\mathbf{y}\)是離散的,則對數線性假設(式2.23)沒有其他的限制,因為我們可以為每個取值\((\mathbf{y}_a, \mathbf{x}_a)\)選擇不同的指示函數\(f_{ak}\),與我們將隱馬爾可夫轉換成線性鏈條件隨機場所采用的方法類似。

合並式(2.22)和式(2.23),具有對數線性因子的條件隨機場的條件分布為:

\[p(\mathbf{y}|\mathbf{x}) = \frac{1}{Z(\mathbf{x})} \prod_{\Psi_A \in F} \exp \left\{ \sum_{k=1}^{K(A)} \theta_{ak}f_{ak}(\mathbf{y}_a, \mathbf{x}_a) \right\}. \tag{2.24} \]

另外,大多數應用模型常常依賴參數綁定。例如,在線性鏈條件隨機場中,各個時間步中的因子\(\Psi_t(y_t,y_{t-1},\mathbf{x}_t)\)通常會使用相同的權重。為進一步說明,我們將\(G\)的因子划分為\(\mathcal{C}=\{C_1, C_2, \cdots, C_P\}\),其中每個\(C_p\)是一個團模板(clique template),團模板是一組共享特征函數集\(\{f_{pk}(\mathbf{x}_c,\mathbf{y}_c)\}_{k=1}^{K(p)}\)和相應的參數集\(\theta_p \in \Re^{K(p)}\)的因子。利用團模板,條件隨機場可以寫為

\[p(\mathbf{y}|\mathbf{x})=\frac{1}{Z(\mathbf{x})}\prod_{C_p \in \mathcal{C}} \prod_{\Psi_c \in C_p} \Psi_c(\mathbf{x}_c, \mathbf{y}_c; \theta_p) , \tag{2.25} \]

其中,每個模板因子的參數化形式為

\[\Psi_c(\mathbf{x}_c, \mathbf{y}_c; \theta_p)=\exp \left\{ \sum_{k=1}^{K(p)} \theta_{pk}f_{pk}(\mathbf{x}_c, \mathbf{y}_c) \right\}, \tag{2.26} \]

規范化函數為

\[Z(\mathbf{x})=\sum_{\mathbf{y}} \prod_{C_p \in \mathcal{C}} \prod_{\Psi_c \in C_p} \Psi_c(\mathbf{x}_c, \mathbf{y}_c; \theta_p). \tag{2.27} \]

團模板的思想指定了圖中的重復結構及模型的參數綁定。例如,在線性鏈條件隨機場中,整個網絡構成一個團模板\(C_0=\{\Psi_t(y_t,y_{t-1},\mathbf{x}_t)\}_{t=1}^T\),於是\(\mathcal{C}=\{C_0\}\)是一個單元素集合( singleton set)。如果我們希望每個因子\(\Psi_t\)在每個時間步\(t\)具有不同的參數,類似於非同質隱馬爾可夫模型,可以令\(\mathcal{C}=\{C_t\}_{t=1}^T\)\(T\)個模板,其中\(C_t=\{\Psi_t(y_t,y_{t-1},\mathbf{x}_t)\}\)

在任意結構條件隨機場中,因子可以有不同的特征集和參數集。當然,其中有的因子也可以有相同的特征集和參數集。團模板就是那些具有相同特征集和參數集的因子的集合。若團模板確定,則可將條件隨機場由因子表示形式轉化為團模板表示形式。每個團模板中,參數集和特征集固定不變,因此稱為參數綁定。

定義任意結構條件隨機場時要考慮的最重要的問題之一,就是指明重復結構和參數綁定。有多種方法可以指明參數綁定,下面進行簡要介紹。例如,動態條件隨機場(dynamic conditional ramdom fields)[140]允許每個時間步中有多個標記,與動態貝葉斯網絡類似。第二個是關系馬爾可夫網絡(relational Markov networks)[142],其圖結構和參數綁定由SQL-like語法確定。馬爾可夫邏輯網絡(Markov logic networkss)[113,128]利用邏輯公式指定無向模型中局部函數的范圍(scopes)。本質上,知識庫中每個一階規則都有一組參數。可以將馬爾可夫邏輯網絡的邏輯部分(logic protion)看作是一種編程約定(programming convention),用於指定無向模型的重復結構和參數綁定。命令定義因子圖(imperatively defined factor graphs)[87]利用圖靈完全函數(Turing-complete functions)的完全表達性定義團模板,具體說明了模型的結構和充分統計量\(f_{pk}\)。圖靈完全函數具有利用遞歸、任意搜索(arbitrary search)、惰性評價(lazy evaluation)、記性化(memoization, 【可能是指緩存】 )等高級編程思想的能力。本文團模板的概念受到Taskar等[142]、Sutton等[140]、Richardson和Domingos[113]、McCallum等[87]的啟發。

2.5 特征工程

本節介紹特征工程相關的一些技巧(tricks of the trade)。盡管這些技巧主要來自自然語言處理方面應用,但是在其他領域也具有一定的通用性。主要考慮的是經典的取舍矛盾,即利用較大的特征集可以得到更高的精度,因為最終的決策邊界更有彈性,但是另一方面來說,更大的特征集要求更大的存儲空間以保存所有的參數,而且存在過學習的風險,反而可能會降低模型的精度。

標記-觀測特征(Label-observation features)。 首先,當標記變量離散取值的時候,團模板\(C_p\)的特征\(f_{pk}\)通常采用一種特殊的形式:

\[f_{pk}(\mathbf{y}_c, \mathbf{x}_c)=\mathbf{1}_{\{ \mathbf{y}_c=\tilde{\mathbf{y}}_c \}} q_{pk}(\mathbf{x}_c). \tag{2.28} \]

或者說,每個特征僅在輸出配置(configuration)\(\tilde{\mathbf{y}}_c\)下非0,但是只要滿足條件,特征取值僅依賴於輸入觀測。我們將這種形式的特征稱為__標記-觀測特征__。本質上,可以認為特征僅依賴於輸入\(\mathbf{x}_c\),但是對於每個輸出配置,有單獨的權重集。這種特征表示方法在計算上也比較有效率,因為計算每個\(q_{pk}\)可能涉及到大量的文本或圖片處理,使用這種特征表示方法則對於每個特征只需要計算一次。為了避免混淆,我們並不將函數\(q_{pk}(\mathbf{x}_c)\)稱為特征,而是稱為觀測函數。下面是兩個觀測函數的例子,“word \(x_t\) is captialized”,以及“word \(x_t\) ends in ing”。

輸出配置確定了該特征與哪些輸出(或狀態)相關,一量確定了輸出配置,則該特征僅與觀測值相關。這應該是最常見的特征類型之一。

不支持特征(Unsupported Features)。使用標記-觀測特征會包含大量的參數。例如,在第一個大規模條件隨機場應用中,Sha和Pereira[125]的最佳模型中包含了380萬個二值特征。這些特征中的相當一部分在訓練集中沒有出現,因此其值總是0。原因在於,某些觀測函數僅在少數標記中出現。例如,在命名實體識別任務中,特征“word \(x_t\) is with and label \(y_t\) is CITY-NAME”在訓練數據中取值不太可能為1。我們將這種特征稱為__不支持特征__。可能會令人感到驚訝,這些特征是有用的。這是因為它們可以被賦予一個負權,從而使得錯誤標記(如例子中的CITY_NAME)難以到較高的概率。(降低在訓練數據中不存在的標記序列的評分將會使出現在訓練數據中的標記序列的評分更高,因此后續章節中的參數估計過程會將這些特征賦負值。)模型中使用不支持特征通常會使精確度得到少量提升,但代價是模型中的參數數量會大大增加。

下面介紹一種我們曾成功應用的方法,能夠在使用較少內存的情況下利用不支持特征的優點。這種方法稱為“不支持特征技巧”,它僅在模型中選擇一個較小的不支持特征集。其思想是,很多不支持特征是無用的,因為模型不太可能會錯誤地激活它們。例如,前文中的特征“with”是一個通常與OTHER標記(表示非命名實體)高度相關聯的詞。為了減少參數數量,我們在模型中僅使用將那些能夠降低錯誤的不支持特征。一個簡單的辦法是:首先訓練一個沒有使用不支持特征的條件隨機場,經過數次迭代在模型還沒有充分訓練時即停止。然后在模型中所有還沒有高可信度正確結果的團中加入不支持特征。在前面的例子中,如果我們找到一個訓練實例\(i\)中位置\(t\)的詞\(x_t^{(i)}\)是with,標記\(y_t^{(i)}\)不是CITY-NAME,但\(p(y_t=\text{CITY-NAME} | \mathbf{x}_t^{(i)})\)大於一個閾值\(\epsilon\),那么就在模型中加入“with”特征。

邊-觀測特征和節點-觀測特征(Edge-Observation and Node-Observation Features)。為了減少模型中特征的數量,我們可以為特定的團模板使用標記-觀測特征,但其他團模板不使用。__邊-觀測特征__和__節點-觀測特征__是兩種最常見的標記-觀測特征。考慮一個具有\(M\)個觀測函數\(\{q_m(\mathbf{x})\}\ (m \in \{1,2,\cdots, M\})\)的線性鏈條件隨機場。如果使用了邊-觀測特征,每個轉移【狀態轉移】的因子可以依賴於所有的觀測函數,於是我們可以利用諸如“word \(x_t\) is New, label \(y_t\) is LOCATION and label \(y_{t-1}\) is LOCATION”這樣的特征。這會使得模型中包含大量的參數,這樣對內存使用不利而且容易過度學習。減少參數數量的一種方法是利用節點-觀測特征替代邊-觀測特征。利用這種特征,轉移因子不再依賴於觀測函數。於是我們可以使用諸如“label \(y_t\) is LOCATION and label \(y_{t-1}\) is LOCATION”和“word \(x_t\) is NEW and label \(y_t\) is LOCATION”這樣的特征,但是不能使用同時依賴\(x_t, y_t\)\(y_{t-1}\)的特征。表2.1正式地描述了邊-觀測特征和節點-觀測特征。同樣,哪種選擇更好依賴於具體問題,例如觀測函數數量和數據集大小。

”邊“是指狀態之間的邊(狀態轉移)。邊-觀測特征中,__轉移特征__與觀測值相關,而節點-觀測特征中,__轉移特征__與觀測值與邊無關;兩種情況下,__狀態特征__都可以與觀測值相關。

邊界標記(Boundary Labels)。另一個問題是如何處理邊界標記,即序列的開始和結尾,或者圖像的邊緣。有時候邊界標記與其他標記具有不同的特征。例如,句子中間的首字母大寫詞匯常表示專有名詞,但是是句子第一個詞首字母大寫卻不是。處理該問題的方法是在每個句子的標記序列前添加一個START標記,從而模型能夠學習具有任何特征的邊界標記。例如,如果使用了邊-觀測特征,那么諸如“\(y_{t-1}=\text{START}\) and \(y_t = \text{PERSON}\) and word \(x_t\) is capitalized”這樣的特征可以表示首字母大寫的句首詞並不能表明它是一個專有名詞。

特征歸納(Feature Induction)。前文中所述的“不支持特征技巧”是沒辦法中的辦法(poor man’s version of feature induction)。McCallum[83]給出了一種合理的方法:條件隨機場特征歸納。模型從一些基本特征開始,在訓練過程中加入其他特征。或者,可以利用特征選擇。特征選擇的一種更現代的方法是\(L_1\)規則化(\(L_1\)regularization),我們將在第5.1.1節中討論該方法。Lavergne等[65]發現在最有利情況下,\(L_1\)發現模型全部特征中僅有1%為非0。僅使用這些特征,獲得了與使用高密度特征配置類似的性能。他們還發現,在使用優化的\(L_1\)規則化似然來尋找非0特征之后,僅利用一個\(L_2\)規則化目標對非0特征的權值進行微調也有用。

定類特征(Categorical Features)。如果觀測值是定類的而非定序的,即觀測值是離散但沒有內在排序的,那么就需要將它們轉化為二值特征。例如,在\(f_k(y,x_t)\)上學習線性權重時,如果\(x_t\)是詞dog則\(f_k\)是1,否則為0,這是有意義的。但是若\(f_k\)是詞\(x_t\)在詞匯表中的序號,這樣就是無意義的。因此,在文本處理應用中,條件隨機場的特征通常是二值的;在其他應用領域,比如視覺和語音領域,特征常常是實值。對於實值特征,可以利用經典的方法,例如可將特征標准化為均值為0方差為1的形式,或者將其轉化為定類取值再轉化為兩值特征。

來自不同時間步的特征(Features from Different Time Steps)。盡管我們定義的特征函數\(f(y_t,y_{t-1},\mathbf{x}_t)\)中沒有指明,但是要知道特征不僅可以依賴當前標記,還可以依賴相鄰的標記。例如,“word \(x_{t+2}\) is Times and label \(y_t\) is ORGANIZTION”,在識別New York Times(作為報紙)的時候會非常有用。還可以利用來自多個時間步的特征,如“words \(x_{t+1}\) and \(x_{t+2}\) are York Times”。

備用特征(Features as Backoff)。在語言應用中,有時候在模型中包含冗余因子會很有幫助。例如,在線性鏈條件隨機場中,會同時包含邊因子\(\Psi_t(y_t,y_{t-1},\mathbf{x}_t)\)和變量因子\(\Psi_t(y_t,\mathbf{x}_t)\)。盡管僅利用邊因子就可以定義同樣的分布族,但冗余的節點因子會帶來與語言模型中的備用特征相似的優勢,即在特征數量比較多而數據集比較小時(有成百上千的特征,但數據集很小!)。在使用冗余特征時,對其進行標准化非常重要(5.1.1節),因為較大權值的懲罰作用使得權值可以通過重疊特征擴散。

作為模型聯合的特征(Features as Model Combination)。另一種有意思的特征,是來自相同任務的更簡單的方法的結果。例如,如果已經有了一個簡單的基於規則的系統(例如,包含規則“any string of digits between 1900 and 2100 is a year”),系統的預測可以作為另一個條件隨機場的觀測函數。另一個例子是地名辭典特征,這是基於預定義詞項列表的觀測函數,如“\(q(x_t)=1\) if \(x_t\) appears in a list of city names obtained from Wikipedia”。【基於規則的特征,或是否在列表中的存在作為特征】

更復雜的例子是利用一個生成模型的輸出作為另一個判別模型的輸入。你如,可以利用這樣的特征\(f_t(y,\mathbf{x})=p_{HMM}(y_t=y|\mathbf{x})\),其中\(p_{HMM}\)是在類似數據集上訓練的HMM模型中標記\(y_t=y\)的邊緣概率。可能在同樣的數據集上訓練HMM和CRF-with-HMM-feature並不是一個好主意,因為HMM在其自己的數據集上可能表現很好,這會造成CRF過於依賴HMM。當目標是提升現有系統在同樣任務上的性能時,這種方法比較有用。Bernal等[7]研究從DNA序列中識別基因,這是一個使用該方法的一個很好的例子。

另一個相關的思想是對輸入\(\mathbf{x}_t\)進行聚類,即用你喜歡的任何方法對語料庫中的詞進行聚類,然后利用詞\(x_t\)的聚類標記作為附加特征。這種特征在Miller等[90]中使用的效果很好。

輸入依賴的結構(Input-Dependent Structure)。在任意結構條件隨機場中,有時候允許\(p(\mathbf{y}|\mathbf{x})\)的圖結構依賴於輸入\(\mathbf{x}\)會有幫助【結構隨輸入變化】。一個簡單的例子是“skip-chain CRF”[37,117,133],它已經被用在文本應用中。這種條件隨機場背后的思想,是當相同的詞兩次出現在同一個句子中時,我們傾向於給它們做相同的標記。因此,我們在相應的兩個詞之間添加一條連邊。這樣,就得到了一個依賴於輸入\(\mathbf{x}\)\(\mathbf{y}\)的圖結構。

2.6 實例

本節詳細給出了兩個條件隨機場應用實例。第一個是用於自然語言文本的線性鏈條件隨機場,第二個是用於計算機視覺的網狀結構條件隨機場。

2.6.1 命名實體識別

命名實體識別是將恰當的名稱識別並分割出來,如文本中的人或組織的名稱。文中在很多地方都使用了該例子,現在我們詳細介紹利用條件隨機場解決該問題的細節內容。

實體(entity)是世界上的人、地方或東西,提述(mention)是實體的名稱所對應的的短語或文本。命名實體識別是分割問題(segmentation)的一種,因為在英語中命名實體常涉及到多個詞,如_The New York Times_、_the White House_等。實體的類型與具體問題相關。例如,在CoNLL2003評測的分享任務[121] (Conference on Computational Natural Language Learning, CoNLL)中,實體是人名、地名、組織,以及混雜實體(miscellaneous entities)。在生物醫學中[55,51],主要分割問題的目的是提取分子生物學文獻中的表達信息。因此,實體包括基因、蛋白質、細胞系(cell line)等。本節,我們考慮CoNLL2003的分享任務,因為它是早期條件隨機場應用的代表。

CoNLL2003分享任務的數據由英文和德文新聞文章組成。英文文章是路透社從1996到1997年間的聯機新聞文章。訓練集包括946篇新聞203621個符號,開發集(development set)包括216篇文章51362個詞,測試集包括231篇文章46435個詞。每篇文章都經過手工標注,包括命名實體的位置及類型。例如句子 U.N. official Ekeus heads for Baghdad。句中,_U.N._被標記為組織,_Ekeus_被標記為人名,_Baghdad_被標記為地名。

為了將該問題表示為序列標注問題,我們需要將實體的標簽轉換成標記序列。標記需要能夠將多個詞識別為一個實體(如_New York Times_)。我們采用一種標准的技巧:利用標記(B-???)表示實體的第一個詞,利用(I-???)表示實體其他的詞,利用O表示非實體詞。這種標記框架被稱為BIO符號,其優點是它能將相鄰的兩個同類型實體切分開,如_Alice gave Bob Charlie’s ball_,而且B-???標記可與相應的I-???標記有不同的權重。此外,還有與BIO不同的標記方法,可以將分割問題轉成實體標記問題,但是我們這里不作更多介紹。

在CoNLL2003數據集中有四種類型的實體:人(PER)、組織(ORG)、地方(LOC)及其他(MISC)。因此我們需要9個種標記

\[\mathcal{Y}=\{\text{B-PER, I-PER, B-LOC, I-LOC, B-ORG, I-ORG, B-MISC, I-MISC, O}\} \]

利用這種標記方法,我們將前面的例句標記為如下形式

為了為該問題定義一個線性鏈條件隨機場,我們需要確定特征函數\(f_k(y_t,y_{t-1},\mathbf{x}_t)\)的集合\(\mathcal{F}\)。最簡單的選擇是我們前面描述過的像HMM那樣的特征集。該特征集中有兩種類型的特征。第一種稱為標記-標記(label-label)特征,即

\[f_{ij}^{LL}(y_t,y_{t-1},\mathbf{x}_t)=\mathbf{1}_{\{y_t=i\}}\mathbf{1}_{\{y_{t-1}=j\}} \ \forall i,j \in \mathcal{Y}. \tag{2.29} \]

該問題有9個不同的標記,因此有81個標記-標記特征。第二種是標記-單詞特征,即

\[f_{iv}^{LW}(y_t,y_{t-1},\mathbf{x}_t)=\mathbf{1}_{\{y_t=i\}}\mathbf{1}_{\{\mathbf{x}_t=v\}}\ \forall i \in \mathcal{Y}, v \in \mathcal{V}, \tag{2.30} \]

其中,\(\mathcal{V}\)是在語料庫中出現的所有不重復單詞。在CoNLL2003的英語數據集中,有21249個詞,因此共有191241個標記-單詞特征。其中的大部分沒有太大用途,很多詞在訓練集中僅出現一次。對比式(2.18),完整的特征集為\(\mathcal{F}=\{f_{ij}^{LL}| \forall i,j \in \mathcal{Y} \} \cup \{f_{iv}^{LW} \forall i \in \mathcal{Y}, v \in \mathcal{V} \}\)

實際的NER(命名實體識別)系統中使用的特征會更多。例如,當預測單詞_Baghbad_的標記時,知道前一個詞_for_的標記會很有用。為了表示這種特征,我們在每個向量\(\mathbf{x}_t\)中增加了相鄰的詞,即\(\mathbf{x}_t=(x_{t0},x_{t1},x_{t2})\),其中\(x_{t1}\)是位於\(t\)的詞,\(x_{t0}\)\(x_{t2}\)分別是其前一個和后一個詞。序列的開始和結屬加上特殊標記\(\langle \text{START} \rangle\)\(\langle END \rangle\)。例句如下所示

為了構建一個條件隨機場,我們保留前面的標記-標記特征,但是現在我們有三種不同的標記-單詞特征:

\[\begin{align} f_{iv}^{LW0}(y_t,y_{t-1},\mathbf{x}_t) & = \mathbf{1}_{\{y_t=i\}}\mathbf{1}_{\{x_{t0}=v\}} \forall i \in \mathcal{Y}, v \in \mathcal{V} \\ f_{iv}^{LW1}(y_t,y_{t-1},\mathbf{x}_t) & = \mathbf{1}_{\{y_t=i\}}\mathbf{1}_{\{x_{t1}=v\}} \forall i \in \mathcal{Y}, v \in \mathcal{V} \\ f_{iv}^{LW2}(y_t,y_{t-1},\mathbf{x}_t) & = \mathbf{1}_{\{y_t=i\}}\mathbf{1}_{\{x_{t2}=v\}} \forall i \in \mathcal{Y}, v \in \mathcal{V}. \end{align} \]

不過, 我們還希望使用更多特征,大部都是基於單詞\(x_t\)的。包括標記-觀測特征(如2.5節所示)。為定義該特征,我們定義一列觀測函數\(q_b(x)\),它的參數為單個詞匯。對於每個觀測函數\(q_b\),相應的標記-觀測特征\(f_{ib}^{LO}\)的形式為:

\[f_{ib}^{LO}(y_t,y_{t-1},\mathbf{x}_t)=\mathbf{1}_{\{y_t = i \}}q_b(\mathbf{x}_t) \ \ \forall i \in \mathcal{Y}. \tag{2.31} \]

MCCallum和Li[86]在該數據集上使用條件隨機場時,他們使用了大量觀測-標記函數,部分如表2.2所示。這些函數都是二值函數。基於這三種特征集的例句如表2.3所示。為了顯示特征集,我們這給出的是對每個詞都非0的觀測函數。

這些特征是文本處理中典型的條件隨機場特征集,但是並非是最好的。在於該特殊的任務,Chieu和Ng[20]給出了一個使用單一模型(沒有使用集成方法)的非常好的特征集,

2.6.2 圖片標記

許多不同結構的條件隨機場已被用於計算機視覺。在本例中,我們根據是否前景或背景、是否是人造結構[61,62]、是否是天空、水或植物等[49],對圖片區域進行分類。

更嚴格地,令向量\(\mathbf{x}=\{x_1,x_2,\cdots,x_T \}\)表示大小為\(\sqrt{T} \times \sqrt{T}\)的圖片。也就是說,\(\mathbf{x}_{1:\sqrt{T}}\)為圖片第一行的像素,\(\mathbf{x}_{\sqrt{T}+1:2\sqrt{T}}\)表示第二行的像素,以次類推。\(x_i\)表示相應的像素值。為了簡單起見,將圖片處理為黑白的,於是每個\(x_i\)的取值為0到256,表示位置\(i\)的像素的色彩強度(彩色圖片的處理方式類似)。目的是預測一個向量\(\mathbf{y}=(y_1,y_2,\cdots,y_T)\),其中每個\(y_i\)為像素\(i\)的標記,如果該像素屬於圖片中的人造結構則為\(+1\),否則為\(-1\)

計算機視覺文獻中提出了多種圖像特征。一個簡單的例子,給定位於\(i\)的像素,我們基於以\(i\)為中心的\(5\times 5\)的像素陣計算一個像素密度直方圖(histogram),然后以直方圖中每個值的計數作為特征。實際中會用到更為復雜的特征,例如圖像的概率為基、紋理基元特征(texton features)[127]、SIFT特征[77]等。重要的是,這些特征都不僅僅依賴於像素\(x_i\);大部分有趣的特征依賴於一個像素區域,甚至是整個圖片。

圖片的一個基本特點是相鄰的相素傾向於具有相同的標記。將該特點考慮進模型的一種方法是在\(\mathbf{y}\)上利用先驗分布來“平滑”預測。計算機視覺中最常使用的先驗分布是網格狀結構的無向圖模型,稱為馬爾可夫隨機場(Markov random field)[10]。馬爾可夫隨機場是一種生成式無向模型,其中有兩種因子:一種將每個標記\(y_i\)與對應的\(x_i\)相連系,另一種使得標記\(y_i\)\(y_j\)傾向於有相同的標記。

更嚴格地,令\(\mathcal{N}\)為相素之間的相鄰關系(neighborhood relationship),\((i,j)\in \mathcal{N}\)當且僅當\(x_i\)\(x_j\)為相鄰像素。\(\mathcal{N}\)構成了一個\(\sqrt{T}\times \sqrt{T}\)的格子。馬爾可夫隨機場是一個生成模型:

\[\begin{align} p(\mathbf{y}) &=\frac{1}{Z} \prod_{(i,j) \in \mathcal{N}} \Psi(y_i,y_j) \\ p(\mathbf{y}, \mathbf{x})&=p(\mathbf{y})\prod _{i=1}^Tp(x_i|y_i). \tag{2.32} \end{align} \]

其中,\(\Psi\)是能夠促進平滑因子。一般情況下其形式為:若\(y_i=y_j\)\(\Psi(y_i,y_j)=1\),否則\(\Psi(y_i,y_j)=\alpha\)\(\alpha\)為從數據中學習到的參數,一般\(\alpha < 1\)。原因在於當\(\alpha<1\)時最大化\(\log p(\mathbf{y}, \mathbf{x})\)具有高效的算法。分布\(p(x_i|y_i)\)是一個像素值上的類別-條件分布(class-conditional distribution),例如,\(x_i\)上的混合高斯分布。

馬爾可夫隨機場的缺點是,它難以利用如前面所述的像素區域上的特征,因為這些特征會使\(p(\mathbf{x}|\mathbf{y})\)非常復雜。條件模型可以解決這個問題。

馬爾可夫隨機場僅能利用相信像素是否具有相同標記的信息,以及給定標記條件下像素值的條件分布信息。不能利用其他的特征。

下面我介要介紹的用於該任務的條件隨機場與馬爾可夫隨機場非常像似,唯一的不同在於條件隨機場允許像素點和像素連邊的因子依賴任意圖像特征。令\(q(x_i)\)為基於\(x_i\)附近圖像區域的特征構成的向量,例如,利用前面提到的顏色直方圖(color histograms)或圖像梯度(image gradient)。除此之外,我們還需要一個依賴於像素點對\(x_i\)\(x_j\)的特征向量\(\nu(x_i,x_j)\),以使得模型能夠將\(x_i\)\(x_j\)的相似或不同之處考慮進去。方法之一,是將\(\nu(x_i,x_j)\)定義為\(q(x_i)\)\(q(x_j)\)中特征的向量積(cross-products)的集合。也就是說,為了計算\(\nu(x_i,x_j)\),首先通過計算外積矩陣\(q(x_i)q(x_j)^\top\),然后再變為向量。

我們將函數\(q\)\(\nu\)稱為特征,因為在計算機視覺領域常使用這樣的術語。但是在本文中,我們已經將“特征”這個詞用於描述輸入\(\mathbf{x}\)和標記\(\mathbf{y}\)。因此,下文中我們將\(q\)\(\nu\)稱為觀測函數,用以定義條件隨機場中的標記-觀測特征。由此,得到的標記-觀測特征為

\[\begin{align} f_m(y_i,x_i) &= \mathbf{1}_{\{y_i=m\}}q(x_i) \ \ \forall m \in \{0,1\} \\ g_{m,m'}(y_i,y_j,x_i,x_j)& = \mathbf{1}_{\{y_i=m\}}\mathbf{1}_{\{y_i=m'\}} \nu(x_i,x_j) \ \ \forall m,m' \in \{0,1\} \\ f(y_i,x_i) &= \left( \begin{array}{c} f_0(y_i,x_i) \\ f_1(y_i,x_i) \end{array} \right) \\ g(y_i,y_j,x_i,x_j) &= \left( \begin{array}{c} g_{00}(y_i,y_j,x_i,x_j)\\ g_{01}(y_i,y_j,x_i,x_j)\\ g_{10}(y_i,y_j,x_i,x_j)\\ g_{11}(y_i,y_j,x_i,x_j) \end{array}\right) \end{align} \]

利用標記-觀測特征使得模型中每個標記可以有單獨的權值集合。

為了使這個例子更加具體化,下面給出\(g\)\(\nu\)的一種形式(來自一些著名的應用[14,119])。考慮馬爾可夫隨機場(式2.32)中的每對因子\(\Psi(x_i,y_j)\),盡管它使\(x_i\)\(y_i\)趨於一致,但其方式不夠靈活。如果像素\(x_i\)\(x_j\)具有不同的標記,我們希望它們具有不同的顏色強度,因為不同的物體往往具有不同的色調。因此,如果我們看到標記邊界上的兩個像素具有非常不同的色度,這不令人奇怪,但是如果這兩個像素具有同樣的色度,這就令人生疑了。不幸地,\(\Psi\)在兩種情況下給出了同樣的懲罰,因為the potential不依賴於像素值。為了解決這個問題,我們采用了文獻[14,119]中提出的方法:

\[\begin{align} \nu(x_i,x_j) &=\exp\{-\beta (x_i-x_j)^2\}\\ g(y_i,y_j,x_i,x_j) &=\mathbf{1}_{\{y_i\neq y_j\}}\nu(x_i,x_j). \tag{2.33} \end{align} \]

綜合以上分析,條件隨機場模型為:

\[p(\mathbf{y}|\mathbf{x}) = \frac{1}{Z(\mathbf{x})} \exp \left\{ \sum_{i=1}^T \theta^\top f(y_i,x_i) + \sum_{(i,j)\in \mathcal{N}} \lambda^\top g(y_i,y_j,x_i,x_j) \right\}, \tag{2.34} \]

其中,\(\alpha \in \Re, \theta \in \Re^K, \lambda \in \Re^{K^2}\)為模型參數。前兩項類似於條馬爾可夫隨機場中的兩種因子。第一項表示\(x_i\)的局部信息對標記\(y_i\)的作用。利用式(2.33)中的\(g\),第二項使得相鄰的標記趨於相似,而且依賴於不同的像素密度。

這是式(2.25)定義的任意結構條件隨機場的一個例子,式(2.25)中有三個團模板,式(2.34)中的三項每項對應着一個。

式(2.34)與(2.32)的區別類似於圖2.6和圖2.5中線性鏈條件隨機場的區別。成對因子依賴於圖像特征而不僅僅是標記自身。另外,正如序列的情況類似,馬爾可夫隨機場模型(式2.32)的條件分布\(p(\mathbf{y}|\mathbf{x})\)是條件隨機場的一個特例,即式(2.34)中\(\lambda=0\)的情況。

這個簡單的條件隨機場模型有多種改進方法。首先,特征函數\(q\)\(\nu\)可以更復雜,例如,考慮圖像形狀和基本結構(texture)[127],或者依賴於圖像的全局特征而不是局部特征。此外,還可以使用結構比網格更復雜的標記結構。例如,可以定義基於標記區域的因子[49,56]。關於計算機視覺領域條件隨機場和其他結構的預測模型,可以參考Nowozin和Lampert[101]。

2.7 條件隨機場的應用

除了上面的兩個例子,條件隨機場還被運用到其他很多領域之中,包括文本處理、計算機視覺、生物信息等。條件隨機場第一個大規模使用的是Sha和Pereira[125],獲得了名詞從句分割的最好的效果。在那之后,線性鏈條件隨機場被用於許多自然語言處理問題,包括命名實體識別[86],NER特征歸納[83],淺度解析[125,138],蛋白質名稱識別[124],網頁地址提取[29],信息整合[156],語義角色分析[118],音調口音預測[47],語音處理中的電話分類[48],觀點源識別[21],機器翻譯中的單詞對齊[12],論文中的引用抽取[105],文檔表格信息抽取[106],中文分詞[104],日文詞法分析[59],等等。

在生物信息領域,條件隨機場被用於RNA結構分析[123]和蛋白質結構預測[76]。半馬爾可夫(Semi-Markov)條件隨機場[122]允許使用更加靈活的特征函數。在線性鏈條件隨機場中,特征函數\(f()\)被限制在僅能依賴於連續的標記對。而在半馬爾可夫條件隨機場中,特征函數可以依賴於更多的標記,即一個具有相同值的標記序列。在許多依賴抽取任務中非常有用。

任意結構條件隨機場還被用於自然語言處理的多種任務中。其中之一,是同時進行多種標記的任務。例如,Sutton等[140]使用了一個兩層動態條件隨機場,同時進行詞性標記和名詞短識提取。另一種應用是多標記分類(multi-label classification),每個實例可以有多種標記。Ghamrawi and McCallum [42]給出了一個能夠學習不同類別之間依賴關系的條件隨機場,因此不再為每個類別給出單獨的分類器,提高了分類質量。最后,skip-chain CRF [133]是一種任意結構條件隨機場,能夠表示信息抽取中的長程依賴關系。

另一種使用不同結構的任意結構CRFs的應用是在專有名詞共指(proper-noun coreference)問題上,即確定文檔中提到的實體,例如Mr. President 和he指同一實體。McCallum和Wellner[88]利用一個完全連接的條件隨機場來解決這個問題。類似的模型還用在手寫字母和圖表的分割之上[26,108]。

如2.6.2節所述,條件隨機場被廣泛用於計算機視覺中,例如,網格結構(grid-shaped)條件隨機場用於標注和切分圖片[49,61,127]。盡管圖片標記是計算機視覺中常見的條件隨機場應用,但在該領域還有很多其他問題可以使用條件隨機場。例如,Quattoni等[109]利用了一個樹狀的條件隨機場,目的是使用隱變量識別物體的特征。該研究是最較早在條件隨機場中使用隱變量的例子。Felzenszwalb 等[36]等的研究是一個相當成功的包含了物體不同部分對應的變量的判別模型。

另一個計算機視覺問題是識別在不同圖片中出現的相似物體。例如,Deselaers等[33]給出了一個條件隨機場模型來解決該問題。

計算機視覺方面的綜述文獻參見Nowozin和Lampert[101]。

任意結構條件隨機場在自然語中的應用參見文獻[16,37,133]。

在一些條件隨機場應用中,盡管圖模型難以確定,但依舊存在有效的動態規划算法。例如,McCallum等[84]研究了字符串匹配問題。使用CRF來研究語法派生問題(derivations of a grammar)的文獻參見[23,38,114,148]。

2.8 關於術語

圖模型不同方面的理論是在不同的領域被獨立地提出的,因此許多概念在不同領域有不同的稱呼。例如,無向模型一般被稱為馬爾可夫隨機場、馬爾可夫網絡或Gibbs分布。如前所述,我們使用“圖模型”表示一族由圖結構定義的分布;“隨機場”或“分布”表示單獨的概率分布;“網絡”表示圖結構自身。這種稱呼與某些文獻並不完全一致,部分原因是一般情況下也不需要對這些概念進行精確地區分。

同樣,有向網絡模型一般稱為貝葉斯網絡,但是我們避免使用該術語,因為容易與貝葉斯統計中的概念相混淆。“生成模型”是在文獻中常常使用的一個重要術語,但是沒有精確的定義。(我們在2.2節給出了自己的定義)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM