Dynamic Meta-Embeddings for Improved Sentence Representations【论文笔记】

一、摘要

  在很多NLP任务上的首要步骤就是选择使用哪种预训练词向量,我们认为这一步骤留给神经网络自己选择比较好。作者提出了dynamic meta-embeddings,其实就是对embedding做了attention,在各种任务上的相同模型上取得了state-of-the-art的效果。

二、介绍

  毫不夸张地说词向量是NLP的一种革命性的突破。有大量文献研究哪种词向量对哪些任务最有用。首要步骤就是选择使用哪种词向量,人们经常使用别人预训练好的词向量。虽然这通常是很自然的事情,但是词向量是否对下游任务有用往往难以预测,因为下游任务可能与词级别基准无关。一种方法就是尝试结合各种词向量的优点。 最近的研究称为meta-embeddings,融合各种词向量,效果不错。
  **Why is this a good idea?**首先,它是embedding-agnostic,这意味着NLP流程化的一个主要超参数已经过时了。其次,它在各种任务上提升了效果。最后,或许也是最重要的,它使我们能克服当前系统的一些缺陷。

  • Coverage: NLP系统的一个主要问题就是如何处理OOV词,我们的方法运行系统联合各种词向量,从而增加词汇覆盖率。
  • Multi-domain: 标准的词向量一般在单个领域中训练,比如Wikipedia或newswire。我们的方法可以联合不同领域的词向量, 考虑到上下文信息。
  • Multi-modality: 事实证明,多模态信息在许多任务中都很有用,然而,多模态融合的问题仍然是一个悬而未决的问题。我们的方法为组合来自不同模态的信息提供了直接的解决方案。
  • Evaluation: 之前如何评估词向量性能通常是不确定的,我们的方法允许网络设置不同词向量的权重,为词向量提供直接的,任务特定的评估方法。
  • Interpretability and Linguistic Analysis: 不同的词向量在不同的任务上表现好。这是众所周知的,但是为什么会这样呢?我们的方法揭示了哪些词向量是更适合于哪些上下文,用于不同的任务,并允许我们推测为什么会这样。
      接下来作者介绍了什么是dynamic meta-embeddings,这比简单的拼接各种词向量的效果要好得多。在各种任务上进行评估:自然语言推理,情感分析,图像标题检索。每个任务上都实现了state-of-the-art的效果。

三、相关工作

  有大牛在情感分类任务上尝试过结合无监督和有监督的词向量;结合词级别和字级别的词向量。最近关于meta-embeddings的研究有了新的进展。这可用于上下文、句子表示。如何结合多种词向量与多模型和多视角学习有关。比如,结合CNN的视觉特征和词向量已经实验过;不同模型的词向量也通过拼接结合在一起 r=[αu,(1α)v]r=[\alpha u,(1-\alpha)v]r=[αu,(1−α)v]。本篇文章,作者动态的学习权重来结合各种表示。
  已经探索了不同词向量作为初始化的有用性,也实验过不同结构和参数。作者的工作可以看做是attention机制在词向量中的应用,最近的句子级交互的self-attention和inner-attention,attention机制代替了原来对齐句子的方式。这里,作者对每种词向量学习attention权重,然后用于句子表示中。

四、dynamic meta-embeddings

  大多数NLP系统使用一个词向量:word2vec、GloVe、Fasttext,作者使用了多种词向量,根据上下文为每种词向量训练得相应的权重,然后网络根据权重偏好哪种词向量,其实就是embedding attention。
  一个句子s:{tj}j=1s\{t_j\}^s_{j=1}{tj​}j=1s​,有nnn中词向量,那么序列表示为:{wi,j}j=1sRdi(i=1,2,...,n)\{w_{i,j}\}^s_{j=1}\in R^{d_i}(i=1,2,...,n){wi,j​}j=1s​∈Rdi​(i=1,2,...,n)

  • Naive baseline 将简单的拼接各种词向量作为baseline。拼接各种词向量是一种合理的策略,因为它提供给句子编码器全部的词向量信息.然而连接各种词向量作为RNN的输入有一个缺点,随着拼接越来越多的词向量,网络会变得低效。
    wjCAT=[w1,j,w2,j,...,wn,j]w^{CAT}_j=[w_{1,j},w_{2,j},...,w_{n,j}]wjCAT​=[w1,j​,w2,j​,...,wn,j​]
  • DME 对于dynamic meta-embeddings,我们首先通过线性映射将词向量投影到dd^'d'的向量空间中:wi,j=Piwi,j+bi (i=1,2,...,n)w^'_{i,j}=P_iw_{i,j}+b_i\ (i=1,2,...,n)wi,j'​=Pi​wi,j​+bi​ (i=1,2,...,n),其中PiRd×di,biRdP_i\in R^{d^'\times d_i},b_i\in R^{d^'}Pi​∈Rd'×di​,bi​∈Rd',然后对映射后的词向量加权求和:
    wjDME=i=1nαi,jwi,jw^{DME}_j=\sum_{i=1}^n\alpha_{i,j}w^'_{i,j}wjDME​=i=1∑n​αi,j​wi,j'​其中αi,j=g({wi,j}j=1s)\alpha_{i,j}=g(\{w^'_{i,j}\}^s_{j=1})αi,j​=g({wi,j'​}j=1s​)是根据self-attention得到的权重:
    αi,j=g(wi,j)=ϕ(a)×wi,j+b\alpha_{i,j}=g(w^'_{i,j})=\phi(a)\times w^'_{i,j}+bαi,j​=g(wi,j'​)=ϕ(a)×wi,j'​+b其中aRd,bRa\in R^{d'},b\in Ra∈Rd',b∈R是模型参数,ϕ\phiϕ是softmax函数(或tanh、sigmoid),作者也尝试了无权重的方法,简单的求和。
  • CDME 我们也可以使得self-attention是上下文依赖的:
    αi,j=g({wi,j}j=1s)=ϕ(a)×hj+b\alpha_{i,j}=g(\{w^'_{i,j}\}^s_{j=1})=\phi(a)\times h_j+bαi,j​=g({wi,j'​}j=1s​)=ϕ(a)×hj​+b其中hjR2mh_j\in R^{2m}hj​∈R2m是以{wi,j}j=1s\{w^'_{i,j}\}^s_{j=1}{wi,j'​}j=1s​为输入的双向LSTM的第j的隐藏层状态,aR2mbRa\in R^{2m}和b\in Ra∈R2m和b∈R。这里设置m=2比较高效。
  • Sentence encoder 使用双向LSTM和Max-Pooling得到最终表示。

五、总结

  实验过程不再详细介绍。本篇论文的亮点就是attention在embedding的应用,结合多种embedding的优点,之前比赛的时候也融合过多种embedding:拼接、求和,这种新思路可以在以后的比赛中尝试一波。

上一篇:Diverse Beam Search for Improved Description of Complex Scenes


下一篇:mysql如何保证原子性,一致性,持久性