文章目录
Preface
自动ICD(国际疾病分类)编码:多标签文本分类问题,具有嘈杂的临床文档输入和长尾标签分布。
提出方法:基于代码描述的对抗性生成模型(AGM-HT)
包含:一个生成器(generator),基于ICD代码描述,合成特定于代码的潜在特征。一个鉴别器(discriminator),检验生成特征的真实性。
对于零样本学习而言,鉴别器从ICD层次结构中最近同属的(sibling)数据中,将生成的特征和真实的特征区分开。生成的特征进一步用于重构输入文档中的关键字,以保留语义。
贡献:
- 第一个提出用于多标签文本分类的GZSL生成模型
- AGM-HT利用ICD代码的分层结构,在没有任何标记数据的情况下为零样本代码生成语义上有意义的特征。
- AGM-HT具有一种新的伪循环生成架构,通过重构输入文档中的相关关键字来保证合成特征和真实特征之间的语义一致性。
Method
问题描述
设定
L
,
L
=
∣
L
∣
\mathbb{L}, L=|\mathbb{L}|
L,L=∣L∣ 是所有ICD代码的集合,给定一个输入文本,目标是预测所有
y
l
∈
{
0
,
1
}
,
l
∈
L
y_l\in \{0,1\}, l\in \mathbb{L}
yl∈{0,1},l∈L。每个ICD代码都有一个简短的文本描述。
所有ICD代码上也有一个已知的层次树结构:对于表示ICD代码的节点,该节点的子节点表示该ICD代码的子类型。
目标:准确预测从未被分配给任何训练文本的
C
o
d
e
l
Code\ l
Code l。
特征提取
零样本注意图卷积网络(ZAGRNN),采用标签分配感知的边际损失。
ZAGRNN作为特征提取器。ZAGRNN提取标签级(label-wise)特征,并使用GRNN为每个ICD代码构建嵌入结构。ZAGRNN基于图标签嵌入与标签特定特征之间的点积,对每个代码进行二进制预测。
X
=
[
w
1
,
.
.
.
,
w
n
]
X=[w_1,...,w_n]
X=[w1,...,wn]:输入临床文档,包含
n
n
n 个嵌入词向量。
v
l
v_l
vl 表示第
l
l
l 个ICD代码的文本描述。用1D-CNN组合相邻词嵌入以获得
n
−
g
r
a
m
n-gram
n−gram 文本特征
H
=
c
o
n
v
(
X
)
∈
R
N
×
d
c
H=conv(X)\in \mathbb{R}^{N\times d_c}
H=conv(X)∈RN×dc。通过以下公式计算标签
l
l
l 的标签关注特征
a
l
∈
R
d
a_l∈\mathbb{R}^d
al∈Rd:
s
l
s_l
sl 表示
H
H
H 中所有行的注意力得分。
直观地说,
a
l
a_l
al 通过使用注意力来提取
H
H
H 中关于代码
l
l
l 的最相关的信息。这样的话,每个输入对于每个ICD代码总共有
L
L
L 个注意特征向量。
多标签分类
对于代码
l
l
l,二进制预测结果为
y
^
l
\hat y_l
y^l:
用GRNN编码分类器
g
l
g_l
gl.
令
V
\mathcal{V}
V 代表ICD树层结构中与
l
l
l相邻的代码集。
t
t
t 代表传播图的次数,分类器
g
l
=
g
l
t
g_l=g_l^t
gl=glt:
其中,
g
l
0
=
v
l
g_l^0=v_l
gl0=vl,GRU是门控循环单位。损失函数:
采用标签分布感知边际(LDAM)解决ICD中标签不均衡的问题。
1
(
)
1()
1() 在
y
l
=
1
y_l=1
yl=1 时输出1,
Δ
l
=
C
n
l
0.25
\Delta_l=\frac{C}{n_l^{0.25}}
Δl=nl0.25C,
C
C
C 是常数,
n
l
n_l
nl 为标签为
l
l
l 的训练样本数。LDAM的损涵为:
L
L
D
A
M
=
L
B
C
E
(
y
,
y
^
m
)
\mathcal{L}_{LDAM}=\mathcal{L}_{BCE}(y,\hat y^m)
LLDAM=LBCE(y,y^m)。
零样本潜在特征生成
在零样本中,所有的训练数据 l l l 标签都为 y l = 0 y_l=0 yl=0。用带梯度惩罚的WGAN(WGAN-GP)生成基于代码文本描述的特定代码的潜在特征。
使用标签编码器函数
C
:
L
→
C
C:\mathbb{L}\rightarrow\mathbb{C}
C:L→C,将代码描述映射到一个低维向量
c
,
c
l
=
C
(
l
)
c,c_l=C(l)
c,cl=C(l)。
使用生成器
G
:
Z
×
C
→
F
G:\mathbb{Z}\times\mathbb{C}\rightarrow\mathbb{F}
G:Z×C→F,去一个随机高斯噪声向量
z
∈
Z
z\in \mathbb{Z}
z∈Z 和一个编码向量
c
∈
C
c\in\mathbb{C}
c∈C 生成一个潜在特征
f
~
l
=
G
(
z
,
c
)
\tilde f_l=G(z,c)
f~l=G(z,c)。
鉴别器
D
:
F
×
C
→
R
D:\mathbb{F}\times\mathbb{C}\rightarrow\mathbb{R}
D:F×C→R。WGAN-GP的损涵:
其中,
(
⋅
,
c
)
∼
P
S
⋅
,
c
(\cdot,c) \sim P_\mathbb{S}^{\cdot,c}
(⋅,c)∼PS⋅,c 代表已知代码标签集
S
\mathbb{S}
S 中潜在特征和编码标签向量的联合分布。
f
ˆ
=
α
⋅
f
+
(
1
−
α
)
⋅
f
˜
,
α
∼
U
(
0
,
1
)
\^f=\alpha\cdot f+(1-\alpha)\cdot\~f,\alpha\sim\mathcal{U}(0,1)
fˆ=α⋅f+(1−α)⋅f˜,α∼U(0,1),
λ
\lambda
λ是梯度惩罚系数。WGAN-GP可以通过解决极大极小值问题来学习:
m
i
n
G
m
a
x
D
L
W
G
A
N
min_Gmax_D\mathcal{L}_{WGAN}
minGmaxDLWGAN。
标签编码器 C C C
对于代码
l
l
l,使用 LSTM 将描述中的
M
M
M 词序列编码成隐藏层状态序列
[
e
1
,
.
.
.
,
e
M
]
[e_1,...,e_M]
[e1,...,eM]。
然后对隐藏层状态序列做维度最大池化得到一个固定大小的编码向量
e
l
e_l
el.
最后,连接
e
l
e_l
el 和
g
l
g_l
gl 得到最终嵌入
c
l
=
e
l
∣
∣
g
l
c_l=e_l||g_l
cl=el∣∣gl。
g
l
g_l
gl 是由图编码网络产生的l的嵌入。
c
l
c_l
cl 包含描述的潜在语义(在
e
l
e_l
el 中)以及ICD层次结构信息(在
g
l
g_l
gl 中)。
关键词重构损函
代码
l
l
l,生成特征向量
f
˜
l
\~f_l
f˜l。
对于每个用代码
l
l
l 标记的输入文本
x
x
x,提取标签特定的关键词集
K
l
=
w
1
,
.
.
.
w
k
K_l={w_1,...w_k}
Kl=w1,...wk 作为
x
x
x 到
l
l
l 最相似的词集。相似度由
x
x
x 中的词嵌入和标签嵌入的余弦相似度来度量。
设定
Q
Q
Q 为投影矩阵,
K
\mathcal{K}
K为输入的所有关键词集,
π
(
⋅
,
⋅
)
\pi(\cdot,\cdot)
π(⋅,⋅) 表示余弦相似度函数,重构关键词的损函:
使用ICD层次结构判别零样本码
从零样本码
l
l
l 的最近码
l
s
i
b
l^{sib}
lsib 的真实数据中提取的潜在特征(
f
s
i
b
f^{sib}
fsib),来训练鉴别器。
换种说法,令
c
s
i
b
=
C
(
l
s
i
b
)
c^{sib}=C(l^{sib})
csib=C(lsib),对WGZN训练零样本码做如下修改:
其中,
c
∼
P
U
c
c\sim P_\mathbb{U}^c
c∼PUc 是零样本码集
U
\mathbb{U}
U 编码标签向量的分布,
(
⋅
,
c
)
∼
P
U
⋅
,
c
(\cdot,c)\sim P_\mathbb{U}^{\cdot,c}
(⋅,c)∼PU⋅,c代表未知码标签集
U
\mathbb{U}
U 中潜在特征和编码标签向量的联合分布。损失项由余弦相似度
π
(
c
,
c
s
i
b
)
\pi(c,c^{sib})
π(c,csib)加权。整体学习目标为:
其中,
β
β
β 为关键字重构损失的平衡系数。
对已生成的特征进行微调
微调分类器
g
l
g_l
gl。
用生成器生成一组
f
˜
l
\~f_l
f˜l 并用
y
l
=
1
y_l=1
yl=1 标记。
用基线模型从训练数据中采集一组标签为
y
l
=
0
y_l=0
yl=0 的
f
l
f_l
fl。
微调已标记的特征向量上的
g
l
g_l
gl,为零样本码
l
l
l 得到最终的二进制分类器。
Experiment results
使用
L
W
G
A
N
,
L
W
G
A
N
−
Z
\mathcal{L}_{WGAN},\mathcal{L}_{WGAN-Z}
LWGAN,LWGAN−Z为零样本码生成特征的T-SNE可视化图。浅色的表示生成数据的特征,深色的表示来自邻居码的特征提取。使用
L
W
G
A
N
−
Z
\mathcal{L}_{WGAN-Z}
LWGAN−Z 效果更好。