知识图谱-关系抽取

关系抽取有基于字符模式的抽取、基于语法模式的抽取、基于语义模式的抽取、自动化模式抽取和基于学习的抽取。基于学习的抽取是目前的主流方法,因此主要介绍基于学习的抽取。
基于学习的抽取分为基于监督学习、基于弱监督学习和基于远程学习的抽取。从模型的角度来看,无论是采用哪种方法,都可以采用序列标注方式或者序列分类模型进行,如果已经给定了实体位置,使用分类模型更方便。

1. 基于监督学习的关系抽取

监督学习是利用标注数据进行学习的一种方法,在监督学习的关系抽取中,核心问题是如何从标注样本中抽取有用的特征,常用的特征有:
1.1 词汇特征:
词汇特征指实体对之间或周五的特定词汇,这些背景词在语义上能够帮助判断实体对的关系类别。如<柏拉图,亚里士多德>作为一个实体对,关联的句子“柏拉图和老师苏格拉底、学生亚里士多德并称希腊三贤”中的词袋信息为<和,老师,苏格拉底、学生>,之间的词性标注为{CONJ,NP,NP,NP},每个词性出现的位置顺序信息,词性的词袋信息等。
1.2 句法特征
句法特征通过依存分析器,如MINIPAR和Standford Parser等获取句子的句法分析结果,句法分析结果中包括词汇集合以及词汇之间的有向句法依赖关系。比如“汪峰发行新歌春鸟”,就是一个最短的依赖路径,实体是“汪峰”和“春鸟”,关系是发行。
1.3 语义特征
语义特征指关系两边的类型作为候选实体对的匹配约束。(这个概念持有疑问)

2. 基于远程监督学习的关系抽取

基本假设是给定一个三元组<s,r,o>,则任何包含实体对<s,o>的句子在某种程度上秒速了该实体对之间的关系。其基本流程如下:
(1)从知识库获取尽可能多的实体
(2)对获取到的实体,从大规模数据中获取尽可能的多的句子集合,并为每个句子标注响应的关系;
(3)包含实体对的句子集合和关系类型标签构成了关系抽取的数据集,即实体对的训练数据为响应额的句子,标签为知识库中的关系类型。

3.基于深度学习的关系抽取

3.1基于循环神经网络的关系抽取
典型的模型结构:输入层(Input layer)双向循环层(Recurrent Layer)池化层(Pooling Layer)。关于双向循环层,可以见RNN的网络结构和参数更新方式长短时记忆网络
3.2 基于卷积神经网络的关系抽取
基本思想:使用CNN对输入语句进行编码,基于编码的结果并使用全连接层结合激活函数对实体对的关系进行分类。典型框架:句子->Embedding->卷积层->卷积疏忽->最大池化->非线性层->句子表示。

Embedding:embedding中主要是处理位置关系,位置关系有助于帮助网络跟踪输入句子中每个单词与实体对的距离。其基本思想是:离实体月经的单词通常包含越多的关于关系分类的有用信息。

给定句子“Bill is the founder of Microsoft”,"founder"和"bill"的相对距离是3,与尾部实体“Microsoft”的距离是-2,每个相对位置编为 d p d_p dp的向量,将词向量与位置向量进行拼接,得到每个词的向量表示 w i ∈ R d w_i \in R^d wiRd,其中 d = d w + 2 d p d=d_w+2d_p d=dw+2dp,进一步得到句子的整体表示。

CNN使用一个固定的卷积核对输入的内容进行处理,在序列处理中,采用标准的一维卷积网络结构,对输入的Embedding进行窗口截取,假设卷积核为 l × d l\times d l×d,其中 l l l为窗口大小,则第 i i i个窗口可以表示为:

q i = w i , i + 1 ∈ R l × d q_i=w_{i,i+1} \in R^{l \times d} qi=wi,i+1Rl×d

在CNN中,第 d c d_c dc个卷积核组成的集合可以表示为一个张量 W ∈ R d c × l W \in R^{d_c \times l} WRdc×l,则第 k k k个卷积核 W k W_k Wk对第 i i i个窗口的作用结果为:

p k , i = f ( W k q i + b ) ∈ R p_{k,i}=f(W_kq_i+b) \in R pk,i=f(Wkqi+b)R

其最大输出 p k p_k pk使用最大池化max pooling获取 p k p_k pk的最大值,即 p k , m a x = m a x ( p k ) p_{k,max}=max(p_k) pk,max=max(pk),然后将 p k , m a x p_{k,max} pk,max连接起来,经过非线性变换,得到句子的表示 x ∈ D d c x \in D^{d_c} xDdc,然后对句子表示预测概率:

O = M x + d , P ( r ∣ x , θ ) = e x p ( o r ) ∑ k = 1 n r e x p ( o k ) O=Mx+d,P(r|x,\theta)=\frac{exp(o_r)}{\sum_{k=1}^{n_r}exp(o_k)} O=Mx+d,P(rx,θ)=k=1nrexp(ok)exp(or)

其中 M M M为待学习的权重矩阵, d d d为待学习的偏置项, o k o_k ok表示 O O O中第 k k k个元素, n r n_r nr为关系类别的数量。

损失函数使用交叉熵损失,公式为:
l o s s = − ∑ n = 1 N l o g P ( r ( n ) ∣ x ( n ) , θ ) loss = -\sum_{n=1}^NlogP(r^(n)|x(n),\theta) loss=n=1NlogP(r(n)x(n),θ)

3.3 基于注意力机制的关系抽取

其思想是:为实体对的每一个句子赋值一个权重,权重越大表示该句子表达目标关系的程度越高,反之可能是噪声。

其思路是:使用CNN为句子编码,得到句子表示 x = x 1 , x 2 , . . . x n x={x_1,x_2,...x_n} x=x1,x2,...xn,然后计算 a i a_i ai:

e i = x i A r e_i = x_iAr ei=xiAr

a i = e x p ( e i ) ∑ k e x p ( e k ) a_i=\frac{exp(e_i)}{\sum_kexp(e_k)} ai=kexp(ek)exp(ei)

s = ∑ i a i x i s=\sum_ia_ix_i s=iaixi

其中 r r r是刻画关系抽取任务的特征向量,该向量由模型学习得到;
A A A为待学习的权重矩阵; s s s是学习到的注意力分数。

得到 s s s之后,使用前面的句子表示和损失计算,将 x x x换为 s s s:

O = M x + d , P ( r ∣ x , θ ) = e x p ( o r ) ∑ k = 1 n r e x p ( o k ) O=Mx+d,P(r|x,\theta)=\frac{exp(o_r)}{\sum_{k=1}^{n_r}exp(o_k)} O=Mx+d,P(rx,θ)=k=1nrexp(ok)exp(or)

l o s s = − ∑ n = 1 N l o g P ( r ( n ) ∣ x ( n ) , θ ) loss = -\sum_{n=1}^NlogP(r^(n)|x(n),\theta) loss=n=1NlogP(r(n)x(n),θ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值