语言会变,但四种“器官“是一起变老的吗?
1803年到2026年英国议会里的人们从陛下的天恩演讲聊到今天的移民政策辩论。德国、意大利、波兰、土耳其的议会记录也留下了同样漫长的时间刻度。这些记录堆在一起是接近1700万亿个词的文本覆盖两百多年。研究者面对这样一座数据宝库问了一个听起来简单、实际上没人真正回答过的问题语言的语法在变词义在变说话方式也在变这些变化是齐头并进的吗还是说某种语言的语法可能已经未来感十足但用词还停留在上个世纪这个问题之所以一直悬而未决不是因为没人关心而是因为研究工具本身就是碎片化的。研究词义变化的人用的是词向量模型研究语法变化的人算的是依存句法树的深度研究语用变化的人做的是言语行为分类。三条河各流各的谁也没法把它们放到同一张地图上比较水位。这就是CHRONOLENS这项研究要解决的核心问题。四条河为什么汇不到一起先说清楚这四条河具体指什么。**形态学**研究词的内部构造比如动词的时态、语态主动还是被动、名词的词形变化。**句法学**研究句子的结构比如从句嵌套得多深、词与词之间的依存距离有多远。**语义学**研究句子在说什么内容比如主语是不是人、有没有用否定词、说的是具体的事还是抽象的概念。**语用学**研究话语在交际场合里的功能比如是不是用了我们你这样的人称指示词是陈述还是提问语气客气还是强硬。这四个层面各自有一套成熟的分析工具但问题是,这些工具用的度量单位完全不同。你没法把从句嵌套深度增加了0.3和被动语态使用率下降了7个百分点放在同一个坐标系里比大小就像你没法直接比较我今天跑了5公里和我今天读了200页书哪个更多一样,它们根本不在同一个量纲上。这就是为什么研究者要引入语言模型。近些年的多语言大模型比如Qwen、Llama这类,能把不同语言的句子都编码进同一个高维数学空间里。理论上这个空间应该能同时容纳形态、句法、语义、语用的信息给它们一把统一的尺子。但这里出现了第二个障碍。多语言模型内部的每一个维度并不对应某个具体的语言学特征。**稠密表示**指神经网络输出的那种每个维度都有非零数值、信息混杂在一起的向量表示。一个稠密向量的第137维可能同时和是否用了被动语态句子长不长有没有提到经济话题都沾点关系,你没法指着某个维度说这就是语法特征。这就好比你去医院验血报告单上只给你一个综合分数,不告诉你血糖、血脂、白细胞各自的数值,你根本没法诊断具体哪里出了问题。稀疏自编码器把混沌拆成可读的信号针对这个问题学界这几年发展出了一种叫**稀疏自编码器**的技术Sparse Autoencoder简称SAE一种把稠密、难以解读的神经网络内部表示重新分解成一组更少被激活、但每个激活都对应相对明确含义的特征的技术。打个比方稠密表示像是把一段音乐录成一条波形曲线,你能看到声音在动但看不出这段音乐里到底有几种乐器、谁在什么时候进的。稀疏自编码器则像是把这条波形拆成分轨,鼓点是一条轨道贝斯是另一条人声又是一条,大部分时间大部分轨道是静音的这就是稀疏但一旦某个乐器响起来你立刻知道是谁在响。问题是,这项技术本身还留了一个大坑。如果你分别在英语文本和德语文本上各训练一个稀疏自编码器两边学出来的特征编号137根本不是同一回事。这就好比两个团队各自给自己乐队的乐手编号A团队的3号是鼓手B团队的3号可能是贝斯手,编号本身不携带任何跨团队可比的信息。**这正是这项研究要跨过的第二道坎如何让不同语言、不同历史时期学出来的特征,共享同一套编号从而真正可以互相比较。**Crosscoder给不同语言发同一本编号手册研究者采用的解决方案叫**crosscoder**跨模型编码器一种不是分别给每个语言/时期训练一套独立特征字典而是让所有语言/时期共用一套特征索引只在重建方式上各自保留专属解码器的架构。具体的做法是这样的。研究者先把句子按长度和话题严格配对,比如从英语、德语、意大利语、波兰语、土耳其语里各挑一句长度相近、话题类似的句子组成一个元组。之所以要这么严格地配对是因为如果任由crosscoder自由学习它很可能偷懒,不去学真正的语言学差异而是直接靠句子长短话题是不是经济类这种表面特征就能分辨出这是哪种语言、哪个年代的句子。这就好比你想测试两个学生谁的数学更好结果给的题目难度完全不一样那测出来的差距根本不能说明数学能力,只能说明题目难度不一样。配对完成后每种语言的句子先经过一个冻结不动的语言模型编码成向量然后送进crosscoder。这个crosscoder有一个共享的编码器把所有语言的向量投影到同一个特征空间叠加起来只保留最强的一批激活这就是稀疏性的来源,但在把这些特征翻译回去、重建成各语言原始向量的时候,每种语言用的是自己专属的解码器。**这个设计的精妙之处在于:特征的身份是全局共享的,但每个特征在不同语言里有多强起多大作用可以完全不同。**打个比方这就像一本多语言词典的词条编号是统一的,第872号词条永远指向愤怒这个概念,不管你查的是英语版还是德语版。但每种语言表达愤怒这个概念时用的具体词汇、语气强度可以完全不一样。如果不这样设计,你就没法回答愤怒这个概念在英语和德语里的表达强度是否同步变化这种问题,因为你压根不知道两边词典里哪个词条对应哪个词条。特征贴标签:先学会认路,再问路牌上写的什么crosscoder训练完之后产生的是一堆没有语言学含义的数字编号特征。第872号特征到底是愤怒还是经济话题还是别的什么,模型自己不知道也不该知道,因为如果在训练阶段就告诉模型这是语法特征那是语义特征学出来的特征分布就会被人为的标签框死反而丢失了模型自己发现的、可能更细腻的结构。所以研究者采取的策略是**先不告诉模型任何语言学标签,等特征学完了,再用事后归因的方式给每个特征贴标签**。具体操作是这样的研究者准备了23个句子级别的探测任务,分别对应形态、句法、语义、语用四个层面。比如判断一个句子的谓语动词是主动还是被动语态形态、判断句子里有没有从句嵌套句法、判断主语是不是一个具体的人语义、判断句子里有没有用我们你这样的指示词语用。对每一个crosscoder学出来的特征研究者做的事情是把这个特征从某个句子的表示里抹掉术语叫**消融**ablation把某个特定特征的激活值人为设为零观察这样做之后模型在某个任务上的表现下降了多少用下降幅度反推这个特征到底负责什么然后看看这四类探测任务的准确率各自下降了多少。如果抹掉这个特征后被动语态判断任务的准确率掉得最厉害而且掉得比其他三个任务都明显得多那这个特征就被归入形态学。这个思路其实很像医生给病人做手术前的功能定位测试。医生想知道大脑某个区域到底是负责运动还是负责语言,他们的做法不是直接切开脑子看结构那样看不出功能,而是用微弱电流暂时关闭这个区域,然后让病人做各种任务,看哪项任务突然做不了了。如果关闭之后病人说不出话了,那这块区域大概率和语言有关。特征消融用的正是同样的逻辑不看结构,看功能;不问这是什么,问拿掉它,什么坏了。而且这个归因过程还留了一道保险,如果一个特征拿掉之后对四个层面的影响都差不多、没有哪个特别突出那它就不会被强行归到某一类而是标记为未分配。这个设计承认了一个语言学事实语言的这四个层面本来就不是完全互斥的,一个句子的用词选择常常同时携带语法信息和语用信息。**与其把这种模糊性硬掰成清楚的分类,不如老老实实承认有些特征就是跨界的。**三方对比:crosscoder到底强在哪光有方法不够得有证据证明这套方法比现有方案更靠谱。研究者拿crosscoder和两个对照组做了比较。一个对照组是最朴素的方案直接用语言模型编码出来的稠密向量取前512个主成分。另一个对照组是**pooled SAE**池化稀疏自编码器把所有语言的向量混在一起训练一个共享的稀疏字典但保留各语言独立的解码器,这个方案介于纯稠密表示和crosscoder之间,少了crosscoder那种联合编码、分别解码的结构。对比结果相当清楚。在**语言学一致性**这项指标上也就是特征空间里的历史变化轨迹和独立测量的形态、句法、语义、语用统计数据之间的相关系数,稠密向量只有0.29pooled SAE是0.28,crosscoder则达到0.72。差不多是前两者的两倍半。这组数字值得多说两句。0.28和0.29几乎是一样的,这意味着单纯把训练数据换成共享稀疏字典这一步,基本没带来任何实质性提升。真正的跳跃发生在crosscoder引入共享特征身份条件专属解码器这个结构之后。这说明单靠稀疏性本身解决不了问题,关键是要让同一个特征编号在不同语言里保持身份一致,同时又允许它在不同语言里表现出不同的强度。在**特征专一性**指标上一个特征的消融效应有多集中地落在它被分配的那个语言学层面上0.25代表四个层面各占四分之一、完全没有专一性,crosscoder达到0.89明显高于稠密向量的0.74和pooled SAE的0.73。有意思的是,在**重建误差**衡量特征还原原始信息的能力误差越低说明还原得越准和**轨迹稳定性**衡量测出的变化方向是不是稳定不会因为换一批采样句子就大幅波动这两项更偏工程性的指标上三者的差距反而没那么大。crosscoder的重建误差是0.04比pooled SAE的0.07低,但轨迹稳定性三者都在0.90到0.92之间,相差无几。这组对比传递出一个很关键的信息**crosscoder的优势不是让轨迹变得更平滑而是让学出来的特征更贴近语言学真实结构。**换句话说原始表示里其实已经包含了足够稳定的历史变化信号只是这些信号被打乱地混在稠密维度里。crosscoder做的事情本质上是把这份已经存在的信号重新组织成人类能读懂的语言学范畴。研究者还挑了几个具体特征出来看,这部分挺好玩的。第5236号特征在1900到1945年间的英国议会记录里激活最强典型触发语句是asked the Minister whether it is the intention of the Government询问部长政府是否有意……,这是一种书面质询的固定句式,和具体讨论的是移民问题还是别的什么政策话题无关,纯粹是一种语用层面的提问框架。而第1082号特征则在1980到2004年间激活最强典型句式是Does he not agree that...他难道不同意……,是一种更具对抗性的口头质询语气。这两个特征都被自动归为语用类,而且区分得很细,一个是书面质询模式一个是口头对抗模式,这说明crosscoder捕捉到的不只是粗糙的话题变化,而是真正精细的交际功能差异。测量变了多少和往哪儿变搞定了特征归因接下来就是这项研究真正想回答的问题不同语言、不同层面的历史变化量级上是不是可比的方向上又是不是一致的研究者设计了两个指标。第一个叫**量级**magnitude某种语言在某个历史层面上相对于它最早可考的那个年代特征表示移动了多远用欧几里得距离除以初始表示的模长做归一化得到一个无量纲的相对变化幅度。第二个叫**方向**direction两种语言各自的变化位移向量之间的余弦相似度数值接近1说明两者朝着相似的方向变化接近-1说明方向相反接近0说明毫无关联。这两个指标合起来其实很像描述一次旅行。量级告诉你这个人走了多远方向告诉你他往哪个方向走。走得一样远的两个人完全可能一个往北一个往南,南辕北辙。先看量级的结果。把每种语言各自完整历史区间的变化画出来图2德国语言变化的最终量级最大达到0.89而且从1980年前后开始明显加速。英语变化得比较平缓在1990年代达到峰值后回落到0.62。波兰语在1980年前后一度达到0.53之后反而回落到0.45。意大利语和土耳其语的最终数值都是0.53但两者的历史轨迹形状完全不同。如果换到一个所有语言都覆盖到的公共区间(1950到2020年)来比较图3,排名又变了土耳其语跃升为变化幅度最大的语言均值0.61德语第二0.43英语和意大利语并列第三0.35波兰语最小0.34。这个排名倒挂本身就是一个值得琢磨的现象。**哪种语言变化最快这个问题,压根没有一个固定答案,答案完全取决于你选的时间窗口。**德语在它自己长达一个半世纪的历史里积累的变化最大,但如果只看最近七十年,土耳其语的变化速度反而更快。这提醒我们任何关于语言正在快速演变的论断,都得先说清楚是在哪个时间尺度上说的。更细一层研究者把变化拆到四个语言学层面上分别看图3那张热力图。结果显示同一种语言内部四个层面的变化幅度其实相当接近,比如英语的形态、句法、语义、语用分别是0.36、0.36、0.38、0.29,四个数字挤在一小段区间里。德语是0.43、0.41、0.45、0.44,也很接近。这说明**语言的四个器官确实倾向于同步老化而不是某个层面突飞猛进、另一个原地踏步。**语言之间的差异明显大于同一语言内部四个层面之间的差异。这就好比你去体检同一个人的心肺功能、肝肾功能、骨密度这些指标往往会呈现出相近的年龄段一个健康的人各项指标都年轻一个老化的人各项指标往往一起老化,但不同人之间的整体健康水平差异会比同一个人内部各项指标的差异大得多。同样走了多远,却走向了完全不同的方向如果只看到这里可能会觉得故事已经讲完了语言在变四个层面一起变,不同语言变化速度不同。但真正让这项研究显出深度的地方是它没有止步于变了多少而是继续追问往哪儿变。图4画出了每种语言从最早记录到最新记录的净变化向量,箭头长度代表量级箭头之间的夹角代表方向差异。这张图揭示了一个此前的量级分析完全遮蔽掉的事实。意大利语和土耳其语的净变化量级完全相同,都是0.53,但它们的方向截然不同,夹角很大。反过来德语和土耳其语的量级差异很大0.89对0.53方向却高度接近。**这意味着,量级相同不代表演变路径相似,量级不同也不妨碍演变方向一致。**这个发现如果换成一个更贴近生活的比方来说会更清楚。假设有两个人同一年从北京出发去旅行,一年后各自走了差不多同样的总里程,一个走了5000公里,一个走了5200公里,单看走了多远这个数字你会觉得他们经历差不多。但如果一个人往南走到了海南,另一个人往北走到了漠河他们看到的风景、经历的气候完全是两个世界。只报告总里程数这一个数字,会把两段完全不同的旅程包装成差不多的经历,这是一种信息的丢失。语言变化的量级指标,面对的正是同样的陷阱。那么这种方向上的分化能不能用语系相近来简单解释呢研究者也检验了这一点,结果并不支持。英语和意大利语的变化方向相似度很高,但英语和同属日耳曼语族的德语反而不是彼此方向最接近的搭档。德语和土耳其语的方向相似度反而很高尽管这两种语言在语系谱系上几乎毫无关联。这个结果耐人寻味。它暗示着**议会语言的演变可能更多地被共同的政治、文化、制度性压力所塑造,而不是单纯由语言自身的谱系血统决定。**比如,如果两个国家在同一历史时期都经历了类似的民主化进程、都面临相似的移民政策讨论压力,它们议会语言的语用层面比如个人指示词的使用、质询句式的演变可能会朝着相似方向靠拢,即便这两种语言在语法结构上八竿子打不着。这个发现也呼应了此前学界的一些工作,有研究区分过文化驱动的语义变化和语言内部自发漂移这两种不同机制,还有研究证明文化差异确实可以从语言使用模式里被反推出来。这项研究相当于给这类假说提供了一份跨越五种语言、跨越两百年、来自同一分析框架的证据。具体到每一个语言学指标,故事更细腻前面说的都是crosscoder学出来的抽象特征层面的结果。为了让这些发现更可验证、更接地气研究者还额外做了一层分析直接用18个可观测的、人工可解释的语言学指标比如被动语态使用比例个人指示词使用比例长距离依存结构比例,在1950到2020年这个公共区间里看看每种语言各自涨跌了多少。这一层分析里90组语言×指标的检验结果里有37组在统计上显著经过多重检验校正后依然成立。**个人指示词**personal deixis指句子中用来指代说话人、听话人的代词比如我你我们这一项呈现出全场唯一的普遍一致上升趋势,五种语言全部上升,其中德语、意大利语、波兰语、土耳其语的上升幅度都达到统计显著。这大概反映出一种跨语言共通的趋势现代议会话语正在变得越来越个人化、越来越直接对话式不再是过去那种更加冷峻抽象的官方陈述口吻。但其他指标就没这么齐心了。**被动语态**在英语、德语、土耳其语里都显著下降,却在波兰语里显著上升。**长距离依存结构**衡量句子里相隔较远的两个词之间语法关系的复杂程度在英语、德语、意大利语里下降波兰语却反着涨。**并列结构**的使用在英语、德语里显著增加,波兰语却显著减少。这些反着来的指标恰恰说明了一件事**总体变化量级相近这个宏观结论,完全可能是由完全不同、甚至相互抵消的微观变化拼凑出来的。**这就好比两个班级的期末平均分一模一样但一个班是大家分数都很平均另一个班是一半学生考满分、一半学生不及格,平均分这一个数字,把两种截然不同的分布状况给抹平了。crosscoder测出的宏观量级指标某种程度上也面临类似的风险,它把18项具体指标压缩成了一个综合数字方向性的细节需要回到分项数据才能看清。分层来看这种跨语言一致性也不均匀。语用层面的跨语言方向一致性最强平均余弦相似度达到0.92,十组语言两两配对里,全部十组的置信区间都排除了零,也就是说这种一致性在统计上非常稳固。句法层面则完全没有一个共同方向平均余弦相似度是0.00,十组配对里四组显著为正,五组显著为负,呈现出明显的分裂状态。形态和语义层面则介于两者之间分别是0.21和0.29的弱正相关。这个分层结果其实也挺有解释力。**语用是最贴近具体交际场景和社会规范的层面,受到现代议会应该怎么说话这种跨文化共享的规范性压力影响最大,所以最容易趋同。而句法结构更深地嵌在每种语言自身的语法系统里,受制于各语言不同的类型学特点,所以最不容易趋同。**质量控制:两百年的文本,坑在哪里一项跨越223年的历史语料研究,免不了要面对一个绕不开的麻烦越老的文献扫描识别出错的概率越高。研究团队对这个问题做了专门处理。对于1867年到1942年间通过OCR光学字符识别扫描获得的德国国会记录他们使用字符置信度分数把置信度低于阈值、或者低置信度字符占比超过15%的页面直接剔除这一步删掉了大约8%最早期的页面。对于那些原本就是电子文本、不涉及扫描识别的资料则用一种基于字符n-gram的乱码检测器筛查删掉了大约0.5%的文本。**这一步质控之所以重要,是因为历史文本的扫描错误在视觉上和真正的语言演变太像了。**一个被扫描错认的字母看起来就像是一种从未见过的拼写变体如果不加过滤,模型很可能把这种识别噪音误当成真实的语言创新,得出某个时代的语言突然出现了大量新形态这种错误结论。这就像一个考古学家挖掘古代陶罐,如果不能分辨出哪些裂纹是烧制时留下的、哪些是运输途中磕碰产生的,他就可能把运输破损误判成某种古代工艺特征。区分真实信号和测量噪音永远是historical研究里绕不开的第一道关。局限:这把尺子量的是什么,不是什么研究者自己也很坦诚地列出了这套方法的局限。**形态、句法、语义、语用这四个类别的划分本身就是一种分析简化。**这四个层面在真实语言里从来不是互相隔绝的,很多语言现象天然横跨多个层面。研究里采用的硬性归类策略,虽然避免了重复计算,但也意味着一些真正跨层面的特征会被强行简化成单一维度,这可能掩盖了一部分更复杂的联系。研究覆盖的也仅限于五种语言的议会话语各语言的历史覆盖长度还不均等。**议会记录代表的是政治精英的制度化语言不是整个社会普通民众的日常语言。**用议会记录得出的跨语言相似性,不能直接推广成这些国家的人民语言正在变得更相似这种更宏大的社会学论断。冻结的多语言模型本身也不是完美的测量仪器,不同的分词方式、预训练数据构成、语言覆盖比例都可能悄悄影响最终测出的轨迹。研究里提到土耳其语的句法和语义指标在不同模型之间的波动最大,这可能就和土耳其语作为一种黏着语其形态复杂性容易导致不同分词器给出差异较大的子词切分方式有关。写在后面读完这项研究,最触动我的其实是那张量级相同、方向不同的图。它提醒我一件很容易被忽略的事我们习惯用一个数字去概括一件复杂的事情,比如这个国家的GDP增长了5%这个人今年瘦了3公斤,但这类总量指标天然会抹掉方向和路径上的差异。语言变化的量级也是同样的道理,两种语言变化程度相近这句话几乎不携带任何关于具体发生了什么的信息除非你继续追问方向。另一个让我反复琢磨的细节是,德语和土耳其语在语系上毫无关系,变化方向却出奇一致,而英语和德语同属日耳曼语族,方向反而不那么接近。这个结果轻轻推翻了一个我以前没有认真质疑过的假设语言演变主要是自身语法系统内部的自发漂移。这项研究的证据更倾向于支持另一种解读,议会语言的变化,或许更多地是被共享的政治现代化进程、共享的公共话语规范塑造的,语系血统反而没那么重要。还有一个问题这项研究没有直接回答,但读完之后一直悬在我脑子里如果换成日常对话、社交媒体这类更贴近普通人真实语言使用的语料语用层面的跨语言一致性还会这么高吗议会本身就是一种高度制度化、有既定礼仪规范的话语场,这种趋同会不会恰恰是制度造成的假象,而不是语言本身的趋势这个问题可能得等更大范围的后续研究来回答了。QAQ1CHRONOLENS是什么ACHRONOLENS是一个用来测量语言历史变化的分析框架它把冻结的多语言语言模型、crosscoder特征对齐技术和事后语言学标注结合起来能够在同一套坐标系里比较不同语言、不同历史时期、不同语言学层面形态、句法、语义、语用的变化幅度和方向应用在了1803到2026年间五种语言英语、德语、意大利语、波兰语、土耳其语近17.2亿词的议会文本上。Q2crosscoder和普通稀疏自编码器有什么区别A普通稀疏自编码器SAE在多语言场景下用的是共享字典加独立解码器但研究发现它和直接用稠密向量效果差不多语言学一致性都在0.28左右。crosscoder的关键区别在于用一个共享编码器把不同语言/时期的输入联合投影到同一个稀疏特征空间再用各条件专属的解码器分别重建这样学出的特征和真实语言学指标的相关性能提升到0.72效果明显更好。Q3这项研究最重要的发现是什么A核心发现有两点。第一同一种语言内部形态、句法、语义、语用这四个层面往往以相近的幅度一起变化不会出现某一层突飞猛进、另一层原地不动的情况。第二变化幅度相近不代表变化方向相同比如意大利语和土耳其语变化量级完全一样但方向截然不同而德语和土耳其语量级差很大方向却高度一致说明只看变化有多大是不够的还必须看往哪个方向变。