NLP:词向量与ELMo模型笔记
目录:
基础部分回顾(词向量、语言模型)
NLP的核心:学习不同语境下的语义表示
基于LSTM的词向量学习
深度学习中的层次表示以及Deep BI-LSTM
ELMo模型
总结
1. 基础部分回顾(词向量、语言模型)
1.1 独热编码-词的表示
1.2 词向量-词的表示
我们为什么需要词向量?(One-hot向量的缺点?)
基于One-hot能否表示单词之间语义相似度?
1.2.1 基于One-hot能否表示单词之间语义相似度?
答:不可以。因为,我们不管是通过欧式距离还是通过余弦相似度,计算用One-hot表示的词编码都是一样的距离,不能区分单词之间语义的相似度。比如,计算:我们、爬山的欧式距离、余弦相似度:
(爬山、运动)
的欧式距离是
,
(运动、昨天)
的欧式距离是 。当然每个词之间的余弦相似度也都是相同的。词向量学习到的每个向量都是用不同的浮点数表示,计算每个单词的相似度是不一样的,可以表示单词之间语义相似度。
1.2.2 One-hot向量的缺点?
One-hot向量稀疏性,词向量是稠密向量;
One-hot向量不能表示单词之间语义相似度;
词向量从2013年提出开始,慢慢的发展成现在的Bert、XLNet等比较前言的技术。
1.3 词向量-词向量的可视化
把词向量表示成二维数据后,可以发现类似的单词是聚在一起的,因此可以得出词向量可以区分单词之间语义的相似度。
词向量的可视化常用的算法是sklearn中的T-SNE,它是一种降维算法。降维算法还有PCA、ICA、LDA,针对词向量的降维我们通常使用T-SNE,Bengio在他文章中介绍T-SNE非常清楚。我自己找了一下Bengio的文章,没有找到介绍T-SNE的内容,谁找到告诉一下哈!
1.4 词向量-学习词向量
把一堆文本输入到某些模型中,我们可以得到词向量。模型包括:CBOW、Skip-Gram、NNLM、Glove、MF、ELMo、Gaus Embedding、LDA、Bert等。
2. NLP的核心:学习不同语境下的语义表示
2.1 语言模型-概念
2.2 语言模型-对于句子的计算
2.2.1 Chain Rule
贝叶斯公式:
Chain Rule:
2.2.2 Chain Rule for Language Model
2.2.3 Markov Assumption
一阶马尔科夫假设:
休息
今天
是
春节
我们
都
休息
都
二阶马尔科夫假设:
休息
今天
是
春节
我们
都
休息
我们
都
三阶马尔科夫假设:
休息
今天
是
春节
我们
都
休息
春节
我们
都
2.2.4 Language Model(Use 1st Order)
假设现在我们知道这些单词的概率:
P(是|今天) = 0.01
P(今天) = 0.002
P(周日|是) = 0.001
P(周日|今天) = 0.0001
P(周日) = 0.02
P(是|周日) = 0.0002
比较:“今天是周日 VS 今天周日是 ”两句话哪一句从语法上更通顺?
显然, P(今天是周日) >P(今天周日是) 。
ELMo是基于语言模型的目标函数进行训练的。
2.3 语言模型-相关必要知识点
Chain Rule, Markov Assumption
Unigram, Bigram, Ngram
Add-one smoothing, Good-turning smoothing...
Perplexity
图片来源于:网友
2.4 基于分布式表示的模型总览
介绍词向量的总览,各个词向量模型之间的联系和区别。
Global方法:把非常大的数据放到模型中学习,得到全局的数据信息。优势:可以从全局的角度考虑问题。劣势:1)计算量很大;2)不能在线学习。
Local方法:基于窗口式的方法进行训练,是一种局部的方法。优势:1)可以随时的增加数据进行训练,也就是可以在线学习;2)可以用在大数据里面。缺点:不能从全局的角度考虑问题。
基于语言模型的训练:对于一个语言序列
,我们有 可以预测 ,有 可以预测 ,有 可以预测 ,有 可以预测 。我们可以把这样一个过程写成目标函数 ,目标函数基于语言模型的目标函数进行训练的模型叫做基于语言模型的训练方式。
2.5 建议的学习路径
2.6 词向量训练常见的方法
SkipGram方法:预测相邻单词的概率。
CBOW方法:已知两边单词,预测中间单词。
NNLM方法:基于语言模型和马尔科夫假设进行训练。
基于SkipGram、CBOW和NNLM的方法,我们可以训练出每一个单词的固定词向量。但是在同一句话中,这些方法不能表示相同单词的不同语义。因此我们引出ELMo、Bert和XLNet。
即,如何学出一个单词在不同上下文中的词向量呢?
3. 基于LSTM的词向量学习
3.1 利用LSTM学习词向量(语言模型)
3.2 从单向LSTM到双向LSTM
单向LSTM只能从左到右的预测单词,有时我们想利用单词左右两边的信息,即双向信息,因此我们需要双向LSTM。
XLNet用Permutation language model 实现真正的双向LSTM模型。
以下这种形式不是完全双向的LSTM模型:
4. 深度学习中的层次表示以及Deep BI-LSTM
4.1 启发:深度学习中的层次表示(Hierarchical Representation)
越高级的特征表示越来越具体化。
4.2 How Human Brain Works
4.3 图像中有层次表示,NLP中是否也有?
4.4 Deep BI-LSTM
4.5 训练以及使用
ELMo具体细节可以翻阅论文:Peters M E , Neumann M , Iyyer M , et al. Deep contextualized word representations[J]. 2018.
5. ELMo模型
5.1 ELMo的数学表达
5.2 实验
这一部分展示了ELMo模型论文中的实验结果。
6. 总结
本文是Microstrong在观看李文哲在B站上讲解的直播课程《词向量与ELMo模型》的笔记。直播地址:https://live.bilibili.com/11869202
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)备注:加入本站微信群或者qq群,请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”喜欢文章,点个在看
NLP:词向量与ELMo模型笔记相关推荐
- 词向量:GloVe 模型详解
本内容主要介绍构建词向量的 GloVe 模型. 1 前言 在 GloVe 模型被提出之前,学习词向量的模型主要有两大类: 全局矩阵分解方法,例如潜在语义分析(Latent semantic a ...
- 词向量之TF-IDF模型详解
目录 0 前言 1 TF-IDF模型 1.1 TF-IDF数学形式 1.2 举例 2 TF-IDF的实现 2.1 TF-IDF简单python实现 2.2 TF-IDF的gesim实现: 2.3 TF ...
- NLP词向量模型总结:从Elmo到GPT,再到Bert
词向量历史概述 提到NLP,总离开不了词向量,也就是我们经常说的embedding,因为我们需要把文字符号转化为模型输入可接受的数字向量,进而输入模型,完成训练任务.这就不得不说这个转化的历史了. 起 ...
- NLP(4) | 用词向量技术简单分析红楼梦人物关系用n-gramma生成词向量word2vect进行模型训练
NLP(1) | 词向量one hot编码词向量编码思想 NLP(2) | 中文分词分词的概念分词方法分类CRFHMM分词 NLP(3)| seq to seq 模型 前言:出于种种原因,总是不自觉把 ...
- 基线系统需要受到更多关注:基于词向量的简单模型 | ACL 2018论文解读
在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...
- 动态词向量之elmo
介绍 elmo是用于解决静态词向量无法一词多义的模型. 在介绍如何实现elmo模型的时候,此处穿插进来Conv1d layer(一维卷积层). 本文代码以plm-nlp-code chp6为准,可直接 ...
- 词向量与词向量拼接_动态词向量算法—ELMo
传统的词向量模型,例如 Word2Vec 和 Glove 学习得到的词向量是固定不变的,即一个单词只有一种词向量,显然不适合用于多义词.而 ELMo 算法使用了深度双向语言模型 (biLM),只训练语 ...
- 词向量与词向量拼接_第一节——词向量与ELmo(转)
最近在家听贪心学院的NLP直播课.都是比较基础的内容.放到博客上作为NLP 课程的简单的梳理. 本节课程主要讲解的是词向量和Elmo.核心是Elmo,词向量是基础知识点. Elmo 是2018年提出的 ...
- NLP(词向量、word2vec和word embedding)
最近在做一些文本处理相关的任务,虽然对于相关知识有所了解,而且根据相关开源代码也可以完成相应任务:但是具有有些细节,尤其是细节之间的相互关系,感觉有些模糊而似懂非懂,所以找到相关知识整理介绍,分享如下 ...
最新文章
- linux 模拟生成 CAN 设备
- Struts2--ActionContext及CleanUP Filter
- 六十九、数据结构链表的实现
- ole2高级编程技术 pdf_21天快速掌握Python语言,《21天学通Python》PDF版送给你去学...
- 期货市场技术分析06_长期图表和商品指数
- 初学Web 前端感受
- 【记录】Optisystem运行卡死,无法点击关闭、输入变量数值等问题解决方法
- 读书笔记-《 我的成功可以复制》四
- 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
- 一首关于远方和理想的小诗
- 如何绘制程序流程图?绘制程序流程图工具介绍及功能讲解
- 下一代云原生应用交付会怎样发展?KubeVela帮大忙。
- ldac_aptx和aptx hd功能介绍及区别介绍
- 用什么软件能测试cpu好坏,如何检测cpu是否损坏
- 如何去除谷歌的人机身份验证
- visto VTL搭建
- 如何使用Mac的媒体键在DisplayPort,HDMI或Thunderbolt监视器上调整扬声器音量
- 计算机高中期末总结作文,高中期末总结:高一期末总结作文
- springboot接口统一加密解密
- gog无效的验证码_GOG提供了Linux游戏,Steam Controller推测等等
热门文章
- #讲座#低碳经济0814
- 使用SCOM常用的一些ManagementPack
- 课后作业:情境二:数据类型与运算符 3、运算符及表达式
- 一霎清明雨,实现考勤管理。
- Python 文件和目录操作总结
- ASP.NET2.0 ObjectDataSource的使用详解(1)
- python怎么把所有标点符号置空_Python从小白到攻城狮(1)——python环境搭建
- CAR-T治疗的临床前药理学模型
- stay hungry stay foolish原文_弟子规原文+译文+注释
- 常见移动机器人运动学模型