01 / 15
硅基迷航 · 第 21 期

汉堡和北京,AI 为什么觉得它们最像?

词向量:用一串数表示一个词

汉堡是吃的,北京是城市,八竿子打不着。可我们用一个真实的 AI 模型给 137 个词各算了一串数,再一对一对地比,跟汉堡最像的词,偏偏是北京。那苹果呢,它更像香蕉,还是更像手机?AI 从没吃过汉堡,也没去过北京,它凭什么判断两个词像不像?

第 21 期 · 2026-11-07 · 2026-11-08 修订

↓ 往下翻,或按方向键往上滑
开场

“猫在卧室里走”和“狗在房间里跑”,你一读就知道这两句话说的差不多:一只动物在屋里走动。

假如有一个语言模型,训练用的文字里有“猫在卧室里走”,却从来没有“狗在房间里跑”。碰到后一句,它能接上吗?要接上,它得先知道“猫”和“狗”这两个词像。可它只读过文字,从没见过一只真的猫或狗。

苹果更像哪个?
苹果更像哪个?
01

前情:AI 这一路走到了哪里

这一篇接着前面几篇往下讲。前面讲过的知识,分成两组:

人工智能是怎么来的

  • 01图灵测试1950 年,英国数学家图灵问“机器能思考吗”,又把这个问题换成一个打字聊天的游戏:聊下来,分不清对面是人还是电脑。
  • 02人写规则与从例子里学让电脑有本领,有两种办法。一种是人把规则写给它,1997 年,IBM 的深蓝这样赢了国际象棋世界冠军;另一种是让它从很多例子里自己学,AlphaGo 从大量棋局里学会了下围棋。识别猫、说话,规则写不完,只能学。

语言模型怎样接话

  • 01大语言模型从非常多的文字里学出哪些字常跟在哪些字后面,聊天 AI 靠它接话。
  • 02文字接龙与前文1948 年,香农用一本书玩接词:只看前一个词,接出来读不通;把前面的词都带上,就像话多了。
  • 03规则派与统计派机器翻译走过两条路,一条是人写语法规则,一条是从大量对照好的句子里统计。大语言模型走的是后一条。
  • 04概率与按概率挑字语言模型根据前面的文字,给下一个字的各种接法算出概率。在一本书里,“中”后面 1878 处有 933 处是“国”,差不多一半,这就是“国”接在“中”后面的概率。挑字像抓阄,常跟的字阄多,所以同一个问题问两遍,回答可能不一样。
  • 05统计语言模型与没见过就是 0靠数次数得到概率的语言模型,叫统计语言模型;1972 年起,IBM 的研究组用它做语音识别。它的毛病是没见过的说法,数出来是 0。
  • 06神经网络语言模型2003 年,本吉奥改用神经网络来算概率,没见过的句子也能接。它凭什么接得上,就是这一篇要讲的。

前面几篇:《电脑赢了世界冠军,为什么还认不出一只猫?》《下棋能写成规则,说话也能吗?》《翻书接词的小游戏,离聊天 AI 有多远?》《聊天 AI 文字接龙的下一个字,靠抓阄吗?》。

02

只会数次数,没见过的句子分不到机会

统计语言模型的做法是数次数:把大量文字从头数到尾,记下每个词后面跟过什么,跟得多的,概率就大。

它有个老毛病:没见过的句子,最简单的数法会数出 0,接不下去。人们想过补救的办法,比如句子太长查不到,就退回去只看最后一两个词,可这样补得很粗。人每天说的话里,很多句子从来没有人原样写过,这个毛病躲不开。

2003 年,加拿大蒙特利尔大学的约书亚·本吉奥和几位研究者在论文里正面说出了这个难题:模型训练好以后,拿来测试它的新句子,多半和训练时见过的每一句都不一样。论文里用英文举了一个例子,意思正是开头那两句:见过“猫在卧室里走”,应该能帮模型把“狗在房间里跑”也算得差不多可能,因为“猫”和“狗”、“卧室”和“房间”、“走”和“跑”,用法都很像。

问题于是变成:只读文字,怎么知道两个词用法像?

数出来的次数。
数出来的次数。
03

看一个词和谁做伴

1957 年,英国语言学家弗斯说过一句后来常被引用的话:要认识一个词,看它和谁做伴。两个词常和同样的词一起出现,用法就像。

我们自己编 10 句话,照这个办法数一数:

  1. 1我给猫喂了鱼。
  2. 2我给狗喂了肉。
  3. 3猫在沙发上睡觉。
  4. 4狗在沙发上睡觉。
  5. 5猫在院子里跑。
  6. 6狗在院子里跑。
  7. 7狗在门口叫。
  8. 8爸爸开汽车上班。
  9. 9汽车在马路上跑。
  10. 10妈妈给汽车加油。

挑出“喂、睡觉、跑、叫、开、加油”6 个词,数“猫”“狗”“汽车”各和它们一起出现了几次,每个词就得到一行 6 个数:

  • 猫:1,1,1,0,0,0
  • 狗:1,1,1,1,0,0
  • 汽车:0,0,1,0,1,1

“猫”和“狗”这两行几乎一样,只差一个“叫”;“汽车”只在“跑”这一格,和它们一起不是 0。照这个办法,光从句子里数,不用告诉电脑猫和狗都是动物,也能看出这两个词用法像。

用一串数表示一个词,这串数叫这个词的词向量。上面每一行数,就是一个最简单的词向量,它的每一格都对应一个看得懂的词。

猫、狗、汽车各和谁做伴。
猫、狗、汽车各和谁做伴。
04

两串数有多像

两串数像不像,可以算出一个数,越接近 1 越像。数学上有个现成的算法,叫余弦相似度。按它算,猫和狗是 0.87,猫和汽车是 0.33。

它的算法要用到中学数学,结果却能看出个大概:两串数一起不是 0 的格子越多,各自单独有的格子越少,就越接近 1。猫和狗有 3 格一起是 1,狗多了一格“叫”,所以是 0.87,不是 1;猫和汽车只有 1 格一起是 1。

05

本吉奥:猜下一个词,顺手调出这串数

本吉奥的神经网络语言模型没有去数这样一张表。神经网络是一种计算方法,它里面有很多可以调的数,拿大量例子反复练习,每次练完都把这些数调一点,让下一次算得更准。

本吉奥给每个词一串数,论文里是 30、60 或 100 个,一开始是随便定的。模型拿一个词的这串数,去算后面接什么的概率。它拿大量句子练习猜下一个词,猜完对照原文,把相关的数调一点。

拿前面的 10 句话想一想:“猫”后面要接“在沙发上睡觉”,“狗”后面也要接。要让两边都猜对,“猫”和“狗”的两串数就得起差不多的作用,于是常被往同一个方向调。练得多了,和同样的词做伴的两个词,数多半会越来越像。

数像了,算出来的概率也就像。模型见过“猫在卧室里走”,碰到“狗在房间里跑”,每个词都有一个数很像的词在前面那句里,这句话就能算出不小的概率,不会只得到 0。

和手数的表不一样,这样调出来的每一个数,都不对应哪个看得懂的词。

示意:练得越多,“猫”和“狗”的两串数越像。不是真实模型的数。
示意:练得越多,“猫”和“狗”的两串数越像。不是真实模型的数。
06

一个真实模型算出来的词向量

今天有一类模型,叫文本向量模型,专门把文字变成一串数,常用在搜索里:把意思相近的文字找出来。它算数的办法和本吉奥的模型不一样,我们只用它看看真实的词向量长什么样,用法像的词是不是真的数也像。

我们用的是阿里云的文本向量模型 text-embedding-v4,它给每个词算 1024 个数。这是“猫”的词向量:

前面带“-”的数比 0 还小,叫负数。和本吉奥的模型一样,这些数单看看不出意思,要拿去比。把论文例子里的三对词都算一遍余弦相似度,每对旁边再放一对不像的做对照:

论文里的一对 相似度 对照 相似度
猫和狗 0.69 猫和汽车 0.46
卧室和房间 0.78 卧室和老虎 0.28
走和跑 0.62 走和苹果 0.40

每一组里,论文说用法像的那一对,都更接近 1。在这个模型里,不怎么相干的两个词也常有 0.4 左右,所以要和对照比,不看单个数。

“猫”的词向量,图上是 1024 个数里的前 48 个。
“猫”的词向量,图上是 1024 个数里的前 48 个。
两串数有多像。
两串数有多像。
07

“苹果”最像的词是手机

和一个词最像的几个词,叫它的近邻。在我们算过的 137 个词里,“苹果”的近邻是这样的:

离“苹果”最近的是手机(0.67)、电脑(0.65)、平板(0.58);香蕉只有 0.43,西瓜 0.46。

用“看它和谁做伴”来想:“新买的____屏幕很亮”“____发布会”,空里填“苹果”通,填“手机”“电脑”也通。说苹果的很多句子,和说手机、电脑的句子长得像,它们就和同样的词做伴。这多半就是苹果挨着手机的原因。所以近邻是用法像的词,不一定长得像,也不一定是同一类东西。

“汉堡”也一样:它最像的词是北京(0.70),比面包(0.49)还像。德国有座城市叫汉堡,“去____旅游”“____是一座大城市”,空里填汉堡、填北京都通。

也有说不清的:“苹果”的第 4 个近邻是“马”(0.55)。为什么这样,我们也不知道。

“苹果”的近邻。线越短越像。
“苹果”的近邻。线越短越像。
08

把 1024 个数压到一张纸上

每个词 1024 个数,没法直接画出来。有一种办法能把每个词压成平面上的一个点,让原来像的词尽量挨在一起。压的时候难免走样,平面上挨着,不一定真的最像。我们拿 33 个词试了一下:

动物大致一团,交通工具一团,卧室、厨房、房间一团,电脑和手机一团。“苹果”在电脑和手机旁边。也有走样的地方:“米饭”跑到了“跳”“跑”这些动作词旁边。

33 个词的词语地图。1024 个数压成平面,只能看个大概。
33 个词的词语地图。1024 个数压成平面,只能看个大概。
09

袋鼠吃什么,向近邻借

再拿一句可能没见过的话试试:“袋鼠吃草”。如果训练的文字里从来没有这一句,最简单的数法又会数出 0。看看“袋鼠”的近邻:

考拉吃桉树叶,斑马和河马吃草,大象吃草和树叶,只有企鹅吃鱼和磷虾。只要训练的文字里有“斑马吃草”“河马吃草”这样的句子,神经网络语言模型就算没见过“袋鼠吃草”,也能算出不小的概率。

借来的不一定对。企鹅也在近邻里,如果只借企鹅的,就会接出“袋鼠吃鱼”。近邻和句子越多,借来的越靠得住。

“袋鼠”的近邻。
“袋鼠”的近邻。
10

聊天 AI 也从一串数开始

今天的聊天 AI 背后是大语言模型,它是规模很大的神经网络语言模型。它接话的第一步,也是把每个字或词变成一串数,再带着前面一整段话,算下一个字的概率。它用的数有几千个,大的上万个,也是训练时一点点调出来的。

它里面的那一串数,和我们用的 text-embedding-v4 不是同一套,两者不能互相代替。用法像的词数也像,这一点通常都成立。

11

总结与回顾

汉堡和北京,AI 为什么觉得它们最像?**因为这两个词的用法像。**汉堡也是德国一座城市的名字,常和北京这样的城市名出现在差不多的句子里。AI 给每个词算一串数,叫词向量,看的就是这个词平时和谁做伴;用法像,两串数就像。苹果也一样:说苹果的很多句子和说手机的句子长得像,所以它更像手机。同样的办法,让 AI 知道“狗”和“猫”、“房间”和“卧室”、“跑”和“走”用法像,没见过“狗在房间里跑”也能接上。

  • 01手数的词向量数一个词和哪些词做伴,每一格对应一个看得懂的词。猫和狗的两行几乎一样。
  • 02训练时调出来的词向量神经网络语言模型练习猜下一个词,和同样的词做伴的词,数被调得越来越像。单看一个数看不出意思,要拿两串去比。
  • 03比两串数用余弦相似度,越接近 1 越像。数像,算出来的概率也像,没见过的句子就能向见过的句子借经验。
统计语言模型 神经网络语言模型
一个词在模型里是什么 一个名字,只能数它出现几次 一串训练时调出来的数,叫词向量
怎么知道两个词像 不知道 比两串数
碰到没见过的句子 最简单的数法得 0,补救也很粗 向用法像的词借,算出概率

词向量里的“像”,是用法像:“苹果”挨着手机,“汉堡”挨着北京。借来的经验也可能借错,袋鼠的近邻里就有吃鱼的企鹅。

12

自己查一个词的近邻

我们算过的 137 个词,放在官网的《词的近邻》这一页里,你可以自己查。

  1. 1准备一台能上网的电脑或平板,在浏览器里打开 wangwill.com/read/21-ai-word-vectors/neighbors/ 。
  2. 2点上面一排里的“谁是近邻”。
  3. 3在输入框里打一个词,比如“太阳”,按回车。
  4. 4先自己猜:和它最像的会是哪个词?
  5. 5点“揭开”,下面会出现 5 个词和它们的相似度,最上面那个最像。

如果你打的词没算过,页面会说“这个词还没算过”,下面列着能点的词,点一个就行。猜错的时候,想一想:说这个词的句子,换成哪个词也说得通?

13

课堂纪要

时间 2026 年 11 月 7 日,星期六,晚上 8 点,线上;录像约 34 分钟,开场和科技新闻没录上
参加 王叔叔,王笑鱼、禾蛱、孔蓝蜥、王笑蚺、杰米、毕糯蚺、王笑啄、谢啄麟、王笑猿、陈咿蚺(10 人)
主题 汉堡和北京,AI 为什么觉得它们最像?

大致过程

  1. 1科技新闻(没录上):这一周的 AI 新闻。
  2. 2复习(约 4 分钟):从图灵测试、深蓝和 AlphaGo,讲到香农接龙、统计语言模型,和它“没见过就接不上”的毛病。
  3. 3说到苹果,想到什么(约 2 分钟):大家想到苹果手机、apple、苹果派;汉堡想到快餐店。王叔叔揭晓:在 AI 那里,汉堡最像北京,因为德国有座城市叫汉堡。
  4. 4和谁做伴(约 7 分钟):编 10 句话,数猫、狗、汽车各和谁一起出现;猫和狗 0.87,猫和汽车 0.33,这种算法叫余弦相似度。
  5. 5每个词一串数(约 3 分钟):神经网络语言模型给每个词 30、60 或 100 个数,一边练习猜下一个词,一边调。
  6. 6真实模型和地图(约 5 分钟):阿里云的文本向量模型给每个词 1024 个数;苹果和手机 0.67,和香蕉只有 0.43;把 1024 个数压成平面,词一团一团聚在一起。
  7. 7请大家复述(约 6 分钟):维度是什么;请人讲一讲今天的内容,大家都推了,禾蛱换成“鞋子能想到哪个牌子”来讲。
  8. 8收尾(约 3 分钟)

课上的好问题

  • 王笑鱼:“我不是读完三体吗?说四维时间是第四维嘛,我都不知道啥是维度。”这是在讲“一个字用 1024 维表示”之后。
  • 禾蛱:“比如说鞋子,你能想到什么?你能想到一个品牌的吗?”这是大家都不愿意复述的时候,禾蛱换了个例子来讲联想。

这节课的数

本节(第 21 期) 上节(第 20 期)
到课 10 人 10 人
开过口 9 人 9 人
提问后 5 秒内有人接话 约九成 约八成
孩子说话占录像时间 约一成半 不到一成

数字是用录音自动估算的,这节课的录像不全,只看大概。

下次要改:今天讲得太理论了,“数怎么调像”那段我自己都快讲糊涂了,下周再讲一遍。收尾不问“讲了什么”,换成大家都能接的小题目。

署名:王叔叔