目录:

  1. 基础部分回顾(词向量、语言模型)

  2. NLP的核心:学习不同语境下的语义表示

  3. 基于LSTM的词向量学习

  4. 深度学习中的层次表示以及Deep BI-LSTM

  5. ELMo模型

  6. 总结

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


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦


麻烦给个在看吧

【Emb】词向量与ELMo模型相关推荐

  1. NLP:词向量与ELMo模型笔记

    目录: 基础部分回顾(词向量.语言模型) NLP的核心:学习不同语境下的语义表示 基于LSTM的词向量学习 深度学习中的层次表示以及Deep BI-LSTM ELMo模型 总结 1. 基础部分回顾(词 ...

  2. 词向量之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 ...

  3. 词向量:GloVe 模型详解

      本内容主要介绍构建词向量的 GloVe 模型. 1 前言   在 GloVe 模型被提出之前,学习词向量的模型主要有两大类: 全局矩阵分解方法,例如潜在语义分析(Latent semantic a ...

  4. 动态词向量之elmo

    介绍 elmo是用于解决静态词向量无法一词多义的模型. 在介绍如何实现elmo模型的时候,此处穿插进来Conv1d layer(一维卷积层). 本文代码以plm-nlp-code chp6为准,可直接 ...

  5. 词向量与词向量拼接_动态词向量算法—ELMo

    传统的词向量模型,例如 Word2Vec 和 Glove 学习得到的词向量是固定不变的,即一个单词只有一种词向量,显然不适合用于多义词.而 ELMo 算法使用了深度双向语言模型 (biLM),只训练语 ...

  6. 词向量与词向量拼接_第一节——词向量与ELmo(转)

    最近在家听贪心学院的NLP直播课.都是比较基础的内容.放到博客上作为NLP 课程的简单的梳理. 本节课程主要讲解的是词向量和Elmo.核心是Elmo,词向量是基础知识点. Elmo 是2018年提出的 ...

  7. NLP(4) | 用词向量技术简单分析红楼梦人物关系用n-gramma生成词向量word2vect进行模型训练

    NLP(1) | 词向量one hot编码词向量编码思想 NLP(2) | 中文分词分词的概念分词方法分类CRFHMM分词 NLP(3)| seq to seq 模型 前言:出于种种原因,总是不自觉把 ...

  8. 基线系统需要受到更多关注:基于词向量的简单模型 | ACL 2018论文解读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  9. LFDMM源码剖析(融入词向量的概率图模型)

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 论文来源 Nguyen D Q, Billingsley ...

  10. ELMo预训练词向量模型

    引言 Word Embedding:词嵌入.最简单的理解就是:将词进行向量化表示,抽象成为数学描述,然后可以进行建模,应用到很多自然语言处理的下游任务中.之前用语言模型做 Word Embedding ...

最新文章

  1. java计算器程序代码实现加减乘除_Python+tkinter能实现计算器!太神奇了
  2. BT项目的运作之一项目建设方案与BT总包方的选择
  3. DFTug - Getting Started(上篇)
  4. nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
  5. php黄页,PHP 黄页的url
  6. python 装机配置_Python实现自动装机功能案例分析
  7. 马斯克的挖隧道公司再下一城,未来或将首次实现短途通勤
  8. 哪里有现成的问卷调查数据_何去何从?被数据掩埋的「消费者旅程」
  9. 华为交换机命令 端口速率_华为交换机限速配置命令2016
  10. C++/C 程序员要掌握的问题集锦之一
  11. ReactiveCocoa 5.0 初窥:可能是最痛的一次升级
  12. Android eclipse中程序单步调试调试
  13. 计算机英语词汇解释,常见计算机英语词汇解释
  14. 指令系统相兼容的计算机称为系列机,第4章指令系统.ppt
  15. C++ 并发指南-atomic原子变量使用struct(二)
  16. java正则判断所有的标点符号_java正则匹配标点符号
  17. 小菜鸟之JAVA面试题库1
  18. UOJ#310 【UNR #2】黎明前的巧克力:FWT
  19. python:Excel
  20. OpenCV4-C++读图、显示图

热门文章

  1. 并发编程 - 线程 - 1.线程queue/2.线程池进程池/3.异步调用与回调机制
  2. Web项目--------原Oracle数据库的项目同时兼容MySql
  3. 做一款仿映客的直播App
  4. 长连接与心跳包 Persistent connection and HearBeats
  5. Android 使用 TableLayout 布局拉伸宽度
  6. 20190920 On Java8 第二十章 泛型
  7. 抖音蓝v认证如何申请?一分钟教你快速申请蓝V认证流程
  8. ubuntu安装mysql添加密码
  9. 算法:两条线段求交点
  10. python+request+Excel做接口自动化测试