论文笔记--Chinese Lexical Analysis with Deep Bi-GRU-CRF Network
1. 文章简介
- 标题:Chinese Lexical Analysis with Deep Bi-GRU-CRF Network
- 作者:Zhenyu Jiao, Shuqi Sun, Ke Sun
- 日期:2018
- 期刊:arxiv
2. 文章导读
2.1 概括
文章通过构建一个BI-GRU-CRF网络(网络结构如下图),得到了一个可以同时进行单词分割(word segmentation)、词性标注(POS, part-of-speeach tagging)和命名实体识别(NER, name entity recognition)的模型。
2.2 文章重点技术
2.2.1 词性标注
所谓词性标注任务,即对给定的句子
c
1
,
…
,
c
T
c_1, \dots, c_T
c1,…,cT,需要判定每个字符
c
i
c_i
ci的词性
l
i
l_i
li。文章基于IOB2标准格式,将每个
l
i
l_i
li表示形如
t
−
[
BI
]
t-[\text{BI}]
t−[BI]的格式,其中
t
t
t为每个字符的词性,后缀为
B
B
B或
I
I
I,分别表示该字符位于单词的起始位置(beginning)还是中间位置(intermedium)。
文章的词性分类如下
2.2.2 GRU
RNN是NLP词性标注等任务中常见的一种网络架构,GRU和LSTM是RNN的两种变体,可以更好地建模长句子中的依赖关系。文章实验了GRU和LSTM的效果,发现GRU效果更好。
GRU的架构示意如下。GRU由一个重置门
r
t
r_t
rt,一个更新门
u
t
u_t
ut和候选记忆门
h
t
′
h_t'
ht′组成,这里笔者采用由后向前的功能叙述GRU的功能:
- 新的隐藏层状态 h t h_t ht由上一个隐藏层状态 h t − 1 h_{t-1} ht−1和当前输入 x t x_t xt的加权平均得到,具体体现在公式 h t = ( 1 − u t ) h t − 1 + u t h t ′ h_t = (1-u_t) h_{t-1} + u_t h_t' ht=(1−ut)ht−1+utht′
- 其中更新门 u t ∈ ( 0 , 1 ) u_t\in(0,1) ut∈(0,1)表示要遗弃历史信息的比例, u t u_t ut越大保留上一个隐藏层 h t − 1 h_{t-1} ht−1的信息越少,即遗忘越多,反之遗忘信息越少, u t u_t ut的计算方式为 σ ( W u h t − 1 + W u h x t ) \sigma(W_u h_{t-1} + W_{uh} x_t) σ(Wuht−1+Wuhxt)
- h t ′ h_t' ht′为当前的候选隐藏层状态,通过 h t − 1 h_{t-1} ht−1发出的信号值和当前输入 x t x_t xt得到: h t ′ = tanh ( W c r t ⊙ h t − 1 + W c x x t ) h_t' = \tanh(W_c r_t \odot h_{t-1} + W_{cx} x_t) ht′=tanh(Wcrt⊙ht−1+Wcxxt)
- 其中
r
t
∈
(
0
,
1
)
r_t\in(0,1)
rt∈(0,1)为重置门,表示保留
h
t
−
1
h_{t-1}
ht−1的信息比重,
r
t
=
σ
(
W
r
h
t
−
1
W
r
x
x
t
)
r_t = \sigma(W_r h_{t-1} W_{rx} x_t)
rt=σ(Wrht−1Wrxxt)
文章采用了多个Bi-GRU块,每个Bi-GRU由两个不同方向的GRU组成,最终的输出为两者拼接的结果。
2.2.3 CRF
接下来将多个Bi-GRU块的最顶层连接到一个CRF层,计算条件概率
p
(
y
∣
h
)
p(\mathbf{y}|\mathbf{h})
p(y∣h),即基于上述最顶层的Bi-GRU的隐藏状态预测标签(tag)序列。
定义条件概率
p
(
y
∣
h
;
t
,
s
)
p(\mathbf{y}|\mathbf{h};t,s)
p(y∣h;t,s)为
p
(
y
∣
h
;
t
,
s
)
=
∏
i
=
1
T
ψ
i
(
y
i
−
1
,
y
i
,
h
)
∑
y
′
∈
Y
(
h
)
∏
i
=
1
T
ψ
i
(
y
i
−
1
′
,
y
i
′
,
h
)
p(\mathbf{y}|\mathbf{h};t,s) = \frac{\prod_{i=1}^T \psi_i(y_{i-1},y_i,\mathbf{h})}{\sum_{y'\in\mathcal{Y}(\mathbf{h})} \prod_{i=1}^T \psi_i(y_{i-1}',y_i',\mathbf{h})}
p(y∣h;t,s)=∑y′∈Y(h)∏i=1Tψi(yi−1′,yi′,h)∏i=1Tψi(yi−1,yi,h),其中
ψ
i
(
y
i
−
1
,
y
i
,
h
)
=
exp
(
∑
i
=
1
T
t
(
y
i
−
1
,
y
i
,
h
)
+
s
(
y
i
,
h
)
)
\psi_i(y_{i-1},y_i,\mathbf{h})=\exp(\sum_{i=1}^Tt(y_{i-1}, y_i, \mathbf{h}) + s(y_i, \mathbf{h}))
ψi(yi−1,yi,h)=exp(∑i=1Tt(yi−1,yi,h)+s(yi,h)),
Y
(
h
)
\mathcal{Y}(\mathbf{h})
Y(h)表示所有可能的标注序列,
s
,
t
s, t
s,t分别表示第
i
i
i时刻第全联接层输出
y
i
y_i
yi的概率和
y
i
−
1
y_{i-1}
yi−1到
y
i
y_i
yi的转移概率。
然后通过Viterbi算法[2]找到
Y
(
h
)
\mathcal{Y}(\mathbf{h})
Y(h)中最大化条件概率大解
y
∗
y^*
y∗作为当前的输出标注。
特别注意,由于我们采用了IOB2标准格式,在推理阶段有以下几点限制
- 句子的第一个字符不能为I;
- I的前一个标注只能为相同类型的B或者I,如 L O C − I LOC-I LOC−I前面的单词只能为LOC-I或者LOC-B。
2.2.4 训练阶段
文章基于前期的Online框架,对包括网页标题、网页搜索语句、新闻、百度的文章在内的多个领域数据进行初步分析,得到初步的标注结果,另外请语言学专家对小部分数据进行人工标注。为了提高人工标注的数据的影响,文章对人工标注数据进行了上采样。
3. 文章亮点
文章通过多个Bi-GRU的网络架构和CRF计算条件概率,得到了集单词分割、词性标注和命名实体识别为一体的模型。数值实验结果表明,文章提出的模型在多个任务上性能表现超过之前的Online model。
文章构建了开源工具LAC。LAC使用简单,对中文的处理能力是State-of-the-art水平。感兴趣的读者可以去github[3]上面看下相关代码。
4. 原文传送门
Chinese Lexical Analysis with Deep Bi-GRU-CRF Network