NLP经典论文阅读:从神经网络语言模型(NNLM)到词向量(word2vec)

本文仅供自己日后复习所用,参考了很多博客和知乎回答的内容,中途没有及时记录所以无法一一列出,希望谅解。

NLP的发展过程中的核心技术代表

2001 - Neural language models(神经语言模型)
2008 - Multi-task learning(多任务学习)
2013 - Word embeddings(词嵌入)
2013 - Neural networks for NLP(NLP神经网络)
2014 - Sequence-to-sequence models
2015 - Attention(注意力机制)
2015 - Memory-based networks(基于记忆的网络)
2018 - Pretrained language models(预训练语言模型)

本篇博客涉及其中之二。

1. 基于统计的语言模型

语言模型与维数灾难

语言模型是NLP领域一个基本且重要的任务,本质是对一段自然语言的文本进行概率的预测,一般通过计算某种语言的词序列的联合概率实现。
假设句子S长度为 T,词用 x 表示,那么这个句子的概率可用如下公式表示:
在这里插入图片描述
利用条件概率公式计算词语序列的联合概率,会带来一个问题:维数灾难(curse of dimensionality)
即模型参数太多,会导致过拟合。
假设要建模一个有10个单词的句子的联合概率分布,词表大小为100000,参数量为 10000 0 10 − 1 100000^{10} - 1 100000101

N-Gram模型

为了解决维数灾难的问题,引入马尔可夫假设:假定一个句子中的词只与它前面的 n-1 个词相关。
这样得到的就是N-Gram模型。

例如n=2时,得到bigram model:
在这里插入图片描述C是词频的统计函数。

训练语料里面有些 n 元组没有出现过,其对应的条件概率就是 0,导致计算一整句话的概率为 0。尤其在 n 取值较大时,这种数据稀疏导致的计算为 0 的现象变得特别严重
所以统计语言模型中一个很重要的方向便是设计各种平滑方法来处理这种情况。

除了数据稀疏,N-Gram还有两个缺点
一是基于统计的语言模型无法把 n 取得很大, 3-gram 比较常见。因此统计语言模型无法对语言中上下文较长的依赖关系建模。虽然用马尔可夫假设限定了窗口,但参数量还是随着窗口大小指数增长。
假设词表中词的个数为20000
在这里插入图片描述
二是N-Grams不考虑单词之间的“相似性”。
如训练语料中有一句“The cat is walking in the bedroom.”,那么,语言模型生成句子“a dog is running in a room”的概率应该相近。但N-Grams模型仅仅靠每个n元组出现的频次计算概率,无法解决词语相似性的问题。
下一节介绍的《A Neural Probabilistic Language Model》一文将着力解决这两个问题。

2. 神经网络语言模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值