BiLSTM-CRF-3
发布日期:2021-06-29 04:25:42 浏览次数:2 分类:技术文章

本文共 15936 字,大约阅读时间需要 53 分钟。

2.3 CRF损失函数

CRF损失函数中包含了真实标签序列得分和所有可能标签序列的总得分,正常情况下,真实标签序列得分在所有可能标签序列得分中是最高的。

比如,假设数据集中的标签如下所示:

Label Index
B-Person 0
I-Person 1
B-Organization 2
I-Organization 3
O 4
START 5
END 6

那么,在第一节中我们假设的句子 x x x,所有可能的标签序列组合为:

  • (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

假设一共有N中可能的标签序列组合,且第 i i i个标签序列的得分为 P i P_i Pi,那么所有可能标签序列组合的总得分为:

P t o t a l = P 1 + P 2 + . . . + P N = e S 1 + e S 2 + . . . + e S N P_{total} = P_1 + P_2 + ... + P_N = e^{S_1} + e^{S_2} + ... + e^{S_N} Ptotal=P1+P2+...+PN=eS1+eS2+...+eSN

按照我们之前的假设,第10个是真实的标签序列,那么,我们想要的结果是第10个标签序列得分在所有可能的标签序列得分中是最高的。

因此,我们可以定义模型的损失函数,在整个模型训练过程中,BiLSTM-CRF模型的参数不断地进行更新,使得真实标签序列得分在所有可能标签序列组合得分中的占比是最高的。因此,模型的损失函数格式如下所示:

L o s s F u n c t i o n = P R e a l P a t h P 1 + P 2 + . . . + P N LossFunction = \frac{P_{RealPath}}{P_1+P_2+...+P_N} LossFunction=P1+P2+...+PNPRealPath

那么,问题就来了:

  • 如何定义一个标签序列的得分?
  • 如何计算所有可能标签序列组合的总得分?
  • 在计算总得分中,一定需要计算每一个可能的标签序列的得分吗?

接下来,我们来解答每一个问题。

2.4 真实标签序列得分

前面我们定义了标签序列得分为 P i P_i Pi,以及所有可能标签序列的总得分为:

P t o t a l = P 1 + P 2 + . . . + P N = e S 1 + e S 2 + . . . + e S N P_{total} = P_1 + P_2 + ... + P_N = e^{S_1} + e^{S_2} + ... + e^{S_N} Ptotal=P1+P2+...+PN=eS1+eS2+...+eSN

其中 e S i e^{S_i} eSi表示第i个标签序列得分。

显然,在所有可能的标签序列组合必然存在一个序列是真实标签序列,而剩下的标签序列组合都是错误的,比如序列”**START B-Person I-Person O B-Organization O END **“是正确的,而序列‘START B-Person I-Person B-Person B-Person B-Person END’是错误的。

在整个模型训练过程中,CRF层的损失函数只需要两个得分:

  • 一个是真实标签序列得分
  • 一个是所有可能标签序列组合的总得分

而我们的学习目的是让真实的标签序列得分在总得分中的占比是最高的。

对于真实标签序列的得分 e S i e^{S_i} eSi,我们直接计算 S i S_i Si即可。

我们使用之前的案例,真实的标签序列为“**START B-Person I-Person O B-Organization O END **”,即:

  • 句子 x x x由5个字符组成, w 1 , w 2 , w 3 , w 4 , w 5 w_1,w_2,w_3,w_4,w_5 w1,w2,w3,w4,w5
  • 我们在句子前后增加两个字符,记为 w 0 , w 6 w_0,w_6 w0,w6
  • S i S_i Si主要由第一节中提到的Emission Score和Transition Score组成,即 S i = E m i s s i o n S c o r e + T r a n s i t i o n S c o r e S_i = Emission Score + Transition Score Si=EmissionScore+TransitionScore

2.4.1 Emission Score

Emission Score计算公式如下所示:

E m i s s i o n S c o r e = x 0 , S T A R T + x 1 , B − P e r s o n + x 2 , I − P e r s o n + x 3 , O + x 4 , B − O r g a n i z a t i o n + x 5 , O + x 6 , E N D Emission Score = x_{0,START} + x_{1,B-Person} + x_{2,I-Person} + x_{3,O} + x_{4,B-Organization} + x_{5,O} + x_{6,END} EmissionScore=x0,START+x1,BPerson+x2,IPerson+x3,O+x4,BOrganization+x5,O+x6,END

其中:

  • x i n d e x , l a b e l x_{index,label} xindex,label表示第index个词被标记为label的得分
  • x 1 , B − P e r s o n , x 2 , I − P e r s o n , x 3 , O , x 4 , B − O r g a n i z a t i o n , x 5 , O x_{1,B-Person}, x_{2,I-Person} , x_{3,O}, x_{4,B-Organization},x_{5,O} x1,BPerson,x2,IPerson,x3,O,x4,BOrganization,x5,O 为BiLSTM层的输出
  • 一般 x 0 , S T A R T x_{0,START} x0,START x 6 , E N D x_{6,END} x6,END为0

2.4.2 Transition Score

Transition Score计算公式如下所示:

T r a n s i t i o n S c o r e = Transition Score = TransitionScore=

t S T A R T → B − P e r s o n + t B − P e r s o n → I − P e r s o n + t_{START \rightarrow B-Person} + t_{B-Person \rightarrow I-Person} + tSTARTBPerson+tBPersonIPerson+
t I − P e r s o n → O + t O → B − O r g a n i z a t i o n + t B − O r g a n i z a t i o n → O + t O → E N D t_{I-Person \rightarrow O} + t_{O \rightarrow B-Organization} + t_{B-Organization \rightarrow O} + t_{O \rightarrow END} tIPersonO+tOBOrganization+tBOrganizationO+tOEND

其中:

  • t l a b e l 1 → l a b e l 2 t_{label1 \rightarrow label2} tlabel1label2 表示 l a b e l 1 label1 label1 l a b e l 2 label2 label2的transition Score。
  • transition Score主要是在CRF层进行计算的,也就是说,transition Score完全是CRF层的参数。

因此,我们通过计算 s i s_i si,可以得到第i条标签序列的得分。

2.5 所有可能标签序列组合的总得分

前面,我们计算了单条标签序列得分,接下来,我们需要计算所有可能标签序列的总得分。由之前内容可知,总得分的计算公式为;

P t o t a l = P 1 + P 2 + . . . + P N = e S 1 + e S 2 + . . . + e S N P_{total} = P_1 + P_2 + ... + P_N = e^{S_1} + e^{S_2} + ... + e^{S_N} Ptotal=P1+P2+...+PN=eS1+eS2+...+eSN

很显然,总得分计算方式就是每一条标签序列得分的求和,那么我们能想到的最简单的方法就是先计算每一条的标签序列得分,然后将所有的标签序列得分进行相加得到总得分。虽然计算很简单,但是效率不高,需要很长的训练时间。

接下来,我们将通过公式推导来认识总得分计算过程。

2.6 CRF的损失函数

由前面可知,CRF层的损失函数为:

L o s s F u n c t i o n = P R e a l P a t h P 1 + P 2 + … + P N Loss Function = \frac{P_{RealPath}}{P_1 + P_2 + … + P_N} LossFunction=P1+P2++PNPRealPath

我们对其对数化,即:

L o g L o s s F u n c t i o n = log ⁡ P R e a l P a t h P 1 + P 2 + … + P N LogLossFunction = \log \frac{P_{RealPath}}{P_1 + P_2 + … + P_N} LogLossFunction=logP1+P2++PNPRealPath

一般在模型训练过程中,我们希望损失函数最小化,因此,在损失函数添加一个负号,即:

L o g L o s s F u n c t i o n Log Loss Function LogLossFunction

= − log ⁡ P R e a l P a t h P 1 + P 2 + … + P N = - \log \frac{P_{RealPath}}{P_1 + P_2 + … + P_N} =logP1+P2++PNPRealPath
= − log ⁡ e S R e a l P a t h e S 1 + e S 2 + … + e S N = - \log \frac{e^{S_{RealPath}}}{e^{S_1} + e^{S_2} + … + e^{S_N}} =logeS1+eS2++eSNeSRealPath
= − ( log ⁡ ( e S R e a l P a t h ) − log ⁡ ( e S 1 + e S 2 + … + e S N ) ) = - (\log(e^{S_{RealPath}}) - \log(e^{S_1} + e^{S_2} + … + e^{S_N})) =(log(eSRealPath)log(eS1+eS2++eSN))
= − ( S R e a l P a t h − log ⁡ ( e S 1 + e S 2 + … + e S N ) ) = - (S_{RealPath} - \log(e^{S_1} + e^{S_2} + … + e^{S_N})) =(SRealPathlog(eS1+eS2++eSN))
= − ( ∑ i = 1 N x i y i + ∑ i = 1 N − 1 t y i y i + 1 − log ⁡ ( e S 1 + e S 2 + … + e S N ) ) = - ( \sum_{i=1}^{N} x_{iy_i} + \sum_{i=1}^{N-1} t_{y_iy_{i+1}} - \log(e^{S_1} + e^{S_2} + … + e^{S_N})) =(i=1Nxiyi+i=1N1tyiyi+1log(eS1+eS2++eSN))

因此,对于总得分,我们需要一个高效的方法计算:

log ⁡ ( e S 1 + e S 2 + … + e S N ) \log(e^{S_1} + e^{S_2} + … + e^{S_N}) log(eS1+eS2++eSN)

2.6.1 emission Score和transition Score

为了简化公式,我们假设句子的长度为3,即:

x = ( w 0 , w 1 , w 2 ) x = (w_0,w_1,w_2) x=(w0,w1,w2)

假设数据集中只有两个标签,即:

L a b e l S e t = ( l 1 , l 2 ) LabelSet = (l_1,l_2) LabelSet=(l1,l2)

则emission Score矩阵可从BiLSTM层的输出获得,即:

l 1 l_1 l1 l 2 l_2 l2
w 0 w_0 w0 x 01 x_{01} x01 x 02 x_{02} x02
w 1 w_1 w1 x 11 x_{11} x11 x 12 x_{12} x12
w 2 w_2 w2 x 21 x_{21} x21 x 22 x_{22} x22

其中 x i j x_{ij} xij为单元 w i w_i wi被标记为 l j l_j lj的得分。

而且,我们可以从CRF层中得到transition Score矩阵,即:

l 1 l_1 l1 l 2 l_2 l2
l 1 l_1 l1 t 11 t_{11} t11 t 12 t_{12} t12
l 2 l_2 l2 t 21 t_{21} t21 t 22 t_{22} t22

其中 t i j t_{ij} tij为标签 i i i到标签 j j j的得分。

2.6.2 公式推导

记住我们的目标是计算: log ⁡ ( e S 1 + e S 2 + … + e S N ) \log(e^{S_1} + e^{S_2} + … + e^{S_N}) log(eS1+eS2++eSN)

很显然,我们可以使用动态规划思想进行计算(如果你不了解动态规划,没关系,本文将一步一步地进行解释,当然还是建议你学习下动态规划算法)。简而言之,首先,我们计算 w 0 w_0 w0的所有可能序列的总得分。接着,我们使用上一步的总得分计算 w 0 → w 1 w_0 \rightarrow w_1 w0w1的总得分。最后,我们同样使用上一步的总得分计算 w 0 → w 1 → w 2 w_0 \rightarrow w_1 \rightarrow w_2 w0w1w2的总得分。最后的总得分就是我们想要的总得分。

很明显,我们每一次计算都需要利用到上一步计算得到的结果,因此,接下来,你将看到两个变量:

  • obs: 定义当前单元的信息
  • previous: 存储上一步计算的最后结果

备注:以下内容如果看不懂的话,结合上面的emission Score矩阵和transition Score矩阵一起看就明白了

首先,我们计算 w 0 w_0 w0:

o b s = [ x 01 , x 02 ] obs = [x_{01},x_{02}] obs=[x01,x02]

p r e v i o u s = N o n e previous = None previous=None

如果我们的句子只有一个词 w 0 w_0 w0,那么存储上一步结果的 p r e v i o u s previous previous N o n e None None,另外,对于 w 0 w_0 w0而言, o b s = [ x 01 , x 02 ] obs = [x_{01},x_{02}] obs=[x01,x02],其中 x 01 x_{01} x01 x 02 x_{02} x02分别为emission Score(BiLSTM层的输出)。

因此, w 0 w_0 w0的所有可能标签序列总得分为:

T o t a l S c o r e ( w 0 ) = log ⁡ ( e x 01 + e x 02 ) TotalScore(w_0)=\log (e^{x_{01}} + e^{x_{02}}) TotalScore(w0)=log(ex01+ex02)


接着,我们计算 w 0 → w 1 w_0 \rightarrow w_1 w0w1:

o b s = [ x 11 , x 12 ] obs = [x_{11},x_{12}] obs=[x11,x12]

p r e v i o u s = [ x 01 , x 02 ] previous = [x_{01},x_{02}] previous=[x01,x02]

为了计算方便,我们将 p r e v i o u s previous previous转变为:

p r e v i o u s = ( x 01 x 01 x 02 x 02 ) previous = \begin{pmatrix} x_{01} & x_{01} \\ x_{02} & x_{02} \end{pmatrix} previous=(x01x02x01x02)

同样,将 o b s obs obs转变为:

o b s = ( x 11 x 12 x 11 x 12 ) obs = \begin{pmatrix} x_{11} & x_{12} \\ x_{11} & x_{12} \end{pmatrix} obs=(x11x11x12x12)

备注:通过矩阵方式计算更高效

接着,我们将 p r e v i o u s , a b s previous,abs previous,abs和transition Score进行相加,即:

s c o r e s = ( x 01 x 01 x 02 x 02 ) + ( x 11 x 12 x 11 x 12 ) + ( t 11 t 12 t 21 t 22 ) scores = \begin{pmatrix} x_{01}&x_{01}\\ x_{02}&x_{02} \end{pmatrix} + \begin{pmatrix} x_{11}&x_{12}\\ x_{11}&x_{12} \end{pmatrix} + \begin{pmatrix} t_{11}&t_{12}\\ t_{21}&t_{22} \end{pmatrix} scores=(x01x02x01x02)+(x11x11x12x12)+(t11t21t12t22)

接着,可得到:

s c o r e s = ( x 01 + x 11 + t 11 x 01 + x 12 + t 12 x 02 + x 11 + t 21 x 02 + x 12 + t 22 ) scores = \begin{pmatrix} x_{01}+x_{11}+t_{11}&x_{01}+x_{12}+t_{12}\\ x_{02}+x_{11}+t_{21}&x_{02}+x_{12}+t_{22} \end{pmatrix} scores=(x01+x11+t11x02+x11+t21x01+x12+t12x02+x12+t22)

从而我们可得到当前的 p r e v i o u s previous previous为:

p r e v i o u s = [ log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) , log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) ] previous=[\log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}}), \log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})] previous=[log(ex01+x11+t11+ex02+x11+t21),log(ex01+x12+t12+ex02+x12+t22)]

实际上,第二步已经算完了,可能还有人还无法理解如何得到 w 0 w_0 w0 w 1 w_1 w1的所有可能序列组合( l a b e l 1 → l a b e l 1 , l a b e l 1 → l a b e l 2 , l a b e l 2 → l a b e l 1 , l a b e l 2 → l a b e l 2 label_1 \rightarrow label_1, label_1 \rightarrow label_2 , label_2 \rightarrow label_1, label_2 \rightarrow label_2 label1label1,label1label2,label2label1,label2label2)的总得分,其实你主要按照以下计算方式即可;

T o t a l S c o r e ( w 0 → w 1 ) TotalScore(w_0 → w_1) TotalScore(w0w1)

= log ⁡ ( e p r e v i o u s [ 0 ] + e p r e v i o u s [ 1 ] ) =\log (e^{previous[0]} + e^{previous[1]}) =log(eprevious[0]+eprevious[1])

= log ⁡ ( e log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) + e log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) ) =\log (e^{\log(e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})}+ e^{\log(e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})} ) =log(elog(ex01+x11+t11+ex02+x11+t21)+elog(ex01+x12+t12+ex02+x12+t22))

= log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 + e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) =\log(e^{x_{01}+x_{11}+t_{11}}+e^{x_{02}+x_{11}+t_{21}}+e^{x_{01}+x_{12}+t_{12}}+e^{x_{02}+x_{12}+t_{22}}) =log(ex01+x11+t11+ex02+x11+t21+ex01+x12+t12+ex02+x12+t22)

很明显,与 log ⁡ ( e S 1 + e S 2 + … + e S N ) \log(e^{S_1} + e^{S_2} + … + e^{S_N}) log(eS1+eS2++eSN)很相似。

在上述公式中,我们可以看到:

  • S 1 = x 01 + x 11 + t 11 S_1 = x_{01}+x_{11}+t_{11} S1=x01+x11+t11 ( l a b e l 1 label_1 label1 l a b e l 1 label_1 label1)
  • S 2 = x 02 + x 11 + t 21 S_2 = x_{02}+x_{11}+t_{21} S2=x02+x11+t21 ( l a b e l 2 label_2 label2 l a b e l 1 label_1 label1)
  • S 3 = x 01 + x 12 + t 12 S_3 = x_{01}+x_{12}+t_{12} S3=x01+x12+t12 ( l a b e l 1 label_1 label1 l a b e l 2 label_2 label2)
  • S 4 = x 02 + x 12 + t 22 S_4 = x_{02}+x_{12}+t_{22} S4=x02+x12+t22 ( l a b e l 2 label_2 label2 l a b e l 2 label_2 label2)

接着我们计算 w 0 w_0 w0 w 1 w_1 w1 w 2 w_2 w2:

如果你理解了上一步的计算过程的话,其实这一步的计算与上一步类似。即:

o b s = [ x 21 , x 22 ] obs = [x_{21}, x_{22}] obs=[x21,x22]

p r e v i o u s = [ log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) , log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) ] previous=[\log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}}), \log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})] previous=[log(ex01+x11+t11+ex02+x11+t21),log(ex01+x12+t12+ex02+x12+t22)]

类似于第二步,我们将 p r e v i o u s previous previous转化为:

p r e v i o u s = ( log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) ) previous = \begin{pmatrix} \log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})&\log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})\\ \log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})&\log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}}) \end{pmatrix} previous=(log(ex01+x11+t11+ex02+x11+t21)log(ex01+x12+t12+ex02+x12+t22)log(ex01+x11+t11+ex02+x11+t21)log(ex01+x12+t12+ex02+x12+t22))

同样,将 o b s obs obs转化为:

o b s = ( x 21 x 22 x 21 x 22 ) obs = \begin{pmatrix} x_{21}&x_{22}\\ x_{21}&x_{22} \end{pmatrix} obs=(x21x21x22x22)

p r e v i o u s , o b s previous,obs previousobs和transition Score进行相加,即:

s c o r e s = ( log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) ) + ( x 21 x 22 x 21 x 22 ) + ( t 11 t 12 t 21 t 22 ) scores = \begin{pmatrix} \log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})&\log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})\\ \log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})&\log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}}) \end{pmatrix} + \begin{pmatrix} x_{21}&x_{22}\\ x_{21}&x_{22} \end{pmatrix} + \begin{pmatrix} t_{11}&t_{12}\\ t_{21}&t_{22} \end{pmatrix} scores=(log(ex01+x11+t11+ex02+x11+t21)log(ex01+x12+t12+ex02+x12+t22)log(ex01+x11+t11+ex02+x11+t21)log(ex01+x12+t12+ex02+x12+t22))+(x21x21x22x22)+(t11t21t12t22)

更新 p r e v i o u s previous previous为:
p r e v i o u s = [ log ⁡ ( e log ⁡ ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) + x 22 + t 12 + e log ⁡ ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) + x 22 + t 22 ) ] previous = [\log( e^{\log (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}}) + x_{22} + t_{12}} + e^{\log (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}}) + x_{22} + t_{22}})] previous=[log(elog(ex01+x11+t11+ex02+x11+t21)+x22+t12+elog(ex01+x12+t12+ex02+x12+t22)+x22+t22)]
= log ⁡ ( ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) e x 22 + t 12 + ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) e x 22 + t 22 ) ] =\log( (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})e^{x_{22} + t_{12}} + (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})e^{x_{22} + t_{22}})] =log((ex01+x11+t11+ex02+x11+t21)ex22+t12+(ex01+x12+t12+ex02+x12+t22)ex22+t22)]

当计算到最后一步时,我们使用新的 p r e v i o u s previous previous计算总得分:

T o t a l S c o r e ( w 0 → w 1 → w 2 ) TotalScore(w_0 → w_1 → w_2) TotalScore(w0w1w2)

= log ⁡ ( e p r e v i o u s [ 0 ] + e p r e v i o u s [ 1 ] ) =\log (e^{previous[0]} + e^{previous[1]}) =log(eprevious[0]+eprevious[1])

= log ⁡ ( e log ⁡ ( ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) e x 21 + t 11 + ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) e x 21 + t 21 ) =\log (e^{\log( (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})e^{x_{21} + t_{11}} + (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})e^{x_{21} + t_{21}} )} =log(elog((ex01+x11+t11+ex02+x11+t21)ex21+t11+(ex01+x12+t12+ex02+x12+t22)ex21+t21)

+ e log ⁡ ( ( e x 01 + x 11 + t 11 + e x 02 + x 11 + t 21 ) e x 22 + t 12 + ( e x 01 + x 12 + t 12 + e x 02 + x 12 + t 22 ) e x 22 + t 22 ) ) +e^{\log( (e^{x_{01}+x_{11}+t_{11}} + e^{x_{02}+x_{11}+t_{21}})e^{x_{22} + t_{12}} + (e^{x_{01}+x_{12}+t_{12}} + e^{x_{02}+x_{12}+t_{22}})e^{x_{22} + t_{22}})} ) +elog((ex01+x11+t11+ex02+x11+t21)ex22+t12+(ex01+x12+t12+ex02+x12+t22)ex22+t22))

= log ⁡ ( e x 01 + x 11 + t 11 + x 21 + t 11 + e x 02 + x 11 + t 21 + x 21 + t 11 =\log (e^{x_{01}+x_{11}+t_{11}+x_{21}+t_{11}}+e^{x_{02}+x_{11}+t_{21}+x_{21}+t_{11}} =log(ex01+x11+t11+x21+t11+ex02+x11+t21+x21+t11

+ e x 01 + x 12 + t 12 + x 21 + t 21 + e x 02 + x 12 + t 22 + x 21 + t 21 +e^{x_{01}+x_{12}+t_{12}+x_{21}+t_{21}}+e^{x_{02}+x_{12}+t_{22}+x_{21}+t_{21}} +ex01+x12+t12+x21+t21+ex02+x12+t22+x21+t21
+ e x 01 + x 11 + t 11 + x 22 + t 12 + e x 02 + x 11 + t 21 + x 22 + t 12 +e^{x_{01}+x_{11}+t_{11}+x_{22}+t_{12}}+e^{x_{02}+x_{11}+t_{21}+x_{22}+t_{12}} +ex01+x11+t11+x22+t12+ex02+x11+t21+x22+t12
+ e x 01 + x 12 + t 12 + x 22 + t 22 + e x 02 + x 12 + t 22 + x 22 + t 22 ) +e^{x_{01}+x_{12}+t_{12}+x_{22}+t_{22}}+e^{x_{02}+x_{12}+t_{22}+x_{22}+t_{22}}) +ex01+x12+t12+x22+t22+ex02+x12+t22+x22+t22)


到这里,我们就完成 了 log ⁡ ( e S 1 + e S 2 + … + e S N ) \log(e^{S_1} + e^{S_2} + … + e^{S_N}) log(eS1+eS2++eSN)的计算过程。

参考文献

[1] Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K. and Dyer, C., 2016. Neural architectures for named entity recognition. arXiv preprint arXiv:1603.01360.

转载地址:https://blog.csdn.net/zhang2010hao/article/details/85317411 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:字符串相似度计算算法
下一篇:BILSTM-CRF-4

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月09日 03时29分56秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Atiitt uke兼wag集团2017年度成果报告总结 attilax著 1. 组织机构进一步完善 8大首席部门 1 2. 事业部进一步完善,以及一百多个事业部了 1 3. 企业文化进一步完善 1 2019-04-29
Atititi ui之道 attilax著 v3 s11.docx 1. 概览 2 1.1. 软件设计可分为两个部分:编码设计与UI设计 2 2. 用户界面设计的三大原则是:置界面于用户的控制之下; 2019-04-29
Atitit 集团与个人的完整入口列表 attilax的完整入口 1. 集团与个人的完整入口列表 1 2. 流量入口概念 2 3. 流量入口的历史与发展 2 1.集团与个人的完整入口列表 2019-04-29
Atitit 网络编程之道 2019-04-29
Atiitt attilax掌握的前后技术放在简历里面.docx 2019-04-29
Atiitt 文档处理之道 attilax著 2019-04-29
Atiitt 可视化 报表 图表之道 attilax著 Atitit.可视化与报表原理与概论 1. 信息可视化 1 2. Gui可视化 2 2.1. atitit 知识的可视化.docx 2 2019-04-29
paip.c#图片裁剪 2019-04-29
paip.html 及css调试工具---debugbar 2019-04-29
paip.项目开发效率提升之思索 2019-04-29
paip.项目开发效率提升之思索 2019-04-29
Atitit spring5 集成 mybatis 注解班 2019-04-29
Atitit springboot mybatis spring 集成 Springboot1.4 mybatis3.4.6 /springbootMybatis 目录 1.1. 设置map 2019-04-29
Atitit 模板引擎总结 目录 1. 模板引擎 1 2. 常见模板步骤 1 2.1. 1)定义模板字符串 1 2.2. 2)预编译模板 2 2.3. 渲染模板 2 3. 流程渲染 if el 2019-04-29
Atitit 字符串转换数组main参数解析 args splitByWholeSeparator String string=" -host 101.1 8*124 -db 1 2019-04-29
paip.提升效率----几款任务栏软件vc59 2019-04-29
paip.验证码识别---序列号的反转 2019-04-29
paip.php调试脱离IDE VC59 2019-04-29
paip.DEVSUIT WEB .NET ASPX网站打开慢的原因 2019-04-29
央行数字货币将取代纸币?这篇文章说明白了 2019-04-29