热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基线系统需要受到更多关注:基于词向量的简单模型

基线系统需要受到更多关注:基于词向量的简单模型最近阅读了《BaselineNeedsMoreLove:OnSimpleWord-Embedding-BasedModelsandAs

基线系统需要受到更多关注:基于词向量的简单模型

  最近阅读了《Baseline Needs More Love: On Simple Word-Embedding-Based Models and Associated Pooling Mechanisms这篇论文[1]该工作来自杜克大学,发表在ACL 2018上。论文详细比较了直接在词向量上进行池化的简单模型和主流神经网络模型(例如CNNRNN)在NLP多个任务上的效果。实验结果表明,在很多任务上简单的词向量模型和神经网络模型CNNLSTM)的效果相当,有些任务甚至简单模型更好。下面是我对这篇论文的阅读笔记。

1 引言

  在NLP领域,词向量(word embedding)已经受到了研究者们的广泛关注和应用。它通过大量的无标签数据将每个词表示成一个固定维度的向量。相比传统的独热(one-hot)表示,词向量具有低维紧密的特点,并能学习到丰富的语义和句法信息。目前代表性的词向量工作有word2vec [2]GloVe [3]。在NLP领域,使用词向量将一个变长文本表示成一个固定向量的常用方法有:1)以词向量为输入,使用一个复杂的神经网络(CNNRNN等)来进行文本表示学习;2)在词向量的基础上,直接简单的使用按元素求均值或者相加的简单方法来表示。对于复杂神经网络方法,模型复杂计算量大耗时。该论文通过大量实验发现,基于词向量的简单池化模型对于大多数的NLP问题,已经表现得足够好,有时甚至效果超过了复杂的神经网络模型。

2. 方法

  该文对比的主流神经网络模型为:LSTMCNN。对于LSTM特点在于使用门机制来学习长距离依赖信息,可以认为考虑了词序信息。对于CNN特点是利用滑动窗口卷积连续的词特征,然后通过池化操作学习到最显著的语义特征。

  对于简单的词向量模型(Simple word-embedding modelSWEM),作者提出了下面几种方法。

  • SWEM-aver:就是平均池化,对词向量的按元素求均值。这种方法相当于考虑了每个词的信息。
  • SWEM-max:最大池化,对词向量每一维取最大值。这种方法相当于考虑最显著特征信息,其他无关或者不重要的信息被忽略。
  • SWEM-concat:考虑到上面两种池化方法信息是互补的,这种变体是对上面两种池化方法得到的结果进行拼接。
  • SWEM-hier:上面的方法并没有考虑词序和空间信息,提出的层次池化先使用大小为n局部窗口进行平均池化,然后再使用全局最大池化。该方法其实类似我们常用的n-grams特征。

  接下来对比一下SWEM和神经网络模型结构。可以看到SWEM仅对词向量使用池化操作,并没有额外的参数,且可以高度并行化。

3. 实验结果与分析

  实验中,使用了300维的GloVe词向量,对于未登录词按照均匀分布进行初始化。最终的分类器使用了多层感知机MLP进行分类。在文档分类,文本序列匹配和句子分类三大任务,共17个数据集上进行了实验并进行了详细的分析。

3.1 文档分类

  实验中的文档分类任务能被分为三种类型:主题分类,情感分析和本体分类。实验结果如下:

  令人惊奇的是在主题分类任务上,SWEM模型获得了比LSTMCNN更好的结果,特别是SWEM-concat模型的效果甚至优于29层的Deep CNN在本体分类任务上也有类似的趋势。有趣的是对于情感分析任务,CNNLSTM效果要好于不考虑词序信息的SWEM模型。对于考虑了词序和空间信息的SWEM-hier取得了和CNN/LSTM相当的结果。这可能是情感分析任务需要词序信息。例如"not really good""really not good"的情感等级是不一样的。

    在大多数任务上SWEM-max的方法略差于SWEM-aver,但是它提供了互补的信息,所以SWEM-concat获得了更好的结果。更重要的是,SWEM-max具有很强的模型解释性。论文在Yahoo数据集上训练了SWEM-max模型(词向量随机初始化)。然后根据训练学习后的词向量中的每一维的值画了直方图,如下图1

可以看到相比与GloVeSWEM-max学习出来的词向量是十分稀疏的,这说明在预测文本时,模型只依靠一些关键词,这就增加了模型的解释性。论文在整个词汇表中根据词向量维度挑选出了一个维度中值最大的5个词展示在表3中。可以看到每个维度选出的词是同一个主题相关的。甚至模型可以学到没有标签信息的结构,例如表3中的"Chemistry",在数据集中是没有chemistry标签的,它属于science主题。

    在模型时间上,SWEM模型要比CNNLSTM都高效。

3.2 文本序列匹配

  在句子匹配问题的实验室中,主要包括自然语言推理,问答中答案句选择和复述识别任务。实验结果如下:

可以看到除了WikiQA数据集,其他数据集上,SWEM模型获得了比CNNLSTM更好的结果。这可能是因为在当匹配自然语言句子时,在大多数情况下,只需要使用简单模型对两个序列之间在单词级别上进行对比就足够了。从这方面也可以看出,词序信息对于句子匹配的作用比较小。此外简单模型比LSTMCNN更容易优化。

3.3 句子分类

  相比与前面的文档分类,句子分类任务平均只有20个词的长度。实验结果如下:

  在情感分类任务上,和前面文档分类的实验结果一样,SWEM效果差于LSTMCNN,在其他两个任务上,效果只是略差于NN模型。相比与前面的文档分类,在短句子分类上SWEM的效果要比长文档的分类效果要差。这也可能是由于短句中词序信息更重要。此外,论文还在附加材料中补充了对序列标注任务的实验,实验结果如下:

  可以看到对于词序敏感的序列标注任务,SWEM的效果明显要差于CNNRNN

3.4 词序信息的重要性

  从上面可以看到,SWEM模型的一个缺点在于忽略了词序信息,而CNNLSTM模型能够一定程度的学习词序信息。那么在上述的这些任务中,词序信息到底有多重要?为了探索这个问题,该文将训练数据集的词序打乱,并保持测试集的词序不变,就是为了去掉词序信息。然后使用了能够学习词序信息LSTM模型进行了实验,实验结果如下:

  令人惊奇地发现,YahooSNLI数据集(也就是主题分类和文本蕴涵任务)上,在乱序训练集上训练的LSTM取得了和原始词序相当的结果。这说明词序信息对这两个问题并没有明显的帮助。但是在情感分析任务上,乱序的LSTM结果还是有所下降,说明词序对于情感分析任务还是比较重要。

  在来看看SWEM-hier在情感分析上的效果,相比与SWEM其他模型,SWEM-hier相当于学习了n-gram特征,保留了一定的局部词序信息。在两个情感任务上效果也是由于其他SWEM模型,这也证明了SWEM-hier能够学习一定的词序信息。

3.5. 其他实验

  除了上述实验,该文还设置了一些实验在说明SWEM的性能。对于之前的使用非线性的MLP作为分类器,替换成了线性分类器进行了实验。在Yahoo(从73.53%73.18%)和Yelp P93.76%93.66%)数据集上SWEM的效果并未明显下降。这也说明了SWEM模型能够抽取鲁棒、有信息的句子表示。该文还在中文数据集上进行了实验,实验结果表明层次池化比最大和平均池化更适合中文文本分类,这样暗示了中文可能比英文对词序更加敏感

  在附加材料中,该文还用SWEM-concat模型在Yahoo数据集上对词向量维度(从3维到1000维)进行了实验,这里词向量使用随机初始化。

  可以看到高的维度一般效果会更好一些,因为能够表示更丰富的语义信息。但是,可以看到词向量在10维的时候已经可以达到和1000维相当的效果。其实这也和论文[4]的结果比较一致,在一些任务上小维度的词向量效果也已经足够好了。

  此外,论文还对训练集规模对模型效果影响进行了实验。在YahooSNLI数据集上分别取不同比例的训练集对模型进行训练测试,结果如下图:

  可以看到当标注训练集规模比较小时,简单的SWEM模型的效果更好,这可能也是CNNLSTM复杂模型在小规模训练数据上容易过拟合导致的。

4. 总结

  该论文展示了在词向量上仅使用池化操作的简单模型SWEM的性能,在多个NLP任务数据集上进行了实验,比较了SWEM和目前主流的NN模型(CNNLSTM)性能。实验发现,SWEM这样简单的基线系统在很多任务上取得了与NN相当的结果,实验中的一些总结如下:

  • 简单的池化操作对于长文档(上百个词)表示具有不错的表现,而循环和卷积操作对于短文本更有效。
  • 情感分析任务相比主题文本分类任务对词序特征更敏感,但是该文提出的一种简单的层次池化也能够学习一定的词序信息,和LSTM/CNN在情感分析任务上取得了相当的结果。
  • 对于句子匹配问题,简单的池化操作已经展现出了与LSTM/CNN相当甚至更好的性能。
  • 对于SWEM-max模型,可以通过对词向量维度的分析得到较好的模型解释。
  • 在一些任务上,词向量的维度有时在低维已经足够好。
  • 在标注训练集规模小的时候,简单的SWEM模型可能更加鲁棒、获得更好的表现。

  总的来说,我们在进行研究时,有时为了让模型学习到更为丰富的信息,会把模型设计得十分复杂,但是这篇论文通过实验告诉了我们,简单的基线系统也能够获得很不错的表现。当我们做具体任务时,应该根据具体需求来选择设计模型(模型效果,模型复杂度,模型运行时间等的权衡),简单有效的系统也应该受到关注。

 

参考文献:

[1] Shen, Dinghan, et al. "Baseline needs more love: On simple word-embedding-based models and associated pooling mechanisms." arXiv preprint arXiv:1805.09843 (2018).

[2] Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." Advances in neural information processing systems. 2013.

[3] Pennington, Jeffrey, Richard Socher, and Christopher Manning. "Glove: Global vectors for word representation." Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014.

[4] Lai, Siwei, et al. "How to generate a good word embedding." IEEE Intelligent Systems 31.6 (2016): 5-14.


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 都会|可能会_###haohaohao###图神经网络之神器——PyTorch Geometric 上手 & 实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了###haohaohao###图神经网络之神器——PyTorchGeometric上手&实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 推荐 :以数据驱动的方式讲故事
    直觉vs数据首先,你有思考过一个问题吗?当你的直觉与你所掌握的数据矛盾的时候,你是听从于直觉还是相信你所掌握的数据呢?201 ... [详细]
  • 点击上方,选择星标或置顶,每天给你送干货!阅读大概需要4分钟跟随小博主,每天进步一丢丢来自:NLP太难了公众号 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  •   《WindowsAzurePlatform系列文章目录》  本文将介绍如何在AzureSQLDatabase创建只读用户。  请先按照笔者之前的文章:AzureSQLDatabas ... [详细]
  • UMTS基础知识汇总
    协议框架23G接口UMTS实体EntityNameDescriptionAuCAuthenticationCenterCBCCellBroadcastCenterC-RNCCon ... [详细]
  • CodeBERT理解
    1.动机大型的预训练模型,比如ELMo、GPT、Bert等提高了NLP任务的最新技术。这些预训练模型在NLP的成功驱动了多模态预训练模型,比如ViBE ... [详细]
author-avatar
褐色
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有