回顧
在 上一篇文章 中, 我們了解到 CRF 能夠從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)到有關(guān) Labels 序列的約束,進(jìn)而可以確保最終的實(shí)體標(biāo)注序列是合理有效的。
這些約束可以是:
句子中首個(gè)單詞的 Label 應(yīng)該是 “B-“ or “O”, 而不會(huì)是 “I-“
“B-label1 I-label2 I-label3 I-…”,在這個(gè)模式中, label1, label2, label3 … 應(yīng)該是同一實(shí)體的 Label。譬如万细,“B-Person I-Person” 是合理有效的,但是 “B-Person I-Organization” 便是無(wú)效的。
“O I-label” 是無(wú)效的权烧。命名實(shí)體的第一個(gè)起始標(biāo)注應(yīng)該是 “B-“ 開(kāi)頭的,而不是 “I-“伤溉。換一句話說(shuō)般码,合理有效的模式應(yīng)該是 “O B-label”
...
在讀完這篇文章后,你將會(huì)知道為什么 CRF 能夠?qū)W習(xí)到這些約束乱顾。
2. CRF Layer
在 CRF 層的 Loss Function 中板祝,我們有兩種 Score ,Emission Score 和 Transition Score 它們是 CRF 層的關(guān)鍵走净。
2.1 Emission Score
第一個(gè)便是 Emission Score 券时。這里的 Emission Scores 來(lái)自于 BiLSTM 層,如下圖所示伏伯, 被標(biāo)記為 B-Person 的 score 是 1.5
為了方便理解橘洞,在這里給每個(gè) label 一個(gè)索引標(biāo)簽:
我們使用 表示 Emission Score, 是 word 的 index说搅, 是 label 的 index炸枣。譬如,依據(jù)上面的圖可以得到,, 意思就是 被標(biāo)注為 B-Organization 的 score 為 0.1适肠。
2.2 Transition Score
對(duì)于 Transition Score 霍衫,我們使用 表示。譬如侯养,敦跌,意思就是標(biāo)簽 B-Persion 轉(zhuǎn)移到 I-Person 的 score 為 0.9。這樣的話沸毁,我們便擁有了一個(gè) 轉(zhuǎn)移矩陣峰髓,其中存儲(chǔ)著所有標(biāo)簽之間的 Transition Score。
為了使得轉(zhuǎn)移分?jǐn)?shù)矩陣更加具有魯棒性息尺,我們得添加一些標(biāo)簽携兵,START 和 END。START 表示句子的起始搂誉,并不是句子的第一個(gè) word徐紧;END 表示句子的結(jié)束。
這里就是一個(gè) transition matrix score 的例子炭懊,其中包含了我們額外添加的START 和 END 標(biāo)簽并级。
如上表所示,我們能夠發(fā)現(xiàn)這個(gè)狀態(tài)轉(zhuǎn)移舉證已經(jīng)學(xué)習(xí)到了某些約束了侮腹。
句子中的第一個(gè)單詞的標(biāo)記應(yīng)該是以“B-“ 或者 “O”開(kāi)頭, 并不會(huì)是 “I-”形式的標(biāo)記嘲碧。(可以從表中發(fā)現(xiàn), “START” 到 “I-Person or I-Organization” 的轉(zhuǎn)移值非常的小父阻。)
在“B-label1 I-label2 I-label3 I-…”這樣形式的標(biāo)注序列中愈涩, label1, label2, label3 … 應(yīng)該是同種實(shí)體的標(biāo)簽。比如加矛,“B-Person I-Person” 是合理有效的標(biāo)注序列履婉,而 “B-Person I-Organization” 則不是。(譬如, the score from “B-Organization” to “I-Person” is only 0.0003 which is much lower than the others.)
“O I-label” is invalid. The first label of one named entity should start with “B-“ not “I-“, in other words, the valid pattern should be “O B-label” (表中 的值非常的小斟览。)
好了毁腿,這時(shí)候你腦子里該滿是黑人問(wèn)號(hào)了,這個(gè)矩陣從哪里來(lái)的苛茂?已烤?
確切的說(shuō),這個(gè)矩陣是 BiLSTM-CRF 模型的一個(gè)參數(shù)味悄。在你訓(xùn)練模型之前草戈,你可以隨機(jī)地初始化矩陣中所有的 transition score。在之后的訓(xùn)練過(guò)程中侍瑟,這些隨機(jī)初始化的 score 將會(huì)被自動(dòng)更新。換句話說(shuō),CRF 層可以自己學(xué)習(xí)到這些約束涨颜。我們并不需要手動(dòng)創(chuàng)建這樣一個(gè)矩陣费韭。這些分?jǐn)?shù)值會(huì)隨著訓(xùn)練的迭代次數(shù)的增加,變得越來(lái)越 “合理”庭瑰。
2.3 CRF loss function
CRF 的損失函數(shù)由 真實(shí)轉(zhuǎn)移路徑值 和 所有可能轉(zhuǎn)移路徑值兩部分組成星持。真實(shí)路徑表示在所有可能轉(zhuǎn)移路徑中具有最高 score 的路徑。
假如我們的數(shù)據(jù)集中有這樣一些標(biāo)記:
我們也有一個(gè)由 5 個(gè)單詞組成的句子弹灭,那么標(biāo)簽的可能轉(zhuǎn)移路徑有:
1.START B-Person B-Person B-Person B-Person B-Person END
2.START B-Person I-Person B-Person B-Person B-Person END
…
10.START B-Person I-Person O B-Organization O END
…
N.O O O O O O O
假定每一個(gè)可能的路徑有一個(gè)分?jǐn)?shù)值 , 那么對(duì)于所有 N 條可能的路徑的總分?jǐn)?shù)值為 督暂,e 是數(shù)學(xué)常量 e。(在 2.4 節(jié)穷吮,我們會(huì)討論如何計(jì)算 逻翁,你也可以將它直接作為該路徑的分?jǐn)?shù)值。)
假如這里的第十條路徑是真實(shí)的路徑捡鱼,換句話說(shuō)八回,第十條路徑是訓(xùn)練集提供的“黃金準(zhǔn)則”。那么驾诈, 就應(yīng)該在所有的路徑分?jǐn)?shù)值之和中占據(jù)最大的比例缠诅。
下面給出方程便是我們一直討論的 Loss Function,在訓(xùn)練階段乍迄,BiLSTM-CRF 模型的參數(shù)值將會(huì)一直不停的被更新管引,來(lái)提高真實(shí)路徑的分?jǐn)?shù)值所占的比重。
現(xiàn)在闯两,問(wèn)題來(lái)了:
- 如何定義一條路徑的分?jǐn)?shù)值褥伴?
- 如何計(jì)算所有路徑的總分?jǐn)?shù)值?
- 當(dāng)我們計(jì)算所有分?jǐn)?shù)值的時(shí)候生蚁,我們需要列出所有可能的路徑嗎噩翠?(提前透露一下答案:不需要!)
Real path score
今天就到這里吧~
參考文獻(xiàn)
[1] Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K. and Dyer, C., 2016. Neural architectures for named entity recognition. arXiv preprint arXiv:1603.01360.
[2] https://createmomo.github.io/2017/09/23/CRF_Layer_on_the_Top_of_BiLSTM_2/