前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通俗讲解语言模型的评价指标-困惑度

通俗讲解语言模型的评价指标-困惑度

作者头像
触摸壹缕阳光
发布2020-07-20 16:15:02
2.6K0
发布2020-07-20 16:15:02
举报
文章被收录于专栏:AI机器学习与深度学习算法

本文主要介绍语言模型的评价指标困惑度(perplexity)。

无论是n-gram语言模型(unigram, bigram, tirgram)还是理论上可以记忆无限个单词(无穷元语法, ∞-gram)递归神经网络语言模型(RNN Language Model),都会涉及到一个最关键的问题:如何来评价这些语言模型的好坏?

语言模型是很多涉及到产生文字或预测文字概率的NLP问题的组成部分,因此最为直观的评价方法是对应用语言模型的NLP任务进行评估。为了评估语言模型的好坏,运行更为复杂且更加耗时的其它NLP任务,显然这种方法比较繁琐。

有没有一种能够直接对语言模型进行评价的方法呢?语言模型简单来说就是计算句子的概率值,通常认定测试集中的句子为模拟真实生产环境中的正常句子,因此在训练数据集上训练好的语言模型,计算在测试集中的正常句子的概率值越高说明语言模型的越好,而这正是困惑度(perplexity)的基本思想。

困惑度是语言模型效果好坏的常用评价指标,计算困惑度的公式如下:

\begin{aligned}perplexity(S) &= p(w_1,w_2,w_3...,w_n)^{-\frac{1}{n}} \\&= \sqrt[n]{\frac{1}{p(w_1,w_2,w_3...,w_n)}} \\&= \sqrt[n]{\prod_{i=1}^{n}{\frac{1}{p(w_i|w_1, ...,w_{i-1})}}} \end{aligned}

在测试集上得到的困惑度越低,说明语言模型的效果越好。通过上面的公式也可以看出,困惑度实际上是计算每一个单词得到的概率导数的几何平均,因此困惑度可以理解为平均分支系数(average branching factor),即模型预测下一个单词时的平均可选择的单词数量。

上面都是在计算一个句子的困惑度,如果测试集中有n个句子,只需要计算出这n句子的困惑度,然后将n个困惑度累加取平均,最终的结果作为训练好的语言模型的困惑度。

参考:

  1. 《实战Google深度学习框架》
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档