在上一篇 跟 AI 聊天的秘密:一篇文搞懂什麼是 NLP 模型 中,我們將 NLP 模型比喻為一個勤奮好學的「語言大腦」。今天,我們將更深入地走進這個大腦的內部,用最直觀的方式,理解它從「死記硬背」到「融會貫通」的進化之路。
這趟旅程將分為三個階段,對應著 NLP 模型發展的三個重要里程碑:
* 第一階段:詞袋模型 (Bag-of-Words) - 熱血但混亂的菜鳥* 第二階段:序列模型 (RNN/LSTM) - 開始注重順序的學徒
* 第三階段:Transformer 模型 - 懂得抓重點的情境大師
第一站:電腦如何「閱讀」文字?萬丈高樓平地起
在深入模型之前,我們必須先解決一個根本問題:電腦只看得懂數字,看不懂文字。那麼,「蘋果」這兩個字要如何讓電腦理解呢?
答案是:將文字向量化 (Vectorization)。
想像一個巨大的三維空間,有 X、Y、Z 軸。我們可以把空間中的每一個點都用一組座標 (x, y, z) 來表示。同樣地,我們可以建立一個更高維度的「詞彙空間」,把每一個詞彙都變成這個空間中的一個點,用一組數字(也就是一個向量)來代表它。
> 核心概念:詞嵌入 (Word Embedding)
> 詞嵌入是一種技術,能將每個單詞轉換成一組固定長度的數字向量。它的神奇之處在於,語意相近的詞,其向量在空間中的距離也更近。
> 經過訓練後,模型能發現這樣的關係:「國王」的向量 - 「男人」的向量 + 「女人」的向量 ≈ 「女王」的向量。
> 這意味著電腦不再是看到一串無意義的符號,而是開始理解詞彙之間複雜的語意關係。像 Word2Vec 和 GloVe 就是實現這種技術的經典方法。
(圖說:在詞嵌入空間中,語意相近的詞會被歸類在一起)
好,現在電腦能看懂單字了。接下來,它要如何理解整篇文章呢?這就帶我們來到了第一代模型。
第二站:詞袋模型 (Bag-of-Words) - 熱血但混亂的菜鳥
詞袋模型(簡稱 BoW)是早期最直觀也最簡單的方法。它的核心思想正如其名:把一篇文章中所有的詞都丟進一個袋子裡,不考慮它們的順序和文法,只計算每個詞出現的次數。
【運作方式】
* 建立詞彙庫:先收集所有文章,建立一個包含所有不重複單字的「詞彙庫」。
* 計數:對於任何一篇文章,去對照詞彙庫,計算每個單字在該文章中出現了幾次。
* 生成向量:將這些計數結果變成一個長長的向量,向量的每一個維度對應詞彙庫中的一個單字。
【舉例】
* 句子A:「我喜歡蘋果,他喜歡香蕉。」
* 句子B:「他討厭蘋果,也討厭香蕉。」
詞袋模型會把它們變成類似這樣的向量:
| 詞彙 | 我 | 喜歡 | 蘋果 | 他 | 香蕉 | 討厭 | 也 |
|---|---|---|---|---|---|---|---|
| 句子A向量 | 1 | 2 | 1 | 1 | 1 | 0 | 0 |
| 句子B向量 | 0 | 0 | 1 | 1 | 1 | 2 | 1 |
【優點與致命缺陷】
* 優點:簡單、快速,對於像文章分類(例如,判斷是體育新聞還是財經新聞)這類只看關鍵詞的任務效果不錯。
* 缺陷:它完全忽略了語序。在它看來,「我喜歡你」和「你喜歡我」是完全一樣的,這顯然是個巨大的問題。它就像一個只能聽懂零散單字,卻無法理解完整句意的菜鳥。
第三站:序列模型 (RNN/LSTM) - 開始注重順序的學徒
為了解決詞袋模型的「失憶症」,科學家們開發了循環神經網絡 (Recurrent Neural Network, RNN)。
RNN 的設計徹底改變了遊戲規則。它的核心在於「循環」—— 在處理序列中的每一個單字時,都會同時考慮當前的輸入和前一個單字傳遞過來的「記憶」。
【運作方式】
想像你逐字閱讀這句話:「天氣雖然很熱,但是...」。當你讀到「但是」時,你的大腦還記得前面的「雖然」,因此你會預期後面將出現一個轉折。
RNN 就是在模仿這個過程。它有一個隱藏狀態(可以想成是短期記憶),每讀一個詞,就會更新一次這個狀態,然後把這個狀態傳遞給下一個時間點的自己。
(圖說:RNN 像一個有記憶的傳送帶,每個字的處理結果都會影響下一個)
【升級版:LSTM - 擁有「閘門」的長期記憶】
標準的 RNN 有個問題:它的記憶力很短。當句子太長時,它很容易忘記開頭的資訊(稱為「梯度消失問題」)。
為此,更複雜的 長短期記憶網絡 (Long Short-Term Memory, LSTM) 被設計出來。LSTM 在 RNN 的基礎上,精巧地加入了三個「閘門 (Gates)」結構:
* 遺忘門:決定要從過去的記憶中丟掉哪些不重要的資訊。
* 輸入門:決定要讓哪些新的資訊進入記憶中。
* 輸出門:決定要從當前的記憶中輸出哪些部分作為結果。
透過這三個閘門的協同工作,LSTM 能夠有效地記住長距離的依賴關係。比如在處理「我出生在法國...我會說流利的法語」這段話時,即使中間隔了很多字,LSTM 依然能記住「法國」和「法語」之間的關聯。
【優點與瓶頸】
* 優點:成功地捕捉了語言的順序性,讓機器翻譯、語音辨識等任務的品質大幅提升。
* 瓶頸:它的「循序處理」機制,既是優點也是缺點。因為必須一個字一個字地處理,導致計算速度慢,難以並行化。而且,當句子極長時,它仍然可能難以完美地權衡所有單字的重要性。
最終站:Transformer 模型 - 懂得抓重點的情境大師
2017 年,一篇名為《Attention Is All You Need》的論文橫空出世,介紹了 Transformer 模型,徹底顛覆了 NLP 領域,它也是 GPT、BERT 等當今所有頂級模型的基石。
Transformer 的核心武器,就是注意力機制 (Attention Mechanism)。
【核心武器:注意力機制】
回想一下,當你閱讀一個句子時,你的注意力並不是平均分配給每個字的。你會根據當下正在理解的詞,去重點關注句子中的其他相關詞彙。
例如,在翻譯句子 "The animal didn't cross the street because it was too tired." 時,要確定 it 指的是 animal 而不是 street,你需要特別關注這兩個詞。
注意力機制就是讓模型學會這種能力。它不再像 RNN 那樣一個接一個地傳遞記憶,而是允許模型在處理任何一個詞的時候,都可以直接「看到」句子中的所有其他詞,並為每個詞計算一個「注意力分數」。分數越高的詞,代表關聯性越強,對理解當前詞的語意也越重要。
【一個直觀的比喻:雞尾酒會】
* RNN/LSTM:像是在雞尾酒會上玩「傳話遊戲」。你只能聽前一個人說的話,然後加上自己的理解傳給下一個人。傳到最後,訊息可能已經失真了。
* Transformer:你站在舞池中央,可以清楚地聽到全場每個人的對話。當你需要理解某個人(目標詞)說的話時,你會根據這個人的話題,動態地調整你對場上其他人的關注度。你會更專注於那些與他討論相關話題的人,而忽略那些聊不相干事情的人。
(圖說:在處理 "it" 時,注意力機制會讓模型高度關注 "animal",從而理解其指代關係)
【優點】
* 強大的上下文理解能力:通過注意力機制,模型能捕捉到句子中任何兩個詞之間的長距離依賴關係,無論它們相隔多遠。
* 高度並行化:它擺脫了 RNN 的序列依賴,可以同時處理句子中的所有單字,極大地提高了訓練速度,使得訓練擁有數千億參數的超大規模模型成為可能。
總結:一條不斷進化的道路
NLP 模型的發展,是一部不斷追求更深刻「理解」的歷史:
| 模型 | 核心思想 | 處理方式 | 優點 | 缺點 |
|---|---|---|---|---|
| 詞袋模型 | 統計詞頻 | 忽略順序,一視同仁 | 簡單快速 | 語意理解能力差 |
| RNN/LSTM | 序列記憶 | 逐字處理,傳遞記憶 | 理解順序,上下文關聯 | 速度慢,有長距離遺忘問題 |
| Transformer | 注意力機制 | 全局視野,動態抓重點 | 上下文理解極強,可並行 | 模型複雜,計算資源需求大 |
從只能識別零散關鍵字的「詞袋」,到能處理語序的「學徒」,再到如今能權衡全局、抓住核心矛盾的「情境大師」,NLP 模型正以前所未有的深度和廣度,理解並生成著人類的語言。正是這些理論的演進,才讓我們今天能夠與如此強大和智能的 AI 進行對話。