关系抽取--TPLinker

关系抽取–TPLinker

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

TPLinker的创新

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

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用蓝色表示。
关系抽取--TPLinker_第2张图片
由于这种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得到实体对,实体对的特征表示为:
实体对的特征表示
实体对所属关系的模型表示:
关系抽取--TPLinker_第3张图片
模型损失函数
关系抽取--TPLinker_第4张图片
其中,N是句子的长度, E,H,T分别表示EH-TO-ET,SH-to-OH,ST-to-OT, l ^ ∗ \hat l^{*} l^是真是的标签

实验效果

TPLinker跟其他模型的实验结果对比如下图:
关系抽取--TPLinker_第5张图片
最近在用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
        ]
      }
    ]
  }

最近一段时间在学习关系抽取,主要看了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": "歌手"
      }
    ]
  }

CasRel模型结果

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

苏神的bert4keras的结果

{
    "text": "除了闪瞎人员的超级英雄演员阵容,还有几位大名鼎鼎的幕后工作者,比如“漫威之父”斯坦·李(幕前彩蛋也没少客串),《银河护卫队》系列的导演詹姆斯·古恩(他同时也是“浣熊火箭”),漫威影业的主席凯文·费奇等等",
    "bert4keras_relation": [
      [
        "银河护卫队",
        "导演",
        "詹姆斯·古恩"
      ]
    ]
  }
{
    "text": "夏志清毕业于上海沪江大学(这是一所美国教会学校),兄弟俩在北大既无背景也无后盾",
    "bert4keras_relation": [
      [
        "夏志清",
        "毕业院校",
        "沪江大学"
      ],
      [
        "夏志清",
        "毕业院校",
        "上海沪江大学"
      ]
    ]
  }
  {
    "text": "《遗忘》是台湾女歌手邓丽君演唱的一首歌曲,这首歌曲首次原先在1979年9月20日收录在专辑《难忘的一天》中于台湾等地发行,同年11月15日收录在专辑《甜蜜蜜》中于香港等地发行",
    "bert4keras_relation": [
      [
        "甜蜜蜜",
        "歌手",
        "邓丽君"
      ],
      [
        "遗忘",
        "所属专辑",
        "难忘的一天"
      ],
      [
        "遗忘",
        "所属专辑",
        "甜蜜蜜"
      ],
      [
        "遗忘",
        "歌手",
        "邓丽君"
      ],
      [
        "难忘的一天",
        "歌手",
        "邓丽君"
      ]
    ]
  }

如有错误,欢迎指出。

你可能感兴趣的:(NLP,自然语言处理,深度学习)