本发明涉及面向临床文本的实体、关系联合学习技术领域,更为具体地,尤其涉及一种基于集中注意力模型的实体、关系联合学习方法。
背景技术:
近几年来,随着电子病历的广泛应用,大量的电子病历数据可以在不同医疗环境中整合共享,并给医生的临床决策及政府部门卫生政策的制定提供数据支持。然而,目前的电子病历中大多数信息以自然语言的形式存储,现有的数据挖掘算法无法直接加工和处理这些数据。为了将电子病历文本结构化成算法可以处理的数据,利用实体识别和关系抽取算法基于中心词从临床文本中抽取实体-关系三元组,然后将三元组转换为数据挖掘算法可以处理的键值对。
从临床文本中抽取实体以及实体之间的关系(实体1-关系-实体2,三元组),目前有两大类方法,分别是流水线的方法和联合学习的方法。流水线的方法主要将实体识别和关系抽取任务分为两个子任务,首先进行命名实体识别,对识别出来的实体进行两两组合,形成实体对,再对每个实体对进行关系分类。其中命名实体识别模型通常使用bilstm+crf等,关系分类模型通常使用cnn等。流水线的方法存在的缺点有:1)错误传播,实体识别模块的错误会影响到下面的关系分类性能;2)忽视了两个子任务之间存在的关系。联合学习可以克服上面流水线方法的缺点,其主流方法可以再细分为两种:参数共享、联合标注策略。参数共享指的是命名实体识别模型与关系分类模型通过共享层联合训练,共享层的选择非常重要,现有的方法一般采用wordembedding+bilstm网络,但最近的研究表明现有的bilstm网络得到字的上下文表示性能弱于bert语言模型;联合标注策略是指利用扩展的标注策略同时完成实体识别和关系抽取两个任务。联合标注策略法需要改变标注人员的原有习惯,增加学习成本。
技术实现要素:
本申请实施例为解决上述技术问题,提供一种基于集中注意力模型的实体、关系联合学习方法。其特征在于,包括以下步骤:
a1,临床文本序列s的首尾分别加上[cls]和[sep],以[cls]sequence[sep]的形式输入embedding层,得到序列s中每个字的初始向量表示h0;
a2,将向量表示h0输入多头自注意力机制的前n-k层,经过n-k层的迭代后输出每个字的上下文表示信息hm;
a3,将每个字的上下文表示信息hm输入多头自注意力机制的余下k层,特定于任务的矩阵masktask将注意力集中到任务所需的字上,得到对应实体识别和关系抽取任务的字向量表示
a4,输入字向量表示
优选地,在所述步骤a1中,其特征在于,临床文本序列s以[cls]sequence[sep]的形式输入embedding层,输出序列s中每个字的由字编码、位置编码、类型编码组成的初始向量表示h0,其表示为:
h0=layernorm(e_word(s)+e_pos(s)+e_type(s))
其中,s为输入的临床文本序列,e_word,e_pos,e_type分别表示字编码、位置编码、类型编码函数。
优选地,在所述步骤a2中,其特征在于,将向量表示h0输入多头注意力机制的前n-k层,注意力均匀地分布在每个字上,多头注意力只捕获上下文信息,第m层依据前一层的输出hm-1得到输出hm,hm的表示如下,
hm=layernorm(hm’+posff(hm’))
其中hm’的表示如下,
hm’=layernorm(hm-1+multheadselfattentionh=12(hm-1,maskall))
其中maskall∈{1}t×t表示每个字利用序列中其他字的信息计算注意力,t表示序列的长度,
经过n-k层的迭代后获得每个字的上下文表示信息hm。
优选地,在所述步骤a3中,其特征在于,将每个字的上下文表示信息hm输入多头自注意力机制的余下k层,特定于任务的矩阵masktask由动态范围注意力机制设定,masktask将注意力集中到任务所需的字上,第m层依据前一层的输出
其中
经过k层的迭代后获得对应任务的字向量表示
优选地,在所述步骤a4中,其特征在于,
1)maskner的构造:在实体识别任务中,由动态范围注意力机制设定,maskner∈{1}t×t表明每个字利用序列中其他字的信息计算注意力,不限制字的注意力范围,通过参数优化自行求出合适的注意力权重,最后输出序列中每个字对应的bieos标签;
2)maskrc的构造:在关系抽取任务中,先将由maskner得到的bieos标签转换为实体列表,再从中取两个实体判断之间的关系,本发明修改了原本用于聚合序列的整体表示的[cls]的注意力范围,将其注意力集中于两个实体上,聚合两个实体的整体表示,从而获得所需的关系特征向量;
3)实体识别下游任务层:实体识别下游任务层采用crf,将每个字的特征向量转换为对应bieos标签的概率分布,即取除[cls]之外的全部字在最后一层多头注意力输出的特征向量,输入crf层中进行一次线性变换,将字的向量表示转变为crf的发射概率,再配合crf层的转移概率,得到标签序列的得分,最后通过softmax函数变换得到标签序列的概率;
4)关系抽取下游任务层:关系抽取下游任务层采用多层感知机将聚合两个实体的整体表示的[cls]特征向量转换成对应关系分类的概率分布,即取[cls]在最后一层多重注意力输出的特征向量,再经过两层感知机mlp得到对应分类的概率分布。
5)联合特征的学习:对于整体的集中注意力模型,除了两种任务各自对应的下游任务层,其余的参数全是共享的,这使得共享层在学习字向量表示的时候能够学习到实体与关系的联合特征。
优选地,一种基于集中注意力模型的实体、关系联合学习方法,其特征在于,所述方法还包括:
1)利用集中注意力模型中的共享任务表示编码层,不同任务只需要输入不同的masktask,就可以在同一套参数下计算出不同的下游任务各自所需的每个字的向量表示
其中str-encoder表示共享任务表示编码;
2)集中注意力模型是基于参数共享方法的临床文本实体和关系联合学习模型,该模型由共享任务表示编码层、实体识别下游任务层、关系抽取下游任务层构成;
3)共享任务表示编码层由一个embedding层、n多头自注意层构成,n多头自注意层分为两块,前n-k层多头注意力只捕获上下文信息,得到字的上下文表示hm,后k层根据实体识别和关系抽取两种任务的各自特点,将注意力的计算集中到任务所需字的向量表示上,得到对应任务的字向量表示
优选地,在所述步骤a3中,其特征在于,所述方法还包括:动态范围注意力机制通过设计特定的mask矩阵和进一步控制上下文敏感的表示来控制序列中任意字的注意力范围,计算注意力的表示如下,
其中mask∈{0,1}t×t,t表示序列的长度,
序列中第i个字对第j个字的注意力相似度similar(i,j)表示如下,
优选地,在所述步骤a4中,其特征在于,所述方法还包括:对输入的序列s进行padding操作,将所有的序列调整成一样的长度,对于全部mask矩阵也作相应的扩充,扩充的表示如下,
其中,t为原序列长度,maxlen为padding操作后序列的统一长度,mask′为最终使用的mask矩阵,大小为maxlen*maxlen。
从以上技术方案可以看出,本申请实施例的创新点为:
1)本实施例中,创建了基于集中注意力模型的实体、关系联合学习方法,集中注意力模型的共享任务表示编码层在bert模型中引入动态范围注意力机制,得到有效的实体与关系的联合特征;
2)本实施例中,集中注意力模型是基于参数共享方法的临床文本实体和关系联合学习模型,实验结果表明基于集中注意力模型的实体、关系联合学习方法在实体识别、关系抽取、联合学习方面均明显优于其他方法,表明本发明所提供模型的有效性。
附图说明
读者在参照附图阅读了本发明的具体实施方式以后,将会更清楚地了解本发明的各个方面,其中,
图1示出本申请实施例提供的基于集中注意力模型的实体、关系联合学习方法的示意性流程图;
图2示出本申请实施例提供的临床文本实体和关系联合抽取实例;
图3示出本申请实施例提供的集中注意力模型的示意性架构图。
具体实施方式
为了使本申请所揭示的技术内容更加详尽与完备,可参照附图以及本发明的下述具体实施例,附图中相同的标记代表相同或相似的组件。然而,本领域的普通技术人员应当理解,下文中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。
请参考图1,图1为本申请实施例提供的基于集中注意力模型的实体、关系联合学习方法的示意性流程图,如图1所示,本申请实施例提供的一种基于集中注意力模型的实体、关系联合学习方法,可以包括以下步骤:
a1,临床文本序列s的首尾分别加上[cls]和[sep],以[cls]sequence[sep]的形式输入embedding层,得到序列s中每个字的初始向量表示h0。
a2,将向量表示h0输入多头自注意力机制的前n-k层,经过n-k层的迭代后输出每个字的上下文表示信息hm。
a3,将每个字的上下文表示信息hm输入多头自注意力机制的余下k层,特定于任务的矩阵masktask将注意力集中到任务所需的字上,得到对应实体识别和关系抽取任务的字向量表示
a4,输入字向量表示
请参考图2,图2示出本申请实施例提供的临床文本实体和关系联合抽取实例。
在该实施例中,可以从实例中的临床文本中学习到多个关系三元组,例如<咳嗽,程度等级,反复>,<咳痰,程度等级,反复>,<发热,存在情况,无>,进一步地,再以症状为中心词,转换为挖掘算法可以直接处理的多个键值对<咳嗽的程度等级,反复>,<咳痰的程度等级,反复>,<发热的存在情况,无>。
在上述实施例中,如果存在(存在情况)关系,那么可以知道前一个实体必然属于存在情况类型,后一个实体属于症状或者疾病类型。
请参考图3,图3示出本申请实施例提供的集中注意力模型的架构图。
图3的实施例中,集中注意力模型是基于参数共享方法的临床文本实体和关系联合学习模型,该模型由共享任务表示编码层、实体识别下游任务层、关系抽取下游任务层构成。对于整体的集中注意力模型,除了两种任务各自对应的下游任务层,其余的参数全是共享的,这使得共享层在学习字向量表示的时候能够学习到实体与关系的联合特征。
图3的实施例中,共享任务表示编码层由一个embedding层、n多头自注意层构成,n多头自注意层分为两块,前n-k层多头注意力只捕获上下文信息,得到字的上下文表示hm,后k层根据实体识别和关系抽取两种任务的各自特点,将注意力的计算集中到任务所需字的向量表示上,得到对应任务的字向量表示
图3的实施例中,利用集中注意力模型中的共享任务表示编码层,不同任务只需要输入不同的masktask,就可以在同一套参数下计算出不同的下游任务各自所需的每个字的向量表示
其中str-encoder表示共享任务表示编码。
图3的实施例中,动态范围注意力机制通过设计特定的mask矩阵和进一步控制上下文敏感的表示来控制序列中任意字的注意力范围,计算注意力的表示如下,
其中mask∈{0,1}t×t,t表示序列的长度,
序列中第i个字对第j个字的注意力相似度similar(i,j)表示如下,
若maski,j=0,则similar(i,j)表明在注意力计算过程中第i个字直接忽略了第j个字,similar(i,j)的表示如下,
其中,(maski,j-1)*∞=-∞,
若maski,j=1,则similar(i,j)表明在注意力计算过程中第i个字可关注到第j个字,similar(i,j)的表示如下,
其中,(maski,j-1)*∞=0。
图3的实施例中,基于集中注意力模型的实体、关系联合学习方法的架构包括:
1)embedding层
临床文本序列s以[cls]sequence[sep]的形式输入embedding层,输出序列s中每个字的由字编码、位置编码、类型编码组成的初始向量表示h0,其表示为:
h0=layernorm(e_word(s)+e_pos(s)+e_type(s))
其中,s为输入的临床文本序列,e_word,e_pos,e_type分别表示字编码、位置编码、类型编码函数。
2)多头注意力机制的前n-k层
将向量表示h0输入多头注意力机制的前n-k层,注意力均匀地分布在每个字上,多头注意力只捕获上下文信息,第m层依据前一层的输出hm-1得到输出hm,hm的表示如下,
hm=layernorm(hm’+posff(hm’))
其中hm’的表示如下,
hm’=layernorm(hm-1+multheadselfattentionh=12(hm-1,maskall))
其中maskall∈{1}t×t表示每个字利用序列中其他字的信息计算注意力,t表示序列的长度,
经过n-k层的迭代后获得每个字的上下文表示信息hm。
3)多头自注意力机制的余下k层
将每个字的上下文表示信息hm输入多头自注意力机制的余下k层,特定于任务的矩阵masktask由动态范围注意力机制设定,masktask将注意力集中到任务所需的字上,第m层依据前一层的输出
其中
经过k层的迭代后获得对应任务的字向量表示
4)maskner矩阵
在实体识别任务中,由动态范围注意力机制设定,maskner∈{1}t×t表明每个字利用序列中其他字的信息计算注意力,不限制字的注意力范围,通过参数优化自行求出合适的注意力权重,最后输出序列中每个字对应的bieos标签。
5)maskrc矩阵
在关系抽取任务中,先将由maskner得到的bieos标签转换为实体列表,再从中取两个实体判断之间的关系,本发明修改了原本用于聚合序列的整体表示的[cls]的注意力范围,将其注意力集中于两个实体上,聚合两个实体的整体表示,从而获得所需的关系特征向量。
基于动态范围注意力机制,采用两种maskrc矩阵设置方式,
i)[cls]只允许关注实体1、实体2,实体1、实体2的关注对象不做限制,maskrc矩阵表示如下,
ii)只允许[cls]、实体1、实体2两两相互关注,maskrc矩阵表示如下,
6)实体识别下游任务层
实体识别下游任务层采用crf,将每个字的特征向量转换为对应bieos标签的概率分布,即取除[cls]之外的全部字在最后一层多头注意力输出的特征向量,输入crf层中进行一次线性变换,将字的向量表示转变为crf的发射概率,再配合crf层的转移概率,得到标签序列的得分,最后通过softmax函数变换得到标签序列的概率,概率的表示如下,
其中,
其中,
对应实体识别任务的loss函数表示如下所示,其训练目标为最小化lner,
其中,l’表示真正使用的标注序列。
7)关系抽取下游任务层
关系抽取下游任务层采用多层感知机将聚合两个实体的整体表示的[cls]特征向量转换成对应关系分类的概率分布,即取[cls]在最后一层多重注意力输出的特征向量,再经过两层感知机mlp得到对应分类的概率分布,概率分布的表示如下所示,
其中,
其中,
对应关系抽取任务的loss函数表示如下所示,其训练目标为最小化lrc,
lrc=-log(prc(r=r′|s,maskrc,maskall))
其中,r’表示真正使用的关系类型。
具体的实施例:
1)数据集
本发明的数据集来源于上海中医药大学附属曙光医院提供的冠脉造影检查报告,其中实体一共有五种:部位词、方位词、形容词、否定词、数量词。语义关系一共也有五种:否定关系、修饰关系、位置关系、数量关系、无关系(负例)。具体统计如下。
为了确保实验的有效性,采用8:1:1的比例划分为train、dev、test,train为训练语料,用于模型训练,dev为开发集,用于模型选择最优的模型参数,test为测试集,用于对比实验。
2)实验设置
基于集中注意力模型的训练可以分为两阶段。第一阶段,对其中的bert语言模型部分进行预训练。由于bert语言模型预训练的代价比较昂贵,这里直接采用谷歌预训练好的bert-base,chines模型;第二阶段,将ner与rc两种任务进行联合微调,下游任务层权重采用随机初始化。参数采用adam优化器,为了不损失语言模型中预先学到的知识,学习率设置为10-5。
3)实验分析
i)将集中注意力模型与bilstm,rd-cnn,joint-bilstm三种实体识别模型进行对比。从表1中可知,集中注意力模型为最佳模型,f1值达到了0.9759,比第二名的rd-cnn模型高了1.9%,表明本发明所提供模型在实体识别方面的有效性。
表1关于实体识别任务的各方法比较
ii)将集中注意力模型与rcn,cnn,joint-bilstm三种关系分类模型进行对比,从表2中可知,集中注意力模型为最佳模型,f1值达到了0.9644,比第二名的cnn模型高了1.58%,表明本发明所提供模型在关系抽取方面的有效性。
表2关于关系分类任务的各方法比较
iii)将集中注意力模型与joint-bilstm采用lstm作为共享层的联合学习模型进行对比,从表3中可知,集中注意力模型超过了现有的以lstm为共享层的模型,命名实体识别任务的f1值提高了2.35%,关系抽取的f1值提高了1.32%,表明本发明所提供模型在联合学习方面的有效性。
表3关于联合学习的各方法比较
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思来做出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明权利要求的保护范围。