查看原文
其他

你的语言模型有没有“无法预测的词”?

苏剑林 PaperWeekly 2022-07-04


©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 追一科技
研究方向 | NLP、神经网络


众所周知,分类模型通常都是先得到编码向量,然后接一个 Dense 层预测每个类别的概率,而预测时则是输出概率最大的类别。但大家是否想过这样一种可能:训练好的分类模型可能存在“无法预测的类别”,即不管输入是什么,都不可能预测出某个类别 k,类别 k 永远不可能成为概率最大的那个。

当然,这种情况一般只出现在类别数远远超过编码向量维度的场景,常规的分类问题很少这么极端的。然而,我们知道语言模型本质上也是一个分类模型,它的类别数也就是词表的总大小,往往是远超过向量维度的,那么我们的语言模型是否有“无法预测的词”?(只考虑 Greedy 解码)




是否存在

ACL 2022 的论文《Low-Rank Softmax Can Have Unargmaxable Classes in Theory but Rarely in Practice》[1] 首先探究了这个问题,正如其标题所言,答案是“理论上存在但实际出现概率很小”。

首先我们来看“理论上存在”。为了证明其存在性,我们只需要具体地构建一个例子。设各个类别向量分为 ,偏置项为 ,假设类别 k 是可预测的,那么就存在 ,同时满足:

反过来,如果类别 k 不可预测,那么对于任意 ,必须存在某个 ,满足:

由于现在我们只需要举例子,所以简单起见我们先考虑无偏置项的情况,并设 k=n,此时条件为 ,也就是说,任意向量 必然能找到向量 与之夹角小于等于 90 度。不难想象,当向量数大于空间维度、向量均匀分布在空间中时,这是有可能出现的,比如二维平面上的任意向量,就必然与 之一的夹角小于 90 度,从而我们可以构造出例子:

在这个例子中,类别 5 就是不可预测的了,不信大家可以代入一些 试试。


怎么判断

现在我们已经确认了“无法预测的类别”是可能存在的,那么一个很自然的问题就是,对于一个训练好的模型,也就是给定 ,怎么判断其中是否存在不可预测的类别呢?
根据前一节的描述,从解不等式的角度来看,如果类别k是可预测的,那么下述不等式组的解集就会非空:

不失一般性,我们同样设 k=n,并且记 ,留意到:

所以,只要我们尽量最大化 ,如果最终结果是正的,那么类别n就是可预测的,否则就是不可预测的。如果之前读过《多任务学习漫谈:行梯度之事》的读者,就会发现该问题“似曾相识”,特别是如果没有偏置项的情况下,它跟多任务学习中寻找“帕累托最优”的过程是几乎一致的。
现在问题变为:

为了避免发散到无穷,我们可以加个约束

其中r是一个常数,只要r取得足够大,它就能跟实际情况足够吻合,因为神经网络的输出通常来说也是有界的。接下来的过程就跟多任务学习漫谈:行梯度之事的几乎一样了,首先引入:

那么问题变成:

根据冯·诺依曼的 Minimax 定理 [2],可以交换 的顺序:

很显然, 这一步在 同向时取到,结果为:

当 r 足够大时,偏置项的影响就非常小了,所以这几乎就等价于没有偏置项的情形:

最后的 的求解过程已经在多任务学习漫谈:行梯度之事中讨论过了,主要用到了 Frank-Wolfe 算法,不再重复。
注:以上判别过程是笔者自己给出的,跟论文《Low-Rank Softmax Can Have Unargmaxable Classes in Theory but Rarely in Practice》[1] 中的方法并不相同。


实践如何

前面的讨论都是理论上的,那么实际的语言模型出现“无法预测的词”的概率大不大呢?原论文对一些训练好的语言模型和生成模型进行了检验,发现实际上出现的概率很小,比如下表中的机器翻译模型检验结果:


▲ 机器翻译模型的检验结果

其实这不难理解,从前面的讨论中我们知道“无法预测的词”一般只出现在类别数远远大于向量维度的情况,也就是原论文标题中的“Low-Rank”。但由于“维度灾难”的原因,“远远大于”这个概念其实并非我们直观所想的那样,比如对于 2 维空间来说,类别数为 4 就可以称得上“远远大于”,但如果是 200 维空间,那么即便是类别数为 40000 也算不上“远远大于”。常见的语言模型向量维度基本上都有几百维,而词表顶多也就是数十万的级别,因此其实还是算不上“远远大于”,因此出现“无法预测的词”的概率就很小了。

另外,我们还可以证明,如果所有的 互不相同但是模长都相等,那么是绝对不会出现“无法预测的词”,因此这种不可预测的情况只出现在 模长差异较大的情况,而在当前主流的深度模型中,由于各种 Normalization 技术的应用, 模长差异较大的情况很少出现了,这进一步降低了“无法预测的词”的出现概率了。
当然,还是文章开头说了,本文的“无法预测的词”指的是最大化预测,也就是 Greedy Search,如果用 Beam Search 或者随机采样,那么即便存在“无法预测的词”,也依然是可能生成出来的。这个“无法预测的词”,更多是一个好玩但实用价值不大的理论概念了。




最后小结

本文向大家介绍了一个没什么实用价值但是颇为有意思的现象:你的语言模型可能存在一些“无法预测的词”,它永远不可能成为概率最大者。


参考文献

[1] https://arxiv.org/abs/2203.06462

[2] https://en.wikipedia.org/wiki/Minimax_theorem


更多阅读




#投 稿 通 道#

 让你的文字被更多人看到 



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


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


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编




🔍


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

进入知乎首页搜索「PaperWeekly」

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



·

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存