1. 核心问题:什么是 Sign(符号)?
在自然语言处理里,我们希望模型真正"理解"语言,而不仅仅是把字符拼凑在一起。为此,我们要理解一个最基础的概念。
Sign = Signifier + Signified
这个想法来自Semiotics(符号学):
- Signifier(能观察到的形式):我们看到或听到的东西
- Signified(意义):它对应的含义
- Sign(符号):是前两者的一对配对关系
这意味着,符号不是单独的形式,也不是单独的含义,而是形式和含义的"契合"。举个日常例子:
- 一块黄色的菱形标志 + 上面画着石头 → 这就是一个 road sign(路牌)
Signifier : 菱形、黄色、图案
Signified : "小心落石"(watch for falling rocks)
Sign : 二者的配对(真正传达的意思)(dmort27.github.io)
这和 NLP 的 tokenization(分词)有一个关键关联:
如果我们把词拆成一些没有意义的碎片(例如随意的字母组合),那就不是 Sign ,模型也学不到真正的语义。(dmort27.github.io)
2. Minimal Signs(最小有意义符号)
在语言学里,有一个概念叫 Morpheme(词素):
-
这是语言中最小的有意义单位(minimal meaningful unit)
-
例如,在 walked 这个词里,
- walk 是一个 morpheme(有意义)
- -ed 也是一个 morpheme(表示过去式)
- 组合在一起 walk + -ed 就是这个词的意义组合(dmort27.github.io)
Morphemes 就像语言的积木,有意义而且可以组合。
3. Compositionality(组合性)是什么?
这是语言最重要的一个性质之一:意义可以从更小的部分组合出来。例如:
walk + -ed = walked(动作发生在过去)
hunt + -er = hunter(做某事的人)
这些组合是可预测的,你只要懂各个部分的意义,就可以"推理出"整体意义。也就是说:
合成词的意义 ≈ 各个部分的意义组合 (Compositionality)(dmort27.github.io)
这种组合性在 NLP 里非常重要:
- 如果你的 token(分词单元)是真正的 Signs 或 Morphemes,
- 那么模型可以从它们的组合中推断意义;
- 反之,如果你的 token 只是一堆随机字符,例如 co mp os it io na li ty ,那么它们就不是 Signs ,模型无法用组合规律去推意义。(dmort27.github.io)
4. 对比说明
| Token 类型 | 有意义? | 能组合出语义? |
|---|---|---|
| Characters(字符) | ❌ | ❌ |
| RandomFragments(随意碎片) | ❌ | ❌ |
| Morphemes(词素) | ✅ | ✅ |
| Words(完整单词) | ✅ | 有时候能,但不够细粒度 |
| Good Subword Tokens(好的子词) | 接近 ✅ | 近似组合性 |
| Bad Subword Tokens(随意子词) | ❌ | ❌ |
好的 token 不是只看形式的频率,而要像语言学上的意义单位那样有意义并可组合 。(dmort27.github.io) 这是课程背后的核心思想:tokenization good ➜ model representation better。
5. 为什么这对 Subword Modeling(子词建模)至关重要?
在上一讲我们提到过,Word-Level Tokenization(基于单词的分词)有两个核心问题:
- 词表太大(large vocabulary) → data sparsity(数据稀疏)
- 很多 rare words(稀有词)无法学到好 embedding(词向量)
Subword Tokenization 被提出就是为了解决这两个问题。但:如果 subword tokens 只是任意切出来的字母片段,就像句子里的 random fragments,它没有意义 ,也就无法组合成有意义的 representation(表示)。(dmort27.github.io)
真正有用的 token 不是随便的字符,也不是完整的大词,而是那些实际能表示内容并可组合出更复杂意义的最小有意义单位 ------ 最好是 morphemes(词素)或者近似的 compositional signs。 (dmort27.github.io)