[BTTB] 信息论,语言模型,压缩闲谈

2020 年 4 月 26 日 AINLP

这篇想法源于之前看到 Hutter 奖( http://prize.hutter1.net/ )的更新信息,该奖主要由 AGI 研究人员 Marcus Hutter 赞助,奖金 50 万欧,目的是尽可能地压缩一个文件 (enwiki9,维基百科的前 1GB,人类知识象征)。

而之所以奖励一个压缩任务,是因为 Hutter 认为,压缩是通往真正人工智能的必经之路,而且现在智能度量标准也还很模糊,所以与其去搞那些虚的,不如直接上简单粗暴的压缩。

当然不光 Hutter 一人认为压缩和智能有很大关系,很多其他研究也都支持了这个观点,包括 J. Gerard Wolff 很早一篇 Language Acquisition, Data Compression (语言获得,数据压缩),现在也在看 Wolff 的最近一篇长文。

当然压缩不光和智能有关,本来也是一个充满应用场景的任务,所以美剧《硅谷》都给 PP 专门挑了压缩算法起家,扯远了...

实际上从信息论角度看语言模型训练,会发现其实它就是一个类似压缩的过程

Information Theory 101

先来简单说说信息论。

信息论中最重要的概念,信息熵,一个随机变量  , 对应取值  ,以及概率质量函数为 P(X),那么它的信息熵就为

这个信息熵是什么意思呢,香农定义它为,如果给从分布  中抽样的数据编码,那么至少也需要  nats 来对每个数据进行编码。nat 可能大家听得少,但它的小兄弟 bit 大家应该是耳熟能详。

两个区别只是对数底不同,

如果从概率角度来理解,对于每个自信息  ,在  越小时自信息就越大,这也是香农想传达的主要思想,一个概率越小的事情一旦出现,那就表示其中的信息量越大,也越会让我们惊讶。

比如说明天太阳从东方升起,和最近原油跌到负数,哪个会让你更惊讶呢,哪个信息量更大呢,不言而喻。

因此从这个角度来看信息熵的话,其实就是在度量一个随机变量的平均信息量,或者说平均让人惊讶程度

而一旦说到惊讶,就又会和一个概念联系起来。那就是预测

对于任何事物只有当没有预测到时,才会产生惊讶,也就是万万没想到。如果一个东西,能够很容易预料到第一步第二步第三步只会让你觉得无聊,就像校长又臭又长的讲话。

而提到预测,自然就和下一个话题联系起来了,它主要根据当前已有词预测下一个词。

它就是,语言模型

Language Model 101

简单来说就是用来计算某段语言出现概率的模型(更广泛可定义为捕捉语言中结构),而一般计算方法是以字符为单位进行预测,计算概率,放一起就是一句话概率。

而计算时一般用交叉熵损失,对每个字符,假设  是真实概率分布,而  是模型输出的

便于讲解可以重写上面公式

还是真实概率,但此时假设我们就是模型,那么  就是作为观察者的主观概率。于是上面的模型就可以理解成,作为观察者的我们,在主观概率  的情况下,看到分布概率为  的数据时获得的期望惊讶值,也可以理解成信息量。

之后观察者可以根据此来调整自己输出的主观概率,在机器学习模型中就是学习到新参数,获得新预测结果。

而通过学习训练,交叉熵的最小值,会在当主观概率  与实际概率  相同时达到,而此时交叉熵的值就是  也就是  的信息熵

也就是实际概率分布  的编码极限。

一个有意思的视角,如果将人看作是语言模型,那么  就是母语者,因为实际数据本身就是从母语者采样出来的。而  可以看作是非母语者学习这门语言,理论上学习的极限就是成为母语者  . 此外如果是相同语系,比如意大利语到西班牙语,那么首先  和  分布接近,那么学习者也更轻松,学习过程更短,而如果  和  分布相差很大,那么整个学习过程也会比较难。

Compression 101

而想要压缩文本的话,只需要能根据当前已有字符预测下一个字符就行,这正是语言模型干地。

为什么压缩和预测相关呢?举一个简单的例子。

假如说我们有一句话,只有一个字,而且不停重复

哈哈哈哈哈哈哈哈哈哈哈哈哈哈....(n次)

怎么压缩?“哈 x n” 就可以简单表示,只需要每次百分百预测 “哈” 就行。

然后另一句话,我用脸滚出来的

欸额日俄覅个瑞软规格热和给i个瑞哥尔贵...

假设完全随机,那么这个基本上无法压缩,只能用原句来表示,而此时要预测的话,也不知道每一步要预测什么字,因为是随机生成出来的。

而语言模型就是一个根据当前字符预测下一个字符

于是根据信息论,也意味着对于每次预测结果编码最少需要用的 bit 数是

一个好的语言模型意味者每次预测都比较准确,因此需要的 bit 数也就少。而这个极限也在之前说了,由这个语言本身概率分布的性质决定。

既然知道了一个字符压缩需要 bit 数,那么对于一句话

就意味着对于这句话中每个字的平均所需 bit 数。

熟悉语言模型的同学这时应该已经看出来了,只要加上指数函数,给 log 的底换一下,就是老朋友困惑度(Perplexity)了.

因此也能从压缩角度来解释用困惑度来评估句子的操作,相当于,对于当前模型,如果给一句话,其能对这句话压缩的程度,这句话符合当前域,那压缩程度就大,困惑度就小;如果不符合,那么压缩程度就小,困惑度就大。

回到篇头的 Hutter 奖,现在的深度学习 SOTA 模型在 enwiki8 数据集上,已经可以达到 0.94 BPC (bit per character,bit 每字符)的性能,这个已经在香农当年估计的英文信息熵范围内。

那么是不是说明这个奖项太好拿,现在随便拿个深度学习模型就能压缩到很好,然而要是这样想就太 naive 了,首次现在模型都是巨型模型,而最好的语言模型“人脑”,显然小很多,而即使训练出来,因为深度学习的特性,也不知道具体编码是什么样。

Hutter 奖明确要求,压缩器和压缩文件加起来得 < 116.673.681 bit ,看来是没戏了,害。


推荐阅读

AINLP年度阅读收藏清单

百度PaddleHub&nbsp;NLP模型全面升级,推理性能提升50%以上

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

From Word Embeddings To Document Distances 阅读笔记

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

这门斯坦福大学自然语言处理经典入门课,我放到B站了

可解释性论文阅读笔记1-Tree Regularization

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


登录查看更多
1

相关内容

信息理论的鼻祖之一Claude E. Shannon把信息(熵)定义为离散随机事件的出现概率。所谓信息熵,是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率。而信息熵和热力学熵是紧密相关的。
【ICML2020】统一预训练伪掩码语言模型
专知会员服务
25+阅读 · 2020年7月23日
【ACL2020-Allen AI】预训练语言模型中的无监督域聚类
专知会员服务
23+阅读 · 2020年4月7日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
从信息论的角度来理解损失函数
深度学习每日摘要
17+阅读 · 2019年4月7日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
机器学习(36)之协同过滤典型算法概述【精华】
机器学习算法与Python学习
4+阅读 · 2018年1月20日
从香农熵到手推KL散度:一文带你纵览机器学习中的信息论
【直观详解】信息熵、交叉熵和相对熵
机器学习研究会
10+阅读 · 2017年11月7日
机器学习(13)之最大熵模型详解
机器学习算法与Python学习
7+阅读 · 2017年8月24日
RNN增强—ACT(自适应计算次数)多因子选股模型
量化投资与机器学习
3+阅读 · 2017年8月13日
Arxiv
15+阅读 · 2019年6月25日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
10+阅读 · 2018年3月22日
VIP会员
相关资讯
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
从信息论的角度来理解损失函数
深度学习每日摘要
17+阅读 · 2019年4月7日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
机器学习(36)之协同过滤典型算法概述【精华】
机器学习算法与Python学习
4+阅读 · 2018年1月20日
从香农熵到手推KL散度:一文带你纵览机器学习中的信息论
【直观详解】信息熵、交叉熵和相对熵
机器学习研究会
10+阅读 · 2017年11月7日
机器学习(13)之最大熵模型详解
机器学习算法与Python学习
7+阅读 · 2017年8月24日
RNN增强—ACT(自适应计算次数)多因子选股模型
量化投资与机器学习
3+阅读 · 2017年8月13日
Top
微信扫码咨询专知VIP会员