视学算法推荐

作者:时晴

来自:炼丹笔记

困惑度(Perplexity)在NLP中是个最流行的评估指标,它用于评估语言模型学的到底有多好.但是很多炼丹师可能至今对"困惑度"依然感到困惑,这篇就把这个讲清楚.假设我们要做个对话机器人,它功能很简单,就是你跟它说你冰箱有啥,它告诉你还需要买啥,能一起做出美味佳肴.例如"鸡肉,胡萝卜",它能够立马给出5~6种购物清单,这就类似用一个NLP模型,去预估和"鸡肉和胡萝卜"共现较多的食材.但是这样评估并不全面,真实情况是用这个NLP模型可能会产生很多新菜谱,然后按照新菜谱可能可以创造更好的美味佳肴?那还需要美食家去评价这个模型了.有没有一种指标,它独立于特定的任务,可以评估模型的质量呢?那就是困惑度了,它衡量了模型对自己预估结果的不确定性.低困惑度说明模型对自己很自信,但是不一定准确,但是又和最后任务的表现紧密相关.然后它又计算起来非常简单,用概率分布就可以计算.

困惑度如何算?

举个简单的例子,训练上述对话机器人的样本如下:

1. 鸡肉,黄油,梨

2.鸡肉,黄油,辣椒

3.柠檬,梨,虾

4.辣椒,虾,柠檬

这些句子,有6个word,我们学个模型就是给一个词,预估其他词和它一起共现的概率.最简单的模型就是unigram模型了,每个word都是独立分布的,因为每个词都出现了两次,所以所有词出现的概率都是一样的:

这明显是个非常差的模型,无论你告诉这个模型你有啥,它都会随机给你挑选剩余食材.回到困惑度,我们希望有个评估指标,模型预估概率为1,评估指标能接近0,预估概率为0,评估指标接近∞,这表示模型有多"自信",很明显!那就是log函数了:

上述unigram模型用上式计算-log(0.16) = 2.64. 上式让我们联想到了信息熵, unigram的熵就是6 * (1/6 * 2.64) = 2.64:

知道上式困惑度就很好算了,就是熵的指数:

最终我们算出困惑度约等于6.这不就是我们vocabulary的大小吗?这就是你在句子中每个位置可以选择的可能单词的数量

perplexity不得不知的事!

低困惑度不能保证模型更好.首先,正如我们在计算部分所看到的,模型最糟糕的困惑度是由语言的词汇量决定的。这意味着您可以大大降低模型的复杂度,例如,只需从单词级模型(可能很容易具有50000多个单词的词汇量)切换到字符级模型(词汇量约为26),而不管字符级模型是否真的更准确。其他变量,如训练数据集的大小或模型的上下文长度,也会对模型的复杂性产生不成比例的影响。第二,也是更重要的一点,困惑和所有内部评估一样,不提供任何形式的理智检查,同困惑度的模型也是有好有坏的。

困惑度应用

当使用“困惑”来评估在真实世界数据集(如one billion word benchmark)上训练的模型时,可以看到类似的问题。这个语料库是由2011年发表的数千篇在线新闻文章组成的,所有这些文章都被分解成了句子。它被设计成一个标准化的测试数据集,允许研究人员直接比较在不同数据上训练的不同模型,而困惑度就是一个最普遍的基准选择。

不幸的是工作表明,模型的困惑很容易受到与模型质量无关的因素的影响。在三个不同的新闻数据集上训练相同的模型时,困惑度波动很大.由于“困惑度”可以有效地衡量模型模仿其所测试的数据集风格的准确程度,因此基于与基准数据集相同时期的新闻训练的模型由于词汇相似性而具有不公平的优势。

总结

优点:

  • 计算速度快,允许研究人员在昂贵/耗时的真实世界能快速淘汰不太可能表现良好的模型.

  • 有助于估算模型的不确定性/信息密度

缺点:

  • 不适合最终评估,因为它只是测量模型的可信度,而不是准确性

  • 很难在不同上下文长度、词汇大小、基于单词与基于字符的模型等的数据集之间进行比较。

点个在看 paper不断!

【干货】NLP中对困惑度感到困惑?相关推荐

  1. NLP中对困惑度感到困惑?

    困惑度(Perplexity)在NLP中是个最流行的评估指标,它用于评估语言模型学的到底有多好. 但是很多炼丹师可能至今对"困惑度"依然感到困惑,这篇就把这个讲清楚. 假设我们要做 ...

  2. word2vec模型评估_干货 | NLP中的十个预训练模型

    Word2vec, Fasttext, Glove, Elmo, Bert, Flair pre-train Word Embedding源码+数据Github网址:https://github.co ...

  3. resnet预训练模型_干货 | NLP中的十个预训练模型

    Word2vec Fasttext ULMFit Glove Cove ELMO GPT1.0 GPT2.0 BERT Flair Embedding 一.Word2vec 1.word2vec种语言 ...

  4. nlp中文本相似度计算问题

    文章的目的:文本相似度计算一直是nlp中常见的问题,本文的目标是总结并对比文本相似度计算方法.当然文本的相似度计算会有进一步的应用,比如文本的分类.聚类等. 文章结构:本文先介绍最直接的字面距离相似度 ...

  5. nlp中文本相似度匹配

    项目中有用到NLP,博主在网上直接找了开源的 SimHash 上手效果不错(亲自实验)博主对比了余弦跟SimHash最后用了 SimHash 这个是开源代码 simHash package com.m ...

  6. perplexity 衡量指标_困惑度(perplexity)的基本概念及多种模型下的计算(N-gram, 主题模型, 神经网络)...

    让人困惑的困惑度 发现网络上流传的关于困惑度(perplexity)大多数都是利用了N-gram或者主题模型的例子来阐述的.但是现在这个年代来学习这个指标的人多半都是想研究神经网络的,而两者对困惑度 ...

  7. 困惑度 (perplexity)

    困惑度 (perplexity) 在自然语言处理中,对于一个语言模型,一般用困惑度来衡量它的好坏,困惑度越低,说明语言模型面对一句话感到困惑的程度越低,语言模型就越好. 对于LDA模型,最常用的两个评 ...

  8. 从0到1,了解NLP中的文本相似度

    本文由云+社区发表 作者:netkiddy 导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是, ...

  9. LDA主题模型困惑度计算

    对于LDA模型,最常用的两个评价方法困惑度(Perplexity).相似度(Corre). 其中困惑度可以理解为对于一篇文章d,所训练出来的模型对文档d属于哪个主题有多不确定,这个不确定成都就是困惑度 ...

最新文章

  1. Spring JDBC-使用Spring JDBC访问数据库
  2. NFS Volume Provider(Part I) - 每天5分钟玩转 OpenStack(62
  3. ddd架构 无法重构_漫谈分层架构:为什么要进行架构分层?
  4. 数据:以太坊矿工收入中的交易手续费占比达56%
  5. ORACLE异常处理及函数
  6. sitemesh初步
  7. 中文语音合成TTS (TensorFlowTTS)免费API资源及DEMO
  8. 小米手机怎么用计算机,小米手机怎么连接电脑
  9. 计算机IPv4升级到IPv6的技术,IPv4到IPv6的变化
  10. java实现前缀树--过滤敏感词汇
  11. LabVIEW开发太阳能测测系统
  12. 什么是路由器 它的工作原理是什么
  13. FJUT 2019暑假第三次周赛 C - 郭先生的魔法阵
  14. python解析pdf,读取文字,可识别两栏pdf等
  15. 使用客户端jedis时报错Could not get a resource from the pool 以及使用Spring Data Redis报错解决方法
  16. avro 文件的使用
  17. 程序猿终级课颈椎腰椎锻炼
  18. 基于Bert的微博舆论分析Web系统
  19. CodeForces - 253C:Text Editor(暴力枚举)
  20. 贴出:开复老师的心里话

热门文章

  1. QQ音乐API分析记录
  2. 永久设置SecureCRT的背景色和文字颜色方案
  3. japid-controller自动绑定的数据类型
  4. 青岛...沙尘暴!太可怕了~什么事儿都有!
  5. 【组队学习】【27期】Java编程语言
  6. 刻意练习:LeetCode实战 -- Task03. 移除元素
  7. 自动跟随小车c语言,基于OpenCV的智能小车运动轨迹跟踪方法研究
  8. phpstudy2014 php7.0,phpstudy下载_phpStudy下载2014 官方版_php环境集成包 1.0_零度软件园...
  9. 腾讯首位17级杰出科学家诞生:腾讯AI Lab负责人张正友
  10. 一文读懂:GoogleNet的Inception从v1到v4的演变