一句話看懂統計語言模型
核心任務:教電腦判斷一句話 “像不像人話”
(比如“我愛吃蘋果”? vs “蘋果吃愛我”?)
1. 早期:死磕語法規則 → 失敗!
- 科學家思路(1970年前):
像語文老師一樣,給電腦寫《語法規則大全》(比如“主語后必須接動詞”)。 - 為啥翻車?
人話太靈活!規則永遠寫不完,還互相矛盾。
→ 像逼外國人背1000條語法才能點咖啡,結果還是說錯💔
2. 統計語言模型崛起:數數就行!
IBM賈里尼克大神(1970s)的暴論:
不用懂語法!數一數這句話出現的概率就行!
- 例:“我愛吃蘋果”在100萬句人話中出現 50次 → 合理!
- “蘋果吃愛我”出現 0次 → 不合理!
怎么算概率?—— 馬爾可夫偷懶法
- 問題:長句概率難算(比如“我愛吃紅蘋果”要算“愛”在“我”后、“吃”在“我愛”后…)
- 解決方案(N-gram模型):
每個詞只看前面1-3個詞,其他忽略!- 例(三元模型):
“吃”的概率只看前面兩個詞 → 如果“我愛”后常跟“吃”,那“我愛吃”概率就高! - 缺點:
像只記3秒的金魚🐟,無法理解“我上周買的蘋果真甜”這種跨句子關聯。
- 例(三元模型):
3. 神經網絡登場:讓電腦“腦補”
2003年 NNLM 模型(本吉奧)
創新點:
- 給每個詞發“身份證號”(詞向量),比如:
蘋果 = [0.2, -1.3, 4.5]
,吃 = [1.0, 0.8, -0.2]
- 用神經網絡根據前N個詞的“身份證號”猜下一個詞。
可惜:當時大家不信神經網絡,埋沒十年😢
2013年 Word2Vec 模型(谷歌)
封神之作:
- 核心突破:一個詞在不同上下文有 同一個向量(靜態詞向量)。
- 訓練方法:
- CBOW:用周圍詞猜中心詞(如用“我愛__蘋果”猜“吃”)
- Skip-gram:用中心詞猜周圍詞(如用“吃”猜“我”“愛”“蘋果”)
致命弱點:
無法區分多義詞!比如“蘋果”的向量永遠是同一個,分不清是水果還是手機公司🍎📱
4. 動態詞向量時代:上下文才是王道
2018年 ELMo 模型
解決多義詞:同一個詞在不同句子中 動態變向量!
- 例:
“吃蘋果” → “蘋果”向量靠近[水果, 甜]
“買蘋果” → “蘋果”向量靠近[手機, 貴]- 原理:用雙向LSTM(一種能記長句的神經網絡)掃描全文后動態調整詞向量。
2018年 BERT 模型(谷歌終極版)
集大成者:
- 用 Transformer(比LSTM更強的編碼器)
- 像做填空題學習:隨機遮住句中詞(如“我愛__蘋果”),讓模型猜“吃”
- 結果:橫掃11項NLP任務,成行業標準!
缺點:太強導致不能直接寫文章(像只會答題不會創作的學霸)。
關鍵模型關系圖(小白版)
語法規則(失敗)
↓
統計模型(數概率)→ N-gram(偷懶法)
↓
NNLM(最早神經網絡)→ 被遺忘
↓
Word2Vec(靜態詞向量封神)→ 敗給多義詞
↓
ELMo(動態詞向量初代)→ 用LSTM
↓
BERT(動態詞向量終極版)→ Transformer + 填空題訓練法 ?
一句話總結發展邏輯
電腦學人話的進化史:
背語法書 → 數句子出現次數 → 背單詞身份證 → 結合上下文動態改身份證越新的模型越像 真人聊天:
你一說“蘋果”,我就知道此刻指的是手機還是水果!🍎📱
下次聽到“BERT”“詞向量”,記住:
它們就是讓電腦變成“懂王”的秘密武器! 🚀