CRF用过了,不妨再了解下更快的MEMM?
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
HMM、MEMM、CRF 被稱(chēng)為是三大經(jīng)典概率圖模型,在深度學(xué)習(xí)之前的機(jī)器學(xué)習(xí)時(shí)代,它們被廣泛用于各種序列標(biāo)注相關(guān)的任務(wù)中。一個(gè)有趣的現(xiàn)象是,到了深度學(xué)習(xí)時(shí)代,HMM 和 MEMM 似乎都“沒(méi)落”了,舞臺(tái)上就只留下 CRF。
相信做 NLP 的讀者朋友們就算沒(méi)親自做過(guò)也會(huì)聽(tīng)說(shuō)過(guò) BiLSTM+CRF 做中文分詞、命名實(shí)體識(shí)別等任務(wù),卻幾乎沒(méi)有聽(tīng)說(shuō)過(guò) BiLSTM+HMM、BiLSTM+MEMM 的,這是為什么呢?
今天就讓我們來(lái)學(xué)習(xí)一番 MEMM,并且通過(guò)與 CRF 的對(duì)比,來(lái)讓我們更深刻地理解概率圖模型的思想與設(shè)計(jì)。
模型推導(dǎo)
從 MEMM 全稱(chēng) Maximum Entropy Markov Model,中文名可譯為“最大熵馬爾可夫模型”。不得不說(shuō),這個(gè)名字可能會(huì)嚇退 80% 的初學(xué)者:最大熵還沒(méi)搞懂,馬爾可夫也不認(rèn)識(shí),這兩個(gè)合起來(lái)怕不是天書(shū)?而事實(shí)上,不管是 MEMM 還是 CRF,它們的模型都遠(yuǎn)比它們的名字來(lái)得簡(jiǎn)單,它們的概念和設(shè)計(jì)都非常樸素自然,并不難理解。?
回顧 CRF
作為對(duì)比,我們還是來(lái)回顧一下 CRF。說(shuō)是“回顧”,是因?yàn)楣P者之前已經(jīng)撰文介紹過(guò) CRF 了,如果對(duì) CRF 還不是很了解的讀者,可以先去閱讀舊作簡(jiǎn)明條件隨機(jī)場(chǎng)CRF介紹 | 附帶純Keras實(shí)現(xiàn)。簡(jiǎn)單起見(jiàn),本文介紹的 CRF 和 MEMM 都是最簡(jiǎn)單的“線(xiàn)性鏈”版本。
本文都是以序列標(biāo)注為例,即輸入序列 x=(x1,x2,…,xn),希望輸出同樣長(zhǎng)度的標(biāo)簽序列 y=(y1,y2,…,yn),那么建模的就是概率分布:
CRF 把 y 看成一個(gè)整體,算一個(gè)總得分,計(jì)算公式如下:
這個(gè)打分函數(shù)的特點(diǎn)就是顯式地考慮了相鄰標(biāo)簽的關(guān)聯(lián),其實(shí) g(yk?1,yk) 被稱(chēng)為轉(zhuǎn)移矩陣。現(xiàn)在得分算出來(lái)了,概率就是得分的 softmax,所以最終概率分布的形式設(shè)為:
如果僅局限于概念的話(huà),那么 CRF 的介紹到此就結(jié)束了。總的來(lái)說(shuō),就是將目標(biāo)序列當(dāng)成一個(gè)整體,先給目標(biāo)設(shè)計(jì)一個(gè)打分函數(shù),然后對(duì)打分函數(shù)進(jìn)行整體的 softmax,這個(gè)建模理念跟普通的分類(lèi)問(wèn)題是一致的。CRF 的困難之處在于代碼實(shí)現(xiàn),因?yàn)樯鲜降姆帜疙?xiàng)包含了所有路徑的求和,這并不是一件容易的事情,但在概念理解上,筆者相信并沒(méi)有什么特別困難之處。
更樸素的 MEMM
現(xiàn)在我們來(lái)介紹 MEMM,它可以看成一個(gè)極度簡(jiǎn)化的 seq2seq 模型。對(duì)于目標(biāo) (1) ,它考慮分解:
然后假設(shè)標(biāo)簽的依賴(lài)只發(fā)生在相鄰位置,所以:
接著仿照線(xiàn)性鏈 CRF 的設(shè)計(jì),我們可以設(shè):
至此,這就得到了 MEMM 了。由于 MEMM 已經(jīng)將整體的概率分布分解為逐步的分布之積了,所以算 loss 只需要把每一步的交叉熵求和。
兩者的關(guān)系
將式 (6) 代回式 (5) ,我們可以得到:
對(duì)比式 (7) 和式 (3),我們可以發(fā)現(xiàn),MEMM 跟 CRF 的區(qū)別僅在于分母(也就是歸一化因子)的計(jì)算方式不同,CRF 的式 (3) 我們稱(chēng)之為是全局歸一化的,而 MEMM 的式 (7) 我們稱(chēng)之為是局部歸一化的。
模型分析
這一節(jié)我們來(lái)分析 MEMM 的優(yōu)劣、改進(jìn)與效果。?
MEMM 的優(yōu)劣
MEMM 的一個(gè)明顯的特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單、速度快,因?yàn)樗恍枰恳徊絾为?dú)執(zhí)行 softmax,所以 MEMM 是完全可以并行的,速度跟直接逐步 Softmax 基本一樣。
而對(duì)于 CRF,式 (3) 的分母并不是那么容易算的,它最終轉(zhuǎn)化為一個(gè)遞歸計(jì)算,可以在 O(n) 的時(shí)間內(nèi)算出來(lái)(具體細(xì)節(jié)還請(qǐng)參考簡(jiǎn)明條件隨機(jī)場(chǎng)CRF介紹 | 附帶純Keras實(shí)現(xiàn)),遞歸就意味著是串行的,因此當(dāng)我們模型的主體部分是高度可并行的架構(gòu)(比如純 CNN 或純 Attention 架構(gòu))時(shí),CRF 會(huì)嚴(yán)重拖慢模型的訓(xùn)練速度。后面我們有比較 MEMM 和 CRF 的訓(xùn)練速度(當(dāng)然,僅僅是訓(xùn)練慢了,預(yù)測(cè)階段 MEMM 和 CRF 的速度都一樣)。?
至于劣勢(shì),自然也是有的。前面我們提到過(guò),MEMM 可以看成是一個(gè)極度簡(jiǎn)化的 seq2seq 模型。既然是這樣,那么普通 seq2seq 模型有的弊端它都有。seq2seq 中有一個(gè)明顯的問(wèn)題是 exposure bias,對(duì)應(yīng)到 MEMM 中,它被稱(chēng)之為 label bias,大概意思是:在訓(xùn)練 MEMM 的時(shí)候,對(duì)于當(dāng)前步的預(yù)測(cè),都是假設(shè)前一步的真實(shí)標(biāo)簽已知。
這樣一來(lái),如果某個(gè)標(biāo)簽 A 后面只能接標(biāo)簽 B ,那么模型只需要通過(guò)優(yōu)化轉(zhuǎn)移矩陣就可以實(shí)現(xiàn)這一點(diǎn),而不需要優(yōu)化輸入 x 對(duì) B 的影響(即沒(méi)有優(yōu)化好 f(B;x));然而,在預(yù)測(cè)階段,真實(shí)標(biāo)簽是不知道的,我們可能無(wú)法以較高的置信度預(yù)測(cè)前一步的標(biāo)簽 A ,而由于在訓(xùn)練階段,當(dāng)前步的 f(B;x) 也沒(méi)有得到強(qiáng)化,所以當(dāng)前步 B 也無(wú)法準(zhǔn)確預(yù)測(cè),這就有可能導(dǎo)致錯(cuò)誤的預(yù)測(cè)結(jié)果。?
雙向 MEMM
label bias可能不好理解,但我們可以從另外一個(gè)視角看 MEMM 的不足:事實(shí)上,相比 CRF,MEMM 明顯的一個(gè)不夠漂亮的地方就是它的不對(duì)稱(chēng)性——它是從左往右進(jìn)行概率分解的。
筆者的實(shí)驗(yàn)表明,如果能解決這個(gè)不對(duì)稱(chēng)性,能夠稍微提高 MEMM 的效果。筆者的思路是:將 MEMM 也從右往左做一遍,這時(shí)候?qū)?yīng)的概率分布是:
然后也算一個(gè)交叉熵,跟從左往右的式 (7) 的交叉熵平均,作為最終的 loss。這樣一來(lái),模型同時(shí)考慮了從左往右和從右往左兩個(gè)方向,并且也不用增加參數(shù),彌補(bǔ)了不對(duì)稱(chēng)性的缺陷。作為區(qū)分,筆者類(lèi)比 Bi-LSTM 的命名,將其稱(chēng)為 Bi-MEMM。?
注:Bi-MEMM 這個(gè)名詞并不是在此處首次出現(xiàn),據(jù)筆者所查,首次提出 Bi-MEMM 這個(gè)概念的,是論文 Bidirectional Inference with the Easiest-First Strategy for Tagging Sequence Data [1],里邊的 Bi-MEMM 是指一種 MEMM 的雙向解碼策略,跟本文的 Bi-MEMM 含義并不相同。
實(shí)驗(yàn)結(jié)果演示
為了驗(yàn)證和比較 MEMM 的效果,筆者將 CRF 和 MEMM 同時(shí)寫(xiě)進(jìn)了 bert4keras [2] 中,并且寫(xiě)了中文分詞?[3]?和中文命名實(shí)體識(shí)別?[4]?兩個(gè)腳本。在這兩個(gè)腳本中,從 CRF 切換到 MEMM 非常簡(jiǎn)單,只需將 ConditionalRandomField 替換為 MaximumEntropyMarkovModel 。?
詳細(xì)的實(shí)驗(yàn)數(shù)據(jù)就不貼出來(lái)了,反正就是一些數(shù)字罷了,下面直接給出一些相對(duì)比較的結(jié)果:?
1. 相同的實(shí)驗(yàn)參數(shù)下,Bi-MEMM 總是優(yōu)于 MEMM,MEMM 總是優(yōu)于 Softmax;?
2. 相同的實(shí)驗(yàn)參數(shù)下,CRF 基本上不差于 Bi-MEMM;?
3. 當(dāng)編碼模型能力比較強(qiáng)時(shí),CRF 與 Bi-MEMM 效果持平;當(dāng)編碼模型較弱時(shí),CRF 優(yōu)于 Bi-MEMM,幅度約為 0.5% 左右;?
4. 用 12 層 bert base 模型作為編碼模型時(shí),Bi-MEMM 比 CRF 快 25%;用 2 層 bert base 模型作為編碼模型時(shí),Bi-MEMM 比 CRF 快 1.5 倍。
注:由于筆者發(fā)現(xiàn) Bi-MEMM 效果總比 MEMM 略好,并且兩者的訓(xùn)練時(shí)間基本無(wú)異,所以 bert4keras 里邊的 MaximumEntropyMarkovModel 默認(rèn)就是 Bi-MEMM。
思考與拓展
根據(jù)上面的結(jié)論,在深度學(xué)習(xí)時(shí)代,MEMM 的“沒(méi)落”似乎就可以理解了——MEMM 除了訓(xùn)練速度快點(diǎn)之外,相比 CRF 似乎也就沒(méi)什么好處了,兩者的預(yù)測(cè)速度是一樣的,而很多時(shí)候我們主要關(guān)心預(yù)測(cè)速度和效果,訓(xùn)練速度稍微慢點(diǎn)也無(wú)妨。
這兩個(gè)模型的比較結(jié)果是有代表性的,可以說(shuō)這正是所有全局歸一化和局部歸一化模型的差異:全局歸一化模型效果通常好些,但實(shí)現(xiàn)通常相對(duì)困難一些;局部歸一化模型效果通常不超過(guò)全局歸一化模型,但勝在易于實(shí)現(xiàn),并與易于拓展。?
如何易于拓展?這里舉兩個(gè)方向的例子。?
第一個(gè)例子,假如標(biāo)簽數(shù)很大的時(shí)候,比如用序列標(biāo)注的方式做文本糾錯(cuò)或者文本生成時(shí)(相關(guān)例子可以參考論文 Fast Structured Decoding for Sequence Models?[5]),標(biāo)簽的數(shù)目就是詞表里邊的詞匯數(shù) |V| ,就算用了 subword 方法,詞匯數(shù)少說(shuō)也有一兩萬(wàn),這時(shí)候轉(zhuǎn)移矩陣的參數(shù)量就達(dá)到數(shù)億(),難以訓(xùn)練。
讀者可能會(huì)想到低秩分解,不錯(cuò),低秩分解可以將轉(zhuǎn)移矩陣的參數(shù)量控制為 2d|V| ,其中 d 是分解的中間層維度。不幸的是,對(duì)于 CRF 來(lái)說(shuō),低秩分解不能改變歸一化因子計(jì)算量大的事實(shí),因?yàn)?CRF 的歸一化因子依然需要恢復(fù)為 |V| × |V| 的轉(zhuǎn)移矩陣才能計(jì)算下去,所以對(duì)于標(biāo)簽數(shù)目巨大的場(chǎng)景,CRF 無(wú)法直接使用。
但幸運(yùn)的是,對(duì)于 MEMM 來(lái)說(shuō),低秩分解可以有效低降低訓(xùn)練時(shí)的計(jì)算量,從而依然能夠有效的使用。bert4keras 里邊所帶的 MaximumEntropyMarkovModel 已經(jīng)把低秩序分解集成進(jìn)去了,有興趣的讀者可以查看源碼了解細(xì)節(jié)。?
第二個(gè)例子,上述介紹的 CRF 和 MEMM 都只考慮相鄰標(biāo)簽之間的關(guān)聯(lián),如果我要考慮更復(fù)雜的鄰接關(guān)聯(lián)呢?比如同時(shí)考慮??跟??的關(guān)聯(lián)?
這時(shí)候 CRF 的全局歸一化思路就很難操作了,歸根結(jié)底還是歸一化因子難算;但如果是 MEMM 的局部歸一化思路就容易進(jìn)行。事實(shí)上,筆者之前設(shè)計(jì)的信息抽取分層標(biāo)注思路,也可以說(shuō)是一種跟 MEMM 類(lèi)似的局部歸一化的概率圖模型,它考慮的關(guān)聯(lián)就更復(fù)雜化了。
文章小結(jié)
本文介紹并簡(jiǎn)單推廣了跟 CRF 一樣同為概率圖經(jīng)典案例的 MEMM,它與 CRF 的區(qū)別主要是歸一化方式上的不一樣,接著筆者從實(shí)驗(yàn)上對(duì)兩者做了簡(jiǎn)單的比較,得出 MEMM 訓(xùn)練更快但效果不優(yōu)于 CRF 的結(jié)論。盡管如此,筆者認(rèn)為 MEMM 仍有可取之處,所以最后構(gòu)思了 MEMM 的一些拓展。
相關(guān)鏈接
[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
點(diǎn)擊以下標(biāo)題查看更多往期內(nèi)容:?
簡(jiǎn)明條件隨機(jī)場(chǎng)CRF介紹 | 附帶純Keras實(shí)現(xiàn)
你的CRF層的學(xué)習(xí)率可能不夠大
基于DGCNN和概率圖的輕量級(jí)信息抽取模型
深度學(xué)習(xí)預(yù)訓(xùn)練模型可解釋性概覽
如何快速理解馬爾科夫鏈蒙特卡洛法?
神經(jīng)網(wǎng)絡(luò)中的常用激活函數(shù)總結(jié)
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類(lèi)優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來(lái)。
?????來(lái)稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來(lái)稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
???? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專(zhuān)欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點(diǎn)擊 |?閱讀原文?| 查看作者博客
總結(jié)
以上是生活随笔為你收集整理的CRF用过了,不妨再了解下更快的MEMM?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 德州金都明德府是毛坯房还是精装修?
- 下一篇: 宅在家限制智力输出?这场论文复现赛让思维