语言模型 讨论区

http://zh.diveintodeeplearning.org/chapter_recurrent-neural-networks/lang-model.html

word mistake?

马尔可夫假设是指一个词的出现(至于)前面 n 个词相关,即 n 阶马尔可夫假设。

是 “只与”

  • 假设训练数据集中有十万个词,四元语法需要存储多少词频和多词相邻频率?

100k+100k^2+100k^3?

考虑重复单词的句子,不应该是100k+100k^2+100k^3+100k^4吗?因为要知道P(w1,w2,w3,w4)的词频,对吗?

问个问题 P(w1,w2,w3,w4)相当于多少个词频呢

100k^4

那就是100k个词频和100k^2+100k^3+100k^4个相邻词频

目前新版教程的<6.1.2 n元语法>章节,第一个公式下方的文字 “以上也叫 n 元语法( n -grams)。它是基于:math:n - 1阶马尔可夫链的概率语言模型。” 存在排版错误,n-1 没有被正确渲染为公式,并且前方出现了’:math:’,github上的markdown文件格式正确。

P(w1,w2,w3,w4) = p(w1)p(w2|w1)p(w3|w1,w2)p(w4|w1,w2,w3)
计算p(w1)p(w2|w1) 只要存储w1、w2的词频和 w1、w2相邻的频率
计算p(w3|w1,w2) 要w3的词频,和w1,w2,w3相邻的频率
计算p(w4|w1,w2,w3) 要w4的词频,和我w1,w2,w3相邻的频率
存储p(w1) p(w2) p(w3) p(4)的频率 100k
存储 p(w1,w2) 需要50k+50k 只需要将词库里面
存储p(w1,w2,w3) 需要 33k + 33k + 33k
总共需要300k

p(w4|w1,w2,w3) = p(w1,w2,w3,w4) / P(w4)
所以需要额外 p(w1,w2,w3,w4) = 100k - 3 个

由于 P(w1,w2,w3,w4,…,w100000) = p(w1)p(w2|w1)p(w3|w1,w2)p(w4|w1,w2,w3)p(w5|w2,w3,w4)…p(w100000|w99997,w99998,w99999)

即若想知道P(w1,w2,w3,w4) 的概率 ,需要之后后面p(w1)、p(w2|w1)、p(w3|w1,w2)、p(w4|w1,w2,w3)这四个概率。

并且: p(w2|w1) = p(w1,w2) / p(w1)

      p(w3|w1,w2) = p(w1,w2,w3) / p(w1,w2)

      p(w4|w1,w2,w3) = p(w1,w2,w3,w4) / p(w1,w2,w3)

      ......

      p(w100000|w99997,w99998,w99999)  = p(w99997,w99998,w99999,w100000)/p(w99997,w99998,w99999)

综上:

10万个词一共需要存储 p(w1)…p(w100000) 共10万个词频;

一共需要存储 p(w1,w2)…p(w99999,w100000) 共10万-1个 二词相邻频率

** p(w1,w2,w3)…p(w99998,w99999,w100000) 共10万-2个 三词相邻频率**
** p(w1,w2,w3,w4)…p(w99997,w99998,w99999,w100000) 共10万-3个 四词相邻频率**
即相邻词频一共是 30万-6个

2赞

4 + (10000-4)* 2

从这个条件概率来看,只看出来了存储三元组和四元组的必要,一元组和二元组也需要存嘛?

这里我看错了,训练数据集中有10万个词 指的是训练语料的字典中共10万个词。
需要存储每个词的词频 (10万)
需要存储二词相连词频(10万*10万 – 这里第一个词的位置上可以取字典里的每一个词,有10万种取法,第二位同理)
需要存储三词相连词频 (10万的3次方)
需要存储四词相连词频 (10万的4次方)

是呈指数级别增长的…

3赞

看得很迷茫,这答案谁对啊?还是说谁都不对?

这个说法应该是对的

词频:10w
多词相邻:C(10w, 4) * 4 + C(10w, 3) * 3 + C(10w, 2) * 2

10^6 + (10^6)^2 + (10^6)^3 + (10^6)^4
相邻的词的元组中每一个词都有可能出现, 也有可能重复,
C(10w,4),A(10w,4)的说法也是不正确的.

n 元语法需要存储 1 \sim n 词相连词频