seegongsik
人工智能

什么是嵌入 embedding

上一课里,CNN 把照片当成数字格子,从中找出特征。照片一开始就是由亮度数字组成的,单词却不一样。“猫”这个字不管盯着看多久,里面也找不到代表它意思的数字。要把单词的意思交给计算机,就得给每个单词配一个数字坐标,并且让意思相近的单词挨在一起。像这样把单词变成意义坐标,就叫嵌入。

01

给每个词配一个坐标

计算机只会用数字计算。可我们用词语说话、思考,所以总得想办法把词变成数字。最简单的办法是给词编号,但光靠编号,表达不了“猫和狗比猫和汽车更像”这件事。
所以要像地图上的一个点那样,给每个词配一个坐标:cat 在这儿,dog 在那儿,每个词都有了自己的位置。

点一个词,把它放进意义空间

一个一个点这些词看看。原本只是字母的词,变成意义空间里的一个点,它的位置用两个数字表示出来。

一点词,就出现一个点,旁边还附着两个数字:横向位置和纵向位置。这组数字就是坐标。词变成了数字,计算机就能处理了。
小工具为了好画只用了两个数字,真正的嵌入会给每个词配上几百个数字。不过,点要是随便乱放,坐标就没有任何意义。所以还要再加一条约定:意思相近的词放得近一些。

02

意思相近就靠得近

守住这条约定,cat 和 dog 都是动物,就挨得近;king 和 queen 都是王室成员,也挨得近。反过来,cat 和 car 拼写只差一个字母,意思却完全不同,所以离得很远。
在这个意义空间里,距离直接就是意思像不像的尺度。近就是相似,远就是不同。

catdogkingqueenapplepear
● 动物● 王室● 水果
词散得乱七八糟

点“按意思整理”按钮。散落的词聚成动物、王室、水果几组,各组之间拉开了距离。

词按组聚到了一起:组内靠得近,跟别的组离得远。那这些坐标是谁定的?并不是人一个词一个词地手工定的。计算机从字面上根本不知道 cat 是动物,它只看海量文字里每个词是怎么用的。
猫和狗常常出现在“喂食”“掉毛”这类相似的词旁边。让出现在相似上下文里的词坐标互相靠近,这样训练下来,单凭距离就能量出意思有多像。

03

用坐标计算,意思也跟着走

词变成坐标以后,会发生有意思的事。坐标是数字,可以加也可以减,而且这种计算带着意义。从 king 的坐标减去 man 的方向,只剩下“王室”的感觉;再加上 woman 的方向,竟然就到了 queen 附近。
国王减去男人再加上女人,差不多就是女王。在坐标上找路,变成了在意义里找路。

kingmanwomanqueen
从 king 的位置出发

依次点步骤按钮。沿着 king 减 man 加 woman 的路走,箭头落到 queen 附近。

箭头真的落到了 queen 附近。做的只是坐标加减,结果却正好合乎意思。这是因为从 man 指向 woman 的箭头,和从 king 指向 queen 的箭头,方向几乎一样,长度也几乎一样。
在训练得好的嵌入里,这样的方向承载着性别、国家与首都之类的关系。当然并不总是分毫不差,常常是落在正确答案旁边。可没人教过的关系竟会自己出现在坐标里,这一点很令人惊讶。

04

变成坐标的不只是词

变成坐标的办法不只用在词上。一张照片也能变成坐标,相似的照片就会聚在一起。声音、一首歌也能变成坐标,按常听的歌,连一个人的口味都能用坐标表示。
不管什么,变成坐标再量远近,计算机就能处理相似。上一课 CNN 从照片里提取的特征,也正是被当作这样的坐标来用。

词也一样变成点坐标,相似的聚到一起

换种类点点看。不管是词、图像、声音还是用户,都一样变成点,相似的聚在一起。

换了种类,画面还是一样:出现一个个点,相似的聚在一起。音乐应用推荐相似的歌,相册应用找出长得像的照片,背后都是在量坐标之间的距离。
如果训练时让不同种类共用一个空间,就连用文字找照片也做得到:取“海边的小狗”这句话的坐标,挑出离它最近的照片就行。

05

小结

归纳起来是这样:计算机只处理数字,所以把词变成坐标这一组数字,这就是嵌入。核心约定是让意思相近的词靠得近,而坐标是从大量文字里词的用法学来的。
所以距离就成了意思的相似度,坐标加减也带着意义。不只是词,图像、声音、用户也照同样的办法处理。

依次点要点回顾一下

依次点要点回顾一下。(把词变成坐标 → 意思相近就放近 → 坐标运算带着意义 → 图像声音也一样)

现在你知道计算机是怎么开始处理词义的了。把词变成坐标、把相似的聚到一起,这个简单的想法撑起了搜索、翻译、推荐,还有把图和文字连起来的工作。
不过一个词只有一个坐标,有时会出问题。英语的 apple 可能是水果,也可能是公司的名字。下一课讲注意力:看看句子里的其他词,来定下这个词在这里是什么意思。

一句话总结嵌入就是把词变成意义坐标。坐标是一组数字,计算机可以拿来计算,实际上每个词会配上几百个数字。核心约定是让意思相近的词靠得近。坐标不是人定的,而是从海量文字里学来的:出现在相似上下文里的词,坐标会互相靠近。所以国王和女王、狗和猫聚在一起,不相干的词离得远远的。因为是坐标,所以能加能减,而且计算带着意义,比如国王减男人加女人就落到女王附近。用同样的办法把图像、声音、用户也变成坐标,就能用距离来量相似。把词变成坐标这第一步,是计算机处理意义的基础。
← 人工智能
如果有帮助,请支持我们