返回介绍

数学基础

统计学习

深度学习

工具

Scala

五、Simple-But-Tough-To-Beat Baseline For Sentence Embedding [2017]

发布于 2023-07-17 23:38:25 字数 61729 浏览 0 评论 0 收藏 0

  1. word embedding 是自然语言处理和信息检索的基本构建模块。最近的工作试图计算能够捕获单词序列(短语、句子和段落)语义的 embedding ,其方法从简单的 word vectors 的组合,到复杂的架构(如 CNN, RNN)。最近,《Towards universal paraphrastic sentence embeddings》通过从标准的 word embedding 开始,并根据来自 Paraphrase pairs dataset: PPDB 的监督对其进行修改,通过训练一个简单的 word averaging model 来构建 sentence embedding ,从而学习了通用的、paraphrasticsentence embedding 。这种简单的方法在文本相似性任务上比各种方法有更好的表现,可以作为文本分类任务的良好初始化。然而,来自 paraphrase dataset 的监督似乎很关键,因为他们报告说, initial word embedding 的简单地取均值的效果并不理想。

    论文 《A Simple but Tough-to-Beat Baseline for Sentence Embeddings》 给出了一种新的 sentence embedding 方法:只需计算句子中 word vectors 的加权平均,然后把加权平均向量在句子的 word vectors 的第一个奇异向量上的投影移除("common component removal" )。这里,单词w$ w $ 的权重为:a/(a+p(w))$ a/(a + p(w)) $ ,其中a$ a $ 为一个参数,p(w)$ p(w) $ 为词频 word frequency 。这个权重被称作 smooth inverse frequency: SIF 。该方法在各种文本相似性任务上取得了明显优于 unweighted average 的性能,在其中大多数任务上甚至击败了《Towards universal paraphrastic sentence embeddings》中测试的一些复杂的监督方法,包括一些 RNNLSTM 模型。该方法非常适用于 domain adaptation setting ,即把从不同语料库上训练好的 word vector 来计算不同任务的 sentence embedding 。它对加权方案也相当鲁棒:

    • 使用从不同语料库中估计的词频不会损害性能。

    • 参数a$ a $ 可以在较大范围内变化并且实现接近最佳的结果。

    这里的核心在于移除第一个奇异向量上的投影,因为这会改善 word embedding 的各向异性问题。

  2. 相关工作:略。(技术过于古老,不用花时间研究相关工作)。

5.1 模型

  1. 我们简单回顾一下 《A latent variable model approach to PMI-based word embeddings》 中的用于文本的 latent variable generative model 。该模型将语料库的生成视为一个动态过程,第t$ t $ 个单词在第t$ t $ 步产生。该过程由一个 discourse vectorctRd$ \mathbf{\vec c}_t\in \mathbb R^d $ 的随机游走来驱动。vocabulary 中的每个单词w$ w $ 也有一个d$ d $ 维的emebdding 向量vwRd$ \mathbf{\vec v}_w\in \mathbb R^d $ ,这些 embedding 向量就是模型的 latent variablediscourse vector 代表了 “正在谈论的东西”。discourse vectorct$ \mathbf{\vec c}_t $ 和 word embedding 向量vw$ \mathbf{\vec v}_w $ 之间的内积捕获了 discourse 和单词之间的相关性。在时刻t$ t $ ,观察到一个单词w$ w $ 的概率由 log-linear word production model 决定:

    (14)Pr[wemitted at timetct]exp(ctvw)

    discourse vectorct$ \mathbf{\vec c}_t $ 做缓慢的随机游走(意味着ct+1$ \mathbf{\vec c}_{t+1} $ 是通过增加一个小的随机位移向量从ct$ \mathbf{\vec c}_t $ 中得到),所以附近的单词是在 similar discourse 下产生的。在 《A latent variable model approach to PMI-based word embeddings》 中显示,在一些合理的假设下,这个模型产生的行为(即,在 word-word 共现概率方面)符合 word2vecGlove 等经验性工作。

    random walk model 可以被 relaxed,即允许ct$ \mathbf{\vec c}_t $ 中偶尔出现大的jump 。因为一个简单的计算表明,它们对单词的共现概率的影响可以忽略不计。

    实验报告表明,用这个模型计算出来的 word vectorGloveword2vec(CBOW) 计算得到的 word vector 相似。

  2. 我们改进的 RandomWalk 模型:显然,很容易将 sentence embedding 定义为:给定一个句子s$ \mathbf s $ ,对支配这个句子的 discourse vector 做一个 MAP 估计。我们注意到,我们假设 discourse vectorct$ \mathbf {\vec c}_t $ 在句子中的单词被 emitted 时不会有太大的变化,因此为了简单起见,我们可以用一个 discourse vectorcs$ \mathbf {\vec c}_s $ 代替句子s$ \mathbf s $ 中所有的 discourse vectorct$ \mathbf {\vec c}_t $ 。在 《A latent variable model approach to PMI-based word embeddings》 中,cs$ \mathbf {\vec c}_s $ 的 MAP 估计值是句子中所有单词的 embedding 的均值(最多可乘以标量)。

    在本文中,为了更 realistic 的建模,我们对模型做了如下改变。该模型有两种类型的 “平滑项”,它们是为了说明这样的事实:有些单词是脱离上下文出现的、以及有些高频词(例如 "the""and " 等)在任何 discourse 中都经常出现。

    • 首先,我们在对数线性模型中引入一个附加项αp(w)$ \alpha p(w) $ ,其中p(w)$ p(w) $ 是单词的unigram 概率(在整个语料库中),α$ \alpha $ 是一个标量。这样,即使 word vectorvw$ \mathbf{\vec v}_w $ 与cs$ \mathbf{\vec c}_s $ 的内积结果很小,该单词w$ w $ 也能出现。

    • 其次,我们引入了一个 common discourse vectorc0Rd$ \mathbf {\vec c}_0\in \mathbb R^d $ ,作为 most frequent discourse 的修正项,其中 most frequent discourse 通常与句法有关。

    具体而言,给定 discourse vectorcs$ \mathbf {\vec c}_s $ ,一个单词w$ w $ 在句子s$ \mathbf s $ 中被观察到的概率为:

    (15)Pr[wemitted in sentencescs]αp(w)+(1α)exp(c~svw)Zc~sc~s=βc0+(1β)cs,c0cs

    其中:α,β$ \alpha,\beta $ 都是标量的超参数;Zc~s=wVexp(c~svw)$ Z_{\tilde c_s} = \sum_{w\in \mathcal V} \exp\left(\tilde{\mathbf{\vec c}}_s\cdot \mathbf{\vec v}_w\right) $ 为归一化项。

    我们看到,该模型允许一个与 discoursecs$ \mathbf{\vec c}_s $ 无关的单词w$ w $ 被观察到,原因有二:来自αp(w)$ \alpha p(w) $ 的机会、如果w$ w $ 与 common discourse vectorc0$ \mathbf{\vec c}_0 $ 相关。

    上式的物理意义:单词的词频越大,则被观察到的概率越大(由αp(w)$ \alpha p(w) $ 项所驱动);单词与 discourse vector 越相关,则则被观察到的概率越大(由c~svw$ \tilde{\mathbf{\vec c}}_s\cdot \mathbf{\vec v}_w $ 项所驱动)。

    注意,由于c0$ \mathbf{\vec c}_0 $ 是全局共享的,因此这要求每一个cs$ \mathbf{\vec c}_s $ 的方向与c0$ \mathbf{\vec c}_0 $ 是正交的。

  3. 计算 sentence embeddingsentence embedding 被定义为cs$ \mathbf{\vec c}_s $ 的最大似然估计。( 在这个 case 中,MLEMAP 相同,因为先验分布是均匀的。) 我们借用 《A latent variable model approach to PMI-based word embeddings》 的关键建模假设,即单词vw$ \mathbf{\vec v}_w $ 的分布大致均匀,这意味着归一化项Zc$ Z_{c} $ 在各个方向大致相同。因此,假设Zc~s$ Z_{\tilde c_s} $ 在各个方向也大致相同。因此句子s$ \mathbf s $ 的生成概率为:

    (16)p[scs]=wsp(wcs)=ws[αp(w)+(1α)exp(c~svw)Z]

    令:

    (17)fw(c~s)=log[αp(w)++(1α)exp(c~svw)Z]

    根据泰勒展开公式:

    (18)fw(c~s)fw(0)+fw(0)c~s=constant+(1α)/(αZ)p(w)+(1α)/(αZ)×(c~svw)

    因此在单位球上,c~s$ \tilde{\mathbf{\vec c}}_s $ 的最大对数似然估计值(忽略归一化)为:

    (19)argmaxwsfw(c~s)wsap(w)+avw,a=1ααZ

    也就是说,MLE 近似于句子中单词的向量的加权平均。注意,对于词频较高的单词w$ w $ ,权重a/(p(w)+a)$ a/(p(w) + a) $ 较小,所以这自然会导致高频词的权重下降。

    在实际应用中,a$ a $ 是通过超参数调优来获得,而不是通过理论计算而得到。

    为了估计cs$ \mathbf{\vec c}_s $ ,我们通过计算一组句子的c~s$ \tilde{\mathbf{\vec c}}_s $ 的第一主成分 first principal component 来估计方向c0$ \mathbf{\vec c}_0 $ 。换句话说,final sentence embedding 是通过对c~s$ \tilde{\mathbf{\vec c}}_s $ 移除它在第一主成分上的投影而得到的。

  4. Sentence Embedding 算法:

    • 输入:word embedding{vw:wV}$ \left\{\mathbf{\vec v}_w:w\in \mathcal V\right\} $ ,句子集合S$ \mathcal S $ ,参数a$ a $ , 估计的词频{p(w):wV}$ \{p(w):w\in \mathcal V\} $ 。

    • 输出:sentence embedding{vs:sS}$ \left\{\mathbf{\vec v}_s: \mathbf s\in \mathcal S\right\} $ 。

    • 算法步骤:

      • 对于S$ \mathcal S $ 中的每个句子s$ \mathbf s $ ,计算:

        (20)vs1|s|wsaa+p(w)vw
      • S$ \mathcal S $ 中的每个句子s$ \mathbf s $ 的vs$ \mathbf{\vec v}_s $ 按列拼接,得到句子XRd×|S|$ \mathbf X\in \mathbb R^{d\times |\mathcal S|} $ 。令u$ \mathbf{\vec u} $ 为X$ \mathbf X $ 的 first singular vector (是一个单位向量)。

      • 对于S$ \mathcal S $ 中的每个句子s$ \mathbf s $ ,计算:

        (21)vsvs(uu)vs

        因为u$ \mathbf{\vec u} $ 是单位向量,因此vs$ \mathbf{\vec v}_s $ 在u$ \mathbf{\vec u} $ 上的投影为:(vsu)×u$ \left(\mathbf{\vec v}_s\cdot \mathbf{\vec u} \right) \times \mathbf{\vec u} $ 。它等价于(uu)vs$ \left(\mathbf{\vec u} \mathbf{\vec u}^\top \right)\mathbf{\vec v}_s $ 。

5.2 实验

略。(技术过于古老,不用花时间研究实验细节)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文