神经翻译笔记3扩展e第4部分. 文档的简单分布式表示

神经翻译笔记3扩展e第4部分. 文档的简单分布式表示

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

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

基于词向量的简单池化

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

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

  • 平均池化SWEM-aver,即 z = 1 L ∑ i = 1 L v i \boldsymbol{z} = \frac{1}{L}\sum_{i=1}^L \boldsymbol{v}_i z=L1i=1Lvi。对于该方法,每个词的词向量都对最后的模型有贡献
  • 最大池化SWEM-max,即 z = M a x - p o o l i n g ( v 1 , v 2 , … , v L ) \boldsymbol{z} = {\rm Max{\text -}pooling}(\boldsymbol{v}_1, \boldsymbol{v}_2 ,\ldots, \boldsymbol{v}_L) z=Max-pooling(v1,v2,,vL)。其中 z i = max ⁡ { v 1 i , v 2 i , … , v L i } z_i = \max\{v_{1i}, v_{2i}, \ldots, v_{Li}\} zi=max{v1i,v2i,,vLi}。此时,对给定任务不重要或不相关的单词会在编码过程被忽略掉
  • 池化连接SWEM-concat,即将平均池化和最大池化得到的两个向量连接起来,组成一个新的向量
  • 分层池化SWEM-hier。前两种方法都没有考虑词序信息/空间信息,而词序信息对NLP问题是非常关键的。因此本文提出了一种分层池化方法。令 v i : i + n − 1 v_{i:i+n-1} vi:i+n1是从 v i v_i vi开始的连续 n n 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,尽管实际上这个“段”可以是一个句子,若干个句子甚至一整篇文章)。训练段向量需要一个随机初始化的文档矩阵 D ∈ R N × p \boldsymbol{D} \in \mathbb{R}^{N \times p} DRN×p,其中 N N N是经过去重的文档数, p p p是段向量维度;以及一个随机初始化的单词矩阵 W ∈ R M × q \boldsymbol{W} \in \mathbb{R}^{M \times q} WRM×q,其中 M M M是经过去重的单词数, q q q是词向量维度。具体的训练方法有两种:

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

  • 分布式词袋的段向量(paragraph vector with distributed bag of words, PV-DBOW)也会设置一个窗口 k k 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).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值