NLP知识点 - perplexity 困惑度

这篇具有很好参考价值的文章主要介绍了NLP知识点 - perplexity 困惑度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(一) Perplexity

困惑度(Perplexity,缩写为PPL)是衡量语言模型好坏的一个常用指标。

语言模型(language model)是用来预测句子中的next word的概率分布(probability distribution),并计算一个句子的概率。一个好的语言模型,应该给well-written 的句子更高的生成概率,阅读这些句子不应该让人感到困惑。

困惑度的定义:

p e r p l e x i t y ( W ) = P ( w 1 w 2 . . . w n ) − 1 N perplexity(W)=P(w_1w_2...w_n)^{-\frac{1}{N}} perplexity(W)=P(w1w2...wn)N1
在语言模型在测试集 W = { w 1 , w 2 , . . . , w N } W=\{w_1, w_2, ..., w_N\} W={w1,w2,...,wN}上的困惑度,是测试集的逆概率,然后用单词数量进行归一化。

核心思想是,句子的概率越大,其困惑度越小,说明语言模型越好。

(二)Perplexity with Example

假设我们的语言模型,词表只有[“a”, “the”, “red”, “fox”, “dog”, “.”] 六个词。

下面计算“a red fox.”这句话 W W W的概率。

P ( W ) = P ( w 1 w 2 . . . w n ) P(W)=P(w_1w_2...w_n) P(W)=P(w1w2...wn)
所以:
P ( a   r e d   f o x . ) = P ( a ) ∗ P ( r e d ∣ a ) ∗ P ( f o x ∣ a   r e d ) ∗ P ( . ∣ a   r e d   f o x ) P(a\ red\ fox.)=P(a)*P(red|a)*P(fox|a\ red)*P(.|a \ red\ fox) P(a red fox.)=P(a)P(reda)P(foxa red)P(.∣a red fox)

假设:
句子中首字的概率如下:
P ( w 1 = a ) = 0.4 P(w_1=a)=0.4 P(w1=a)=0.4
P ( w 1 = t h e ) = 0.3 P(w_1=the)=0.3 P(w1=the)=0.3
P ( w 1 = r e d ) = 0.15 P(w_1=red)=0.15 P(w1=red)=0.15
P ( w 1 = f o x ) = 0.08 P(w_1=fox)=0.08 P(w1=fox)=0.08
P ( w 1 = d o g ) = 0.07 P(w_1=dog)=0.07 P(w1=dog)=0.07
P ( w 1 = . ) = 0 P(w_1=.)=0 P(w1=.)=0

所以 P ( a ) = 0.4 P(a)=0.4 P(a)=0.4

然后,假设我们的模型给出了前一个词为a,后一个词的概率分布:
P ( w 2 = a ∣ a ) = 0.01 P(w_2=a|a)=0.01 P(w2=aa)=0.01
P ( w 2 = t h e ∣ a ) = 0.01 P(w_2=the|a)=0.01 P(w2=thea)=0.01
P ( w 2 = r e d ∣ a ) = 0.27 P(w_2=red|a)=0.27 P(w2=reda)=0.27
P ( w 2 = f o x ∣ a ) = 0.3 P(w_2=fox|a)=0.3 P(w2=foxa)=0.3
P ( w 2 = d o g ∣ a ) = 0.4 P(w_2=dog|a)=0.4 P(w2=doga)=0.4
P ( w 2 = . ∣ a ) = 0.01 P(w_2=.|a)=0.01 P(w2=.∣a)=0.01

所以 P ( r e d ∣ a ) = 0.27 P(red|a)=0.27 P(reda)=0.27

类似地,假设我们的模型给出了前两个词为a red,第三个词的概率分布;以及前三个词为a red fox,第四个词的概率分布:
P ( w 3 = a ∣ a   r e d ) = 0.02 P(w_3=a|a\ red)=0.02 P(w3=aa red)=0.02
P ( w 3 = t h e ∣ a   r e d ) = 0.03 P(w_3=the|a\ red)=0.03 P(w3=thea red)=0.03
P ( w 3 = r e d ∣ a   r e d ) = 0.03 P(w_3=red|a\ red)=0.03 P(w3=reda red)=0.03
P ( w 3 = f o x ∣ a   r e d ) = 0.55 P(w_3=fox|a\ red)=0.55 P(w3=foxa red)=0.55
P ( w 3 = d o g ∣ a   r e d ) = 0.22 P(w_3=dog|a\ red)=0.22 P(w3=doga red)=0.22
P ( w 3 = . ∣ a   r e d ) = 0.15 P(w_3=.|a\ red)=0.15 P(w3=.∣a red)=0.15
以及
P ( w 4 = a ∣ a   r e d   f o x ) = 0.02 P(w_4=a|a\ red\ fox)=0.02 P(w4=aa red fox)=0.02
P ( w 4 = t h e ∣ a   r e d   f o x ) = 0.03 P(w_4=the|a\ red\ fox)=0.03 P(w4=thea red fox)=0.03
P ( w 4 = r e d ∣ a   r e d   f o x ) = 0.03 P(w_4=red|a\ red\ fox)=0.03 P(w4=reda red fox)=0.03
P ( w 4 = f o x ∣ a   r e d   f o x ) = 0.02 P(w_4=fox|a\ red\ fox)=0.02 P(w4=foxa red fox)=0.02
P ( w 4 = d o g ∣ a   r e d   f o x ) = 0.11 P(w_4=dog|a\ red\ fox)=0.11 P(w4=doga red fox)=0.11
P ( w 4 = . ∣ a   r e d   f o x ) = 0.79 P(w_4=.|a\ red\ fox)=0.79 P(w4=.∣a red fox)=0.79

所以 P ( a   r e d   f o x . ) = P ( a ) ∗ P ( r e d ∣ a ) ∗ P ( f o x ∣ a   r e d ) ∗ P ( . ∣ a   r e d   f o x ) = 0.4 ∗ 0.27 ∗ 0.55 ∗ 0.79 = 0.0469 P(a\ red\ fox.)=P(a)*P(red|a)*P(fox|a\ red)*P(.|a \ red\ fox)=0.4*0.27*0.55*0.79=0.0469 P(a red fox.)=P(a)P(reda)P(foxa red)P(.∣a red fox)=0.40.270.550.79=0.0469

此时,可以看到生成的这句话的概率为0.0469。我们是否可以直接比较这句话的概率与当前语言模型生成的其他句子的概率,来判定生成句子的好坏呢?答案是否定的,因为句子的最终概率是单词概率连乘得到的,所以随着句子长度的增加,概率会越来越小。所以我们想要找一个不受句子长度影响的衡量方式。

考虑到句子的概率是连乘得到的,所以这个问题可以通过计算几何平均来解决。此时,我们将利用句子中单词的数量 n n n来对句子概率进行归一化:
P n o r m ( W ) = P ( W ) n P_{norm}(W)=\sqrt [n] {P(W)} Pnorm(W)=nP(W)

此时,a red fox. 这句话的归一化概率为
P n o r m ( a   r e d   f o x . ) = P ( a   r e d   f o x . ) 4 = P ( a   r e d   f o x . ) 1 / 4 = 0.465 P_{norm}(a\ red\ fox.)=\sqrt [4] {P(a\ red\ fox.)}=P(a\ red\ fox.)^{1/4}=0.465 Pnorm(a red fox.)=4P(a red fox.) =P(a red fox.)1/4=0.465

现在,所有的概率都被归一化了,可以比较不同长度句子的概率了。

进一步地,困惑度这个概念被提出来,他是归一化概率的倒数。即:

P e r p l e x i t y = 1 P n o r m ( W ) = 1 P ( W ) 1 n = 1 P ( w ) 1 n Perplexity = \frac{1}{P_{norm}(W)}=\frac{1}{P(W)^\frac{1}{n}}={\frac{1}{P(w)}^{\frac{1}{n}}} Perplexity=Pnorm(W)1=P(W)n11=P(w)1n1

因为是概率的倒数,所以困惑度越低,句子概率越高,语言模型就越好。文章来源地址https://www.toymoban.com/news/detail-758907.html

到了这里,关于NLP知识点 - perplexity 困惑度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NLP重要知识点:预训练模型【核心且详细】

    本资料是NLP核心知识点的ppt!!!【文章较长,建议收藏】 本节课我们学习预训练模型。 我们在学习词向量的时候,应该知道了多个产生词向量的方法,包括基于矩阵(词-词共现矩阵)分解的方法、基于语言模型(word2vec)的方法、以及结合二者优点的Glove模型等其他产生词

    2024年04月09日
    浏览(37)
  • 基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统——NLP自然语言处理算法应用(含Python全部工程源码及训练模型)+数据集

    这个项目充分利用了Google的Bert模型,这是一种基于Attention的大规模语料预训练模型,以及LSTM命名实体识别网络。项目的目标是设计一套通用的问答系统处理逻辑,以实现智能问答任务。 首先,我们采用了Bert模型,这是一种在自然语言处理领域非常强大的预训练模型。它具备

    2024年02月09日
    浏览(63)
  • 自然语言处理NLP介绍——NLP简介

    2024年02月15日
    浏览(71)
  • 自然语言处理NLP:一文了解NLP自然语言处理技术,NLP在生活中的应用,图导加深了解,NLP语料库,NLP开源工具

    目录 1.自然语言处理NLP 1.1 NLP中英对照(双份) 1.2 相关文章  2.NLP语料库

    2024年02月09日
    浏览(61)
  • 【自然语言处理】自然语言处理 --- NLP入门指南

    NLP的全称是 Natuarl Language Processing ,中文意思是自然语言处理,是人工智能领域的一个重要方向 自然语言处理(NLP)的一个最伟大的方面是跨越多个领域的计算研究,从人工智能到计算语言学的多个计算研究领域都在研究计算机与人类语言之间的相互作用。它主要关注计算机

    2024年02月03日
    浏览(62)
  • 自然语言处理-NLP

    目录 自然语言处理-NLP 致命密码:一场关于语言的较量 自然语言处理的发展历程 兴起时期 符号主义时期 连接主义时期 深度学习时期 自然语言处理技术面临的挑战 语言学角度 同义词问题 情感倾向问题 歧义性问题 对话/篇章等长文本处理问题 探索自然语言理解的本质问题

    2024年02月11日
    浏览(78)
  • NLP(自然语言处理)

     一、NLP是什么 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究

    2024年02月02日
    浏览(66)
  • NLP自然语言介绍

    自然语言处理(Natural Language Processing, NLP)是人工智能领域中研究和处理人类语言的一项技术。它涉及将人类语言转化为计算机可理解和处理的形式,以便计算机能够理解、分析、生成和回复自然语言。 NLP技术的目标是使计算机能够像人类一样理解和处理语言。它包括以下几

    2024年01月24日
    浏览(43)
  • 自然语言处理(NLP)

    基础 自然语言处理(NLP) 自然语言处理PaddleNLP-词向量应用展示 自然语言处理(NLP)-前预训练时代的自监督学习 自然语言处理PaddleNLP-预训练语言模型及应用 自然语言处理PaddleNLP-文本语义相似度计算(ERNIE-Gram) 自然语言处理PaddleNLP-词法分析技术及其应用 自然语言处理Pa

    2024年02月08日
    浏览(50)
  • 聊聊自然语言处理NLP

    自然语言处理(NLP)的正式定义:是一个使用计算机科学、人工智能(AI)和形式语言学概念来分析自然语言的研究领域。不太正式的定义表明:它是一组工具,用于从自然语言源(如web页面和文本文档)获取有意义和有用的信息。 NLP工具的实现一般是基于机器学习与深度学习、其它

    2024年02月14日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包