NLP基础

NLP基础

Word2vec

参考:
①Word2vec知其然知其所以然或者花书实战篇
②知乎-word2vec
③B站视频-word2vec
④Efficient Estimation of Word Representations in Vector Space
⑤Distributed Representations of Words and Phrases and their Compositionality
⑥word2vec Parameter Learning Explained

word2vec概念

Word2vec是一个将语料库中输入文本信息转换为向量格式的包,又名词嵌入。Word2vec由谷歌在2013年推出,其可以将每个词(Word)转换为向量(Vector)。

Note:

  1. 语料库相当于一本书。书中的句子、词、词很多,但是一个特定的语料库不可能包含所有的句子、词和词。
  2. 例如,“Thursday today”是语料库中的一个句子,“today”和“Thursday”是词。

词向量发展史

NLP基础
Note:

  1. One-hot独热向量:对于每个词都用[0, 0, …1, 0, 0]表示,每个词向量只有1个非零值1,其余均为0,这样的表示方法虽简单,但是当语料库很大的时候,one-hot会导致维度灾难。更难定的一点是,one-hot格式的词向量无法衡量词与词之间的关系,比如相似的两个词。
  2. SVD奇异值分解:SVD类似于特征分解。其中心思想是利用SVD来减小词向量维度。
    SVD是个效率并不高的算法,在实际实现过程中,尤其是待分解矩阵比较大的时候,出结果的速度是很慢的,因此并不实用。
  3. 技术水平总是往上走的,词向量发展至今的结果就是Word2vec。Word2vec最大的好处在于它可以衡量两个向量之间的距离,比如相似的两个单词所对应的向量距离也很小。

语言模型

语言模型是计算句子是句子的概率的模型。
Note:

  1. 比如说,今天是星期四—-概率=90%;今天星期八—-概率=0.1%;今天四星期—-概率=0.001%。高的概率值往往需要满足语法正确以及语义符合。

怎么形容呢? — 通过条件概率将句子分解到单词的层次。
例如,一个句子sn个词w_1%2Cw_2%2C%5Ccdots%2C%20w_ns%3D%5C%7Bw_1%2Cw_2%2C%20%5Ccdots%2Cw_n%5C%7D组成,那么语言模型可以描述为:
P%28s%29%3D%20P%28w_1%2Cw_2%2C%20%5Ccdots%2C%20w_n%29%20%3D%20P%28w_1%29%5Ccdot%20P%28w_2%7Cw_1%29%5Ccdot%20P%28w_3%7Cw_1w_2%29%5Ccdots%20P%28w_n%7Cw_1w_2%5Ccdots%20w_%7Bn-1%7D%29.%5Ctag%7B1%7D
Note:

  1. 其中,p%28w_i%29%20%3D%20%5Cfrac%7Bcount%28w_i%29%7D%7BN%7D%3D%5Cfrac%7B%E8%AF%8Dw_i%E5%9C%A8%E8%AF%AD%E6%96%99%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0%7D%7B%E6%80%BB%E8%AF%8D%E6%95%B0%7D,连续的2个词的概率:p%28w_%7Bi-1%7D%2Cw_i%29%3D%5Cfrac%7Bcount%28w_%7Bi-1%7D%2Cw_i%29%7D%7BN%7D,故p%28w_i%7Cw_%7Bi-1%7D%29%3D%5Cfrac%7Bcount%28w_%7Bi-1%7D%2Cw_i%29%7D%7Bcount%28w_%7Bi-1%7D%29%7D.
  2. 在式(1)中,每个概率P都可以看成是一个分类任务。比如对于P%28w_2%7Cw_1%29来说,w_2相当于label标签,w_1相当于input输入。

But 这样是有问题的!
因为语料再大也不可能包罗万象,因此某个词可能不在语料中,但却是可观存在的,那么计算过程中,就会有p%3D0,这样的话就会导致式(1)为0,这样显然是不对的。

如何解决?
加入平滑操作就是给那些没有出现过的词或词组一个相对较小的概率。
拉普拉斯平滑(加1平滑):每个词在原来的次数基础上加1次。

But 这样还是有问题的!
因为假设语料库中一共有V%3D1k个词,那么上述语言模型中的每个条件概率p都是需要训练的参数,即一个句子的参数可能达到V%2BV%5E2%2BV%5E3%2BV%5En

如何解决?
使用K阶层马尔科夫假设(RL是是使用一阶马尔科夫假设,即2-gram)。K越大,则模型精度越高,但是参数空间也就越大。
K具体有以下几种取法:
NLP基础
例如:
NLP基础
语言模型评价指标:困惑度
给定一个真实的句子s
Perplexity%28PP%28s%29%29%3DP%28w_1%2Cw_2%2C%5Ccdots%2Cw_n%29%5E%7B-%5Cfrac%7B1%7D%7Bn%7D%7D%3D%5Csqrt%5BN%5D%7B%5Cfrac%7B1%7D%7BP%28w_1%2Cw_2%2C%5Ccdots%2Cw_n%29%7D%7D.

Word2vec模型

如今比较著名的Word2vec模型就是CBOW和Skip-Gram模型,为了篇幅,我将此这篇Word2vec的论文笔记放在下面:CBOW&Skip-Gram。Word2vec的2个模型由于计算复杂度较高,在后续的发展中,出现了层次Softmax以及负采样的方式进行优化,为了篇幅,我将此文章的论文笔记放在下面:Word2Vec进阶。

Seq2Seq

NLP基础

Seq2Seq,又称Encoder-Decoder结构,一般是一种基于RNN结构的将不定长的输入系列转换为不定长的输出序列的模型。
具体请看我的另一篇NLP之Seq2Seq。

Transformer

NLP基础

Transformer模型是目前GPT、BERT这种大规模预训练模型的基础,他抛弃了传统CNN和RNN结构的神经网络,采用将注意力模块堆积的方式形成的一种模型。
具体请看我的另一篇Transformer。

版权声明:本文为博主Ton10原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/MR_kdcon/article/details/123113542

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月14日 下午12:45
下一篇 2022年3月14日 下午1:03

相关推荐