NIP基础

1.词向量与语言模型
2.学习不同语境下的语义表示
3.基于LSTM 的词向量学习
4.深度学习中的层次表示以及Deep BI-LSTM
5.ELMO模型
在监督NLP任务中使用Elmo
6.总结
1.词向量与语言模型

NLU 文本的量化表示方式

独热编码:能否表示单词之间的相似度? — 不能。因为通过任何一种方式(余弦相似度等)无法计算两两向量的相似度。

所以我们有了 词向量 (分布式表示的词向量)

独热编码: 稀疏向量,并且都是正交的。
词向量:稠密向量,分布式词向量。

类似的单词 都是聚集在一起的。当我们提取出某些词向量时,我们可以通过可视化来呈现出他们的关系。 可视化 T-SNE (sklearn里面有)这是一种降维的算法(针对词向量一般用TSNE),其他降维算法有PCA 等。

语言模型的目标是最大的话 一句话的 概率的。
基于前面几个单词预测下一个单词 这就是语言模型。

语言模型的基础:链式法则,马尔科夫,N元组,平滑方式,困惑度。

Global 方法:全局方法
Local 方法: 局部方法

基于LM的训练:基于语言模型的训练
基于非LM的训练:基于非语言模型的训练

1 Global vs Local
Global: 优势:全局. 缺点:计算量大,有新的文本的时候 需要更新。
Local: Skip Gram

  1. 基于LM vs 非基于LM

对于Elmo: 语言模型-NNLM-层次表示-HMM-RNN-LSTM-BiLSTM-DeepBiLSTM-ELMO

2.学习不同语境下的语义表示

基于Distributional Hypothesis
– Skip-Gram
句子: 词向量 训练 方法 有 两种
单词: W1 W2 W3 W4 W5
windows = 1
假设已知 w2, 预测出 w1 和 w3
目标函数:Maximize P(w2|w1)P(w1|w2)P(w3|w2)P(w2…)

– CBOW:
通过 w1 和 w3 预测 w2
目标函数: Maximize P(w2| w1,w3) P(w3| w2,w4)…

Language Model + HMM
– NNLM:
目标函数: Maximize P(w2|w1)P(w3|w2)

上面句子里面的Back 是不同的意思。
理解词向量 在不同语境下的含义 就是我们的目标。所以有了Elmo,Bert 等模型。

正确答案是 ABCD。
A是一种比较直观的 可行方案,每个单词多意,那么可以对应多个词向量。当然方法可行,不过具体执行问题有可能也很懂。
B和C是相关的。example: I back my car, I heart my back. 首先对back计算一个基准向量 H_back 一对一的,如何计算2个back这个句子里面的含义分别是什么? H_back + ▲(基于上下文的偏移)

3.基于LSTM 的词向量学习

基于LSTM 作为基石
深度,层次
LSTM 来源于RNN, 因为RNN有些梯度爆咋的问题,所以提出了LSTM。
目标函数 是一个 语言模型,输出层 通过softmax 获取 期望输出向量,然后 期望输出 和实际值(热独编码) 计算交叉熵,反向传播。

下面是两个独立的 LSTM。不是一个真正的双向LSTM。

为什么不是真正的双向 是因为只是把前向和反向 拼接起来的结果,不是完整意义上的双向。 所以后面Permutation(XLNET) 可以认为是真正的双向

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

深度 : 可以从纵向和横向上深度。
层次表示 可以看出 每层学出来的结果是不一样的。

这个就是Deep-bi-LSTM

基于LM方式来训练。

5.ELMO模型

Elmo 使用的是一个双向的LSTM语言模型,由一个前向和一个后向语言模型构成,目标函数就是取这两个方向语言模型的最大似然。
语言模型的双向体现在对句子的建模:给定一个N个token的句子,ELMo是biLM多层输出的线性组合。

在监督NLP任务中使用Elmo

在supervised NLP tasks中使用ELMo, 给定N个token的句子,supervised NLP处理的标准过程的输入是context-independent token词向量xk x_kx
k

,加入ElMo有两种方式:

直接将ELMo词向量ELMok ELMo_kELMo
k

和普通词向量xk x_kx
k

拼接得到[xk;ELMotaskk] [x_k; ELMo_k^{task}][x
k

;ELMo
k
task

],作为模型的输入。
将ELMo词向量ELMok ELMo_kELMo
k

和隐藏层输出hk h_kh
k

进行拼接得到[hk;ELMotaskk] [h_k; ELMo_k^{task}][h
k

;ELMo
k
task

]
(一个单词在语境下的表示 就是所有层的加权平均。
在预训练好这个语言模型之后,ELMo就是根据公式来用作词表示,其实就是把这个双向语言模型的每一中间层进行一个求和。最简单的也可以使用最高层的表示来作为ELMo。然后在进行有监督的NLP任务时,可以将ELMo直接当做特征拼接到具体任务模型的词向量输入或者是模型的最高层表示上。)

6.总结

ELMo的假设前提一个词的词向量不应该是固定的,所以在一词多意方面ELMo的效果一定比word2vec要好。
word2vec的学习词向量的过程是通过中心词的上下窗口去学习,学习的范围太小了,而ELMo在学习语言模型的时候是从整个语料库去学习的,而后再通过语言模型生成的词向量就相当于基于整个语料库学习的词向量,更加准确代表一个词的意思。
ELMo还有一个优势,就是它建立语言模型的时候,可以运用非任务的超大语料库去学习,一旦学习好了,可以平行的运用到相似问题。

Bert 是 AutoEncoder 通过上下文来预测中间mask单词,损失函数是ADE的损失函数,不是交叉熵损失。Bert 模型不是基于语言模型的,只是基于ADE。

Elmo 是基于语言模型的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值