上下文嵌入(Bert词向量): 什么时候值得用?

ACL 2018

预训练词向量 (上下文嵌入Bert,上下文无关嵌入Glove, 随机)详细分析文章

1 背景



图1 Bert

优点 效果显著
缺点 成本昂贵 (Memory,Time,  Money) (GPT-3,1700亿的参数量)
困惑 线上环境,资源受限(内存 CPU GPU) bert不一定是最佳 选择
用word2vec, glove等词向量有时候也能取得近似效果
但什么时候可以近似,需要实验说明,于是作者设计了实验

2 三种词向量



图2 三种词向量

类型 说明 实验
上下文词嵌入 BERT XLNet 作者实验中选BERT 768维
上下文词无关嵌入 Glove Word2Vec FastText 作者实验中选Glove 300维
随机嵌入 n*d矩阵 (n是词汇量, d是嵌入维度) 作者实验中选循环随机嵌入 800维, 空间复杂度O(nd) => O(n)

3 实验和结论

任务 模型
命名实体识别 (NER) BiLSTM
情感分析 (sentiment analysis) TextCNN

3.1 影响因素一:训练数据规模



图3 影响因素一:训练数据规模 01



图4 影响因素一:训练数据规模 02

在许多任务中,供充足的数据,GloVe这些词向量可匹配BERT

3.2 影响因素二:语言的特性

3.2.1 Complexity of setence structure

NER: 实体占据几个token (George Washington)



图5 NER中的句子复杂度

Sentiment analysis:句子依存分析中依赖标记对之间的平均距离



图6 Sentiment analysis中的句子复杂度

3.2.2 Ambiguity in word usage

NER: 实体有几个标签(George Washington可以作为人名、地名、组织名)



图7 NER中的句子复杂度

Sentiment analysis:

\begin{array}{l}

H\left( {\frac{1}{{\left| S \right|}}\sum\limits_{w \in S} {p\left( { + 1\left| w \right.} \right)} } \right) \

{\rm{where }}H\left( p \right) = - p{\log _2}\left( p \right) - \left( {1 - p} \right){\log _2}\left( {1 - p} \right) \

\end{array}



图8 Sentiment analysis中的句子复杂度

3.2.3 Prevalence of unseen words

NER: token出现次数得倒数



图9 NER中的句子复杂度

Sentiment analysis:

给定一个句子,句子中未在训练集中出现token占比



图10 Sentiment analysis中的句子复杂度



图11 Bert和随机向量对比



图12 Bert和Glove对比

文本结构复杂度高和单词歧义性方面: BERT更好

未登录词方面: GloVe 更好

总结

大量训练数据和简单语言的任务中,考虑算力和设备等,GloVe 代表的 Non-Contextual embeddings 是个不错的选择

对于文本复杂度高和单词语义歧义比较大的任务,BERT代表的 Contextual embeddings 有明显的优势。

未登录词方面: GloVe 更好

ACL2020 Contextual Embeddings When Are They Worth It 精读的更多相关文章

  1. Attention-over-Attention Neural Networks for Reading Comprehension论文总结

    Attention-over-Attention Neural Networks for Reading Comprehension 论文地址:https://arxiv.org/pdf/1607.0 ...

  2. bert 硬件要求

    https://github.com/google-research/bert BERT ***** New May 31st, 2019: Whole Word Masking Models *** ...

  3. 论文翻译——Deep contextualized word representations

    Abstract We introduce a new type of deep contextualized word representation that models both (1) com ...

  4. 关于情感分类(Sentiment Classification)的文献整理

    最近对NLP中情感分类子方向的研究有些兴趣,在此整理下个人阅读的笔记(持续更新中): 1. Thumbs up? Sentiment classification using machine lear ...

  5. 论文阅读笔记:《Contextual String Embeddings for Sequence Labeling》

    文章引起我关注的主要原因是在CoNLL03 NER的F1值超过BERT达到了93.09左右,名副其实的state-of-art.考虑到BERT训练的数据量和参数量都极大,而该文方法只用一个GPU训了一 ...

  6. Word Embeddings: Encoding Lexical Semantics

    Word Embeddings: Encoding Lexical Semantics Getting Dense Word Embeddings Word Embeddings in Pytorch ...

  7. Word Embeddings: Encoding Lexical Semantics(译文)

    词向量:编码词汇级别的信息 url:http://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html?highlight= ...

  8. Android Contextual Menus之二:contextual action mode

    Android Contextual Menus之二:contextual action mode 接上文:Android Contextual Menus之一:floating context me ...

  9. Android Contextual Menus之一:floating context menu

    Android Contextual Menus之一:floating context menu 上下文菜单 上下文相关的菜单(contextual menu)用来提供影响UI中特定item或者con ...

随机推荐

  1. windows下的包管理器scoop

    scoop(传送门) 安装 scoop是一个类似于linux下apt之类包管理器 安装scoop(Powershell 3+  and .NET Framework 4.5+) iex (new-ob ...

  2. java 面向对象(十七):单元测试方法

    * Java中的JUnit单元测试 * * 步骤: * 1.中当前工程 - 右键择:build path - add libraries - JUnit 4 - 下一步 * 2.创建Java类,进行单 ...

  3. 数据可视化之DAX篇(二十一)连接表的几个DAX函数,一次全掌握

    https://zhuanlan.zhihu.com/p/67015995 编写DAX代码进行业务分析时,经常会用到表与表之间的连接计算,比如在之前的产品关联分析一文中(如何用Power BI分析产品 ...

  4. vue中使用elmentUI的Upload组件提交文件和后台接收

    1.参考此博客,希望有以下知识储备 vue的路由,跨域请求,springboot2.X,html,已经阅读elementUI官网中关于upload组件的详细介绍. 2.废话不多说,直接讲解细节. 前台 ...

  5. bzoj3367[Usaco2004 Feb]The Big Game 球赛*

    bzoj3367[Usaco2004 Feb]The Big Game 球赛 题意: n只奶牛,每只支持两个球队中的一个,它们依次上车,上到一定程度可以开走这辆车并换下一辆继续上.要求一辆车上支持不同 ...

  6. 题解 洛谷 P4695 【[PA2017]Banany】

    考虑用动态点分治来解决像本题这样带修的树上路径问题. 首先对原树进行点分治,建出点分树,在点分树每个节点上用动态开点线段树来维护以该节点为起点,到其点分树子树中每个节点的利润. 查询时只需在点分树上当 ...

  7. BUUCTF-web ikun(Python 反序列化)

    正如本题所说,脑洞有点大.考点还很多,不过最核心的还是python的pickle反序列化漏洞 题目中暗示了要6级号,找了很多页都没看到,于是写了脚本 在第180页有6级号,但是价格出奇的高,明显买不起 ...

  8. 【NeurlPS2019】Positional Normalization 位置归一化

    作者提出,当前的BatchNorm, GroupNorm, InstanceNorm在空间层面归一化信息,同时丢弃了统计值.作者认为这些统计信息中包含重要的信息,如果有效利用,可以提高GAN和分类网络 ...

  9. eclipse IDE usage of my own and tutorials link list

    设置 字符集 Eclipse 修改字符集 默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设 ...

  10. IO—》递归

    递归的概述 递归,指在当前方法内调用自己的这种现象 public void method(){ System.out.println(“递归的演示”); //在当前方法内调用自己 method(); ...