Entity-Relation Extraction as Multi-turn Question Answering
- ACL 2019
概述
- 研究内容:关系抽取
- 解决的问题:一对多复杂关系抽取问题
- 例子:
In 2002, Musk founded SpaceX, an aerospace manufacturer and space transport services Com- pany, of which he is CEO and lead designer. He helped fund Tesla, Inc., an electric vehicle and so- lar panel manufacturer, in 2003, and became its CEO and product architect. In 2006, he inspired the creation of SolarCity, a solar energy services Company, and operates as its chairman. In 2016, he co-founded Neuralink, a neurotechnology Company focused on developing brain–computer interfaces, and is its CEO. In 2016, Musk founded The Boring Company, an infrastructure and tunnel- construction Company.
- 上述段落中存在的关系形式
Person Corp Time Position Musk SpaceX 2002 CEO Musk Tesla 2003 CEO& Musk SolarCity 2006 chairman Musk Neuralink 2016 CEO Musk The Boring Company 2016 − \begin{array}{cccc} \hline \text { Person } & \text { Corp } & \text { Time } & \text { Position } \\ \hline \text { Musk } & \text { SpaceX } & 2002 & \text { CEO } \\ \text { Musk } & \text { Tesla } & 2003 & \text { CEO\& } \\ \text { Musk } & \text { SolarCity } & 2006 & \text { chairman } \\ \text { Musk } & \text { Neuralink } & 2016 & \text { CEO } \\ \text { Musk } & \text { The Boring Company } & 2016 & - \\ \hline \end{array} Person Musk Musk Musk Musk Musk Corp SpaceX Tesla SolarCity Neuralink The Boring Company Time 20022003200620162016 Position CEO CEO& chairman CEO −
模型工作流程
- 抽取头实体
- 抽取尾实体+关系
- 抽取方式:通过生成Question List, 并且对每个Question进行求解
- 如上面例子:
可以通过如下的问答序列找到其中的实体以及关系
Q: who is mentioned in the text?
A: Musk;
Q: which Company / companies did Musk work for?
A: SpaceX, Tesla, SolarCity, Neuralink and The Boring Company;
Q: when did Musk join SpaceX?
A: 2002;
Q: what was Musk's Position in SpaceX?
A: CEO
Question如何生成
-
头实体Question
通过一个问句找到这段文字的头实体,问句可以用如下形式:
如:文中提到了哪个人?
-
尾实体以及关系Question
-
对于每一种关系,都可以找到对应的提问方式,若已知头实体’Musk’,则可以用如下Question来抽取’Musk’任职的公司
如:Musk在哪家公司工作过?
从上面的例子中可以看出,对于Question的生成,可以采用一种模板句,然后进行槽填充的形式对其进行生成
对于本文中处理的任务类型,可以使用如下模板来进行处理
Q1 Person: who is mentioned in the text? A : e 1 Q2 Company: which companies did e 1 work for? A : e 2 Q3 Position: what was e 1 ’s position in e 2 ? A : e 3 Q4 Time: During which period did e 1 work for e 2 as e 3 A : e 4 \begin{array}{lll} \hline \text { Q1 Person: } & \text { who is mentioned in the text? } & \mathrm{A}: e_{1} \\ \text { Q2 Company: } & \text { which companies did } e_{1} \text { work for? } & \mathrm{A}: e_{2} \\ \text { Q3 Position: } & \text { what was } e_{1} \text { 's position in } e_{2} ? & \mathrm{A}: e_{3} \\ \text { Q4 Time: } & \text { During which period did } e_{1} \text { work for } e_{2} \text { as } e_{3} & \mathrm{A}: e_{4} \\ \hline \end{array} Q1 Person: Q2 Company: Q3 Position: Q4 Time: who is mentioned in the text? which companies did e1 work for? what was e1 ’s position in e2? During which period did e1 work for e2 as e3A:e1A:e2A:e3A:e4
- Tips
生成的Question可以是自然语言,也可以是伪语言
比如:
自然语言:Who is mentioned in the text?
伪语言:entity:persion
如何通过Question得到Answer
- 机器阅读理解
阅读理解题目类似于我们中学时语文试卷中给定一段文本材料,根据该材料回答给定的若干问题,通过对问题的回答来检查阅读理解的能力,就目前了解所知,阅读理解任务主要分类以下几种类型:
(1)完形填空式:类似高中英语卷子中的完形填空题目;
(2)答案选择式:类似高中英语的阅读理解题目,有多个候选答案-选择题;
(3)答案抽取式:问题的答案在原文中一定存在,并且为一个连续的区域块;
(4)答案生成式:根据给定的文本生成目标答案,阅读理解的终极目标。
对于本次任务,显然是对应第三类阅读理解任务,即从给定的段落中抽取答案。
- 传统的阅读理解做法
只需要求得答案所在文本的首尾角标,就可以得到答案,传统做法即进行两次分类,一次得到首角标,一次得到尾角标,通过有监督学习进行训练。
- 本课题的特殊点
由于本文提到的阅读理解任务答案可能不只有一个比如:
Q: which Company / companies did Musk work for?
A: SpaceX, Tesla, SolarCity, Neuralink and The Boring Company;
- 解决方案
使用BMEO标签:
B:Begin,标记答案的起始位置
M:Inner,标记答案的中间位置
E:End, 标记答案的结尾
O:OutOfAnswer,答案外的部分
这样问题就化解为一个序列标注问题,只需要将序列标注好,答案就得到了。
实验效果
对于传统的数据集,本文算法只需要提问两次就可以得出结果,并且该方法取得了state-of-the-art的结果。
新数据集RESUME(中文)
例子:
郑强先生,本公司监事,1973年出生,中 国国籍,无境外永久居留权。1995年,毕业 于南京大学经济管理专业; 1995年至1998年, 就职于江苏常州公路运输有限公司,任主办 会计; 1998年至2000年,就职于越秀会计师事务所,任项目经理; 2000年至2010年,就职于国富浩华会计师事务所有限公司广东分所, 历任项目经理、部门经理、合伙人及副主任会计师 ; 2010年至2011年,就职于广东中科招商创业投资管理有限责任公司,任副总经理; 2011年至今,任广东中广投资管理有限公司董事、总经理:2016年至今,任湛江中广创业投资有限公司董事、总经理:2016年3月至今,担任本公司监事。