讲座笔记|词向量与ELMo模型

整理自贪心科技NLP公开课,感谢分享!侵删

第一讲:词向量与ELMo模型  李文哲老师


预习1:最大似然估计

最大似然估计是机器学习邻域最为常见的构建目标函数的方法,核心是根据观测到的结果预测其中的未知参数

求解:极大值倒数为0

预习2:机器学习中的MLE(极大似然估计)、MAP(最大后验估计)、贝叶斯估计

(参考公众号:李老师谈人工智能)

假设在一个班级寻找一个人帮忙解答问题,找谁

班级可视为假设空间,每个学生可看作模型实例化

方法1:MLE 最大似然估计

选择过去三次考试成绩最好的学生。三次考试成绩相当于”学习过程“,选他去回答难题相当于”预测过程“。

方法2:MAP 最大后验估计

根据三次考试成绩以及老师的评价选出最优学生。这种方法选择的学生不一定是第一名。老师的评价和过往成绩根据贝叶斯公式结合。左边的项是MAP需要优化的部分,通过贝叶斯定理这个项可以分解成MLE(第一种策略)和Prior,也就是老师的评价。

若观测数据增加,MAP逐步逼近MLE

方法三:Bayesian 贝叶斯模型

让所有人都去参与回答张三的难题,但最后我们通过一些加权平均的方式获得最终的答案。通过三次考试成绩和老师评价确定权重。


1.预训练与词向量

2.词向量常见训练方法

3.深度学习与层次表示

4.LSTM、BL-LSTM模型回顾

5.基于BI-LSTM的ELMo算法

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

词向量:词的表示方法。如何通过量化的方式来表示一个单词是nlp的核心问题。利用词向量表示单词的方法有one-hot表示(只有1、0)和分布式表示。通过超空间表示时,性质相似的单词距离相近。

one-hot编码不能计算两个词语义的相似度

语言模型:用来判断一句话从句法上是否通畅

p(s)=p(w1,w2.....)    wn表示词向量

目前大部分LM都是基于统计方法(链式法则,马尔可夫估计)的。

链式法则chain rule

马尔科夫假设

由于长句时P值会变得很小,用马尔可夫假设近似估计来解决该问题。同时,可以降低统计量,降低复杂度,提高泛化能力(可在线学习)。

常见语言模型

unigram:每个单词出现都是独立的,不考虑上下文关系,只取决于词在语料库中出现的概率

bigram:基于first-order马尔科夫假设

ngram:基于n-order马尔可夫假设

由于某个词在语料库可能没有出现过,直接计算会导致稀疏性问题,几大部分句子P=0 -->平滑方法

常见平滑方法

add-one smoothing(拉普拉斯平滑),add-K smoothing(k是可以通过训练优化的参数,add-one smoothing可视为特殊情况),Interpolation(多个LM概率的加权平均,由于不同LM计算出的P可能不同),good-turning smoothing

如何评估语言模型

理想方法:modelA、B同时应用于一个任务比较准确性

perplexity=2^-(x)    x:average log likelihood

基于分布式表示的模型总览

global:从全局考虑,计算量大,若增加一个新的文档则要重新计算

local:加窗思想,计算量小,可充分利用大数据

建议学习路径

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

词向量训练常见方法

基于非语言模型方法:skipgram,cbow

基于语言模型的方法:神经网络语言模型(RNN等)

通过训练可以得到每个单词固定的词向量,这些词向量与上下文可能有关

SkipGram

设window size=1,句子abcde,目标函数是最大化P(a|b)P(b|a)P(c|b)P(b|c)........

CBOW

设window size=1,句子abcde,目标函数是最大化P(a|b,c)(c|b,d)........

NNLM:神经网络语言模型,基于马尔科夫假设

BERT:denosing auto encoder

3.基于LSTM的词向量学习(语言模型)

基本结构

深度LSTM

双向LSTM

注意双向lstm并不是真的双向,是两个方向相反的lstm的拼接

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

层次越深能学习到细节表示

5.ELMo模型

你可能感兴趣的:(讲座笔记|词向量与ELMo模型)