当前位置:   article > 正文

关系抽取--TPLinker_tplinker 关系抽取

tplinker 关系抽取

关系抽取–TPLinker

最近在学习和整理关系抽取的模型,在学习的过程中对关系抽取有了进一步的认识。小白的学习之路漫长开始。转入今天的正题。

TPLinker的创新

(1)TPLinker是一种关系抽取的新范
(2)TPLinker是单阶段抽取模型,
(3)TPLinker实体和关系公用同一个解码,同时避免偏差暴露,同时抽取实体和关系,并不是先抽实体再抽关系,累加实体抽取错误的误差,保证了训练和预测的一致性。
(4)TPLinker模型可以处理SingleEntityOverlap (SEO), and EntityPairOverlap (EPO) ,同时可以处理实体嵌套问题
TPLinker使用bert和Handshaking Kernel,Handshaking Kernel是核心。
TPLinker的模型结构图:
TPLinker

Tagging

TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging,过程分为三部分:
(1)entity head to entity tail (EH-TO-ET)
(2)subject head to object head (SH-to-OH)
(3)subject tail to object tail (ST-to-OT)
标记示例见下图,EH-TO-ET用紫色表示,SH-to-OH用红色表示,ST-to-OT用蓝色表示。
Tagging
由于这种Tagging标记方式为Handshaking Tagging,矩阵是稀疏的,故将下三角标记的1对称到上三角部分,并且标记为2。这种标记方式可以处理实体重嵌套,例如New York City和New York。

解码

解码过程抽取出实体和实体间对应的关系,过程如下:
(1)构建实体EH-TO-ET字典D,其中字典D的key是实体头,value为实体
(2)解码ST-to-OT,构建字典E;再解码SH-to-OH且在字典D中尽可能查找满足实体头的所有实体subject和object
(3)验证上述找到的subject 和object实体对儿的尾部是否在E中,如果在E中,得到实体subject,objdect和关系三元组

handshaking decoder (tplinker plus)

解码过程包括抽取实体和关系,这里考虑了实体的type,解码过程如下:
(1) 根据handshaking kernel的结果得到所有handshaking tagging的结果,即[(start, end, idstag)]
(2) 根据得到的handshaking tagging的结果解码得到EH-TO-ET,即(entity_start, entity_end, entity_type),同时构建head_ind2entities字典,字典的key是entity_head index,value 是entity token span
(3) 根据得到的handshaking tagging的结果解码得到ST-TO-OT或者OT-TO-ST,即(sub_tail, obj_tail, rel_type)

(4) 根据handshaking tagging的结果解码得到SH-TO-OH,ST-TO-OT, sub_head, obj_head, rel_type, 验证sub_head,obj_head是否在head_ind2entities中,如果sub_head, obj_head在head_ind2entities中,验证(sub_tail, obj_tail, rel_type)是否在(3)中的结果,如果在,则返回关系三元组

模型

通过Handshaking Tagging得到实体对,实体对的特征表示为:
实体对的特征表示
实体对所属关系的模型表示:
实体关系表示
模型损失函数
模型loss
其中,N是句子的长度, E,H,T分别表示EH-TO-ET,SH-to-OH,ST-to-OT, l ^ ∗ \hat l^{*} l^是真是的标签

实验效果

TPLinker跟其他模型的实验结果对比如下图:
实验结果对比
最近在用TPLinker模型做中文关系抽取,数据处理为以下格式:

{
    "id": 9,
    "text": "在导师阵容方面,英达有望联手《中国喜剧王》选拔新一代笑星",
    "relation_list": [
      {
        "subject": "中国喜剧王",
        "object": "英达",
        "subj_char_span": [
          15,
          20
        ],
        "obj_char_span": [
          8,
          10
        ],
        "predicate": "嘉宾",
        "subj_tok_span": [
          15,
          20
        ],
        "obj_tok_span": [
          8,
          10
        ]
      }
    ],
    "entity_list": [
      {
        "text": "英达",
        "type": "人物",
        "char_span": [
          8,
          10
        ],
        "tok_span": [
          8,
          10
        ]
      },
      {
        "text": "中国喜剧王",
        "type": "电视综艺",
        "char_span": [
          15,
          20
        ],
        "tok_span": [
          15,
          20
        ]
      }
    ]
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

最近一段时间在学习关系抽取,主要看了TPLinker,CasRel,苏神的bert4keras这三个联合抽取模型,并且用baidurelation2020比赛数据集做了简单的对比实验(GPU显存比较小,batch和max length设置的比较小),三个模型训练的轮数不太够,epoch均为20。通过对比实验发现,苏神的bert4keras的实验效果和CasRel的结果相近,三个模型在部分数据上表现的不一样,这里只取一个对比例子,

TPLinker模型结果
{
    "text": "除了闪瞎人员的超级英雄演员阵容,还有几位大名鼎鼎的幕后工作者,比如“漫威之父”斯坦·李(幕前彩蛋也没少客串),《银河护卫队》系列的导演詹姆斯·古恩(他同时也是“浣熊火箭”),漫威影业的主席凯文·费奇等等",
    "id": "test_13",
    "relation_list": [
      {
        "subject": "银河护卫队",
        "object": "詹姆斯·古恩",
        "subj_tok_span": [
          56,
          61
        ],
        "obj_tok_span": [
          67,
          73
        ],
        "subj_char_span": [
          56,
          61
        ],
        "obj_char_span": [
          67,
          73
        ],
        "predicate": "导演"
      },
      {
        "subject": "浣熊火箭",
        "object": "詹姆斯·古恩",
        "subj_tok_span": [
          80,
          84
        ],
        "obj_tok_span": [
          67,
          73
        ],
        "subj_char_span": [
          80,
          84
        ],
        "obj_char_span": [
          67,
          73
        ],
        "predicate": "导演"
      }
    ]
  }
  {
    "text": "夏志清毕业于上海沪江大学(这是一所美国教会学校),兄弟俩在北大既无背景也无后盾",
    "id": "test_15",
    "relation_list": [
      {
        "subject": "夏志清",
        "object": "上海沪江大学",
        "subj_tok_span": [
          0,
          3
        ],
        "obj_tok_span": [
          6,
          12
        ],
        "subj_char_span": [
          0,
          3
        ],
        "obj_char_span": [
          6,
          12
        ],
        "predicate": "毕业院校"
      }
    ]
  }
  {
    "text": "《遗忘》是台湾女歌手邓丽君演唱的一首歌曲,这首歌曲首次原先在1979年9月20日收录在专辑《难忘的一天》中于台湾等地发行,同年11月15日收录在专辑《甜蜜蜜》中于香港等地发行",
    "id": "test_24",
    "relation_list": [
      {
        "subject": "遗忘",
        "object": "难忘的一天",
        "subj_tok_span": [
          1,
          3
        ],
        "obj_tok_span": [
          42,
          47
        ],
        "subj_char_span": [
          1,
          3
        ],
        "obj_char_span": [
          46,
          51
        ],
        "predicate": "所属专辑"
      },
      {
        "subject": "遗忘",
        "object": "甜蜜蜜",
        "subj_tok_span": [
          1,
          3
        ],
        "obj_tok_span": [
          69,
          72
        ],
        "subj_char_span": [
          1,
          3
        ],
        "obj_char_span": [
          75,
          78
        ],
        "predicate": "所属专辑"
      },
      {
        "subject": "遗忘",
        "object": "邓丽君",
        "subj_tok_span": [
          1,
          3
        ],
        "obj_tok_span": [
          10,
          13
        ],
        "subj_char_span": [
          1,
          3
        ],
        "obj_char_span": [
          10,
          13
        ],
        "predicate": "歌手"
      }
    ]
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145

CasRel模型结果

{
    "text": "除了闪瞎人员的超级英雄演员阵容,还有几位大名鼎鼎的幕后工作者,比如“漫威之父”斯坦·李(幕前彩蛋也没少客串),《银河护卫队》系列的导演詹姆斯·古恩(他同时也是“浣熊火箭”),漫威影业的主席凯文·费奇等等",
    "relation": [
      [
        "银河护卫队",
        "导演",
        "詹姆斯·古恩"
      ]
    ]
  }
{
    "text": "夏志清毕业于上海沪江大学(这是一所美国教会学校),兄弟俩在北大既无背景也无后盾",
    "relation": [
      [
        "夏志清",
        "毕业院校",
        "沪江大学"
      ],
      [
        "夏志清",
        "毕业院校",
        "上海沪江大学"
      ]
    ]
  }
  {
    "text": "《遗忘》是台湾女歌手邓丽君演唱的一首歌曲,这首歌曲首次原先在1979年9月20日收录在专辑《难忘的一天》中于台湾等地发行,同年11月15日收录在专辑《甜蜜蜜》中于香港等地发行",
    "relation": [
      [
        "遗忘",
        "歌手",
        "邓丽君"
      ],
      [
        "遗忘",
        "所属专辑",
        "难忘的一天"
      ]
    ]
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

苏神的bert4keras的结果

{
    "text": "除了闪瞎人员的超级英雄演员阵容,还有几位大名鼎鼎的幕后工作者,比如“漫威之父”斯坦·李(幕前彩蛋也没少客串),《银河护卫队》系列的导演詹姆斯·古恩(他同时也是“浣熊火箭”),漫威影业的主席凯文·费奇等等",
    "bert4keras_relation": [
      [
        "银河护卫队",
        "导演",
        "詹姆斯·古恩"
      ]
    ]
  }
{
    "text": "夏志清毕业于上海沪江大学(这是一所美国教会学校),兄弟俩在北大既无背景也无后盾",
    "bert4keras_relation": [
      [
        "夏志清",
        "毕业院校",
        "沪江大学"
      ],
      [
        "夏志清",
        "毕业院校",
        "上海沪江大学"
      ]
    ]
  }
  {
    "text": "《遗忘》是台湾女歌手邓丽君演唱的一首歌曲,这首歌曲首次原先在1979年9月20日收录在专辑《难忘的一天》中于台湾等地发行,同年11月15日收录在专辑《甜蜜蜜》中于香港等地发行",
    "bert4keras_relation": [
      [
        "甜蜜蜜",
        "歌手",
        "邓丽君"
      ],
      [
        "遗忘",
        "所属专辑",
        "难忘的一天"
      ],
      [
        "遗忘",
        "所属专辑",
        "甜蜜蜜"
      ],
      [
        "遗忘",
        "歌手",
        "邓丽君"
      ],
      [
        "难忘的一天",
        "歌手",
        "邓丽君"
      ]
    ]
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

如有错误,欢迎指出。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/623458
推荐阅读
相关标签
  

闽ICP备14008679号