ACL2020 Contextual Embeddings When Are They Worth It 精读
上下文嵌入(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 精读的更多相关文章
- Attention-over-Attention Neural Networks for Reading Comprehension论文总结
Attention-over-Attention Neural Networks for Reading Comprehension 论文地址:https://arxiv.org/pdf/1607.0 ...
- bert 硬件要求
https://github.com/google-research/bert BERT ***** New May 31st, 2019: Whole Word Masking Models *** ...
- 论文翻译——Deep contextualized word representations
Abstract We introduce a new type of deep contextualized word representation that models both (1) com ...
- 关于情感分类(Sentiment Classification)的文献整理
最近对NLP中情感分类子方向的研究有些兴趣,在此整理下个人阅读的笔记(持续更新中): 1. Thumbs up? Sentiment classification using machine lear ...
- 论文阅读笔记:《Contextual String Embeddings for Sequence Labeling》
文章引起我关注的主要原因是在CoNLL03 NER的F1值超过BERT达到了93.09左右,名副其实的state-of-art.考虑到BERT训练的数据量和参数量都极大,而该文方法只用一个GPU训了一 ...
- Word Embeddings: Encoding Lexical Semantics
Word Embeddings: Encoding Lexical Semantics Getting Dense Word Embeddings Word Embeddings in Pytorch ...
- Word Embeddings: Encoding Lexical Semantics(译文)
词向量:编码词汇级别的信息 url:http://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html?highlight= ...
- Android Contextual Menus之二:contextual action mode
Android Contextual Menus之二:contextual action mode 接上文:Android Contextual Menus之一:floating context me ...
- Android Contextual Menus之一:floating context menu
Android Contextual Menus之一:floating context menu 上下文菜单 上下文相关的菜单(contextual menu)用来提供影响UI中特定item或者con ...
随机推荐
- 手写一个React-Redux,玩转React的Context API
上一篇文章我们手写了一个Redux,但是单纯的Redux只是一个状态机,是没有UI呈现的,所以一般我们使用的时候都会配合一个UI库,比如在React中使用Redux就会用到React-Redux这个库 ...
- Quartz.Net系列(十一):System.Timers.Timer+WindowsService实现定时任务
1.创建WindowsService项目 2.配置项目 3.AddInstaller(添加安装程序) 4.修改ServiceName(服务名称).StartType(启动类型).Description ...
- python 读取指定文件夹中的指定文件类型的文件名
import numpy as np import os path = 'F:\\wenjian'#指定文件所在路径 filetype ='.csv'#指定文件类型 def get_filename( ...
- python数据处理(五)之数据清洗:研究、匹配与格式化
1 前言 保持数据格式一致以及可读,否则数据不可能正确合并 清洗数据的过程中记下清洗过程的每一步,方便数据回溯以及过程复用 2 数据清洗基础知识 2.1 找出需要清洗的数据 仔细观察文件,观察数据字段 ...
- python 装饰器(三):装饰器实例(一)
示例 7-15 定义了一个装饰器,它会在每次调用被装饰的函数时计时,然后把经过的时间.传入的参数和调用的结果打印出来.示例 7-15 一个简单的装饰器,输出函数的运行时间 import time de ...
- ajax根据坐标查询WMS地图服务属性信息
<html lang="en"> <head> <meta charset="UTF-8"> <meta name=& ...
- OSCP Learning Notes - File Transfers(1)
File transfer type: 1. HTTP Transfer files through the website. 2.wget wget http://10.0.0.109/exploi ...
- Zabbix4.x如何安全传输数据
由于设备都在混合云,所以不少数据传输是通过公网,这样极大的增加了危险性,所以在Zabbix数据传输这块则进行PSK安全认证,由proxy主动收集agent数据后统一发送给server,这样只需要对pr ...
- STL源码剖析:仿函数
仿函数就是函数对象 函数对象: 重载了operator()的类对象 使用起来和普通函数一致,所以称为函数对象或是仿函数 STL中对于仿函数的参数进行了特殊处理,定义了两个特殊类,类里面只有类型定义 一 ...
- Puppeteer爬虫实战(三)
本篇文章针对大家熟知的技术站点作为目标进行技术实践. 确定需求 访问目标网站并按照筛选条件(关键词.日期.作者)进行检索并获取返回数据中的目标数据.进行技术拆分如下: 打开目标网站 找到输入框元素 ...