乐趣区

关于人工智能:自然语言处理中的语言模型简介

作者 |Devyanshu Shukla
编译 |Flin
起源 |medium

在这篇文章中,咱们将探讨对于语言模型(LM)的所有内容

  • 什么是 LM
  • LM 的利用
  • 如何生成 LM
  • LM 的评估

介绍

NLP 中的语言模型是计算句子(单词序列)的概率或序列中下一个单词的概率的模型。即

句子的概率:

下一个单词的概率:

语言模型 v/s 字嵌入

语言模型经常与单词嵌入混同。次要的区别在于,在语言模型中,单词程序很重要,因为它试图捕获单词之间的上下文,而在单词嵌入的状况下,只捕获语义类似度 (https://en.wikipedia.org/wiki…,因为它是通过预测窗口中的单词来训练的,而不论程序如何。

语言模型的利用

语言是 NLP 的次要组成部分,在很多中央都有应用,比方,

  • 情感剖析
  • 问答
  • 总结
  • 机器翻译
  • 语音辨认

生成语言模型

有不同的办法来生成语言模型,让咱们逐个查看它们。

应用 N -grams

N-grams(https://en.wikipedia.org/wiki… 是给定语料库中 N 个单词的序列。对于“I like pizza very much”这句话,bigram 将是‘I like’,‘like pizza’,‘pizza very’和‘very much’。

比方说,咱们有一个句子‘students opened their’,咱们想找到它的下一个单词,比方 w。应用 4 -gram,咱们能够用上面的方程来示意下面的问题,这个方程返回‘w’是下一个单词的概率。

这里,count(X) 示意 X 呈现在语料库中的工夫。

对于咱们的 LM,咱们必须计算并存储整个语料库中的所有 n -grams,随着语料库越来越大,这须要大量的存储空间。假如,咱们的 LM 给出了一个单词列表,以及它们成为下一个单词的概率,当初,咱们能够抽样从给定列表中抉择一个单词。

能够看出,对于一个 N -gram,下一个单词总是取决于句子的最初 N - 1 个单词。因而,当咱们增加更多的单词时,句子的上下文和依赖关系就会失落。

“Today the price of gold per ton,while production of shoe lasts and shoe industry,the bank intervened just after it considered and rejected an IMF demand to rebuild depleted European stocks, sept 30th end primary 76 cts a share.’’

下面的文字是用商业和金融新闻语料库中的 N -grams(N=3)生成的,它合乎语法常识但不连贯,因为咱们只思考最初两个单词来预测下一个单词。

这种办法也容易受到稠密性问题的影响,当单词“w”在给定的句子之后从未呈现,就会呈现稠密性问题,因而“w”的概率始终为 0。

应用神经网络

为了应用神经网络生成 LM,咱们思考应用一个固定的窗口,即每一次的单词数都固定。如下图所示,而后以独热向量的模式示意单词,并与词嵌入向量相乘,连贯以创立矩阵 e。而后将该矩阵展平并通过暗藏层。最初应用 softmax 函数输入。

该办法解决了稠密性问题,与 N -grams 相比不须要太多存储空间,但也存在一些本身的问题。因为神经网络应用固定的输出窗口,因而由该模型生成的文本长度是固定的,因而应用起来不太灵便。随着窗口大小的增大,模型的大小也随之增大,从而变得效率低下。

应用长 - 短期记忆网络(LSTM)

为了解决固定输出长度问题,咱们应用递归神经网络(RNNs)。正如咱们在 N -grams 办法中看到的,N-grams 办法短少长期依赖。如果咱们应用 vanilla-RNNs(https://medium.com/@apiltaman…),因为 RNNs 中的梯度隐没,咱们依然会有雷同的长期依赖问题。然而,一种称为 LSTM 的非凡 RNN 解决了上述问题。

LSTMs 可能学习长期依赖关系。它们是由 Hochreiter&Schmidhuber(1997)(http://www.bioinf.jku.at/publ…)提出的,并在随后的工作中被许多人改良和推广。

所有的 RNNs 都是由一系列反复的神经网络模块组成的。在规范 RNN 中,这个反复模块将有一个非常简单的构造,比方一个繁多的 tanh 层。在 LSTMs 中,反复模块具备不同的构造。不是只有一个神经网络层,而是有四个,以一种十分非凡的形式相互作用。请在此处具体浏览 LSTMs(https://colah.github.io/posts…。

语言模型的评估

咱们须要对模型进行评估,以改良它或将其与其余模型进行比拟。困惑度被用来评估语言模型。它是一种测量概率模型预测测试数据的能力。

咱们掂量咱们的模型有多低的困惑度,低困惑度意味着模型生成了连贯、构造良好的句子,而高困惑度则示意不连贯和凌乱的句子。因而,低困惑度是好的,高困惑度是坏的。

从数学上讲,困惑度是测试集的反概率,由单词数规范化。

LM 的困惑度:

论断

语言模型是 NLP 的重要组成部分,能够用于许多 NLP 工作。咱们看到了如何创立本人的语言模型,以及每种办法都会呈现什么问题。咱们得出的论断是,LSTM 是制作语言模型的最佳办法,因为它思考并解决了长期依赖问题。

原文链接:https://medium.com/@devyanshu…

欢送关注磐创 AI 博客站:
http://panchuang.net/

sklearn 机器学习中文官网文档:
http://sklearn123.com/

欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/

退出移动版