未登录词处理优秀论文——Pointing the Unknown Words

论文:
《Pointing the Unknown Words》
作者:
Caglar Gulcehre、Sungjin Ahn、Ramesh Nallapati、Bowen Zhou、Yoshua Bengio


这篇论文主要是解决低频词和未出现(在测试集中)词的问题——统称“未登录词问题”。
采用了注意力模型。本文的思想是在遇到未登录词时,不要简单的将其记作:UNK,而是将未登录词分作两种情况:

  • 第一种情况是可以在预设的词表中找到相似的词
  • 第二种情况是可以使用原语句中的某个词进行替代(如下图)

这里写图片描述

所以根据这样的假设,本文使用了两个softmax层:

  • 一个用于预测原输入语句中某个词的位置,对应于用原语句中的某个词替换,叫做location softmax
  • 另一个用于预测在预定词表中的单词,叫做shortlist softmax

文中提到一般对于未登录词的处理分为三类:

  1. 提高softmax的计算速度,使得模型能够拥有更大的词表。 相关方法:层次softmax;重要性采样;噪声对比分析等。
    缺点:这种方式仅仅扩充了词表,是有助于解决未出现的词的问题,但是它依然存在低频词问题。
  2. 充分利用上下文信息。这篇论文使用的也是这个方法。大概的思路就是在输入的原句中找到对应的词的位置并将这个词直接复制到目标句子中。但是之前的论文(Luong et, al, 2015)并没有采用注意力机制,并且使用了固定的分类数目。
  3. 将输入单元从单词变为更小的粒度,比如字母或者字节。
    缺点:因为输入粒度的降低使得模型需要处理的长度大大提升,会提升训练难度。

论文使用的pointer softmax(PS)模型,具备两个关键的特点:

  1. 在每个时间节点上预测是否需要Pointing 机制;
  2. 可以根据任意长度的输入进行位置的确定,能够处理输入长度变化较大的场景。

在每个时间点,如果模型选择使用shortlist softmax,则模型将从预设的词库中选择出一个单词w。
如果模型希望从上下文中选择一个词,则模型会输出一个上下文的位置,并且将该位置的词作为需要的词。

所以,这样做的关键是:如何确定什么时候用shortlist sotfmax什么时候用 location softmax?!


为了解决策略的选择问题,论文提出了模型一部分——switching network。

这个网络是用多层感知器组成的,输入为上下文句子,和该时间点之前的隐藏层状态。该转换网路的输出为0/1,代表了location softmax / shortlist softmax。

值得注意的是,当我们需要的词既不在上下文中,也不在预设词库中的时候,模型会默认选择shortlist softmax,并且预测其中的UNK类。
PS的流程图如下:

这里写图片描述

论文的目标,用最大似然化的思想:

这里写图片描述

其中,因为这个单词w的来源有两种方式:(1)上下文;(2)预设词库。所以上式可以分解为:

这里写图片描述

然后用贝叶斯函数可以将其转换为:(此处省略了输入序列x,因为它在所有情况下都是等概率的。)

这里写图片描述

这里写图片描述

其中:

这里写图片描述

所以论文的目标就是在给定的N组(上下文与目标语句对)数据集,然后训练最大似然函数:

这里写图片描述

在模型的训练过程中,使用到了large-vocabulary trick (Jean et al., 2014) 这个方法是限制了解码器中的softmax的词表为2000, 并且这2000个词是动态变换的,找到每个输入batch的词,和目标词库中最常用的词,将其组合成2000个词。

后面做了几个实验,命名实体识别和翻译,此处略。


点击查看论文模型地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章