李宏毅DLHLP.19.Coreference Resolution

文章目录

  • 介绍
  • Example for Coreference Resolution
    • 概念
    • 任务介绍
  • Framework
    • End-to-end
    • Span Feature Extraction
    • Practical Implementation
  • Seq2Seq思路
  • Advanced Topics
    • Global Information
    • Unsupervised
  • Reference

介绍

本门课程是2020年李宏毅老师新课:Deep Learning for Human Language Processing(深度学习与人类语言处理)
课程网站
B站视频
公式输入请参考:在线Latex公式
上节NLP tasks有提到过,常见的NLP任务又8类,但是有一些任务比较特殊,要单独讲,这节就来讲讲Coreference Resolution如何用DL的方式来解。
另外老师推荐了斯坦福的Dan Jurafsky写的:Speech and Language Processing (3rd)

Example for Coreference Resolution

共指消解、 指代消解、同指消解,例如老师给出的例子:
李宏毅DLHLP.19.Coreference Resolution_第1张图片
这个任务的作用是在QA任务中给出准确的答案。例如:
李宏毅DLHLP.19.Coreference Resolution_第2张图片
这个回答不准确,应该是钟佳播的拳头:
李宏毅DLHLP.19.Coreference Resolution_第3张图片

常见的Coreference Resolution任务是:Winograd Schema Challenge,例如:
李宏毅DLHLP.19.Coreference Resolution_第4张图片

The trophy would not fit in the brown suitcase because it was too big. What was too big?
Ans: Trophy
The trophy would not fit in the brown suitcase because it was too small. What was too small?
Ans: suitcase

概念

了解Coreference Resolution后,来看看在Coreference Resolution任务中几个概念:
某个词汇对应到具体的人物/东西,那么这个词就称为mention;
如果有两个mention指向同一个人物/东西,对应关系就叫corefer;有corefer的多个mention中第一个出现的mention叫:antecedent(先行词),后面出现的mention叫:anaphor。
如果有一个mention指向一个人物/东西,对应关系就叫singleton;
李宏毅DLHLP.19.Coreference Resolution_第5张图片

任务介绍

主要两个方面:
1.All the mentions are labeled. (sometimes singletons are ignored).mention有包含或者重叠关系,例如下面的【他的拳头】
2.The mentions are grouped into clusters.
李宏毅DLHLP.19.Coreference Resolution_第6张图片
既然该任务已经分解为两个步骤,下面来看如何用DL来分别解这两个问题。

Framework

Step 1: Mention Detection
把这个步骤看做二分类的问题,给定一段文字,然后读取某一个span,然后判断这个span是否是mention。
李宏毅DLHLP.19.Coreference Resolution_第7张图片
注意,这里吃的不是单个的token,而是要吃span
对于包含N个token的一句话,所包含的span数量最多为:
N ( N − 1 ) 2 \cfrac{N(N-1)}{2} 2N(N1)
用穷举的方式划分好span后就可以训练,这里有label好的数据直接train即可:
李宏毅DLHLP.19.Coreference Resolution_第8张图片
Step 2: Mention Pair Detection
这个步骤也可以用二分类的思路来解:
李宏毅DLHLP.19.Coreference Resolution_第9张图片
二分类器吃两个mention作为输入,然后判断这两个mention是否指向同一个实体。例如:
李宏毅DLHLP.19.Coreference Resolution_第10张图片
如果有K个mention,那么二分类器就要比较 K ( K − 1 ) 2 \cfrac{K(K-1)}{2} 2K(K1)次。

End-to-end

虽然分成两个步骤,并且用二分类器分开解决是没有问题,但是要想实现端到端如何做?思路就是要把两个二分类器结合到一起变成一个二分类器:
这个二分类器吃两个span(两个sequence的subsequence)
李宏毅DLHLP.19.Coreference Resolution_第11张图片
输出YES的条件是:
1.两个输入都是mention;
2.两个mention都指向同一个实体。
如果sequence有N个token,共有 N ( N − 1 ) 2 = K \cfrac{N(N-1)}{2}=K 2N(N1)=K个span,二分类器要运行 K ( K − 1 ) 2 \cfrac{K(K-1)}{2} 2K(K1)
因此其算法时间复杂度为: O ( n 4 ) O(n^4) O(n4)
训练过程如下:
李宏毅DLHLP.19.Coreference Resolution_第12张图片
这里忽略了 Mention Ranking Model ,具体可以参考Speech and Language Processing (3rd)的22.4
下面来看具体的模型细节。
显示将sequence过一下预训练模型(ELMo, BERT都可),可以看到预训练模型是看过整个sequence之后吐出的embedding。
李宏毅DLHLP.19.Coreference Resolution_第13张图片
然后将embedding经过Span Feature Extraction模块,通过这个模块把输入的span的多个embedding(绿色)汇聚为一个embedding(蓝色),这里不用担心蓝色embedding忽略全局信息,因为之前预训练模型已经讲全局信息处理到绿色embedding里面了。
李宏毅DLHLP.19.Coreference Resolution_第14张图片
然后会有mention detection模块,吃一个蓝色embedding,然后给出这个embedding是不是span的结论(是一个分数)。
李宏毅DLHLP.19.Coreference Resolution_第15张图片

然后有一个mention pair detection的模块,判断两个蓝色的embedding是不是指向同一实体,同样这个模块输出也是一个分数。
李宏毅DLHLP.19.Coreference Resolution_第16张图片
最后将三个分数整合起来(这里用的是sum,也可以用别的方法。),如果满足2个条件,我们希望这个输出越大越好。
李宏毅DLHLP.19.Coreference Resolution_第17张图片

Span Feature Extraction

下面详细看看上面提到的Span Feature Extraction模块:
李宏毅DLHLP.19.Coreference Resolution_第18张图片
假设有四个embedding: x 1 , x 2 , x 3 , x 4 x^1,x^2,x^3,x^4 x1,x2,x3,x4
李宏毅DLHLP.19.Coreference Resolution_第19张图片
然后单独加一个attention模块,就是上图中的蓝色部分,得到每个embedding应该对应的权重: α 1 , α 2 , α 3 , α 4 \alpha^1,\alpha^2,\alpha^3,\alpha^4 α1,α2,α3,α4,有了权重之后就是加权求和:

李宏毅DLHLP.19.Coreference Resolution_第20张图片
然后将求和结果,与span的首尾两个embedding进行concat,就得到最后的Span Feature Extraction结果:
李宏毅DLHLP.19.Coreference Resolution_第21张图片

Practical Implementation

前面介绍方法中,我们估计出来算法时间复杂度是 O ( n 4 ) O(n^4) O(n4),还蛮大,下面看下实作过程中如何进行优化。
可以把上面端到端的训练按原始思路做两步,第一步先运行 mention detector N ( N − 1 ) 2 = K \cfrac{N(N-1)}{2}=K 2N(N1)=K次,这里得到K个span,那么如果 K < < N K<K<<N那么可以大幅减少运算。复杂度为 O ( n 2 ) O(n^2) O(n2)
此外,对mention长度做一个限制,例如不超过10个token,那么也会大大减少运算。复杂度为 O ( 10 n ) = O ( n ) O(10n)=O(n) O(10n)=O(n)
最后模型只用跑 K ( K − 1 ) 2 \cfrac{K(K-1)}{2} 2K(K1)

Seq2Seq思路

前面讲了如何端到端解决Coreference Resolution,老师给出了另外一篇19年的文章中的Seq2Seq思路。这个文章本来是解决QA问题的,在常见的QA任务中,模型通常不会去记忆历史对话,因而在问答过程中常常效果会差,例如:

对话 内容
对话1 Human:梅西有多高?
Human:How tall is Messi
对话2 ChatBot:官方说法的身高是5英尺7英寸。
ChatBot:Officially he is 5ft 7 inches.
对话3 Human:和C罗谁是最好的球员?
Human:Who is the best,he or C.Ronaldo?

在第三句话中,人提问中的【他】是指梅西,但是普通的QA模型不会解这个问题,因此这篇文章就提出一个Seq2Seq的训练方式,将上面三句话作为一个sequence丢入模型,Seq2Seq模型会吐出一个等价的问题:
Human:梅西和C罗谁是最好的球员?
Human:Who is the best,Messi or C.Ronaldo?
Seq2Seq模型学习到的东西就是如何将代名词替换为某一个名词。
最后得到的结果再由QA模型来求解。

Advanced Topics

这里有两个内容是本节没有深入讨论的,这里简单提一下:

Global Information

李宏毅DLHLP.19.Coreference Resolution_第22张图片
本节讲的End-to-end方法在抽取Coreference Resolution的信息的时候,没有考虑全局信息,例如上图中,由于没有考虑全局信息,第一次和第二次分别抽取到两个corefer,分开来看是没毛病,但是放到一起就有问题了,明显Mr.和she是不可能指代同一个人。因此有文章专门解决这个问题,要考虑全局的信息。

Unsupervised

在这里插入图片描述
Using pre-train model to fill-in the blank.
另外一个就是使用无监督的训练方式来解决指代问题,例如上图那个地方本来是个代词【he】,但是我们不知道这个代词指的是谁,因此用mask盖住,然后让预训练模型例如BERT,来填/预测这个词,这里可以做限制不让它填代词,这样就把指代任务给搞定了。

Reference

• [Lee, et al., EMNLP’17] Kenton Lee, Luheng He, Mike Lewis, Luke Zettlemoyer, End-to-end Neural Coreference Resolution, EMNLP, 2017
• [Su, et al., ACL’19] Hui Su, Xiaoyu Shen, Rongzhi Zhang, Fei Sun, Pengwei Hu, Cheng Niu, Jie Zhou, Improving Multi-turn Dialogue Modelling with Utterance ReWriter, ACL, 2019
• [Wu, et al., ACL’20] Wei Wu, Fei Wang, Arianna Yuan, Fei Wu, Jiwei Li, Coreference Resolution as Query-based Span Prediction, ACL, 2020
• [Lee, et al., NAACL’18] Kenton Lee, Luheng He, and Luke Zettlemoyer, Higherorder coreference resolution with coarse-to-fine inference, NAACL, 2018
• [Joshi, et al., EMNLP’19] Mandar Joshi, Omer Levy, Luke Zettlemoyer, Daniel Weld, BERT for Coreference Resolution: Baselines and Analysis, EMNLP, 2019
• [Kantor, et al., ACL’19] Ben Kantor, Amir Globerson, Coreference Resolution with Entity Equalization, ACL, 2019
• [Kocijan, et al., EMNLP’19] Vid Kocijan, Oana-Maria Camburu, Ana-Maria Cretu, Yordan Yordanov, Phil Blunsom, Thomas Lukasiewicz, WikiCREM: A Large Unsupervised Corpus for Coreference Resolution, EMNLP, 2019

你可能感兴趣的:(李宏毅.DLHLP2020)