CRF Layer on the top of BiLSTM-1_trans

https://createmomo.github.io/2017/09/12/CRF_Layer_on_the_Top_of_BiLSTM_1/

概覽

  • 介紹 在NER任務中,BiLSTM後接的CRF層
  • 詳細解釋CRF層運作step-by-step
  • 使用chainer完成一個CRF層

知識儲備

只需要瞭解什麼是NER即可(通俗地說,只要是用戶想要了解的實體,即可以認爲是實體識別)。在文中將會提到CRF以及任何相關的知識。BiLSTM和CRF是在NER中的兩個不同的層。

before start

假定有兩個實體類型,Person和Organization。這樣我們就需要5個標籤來表示,分別爲B-Person, I-Person, B-Organization, I-Organization, O。
假定有5個單詞,w0 w1, w2, w3, w4, w5 ,並假設[w1,w2]是Person,[w3]是Organization,其他爲O。

BiLSTM-CRF 模型

  • 首先,句子中的每個單詞 wi 一個向量,這個向量的形式可以是character級別的embedding,也可以是word級別的embedding。前者是隨機初始化的,後者通常是一個預訓練的word-embeding。這些embedding會在訓練的過程中進行微調。
  • 第二,BiLSTM-CRF的輸入是剛剛提到的embedding向量;輸出是句子預測出來的label。就是figure1.1中最上方的B-Person, I-Person等五個。
    在這裏插入圖片描述
    暫時不需要了解BiLSTM內部是如果運作的,只需要知道BiLSTM輸出的內容是每一個標籤的分數。例如對於,w0 來說,BiLSTM在這個單詞上的輸出爲[1.5,0.9,0.1,0.08,0.05],這些分數將會成爲CRF的輸入。將所有的label的分數都送入CRF層中,在CRF層中將會以某種方式取出具有最高的預測分值的一個序列作爲最佳標籤序列。

在這裏插入圖片描述

CRF的優點

如果不使用CRF,如下圖所示,僅僅對每個標籤進行最大分值對應的label選取。在figure1.3和1.4上,只有在1.3的情況下,通過這種方法是正確的,而在1.4的情況下,將會得到錯誤的序列標籤(這裏的方法應該就是單純的使用了softmax)。

在這裏插入圖片描述
在這裏插入圖片描述
CRF層其實會對標籤及BiLSM進入其的輸入做一些限制,通過訓練可以優化這些參數,從而進行預測。
這些限制包括:

  • 一句話的起始位置應該是B-或者O-,而不會是I-
  • B-label1 I-label2 I-label3是合法的,而B-Person I-Organization是非法的。
  • O I-label1是非法的,I-label1不可以作爲一個區塊中的開始,需要是 O, B-label1

next

接下來會講到CRF loss,這個loss函數是如何通過訓練數據學習這些標籤限制的。
翻譯大概花費了(30-40分鐘)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章