Chapter7-7_Deep Learning for Coreference Resolution

文章目录

  • 1 什么是coreference resolution
  • 2 框架
    • 2.1 Mention Detection
    • 2.2 Mention Pair Detection
    • 2.3 End-to-End
    • 2.4 Span Representation
    • 2.5 Pratical Implementation
    • 2.6 Result
  • 3 应用

本文为李弘毅老师【Deep Learning for Coreference Resolution】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。

下文中用到的图片均来自于李宏毅老师的PPT,若有侵权,必定删除。

文章索引:

上篇 - 7-6 Text Style Transfer

下篇 - 7-8 Deep Learning for Constituency Parsing

总目录

1 什么是coreference resolution

coreference resolution翻译过来就是指代消解,它的目的是搞清楚一句话中的代词指的是什么。比如下图中有两句话,第一句是"The trophy would not fit in the brown suitcase because it was too big.",这里的it显然值得是"trophy";第二句是"The trophy would not fit in the brown suitcase because it was too small.",这里的it显然指的是"suitcase"。我们人很容易区分出来,但是要机器去找"it"指代的是什么就比较困难了。
ch7-7-1

刚说的是比较通俗的说法,更准确地说coreference resolution是这样的。在一个句子中会有很多的mention,mention就是句子中的一些名词,比如"鍾佳播瞪著樂咖舉起他的拳頭說"这句话中,“鍾佳播”,“樂咖”,“他”,"他的拳頭"都算是mention。这些mention会指向一个实际存在的事物,如果两个或两个以上的mention指向了同一个事物,那么这就叫做corefer。第一个出现的corefer叫做antecedent,之后出现的叫做anaphor。如果某个事物只有一个mention指向它,那么就叫做singleton。
ch7-7-2

总结一下,指代消解需要模型做两件事情,第一件事情就是把所有的mention都找出来,singletons往往会被忽略掉;第二件事情就是对所有的mention进行分组,把指代同一个事物的mention分到一个组里。
ch7-7-3

2 框架

2.1 Mention Detection

Mention Detection要做的就是把所有的mention都给找出来,它就是一个Binary Classifier。这个Binary Classifier吃一个span,然后告诉我们这个是不是一个mention。span就是说整个句子中的一段。如果句子的长度为N,那么这个步骤会被重复N(N-1)/2次,也就是概率论中的CN2C_N^2CN2,从N个tokens当中,任选两个作为起始token和结尾token。

为什么要这么做?比如“他的拳头”这个sequence当中,“他”是一个mention,“他的拳头”整句话也是一个mention,为的就是把这两者都找出来。
ch7-7-4
这里起始我还是有点小疑惑,一是sequence是不是按照标点符号切过的,因为有些标点明显不可能在mention中出现,除了老外的名字中的那个"·";二是这个binary classifier只吃一个span吗?那比如一个人的名字叫做"张小明",那么“张小明”会被当成mention,"小明"也会被当成mention吗?不过这种其实也能通过后处理解决掉。

2.2 Mention Pair Detection

Mention Pair Detection也是一个Binary classifier。不过它吃两个mention,然后吐出这两个mention是不是指向同一个东西,也就是上面所说的cluster的过程。当然这里的mention肯定不知是mention对应的tokens这么简单,应该是两个特征。

加入我们根据上一步得到了K个mentions,那么这里会执行K(K-1)/2次。
ch7-7-5

2.3 End-to-End

像上述这样分成两步的过程并不是end-to-end的,我们其实可以把这两步合成一步。就是train一个Binary Classifier,它吃两个span,然后在这两个span都是mentions且指向同一个entity的时候,输出yes。

如果是这样的一个模型的话,要运行几次呢?假设我们有N个tokens,那么会有N(N-1)/2个span,记K=N(N-1)/2的话,就会有跑K(K-1)/2次,也就是复杂度为N4N^4N4
ch7-7-6
相信说到这里,大家也都是有点疑惑的。那么,这个Binary classifier究竟长什么呢?它就下长下图这样子。先会把整个句子经过一个Pre-trained Model,可以是ELMo或者Bert之类的。然后每个token会有一个对应的输出,这里的每个输出都是包含了全局的信息的。然后我们就选择两个span,分别去抽取特征,这两个特征又会分别经过一个输出Mention分数的网络,这两个特征又会一起进入一个输出Mention Pair分数的网络,然后这三个分数整合之后,得到最终的分数。看了这个图,其实大多数的疑惑都消失了。
ch7-7-7

2.4 Span Representation

Span Feature Extraction的做法是如何的呢?一种常见的做法是先把头尾两个特征拿出来(下图中x1x_1x1x4x_4x4),然后对整个span算attention之后,取weighted sum。最后把这三个特征concat起来就是最终的输出了。需要有weighted sum的步骤,是因为这样可以让模型focus在span中讲述entity本质的东西上,比如“湖旁小屋”,这里的本质其实是“小屋”。
ch7-7-8

2.5 Pratical Implementation

刚才我们说了,假设我们有N个tokens,那么会有N(N-1)/2个span,记K=N(N-1)/2的话,就会有跑K(K-1)/2次,也就是复杂度为N4N^4N4。在实际操作的时候,有两招可以减少运算量。一招是,在inference的时候,先把mentin detection的部分单独拿出来过一遍,可以大大减小K;另一招是限制一个span的最大长度,这个很容易理解。

2.6 Result

那么,这么做的效果如何呢?下面有一些模型输出结果的句子,其中小括号括起来的部分,是模型认为是coreference的部分,用颜色highlight的部分,则是attention权重比较大的部分。下面的有正确的例子,也有错误的例子,总体来说,还是挺棒的~
ch7-7-9

3 应用

做coreference resolution主要是为了一下下游的任务。比如chatbot。在chatbot当中,往往需要机器去看历史内容,指导此刻人说的话,指的是刚才说过的什么东西。在做chatbot的时候,也有用seq2seq的方法去做的,比如有如下对话:

人:“梅西多高?”

机器:“官方说法他是5英尺7英寸。”

人:“他和C罗谁是最好的球员?”

这个时候,最后一句的他,我们希望可以替换成"梅西",这样机器回答起来会容易很多。这时,有人的做法就是,输入上面这三个句子,让机器输出“梅西和C罗谁是最好的球员?”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pwn和逆向的区别_Pwn之简单patch

亲爱的,关注我吧9/27文章共计1389个词图片xue微有点多注意流量哦预计阅读7分钟来和我一起阅读吧1引言在攻防的时候不仅仅需要break,还需要fix将漏洞patch上。2工具 这里我使用的是keypatch这个ida脚本下载地址:https://github.com/keystone-engine/keypatch/blob/ma…

python n个list如何组成矩阵_通过学习在processing中操作图片,掌握python 列表操作...

这次的教学非常简单,只需要安装了python模式的processing就可以(安装教程见专栏目录)。我从网上找了一个比100*100稍微大一点的图片,你可以也找一个。然后我们就可以一起开始今天的学习啦~(请先阅读本专栏中的processi…

六、PHP框架Laravel学习笔记——响应设置和重定向

一.响应设置 路由和控制器处理完业务都会返回一个发送到浏览器的响应:return;比如字符串会直接输出,而数组则会输出 json 格式,本身是 Response 对象; return [1, 2, 3]; //输出 json 格式 return respo…

论文阅读 - TransNet and TransNet V2

文章目录1 概述2 模型结构简述2.1 TransNet2.2 TransNet V23 数据集的构建4 模型效果5 参考文献1 概述 有些时候,一段视频是由多段短视频拼接而成的。拼接可以是直接拼接(硬拼接,见图2),也可以是由一个转场过渡拼接&a…

工厂方法模式及php实现

工厂方法模式: 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共…

Chapter7-8_Deep Learning for Constituency Parsing

文章目录1 什么是Constituency Parsing2 解决方案2.1 Chart-based Approach2.2 Transition-based Approach2.3 Grammer as Foreign Language本文为李弘毅老师【Deep Learning for Constituency Parsing】的课程笔记,课程视频youtube地址,点这里&#x1f…

html插入flash代码_初学者必备Web开发APP,支持代码补全,一键插入代码,厉害了!...

新手学前端神器,HTML代码补全功能太牛了!讲过学习后端的许多优秀APP,这次来推荐一下前端用的软件。前端,包含了HTMLCSSJavaScript这一整套的流程,缺一不可。其实,市面上用来编写前端的优秀APP有很多&#x…

七、PHP框架Laravel学习笔记——资源控制器

一.资源控制器 声明:资源控制器是某个特定场景下的产物,完全理解需要 PHP 项目基础;比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的…;只是学习了 PHP 基础&#xf…

留言板练习

这个练习做下来发现大体的步骤怎么走怎么做基本清晰&#xff0c;能实现可是做的很糙&#xff0c;没有老师细致……好多需要判断的地方没有想到 denglu.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT…

Chapter7-9_Deep Learning for Dependency Parsing

文章目录1 什么是Dependency Parsing2 模型结构本文为李弘毅老师【Deep Learning for Dependency Parsing】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老师的PPT&#xff0c;若有侵权&#xff0c;必…

八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护

一&#xff0e;表单伪造 之前一直用的 GET 请求方式&#xff0c;而表单可以实现 POST 方式&#xff0c;我们来实验下&#xff1a; 先在 TaskController 创建两个方法&#xff0c;一个表单页&#xff0c;一个接受表单数据路由&#xff1b; public function form() { return v…

高通的快充协议_高通:后续骁龙旗舰将标配100W快充

高通于昨晚正式推出了Quick Charge 5充电解决方案&#xff0c;经过3年时间的准备&#xff0c;高通这一次在Quick Charge快充的升级可谓重磅&#xff0c;在功率上实现了重大突破&#xff0c;达到了100W。官方数据显示&#xff0c;高通Quick Charge 5的性能较前代平台显著提升&am…

团队作业(六)

团队项目设计文档 1、系统框图 用户对手机进行设置&#xff0c;包括时间和解锁方式轨迹。手机对用户进行闹铃提醒&#xff0c;同时提供解锁方式。手机对数据库发送数据以保存响铃时间&#xff0c;数据库对手机提供响铃时间信息。 系统框图如下&#xff1a;2、系统结构框图 项目…

Chapter7-10_Deep Learning for Question Answering (1/2)

文章目录1 什么是Question Answering(QA)2 按答案分类2.1 答案是一个单词2.2 答案是多个选项2.3 答案是source中的一段话2.4 答案是生成的一段话3 按source分类3.1 source是网页3.2 source是图片或者视频3.3 source是语音3.4 source是视频本文为李弘毅老师【Deep Learning for …

十、PHP框架Laravel学习笔记——数据库配置入门

一&#xff0e;配置数据库 框架支持原生、查询构造器和 Eloquent ORM(关系型对象映射器)来操作数据库&#xff1b; 数据库的配置在 config/database.php&#xff0c;如果是本地可以直接配置.env 文件&#xff1b; 我们通过.env 文件配置数据库连接的相关信息&#xff0c;以提…

selenium firefox驱动_Python3+selenium配置常见报错解决方案

第一个报错问题geckodriver executable needs to be in PATH1.1如果启动浏览器过程中报如下错误&#xff1a;Traceback (most recent call last):File "", line 1, in <module>File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdr…

Chapter7-11_Deep Learning for Question Answering (2/2)

文章目录1 Simple Question: Match & Extract2 Complex Question: Reasoning3 Dialogue QA本文为李弘毅老师【Deep Learning for Question Answering (2/2)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自…

十一、PHP框架Laravel学习笔记——构造器的查询.分块.聚合

一&#xff0e;构造器查询 table()方法引入相应的表&#xff0c;get()方法可以查询当前表的所有数据&#xff1b; //获取全部结果 $users DB::table(users)->get(); first()方法&#xff0c;可以获取到第一条数据&#xff1b; //获取第一条数据 $users DB::table(user…

mac 批量清空文件夹文件_【XSS 聚宝瓶】文件及文件夹批量改名工具

置顶公众号&#xff0c;否则不能及时收到新文章推荐给朋友&#xff0c;让朋友也能收到免费文章在公众号发送函数或应用的关键字&#xff0c;即可免费获取对应教程一、功能说明我们在日常办公的时候&#xff0c;经常会碰到文件名不规范&#xff0c;想要整理很不方便&#xff0c;…

论文阅读 - Beat Tracking by Dynamic Programming

文章目录1 概述2 总体框架3. 计算Onset Strength Envelope4 计算全局的Tempo5 基于动态规划计算beats6 参考文献1 概述 有背景音乐的短视频拼接时&#xff0c;如果两个视频的拼接点刚好在背景音乐的某个节拍点上&#xff0c;那么合成的视频看起来&#xff0c;听起来&#xff0…