语言模型,word2vec,Negative Sample(负采样) Hierarchical Softmax(层次softmax)

目录

1.语言模型:

2.最早的语言模型的问题:

3.N-gram(统计词频)

4.词向量(利用神经网络)

 4.1word2vec

4.2、两种训练模式

4.3、两种加速方法

refrence:


1.语言模型:

更多语言模型参考https://www.cnblogs.com/rucwxb/p/10277217.html,(ELMo,BERT)

2.最早的语言模型的问题:

2.1.句子长的时候,计算量过大

2.2. 一些词组合在一起过于稀疏,数据稀疏

3.N-gram(统计词频)

 

1.假设待遇测的词只和前面一些词有关,N-gram=1只和前面一个词相关

2.相对来说没有那么稀疏

 

概率计算思路:   如上图,'i'一共出现2533次,'i'后面跟着'want'的出现次数为827次,那么i后面want出现的概率就是,827/2533

 

one-hot词的独热表示

缺点分析: 

.1、向量的维度会随着句子的词的数量类型增大而增大; 

.2、任意两个词之间都是孤立的,无法表示语义层面上词汇之间的相关信息,而这一点是致命的。

 上面的只是出现的频次概率,后面发展为词的本质,让机器明白词的意思,

4.词向量(利用神经网络)

 4.1word2vec

word2vec是谷歌提出的一种word embedding的具体手段,采用了两种模型(CBOW与skip-gram模型)与两种方法(负采样与层次softmax方法)的组合,比较常见的组合为 skip-gram+负采样方法。 

word2vec:由于训练词向量模型的目标不是为了得到一个多么精准的语言模型,而是为了获得它的副产物——词向量。所以要做到的不是在几万几十万个token中艰难计算softmax获得最优的那个词(就是预测的对于给定词的下一词),而只需能做到在几个词中找到对的那个词就行,这几个词包括一个正例(即直接给定的下一词),和随机产生的噪声词(采样抽取的几个负例),就是说训练一个sigmoid二分类器(利用哈夫曼树变成多个二分类)!!!!!!!,只要模型能够从中找出正确的词就认为完成任务。

 

上图所示,基于词频率的会以为网吧和网咖完全不一样,不同于词频,对于神经网络来说,''网吧''词向量约等于''网咖''词向量

4.2、两种训练模式

  1. CBOW (Continuous Bag-of-Words Model)
  2. Skip-gram (Continuous Skip-gram Model)

4.3、两种加速方法

  1. Negative Sample(降采样)
  2. Hierarchical Softmax(层次softmax)

大家都知道哈夫曼树是带权路径最短的树,一般神经网络语言模型在预测的时候,输出的是预测目标词的概率(每一次预测都要基于全部的数据集进行计算,很大的时间开销)。

Hierarchical Softmax是一种对输出层进行优化的策略,输出层从原始模型的利用softmax计算概率值改为了利用Huffman树计算概率值。一开始我们可以用以词表中的全部词作为叶子节点,词频作为节点的权,构建Huffman树,作为输出。从根节点出发,到达指定叶子节点的路径是的。Hierarchical Softmax正是利用这条路径来计算指定词的概率,而非用softmax来计算。 

即Hierarchical Softmax:把 N 分类问题变成 log(N)次二分类,利用哈夫曼树构造很多二分类(sigmoid)

 

Negative Sampling(简写NEG,负采样),这是Noise-Contrastive Estimation(简写NCE,噪声对比估计)的简化版本:把语料中的一个词串的中心词替换为别的词,构造语料 D 中不存在的词串作为负样本。在这种策略下,优化目标变为了:较大化正样本的概率,同时最小化负样本的概率。这样说大家可能已经糊涂了,我们省去繁琐的数学推倒,这里举一个例子:假设有一个句子为:“The quick brown fox jumps over the lazy dog.“ ,如果我们用skip-gram model ,貌似这是一个很大的网络。 

注意:比如像“the”这种常见的词,我们会遇到两个问题: 

1. 比如(fox,the)其实没有传递我们关于 fox的信息。‘the‘出现得太多了。 

2. 我们有太多 (‘the’,…)的样本,多于我们实际需要的。 

所以word2vec采用了降采样的策略。对于每个我们在训练样本中遇到的词,我们有一个概率去删除它。这个概率与单词出现的频率相关。

 

如果我们采用window size = 10,同时我们删除‘the’: 

1. 当我们再去训练剩下的词,我们就不会再遇到‘the’了; 

2. 我们减少了10个包含‘the’的样本 

这其实就是‘NEG’的核心思想。
 

refrence:

http://www.dataguru.cn/article-13488-1.html 

https://www.cnblogs.com/rucwxb/p/10277217.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾世林jiashilin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值