Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks
基于分段卷积神经网络的远程监督实体关系抽取算法:
使用远程监督进行关系提取有两个问题:
首先,在远程监督方法中,从已有的知识库启发式地与文本对齐,将对齐结果视为标记数据。然而启发式对齐并不准确,可能会标记错误;
另外则是在典型的方法中,统计模型已应用于特设特征,而特征提取过程的产生的噪声可能会导致性能不佳。
为了解决这两个问题,这篇文章提出了一个新的模型,分段卷积神经网络(PCNN)与多实例学习。
对于第一个问题,把远程监督关系提取转化为一个多实例问题,其中考虑了实例标签的不确定性;对于第二个问题,干脆不使用特征工程,而是使用具有分段最大池的卷积体系结构来自动学习相关特征。
主要步骤(PCNN):
-
向量表示
-
卷积
-
分段最大池 和 分类器输出
具体方法:
1. 词嵌入/向量(word embedding)
实现:训练->应用
训练:训练词向量的方法有:skip-gram模型,GloVem模型,
使用:
- 通过调用word2vec的包训练自己的word embedding(底层为tensorflow)
- 使用别人训练好的词向量模型(比如复旦,斯坦福的中文自然语言处理包)
2. 位置嵌入/向量 (position embedding)
这里用PF来指定实体对,PF是当前字到e1和e2相对距离的组合,比如:
… hired Kojo Annan, the son of Kofi Annan, in …
其中son到e1(Kojo Annan)和e2(Kofi Annan)的距离分别是1和-2,两个position embedding矩阵(PF1和PF2)随机地初始化。通过查找position embedding矩阵,将相对距离转换为实值向量。
在图3所示的例子中,假设word embedding的大小为 =4,并且position embedding的大小为=1。联合word embedding 和 position embedding,在向量表示部分,实例会被转换为矩阵,其中s是句子长度,之后矩阵S会传入卷积部分 。
3. 卷积(Convolution )
在关系提取中,一个标注为包含目标实体的输入句子仅仅对应于关系类型;它不能预测每个单词的标签,所以需要利用所有局部特征,全局地执行该预测。对于神经网络算法,卷积方法是合并所有这些特征的自然手段。
卷积是权重向量w和序列类型的输入向量q之间的操作,其中权重矩阵w被认为是卷积的滤波器。我们假设滤波器的长度(w= 3);因此 。把在上一步中得到的S看作是序列
为了捕获不同的特征,通常需要在卷积中使用多个滤波器(或特征映射),假设我们使用n个滤波器(),卷积运算可以表示如下:
图3展示了一个示例,其中的卷积过程使用了3个不同的过滤器.
4. 分段最大池(Piecewise Max Pooling)
在上一步卷积过程中输出的矩阵的大小总取决于传入卷积层矩阵S特征值(tokens)的数量。如果要把C应用到后续的图层,必须组合在卷积层中提取的特征,目的是使它们与句子长度无关。
传统的卷积神经网络(CNNs)最大化池操作(max pooling)通常用于此目的(Collobertetal.,2011;Zeng et al.,2014),这种类型的汇集方案自然地解决了可变句子长度。
我们想捕获每个特征图(feature map)中最重要的特征(具有最高值)。然而,尽管单个最大池被广泛使用,这种方法却不足以用于关系抽取。虽然单个最大池化可以减小隐藏层,但是要捕获两个实体之间的结构信息,还远远不够。
在关系抽取中,基于两个所选实体,输入句子能被分成三个片段。因此我们提出了一个分段最大池化过程,它返回每个段中的最大值而不是单个最大值。如图3所示,每个卷积滤波器的输出被Kojo Annan和Ko fi Annan分成三个段。分段最大合并步骤如下:
每个卷积滤波器输出得到一个三维向量 ,然后连接所有向量并应用一个非线性函数,例如双曲正切函数。
最后,分段最大池程序输出一个向量:
g的大小是固定的,不再与句子长度相关。
5. 分类器输出 Softmax Output
为了计算每个关系的置信度,将特征向量g馈入softmax分类器。
是变换矩阵,是网络的最终输出,其中是关系提取系统中可能的关系类型的数量。
我们在倒数第二层使用dropout(Hinton等,2012)进行正规化。在向前的计算期间,dropout通过随机丢弃一定比例的隐藏单元(设比例为p),防止隐藏单元的共同适应。
首先我们应用“掩蔽”操作(g◦r)ong,其中r 是一个概率p为1的伯努利随机变量的向量。
然后每个输出都可以被解释为相应关系的置信分数,通过应用softmax操作,可以将该分数解释为条件概率。
在测试过程中,学习的权重向量由p缩放,使得,用于对看不见的实例进行评分(未dropout)。
6.多实体学习(Multi-instanceLearning)
算法1(多实例学习)
- 初始化,将包(bags)分割成大小为 的小包(mini-batches)。
- 随机选择一个小包(mini-batches), 并将包逐一传入网络。
- 根据 Eq. (9), 找到每个包内的第j个实例 。
- 通过Adadelta,基于的梯度,更新θ
- 重复步骤 2-4, 直到收敛或达到最大时间数。
为了缓解错误标记问题,我们对PCNNS使用多实例学习。基于PCNN的关系提取可以表示为一个五元组θ=,这个网络的输入是一个包。假设有T个包,并且第i个包包含个实例。
多实例学习的目标是预测无法看见的包的标签,在本文中,包中的所有实例都是独立考虑的。给定输入实例,在参数为θ下网络输出向量o,其中第r个分量对应与关系r相关联的分数。
为了获得条件概率p(r | m,θ),我们对所有关系类型应用softmax运算:
多实例学习的目的是区分包而不是实例,为此,我们必须确定包上的目标函数。鉴于所有(T)训练包(),我们可以在包等级使用交叉熵来确定目标函数,如下:
其中j受约束如下:
利用这个定义的目标函数,我们通过随机梯度下降法,用Adadelta更新规则重组小批量的包,从而最大化,整个运算过程参见算法1。
通过以上介绍, 我们知道传统的反向传播算法根据所有的训练实例修改网络,而多实例学习的反向传播修改基于包的网络。因此我们的方法捕获了远距离监督关系提取的性质,其中一些训练实例将不可避免地被错误地标记。当使用受过训练的 PCNN 进行预测时,只有在至少一个实例上的网络输出被指定为正标签的情况下, 包才会被正面标记。