美文网首页
语言模型

语言模型

作者: dreampai | 来源:发表于2021-04-06 13:48 被阅读0次

一、语言模型定义

一个句子是否合理,就看它的可能性大小如何(概率)。


image.png
image.png

语言模型缺点

  • 參数空间过大:条件概率P(wn|w1,w2,..,wn-1)的可能性太多,无法估算,不可能有用;
  • 数据稀疏严重:对于非常多词对的组合,在语料库中都没有出现,依据最大似然估计得到的概率将会是0

二、 马尔科夫假设

任意一个词出现的概率只同它前面的词有关。


image.png

三、高阶语言模型

N 元模型:假设一个词由前面的 N-1 个词决定,对应的模型稍微复杂些。,即 N-1 阶马尔科夫假设

image.png
为什么 N 取值一般很小
  • N 元模型的大小(空间复杂度)几乎是 N 的指数函数。
  • 三元或四元甚至更高阶的模型也不能覆盖所有的语言现象。在自然语言中,上下文之间的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落。这就是马尔可夫假设的局限性。


    image.png

优点

  • 采用极大似然估计,参数易训练
  • 完全包含了前 n-1 个词的全部信息
  • 可解释性强,直观易理解。

缺点

  • 缺乏长期依赖,只能建模到前 n-1 个词
  • 随着 n 的增大,参数空间呈指数增长
  • 数据稀疏,难免会出现OOV的问题
  • 单纯的基于统计频次,泛化能力差。

统计语言模型的限制

基于最大似然估计的语言模型很容易训练,可扩展到大规模语料,时间表现良好。但模型缺乏对上下文的泛化。比如观察到 black car 和 blue car 并不会影响我们估计出现 red car 的概率,如果我们之前没有观测到它。

四、平滑技术

统计语料有限,存在数据稀疏,导致零概率问题

  • 折扣法(Discounting):从已有观察概率调配一点给未观察概率。
  • 插值法(Interpolation):将高阶模型和低阶模型做线性组合。
  • 回退法(Back-off):基于低阶模型估计未观察到的高阶模型。

避免 0-概率事件的方法使用平滑技术,确保为每个可能的情况都分配一个概率(可能非常小)。

Add one Smoothing
它假设每个事件除了语料中观测的情况外,至少还发生 1 次:

image.png

折扣法

古德-图灵估计原理:对于没有看见的事件,我们不能认为它发生的概率是零,因此从概率的总量中,分配一个很小的比例给这些没有看见的事件。


image.png

看见的那些事件的概率总和就要小于 1 了,因此,需要将所有看见的事件概率调小一点。至于小多少,要根据“越是不可信的统计折扣越多”的方法进行。


image.png
image.png
image.png

自然语言处理中,一般对出现次数超过某个阈值的词,频率不下调,支队出现次数低于某个阈值的词,频率才下调,下调得到的频率总和给未出现的词。(出现次数越少,折扣越多。对于未看见的词,也给予了一个比较小的概率。)

四、语言模型评估

困惑度:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好,公式如下:

image.png
  • 句子概率越大,语言模型越好,迷惑度越小。
  • 困惑度是与语料有关的——两种语言模型只有在使用相同评价语料的情况下才可以比较困惑度。

五、神经语言模型

N-Gram 模型需要精心设计平滑方法,为了解决这个问题,Bengio 提出神经网络来构建语言模型,给定前 N-1 个词预测下一个词的任务。

  • 使用神经网络语言模型,预测下一个词是各个词的条件概率
  • 使用神经网络语言模型,可以得到词的分布式表示
  • 词的相似度可以通过词向量的距离来衡量,未见词语序列的概率可以用相似词进行估计,很好解决了未登录词问题。
image.png

N-gram 神经语言模型的网络结构

image.png
  • 输入层:将 context(w) 中的每个词映射为一个长为 m 的词向量,词向量在训练开始时是随机的,并参与训练
  • 投影层:将所有上下文词向量拼接为一个长向量,作为 w 的特征向量,该向量的维度为 m(n-1)
  • 隐藏层:拼接后的向量会经过一个规模为 h 隐藏层,该隐层使用的激活函数为 tanh
  • 输出层:最后会经过一个规模为 N 的 Softmax 输出层,从而得到词表中每个词作为下一个词的概率分布

其中 m, n, h 为超参数,N 为词表大小,视训练集规模而定;训练使用交叉熵作为损失函数;当训练完成时,就得到了 N-gram 神经语言模型,以及副产品词向量

参考链接

相关文章

  • CMU Sphinx语音识别入门:构建语言模型

      CMUSphinx支持多种语言解码模型,包括:关键字列表模型、语法模型、统计语言模型和语言语音模型。不同的模型...

  • TensorFlow 实战Google深度学习框架(第2版)第九

    第九章:自然语言处理 * 9.1语言模型的背景知识 * 9.1.1语言模型简介 * 9.1.2语言模型的评...

  • 语言模型

    什么是语言模型 语言模型建模方法分为 统计语言模型 和 规则语言模型 两大类,前者完全依靠大文本的数据,用统计的方...

  • 语言模型

    模型:可以量化,可以打分。 语言模型 概率语言模型(统计语言模型) 用处示例:输入法、机器翻译、语音识别等。 N-...

  • 词向量原理

    了解词向量要从语言模型说起,语言模型其实就是计算任意一个句子的概率。 经典的语言模型是n-gram模型,该模型假设...

  • NLP复习(Lecture 9-15)

    Lecture 9 Language Model 语言模型分两类——概率语言模型和结构语言模型 1. N-Gra...

  • 数据库原理

    关系模型 关系模型 实体关系模型 对象关系模型 半结构化数据模型 XML(扩展标记语言) 数据语言 DML 数据操...

  • 零基础进行神经网络语言建模文章

    摘要:本文从最简单的语言模型开始介绍,以优化模型性能为目标,由浅到深的介绍了神经网络模型在语言模型中的应用。 语言...

  • 中文分析3:基于语言模型的无监督分词

    一、语言模型 1、什么是语言模型 语言模型就是计算条件概率的模型。 其中w1,w2,…,wn−1是句子中的前n−1...

  • 《数学之美》统计语言模型、分词

    语言模型 基于规则的模型 基于概率的模型 统计语言模型 问题:整个句子的概率:为了保证句子通顺,不出现歧义,计算整...

网友评论

      本文标题:语言模型

      本文链接:https://www.haomeiwen.com/subject/ejhahltx.html