NMT Tutorial 3扩展e第4部分. 文档的简单分布式表示

词的嵌入表示可以看作是深度学习时代自然语言处理的基石,但是自然语言处理的核心任务还是要处理更高级的语言结构,例如句子和文档。在获得了词的分布式表示以后,人们很自然地会思考如何对句子和文档也获得类似的表示结果。本文将介绍一些不涉及到更复杂网络结构(例如RNN)的句子/文档表示方法,其它更高级的方法将在介绍RNN之后引入

本文各节所引图片如未经说明均来自于该节所介绍方法的原始论文

基于词向量的简单池化

[shen2018]认为基于CNN或RNN的模型表示能力更强,但是计算量更大,而简单的基于词向量的模型(Simple Word-Embedding-based Model, SWEM)则正好相反。文章通过实验发现,对于某些任务,SWEM方法已经足够,甚至表现更好

假设文本序列(可以是句子或文档)为\(X = (w_1, w_2, \ldots, w_L)\),其中\(w_i\)为第\(i\)个位置上的单词。令\(\boldsymbol{v}_1, \boldsymbol{v}_2, \ldots, \boldsymbol{v}_L\)为对应的词向量,\(\boldsymbol{v}_l \in \mathbb{R}^K\),得到的句子/文档的定长向量表示记为\(\boldsymbol{z}\),则本文提出的SWEM方法包括

  • 平均池化SWEM-aver,即\(\boldsymbol{z} = \frac{1}{L}\sum_{i=1}^L \boldsymbol{v}_i\)。对于该方法,每个词的词向量都对最后的模型有贡献
  • 最大池化SWEM-max,即\(\boldsymbol{z} = {\rm Max{\text -}pooling}(\boldsymbol{v}_1, \boldsymbol{v}_2 ,\ldots, \boldsymbol{v}_L)\)。其中\(z_i = \max\{v_{1i}, v_{2i}, \ldots, v_{Li}\}\)。此时,对给定任务不重要或不相关的单词会在编码过程被忽略掉
  • 池化连接SWEM-concat,即将平均池化和最大池化得到的两个向量连接起来,组成一个新的向量
  • 分层池化SWEM-hier。前两种方法都没有考虑词序信息/空间信息,而词序信息对NLP问题是非常关键的。因此本文提出了一种分层池化方法。令\(v_{i:i+n-1}\)是从\(v_i\)开始的连续\(n\)个单词,则首先对该窗口的词向量做平均池化,然后对得到的所有窗口的平均向量做一个全局的最大池操作,就可以保留原始文本序列的空间信息了。此时每个窗口可以看做是一个N元语法中的N元组

文章在如下问题上做了若干实验,并与CNN和LSTM模型作比较

  • 文档分类,包括三类问题:主题分类、情感分析和知识(本体)分类。结果表明,在预测文档主题时,SWEM方法效果优异,基于词向量连接的方法甚至超过了一个有29层的CNN模型。对知识分类也是如此。此外,更值得注意的是,SWEM的参数数量是LSTM模型的三十分之一,是CNN模型的九分之一;速度是CNN模型的3倍,是LSTM模型的10倍。但是在做情感分析时,SWEM的效果比较差,原因推测是因为情感分析需要捕捉词序信息 文章注意到SWEM-max模型会得到比较稀疏的词向量,即该模型可能只依赖于若干个关键字。将得到的词向量按各个维度选出该维度值最大的五个词,可以大致看出每个维度能对应上一个主题,这也印证了作者的猜测
  • 文本序列建模,包括三类问题:自然语言推理、答句选择和复述判别。除了问答任务,SWEM方法都能达到与SOTA(State-of-the-art)媲美的效果,而且SWEM-max的表现尤其出色。这从侧面说明词序信息在预测句子间关系时起的作用可能更小 为了验证这一猜测,文章将训练集中每句的词序打乱,来移除训练集中的词序特征。实验结果表明,用打乱词序的数据集训练的LSTM在主题抽取和文字蕴含任务上效果变化不大,仅在情感分析上有明显下跌。这进一步证明对情感分析来说词序是非常重要的。另外,使用此方法得到的LSTM效果与SWEM类似,这说明LSTM和SWEM的主要区别就是前者能把握词序信息。作者在情感分析使用的Yelp数据集上训练了SWEM-hier模型,得到了与LSTM和深层CNN类似的效果,也说明这种方法可以捕捉词序信息
  • 短句处理,包括三类问题:情感分类、主题分类和问题分类。SWEM在情感分类上效果明显不好,但是在其它两个问题上还是能和LSTM或CNN一战。此外,SWEM在序列标注任务上效果也差一些。这意味着SWEM从短句抽取信息的能力有限,可能是因为对于短句词序更重要。同时,由于在小数据集上更容易过拟合,因此如何使用一种合适的正则化手段也是值得关注的问题

此外,文章在一些中文语料上也做了测试,发现SWEM-hier效果拔群。这意味着中文的词序比英文更重要

Doc2vec

在提出word2vec以后,Mikolov团队在次年(2014年)使用类似的方法提出了将文档/句子向量化表示的方法doc2vec [le2014],并将该方法得到的文档向量称为“段向量”(paragraph vector,尽管实际上这个“段”可以是一个句子,若干个句子甚至一整篇文章)。训练段向量需要一个随机初始化的文档矩阵\(\boldsymbol{D} \in \mathbb{R}^{N \times p}\),其中\(N\)是经过去重的文档数,\(p\)是段向量维度;以及一个随机初始化的单词矩阵\(\boldsymbol{W} \in \mathbb{R}^{M \times q}\),其中\(M\)是经过去重的单词数,\(q\)是词向量维度。具体的训练方法有两种:

  • 分布式内存的段向量(paragraph vector with distributed memory, PV-DM)先设置一个窗口\(k\),然后对每个窗口,聚合各文档对应的向量\(\boldsymbol{d}\)和窗口内前\(k-1\)个单词的词向量\(\boldsymbol{w}_1, \ldots, \boldsymbol{w}_{k-1}\),预测接下来出现的单词\(w_k\)。具体的聚合方法可以随意选择,常见的是求均值或者将其直接连接。反向传播会更新\(\boldsymbol{d}\)\(\boldsymbol{w}_1, \ldots, \boldsymbol{w}_{k-1}\)。不同的文档共享相同的词向量,但是不同的文档对应的文档向量也不同 例如,对于两个文档(这里是句子)“I have a pen”和“I have an apple”,两者各自有一个独特的标识符(假设分别为58和76)。对于具体单词,两句中的I、have标识符都一样。假设ID化以后为:文档58包含单词4 10 5 96,文档76包含单词4 10 101 80。假设窗口为3,那么模型的预测任务就是 \[ \begin{align*} d_{58}, w_4, w_{10} &\rightarrow w_5 \\ d_{58}, w_{10}, w_5 &\rightarrow w_{96} \\ d_{76}, w_4, w_{10} &\rightarrow w_{101} \\ d_{76}, w_{10}, w_{101} &\rightarrow w_{80} \end{align*} \] 具体实现时,可能不会对每个文档的每个窗口都设置成一条训练数据

  • 分布式词袋的段向量(paragraph vector with distributed bag of words, PV-DBOW)也会设置一个窗口\(k\),而训练任务是直接使用段向量来预测窗口中的词,即此时词向量不参与输入。类似地,具体实现时,可能不会对窗口中的每个词都设置成一条训练数据

获取段向量以后,常见的应用是将其用到下游任务,作为一个特征使用。但有时模型也需要做一些推断操作,例如对一个新的,未见过的文档,判断其与训练集中哪个句子最相似。此时要获得新文档的向量表示也是使用反向传播,学习出该文档的向量。具体做法是先随机初始化一个文档向量,然后用PV-DM或PV-DBOW的方法训练,不过此时词向量矩阵和隐藏层权重都保持不变(因此训练时单词词向量也不变)

文章同时观察到了以下现象:

  • PV-DM的表现始终比PV-DBOW要好,将两者组合则更好
  • PV-DM训练时将向量连接起来更好,比对向量求和要好
  • 窗口大小设为5-12为佳

参考文献

[lai2016] Lai, S., Liu, K., He, S., & Zhao, J. (2016). How to generate a good word embedding. IEEE Intelligent Systems, 31(6), 5-14.

[shen2018] Shen, D., Wang, G., et al. (2018). Baseline Needs More Love: On Simple Word-Embedding-Based Models and Associated Pooling Mechanisms. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), ACL 2018 (Vol. 1, pp. 440-450).

[le2014] Le, Q., & Mikolov, T. (2014, January). Distributed representations of sentences and documents. In International conference on machine learning, ICML 2014 (pp. 1188-1196).

[kusner2015] Kusner, M., Sun, Y., Kolkin, N., & Weinberger, K. (2015, June). From word embeddings to document distances. In International Conference on Machine Learning, ICML 2015 (pp. 957-966).

坚持原创技术分享,您的支持将鼓励我继续创作!