基于Senna-BiLSTM-CRF的测井实体抽取方法研究

2022-01-09 06:26尚福华曹茂俊
计算机技术与发展 2021年12期
关键词:测井语料向量

尚福华,金 泉,曹茂俊

(东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)

0 引 言

应用地球物理方法主要包括重、磁、电、震、测井,其中测井主要是通过利用岩层的声学、异电、电化学以及放射性等地球物理特性,作为测量地球物理参数的方法。测井数据处理与综合解释,则是指通过之前设定的地质任务,使用计算机技术来完成相关的测井资料自动处理操作,并结合录井、地质和开发相关的资料进行综合处理分析解释,以解决有用矿藏、地层划分和油气储集层的评价及其勘探开发中其他相关的地质与工程技术问题[1]。现有的机器学习算法抽取模型大多是针对句法和词法等浅层特征,采用这些方式通常存在需要复杂的人工定义特征等问题。深度学习模型可以通过在简单的网络结构基础上实现复杂函数的逼近,拥有从大规模数据集中学习数据集本质特征的能力,从而能够大大减少工作量,减少人工定义特征的重复性工作。随着数据量的迅速累积,大数据、深度学习等技术快速发展,知识图谱与这些先进的技术相结合,正在成为未来人工智能发展的热门方向之一[2]。

知识抽取是构建知识图谱极其重要的步骤。知识抽取包含如下基本任务:命名实体抽取、属性抽取、关系抽取以及事件抽取等,主要任务是从一些非结构化文本中抽取出需要的、有效的结构化信息。知识抽取也是自然语言处理领域中的一个重要领域,而自然语言处理领域与深度学习是密不可分的,知识抽取也与深度学习有着密不可分的关系。命名实体抽取是知识抽取过程中的首要内容,也是构建知识图谱必不可少的基础,其中抽取出来的实体的好坏将很大程度影响最终构成的知识图谱的质量。研究测井实体抽取问题对于研究如何构建测井领域知识图谱有着非比寻常的意义。Zhao Yahui等人[3]构建了一种基于知识库的电影命名实体类型发现关联系统。Yang Tao等人[4]研究了某些特定领域实体识别与实体连接的评估任务。Guo Shu等人[5]研究实现了一种在竞赛中通过增强规则来实现关系学习的方法。Yilahun Hankiz等人[6]研究实现了一种将维吾尔语领域本体和汉语领域本体结合的混合构建方法。Zhao Jiapeng等人[7]研究实现了一种在句法树的基础上进行个人关系抽取的方法。李明浩等人[8]研究实现了一种基于LSTM-CRF模型的中医医案症状术语识别方法。张心怡等人[9]研究实现了一种面向煤矿的实体识别与关系抽取模型。张海楠等人[10]研究实现了一种基于深度学习的中文命名实体识别方法。

在测井解释领域,尚福华等人研究了面向测井处理解释领域的本体构建方法,该文章提出了一种将领域本体与测井处理解释的具体应用需求相结合的领域本体构建方法,具有非常高的参考价值[11]。但用本体方法来构建领域性知识图谱,通常有大量的非结构化数据需要处理,用本体构建方法很难进行处理。随着深度学习技术的发展,采用深度学习来进行实体抽取,降低了数据标注的难度,提高了训练效率,并在其他领域取得了很好的效果,表明深度学习非常适合对非结构化文本数据进行抽取、分析。因此,文中提出一种基于Senna词向量+BiLSTM+CRF的方法对测井非结构文本数据中的命名实体进行抽取。

1 长短期记忆网络

循环神经网络( recurrent neural network,RNN)是一种广泛应用于自然语言处理(NLP)、图像识别、语言认知等相关的深度学习技术及其他相关领域的新型人工神经网络,最早提出的时间要追溯到20世纪80年代[12]。RNN的主要目的就是识别大量数据运行时的先后次序特性,利用这种模式对未来各种可能发生的情形进行预测。RNN可以处理从初始输入到终始输入的每一个数据,这与前馈神经网络相当类似。

从理论上看,RNN能够在序列的整个历史中对连续信息进行建模,但是在序列长度比较长时,RNN可能会出现两种情况,一种是梯度不断地增长,无限趋近于无穷,这很容易产生梯度爆炸的问题。另一种情况则是前一种情况的反向极端,梯度不断减小,无限趋近于零,很容易造成梯度消失的问题。针对上述两种情况,有学者曾在20世纪90年代提出使用长短期记忆网络(long-short term memory network,LSTM)来替代循环神经网络,在经过不断改进后被广泛应用,它是目前使用最多的RNN变体之一[13]。LSTM的神经元通常由存储器单元、输入门、输出门、忘记门四部分组成。

图1 LSTM总体框架

2 测井领域实体抽取模型

2.1 测井领域命名实体特征

通过与测井领域专家沟通交流及查阅大量测井文献,最终笔者选定以下几类实体来做测井实体抽取实验分类标准,分别为领域知识、区域知识、通用知识。通过这三大类别实体对样本数据进行人工标注,文中采用BIO标注。测井命名实体的抽取问题最终转化为对已知文本中的三大类标记实体进行分类的问题。文中采用Senna词向量方法对文本中的测井实体进行描述,采用BiLSTM-CRF模型对实体进行分类,实现测井命名实体抽取的方法,如表1所示。

表1 命名实体标注方法

2.2 实体抽取框架

因为收集到的数据集,无法直接放入模型中参与训练,所以必须对语料进行一些处理,让收集到的文本数据变成能够被机器识别的形式,才能放入到模型中进行训练。首先对从语料库中获取到的语料进行一系列预处理操作,之后进行分词,再对分词后的语料文本进行词性标注[15],得到词性标注后的语料文本,再将该语料文本转化为Senna词向量,作为BiLSTM网络模型的输入向量,通过BiLSTM网络模型的训练,输出发射分数,可表示BiLSTM将每个字符预测为某个标签的概率。再通过CRF层将BiLSTM的Emission_score作为输入,输出符合标注转移约束条件的、最大可能的预测标注序列。实体抽取框架如图2所示。

图2 测井命名实体抽取框架

2.3 Senna词向量+BiLSTM+CRF

Senna词向量+BiLSTM+CRF模型主要由模型输入层、双向长短时记忆网络(Bi-LSTM)和条件随机场(CRF)层组成。模型输入的是字符特征,输出的是每个字符对应的预测标签。

2.3.1 模型输入层

在模型输入层,文中主要采用词嵌入机制对输入的非结构化文本数据进行处理,最开始使用的是字向量,但是效果不太好,所以改用Senna词向量。Senna模型中不仅提出了使用word embedding作为构建方法,同时还提出可以从神经网络语言模型的角度去解决自然语言处理领域任务。Senna中,每个词可以从lookup table直接查找到对应的向量,为保证训练效果,当句子太长、超过设定的句子长度时要截断,当句子太短、未达到设定的句子长度时要填充,本项目使用O进行填充。

2.3.2 BiLSTM层

BiLSTM接收每个字符的embedding,同时预测每个字符对5个标注标签的概率。

BiLSTM是Bi-directional Long Short-Term Memory的缩写,包括前向LSTM和后向LSTM[16],常常在自然语言处理、深度学习领域相关任务中用来建模上下文信息。

将词的表示转为句子的表示,可以采用迭代相加的方法,即将所有词的表示相加在一起求和,也可以采用取平均值的方式,但是采用这些方法存在一个很大的问题,即忽视掉了词语在句子中的前后位置,从而影响对整个句子意思的理解。比如句子“我并不认为她有多么优秀”。“不”字是对后面词语“优秀”的否定修饰,即该句子的情感色彩是悲观的,整个句子表达的意思是否定的,这与原来句子想要表达的意思截然不同,而使用LSTM模型则可以避免这种情况,因为LSTM模型可以更好地捕捉到较长一段距离词语之间的依赖关系,LSTM在学习训练的过程中能够学到需要记忆哪些信息和需要遗忘掉哪些信息。

但是使用LSTM对句子进行建模的过程中还存在着一个比较严重的问题:LSTM是单向的,无法编码当前位置往后的信息,也就是只能学习到上文的信息,而学习不到下文的信息。比如,“这个宾馆乱的不行”,这个句子中的“不行”是对“乱”这个形容词的一种修饰,通过LSTM是获取不到这个消息理解的,LSTM只能获得单向的消息理解,要么是从前往后,要么是从后往前,而通过BiLSTM则可以更好地捕捉到双向的语义依赖理解。

前向的LSTM与后向的LSTM结合成BiLSTM。比如,对“测井是记录钻入地幔的过程”这句话进行编码:

前向的LSTML依次输入“测井”,“是”,“记录”,“钻入地幔”,“的”,“过程”,得到六个向量{hL0,hL1,hL2,hL3,hL4,hL5}。后向的LSTMR依次输入“过程”,“的”,“钻入地幔”,“记录”,“是”,“测井”,得到六个向量{hR0,hR1,hR2,hR3,hR4,hR5}。最后将前向和后向的隐向量进行拼接得到{[hL0,hR5],[hL1,hR4],[hL2,hR3],[hL3,hR2],[hL4,hR1],[hL5,hR0]},即{h0,h1,h2,h3,h4,h5}。

在BiLSTM-CRF中,一般使用一层的双向LSTM就完全足够了。因此,BiLSTM对输入embeddings的特征提取过程如图3所示。

图3 BiLSTM对embeddings的特征提取过程

开头就提到,BiLSTM接收每个字符的embedding,同时预测每个字符对5个标注标签的概率。但是,应该知道上述BiLSTM对输入embeddings的特征提取得到的拼接向量维度大小为num_directions*hidden_size。为了将输入表示为每个字符与其对应各个类别的分数,则需要在BiLSTM层加入一个全连接层,通过softmax将向量映射为一个5维的分布概率,如图4所示。

这一步,似乎已经得到了最终结果,即通过BiLSTM已经找到每个单词对应的最大标签类别,但实际上,通过直接选择该步骤最大概率的标签类别得到的结果并不理想,最后的标签序列和想要的有不少出入。原因如下,虽然LSTM能够通过前向加后向的设置学习到观测序列之间的依赖,但softmax层的输出是相互独立的,输出与其他层输出并没有影响,只是在每一步单纯地挑选一个最大概率值的label输出,这样的模型显然无法学习到输出的标注之间的转移依赖关系(标签的概率转移矩阵)以及序列标注的约束条件,比如句子的开头应该是“B”或者“O”,绝不能是“I”。为此,非常有必要引入CRF层学习序列标注的约束条件,通过学习转移特征考虑输出label之间的顺序性,确保预测结果的有效性。

2.3.3 CRF层

CRF是一个序列化标注算法,接收一个输入序列如X=(x1,x2,…,xn)并且输出目标序列Y=(y1,y2,…,yn),也能被看作是一种seq2seq模型。

NER问题就是条件随机场问题,即给定自然语言序列X,用最大概率的标注序列Y用来表示NER标注结果。设P(Y|X)为线性链条件随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式:

(1)

其中:

(2)

式中,sl和tk是该条件概率的特征函数,μl和λk是与其对应的权值,Z(x)是规范化因子,求和是对所有可能的输出序列进行操作;tk是在边上定义的特征函数,被称为特征转移,通常依赖于前一个位置和当前位置;sl是在节点上定义的特征函数,被称为状态特征,通常只依赖于当前位置,其中sl和tk二者皆依赖于位置,属于局部特征函数。通常局部特征函数sl和tk可以取的值为1或0;当特征函数满足特征条件时则取值为1,否则取值为0。条件随机场完全由特征函数tk,sl和对应的权值λk,μl确定。

上述公式中有三个需要特别注意的部分:tk,sl和Z(x),理解这三个部分是理解BiLSTM-CRF模型中CRF的关键。

在该例子中,输入x分别为c0,c1,c2,c3,c4,理想输出y为B,I,O,O,B。

Z(x)称规范化因子或配分函数。在公式(5)中,“Z(x)是规范化因子,求和是在所有可能的输出序列上进行的”。其本质为所有可能的路径组合,由于输入序列长度为5,标注类型个数也为5,因此该图共有3 125条不同路径。每条路径通过exp(*)计算每条路径的得分,加和得到Z(x)。

sl是节点上的状态特征,取决于当前节点;tk是边上的转移特征,取决于当前节点和前一个节点。根据它们的定义,可以很自然地将它们与BiLSTM-CRF中的Emission Score和Transition Score匹配:Emission Score是由BiLSTM生成的、对当前字符标注的概率分布;Transition Score是加入CRF约束条件、字符标注之间的概率转移矩阵。从这个角度分析,BiLSTM-CRF本质就是一个CRF模型,只不过用BiLSTM得到状态特征值sl,用反向传播算法更新转移特征值tk。

在模型训练过程中,模型损失函数定义如下:

(3)

(4)

其中,Pi,yi和Ayi-1,yi分别表示标注序列y中yi的Emission Score和Transition Score,通过查找上图中BiLSTM的“Emission Score”和“序列标注转移矩阵”可以得到每个字符位置的得分,整个序列相加得到score(x,y)。

模型训练过程中最大化对数似然函数:

(5)

2.3.4 真实路径得分

∑EmissionScores=P0,START+P1,B+P2,I+P3,O+P4,O+P5,B+P6,END

(6)

∑TransitionScores=PSTART,B+PB,I+PI,O+PO,O+PO,B+PB,END

(7)

EmissionScores来自BiLSTM层的输出,P0,START和P6,END的初始值设为0;TransitionScores来自CRF层;将真实路径中这两类数加和,即可得到真实路径得分。

2.3.5 所有路径得分

这种方式显然效率非常低,在该例子中,仅有5个字符和5个标注序列,就已经有了3 125种路径组合,在实际工作中,一定会有更长的序列和更多的标注标签,因此提高计算效率是非常有必要的。可以通过分数累积的方法来提高效率,即先计算出到达c0的所有路径的总得分,然后计算c0→c1的所有路径的得分,依此类推,直到计算出所有路径的得分,这就是需要的结果。

最终Senna词向量+BiLSTM+CRF的模型如图5所示。

图5 最终词向量+BiLSTM+CRF模型

3 实验与分析

3.1 实验描述

文中使用的语料为测井勘探院得到的测井解释知识库、测井资料处理解释等相关测井领域非结构化知识。经过处理之后的文本数据大约为200 K,转化为词向量后的数据大小为17 M。其中12 M作为训练语料,5 M作为测试语料。

具体步骤如下:

(1)通过测井勘探院得到的测井解释知识库文档资料以及收集到的测井资料处理解释等测井领域的非结构化知识,作为语料库。

(2)对语料库中的数据进行预处理,首先利用Jieba分词工具对语料库中的数据进行分词处理,对处理后的样本数据再通过Senna转化为对应的词向量,最后作为文中所使用的深度神经网络模型的输入向量。

(3)标注数据。将数据集中的实体类型分为三类:领域名词、区域知识、通用知识,代码分别为LY、QY、TY。利用BIO标注方法进行标记,具体标注方法如表1所示。依据BIO标注方法,“测井数据是油田勘探开发必不可少的宝贵资源,是建设数字油田的关键信息之一”。这句话应该标注为“测/B-LY 井/I-LY 数/I-LY 据/I-LY 是/O 油/B-LY 田/I-LY 勘/I-LY 探/I-LY 开/I-LY 发/I-LY 必/O 不/O 可/O 少/O 的/O 宝/O 贵/O 资/O 源/O,/O 是/O 建/O 设/O 数/B-TY 字/I-TY 油/I-TY 田/I-TY 的/O 关/O 键/O 信/O 息/O 之/O 一/O 。/O”。

(4)训练网络模型。

测井命名实体识别需要对句子进行分词。句子分词之后的词向量作为BiLSTM网络的输入参数,经过BiLSTM网络进行特征提取,输出的是每个单词对应的预测标签,最后经过CRF约束,输出最优标签序列。

3.2 实验设计与评价标准

为了验证文中提出的测井实体抽取模型的实际效果,本次实验通过使用BiLSTM-CRF模型和词向量-BiLSTM-CRF模型进行对照实验。

评估指标主要采取召回率(R,Recall)、精确率(P,Precision)、F1三项指标。它们各自的定义如下所示:

(8)

(9)

F1指标是一种衡量分类总体效果的常用评估方法,其公式为:

(10)

3.3 实验结果

文中一共进行了3组实验,分别使用如下所述的主要模型:BiLSTM-CRF模型、词向量-BiLSTM-CRF模型和提出的Senna词向量-BiLSTM-CRF模型,同时使用不同的词向量维度来作为不同组的对比数据,第一组的词向量维度设置为100,第二组的词向量维度设置为200,第三组的词向量维度设置为250。实验多组结果汇总如表2所示。

表2 不同方法在不同词向量维度的评估指标值比较

通过对比分析以上3组汇总实验结果,当词向量维度设置为200时,精确率、召回率、F1值均达到三组最好效果,再继续增加词向量维度,设置为250时,效果并没有提高,甚至比维度为200时的效果更差。从精确率、召回率、F1三者横向对比的角度看,精确率效果比召回率效果普遍好一些。词向量-BiLSTM-CRF模型的精确率、召回率、F1对比单向的LSTM-CRF模型都有更好的效果,同时文中提出的Senna词向量-BiLSTM-CRF比使用随机生成的词向量效果更好一些。综上分析,文中使用的测井命名实体抽取模型取得了不错的效果。

4 结束语

针对现有的BiLSTM-CRF模型以及词向量-BiLSTM-CRF模型,文中使用了一种基于Senna词向量-BiLSTM-CRF的测井命名实体抽取模型。通过将Senna词向量嵌入到双向长短期记忆网络提取文本特征信息,通过双向长短期记忆网络模型的训练,输出发射分数,可表示BiLSTM将每个字符预测为某个标签的概率。CRF层将BiLSTM的Emission Score作为输入,输出符合标注转移约束条件的、最大可能的预测标注序列,在一定程度上提高了对测井实体的抽取效果。采用Senna词向量比随机生成词向量训练效果更好。

猜你喜欢
测井语料向量
向量的分解
海量标注语料库智能构建系统的设计与实现
资源勘查工程专业《地球物理测井与解释》课程的教学改革
我国测井评价技术应用中常见地质问题分析
浅谈视频语料在对外汉语教学中的运用
可比语料库构建与可比度计算研究综述
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
自然电位测井曲线干扰问题分析
做好精细化管理