论文略读 | Pointing the Unknown Words

1.简介

2016 年的论文
用attention来处理神经网络中rare and unseen words,用了两个softmax层来预测模型中的下一个词。一个预测源语句中单词的位置,另一个单词预测短名单词汇表中的单词,通过MLP层以上下文为依据决定使用哪个softmax。

PS文中提供的代码不存在了:https://github.com/caglar/pointer_softmax

难点: 单词数量巨大,且是不断发展的系统。

(1)现在的处理:

有一个softmax output layer,每个输出维度对应到predefined word-shortlist中的一个单词。因为softmax计算很昂贵,所以实际计算中是把KB中最常用的topK个单词放到predefined word-shortlist中,其他词都用一个特殊符号来替换UNK(未知单词问题)

这种方法存在两个问题:

  • rare word:predefined word-shortlist中的某些词在训练集中出现的次数较少,导致学习到的特征不是很好。
  • 将不同的unseen word都映射为UNK丢失了很多消息。

(2)本文方法:

Pointing:在不知道如何调用的情况下传递信息并将上下文关联到特定的对象。

基本思想:
可以将许多NLP问题看作是在给定上下文文本的情况下预测目标文本的任务,其中一些目标词也出现在上下文中。在这种情况下,我们可以让模型学会在上下文中point to 一个单词并将其复制到目标文本,以及when to point

本文方法:
为了生成目标词,模型首先确定单词生成的来源,即从预定义的候选名单中取出一个还是从上下文中复制一个。

  • 对于前者,我们应用典型的softmax操作
  • 对于后者,我们使用注意机制来获得上下文的pointing softmax probability并选择高概率的概率。
    模型通过学习,仅在上下文包含可以复制的词的情况下使用Pointing。这样,只要它出现在上下文中,我们的模型甚至可以预测不在候选名单中的单词。虽然有些词仍然需要标记为UNK,即如果它既不在候选名单中也不在上下文中时。

文章结构:
第二章:包括指针网络和以前针对rare word/unseen word的方法
第三章:回顾了机翻和注意力机制,这是本文的baseline
第四章:提出了处理罕见/未知单词问题的方法,称为Pointer Softmax(PS)
第五章:实验结果

2.Related work

(1)现有几种解决方法

  • 第一种,侧重于提高softmax输出的计算速度,以便它可以保持非常大的词汇量。因为这只会增加候选名单的大小,所以它有助于缓解未知单词问题,但仍然会遇到罕见的单词问题。
  • 第二种,和本文类似,使用上下文信息,学习将源语句中的某些单词指向并将其复制到目标句子。但相关工作没有用注意力机制,并且他们的softmax槽值是固定的,这对于QA和文本摘要等上下文以及指向位置变化很大的问题来说不适用。也有方法在entity位置放了placeholder,但是placeholder的id直接在softmax输出而不是预测它的位置(??这个问题没看懂)。
  • 第三种,将输入/输出本身的单位从单词改为较小的分辨率,如字符和字节码,虽然它可以减少罕见/未知单词问题,但训练通常变得更加困难,因为序列的长度显着增加。

(2) 和指针网络的对比

指针网络中目标序列的输出空间被约束为输入序列(而不是输入空间)中的观察。不是具有固定维度softmax输出层,而是以这样的方式动态地计算每个输入序列的不同维度的softmax输出,以最大化目标输入的注意概率。(怎么做到动态的呢??)

3. 神经网络模型 + attention

Baseline: NMT + attention

(1)Encoder:

用了BiRNN,每个隐层相对于其他周围单词,从正反两个方向编码第j个单词。

(2) Attention计算:

软对齐机制(??)首先计算相关权重(用来确定hj对目标词t的贡献概率)。使用非线性映射f(例如,MLP),其将hj,先前解码器的隐藏状态st-1和先前输出yt-1作为输入:
在这里插入图片描述
然后将该相关性概率normalized,得到relevance score
在这里插入图片描述

(3) context 上下文向量计算:

计算翻译上下文向量:
在这里插入图片描述

(4)Decoder:用了GRU

Decoder的隐藏层st由上一步st-1,上下文相关向量ct,以及前一步输出yt-1得到,其中fr是GRU。
在这里插入图片描述

(5)单词上的概率分布:

deep output layer来计算单词上的分布(??这是干嘛的)
在这里插入图片描述
然后将整个模型联合训练,最大化给定输入序列的目标序列的(条件)对数似然。

(6)NMT+attention 模型

就是一个encoder_decoder模型加了一个attention。
在这里插入图片描述

4. The Pointer Softmax

(1)相比于Pointer Network的两个改进:

  • 在每步判断是否需要指向
  • 可以指向上下文序列长度可变的任意位置。

(2)模型结构:

有两个softmax层:
  • shortlist softmax:和以往的一样,每一维对应predefined word shortlist中的一个单词。
  • location softmax:是一个pointer network,每个输出维度对应上下文中一个单词的位置。因此它的输出维度会随着上下文的长度来变化。

在每个时刻,如果模型决定用 shortlist softmax,则从predefined word shortlist中生成一个单词;如果上下文序列包含该步要生成的单词,则从location softmax获得上下文单词lt的位置。为此,需要决定什么时候用哪个softmax,所以本文引入了一个switching network

switching network:

该网络用上下文表示(NMT中的ct)和输出RNN的先前隐藏状态作为其输入。它输出一个二进制变量zt,当zt = 1时用shortlist softmax,当zt = 0时用location softmax。注意,当生成的单词既不在候选名单中也不在上下文序列中时,交换网络选择shortlist softmax,然后shortlist softmax预测成UNK
这里是每次都生成两个网络吗?还是决定后再生成???
哦哦应该是每次都生成(wt是从shortlist中生成的,lt是从location中生成的,zt做一个选择)
在这里插入图片描述
考虑到是为了最大化生成单词和目标单词y的相似度,可以将式子(4)分解成式子(5)。
在这里插入图片描述
在这里插入图片描述
训练的目标是最大化如下式子
在这里插入图片描述

(3)Basic Components of the Pointer Softmax

  • Location Softmax lt:拷贝到目标中的单词的位置用lt来算,location softmax输出概率分布如下:在这里插入图片描述
    对于MNT等,可以直接使用源词上的概率分布来预测要指向的单词的位置,否则可以直接用一个指针网络来预测位置。
  • Shortlist Softmax wt:词典V中的词用wt来预测
  • Switching network dt:一个MLP用sigmoid 输出方程来输出是用lt还是wt。

pointer softmax的输出是两个向量的结合
在这里插入图片描述
测试时,计算wt和lt,然后选择概率高的那一个。

5.6 实验结果和总结

就是NMT的softmax改成了一个可选择的softmax,可以更好的解决unseen wordrare word问题。
实验内容可以参考本篇翻译:https://zhuanlan.zhihu.com/p/36368316

参考:
https://blog.csdn.net/appleml/article/details/76988385

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值