一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读

1.n-gram

自己理解:

  • n代表窗口长度,n-gram的思想就是先滑窗,然后统计频次,然后计算条件概率,你可以取前面n个的条件概率,不一定要取全部的,最后得到的是整个句子的一个概率,那这个概率可以代表句子的合理性。

详情见:
https://zhuanlan.zhihu.com/p/32829048
一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第1张图片
一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第2张图片

如何利用n-gram作为额外的特征呢?

例如:
我 爱 北京 天安门

这样词就有各种组合了:
它的一到三gram为:
[我,爱,北京,天安门,我爱,我北京,我天安门,…,我爱北京,我爱天安门,…]就是不同的组合,然后每一个词对应onehot特征里面的1维。

那么原来的我爱北京天安门的特征就是根据这段语句生成的一到三gram的组合。
在这里插入图片描述
https://zhuanlan.zhihu.com/p/29555001

2 NNLM(Neural Network Language Model)

NNLM模型的构造输入是前n个字的onehot特征,输出是这段文字的条件概率,也就是通过学习这个条件概率来学习embedding。
一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第3张图片
中间有激活函数,用的激活函数是双曲正切
一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第4张图片

一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第5张图片
其实是一个开创性的创举,然后word2vec改了一下,让他更容易训练,训练更快了,去掉了激活函数,直接预测下一个词,感觉改得好简单啊。

3 word2vec

  • 数据结构和算法——Huffman树和Huffman编码:https://blog.csdn.net/google19890102/article/details/54848262

3.1 分层softmax

https://www.cnblogs.com/guoyaohua/p/9240336.html
一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第6张图片

3.2 负采样

https://zhuanlan.zhihu.com/p/39684349

  • 高频词抽样
    一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第7张图片
  • 负采样
    一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第8张图片

4.Glove详解

看了之后一脸懵逼,实际情况是这样,因为word2vec是利用上下文特定长度窗口内的文本去训练一个词向量,这样每次看到的都是局部的信息,如果和全部词的信息利用起来呢?
g l o v e 首 先 构 造 一 个 共 线 矩 阵 , 这 个 矩 阵 通 过 一 翻 设 计 , 可 以 衡 量 两 个 词 之 间 共 同 出 现 的 概 率 关 系 , 然 后 类 似 于 w o r d 2 v e c , 去 学 习 这 个 共 线 矩 阵 , 这 样 得 到 的 中 间 结 果 作 为 词 向 量 , 注 意 这 里 有 两 个 词 向 量 , 都 可 以 用 , 只 是 随 机 化 参 数 不 一 样 , 最 后 可 以 取 二 者 的 平 均 , 最 后 就 是 加 了 一 个 权 重 因 子 , 来 更 好 的 对 频 次 较 高 和 较 低 的 词 做 一 些 修 正 , 具 体 详 情 如 下 : glove首先构造一个共线矩阵,这个矩阵通过一翻设计,可以衡量两个词之间共同出现的概率关系,然后类似于word2vec,去学习这个共线矩阵,这样得到的中间结果作为词向量,注意这里有两个词向量,都可以用,只是随机化参数不一样,最后可以取二者的平均,最后就是加了一个权重因子,来更好的对频次较高和较低的词做一些修正,具体详情如下: glove线word2vec线
一文看懂自然语言处理语言模型 n-gram word-embedding CBOW Skip-gram word2vec glove解读_第9张图片
通俗易懂理解——Glove算法原理:
https://zhuanlan.zhihu.com/p/42073620
GloVe详解
http://www.fanyeong.com/2018/02/19/glove-in-detail/
nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
https://zhuanlan.zhihu.com/p/56382372

其他参考链接:
https://www.cnblogs.com/guoyaohua/p/9240336.html
https://zhuanlan.zhihu.com/p/53425736
https://zhuanlan.zhihu.com/p/61635013
https://blog.csdn.net/bitcarmanlee/article/details/82291968

你可能感兴趣的:(算法,nlp)