lstm+crf


1.介紹

        基於神經網絡的方法,在命名實體識別任務中非常流行和普遍。在文獻【1】中,作者提出了Bi-LSTM模型用於實體識別任務中,在模型中用到了字嵌入和詞嵌入。本文將向你展示CRF層是如何工作的。

        如果你不知道Bi-LSTM和CRF是什么,你只需要記住他們分別是命名實體識別模型中的兩個層。

1.1開始之前

        我們假設我們的數據集中有兩類實體——人名和地名,與之相對應在我們的訓練數據集中,有五類標簽:

        B-Person, I- Person,B-Organization,I-Organization, O

       假設句子x由五個字符w1,w2,w3,w4,w5組成,其中【w1,w2】為人名類實體,【w3】為地名類實體,其他字符標簽為“O”。

1.2BiLSTM-CRF模型

        以下將給出模型的結構:

        第一,句子x中的每一個單元都代表着由字嵌入或詞嵌入構成的向量。其中,字嵌入是隨機初始化的,詞嵌入是通過數據訓練得到的。所有的嵌入在訓練過程中都會調整到最優。

        第二,這些字或詞嵌入為BiLSTM-CRF模型的輸入,輸出的是句子x中每個單元的標簽。

 

 

 

圖1. Bi-LSTM結構圖

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

 

 

 

圖2.Bi-LSTM標簽預測原理圖

        如上圖所示,BiLSTM層的輸出為每一個標簽的預測分值,例如,對於單元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層會怎樣

        你也許已經發現了,即使沒有CRF層,我們也可以訓練一個BiLSTM命名實體識別模型,如圖3.所示:

 

 

 

圖3.去除CRF的BiLSTM命名實體識別模型

        由於BiLSTM的輸出為單元的每一個標簽分值,我們可以挑選分值最高的一個作為該單元的標簽。例如,對於單元w0,“B-Person”有最高分值—— 1.5,因此我們可以挑選“B-Person”作為w0的預測標簽。同理,我們可以得到w1——“I-Person”,w2—— “O” ,w3——“B-Organization”,w4——“O”。

        雖然我們可以得到句子x中每個單元的正確標簽,但是我們不能保證標簽每次都是預測正確的。例如,圖4.中的例子,標簽序列是“I-Organization I-Person” and “B-Organization I-Person”,很顯然這是錯誤的。

 

 

 

圖4. 去除CRF層的BiLSTM模型

1.4CRF層能從訓練數據中獲得約束性的規則

        CRF層可以為最后預測的標簽添加一些約束來保證預測的標簽是合法的。在訓練數據訓練過程中,這些約束可以通過CRF層自動學習到。

這些約束可以是:

I:句子中第一個詞總是以標簽“B-“ 或 “O”開始,而不是“I-”

II:標簽“B-label1 I-label2 I-label3 I-…”,label1, label2, label3應該屬於同一類實體。例如,“B-Person I-Person” 是合法的序列, 但是“B-Person I-Organization” 是非法標簽序列.

III:標簽序列“O I-label” is 非法的.實體標簽的首個標簽應該是 “B-“ ,而非 “I-“, 換句話說,有效的標簽序列應該是“O B-label”。

有了這些約束,標簽序列預測中非法序列出現的概率將會大大降低。

 
原文:https://blog.csdn.net/qq_41853758/article/details/82749981


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM