放牧代码和思想
专注自然语言处理、机器学习算法
    正处于一个非常忙的阶段,抱歉不会经常回应任何联络

CS224n笔记15 指代消解

目录

2017-07-11_15-53-57.png从规则启发式代词回指消解出发,介绍了传统特征工程二分类模型、启发式损失的分类模型,过渡到利用强化学习自动缩放损失的神经网络模型。

什么是指代消解 

找出文本中名词短语所指代的真实世界中的事物。比如:

hankcs.com 2017-07-11 上午10.03.41.png

hankcs.com 2017-07-11 上午10.04.57.png

不只是代词能够指代其他事物,所有格和其他名词性短语也可以。

甚至还存在大量嵌套的指代:

hankcs.com 2017-07-11 上午10.20.22.png

应用

  • 全文理解
    完整的文章中有大量的指代

  • 机器翻译
    土耳其语不区分男他和女她,翻译到英文的时候必须做指代消解;当然了,当前工业线上的MT系统大多做不了

  • 文本摘要
    使用代词会使行文更加自然

  • 信息提取和QA系统
    比如搜索“谁娶了Claudia Ross”,出来“He married Claudia Ross in 1971”,则系统必须消解“He”是谁。

指代消解评测

指代消解的结果很像聚类,所以一些聚类的评测手段可以借用:

hankcs.com 2017-07-11 上午10.32.09.png

当然实际中问题可能更复杂一些,有多个类别,而且gold cluster如何与produced cluster二分图匹配也是个NP问题(实际应用中有一些贪婪的算法效果也还不错)。

指代的类型

hankcs.com 2017-07-11 上午10.46.05.png

这个分类是语言学家定的,在NLP领域没见到过,顶多见到“回指”和“共指”。

不是所有NP都在指代

hankcs.com 2017-07-11 上午10.48.34.png

绿色NP“指代”全集或空集,描述的是一种普遍规律。红色等价于绿色,所以也不是在做指代。

Coreference, anaphors, cataphors

NLP领域关注的其实只有上述3种指代类型的前2种,中文应当译作“共指”和“回指”,最后一种是“回指”的反义词:

hankcs.com 2017-07-11 上午10.56.36.png

一般视作“共指”处理。

那为什么回指不视作共指处理呢?因为两者在许多时候并不等效:

hankcs.com 2017-07-11 上午11.00.08.png

在NLP领域,也很少研究这种bridging anaphora,后一个“票”视作另一种实体的指代,并不学习其与“演唱会”的关系。

共指与回指

它们是两种不同的概念:

hankcs.com 2017-07-11 上午11.05.42.png

回指中,后一个实体指代前一个实体,但两者并非指代真实世界中同一个事物。

那是不是应该区别对待它们呢?事实上,实际应用的系统几乎无法区分它们。

传统代词消解方法:Hobbs’ naive algorithm

这是Hobbs手工写的规则集,在句法树上运作。有两页的规则,类似地摊杂志上的心理算命:“如果……那么跳转第几步……否则……”该算法根据英文语言上的直觉编写,可以拿到80%的准确率,有时候也作为其他机器学习分类器的特征之一使用。

基于知识库的代词消解

Winograd和其他旧派AI学者认为,要做指代消解,必须有一个外部的知识库。比如:

hankcs.com 2017-07-11 下午2.22.46.png

根据常识,害怕暴力的更可能是女性,所以上述两个they的指代各不相同。这种“知识库”可能帮助系统消歧。(跑个题,总有一群外围商业人士在鼓吹“知识图谱”,要自动半自动甚至手工建立所谓的“知识图谱”。其实他们做的无非是拿正则表达式“提取”一下百科中的div框,找些廉价劳动力清洗一下存到图数据库里而已。终端程序员在数据库上做几个if else马上就人工智能了。这种低门槛的事情在70年代AI的早期历史上风行一时也就算了,现在挖坟还自以为很高端是几个意思)

Winograd等人的“知识库”连Hobbs的基线算法都没有达到。

几种指代消解模型

Mention Pair models

将所有的指代词(短语)与所有被指代的词(短语)视作一系列pair,对每个pair二分类决策成立与否。

Mention ranking models

显式地将mention作为query,对所有candidate做rank

Entity-Mention models

一种更优雅的模型,找出所有的entity及其对话上下文。根据对话上下文聚类,在同一个类中的mention消解为同一个entity。但这种方法其实也用得不多。

监督Mention-Pair Model

hankcs.com 2017-07-11 下午3.00.13.png

这种模型用得最多,每个mention与之前的mention做二分类决策,当然如何识别mention是另外一个问题。

指代消解可用特征

大量语言学特征,人肉特征工程可用:

hankcs.com 2017-07-11 下午3.07.35.png

神经网络指代消解模型

虽然直觉上,联合学习所有mention之间的指代关系肯定比单个二分类要好,global比local肯定要好。但实际上没有试验数据能够支撑这一点,所以虽然有global RNN等更强大的模型,效果最好的依然是mention-pair或mention-ranking模型。

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » CS224n笔记15 指代消解

分享到:更多 ()

评论 欢迎留言

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机