CRF用過了,不妨再了解下更快的MEMM?

2021-01-14 PaperWeekly

©PaperWeekly 原創 · 作者|蘇劍林

單位|追一科技

研究方向|NLP、神經網絡

HMM、MEMM、CRF 被稱為是三大經典概率圖模型,在深度學習之前的機器學習時代,它們被廣泛用於各種序列標註相關的任務中。一個有趣的現象是,到了深度學習時代,HMM 和 MEMM 似乎都「沒落」了,舞臺上就只留下 CRF。相信做 NLP 的讀者朋友們就算沒親自做過也會聽說過 BiLSTM+CRF 做中文分詞、命名實體識別等任務,卻幾乎沒有聽說過 BiLSTM+HMM、BiLSTM+MEMM 的,這是為什麼呢?今天就讓我們來學習一番 MEMM,並且通過與 CRF 的對比,來讓我們更深刻地理解概率圖模型的思想與設計。

從 MEMM 全稱 Maximum Entropy Markov Model,中文名可譯為「最大熵馬爾可夫模型」。不得不說,這個名字可能會嚇退 80% 的初學者:最大熵還沒搞懂,馬爾可夫也不認識,這兩個合起來怕不是天書?而事實上,不管是 MEMM 還是 CRF,它們的模型都遠比它們的名字來得簡單,它們的概念和設計都非常樸素自然,並不難理解。 


回顧 CRF


作為對比,我們還是來回顧一下 CRF。說是「回顧」,是因為筆者之前已經撰文介紹過 CRF 了,如果對 CRF 還不是很了解的讀者,可以先去閱讀舊作簡明條件隨機場CRF介紹 | 附帶純Keras實現。簡單起見,本文介紹的 CRF 和 MEMM 都是最簡單的「線性鏈」版本。


本文都是以序列標註為例,即輸入序列 x=(x1,x2,…,xn),希望輸出同樣長度的標籤序列 y=(y1,y2,…,yn),那麼建模的就是概率分布:



CRF 把 y 看成一個整體,算一個總得分,計算公式如下:



這個打分函數的特點就是顯式地考慮了相鄰標籤的關聯,其實 g(yk−1,yk) 被稱為轉移矩陣。現在得分算出來了,概率就是得分的 softmax,所以最終概率分布的形式設為:



如果僅局限於概念的話,那麼 CRF 的介紹到此就結束了。總的來說,就是將目標序列當成一個整體,先給目標設計一個打分函數,然後對打分函數進行整體的 softmax,這個建模理念跟普通的分類問題是一致的。CRF 的困難之處在於代碼實現,因為上式的分母項包含了所有路徑的求和,這並不是一件容易的事情,但在概念理解上,筆者相信並沒有什麼特別困難之處。


更樸素的 MEMM


現在我們來介紹 MEMM,它可以看成一個極度簡化的 seq2seq 模型。對於目標 (1) ,它考慮分解:



然後假設標籤的依賴只發生在相鄰位置,所以:



接著仿照線性鏈 CRF 的設計,我們可以設:



至此,這就得到了 MEMM 了。由於 MEMM 已經將整體的概率分布分解為逐步的分布之積了,所以算 loss 只需要把每一步的交叉熵求和。


兩者的關係


將式 (6) 代回式 (5) ,我們可以得到:



對比式 (7) 和式 (3),我們可以發現,MEMM 跟 CRF 的區別僅在於分母(也就是歸一化因子)的計算方式不同,CRF 的式 (3) 我們稱之為是全局歸一化的,而 MEMM 的式 (7) 我們稱之為是局部歸一化的。


這一節我們來分析 MEMM 的優劣、改進與效果。 

MEMM 的優劣

MEMM 的一個明顯的特點是實現簡單、速度快,因為它只需要每一步單獨執行 softmax,所以 MEMM 是完全可以並行的,速度跟直接逐步 Softmax 基本一樣。

而對於 CRF,式 (3) 的分母並不是那麼容易算的,它最終轉化為一個遞歸計算,可以在 O(n) 的時間內算出來(具體細節還請參考簡明條件隨機場CRF介紹 | 附帶純Keras實現),遞歸就意味著是串行的,因此當我們模型的主體部分是高度可並行的架構(比如純 CNN 或純 Attention 架構)時,CRF 會嚴重拖慢模型的訓練速度。後面我們有比較 MEMM 和 CRF 的訓練速度(當然,僅僅是訓練慢了,預測階段 MEMM 和 CRF 的速度都一樣)。 

至於劣勢,自然也是有的。前面我們提到過,MEMM 可以看成是一個極度簡化的 seq2seq 模型。既然是這樣,那麼普通 seq2seq 模型有的弊端它都有。seq2seq 中有一個明顯的問題是 exposure bias,對應到 MEMM 中,它被稱之為 label bias,大概意思是:在訓練 MEMM 的時候,對於當前步的預測,都是假設前一步的真實標籤已知。

這樣一來,如果某個標籤 A 後面只能接標籤 B ,那麼模型只需要通過優化轉移矩陣就可以實現這一點,而不需要優化輸入 x 對 B 的影響(即沒有優化好 f(B;x));然而,在預測階段,真實標籤是不知道的,我們可能無法以較高的置信度預測前一步的標籤 A ,而由於在訓練階段,當前步的 f(B;x) 也沒有得到強化,所以當前步 B 也無法準確預測,這就有可能導致錯誤的預測結果。 

雙向 MEMM

label bias可能不好理解,但我們可以從另外一個視角看 MEMM 的不足:事實上,相比 CRF,MEMM 明顯的一個不夠漂亮的地方就是它的不對稱性——它是從左往右進行概率分解的。

筆者的實驗表明,如果能解決這個不對稱性,能夠稍微提高 MEMM 的效果。筆者的思路是:將 MEMM 也從右往左做一遍,這時候對應的概率分布是:

然後也算一個交叉熵,跟從左往右的式 (7) 的交叉熵平均,作為最終的 loss。這樣一來,模型同時考慮了從左往右和從右往左兩個方向,並且也不用增加參數,彌補了不對稱性的缺陷。作為區分,筆者類比 Bi-LSTM 的命名,將其稱為 Bi-MEMM。 

註:Bi-MEMM 這個名詞並不是在此處首次出現,據筆者所查,首次提出 Bi-MEMM 這個概念的,是論文 Bidirectional Inference with the Easiest-First Strategy for Tagging Sequence Data [1],裡邊的 Bi-MEMM 是指一種 MEMM 的雙向解碼策略,跟本文的 Bi-MEMM 含義並不相同。

為了驗證和比較 MEMM 的效果,筆者將 CRF 和 MEMM 同時寫進了 bert4keras [2] 中,並且寫了中文分詞 [3] 和中文命名實體識別 [4] 兩個腳本。在這兩個腳本中,從 CRF 切換到 MEMM 非常簡單,只需將 ConditionalRandomField 替換為 MaximumEntropyMarkovModel 。 詳細的實驗數據就不貼出來了,反正就是一些數字罷了,下面直接給出一些相對比較的結果: 1. 相同的實驗參數下,Bi-MEMM 總是優於 MEMM,MEMM 總是優於 Softmax; 2. 相同的實驗參數下,CRF 基本上不差於 Bi-MEMM; 3. 當編碼模型能力比較強時,CRF 與 Bi-MEMM 效果持平;當編碼模型較弱時,CRF 優於 Bi-MEMM,幅度約為 0.5% 左右; 4. 用 12 層 bert base 模型作為編碼模型時,Bi-MEMM 比 CRF 快 25%;用 2 層 bert base 模型作為編碼模型時,Bi-MEMM 比 CRF 快 1.5 倍。註:由於筆者發現 Bi-MEMM 效果總比 MEMM 略好,並且兩者的訓練時間基本無異,所以 bert4keras 裡邊的 MaximumEntropyMarkovModel 默認就是 Bi-MEMM。

根據上面的結論,在深度學習時代,MEMM 的「沒落」似乎就可以理解了——MEMM 除了訓練速度快點之外,相比 CRF 似乎也就沒什麼好處了,兩者的預測速度是一樣的,而很多時候我們主要關心預測速度和效果,訓練速度稍微慢點也無妨。

這兩個模型的比較結果是有代表性的,可以說這正是所有全局歸一化和局部歸一化模型的差異:全局歸一化模型效果通常好些,但實現通常相對困難一些;局部歸一化模型效果通常不超過全局歸一化模型,但勝在易於實現,並與易於拓展。 

如何易於拓展?這裡舉兩個方向的例子。 

第一個例子,假如標籤數很大的時候,比如用序列標註的方式做文本糾錯或者文本生成時(相關例子可以參考論文 Fast Structured Decoding for Sequence Models [5]),標籤的數目就是詞表裡邊的詞彙數 |V| ,就算用了 subword 方法,詞彙數少說也有一兩萬,這時候轉移矩陣的參數量就達到數億(),難以訓練。

讀者可能會想到低秩分解,不錯,低秩分解可以將轉移矩陣的參數量控制為 2d|V| ,其中 d 是分解的中間層維度。不幸的是,對於 CRF 來說,低秩分解不能改變歸一化因子計算量大的事實,因為 CRF 的歸一化因子依然需要恢復為 |V| × |V| 的轉移矩陣才能計算下去,所以對於標籤數目巨大的場景,CRF 無法直接使用。

但幸運的是,對於 MEMM 來說,低秩分解可以有效低降低訓練時的計算量,從而依然能夠有效的使用。bert4keras 裡邊所帶的 MaximumEntropyMarkovModel 已經把低秩序分解集成進去了,有興趣的讀者可以查看源碼了解細節。 

第二個例子,上述介紹的 CRF 和 MEMM 都只考慮相鄰標籤之間的關聯,如果我要考慮更複雜的鄰接關聯呢?比如同時考慮  跟  的關聯?

這時候 CRF 的全局歸一化思路就很難操作了,歸根結底還是歸一化因子難算;但如果是 MEMM 的局部歸一化思路就容易進行。事實上,筆者之前設計的信息抽取分層標註思路,也可以說是一種跟 MEMM 類似的局部歸一化的概率圖模型,它考慮的關聯就更複雜化了。

本文介紹並簡單推廣了跟 CRF 一樣同為概率圖經典案例的 MEMM,它與 CRF 的區別主要是歸一化方式上的不一樣,接著筆者從實驗上對兩者做了簡單的比較,得出 MEMM 訓練更快但效果不優於 CRF 的結論。儘管如此,筆者認為 MEMM 仍有可取之處,所以最後構思了 MEMM 的一些拓展。

[1] https://www.aclweb.org/anthology/H05-1059/

[2] https://github.com/bojone/bert4keras

[3] https://github.com/bojone/bert4keras/blob/master/examples/task_sequence_labeling_cws_crf.py

[4] https://github.com/bojone/bert4keras/blob/master/examples/task_sequence_labeling_ner_crf.py

[5] https://arxiv.org/abs/1910.11555



點擊以下標題查看更多往期內容: 




#投 稿 通 道#

 讓你的論文被更多人看到 


如何才能讓更多的優質內容以更短路逕到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。


總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 


PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術乾貨。我們的目的只有一個,讓知識真正流動起來。


📝 來稿標準:

• 稿件確係個人原創作品,來稿需註明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向) 

• 如果文章並非首發,請在投稿時提醒並附上所有已發布連結 

• PaperWeekly 默認每篇文章都是首發,均會添加「原創」標誌


📬 投稿郵箱:

• 投稿郵箱:hr@paperweekly.site 

• 所有文章配圖,請單獨在附件中發送 

• 請留下即時聯繫方式(微信或手機),以便我們在編輯發布時和作者溝通




🔍


現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧



關於PaperWeekly


PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。


▽ 點擊 | 閱讀原文 | 查看作者博客

相關焦點

  • Hanlp分詞之CRF中文詞法分析詳解
    java -cp hanlp.jar com.hankcs.hanlp.model.crf.crfpp.crf_learn -T cws.bin cws.txt與CRF++兼容由於C++的運行效率和內存效率優於Java,所以推薦直接利用CRF++執行大規模訓練
  • 自然語言處理條件隨機場CRF
    稍不同於linear CRF,HMM可以用有向圖模型來表示,因為states與observations之間存在著明顯的依賴關係。 表示前一個state,事實上它可以有更豐富的表達。例如特徵函數可以表示當前的state與任意一個observation或者 state甚至future state的關係。也就是說,特徵方程的存在允許CRF有十分自由的特徵表達,
  • 感到很無聊的人,不妨讀下居裡夫人的語錄,餘生會過得很有趣!
    那麼上了一天班,做了一天自己不想做的事,一下班自然就會想要放鬆,就開始玩手機,每天重複著這樣生活,剛開始可能沒有發覺有什麼問題,當快到三四十歲時候,就突然感到時間快得可怕,自己依舊一無所有,婚也沒有結。每天還是那麼漫無目的生活,找不到目標,感到無聊,這樣生活,很多人遲早會發現有問題。因為人會越來越頹廢,越來越墮落。
  • 簡明條件隨機場CRF介紹 | 附帶純Keras實現
    於是考慮到當前深度學習模型中,RNN 或者層疊 CNN 等模型已經能夠比較充分捕捉各個 y 與輸出 x 的聯繫,因此,我們不妨考慮函數 g 跟 x 無關,那麼:作為損失函數,可以算出它等於:實現經過調試,基於 Keras 框架下,筆者得到了一個線性鏈 CRF 的簡明實現,這也許是最簡短的 CRF 實現了。這裡分享最終的實現並介紹實現要點。
  • 不妨來了解下!
    不妨來了解下!講到中國的國土面積,隨便找個身邊的人問,都會不假思索的說出960萬平方公裡。因為大家從小就能從書本上學習到,但這個是怎麼計算出來得出來的呢?不知道大家有沒有思考過這個問題呢?中國建國時官方公布的是:中國的陸地國土面積為約960萬平方千米。查閱資料很多都顯示沒有確切的數字,有的說是在955到960中間,就連上學老師教的都是大約為960,我國的國土面積有多大?
  • 男人用過的東西,為啥「黃」得那麼快?別嫌棄,答案在這!
    你是否也有同感,只要是男人用過的東西,都會變得又「油」又「黃」? 難道,他們真的是由內到外的「汙」嗎? 嘿嘿嘿,答案都在這裡~ 為什麼男性用過的東西會發黃?
  • 笑話不斷更:嫂子,快蹲下,好,再起來 猜謎語哈,打一藥材名
    5.如果你覺得兩口子在一起沒意思,各自玩自己的手機也特別沒意思,不妨試試交換一下手機,那麼~~~故事就開始了6.昨天晚上在宿舍煮火鍋吃,自己一個人吃了一斤牛肉,還有若干千張結,茼蒿,丸子,撐得我胃疼到半夜才迷迷糊糊睡去,這是借吃消愁愁更愁
  • 年過50歲後,高壓160、低壓100算正常嗎?不妨來瞅一眼了解下
    一、年過50歲後,高壓160、低壓100算正常嗎?不妨來瞅一眼了解下從上面的圖片中我們就看到了,血壓的正常範圍和各種血壓的分級,就算是我們過了50歲血壓在160左右,低壓100,同樣屬於中高度的高血壓,雖然說此時的血壓不足以影響我們的生命健康,但還是會對我們的身體有所影響的,容易引發各種的併發症,所以我們應該通過各方面來穩定住血壓。
  • 還在用翹板開關嗎?免布線遙控開關了解下
    還在用翹板開關?冬天不願意起床關燈?還在煩惱家具擋住了開關?免布線遙控開關了解下吧。市面上的智能開關,大部分用的是WIFI協議,為什麼用的不多,因為需要加適配器安裝很麻煩,現在射頻433的技術已經很成熟了,不妨可以入手試試,而且可以穿牆走壁,想安在哪就安在哪,沒有電線的束縛,大冬天的躲在被窩裡關燈不再是一件奢侈的事了。
  • 男性長期得不到「滿足」,三個重要功能會下降,不妨了解下
    男性長期得不到「滿足」,三個重要功能會下降,不妨了解下過去我們經常講「成家立業」,也就是說男性到適婚年齡之後,需要尋找一個合適的對象,組成一個美滿的家庭。然而一起再開始創業。因此,不少人會選擇先創業,具備一定的經濟條件之後再成家。現如今30歲出頭以還沒結婚的大齡青年非常普遍,尤其是生活條件比較落後的農村地區,甚至有不少人存在恐婚現象。據統計,80後買沒對象的男性還有很多,而90後也相繼開始步入了社會,而陪伴他們最多的除了工作之外,就是手機。而這個年齡的人體,生理上或處於「荷爾蒙」最為旺盛的時期,卻得不到合理的滿足。
  • 古代俗語:水滿則溢、月滿則虧,下半句更經典,年輕人不妨一看
    古代俗語:水滿則溢,月滿則虧,下半句更經典,年輕人不妨一看當我們給水杯盛水時,都不會將水杯盛滿,會留一部分空間出來,這樣水就不會溢出來,端杯子的時候也不會擔心開水撒在手上燙傷了,而月亮也是如此,當月亮特別圓的時候,就很容易出現月蝕,用一句俗語來概括就是
  • 喜歡讓孩子寫保證書的父母,不妨讀下李玫瑾的語錄,會後悔莫及!
    寫保證書,大家都不陌生,很多人小時候都寫過,在學校裡寫過,在家裡也寫過。在家裡寫的,還要貼在房間裡,每天當著父母面讀一遍。在學校時候寫過的保證書,還要當著全班人面前讀,要大聲的朗讀,這些事兒,很多人都做過。
  • 不妨了解下
    不妨了解下對於吃雞蛋不利於體內的穩定血糖值這個說法,眾說紛紜。其實一個雞蛋的膽固醇也不是很高,只有250-300毫克,能被我們身體所吸收的也就只有不到100克,所以說,每天吃一個雞蛋,並不會使我們的血糖和血脂升高。雞蛋中有一種物質,叫做卵磷脂,可以提高我們肝臟的解毒功能,並且可以促進我們分泌膽汁,從而幫助我們降血糖、降血脂。
  • 醫生提醒:戒菸後,身體慢慢變好,但有個後遺症,不妨多了解一下
    3、口氣更清新長期吸菸會使口腔當中有一股難聞的煙味兒,無論怎麼刷牙都改變不了,同時還伴隨咳嗽和咳痰的情況發生,戒菸之後不但口氣變清新,咳嗽現象也有所緩解。4、呼吸更順暢戒菸成功後,你會發現肺部變得更清爽,呼吸更通暢,肺活量也大大提高,跑步時也不會再出現氣喘籲籲的情況。
  • 為什麼順產開指有快有慢?原來都有講究,提前了解少遭罪
    就比如:為什麼順產開指有快有慢呢?原來這裡面都是有講究的,作為孕媽提前了解可以少遭罪。開指的過程其實有講究想要弄清開指快慢的原因,就要先弄清開指過程,因為這也有講究。開指過程,也就是俗稱的開宮口,也是專業上講的子宮頸口擴張。一般臨產發動後,一旦出現規律性宮縮,醫生就會通過內檢來看宮口的情況,看看開了多少指。
  • 過來人說出大實話,不妨了解下
    過來人說出大實話,了解下四維顯示的長相跟出生後有差距嗎?過來人說出大實話,不妨了解下網友@*&-糖豆*:做四維檢查的時候看到圖像。當時真的是覺得好醜啊。但是寶寶出生之後,發現其實長得也蠻好看的。網友@BAT楊:想起當時看節目,霍思燕說嗯哼,剛出生的時候都想看著他,只有4個字的評論「差強人意」。
  • 測血糖的注意事項,不妨了解一下
    夏大媽也並沒有放在心上,認為自己的血糖恢復正常了,不過去醫院進行複查時,在醫生的測量下才發現,原來夏大媽的血糖指數並沒有回歸正常,這究竟是怎麼回事兒呢?經過了解後才發現,原來夏大媽在家測量血糖時,採用的測量方式是不準確的,因為他沒有注意到這些事情。一、量血糖時,測哪個手指比較好?
  • 不想淘汰過快選什麼 六款低價CPU盤點
    在性價比日漸提高的低端處理器市場中,消費理念也在悄然發生著變化,用戶開始考慮到預留餘量以應對日漸增長的多媒體以及遊戲性能需求,另外要應對年末即將面市的VISTA就更不用說了。  那眼下即想省錢,又不想淘汰得過快該選什麼處理器呢?還有早先選購了低端775賽揚處理器和754閃龍處理器的玩家又該如何在近期完成升級呢?接下來筆者就和大家一一分享一下。
  • 不妨多了解下色溫,更專業地拍照片!
    攝影當中還有一個很重要的參數,那就是白平衡,通常情況,設置為自動就足以應對絕大多數的拍攝場景,然而,靈活地調整白平衡的參數,可以應對不常見的拍攝環境,也可以拍出自己想要的不同風格和類型的的照片,下面一起來看看白平衡有哪些需要了解的。
  • 如何讓庭院更有情調?臨潼女性不妨玩玩「草」!
    如何讓庭院更有情調?臨潼女性不妨玩玩「草」!那亦是愜意生活的寄託今天,小編帶大家走進美麗庭院「雲」課堂認識這幾種「草」讓庭院秒變網紅▼清晨的朝陽下,剪幾枝紅的黃的花,帶著昨夜的露水和早晨的芬芳,