S1-WMT canonical echo:从随机修复,改成最低熵中间态
上一篇 SPR-043 做的是:
给一句真实英文句子
用 TreeHeap 自己的 Flip 算子扰动
再学 inverse route 还原
这个实验有用,但 Houming818 指出一个根本问题:
语言不是随机坏掉的句子。
上游是世界模型,下游是意识空间。
语言只是中间表达。
所以 S1-echo 的目标不应该是:
random perturbation -> repair
而应该是:
surface sentence
-> canonical TreeHeap state
-> surface sentence
这里的 canonical TreeHeap state 可以先粗略理解为:
同一个意义的多种语言表面形式,
在 TreeHeap 空间里被压到更近、更低熵的中间状态。
然后 echo 的作用是检查:
压到中间态以后,信息有没有丢光?
还能不能回读原来的表面句子?
这才是能接 S2 翻译的 S1。
这次的 claim
ARA claim:
S1-CANON-WMT-C01
说人话:
给 WMT 英中平行句:
EN sentence -> H_en
ZH sentence -> H_zh
如果 EN 和 ZH 是同一个平行句对,
H_en 和 H_zh 应该比随机错配句更近。
同时,
H_en 还要能 echo 回英文,
H_zh 还要能 echo 回中文。
这不是 BLEU。 这也不是完整翻译。
它只证明 S1 有没有开始形成一个:
可对齐
可回读
不完全坍缩
的 bilingual canonical state
为什么需要 BoW baseline
这个实验不能只看 TreeHeap 自己。
因为 WMT 平行语料里有很多词面共现信号:
数字
专名
标点
主题词
领域词
简单 bag-of-words 也可能很强。
所以这次同时训练两个模型:
TreeHeapCanonical
BoWCanonical
它们用同一个任务:
1. 拉近平行句对
2. 拉远错配句对
3. echo 回各自原句 token
如果 TreeHeap 没赢 BoW,那结论必须降级。
TreeHeap 模型在做什么
TreeHeapCanonical 的结构是:
token embedding
-> path/address embedding
-> balanced binary TreeHeap compose kernel
-> root canonical state
同时保留 leaf state 做 echo:
leaf state -> token decoder -> 原语言 token
所以它有两个层面:
root: 尝试表示跨语言 canonical state
leaf: 保留原句可回读信息
这点很重要。
如果只有 root,而 root 又要完整还原整句,第一版会很难。 如果只看 leaf echo,又会退化成复制 token。
所以这次先把问题拆开:
root 负责 canonical alignment
leaf 负责 echo preservation
后续更严格的版本,要继续压缩 leaf memory,让更多信息进入 root / subheap state。
Loss 怎么设计
这次不是一个大锅 loss。 脚本分别记录:
L_align_en_to_zh
L_align_zh_to_en
L_echo_en
L_echo_zh
L_variance
核心 alignment 是 batch 内对比学习:
score(i, j) = cosine(H_en_i, H_zh_j) / temperature
target(i) = i
也就是:
第 i 个英文句子
应该找回第 i 个中文句子
而不是 batch 里的其他中文句子
这和翻译不同。 它更像在问:
你能不能把同一个意义的两种语言形式放近?
另外加了一个 anti-collapse 的 variance loss。 因为“低熵”不能理解成:
所有句子都坍缩到同一个点
那是没信息,不是 canonical。
我们要的是:
等价表达更近;
不同意义仍然可分。
实验设置
运行位置:
io.grepcode.cn
证据目录:
ara/s1-echo/evidence/s1_wmt_canonical_echo_probe/
数据:
WMT17 train.zh-en
50,000 sentence pairs
train/test/OOD = 40,000 / 5,000 / 5,000
max_len = 48
en_vocab = 8192
zh_vocab = 6805
dim = 128
epochs = 5
注意:
OOD 不是新领域语料。
它是 held-out parallel pairs。
所以这个结果还是 S1 pilot,不是最终泛化证明。
结果
OOD 指标如下:
| model | pos distance | neg distance | margin | retrieval@1 | retrieval@5 | entropy |
|---|---|---|---|---|---|---|
| untrained TreeHeap | 0.8148 | 0.8178 | 0.0030 | 0.0010 | 0.0025 | 6.9731 |
| BoW | 0.4028 | 0.9968 | 0.5939 | 0.6285 | 0.8085 | 4.3442 |
| TreeHeap | 0.3458 | 0.9929 | 0.6472 | 0.6300 | 0.8195 | 4.0443 |
Echo 指标:
| model | EN echo token | ZH echo token | EN exact | ZH exact |
|---|---|---|---|---|
| TreeHeap | 1.0000 | 0.9981 | 1.0000 | 0.9610 |
| BoW | 1.0000 | 0.9985 | 1.0000 | 0.9690 |
先看最重要的部分:
TreeHeap positive distance = 0.3458
TreeHeap negative distance = 0.9929
这说明 true parallel pair 的 canonical state 明显更近。
再看 retrieval:
random retrieval@1 = 0.0005
TreeHeap retrieval@1 = 0.6300
TreeHeap retrieval@5 = 0.8195
也就是说,在 2000 个候选中文句子里,给一个英文 root state:
63% 的时候,最近的中文 state 就是正确平行句;
81.95% 的时候,正确句在前 5 名。
这已经不是随机信号。
TreeHeap 赢了吗?
要小心。
TreeHeap 没有“大胜” BoW。
BoW 的结果也很强:
BoW retrieval@1 = 0.6285
TreeHeap retrieval@1 = 0.6300
差距很小。
TreeHeap 更明显的优势在:
margin:
TreeHeap = 0.6472
BoW = 0.5939
entropy:
TreeHeap = 4.0443
BoW = 4.3442
这说明:
TreeHeap 把正负样本拉得更开;
TreeHeap 的匹配分布更尖锐一些。
但这还不能说:
TreeHeap 已经全面优于 BoW。
更诚实的结论是:
WMT canonical echo 任务成立;
TreeHeap 在第一版里有小幅结构优势;
但 BoW baseline 很强,下一步必须加更强 sequence / Transformer baseline。
可读样例
证据目录里保存了样例。 例如一个成功样例:
EN:
The tradable sector is expanding and is not dependent on leverage to generate aggregate demand.
ZH:
可贸易部门正在扩张,不需要依赖杠杆就能提振总需求。
TreeHeap paired cosine:
0.5795
top1:
true
EN echo:
the tradable sector is expanding and is not dependent on leverage to generate aggregate demand.
也有失败样例。 例如:
EN:
As in Nigeria, vaccination delays will be highly detrimental for neighboring countries.
top1:
false
这说明模型已经能做很多 pair retrieval,但不是满分。 失败通常出现在:
短句
领域词
低频词
专名
语料编码噪声
这证明了什么
SPR-044 支持:
WMT 平行语料中,
不同语言表面形式可以被训练到一个更接近的 canonical state。
这个 state 不是纯坍缩,
因为它还能区分不同句子,
并且能支持同语言 echo。
更短一点:
S1 可以从“复制句子”推进到“平行语义形式的中间态对齐”。
还没有证明什么
这次没有证明:
WMT 翻译 BLEU
真正语义理解
世界模型 grounding
意识空间
无监督发现语言规律
TreeHeap 全面优于 Transformer
尤其要注意:
这个实验用了平行语料监督。
所以它不是无监督语义发现。
它证明的是:
在 WMT 平行监督下,
TreeHeap 可以学习一个可回读的 bilingual canonical state。
这已经比随机 flip 更接近 S2,但还不是 S2。
下一步
我认为下一步有三个门:
1. 加 sequence / small Transformer baseline
2. 扩大 retrieval candidate pool,不只 2000
3. 把 root canonical state 和 leaf echo memory 分得更清楚
第三点最关键。
因为现在:
root 负责对齐;
leaf 负责 echo。
后续要逐步提高要求:
subheap state 也必须有可解释的 canonical 信息;
不能只让 leaf 偷偷保存所有表面 token。
这才会把 S1 推向真正的 S2:
source surface
-> canonical TreeHeap state
-> target surface
ARA: S1 WMT canonical echo / evidence / claims