作者:我叫yyson_836 | 来源:互联网 | 2023-10-12 21:02
关系抽取模型----SpERT模型
SpERT模型是联合式抽取模型,同时抽取实体和关系。SpERT模型采用分类的思想实现联合抽取,实体抽取和关系抽取模型均为分类模型。SpERT模型是Span-based Joint Entity and Relation Extraction with Transformer Pre-training(2020)提出的,代码地址,SpERT模型
(1) 实体抽取和关系抽取均采用分类的思想
(2) 采用穷近的思想预测给定文本中所有可能的文本片段所属的实体类型
(3) 关系抽取依赖于出抽取出的实体,预测抽取实体的所有组合的关系类型
(4) 进行关系抽取会可考虑实体间的文本特征信息
模型结构
SpERT的模型采用bert 作为embedding,预测实体类型,选取实体类型为非None的实体进行关系分类,结构如下图:
(1)实体分类,这里对实体进行分类,是一个softmax,但是考虑了实体的头尾,实体分类模型得到的是实体的类别和实体span,也就是文本中的那些字段是实体,模型的输入文本tokenizer, 实体span,实体mask,实体size等
(2)对实体进行过滤span filter,对实体模型的结果进行过滤,保留有实体,根据保留的实体构建关系负样本,
(3)关系分类,输入是实体,实体间连续文本特征max-pooling,实体宽度矩阵,经过一个线性层,得到关系分类的结果
注意:实体分类采用的是softmax,关系分类采用的是sigmoid
span classification
- span’s BERT embeddings
- BERT/width embeddings
其中c是是bert embedding中CLS向量,即这个句子的句向量。 - entity classification
span filtering
过滤实体类型为None的实体
Relation classification
-特征表示
-关系分类
其中?(?_1 ),?(?_2)表示BERT/width embeddings,?为实体间max-pooling的BERT embeddings
Loss计算
关系分类的loss和实体分类的loss和为整个模型的loss
其中ℒ^?为cross entropy ,ℒ^?为binary cross entropy。
模型数据构建说明
span classification数据说明
实体分类模型中加入了负样本,提高模型的鲁棒性。
- 数据candidate span 实体构建方式
(1)正例:数据中的实体数据
(2)反例:在句子中选取所有长度小于实体最大span长度的文本片段作为实体反例,实体类型为None。
例如:古往今来,能饰演古龙小说人物“楚留香”的,无一不是娱乐圈公认的美男子,2011年,36岁的张智尧在《楚留香新传》里饰演楚留香,依旧帅得让人无法自拔。假设实体最大span长度为5,
实体正例为(张智尧,人物,45,47),(楚留香新传, 影视作品,50,54),(楚留香,人物,15,17)
实例反例为:(古,None,0,0),(今,None,1,1)…
(古往,None,0,1)(往今,None,1,2)(今来,None,2,3)…
…
(古往今来,None,0,4) (往今来,能,None,1,5)…
随机选取实体的反例数量为100
注意:反例实体数据中不包含真正的实体数据 - relation classification数据说明
(1)正例数据集:正例数据为训练集中的实体关系数据
(2)反例数据:采用正例中的关系subject和关系object两两配对构建关系类型为None的数据。
例如:古往今来,能饰演古龙小说人物“楚留香”的,无一不是娱乐圈公认的美男子,2011年,36岁的张智尧在《楚留香新传》里饰演楚留香,依旧帅得让人无法自拔。
正例数据关系三元组:(楚留香新传,主演,张智尧),(张智尧,饰演,楚留香)
反例数据关系三元组:(楚留香新传,None,楚留香)
注意:关系反例中的subject和object不能相同,且关系三元组中的subject和object与正例不能相同,关系反例的数量为100
实验结果
在百度2020关系抽取数据集上,SpERT的模型的结果如下:
precision = 57.09, recall = 80.67, f1_score = 66.86
测试集上的举例结果如下:
{
"text": "《吸血鬼偶像》是李根旭指导的一部情景喜剧,集结了洪宗玄、金宇彬等众多年轻偶像,并由搞笑明星申东烨和实力演员金秀美参演配角,讲述了一个吸血鬼星球傻乎乎的王子和他的护卫们来到地球上,为了成为明星而孤军奋斗的故事",
"entity": [
{
"type": "影视作品",
"start_index": 1,
"name": "吸血鬼偶像"
},
{
"type": "人物",
"start_index": 8,
"name": "李根旭"
},
{
"type": "人物",
"start_index": 24,
"name": "洪宗玄"
},
{
"type": "人物",
"start_index": 28,
"name": "金宇彬"
},
{
"type": "人物",
"start_index": 45,
"name": "申东烨"
},
{
"type": "人物",
"start_index": 53,
"name": "金秀美"
}
],
"relation": [
{
"subject": "吸血鬼偶像",
"predicate": "导演",
"object": "李根旭"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "洪宗玄"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "金宇彬"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "申东烨"
},
{
"subject": "吸血鬼偶像",
"predicate": "主演",
"object": "金秀美"
}
]
},
{
"text": "蒋明杭州杭氧股份有限公司董事长他一直主张杭氧要走自主创新的道路,把核心技术、关键技术牢牢掌握在自己手中",
"entity": [
{
"type": "人物",
"start_index": 0,
"name": "蒋明"
},
{
"type": "企业",
"start_index": 2,
"name": "杭州杭氧股份有限公司"
}
],
"relation": [
{
"subject": "杭州杭氧股份有限公司",
"predicate": "董事长",
"object": "蒋明"
}
]
}
总结
SpERT模型采用分类思想实现实体和关系抽取,其中使用了max-pooling特征,SpERT模型可以抽取出span 长度内所有可能的实体和关系。