Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

©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

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注