WDK李宏毅学习笔记第八周01_Point Network


摘要

本章讲的是Pointer Network的基本原理,并用其解决Convex Hull问题,但是解决Convex Hull问题实际意义并不大,所以又讲述了如何用Pointer Network改进Summarization、Translation and Chat-bot model。

一、Pointer Network

1.1 目的

Pointer Network 主要是用在解组合优化类问题(TSP, Convex Hull等等),下面是用Pointer Network解Convex Hull来举例子,Convex Hull问题就是输入点的数据,然后再输出一些点且这些点连起来可以将输入点全部包起来。
在这里插入图片描述

1.2 原理

如下图,首先输入多个点的data,根据z0(key)得到几率最大的点(x1,y1),(key是由计算机自己学到的),根据得到点和z0得到z1。
在这里插入图片描述
将z1作为下一个key,得到几率最大的点(x4,y4),得到z2,依次类推,直到end标记点(x0,y0)几率最大,就结束运行。这样做可以将所有
在这里插入图片描述

1.3 优点

该做法可以根据输入点的数量变化输出点的数量,解决了Sequence-to-Sequence输出点固定的问题。

二、Applications-Summarization

2.1 原理

  1. 传统的做法:input一个document,将encoder得到的output丢给decoder,那decoder每次都会输出一个word,把所有的word结合起来就得到了summary。该方法的缺点是如果正确答案的词汇不在machine的lexicon时,那么这个词汇的几率就永远是0,
    下图右边就是用传统方法得到的words。
  2. 加入Point Network的做法:从输入的attention distribution直接做sample,得到输出words的distribution,然后再learn一个weight为Pgen,这个pgen决定了我们要用多少传统的方法(下图右边)和多少Point Network(下图左边)的方法相加。
    在这里插入图片描述

2.2 优点

加入Point Network的方法让machine可以直接从输入document中提取word,解决了不在machine的lexicon的words几率永远是0导致总结的结果不够正确的问题。

三、Applications - Translation and Chat-bot

  1. 在翻译的时候,有一些词汇是不需要翻译或者翻译不出来的,如人名地名,这时候可以在model中加入Point Network,让机器可以直接从input的句子里选取词汇。
  2. 在Chat-bot的model里,也可以加入Point Network,例如user说“X宝你好,我是库洛洛”,然后希望机器回答“库洛洛你好,很高兴认识你”,这时machine的lexicon可能都没有库洛洛,就没办法回答正确,但是如果使用Point Network,机器就可以从input中选取一些词汇直接复制到输出中,实现正确的回答。

方法

Point Network:首先是输入经过RNN转换得到vector,然后learn一个初始的key(z0)用key对输入做attention,对每一个input都产生一个weight,然后取argmax,得到几率最大的word vector,通过该vector得到z,依此类推,直到结束标记(x0,y0)的几率最大时停止。

结论

Point Network可以解决输出固定的问题,让machine可以根据输入量自己选择合适的输出量。Point Network一般不单独使用,而是和其他model配合使用,改进和优化其他的Model。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值