⏰ 发表时间:2024-11-05
原创 艾木三号 Mindstorms
写在前面的话
“词嵌入和类比”是我最近比较感兴趣的一个主题。我陆陆续续地看了一些资料,但自觉尚未达到完全消化的程度,所以还无法基于自己的理解作体系化的论述。这篇文章是一份索引,希望能为同样对此主题感兴趣的朋友提供些参考。
声明:文中所有翻译内容均由 Claude 生成。
Geoffrey Hinton 的直觉
词嵌入(word embeddings)是大语言模型的架构中的一个核心模块。它对于大语言模型的作用是什么?听听 Geoffrey Hinton 是怎么解释的[1]:
主持人:
你能带我们了解一下这些模型是如何被训练来预测下一个词的吗?为什么说这是一种错误的思维方式?
Geoffrey Hinton:
我其实并不认为这是错误的方式。事实上,我认为我制作了第一个使用词嵌入(embeddings)和反向传播(backpropagation)的神经网络语言模型。这是非常简单的数据,仅仅是三元组。它将每个符号转换为嵌入,然后让这些嵌入相互作用来预测下一个符号的嵌入,然后从中预测下一个符号。接着通过反向传播来学习这些三元组,我证明了它可以泛化。大约十年后,Yoshua Bengio 使用了一个非常相似的网络,并证明它可以处理真实文本。又过了大约十年,语言学家们才开始相信词嵌入。这是一个缓慢的过程。
我认为它不仅仅是在预测下一个符号的原因是,如果你问:"预测下一个符号需要什么?"特别是当你问我一个问题,而答案的第一个词就是下一个符号时,你必须理解这个问题。所以我认为通过预测下一个符号,它与传统的自动补全有很大的不同。
在传统的自动补全中,你会存储词语的三元组,然后如果你看到一对词,你会看到不同的词作为第三个词出现的频率,这样就可以预测下一个符号。这就是大多数人认为的自动补全的样子。但现在已经完全不是这样了。要预测下一个符号,你必须理解已经说过的内容。
所以我认为,通过让它预测下一个符号,你实际上是在强迫它理解,而且我认为它的理解方式与我们非常相似。很多人会告诉你:"这些东西和我们不一样。它们只是在预测下一个符号。它们不像我们那样推理。"但实际上,为了预测下一个符号,它必须进行一些推理。我们现在已经看到,如果你制作大型模型,即使不添加任何特殊的推理功能,它们已经能够进行一些推理。我认为随着模型规模的增大,它们将能够进行越来越多的推理。
自然语言是由一个个文字符号组成的。但在大语言模型内部,它并不会直接处理这些文字符号,而是会将文字符号转换成一个个向量(通常是一串浮点数),然后对这些表征向量做各种运算。这些向量也就是我们所说的词嵌入(word embeddings)。
词嵌入不仅仅是大语言模型的关键部件,它本身也有很多应用,比如 RAG。甚至在大语言模型之前,NLP 领域就出现过很多词嵌入模型,比如有名的 word2vec。
回到大语言模型,词嵌入最重要的作用可能还是它让大语言模型具备了类比(analogy)能力。
主持人:
是什么使这些模型能够学习如此广泛的领域?
Geoffrey Hinton:
这些大型语言模型正在做的是寻找共同的结构。通过找到共同结构,它们可以使用这些共同结构来编码信息,这样更有效率。
让我举个例子。如果你问 GPT-4,"为什么堆肥堆像原子弹?"大多数人都回答不了这个问题。大多数人从未想过这个。他们认为原子弹和堆肥堆是完全不同的东西。
但 GPT-4 会告诉你,"虽然能量尺度很不同,时间尺度也很不同,但相同的是当堆肥堆变得更热时,它产生热量的速度会更快。而当原子弹产生更多中子时,它产生中子的速度也会更快。"这样它就理解了链式反应的概念。
我相信它已经理解了这两者都是链式反应的形式。它利用这种理解将所有信息压缩到其权重中。如果它能做到这一点,那么它就能对数百种我们尚未发现类比关系的事物做同样的事,而它已经发现了这些类比。
这就是创造力的来源,来自于发现表面上完全不同事物之间的类比。所以我认为当GPT-4变得更大时,最终会变得非常有创造力。我认为认为它只是在重复它学到的东西,只是在拼凑已经学过的文本的想法是完全错误的。我认为它将会比人类更有创造力。
类比是一种泛化手段,会类比就意味着可以做某种程度的迁移。如果我们想更具体而不是泛泛地谈论 AGI 中的那个“G”,可能最终还是要回归到对大语言模型的类比能力的分析上。
侯世达:类比是人类认知的核心
提到类比,你就不得不提一个人——侯世达。侯世达曾为类比这个主题大书特书,他认为类比是人类认知的核心[2]。
首先要说明,侯世达认为类比跟推理没有多大关系,“类比推理”这个词本身就不合理。

类比更多的跟知觉(perception)相关。

为什么说类比是人类认知的核心?侯世达做了一个类比:“类比是认知的州际高速公路系统。”这是一个非常妙的类比。

类比的核心作用并不在于它像一个内核或者一个中枢,而在于它像一张交通网。它最大的作用是帮我们在认知中建立联系,让我们的思维可以在不同的领域之间自由传输(transportation)。
侯世达举了很多例子,比如下面就是一个非常有意思的例子。

上面那张照片是在有阳光的时候拍摄的,因为树遮挡了阳光,而形成了阴影。下面那张图是在下雪的时候拍摄的,雪落下的时候被树遮挡了,在树下面形成了一种没有雪的“阴影”。这是一个非常妙的类比。
我们有一个网络梗叫“求某人的心理阴影面积”,这同样是一个类比。我们还会说,“某人活在战争的阴影中”。
这些类比扩展了“阴影”这个词的含义。这是概念在认知中发展的一种过程:当我们发现一个新的概念实例,我们就将它纳入到这个概念的概括之下,这样这个概念的含义就得到了扩充。类比是促成这一发展过程的重要机制。

AI Dungeon 团队如何用类比创造“世界”
你可能听说过那个著名的公式:king - man + woman ≈ queen。

图源见 [3]
从词嵌入模型(比如 word2vec [4])中提取出 king、man、woman 这几个词的向量表示,然后做如上计算,得到的向量会非常接近 queen 的向量表示。大语言模型里的词向量应该也遵从这个运算规律。
这个公式可以理解为:从国王身上减去男人的属性,然后再加上女人的属性,就约等于皇后。这表示词向量表征捕捉到了一些概念之间的语义关系。
它表示了什么关系?把这个公式变换一下形式,就可以看得很清楚了:

这是类比的一种形式化表示 [5](尽管这种表示非常地局限 )。它可以理解为:男人和女人之间的关系与国王和皇后之间的关系类似。这里突出的语义关系是“男-女”关系。
类似的,在词嵌入空间中我们还可以发现很多其他的关系类比,比如“国家-首都”。

图源见 [6]
可以确定,大语言模型的类比能力一定是跟词嵌入的这种特性有关系。到底有什么关系呢?AI Dungeon 团队有一个假设 [7],他们认为大语言模型的学习和推理过程,实际上就是在做类比运算。
大语言模型在学习的时候,是在根据输入的训练语料上下文预测语料中的下一个词。在推理的时候,它需要根据新的上下文来预测下一个词是什么。这个过程可以形式化表示为:

用公式形式表示就是:

这就是大语言模型在预测下一个词时所做的操作。这种理解不一定完全准确,但是对我非常有启发。它一定程度上解释了大语言模型做类比的机制: 先去情境化(decontextualize),然后重新情境化(recontextualize),这个过程也就是我们通常意义理解的泛化(generalization)。
In-context Leaning 也是这个机制。AI Dungeon 会利用大语言模型的类比能力生成各种“世界”(故事发生的虚构环境)[7]:

大语言模型的输出:

尽管任务变复杂了,但是这里也可以理解为一种类比运算:

概念是向量还是符号?
概念,可能是人类认知中最难捉摸、最难定义、最难理解的概念之一。
有人说,概念很可能是向量,向量是概念最好的表征 [8]。因为向量表征“能够支持各种属性的计算,包括相似性、特征、类别、定义和关系”,它“能够支持理论的发展、临时类别的形成以及程序性知识”。
上面这种观点应该已经成为当下 AI 领域的主流观点了。但起初大家并不是这么认为的,之前的主流观点是符号主义,认为知识应该是由符号表征的,思考和推理的过程就是处理符号的过程。
概念是向量还是符号?Geoffrey Hinton 会怎么看这个问题?你可能会认为他当然是支持概念是向量。是,又不完全是。最后我们来听听他具体是怎么说的[1]:
主持人:
你认为是人类大脑进化以更好地适应语言,还是语言进化以更好地适应人类大脑?
Geoffrey Hinton:
我认为语言是否进化以适应大脑,或大脑是否进化以适应语言,这是一个很好的问题。我认为两者都发生了。我过去认为我们可以在完全不需要语言的情况下进行大量认知活动。现在我的想法有所改变。
让我给你介绍三种不同的语言与认知关系的观点。首先是传统的符号观点,认为认知包含在某种经过简化的逻辑语言中操作符号串,这种语言中没有歧义,并应用推理规则。这就是认知的本质,它只是对类似语言符号串的符号操作。这是一种极端观点。
另一种相反的极端观点是,不,一旦进入大脑内部,一切都是向量。符号输入后被转换成高维向量,内部的所有处理都是用高维向量完成的,如果你想产生输出,就再次产生符号。在2014年左右的机器翻译领域,人们使用循环神经网络时,词语会不断输入,它们会有一个隐藏状态,并在这个隐藏状态中不断积累信息。所以当它们到达句子末尾时,会有一个捕捉了该句子含义的高维隐藏向量,这个向量可以用来生成另一种语言的句子。这被称为思维向量。这是关于语言的第二种观点。你把语言转换成一个与语言完全不同的高维向量,这就是认知的全部内容。
但还有第三种观点,也是我现在相信的观点,就是你把这些符号转换成嵌入向量,并使用多层结构,这样你就得到了非常丰富的嵌入,但这些嵌入仍然与符号相关联。这意味着你为这个符号有一个高维向量,为那个符号有一个高维向量,这些向量相互作用产生下一个词的符号向量。这就是理解的本质。理解就是知道如何将符号转换为这些向量,并知道向量的元素应该如何相互作用来预测下一个符号的向量。这就是这些大型语言模型和我们大脑中的理解方式。这是一个介于两者之间的例子。你仍然保持着符号,但你将它们解释为这些高维向量,这就是所有工作的重点。所有的知识都在于你使用什么向量以及这些向量的元素如何相互作用,而不是在符号规则中。但这并不是说你完全摆脱了符号。这是说你把符号转换成高维向量,但你仍然保持着符号的表层结构。这就是这些模型的工作方式。而且这现在似乎也是一个更合理的人类思维模型。
……
我现在不认为这(符号处理)完全是无稽之谈,因为我认为我们确实在进行符号处理。只是我们是通过给这些符号赋予高维嵌入向量来实现的。我们确实在进行符号处理,但完全不是人们过去认为的那种方式。在过去的理解中,符号处理就是匹配符号,而符号唯一的属性就是它与另一个符号相同或不相同。我们完全不是那样做的。我们使用上下文为符号赋予嵌入向量,然后利用这些嵌入向量组件之间的相互作用来进行思考。Google 有一位非常优秀的研究员叫 Fernando Pereira,他说:"是的,我们确实有符号推理,而我们拥有的唯一符号系统就是自然语言。自然语言是一种符号语言,我们用它来进行推理。"现在我也相信这一点。
写在后面的话
我对“向量是概念最好的表征”这个观点存疑。就拿类比来讲,基于向量表征的类比运算有很大的应用潜力,但是它并不如想象中那么美好 [9][10]。向量真的能捕捉到概念的所有重要的特性吗?真的能支持所有重要的认知活动吗?人类的知识真的能完全投射到一个高维空间之中吗?
我对“类比是人类认知的核心”这个观点也存疑。类比可能只是我们思维活动的一个方面,虽然它很重要。
但有一点我是比较确定的,类比是(目前这个版本的)大语言模型“认知”的核心。
我觉得类比是个非常有趣的主题。侯世达写了很多关于类比的内容,我都还没读过。接下来我想要邀请一些朋友一起共读一下这些内容,主要会从《概念与类比》和《表象与本质》这两部书里找一些有意思的章节来读一读,然后一起交流一下。参加读书会需要完成至少一次领读任务,感兴趣的朋友可以联系我。
参考:
[1]https://www.youtube.com/watch?v=n4IQOBka8bc
[2]https://www.youtube.com/watch?v=n8m7lFQ3njk
[3]https://doi.org/10.1155/2022/3518673
[4]https://arxiv.org/abs/1301.3781
[5]https://doi.org/10.1016/0010-0285(73)90023-690023-6)
[6]https://arxiv.org/abs/1310.4546
[7]https://aidungeon.medium.com/world-creation-by-analogy-f26e3791d35f
[8]https://doi.org/10.1016/j.tics.2024.06.011
[9]https://doi.org/10.18653/v1/S17-1017
[10]https://doi.org/10.1016/j.cognition.2020.104440
