文本转换成数字

最初,这事儿简单得像查字典。给每个字符编个号。A是65,B是66,一个汉字对应一两个字节,一串数字就出来了。这就是ASCIIUnicode。像不像小孩儿玩儿的密码本?“我爱你”变成一串数字,看起来冰冷冷的,但至少机器能识别了,能存了,能传了。可它理解吗?屁咧!它知道那一串数字代表的是“我爱你”这个概念、这份情感?它只知道这是个序列。这阶段的转换,就像把一幅名画拍成像素点,你知道每个点的颜色和位置,但画的意境,全丢了。

再后来,人们不满足了。光认得字不行,得知道词吧?词的意思,词的关系。于是有了各种词袋模型(Bag-of-Words)。把一篇文章里所有出现的词儿都拎出来,数个数。哪个词出现得多,可能就重要呗。TF-IDF (Term Frequency-Inverse Document Frequency) 又进了一步,不仅看词频,还得看这词在别的文章里是不是也高频出现——要是某个词只在这篇文章里猛出现,别处很少,那这词就特别能代表这篇文章的主题。就像你朋友老是说某个口头禅,你就知道那是他。但这模型,依然是平面的。它把文章压成一个词频向量,一个长长的列表,每个位置代表一个词,数值是它的“重要性”。“我爱你”和“我不爱你”,在词袋模型里可能就差一个“不”字的数量,但意思呢?天壤之别啊!它完全忽略了词的顺序,词与词之间的关联,句子的结构。就像把所有的乐高积木都倒出来堆一起,积木都在这儿,但模型呢?结构呢?没有。

真正的变革,或者说,是让人拍案叫绝的脑洞,是从词嵌入(Word Embeddings)开始的。这玩意儿太妙了。它不再把每个词当作一个孤立的点,而是想办法把它们投射到一个高维度的空间里。想象一下,每个词都是这个空间里的一个点,而这些点的位置和它们之间的距离,居然能反映出词的语义语法关系!“国王”这个点,减去“男人”那个点,加上“女人”那个点,结果发现,居然离“女王”那个点特别近。这简直是文字世界的几何学!Word2Vec,GloVe,那些模型,通过预测一个词周围会出现什么词,或者通过全局统计词的共现信息,最终给每个词算出一个向量。这个向量,就是这个词在这个语义空间里的坐标

为什么要把词变成向量?因为机器学习,尤其是深度学习,处理的就是向量矩阵。神经网络吃的就是这些数值化、结构化的数据。你总不能把“猫在垫子上”这几个汉字直接喂给神经网络吧?得把它变成一串串的数字,变成机器能嚼得动的东西。于是,“猫”变成一个向量,“在”变成一个向量,“垫子”变成一个向量。把这些向量拼接起来,或者用更复杂的方法组合起来,甚至能表示整个句子、整个段落的意思。这就是句向量文档向量

这个过程,听起来很酷炫,但实操起来,也充满了妥协失真。你想啊,几万甚至几十万个词汇,每个词汇背后是人类几千年的使用历史、无数的语境、无穷的言外之意。你现在想用一个几百维(比如300维、500维)的向量去概括它?这就像想用几张快照去概括一个人的一生。你能捕捉到一些表层的、统计上显著的特征(比如“苹果”和“香蕉”离得近,因为它们都是水果;“国王”和“王后”离得近,因为它们是皇室),但那些微妙的、个人化的、临时性的含义呢?那些只有在特定对话特定文化特定语境下才产生的火花呢?向量抓不住。

更别提那些双关语反讽春秋笔法。你说“你真聪明”,可能真的是夸他,也可能是笑他傻。这两个“聪明”,在人类听来,语气、表情一结合,意思南辕北辙。但在大多数词向量模型里,这俩“聪明”可能就是同一个向量。因为它们在训练数据里,周围出现的词可能差不多,比如都跟“头脑”、“解决问题”有关。机器看到了形式上的相似,却错过了实质上的差异。

所以,把文本转换成数字,它不是一个完美的、无损的翻译。它更像是一种降维打击,一种抽象,一种为了让机器能够处理而不得不进行的信息过滤。我们把文字里那些难以捉摸的、充满人性的部分——语气、情感的细微波动、讽刺的刀光剑影、诗意的朦胧——暂时搁置,甚至牺牲掉,只保留那些结构化可量化的特征。然后,把这些特征变成一串串的数字,喂给算法,让它去寻找模式,去分类,去生成。

每一次这样的转换,都是一次选择。选择保留什么,放弃什么。从最早的字符编码,到词频,到词向量,再到更高级的像BERT、GPT这类模型产生的上下文相关的词向量(它们能根据词在句子里的位置,给同一个词生成不同的向量,试图解决一词多义的问题),我们一直在迭代,一直在精进这种量化的方法。但本质上,它始终是人类智慧表达的影子,投射在机器可以理解的数字世界里。

这种转换的意义太重大了。没有它,就没有今天的搜索引擎能够理解你的查询意图,没有垃圾邮件过滤器能够识别那些带着不良企图的文字,没有情感分析能够大致判断用户对某个产品的态度,更没有那些能写诗、写文章、甚至跟你聊天的大型语言模型。它们的一切能力,都建立在能够将海量的文本有效地转换理解(或者说模拟理解)为数字的基础上。

但同时,我总觉得有那么一丝丝忧虑。当所有的文字都被简化成向量,当意义变成空间中的距离,我们是否会不自觉窄化我们对语言本身的认知?我们是否会忘了文字本来是带着体温的,是裹挟着人生百味的?将文本转化为数字,是通往机器智能的必由之路,是科学的胜利。但请别忘了,那数字背后,是人类灵魂低语呐喊。那串冰冷的向量,曾是一首情诗,一段历史,一个笑话,或者一句,简单的,“你好”。

评论

发表回复

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