最小熵原理系列:词向量的维度应该怎么选择?

2020 年 9 月 20 日 PaperWeekly


©PaperWeekly 原创 · 作者|苏剑林

单位|追一科技

研究方向|NLP、神经网络


随着 NLP 的发展,像 Word2Vec、Glove 这样的词向量模型,正逐渐地被基于 Transformer 的 BERT 等模型代替,不过经典始终是经典,词向量模型依然在不少场景发光发热,并且仍有不少值得我们去研究的地方。本文我们来关心一个词向量模型可能有的疑惑:词向量的维度大概多少才够?

先说结论,笔者给出的估算结果是:

更简约的话可以直接记 ,其中 N 是词表大小,n 就是词向量维度, 是自然对数。当 n 超过这个阈值时,就说明模型有足够的容量容纳这 N 个词语(当然 n 越大过拟合风险也越大)。
这样一来,当 N=100000 时,得到的 n 大约是 96,所以对于 10 万个词的词向量模型来说,维度选择 96 就足够了;如果要容纳 500 万个词,那么 n 大概就是 128。


背景

之所以想起这个问题,是因为昨天在 Arxiv 上刷到了论文 Word2vec Skip-gram Dimensionality Selection via Sequential Normalized Maximum Likelihood   [1]  ,遗憾的是,从这篇论文中笔者并没有找到想要的答案。顺带搜索了一下,发现也有类似文献研究同样的问题,比如 On the Dimensionality of Word Embedding  [2]  ,但答案依旧不是笔者想要的。
为什么这样说呢?很显然,这个问题的最标准答案应该是靠反复实验来确定最优维度,所以不能指望理论分析给出相当精确的答案。
我们平时用到的词向量维度,一般有 64、100、128、256、300 等,不同的维度之间效果差别其实也没多少,所以笔者只希望能从最简洁直观的方式推导一下一般词向量模型所需要的维度量级,比如几十或者几百,不应该出现太过复杂的分析。
由于没有找到比较满意的现有结果,因此笔者从最小熵原理角度分析了一下,得到了一个接近自己心中所想的答案。


分析

本文要分析是基于 Skip Gram 思想的词向量模型,多数词向量模型其实都是它的变种,至于 CBOW 类的模型,在以往的实验里,它的表现其实跟 Skip Gram 差不多(尤其是数据量较大时),因此可以认为 Skip Gram 的分析结果应该是通用的。

2.1 最小熵

我们的出发点是信息熵,我们知道,熵是不确定性的度量(参考“熵”不起:从熵、最大熵原理到最大熵模型(一)[3] ),语言本身具有一定的不确定性,而我们在用向量编码词语时,编码结果应该要等于甚至小于这种不确定性,才能保证这种编码是有效的、能充分保留原来语言的信息。所以,我们要消除不确定性,也就是要最小熵。

要注意的是,词向量是基于 Skip Gram 模型的,所以我们要计算的不是词平均熵,而是整个 Skip Gram 模型的平均熵,假设词对 的频率是 ,那么可以估算它的熵为:

不同的词向量训练目标也有所差异,有些是在拟合联合概率 ,有些是在拟合条件概率 ,但这差别不大,前面说了,本文只是想得到一个概数。所以这里统一假设词向量模型为:

其中 代表两套不同的词向量(中心词向量、上下文词向量), 代表词 代表词 。这时候它的信息熵是:
2.2 采样近似
为了近似计算上式,我们将求和用采样近似,比如:

这里的 N 是词表大小。同理:

所以我们有近似:
2.3 分布假设
观察已有的词向量模型,我们可以发现每个维度的数值有正有负,绝对值大小一般也比较均匀。在此,我们不妨假设每个元素的绝对值大概为 1,那么每个词向量的模长大致就为 (n 是词向量的维度,也就是我们要估算的目标,如果觉得这个近似不够准确,也可以自行调整)。
并且进一步假设所有的词向量均匀分布在半径为 的 n 维超球面上,那么 是它们的夹角,所以:

现在 相当于 n 维空间中任意两个向量的夹角,我们在 n 维空间下两个随机向量的夹角分布 [4] 中就求出了它的分布为:

既然概率密度函数都确定了,那么对于给定的 N 和 n,近似式(8)是完全可以数值计算出来的,而由 便可以解出对应的 n。

2.4 结果对比

首先我们数值计算出
的一些结果:

那么比如 n=64,N=100000,就有 。读者可能会觉得奇怪,当 n=128,N=100000时,H 不就是负数了?离散熵怎么可能是负数?

事实上,这是因为我们在前面的推导过程中,使用了采样近似和精确积分相结合的方式,当空间维数 n 足够大时,就算你采样几十万个样本也不一定能准确估计一些统计量,所以采样近似这一步带来了误差。

不过这倒是给我们另外一个确定n的思路:当出现 H < 0 时,说明 N 个样本已经无法对统计量做很好地估计了,那么反过来说就是此时的n维空间要容纳 N 个样本是“绰绰有余”的
因此,我们可以用 H < 0 简单确定一个边界,而不需要去估算 。(或者从另外一个角度想: 一定是大于 0 的,因此 H < 0 是 的充分条件。)
最后,我们看到 关于 n 大概是线性的, ,因此 ,让它小于 0 我们可以解出公式(1)了。


小结

本文从最小熵原理的思想出发分析了词向量的维度选择问题,最终给出了一个近似的估算公式,计算结果表明该估算公式与我们以往的炼丹经验是相符的。



参考文献


[1] https://arxiv.org/abs/2008.07720
[2] https://arxiv.org/abs/1812.04224
[3] https://kexue.fm/archives/3534
[4] https://kexue.fm/archives/7076



更多阅读





#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
0

相关内容

机器学习的可解释性
专知会员服务
172+阅读 · 2020年8月27日
【Contextual Embedding】什么时候上下文嵌入值得使用?
专知会员服务
15+阅读 · 2020年8月2日
最新《机器学习理论初探》概述
专知会员服务
42+阅读 · 2020年5月19日
【CVPR2020-CMU】无数据模型选择,一种深度框架潜力
专知会员服务
21+阅读 · 2020年4月12日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
347+阅读 · 2020年2月15日
深度上下文词向量
微信AI
27+阅读 · 2018年9月13日
专栏 | fastText原理及实践
机器之心
3+阅读 · 2018年1月26日
干货|EM算法原理总结
全球人工智能
17+阅读 · 2018年1月10日
基础|Word2vec的原理介绍
全球人工智能
10+阅读 · 2018年1月4日
干货 | 自然语言处理(1)之聊一聊分词原理
机器学习算法与Python学习
5+阅读 · 2017年12月7日
机器学习(30)之线性判别分析(LDA)原理详解
机器学习算法与Python学习
11+阅读 · 2017年12月6日
机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数
机器学习算法与Python学习
3+阅读 · 2017年9月23日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
PCA的基本数学原理
算法与数学之美
11+阅读 · 2017年8月8日
Arxiv
0+阅读 · 2020年12月2日
Arxiv
0+阅读 · 2020年11月26日
Arxiv
3+阅读 · 2019年8月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
5+阅读 · 2019年4月25日
Zero-Shot Object Detection
Arxiv
9+阅读 · 2018年7月27日
VIP会员
相关VIP内容
机器学习的可解释性
专知会员服务
172+阅读 · 2020年8月27日
【Contextual Embedding】什么时候上下文嵌入值得使用?
专知会员服务
15+阅读 · 2020年8月2日
最新《机器学习理论初探》概述
专知会员服务
42+阅读 · 2020年5月19日
【CVPR2020-CMU】无数据模型选择,一种深度框架潜力
专知会员服务
21+阅读 · 2020年4月12日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
347+阅读 · 2020年2月15日
相关资讯
深度上下文词向量
微信AI
27+阅读 · 2018年9月13日
专栏 | fastText原理及实践
机器之心
3+阅读 · 2018年1月26日
干货|EM算法原理总结
全球人工智能
17+阅读 · 2018年1月10日
基础|Word2vec的原理介绍
全球人工智能
10+阅读 · 2018年1月4日
干货 | 自然语言处理(1)之聊一聊分词原理
机器学习算法与Python学习
5+阅读 · 2017年12月7日
机器学习(30)之线性判别分析(LDA)原理详解
机器学习算法与Python学习
11+阅读 · 2017年12月6日
机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数
机器学习算法与Python学习
3+阅读 · 2017年9月23日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
PCA的基本数学原理
算法与数学之美
11+阅读 · 2017年8月8日
Top
微信扫码咨询专知VIP会员