原文链接:

论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质? | 韦阳的博客

论文地址:

What you can cram into a single $&!#* vector: Probing sentence embeddings for linguistic properties

介绍

本文主要探究了不同encoder在不同任务上训练得到的句子向量表示,是否蕴含了各种语言性质。

本文主要有三个贡献点:

  • 分析了三种类型的encoder,并在7个任务上预训练句向量。
  • 提出了10种探测任务。
  • 每个探测任务探究一种语言性质。

探测任务

为了探测这些性质,作者提出了10种探测任务,并分成了三个类别,分别用来探测句子的表面信息、句法信息和语义信息。

这10种探测任务有一些共同点:

  • 数据集都是作者手工设计的,用来做分类任务。
  • 数据集基于Toronto Book Corpus,句子长度只挑选了5到28的。
  • 训练集大小100k,验证集和测试集都是10k。
  • 数据集里的偏差都被人工去除了(例如对某个类别预测影响很大的单词)。

探测任务全部采用MLP进行分类。

表面信息

第1个任务是预测句子长度(SentLen)。这个任务将句子长度划分成了6个区间,预测长度落在哪个区间里,所以最后是一个6分类任务。 这个任务用来探索句向量能否保留句子长度的信息。

第2个任务是预测一个句子里含有哪个关键词(WC)。 这个任务挑选出了1000个频率比较高的单词,预测一个句子中含有哪个单词。 数据保证一个句子中不会同时出现两个关键词。 这个任务用来探索句向量能否保留单词的信息。

句法信息

第3个任务是预测句子对应句法树第二层的label(TopConst)。 这个任务将句法树第二层(也就是根节点S的子结点)所有label拼接成一个label(比如ADVP_NP_VP), 然后挑选出频率最高的19种label,其他的都归为第20个label。 这个任务用来探索句向量能否抽取出句子的句法结构信息。

第4个任务是预测句子词序是否正确(BShift)。 这个任务随机调换句子中任意两个相邻单词,然后做2分类,预测是否调换过顺序。 这个任务用来探索句向量对词序是否敏感。

第5个任务是预测句子对应句法树的深度(TreeDepth)。 在实际数据集中,句法树深度都在5到12之间,所以这是一个8分类任务。

语义信息

第6个任务是预测句子的时态(Tense)。

第7个任务是预测句子主语单复数(SubjNum)。

第8个任务是预测句子宾语单复数(ObjNum)。

第9个任务是预测句子中名词或动词是否被替换过(SOMO)。 这个任务随机将句子中名词或者动词替换为其他名词或动词,然后2分类预测是否做过替换。 替换保证换过之后单词前后的bigram出现频次还是相似的。

第10个任务是预测一个带有从句的句子前后关系是否正确(CoordInv)。 比如“今天下雨了,因为我没出门。”这句话前后转折关系就反过来了。

实验

10种探测任务上的表现如下:

vote结果是随机的。 然后是人类分析结果,句法和语义信息也不能保证是100%正确。 Length是只用长度作为输入,可以看出只有SentLen预测正确了,其他都等于随机猜。 朴素贝叶斯方法对词信息比较敏感,WC任务效果很好。 BoV方法因为不包含词序信息,所以BShift任务很差,等于随机猜。

再看几种不同的编码器。 首先是用LSTM最后一个时刻隐层输出作为句向量。然后是每个维度用不同时刻的最大值作为句向量。最后是门卷积网络编码器。 采用的预训练任务有随机初始化,自编码器,机器翻译(三种语言),Seq2Tree,SkipThought(预测下一个句子)和NLI。 可以看出Seq2Tree训练出来的句向量在对句法敏感的几种性质上都取得了最好的结果。 比较两个LSTM编码器,可以发现采用max的向量表示效果更好。

上面这个图显示了不同的下游任务和10种语言性质之间的相关度,蓝色表示相关度高,红色表示低。 可以发现几乎所有的任务对于句子长度信息都不是很敏感,或者句子长度并不能有效地提升任务的性能。 再如SST2任务,情感分类任务的话对于单复数和句法结构信息可能也不是很敏感。

结论

这篇论文主要就是提出了10种探测任务,用来探索模型的10种性质。 但是这篇论文里的方法其实还是有点问题的,就如上一篇control task所讲的那样,probe task的准确率并不一定能反应语言性质学习的好坏。 但是无妨,这些探测任务还是可以用在我们编码器或者预训练语言模型的分析中的。

论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?相关推荐

  1. 如何无监督地获得一个句子的向量表示?

    ©PaperWeekly 原创 · 作者 | 张成蹊 单位 | FreeWheel机器学习工程师 研究方向 | 自然语言处理 或许上过 NLP 或大数据课程的同学会想到课程小作业的王者:TF-IDF. ...

  2. Skeleton-Based Action Recognition with Spatial Reasoning and Temporal Stack Learning 论文赏析

    Skeleton-Based Action Recognition with Spatial Reasoning and Temporal Stack Learning 论文赏析 前言 Introdu ...

  3. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...

    DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别! 注:传统DDos检测直接基于IP数据发送流量来识别 ...

  4. DMC-Net: Generating Discriminative Motion Cues for Fast Compressed Video Action Recognition 论文赏析

    DMC-Net: Generating Discriminative Motion Cues for Fast Compressed Video Action Recognition 论文赏析 前言 ...

  5. java句子中找单词_java程序找到一个句子中每个单词的字母数

    我想找到一个句子中每个单词的字母数.我已经尝试了几次使用几个代码,但从来没有得到它.我总是显示错误StringIndexOutOfBounds异常.我的一个代码如下:java程序找到一个句子中每个单词 ...

  6. gensim提取一个句子的关键词_聊一聊 NLPer 如何做关键词抽取

    微信公众号:NLP从入门到放弃​ 有兴趣的去github看更多NLP相关知识总结: https://github.com/DA-southampton/NLP_ability​github.com 关 ...

  7. 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。

    编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数. #include<iostream> #include<cstring> using namespace s ...

  8. 吴恩达亲述:如何高效阅读论文,开启一个新的领域!

    AI 圈的朋友应该都知道吴恩达的大名,为了防止一些萌新还不知道,本菌这里先做一个简要的介绍. ​ 吴恩达(英文名:Andrew Ng),是斯坦福大学计算机科学系和电子工程系教授,人工智能实验室主任,人 ...

  9. ## 论文学习—用一个可接受的的剪枝策略来加速动态时间规整聚类的算法

    论文学习-用一个可接受的的剪枝策略来加速动态时间规整聚类的算法 "Accelerating Dynamic Time Warping Clustering with a Novel Admi ...

  10. 【NLP】动手实现一个句子生成器

    本文主要介绍如何通过预先设定好的语法规则以及单词,通过Python来自动生成一些句子. 文章目录 解析语法 生成句子 小结 解析语法 在生成句子之前,我们需要先告诉机器生成句子的语法. 因此,我们先定 ...

最新文章

  1. php页面刷新$_session会变化,每次刷新页面都会生产新的session_id
  2. cocos2d笔记——解析HelloWorldScene
  3. 【渣硕的数学笔记】数值分析
  4. 怎么给网站加js_网站站内SEO优化实操细节详解,权重上升嗖嗖的
  5. 一场开发与视觉的对话引发的思考
  6. Training的第十六天
  7. 软件工程——结对编程第一次作业
  8. AngularJS快速入门指南03:表达式
  9. fragment和Activity同时操作UI引起的延迟、卡顿
  10. 2个程序员街头卖唱,挽救了自己的秃头
  11. SecureCRT安装
  12. SpringBoot精通系列-开发案例之配置Druid数据库连接池
  13. 9. Browser 对象 - Location 对象
  14. 短文本相似度比较:simHash简介以及java实现
  15. word 2016编辑区鼠标光标消失/变白解决方案
  16. EDI集成对业务的重要性
  17. Android程序员二本出身、逆袭网易、一路孤独,flutter插件引用第三方库
  18. 让View具有弹性效果的动画——SpringAnimation
  19. 315晚会实在涨知识
  20. 【每周一个小技能】WSA 安装

热门文章

  1. SEO思维的优化源于生活
  2. iOS Nib文件一览
  3. 纯JS日历控件自动输入日期到TextBox、文本框当中
  4. android_dialog
  5. RT-Thread 4.0 + STM32F407 学习笔记1
  6. 第六章 实验报告 (函数与宏定义)
  7. 反转字符串中的元音字符
  8. chromium中的性能优化工具syzyProf
  9. 【运维技术】数据库主从同步搭建
  10. js中filter函数