1. 程式人生 > >【中文分詞】最大熵馬爾可夫模型MEMM

【中文分詞】最大熵馬爾可夫模型MEMM

Xue & Shen '2003 [2]用兩種序列標註模型——MEMM (Maximum Entropy Markov Model)與CRF (Conditional Random Field)——用於中文分詞;看原論文感覺作者更像用的是MaxEnt (Maximum Entropy) 模型而非MEMM。MEMM是由McCallum et al. '2000 [1]提出MEMM,針對於HMM的兩個痛點:一是其為生成模型(generative model),二是不能使用更加複雜的feature。

1. 前言

首先,將簡要地介紹HMM與MaxEnt模型。

HMM

概率圖模型(probabilistic graphical model, PGM)指用圖表示變數相關(依賴)關係的概率模型,主要分為兩類:

  • 有向圖模型或貝葉斯網(Bayesian network),使用有向圖表示變數間的依賴關係;
  • 無向圖模型或馬爾可夫網(Markov network),使用無向圖表示變數間相關關係。

監督學習的任務就是學習一個模型,對於給定的輸入\(X\),能預測出類別\(Y\)。所學習到的模型一般可表示為決策函式:

\begin{equation}
Y = f(X)
\label{eq:deci}
\end{equation}

或者為條件概率

\begin{equation}
\arg \mathop{max}\limits_{Y} P(Y|X)
\label{eq:cond}
\end{equation}

監督學習的模型分為生成模型(generative model)與判別模型(discriminative model)。生成模型學習聯合概率分佈\(P(X, Y)\),然後通過貝葉斯定理求解條件概率\eqref{eq:cond},而判別模型則是直接學習決策函式\eqref{eq:deci}或條件概率\eqref{eq:cond}。HMM屬於生成模型的有向圖PGM,通過聯合概率建模:

\[ P(S,O) = \prod_{t=1}^{n}P(s_t|s_{t-1})P(o_t|s_t) \]

其中,\(S\)\(O\)分別表示狀態序列與觀測序列。HMM的解碼問題為\(\arg \mathop{max}\limits_{S} P(S|O)\)

;定義在時刻\(t\)狀態為\(s\)的所有單個路徑\(s_1^t\)中的概率最大值為

\[ \delta_t(s) = \max P(s_1^{t-1}, o_1^{t}, s_t=s) \]

則有

\[ \begin{aligned} \delta_{t+1}(s) & = \max P(s_1^{t}, o_1^{t+1}, s_{t+1}=s) \\ & = \max_{s'} P(s_1^{t-1}, o_1^{t}, s_t=s') P(s_{t+1}|s_t) P(o_{t+1}|s_{t+1}) \\ & = \max_{s'} [\delta_t(s') P(s|s')] P(o_{t+1}|s) \end{aligned} \]

上述式子即為(用於解決HMM的解碼問題的)Viterbi演算法的遞推式;可以看出HMM是通過聯合概率來求解標註問題的。

最大熵模型

最大熵(Maximum Entropy)模型屬於log-linear model,在給定訓練資料的條件下對模型進行極大似然估計或正則化極大似然估計:

\begin{equation}
P_w(y|x) = \frac{exp \left( \sum_i w_i f_i(x,y) \right)}{Z_w(x)}
\label{eq:me-model}
\end{equation}

其中,\(Z_w(x) = \sum_{y} exp \left( \sum_i w_i f_i(x,y) \right)\)為歸一化因子,\(w\)為最大熵模型的引數,\(f_i(x,y)\)為特徵函式(feature function)——描述\((x,y)\)的某一事實。

最大熵模型並沒有假定feature相互獨立,允許使用者根據domain knowledge設計feature。

2. MEMM

MEMM並沒有像HMM通過聯合概率建模,而是直接學習條件概率

\begin{equation}
P(s_t|s_{t-1},o_t)
\label{eq:memm-cond}
\end{equation}

因此,有別於HMM,MEMM的當前狀態依賴於前一狀態與當前觀測;HMM與MEMM的圖模型如下(圖來自於[3]):

一般化條件概率\eqref{eq:memm-cond}為\(P(s|s',o)\)。MEMM用最大熵模型來學習條件概率\eqref{eq:memm-cond},套用模型\eqref{eq:me-model}則有:

\begin{equation}
P(s|s',o) = \frac{ exp \left( \sum_a \lambda_a f_a(o,s) \right)}{ Z(o,s')}
\label{eq:memm-model}
\end{equation}

其中,\(\lambda_a\)為學習引數;\(a=<b,s>\)\(b\)為feature,\(s\)為destination state;特徵函式\(f_a(o,s)\)的示例如下(圖出自於[6]):

類似於HMM,MEMM的解碼問題的遞推式:

\[ \delta_{t+1}(s) = \max_{s'} \delta_t(s') P(s|s', o_{t+1}) \]

但是,MEMM存在著標註偏置問題(label bias problem)。比如,有如下的概率分佈(圖來自於[7]):

根據上述遞推式,則概率最大路徑如下:

但是,從全域性的角度分析:

  • 無論觀測值,State 1 總是更傾向於轉移到State 2;
  • 無論觀測值,State 2 總是更傾向於轉移到State 2.

從式子\eqref{eq:memm-model}可以看出MEMM所做的是本地歸一化,導致有更少轉移的狀態擁有的轉移概率普遍偏高,概率最大路徑更容易出現轉移少的狀態。因MEMM存在著標註偏置問題,故全域性歸一化的CRF被提了出來[3]。欲知CRF如何,請看下一篇分解。

3. 參考資料

[1] McCallum, Andrew, Dayne Freitag, and Fernando CN Pereira. "Maximum Entropy Markov Models for Information Extraction and Segmentation." Icml. Vol. 17. 2000.
[2] Xue, Nianwen, and Libin Shen. "Chinese word segmentation as LMR tagging." Proceedings of the second SIGHAN workshop on Chinese language processing-Volume 17. Association for Computational Linguistics, 2003.
[3] Lafferty, John, Andrew McCallum, and Fernando Pereira. "Conditional random fields: Probabilistic models for segmenting and labeling sequence data." Proceedings of the eighteenth international conference on machine learning, ICML. Vol. 1. 2001.
[4] 李航,《統計學習方法》.
[5] 周志華,《機器學習》.
[6] Nikos Karampatziakis, Maximum Entropy Markov Models.
[7] Ramesh Nallapati, Conditional Random Fields.

相關推薦

中文模型MEMM

Xue & Shen '2003 [2]用兩種序列標註模型——MEMM (Maximum Entropy Markov Model)與CRF (Conditional Random Field)——用於中文分詞;看原論文感覺作者更像用的是MaxEnt (Maximum Entropy) 模型而非MEM

中文二階隱模型2-HMM

在前一篇中介紹了用HMM做中文分詞,對於未登入詞(out-of-vocabulary, OOV)有良好的識別效果,但是缺點也十分明顯——對於詞典中的(in-vocabulary, IV)詞卻未能很好地識別。主要是因為,HMM本質上是一個Bigram的語法模型,未能深層次地考慮上下文(context)。對於此,

自然語言期末複習筆記—模型MEMM

在這篇部落格,我們來談一談最大熵馬爾科夫模型MEMM 關於這部分內容,我看了一晚上,整個公式都都梳理了之後,愣是沒明白這個最大熵體現在哪裡,當然我最終查閱了很多資料,終於還是弄明白了,我會在這篇部落格上詳細講解。不得不說一下,咱們國內的部落格基本都是來自同一個

[白話解析]用水滸傳為例學習模型

# [白話解析]用水滸傳為例學習最大熵馬爾科夫模型 ## 0x00 摘要 本文將盡量使用易懂的方式,儘可能不涉及數學公式,而是從整體的思路上來看,運用感性直覺的思考來解釋最大熵馬爾可夫模型。並且從名著中找了個具體應用場景來幫助大家深入這個概念。 在機器學習過程中,會遇到很多晦澀的概念,相關數學公式很多,

統計學習方法-李航-筆記總結十、隱模型

本文是李航老師《統計學習方法》第十章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://www.cnblogs.com/YongSun/p/4767667.html https://www.cnblogs.com/naonaoling/p/5701634.html htt

中文--逆向匹配

res 最長 java 搜索字符串 name ++ san imp 匹配 上一篇文章中介紹了正向最大匹配。能夠看到有時候效果不是非常好。這裏在介紹一種逆向最大匹配的算法。詞典和匹配的字符串都和上一篇文章同樣 僅僅是本算法是從後到前搜索字符串。然後找到最長的

閾值分割分割法

第一次嘗試寫部落格,希望能堅持下去。。。 最近在做紅外小目標檢測,用到一個最大熵分割法,ok,下面介紹一下。 最大熵分割法 現在主要用的熵演算法有 P 氏熵演算法,KSW 熵演算法、JM 熵演算法下面以經典的 KSW 熵演算法為例介紹其原理和計算過程。 KSW熵演算法

中文結構化感知器SP

結構化感知器(Structured Perceptron, SP)是由Collins [1]在EMNLP'02上提出來的,用於解決序列標註的問題。中文分詞工具THULAC、LTP所採用的分詞模型便是基於此。 1. 結構化感知器 模型 CRF全域性化地以最大熵準則建模概率\(P(Y|X)\);其中,\(X\)為

中文模型HMM

Nianwen Xue在《Chinese Word Segmentation as Character Tagging》中將中文分詞視作為序列標註問題(sequence tagging problem),由此引入監督學習演算法來解決分詞問題。 1. HMM 首先,我們將簡要地介紹HMM(主要參考了李航老師的《

中文簡單高效的MMSeg

最近碰到一個分詞匹配需求——給定一個關鍵詞表,作為自定義分詞詞典,使用者query文字分詞後,是否有詞落入這個自定義詞典中?現有的大多數Java系的分詞方案基本都支援新增自定義詞典,但是卻不支援HDFS路徑的。因此,我需要尋找一種簡單高效的分詞方案,稍作包裝即可支援HDFS。MMSeg分詞演算法正是完美地契合

中文條件隨機場CRF

之前介紹的MMEM存在著label bias問題,因此Lafferty et al. [1] 提出了CRF (Conditional Random Field). BTW:比較有意思的是,這篇文章的二作與三作同時也是MEMM的作者。 1. 前言 本節將遵從tutorial [2] 的論文結構,從概率模型(Pr

中文——正向匹配法

中文分詞應用很廣泛,網上也有很多開源專案。我在這裡主要講一下中文分詞裡面演算法的簡單實現,廢話不多說了,現在先上程式碼 package com; import java.util.ArrayList; import java.util.List; public cl

轉:從頭開始編寫基於隱含模型HMM的中文

lan reverse single trim 地址 note str rip resources http://blog.csdn.net/guixunlong/article/details/8925990 從頭開始編寫基於隱含馬爾可夫模型HMM的中文分詞器之一 - 資

模型(HMM)和 jieba原始碼的理解

在理解隱馬爾可夫模型(HMM)時,看到的很好的部落格,記錄一下: 1. 隱馬爾可夫模型(HMM) - 1 - 基本概念:http://blog.csdn.net/xueyingxue001/article/details/51435728 2.隱馬爾可夫模型(HMM) - 2 -

機器學習筆記18模型

【參考資料】 【1】《統計學習方法》 隱馬爾可夫模型(HMM)定義 隱馬爾可夫模型: 隱馬爾可夫模型是關於時序的模型,描述一個由隱藏的馬爾可夫鏈生成的不可觀測的狀態序列,再由各個狀態生成的觀測值所構成的一個觀測序列。 形式化定義HMM為λ=(A,B,π)\la

演算法模型 HMM

隱馬爾可夫模型 (Hidden Markov Model,HMM) 以下來源於_作者 :skyme 地址:http://www.cnblogs.com/skyme/p/4651331.html 隱馬爾可夫模型(Hidden Markov Model,HMM)是統計模型,它用來描述一

NLP揭祕模型神祕面紗系列文章(二)

作者:白寧超 2016年7月11日15:31:11 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP揭祕模型神祕面紗系列文章(一)

作者:白寧超 2016年7月10日20:34:20 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP揭祕模型神祕面紗系列文章(三)

作者:白寧超 2016年7月11日22:54:57 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP揭祕模型神祕面紗系列文章(五)

作者:白寧超 2016年7月12日14:28:10 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句