1. 文本表示的发展历程
1.1 向量空间模型 (VSM) —— "查字典打钩"
核心逻辑:准备一个巨大的词汇表,每篇文档就是在这个表里"打钩"。
- 例子:词汇表有1万个词,你的句子里出现了第5、10、100个词。那你的向量就是在第5、10、100个位置写"1",其他9997个位置全是"0"。
- 大白话:就像在填一张超级长的表格,有这个词就打个勾。
- 缺点:
- 表格太长:绝大多数地方是空的(稀疏性)。
- 没脑子:它只看词有没有出现,不看顺序。比如"我不爱他"和"他不爱我",生成的向量是一模一样的。
1.2 N-gram 语言模型 —— "接龙猜词"
核心逻辑:预测下一个词出现的概率。它认为一个词的出现只跟前面几个词有关。
- 例子:
- 2-gram (Bigram):看到"吃",猜后面大概率接"饭",小概率接"药"。
- 3-gram (Trigram):看到"我 喜欢",猜后面大概率接"你"。
- 大白话:根据前几个词推测下一个词。
- 缺点:它是"近视眼",只能看到前面1-2个词。如果你写个长句子,它就记不住开头在说什么了。
1.3 Word2Vec —— "物以类聚,人以群分"
核心逻辑:不再用几万维的稀疏向量,而是用几百维的"稠密数字"来代表词,且意思相近的词,数字也接近。
- 两种练功方式:
- CBOW:根据周围的词(上下文)猜中间那个词。
- Skip-Gram:根据中间那个词猜周围有哪些词。
- 神奇之处:它能学到语义。在数学上,
国王 - 男人 + 女人 = 女王。 - 缺点:"死脑子"。一个词一旦训练好,向量就固定了。比如"苹果"这个词,在"苹果手机"和"吃个苹果"里,它的向量是完全一样的。
1.4 ELMo —— "看心情(语境)变脸"
核心逻辑:解决"一词多义"的问题。它会根据一句话的上下文,动态地计算词向量。
- 大白话:它像个翻译官,会根据语境给同一个词分配不同的含义。
- 例子:
- 句子A:"我今天买了一个苹果(电子产品)"。
- 句子B:"这个苹果(水果)真甜"。
- 在 ELMo 里,这两个"苹果"的向量是不一样的。
- 缺点:慢。因为它用的是一种叫 LSTM 的老架构,处理长句子非常费劲。
2. 总结:进化路线图
- VSM:最原始的统计,单纯看词出没出现。
- N-gram:开始考虑词与词的接龙关系。
- Word2Vec:开始理解词的内在含义,但不会变通。
- ELMo:学会了根据语境实时调整词的含义(一词多义)。