日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/10/8 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CRF用过了,不妨再了解下更快的MEMM? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。