理解n-gram及神经网络语言模型

语言模型定义了自然语言中标记序列的概率分布,简单的说就是定义了任何一个句子可能出现的概率,比如“小明吃了个苹果”每100个句子中就会出现1次,那它的概率就是0.01​, 而"苹果吃了个小明"这个句子从古至今从来就不会有,那么就可以认为它的概率是0​.

一般的,假设一个句子有一连串的词x_1, x_2, ...,x_t组成,那么我们要怎么计算它在语言模型中的概率P 呢?

最简单的想法就是我们构建一个巨大无比的语料库,把全人类从古至今讲过的话都放在里面,然后通过统计这句话出现的频率就可以了,但是显然是行不通的,我们没有这么大的语料库。

就算是有一个相对来说比较大的库,在其中的句子的概率相对来说还好算,只要频率除以总数就可以了,但是没有在这个库中的句子就会都变成0,显然这是不合理的。比如说在我们的库里,“小明吃了个苹果”概率0.01是可以理解的,但是“小明吃了个橘子”这句话并不在库里,那它的概率就应该为0吗?根据我们的直觉,“小明吃了个橘子”这个句子也是一个正常人类表达的句子,它不应该为0。

既然句子不行,那要不我们试试更细粒度的词汇,词汇在一个比较大的语料库中总归基本都是有出现的吧,于是我们可以定义一个条件概率:
P(x_1,x_2,...,x_t)=P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)P(x_4|x_1,x_2,x_3)···P(w_n|w_1,w_2,...,w_{t-1})
观察上面的公式,前面的P(x_1),P(x_2|x_1),P(x_3|x_1,x_2)​ 还算比较好算,但是越后面...越没法算了....

这该如何是好?

n-gram语言模型

于是有人就想出了 n-gram语言模型,它是最早成功的基于固定长度序列的标记模型。

它的思想来源于马尔可夫假设,它假设任意一个词x_i​ 出现的概率只和它前面的n-1​ 个词有关,而不是跟前面的所有词都有关,这样一来,前面的条件概率就变得简单了:
P(x_1,...x_t)=P(x_1,...,x_{n-1})\prod^t_{t=n}P(x_t|x_{t-n+1},...,x_{t-1})
特别的,当n=1时称为一元语法(unigram),n=2时称为二元语法(bigram),n=3时称为三元语法(trigram),其中,三元语法是用的比较多的。显然,要训练n-gram语言模型是简单的,因为它的最大似然估计可以通过简单的统计每个可能的n-gram在语料库中出现的频率来获得。

通常我们同时训练n-gram模型和n-1 gram模型,这使得下面的式子可以简单的通过查找两个存储的概率来计算:
P(x_t|x_{t-n+1},...x_{t-1})= \frac{P_n(x_{t-n+1},...x_t)}{P_{n-1}(x_{t-n+1,...,x_{t-1}})}
举个例子,我们演示一下三元模型是如何计算句子“苹果 吃了 个 小明”的概率的,套用上面的公式:
P(苹果,吃了,个,小明)=P_3(小明|苹果,吃了,个)P_3(苹果,吃了,个) \\ = \frac{P_3(吃了,个,小明)}{P_2(吃了,个)}P_3(苹果,吃了,个)
显然,n-gram模型的最大似然有一个基本限制,就是有可能在语料库中的统计数据P_n可能是0,这将导致两种灾难性的后果。当P_{n-1}=0时,分母为0无法产生有意义输出,而当P_n=0,P_{n-1} \ne 0 时,测试样本的对数似然为 - \infty ,主要有两种方式来避免这种灾难性的后果:

  • 一种平滑方式是基于所有可能的下一符号值添加非零的概率质量
  • 另一种回退方法就是高阶和低阶混合模型,就是高阶为0取低阶

n-gram模型特别容易引起维数灾难,因为存在|V|^n可能的n-gram,而|v|通常很大,即使有大量训练数据和适当的n,大多数的n-gram也不会在训练集中出现。另外还有一个缺点就是模型词与词之间并没有什么关联,无法体现不同语义词汇之间的不同。

神经网络语言模型(NNLM)

NNLM是一类用来克服位数灾难的语言模型,它使用词的分布式表示来对自然语言序列建模,其中词的分布式表示其实就是众所周知的词向量

下面我们就来介绍一下NNLM的网络结构。

它的本质其实是一个前馈网络,就是用一个句子词序列 w_{t-n+1},w_{t-n+2},...,w_{t-1} 来预测下1个词(就记为w_i 吧),因此它的输入是 w_{t-n+1},w_{t-n+2},...,w_{t-1}, 标签是w_i ,模型训练的目的就是预测接近w_i分布的w_i' ,因为输出层用的softmax激活,因此也可以理解成是输出w_i 的概率分布。

下面,通过这个图,来看一下输入是怎么一步步到输出的。

w_{t-n+1},w_{t-n+2},...,w_{t-1}是one-hot形式表示的词汇向量,它的维度等于总的词汇数。比如语料库只有4个词"小明","吃了", “个”,"苹果",那它们的one-hot向量就可以是4维向量:

总之就是词库有多少个不同的词,w就有几维,一般的词库而言可能会有几万维,然后每个次分别在自己的索引为为1,其余为0。

而look-up的作用就是要将one-hot的大维向量映射到一个分布式表示的相对低维的向量上,各自共享一个参数相同的全连接网络,通常会由200个左右的神经元,这里我们假设是m个,也就是从|V| 维映射到m维:Cw_t

这样的映射过程有n-1个,把Cw_{t-n+1},Cw_{t-n+2},...Cw_{t-1}拼接在一起,就得到了一个(n-1) * m 维的向量x,然后继续往前传播,传到一个全连接的隐层,有h个神经元,并通过tanh 激活,得到一个h维的向量:a = tanh(Hx+d)

之后就是输出层了,输出的虽然是一个和输入w_t一样的|V|维向量,但是这个输出层的连接比较特殊,并不是普通的全连接,它和隐藏层的输入和输出都有关系y=softmax(Wx+Ua+b), 就是词库中所有词的概率分布,然后用它和真实分布w_i计算交叉熵就是损失函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容