跳到主内容

为什么同一个词在不同句子里向量不同?动态表征

2026-10-18 发布 来源:我告诉你AI导航 阅读

同一个「苹果」,在「苹果多少钱一斤」里是水果,在「苹果发布了新机」里是公司——大模型给出的向量完全不同。这不是模型前后矛盾,是动态表征在起作用:词的表示由上下文现算,而不是查表得来。本文拆解这条从静态查表到上下文定制的路径。

同一个「苹果」,在「苹果多少钱一斤」里是水果,在「苹果发布了新机」里是公司——大模型给出的向量完全不同。这不是模型前后矛盾,是动态表征在起作用:词的表示由上下文现算,而不是查表得来。本文拆解这条从静态查表到上下文定制的路径。

老办法:查表拿到固定向量

早期词向量方法是查表式:每个词配一个固定向量,「苹果」在全世界只有一份向量。好处是简单、可预计算;坏处也直接——多义词被压成一个意思,「苹果」既是水果又是公司,查出来的向量两头不讨好。进来的是词编号,发生的是按编号取一行权重,出去的是固定向量,全程不问上下文。

新办法:每用一次,重算一次

Transformer 的做法是把查表结果当起点,让后续层反复改写。第一层看到的还是那个固定向量,第二层开始,注意力把周围词的信息拉进来:「苹果」旁边出现「发布」「新机」,水果的语义就被稀释,公司的语义被加厚。每过一层,这个词的表示都被同一次前向传播里的其他词改写一回。进来的是初始向量加全句上下文,发生的是多层注意力反复混合,出去的是这一次语境下专属的向量。DeepSeek、通义千问的底层都走这条路,词向量只在最底层当原料。

为什么必须动态

静态向量有三个解释不了的现象。一是多义:「苹果」「小米」在不同句子里意思不同,一份固定向量只能取平均,平均出来的是四不像。二是指代:「它」指代的东西每句都换,静态表示永远指不对。三是角色:「银行」在「去银行取钱」里是场所,在「河岸的银行」里是土坡,同词不同义且无从预料。动态表征把这些问题一并解决:表示跟着语境走,歧义交给上下文来消。

三类现象各卡在一个地方,动态表征一并解决。

现象原文举的例子静态向量卡在哪
多义「苹果」「小米」在不同句子里意思不同一份固定向量只能取平均,平均出来的是四不像
指代「它」指代的东西每句都换静态表示永远指不对
角色「银行」在「去银行取钱」里是场所,在「河岸的银行」里是土坡同词不同义且无从预料

动态表征还解释了一个常见困扰:为什么模型对同一句话的理解会随上下文长度变化。短句里「苹果」周围没几个词,改写不充分,表示接近静态向量;长上下文里邻居一多,语义被反复冲刷,表示才真正落到这次语境里。上下文不是背景板,是表示本身的原料。

类比一下,这像同一个人在不同剧组演不同角色:演员还是那个演员,剧本决定他这场的戏路。类比到此为止——回到机制本身,动态表征不靠剧本,靠的是同一次前向传播中所有词的向量互相改写,层数越多,改写越充分。

静态与动态对照表

  • 静态:一词一份向量,预计算,多义词被平均
  • 动态:一次前向传播算一份,上下文决定语义
  • 动态的载体:查表层只留最底层,改写靠上面的注意力层
  • 位置不同也表示不同:词序信息随位置编码进入改写过程

这个区别落到使用上

它解释了为什么改一个词能牵动全句理解:动态表征下每个词的表示都含着全句信息,动一处、变一片。词向量的加减游戏为什么成立讲的是向量空间里的语义几何,动态表征给这套几何加了时间维度——同一点在不同句子里坐标不同;知识是怎么存进参数里的讲的分布式存储,则解释了改写用的「墨水」从哪来:存在权重里的知识,通过逐层混合点亮成具体语义。

关于动态表征再多问三句

  • 同一个词在不同层表示都一样吗?:不一样,底层更接近词本身,高层更接近语义角色,逐层混合的过程就是语义逐步浮现的过程。
  • 动态表征是不是更费算力?:是,每个词每次出现都要现场算,没法像静态向量那样预计算缓存;换来的是多义与指代的解释力。
  • 它和模型输出的概率分布有什么关系?:输出分布正是由最后一个位置的动态表示算出来的,表示的质量直接决定概率曲线的尖与平。

带走一个判断:词的向量不是身份证,是当次语境的快照,上下文变了,快照就重拍。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]