【文献阅读】Are Noisy Sentences Useless for Distant Supervised Relation Extraction?

任务定义与符号

该文将联系类别定义为:
R = { r 1 , r 2 , … , r k } \mathbf{R} = \{ r_1, r_2 , \dots, r_k \} R={r1,r2,,rk}
其中, k k k为联系类别总数。

给出一个“句袋”(bag of sentences):
S b = { s 1 , s 2 , … , s b } \mathbf{S}_b = \{ s_1 , s_2 , \dots, s_b \} Sb={s1,s2,,sb}
b b b个句子和在每个句子中都出现的实体对 ( e 1 , e 2 ) (e_1, e_2) (e1,e2)构成。

远程监督联系抽取的目的是:依据实体对 ( e 1 , e 2 ) (e_1, e_2) (e1,e2),预测句袋 S b \mathbf{S}_b Sb的联系 r i r_i ri
因此,联系抽取被定义为一个分类问题。

架构(architecture of DCRE)

DCRE的架构
图1 DCRE的架构,阐明了处理一个包含三个句子的句袋的过程。

在本节中,我们介绍了我们的远程监督联系抽取方法。神经网络的结构如图1所示。它显示了处理一个句袋的过程。我们的模型包含三个主要模块:一个句子编码器,一个噪声检测器和一个标签发生器。在下文中,我们首先给出了任务的定义和符号。然后,我们提供这三个模块的详细形式化。

理解:

  1. 句子编码器接收训练集中的句子和标签,将其中的句子编码为句向量;
  2. 句向量同时作为噪声检测器和标签生成器的输入;
  3. 噪声检测器计算每个句子和目标联系之间的匹配程度,它表示一个句子的原始联系标签为正确的可能性。如果匹配程度小与阈值,则该句子被视为一个噪声样本;
  4. 标签生成器会 每个样本都会都到多个聚类结果,并通过投票确定其最终的类别。

模块

句子编码器(Sentence Encoder)

抽取联系时,须首先将句子转为低维向量。

该文首先将句子转为包含词嵌入和位置嵌入的矩阵。然后用一个分段卷积层获得最终的句子表征。

词的表示(Word Representation)

在一个句子中,每个词 w i w_i wi首先被映射到一个 d w d_w dw维的词嵌入 v i v_i vi
该文的工作中采用了(Zeng et al. 2014)提出的位置特征(PFs)来指定目标实体对,使模型更加关注靠近目标实体的词。PFs是一系列从当前词到两个实体的相对距离。
位置嵌入 p i e 1 , p i e 2 p_i^{e_1} , p_i^{e_2} pie1,pie2是PFs的低维向量。每个单词 w i w_i wi的最终表示 x i x_i xi是单词嵌入和两个位置嵌入 x i = [ v i ; p i e 1 ; p i e 2 ] x_i = [v_i; p_i^{e_1}; p_i^{e_2}] xi=[vi;pie1;pie2]的连接。那么,输入的句子表征就是:
X = x 1 , x 2 , … , x n l \mathbf{X} = x_1, x_2, \dots, x_{n_l} X=x1,x2,,xnl
其中, n l n_l nl为句子的长度。

PCNN

该文采用PCNN作为特征提取器,它主要由两部分组成:一维卷积(one-dimensional convolution)和分段最大池化(piece-wise max-pooling)。

一维卷积是权重矩阵 W \mathbf{W} W和输入矩阵 X \mathbf{X} X之间的一种操作, W \mathbf{W} W被视为卷积的滤波器(filter) x i x_i xi是与句子中第 i i i个词相关的输入向量。一般来说,令 x i : j x_{i:j} xi:j x i x_i xi x j x_j xj的连接, w w w指的是滤波器的大小。卷积是将向量 W \mathbf{W} W与句子 X \mathbf{X} X中的每个 w w w-gram进行点积,得到另一个序列 m i m_i mi

m i = W T x i − w + 1 : i \boldsymbol{m}_{i}=\mathbf{W}^{T} \boldsymbol{x}_{i-w+1: i} mi=WTxiw+1:i

m i m_i mi的数量是 n l − w + 1 n_l - w + 1 nlw+1。在模型中,每个句子都用填充元素填充,这样向量 m i m_i mi的数量就等于句子的长度 n l n_l nl。卷积结果是一个特征图矩阵 M = { m 1 , m 2 , . . . , m n l } M = \{ m_1 , m_2 , ..., m_{n_l} \} M={m1,m2,...,mnl}。特征图(feature map) M i M_i Mi的数量为 n f n_f nf,其中 n f n_f nf是滤波器的数量。

分段最大池化被用来捕捉句子的结构信息。卷积层后,每个特征图 M i M_i Mi按两个实体的位置分为三部分 { M i 1 , M i 2 , M i 3 } \{ M_{i1} , M_{i2} , M_{i3} \} {Mi1,Mi2,Mi3}。然后,对这三部分分别进行最大池化操作。最后的句子表征 h h h是所有向量的连接:

h = [ p i 1 , p i 2 , p i 3 ] h = [ p_{i1}, p_{i2}, p_{i3} ] h=[pi1,pi2,pi3]

其中 p i k = m a x ( M i k ) p_{ik} = max( \mathbf{M}_{ik} ) pik=max(Mik), k ∈ { 1 , 2 , 3 } k \in \{ 1, 2, 3 \} k{1,2,3} 。为了避免过拟合,暂退法(dropout strategy)(Srivastava et al. 2014)被应用于句子表征矩阵。

噪声检测器(Noise Detector)

噪声检测器的目的是从句袋中挑选出有噪声的句子,并将其送入标签生成器。

H b = { h 1 , h 2 , … , h b } \mathbf{H}_b = \{ h_1, h_2, \dots, h_b \} Hb={h1,h2,,hb} H b ∈ R b × d s \mathbf{H}_b \in \mathbf{R}^{b × d_s} HbRb×ds代表一个句袋的表征, h i h_i hi是句子编码器产生的句子的 d s d_s ds维表征, b b b是句子的数量。

L = { l 1 , l 2 , … , l k } \mathbf{L} = \{ l_1, l_2, \dots, l_k\} L={l1,l2,,lk} L ∈ R k × d s \mathbf{L} \in \mathbf{R}^{k×d_s} LRk×ds 代表所有联系的表征。

首先,采用句子表征 h i h_i hi与袋级(bag-level)联系标签的向量 l j l_j lj间的简单点积,计算耦合系数,如下:

[156]:Firstly, a simple dot product <- (between the sentence representation h i h_i hi and the vector of bag-level relation label l j l_j lj) || is adopted [to calculate the coupling coefficient] as:

a i = h i l j T . a_i = h_i l_j^T. ai=hiljT.

然后,将耦合系数在袋级通过softmax函数归一化:
a i = e x p ( a i ) ∑ b e x p ( a i ) a_i = \frac {exp(a_i)} {\textstyle\sum_{b} exp(a_i)} ai=bexp(ai)exp(ai)
其中每个 a i a_i ai对应于袋中每个句子与袋级目标联系(bag-level target relation)之间的匹配程度。它表示对于当前句子,原始联系标签是正确的可能性。该文设置了一个阈值 ϕ \phi ϕ来检测噪声句子,耦合系数小于 ϕ \phi ϕ的句子将被视为一个噪声样本。

然而,该文不能保证具有较高耦合的句子就没有被错误地标记。对于这种不确定的情况,我们的解决方案是使用当前确定的句子。在一个句子袋中,我们将得分最高的句子视为有效样本。而那些既没有被确定为噪声句子,又没有被确定为有效样本的句子(耦合系数大于 ϕ \phi ϕ 且 不等于最佳得分)将被忽略

这一操作背后的原因是:
(1)如果最佳得分的句子确实表达了目标联系,那么它就符合 "至少表达一次 "的假设(Riedel, Yao, and Mccallum 2010)。这个假设认为,在一个句袋中,至少有一个句子可能表达目标关系。
(2)如果最佳得分的句子是一个噪声样本,换句话说,袋中所有的句子都是噪声样本,句袋是一个噪声袋(Ye and Ling 2019),忽略不确定的样本实际上就是删除噪声句子。在这两种情况下,重新标记高确定性的噪声句子会对模型的性能有所帮助。

标签生成器(Label Generator)

标签生成器在深度聚类神经网络的基础上为噪声句子提供高置信度的联系标签。
H = { h 1 , h 2 , … , h n } \mathbf{H} = \{ h_1 , h_2 , \dots, h_n \} H={h1,h2,,hn}
H ∈ R n × d s \mathbf{H} \in \mathbf{R}^{n×d_s} HRn×ds 代表预训练的句子编码器产生的所有句子的表征,
L = { l 1 , l 2 , … , l k } \mathbf{L} = \{ l_1 , l_2 , \dots, l_k \} L={l1,l2,,lk}
L ∈ R k × d s \mathbf{L} \in \mathbf{R}^{k×d_s} LRk×ds 代表预训练出的联系矩阵

1.将句子表征映射到联系特征空间:
C = H L T + b \mathbf{C} = \mathbf{HL}^T + b C=HLT+b

其中, b b b为偏置。这个操作可以被看作是以所有联系为查询向量(query vectors)注意力(attention)
以计算联系感知的(relation-aware)句子表征。
这里相当于将每个句子投影到联系空间中,每个句子与每个关系做权重计算,并用于获得联系感知的(relation-aware)句子表征。

2.将 C \mathbf{C} C传入聚类层,它将聚类中心 { μ i } i = 1 n c \{\mu_i\}_{i=1}^{n_c} {μi}i=1nc作为可训练的权重,其中 n c n_c nc是类别数量。该文使用学生t分布(Student’s t-distribution) (Maaten and Hinton 2008)作为核来度量特征向量 c i c_i ci与聚类中心 μ j \mu_j μj之间的相似度 q i j q_{ij} qij(公式7):
q i j = ( 1 + ∥ c i − μ j ∥ 2 ) − 1 ∑ j ( 1 + ∥ c i − μ j ∥ 2 ) − 1 q_{ij} = \frac {(1 + {\lVert c_i - \mu_j \rVert} ^2)^{-1}} {\textstyle\sum_{j} (1 + {\lVert c_i - \mu_j \rVert} ^2)^{-1} } qij=j(1+ciμj2)1(1+ciμj2)1
其中, q i j q_{ij} qij是映射出的句子向量 c i c_i ci和聚类中心向量 μ j μ_j μj之间的相似度。它也可以解释为将句子 s i s_i si分配给联系标签 r j r_j rj的概率。

3.深度聚类的损失函数被定义为KL散度(Kullback-Leibler divergence):

L = K L ( P ∥ Q ) = ∑ i ∑ j p i j log ⁡ p i j q i j \mathcal{L}=K L(P \| Q)=\sum_{i} \sum_{j} p_{i j} \log \frac{p_{i j}}{q_{i j}} L=KL(PQ)=ijpijlogqijpij

其中, P P P是目标分布。

正类联系的分布

图2 NYT-10数据集中的52个正类联系(不包括NA)的分布。横轴显示了按出现次数排序的不同联系。纵轴显示训练集中的句子数量。竖线表示id为31的联系在训练集中出现了10次。

NYT10中的联系遵循长尾分布,如上图所示。为了缓解数据不平衡的问题,该文使用与(Xie, Girshick, and Farhadi 2016)相同的 P P P,定义为:
p i j = q i j 2 / ∑ i q i j ∑ j ( q i j 2 / ∑ i q i j ) p_{ij} = \frac {q^2_{ij} / \textstyle\sum_{i}q_{ij}} {\textstyle\sum_{j} (q^2_{ij} / \textstyle\sum_{i}q_{ij}) } pij=j(qij2/iqij)qij2/iqij
该目标分布可以将每个中心点的损失贡献归一化,以防止大的聚类簇扭曲了隐藏的特征空间。

4.该文只为正类样本,即原始标签不是NA(无关系)的样本,生成新标签。因为表达无关系的句子的表征总是多种多样的,要为它们找到正确的标签是很困难的。
允许阴性的样本被重新打上标签会产生更多的噪音句子。相反,一个正面的样本被重新标记为NA,意味着噪声句子被删除。

缩放的损失函数(Scaled Loss Function)

由于没有对噪声数据进行明确的监督,很难知道每个句子的聚类结果是否正确。因此,由标签生成器产生的新标签可能仍然是错误的。

为了解决这个问题,如上所述,该文设置了一个阈值 ϕ \phi ϕ,并选择具有高置信度的句子作为噪声样本。

此外,该文还引入了一个缩放因子 q i j q_{ij} qij作为权重来缩放交叉熵(Shore and Johnson 1980)损失函数。 q i j q_{ij} qij由公式(7)得到,它表示第i个句子属于第j个联系簇的概率。这个缩放因子使得新标签根据其聚类的确定性对模型有不同的影响。

最后,目标函数被定义为:

J ( θ ) = − ∑ ( x i , y i ) ∈ V log ⁡ p ( y i ∣ x i ; Θ ) − λ ∑ ( x i , y i ) ∈ N q i j log ⁡ p ( y j ∣ x i ; Θ ) \begin{array}{c} \mathcal{J}(\theta)=-\sum_{\left(x_{i}, y_{i}\right) \in \mathbb{V}} \log p\left(y_{i} \mid x_{i} ; \boldsymbol{\Theta}\right) \\ -\lambda \sum_{\left(x_{i}, y_{i}\right) \in \mathbb{N}} q_{i j} \log p\left(y_{j} \mid x_{i} ; \boldsymbol{\Theta}\right) \end{array} J(θ)=(xi,yi)Vlogp(yixi;Θ)λ(xi,yi)Nqijlogp(yjxi;Θ)

其中, ( x i , y i ) (x_i,y_i) (xi,yi)是一个训练实例,表示句子 x i x_i xi的目标联系标签是 y i y_i yi y j y_j yj表示 x i x_i xi的新标签是 y j y_j yj y j ≠ y i y_j \ne y_i yj=yi λ \lambda λ是平衡̸两个项的系数。 V V V是最佳得分的样本, N N N是噪声样本, Θ \varTheta Θ表示模型的所有参数。

实验

Data and Evaluation Metrics 数据与评价指标

Following the previous works (Yuan et al. 2019b; 2019a; Ye and Ling 2019), we evaluate our model and baselines in the held-out evaluation and present the results with precision-recall curves. In held-out evaluation, the relations extracted from testing data are automatically compared with those in Freebase. It is an approximate measure of the model without requiring costly human evaluation.

按照以前的工作(Yuan et al. 2019b; 2019a; Ye and Ling 2019),我们对我们的模型和基线进行了留出法评价,并通过精度-召回曲线来展示结果。在留出法评价中,从测试数据中提取的关系被自动与Freebase中的关系进行比较。这是对模型的一个近似衡量,不需要昂贵的人工评估。

Experiment Setup 实验设置

During training, we first generate the new relation labels for noisy sentences by unsupervised deep clustering, and then, train the whole model. When conducting clustering, we employed k-means to initialize the cluster centers for faster convergence. Both over-sampling and under-sampling strategies are applied to highlight the importance of positive samples and alleviate the data imbalance problem. For every positive sample, we obtain multiple clustering results and determine its final category by voting. Besides, we ignored 6 long-tail relations that appear less than 2 times.1

For all the baselines, during training, we follow the settings used in their papers. Table 2 shows the main parameters used in our DCRE.

在训练过程中,我们首先通过无监督的深度聚类,为有噪声的句子生成新的关系标签,然后,训练整个模型。在进行聚类时,我们采用k-means来初始化聚类中心,以加快收敛。过度取样和不足取样的策略都是为了突出正样本的重要性,缓解数据不平衡的问题。

对于每个阳性样本,我们获得多个聚类结果,并通过投票确定其最终类别。此外,我们忽略了6个出现次数少于2次的长尾关系。

对于所有的基线,在训练期间,我们遵循他们的论文中使用的设置。表2显示了我们的DCRE中使用的主要参数。

■ \blacksquare

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值