本文框架如下:
介紹——在命名實(shí)體識(shí)別任務(wù)中,BiLSTM模型中CRF層的通用思想
詳細(xì)的實(shí)例——通過(guò)實(shí)例來(lái)一步步展示CRF的工作原理
實(shí)現(xiàn)——CRF層的一步步實(shí)現(xiàn)過(guò)程
誰(shuí)可以讀本文——本文適用與NLP初級(jí)入門者或者AI其他相關(guān)領(lǐng)域
需要有的基礎(chǔ)知識(shí):你只需要知道什么是命名實(shí)體識(shí)別,如果你不懂神經(jīng)網(wǎng)絡(luò),條件隨機(jī)場(chǎng)(CRF)或者其它相關(guān)知識(shí),不必?fù)?dān)心,本文將向你展示CRF層是如何工作的。本文將盡可能的講的通俗易懂。
1.介紹
??????? 基于神經(jīng)網(wǎng)絡(luò)的方法,在命名實(shí)體識(shí)別任務(wù)中非常流行和普遍。在文獻(xiàn)【1】中,作者提出了Bi-LSTM模型用于實(shí)體識(shí)別任務(wù)中,在模型中用到了字嵌入和詞嵌入。本文將向你展示CRF層是如何工作的。
??????? 如果你不知道Bi-LSTM和CRF是什么,你只需要記住他們分別是命名實(shí)體識(shí)別模型中的兩個(gè)層。
1.1開始之前
??????? 我們假設(shè)我們的數(shù)據(jù)集中有兩類實(shí)體——人名和地名,與之相對(duì)應(yīng)在我們的訓(xùn)練數(shù)據(jù)集中,有五類標(biāo)簽:
??????? B-Person, I- Person,B-Organization,I-Organization, O
?????? 假設(shè)句子x由五個(gè)字符w1,w2,w3,w4,w5組成,其中【w1,w2】為人名類實(shí)體,【w3】為地名類實(shí)體,其他字符標(biāo)簽為“O”。
1.2BiLSTM-CRF模型
??????? 以下將給出模型的結(jié)構(gòu):
??????? 第一,句子x中的每一個(gè)單元都代表著由字嵌入或詞嵌入構(gòu)成的向量。其中,字嵌入是隨機(jī)初始化的,詞嵌入是通過(guò)數(shù)據(jù)訓(xùn)練得到的。所有的嵌入在訓(xùn)練過(guò)程中都會(huì)調(diào)整到最優(yōu)。
??????? 第二,這些字或詞嵌入為BiLSTM-CRF模型的輸入,輸出的是句子x中每個(gè)單元的標(biāo)簽。

??????? 盡管一般不需要詳細(xì)了解BiLSTM層的原理,但是為了更容易知道CRF層的運(yùn)行原理,我們需要知道BiLSTM的輸出層。

??????? 如上圖所示,BiLSTM層的輸出為每一個(gè)標(biāo)簽的預(yù)測(cè)分值,例如,對(duì)于單元w0,BiLSTM層輸出的是1.5 (B-Person), 0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) and 0.05 (O). 這些分值將作為CRF的輸入。
1.3 如果沒有CRF層會(huì)怎樣
??????? 你也許已經(jīng)發(fā)現(xiàn)了,即使沒有CRF層,我們也可以訓(xùn)練一個(gè)BiLSTM命名實(shí)體識(shí)別模型,如圖3.所示:

??????? 由于BiLSTM的輸出為單元的每一個(gè)標(biāo)簽分值,我們可以挑選分值最高的一個(gè)作為該單元的標(biāo)簽。例如,對(duì)于單元w0,“B-Person”有最高分值—— 1.5,因此我們可以挑選“B-Person”作為w0的預(yù)測(cè)標(biāo)簽。同理,我們可以得到w1——“I-Person”,w2—— “O” ,w3——“B-Organization”,w4——“O”。
??????? 雖然我們可以得到句子x中每個(gè)單元的正確標(biāo)簽,但是我們不能保證標(biāo)簽每次都是預(yù)測(cè)正確的。例如,圖4.中的例子,標(biāo)簽序列是“I-Organization I-Person” and “B-Organization I-Person”,很顯然這是錯(cuò)誤的。

1.4CRF層能從訓(xùn)練數(shù)據(jù)中獲得約束性的規(guī)則
??????? CRF層可以為最后預(yù)測(cè)的標(biāo)簽添加一些約束來(lái)保證預(yù)測(cè)的標(biāo)簽是合法的。在訓(xùn)練數(shù)據(jù)訓(xùn)練過(guò)程中,這些約束可以通過(guò)CRF層自動(dòng)學(xué)習(xí)到。
這些約束可以是:
I:句子中第一個(gè)詞總是以標(biāo)簽“B-“ 或 “O”開始,而不是“I-”
II:標(biāo)簽“B-label1 I-label2 I-label3 I-…”,label1, label2, label3應(yīng)該屬于同一類實(shí)體。例如,“B-Person I-Person” 是合法的序列, 但是“B-Person I-Organization” 是非法標(biāo)簽序列.
III:標(biāo)簽序列“O I-label” is 非法的.實(shí)體標(biāo)簽的首個(gè)標(biāo)簽應(yīng)該是 “B-“ ,而非 “I-“, 換句話說(shuō),有效的標(biāo)簽序列應(yīng)該是“O B-label”。
有了這些約束,標(biāo)簽序列預(yù)測(cè)中非法序列出現(xiàn)的概率將會(huì)大大降低。
參考文獻(xiàn):【1】