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 更好
最新文章
- SqlServer数据库大型应用解决方案总结
- php工作笔记7-概率算法
- Hibernate的Annotation注解
- Android中使用抖动动画吸引来用户注意
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) G 优先队列
- JQuery Uplodify上传附件(同一个页面多个uplodify控件解决方案)
- B. Painting Pebbles
- Detours信息泄漏漏洞
- radiobutton以及checkbox背景图片拉伸变形的问题
- 【易语言学习】Day1
- poj1847 Tram(最短路dijkstra)
- MySQL源码包编译安装
- Centos 7环境下安装配置Hadoop 3.0 Beta1简记
- vue+窗格切换+田字+dicom显示_03
- 学习笔记之人工智能(Artificial Intelligence)
- android 开发 在一个工具类(或者适配器class)里启动activity
- SharePoint 表单认证创建用户
- #NodeJS 服务器基本模板
- BZOJ4659:lcm
- 20155207实验2 Windows口令破解
热门文章
- day13 作业
- 数据分析04 /基于pandas的DateFrame进行股票分析、双均线策略制定
- Python函数06/装饰器
- day6:双向循环练习&;pass_break_continue&;for循环
- bzoj4300绝世好题
- DVWA(xss部分源码分析)
- 查看锁信息 v$lock 和 v$locked_object
- zabbix自定义监控(当会话登录超过三个就报警)
- Redis集群搭建(哨兵)
- ThreadLocal 原理