泉州 網(wǎng)站制作成都百度快照優(yōu)化排名
結(jié)論
Transformer 大于 傳統(tǒng)的Seq2Seq 大于?LSTM 大于? RNN 大于 傳統(tǒng)的n-gram
n-gram VS Transformer
我們可以用一個?圖書館查詢?的類比來解釋它們的差異:
一、核心差異對比
維度 | n-gram 模型 | Transformer |
---|---|---|
工作方式 | 固定窗口的"近視觀察員" | 全局關(guān)聯(lián)的"偵探" |
依賴距離 | 只能看前N-1個詞(如3-gram只看前2詞) | 可關(guān)注任意距離的上下文 |
語義理解 | 機(jī)械統(tǒng)計共現(xiàn)頻率 | 理解詞語間的深層關(guān)系 |
典型場景 | "牛奶要配_" → "餅干"(高頻搭配) | "牛奶要配_" → "燕麥"(健康概念關(guān)聯(lián)) |
二、具體差異拆解
1. 觀察范圍限制
-
n-gram?像用?望遠(yuǎn)鏡片段觀察
例:處理句子?"雖然價格貴但質(zhì)量真的好"-
3-gram只能看到局部組合:
["價格_貴_但", "貴_但_質(zhì)量", "但_質(zhì)量_真"]
-
無法關(guān)聯(lián)首尾的?"價格"?和?"質(zhì)量"?的對比關(guān)系
-
-
Transformer?像用?全景掃描儀
通過自注意力機(jī)制,讓每個詞都能關(guān)注到句子中所有其他詞:# "質(zhì)量"對"價格"的注意力權(quán)重可能高達(dá)0.7 # "但"對"雖然"的注意力權(quán)重可能達(dá)0.6
2. 語義關(guān)聯(lián)能力
-
n-gram 的局限性案例
輸入:?"蘋果股價大漲,因為新品很甜"-
3-gram會錯誤關(guān)聯(lián):"新品_很_甜" → 可能預(yù)測"西瓜"(高頻搭配)
-
無法發(fā)現(xiàn)?"蘋果"?在此處指公司而非水果
-
-
Transformer?的解決方案
通過上下文注意力權(quán)重識別語義:"蘋果" ← 關(guān)注到 "股價" (權(quán)重0.8) → 判定為企業(yè) "甜" ← 關(guān)注到 "新品" (權(quán)重0.3) + "股價" (權(quán)重0.6) → 判定為比喻用法
3. 處理新詞能力
-
n-gram 的困境
遇到新詞?"元宇宙":-
所有包含?"元宇宙"?的n-gram都成為低頻組合
-
導(dǎo)致預(yù)測結(jié)果不可靠
-
-
Transformer?的優(yōu)勢
通過詞向量和注意力機(jī)制:-
即使沒出現(xiàn)過?"元宇宙",也能根據(jù)詞根?"元"+"宇宙"_ 推測其語義
-
類似處理過?"元數(shù)據(jù)"?和?"宇宙探索"?的經(jīng)驗
-
n-gram VS RNN
n-gram 和 RNN 在自然語言處理中是兩種截然不同的建模思路,我們可以通過?圖書館管理?的類比來理解它們的核心差異:
一、核心機(jī)制對比
維度 | n-gram 模型 | RNN 模型 |
---|---|---|
記憶方式 | 固定長度的紙質(zhì)筆記 | 可延展的電子備忘錄 |
依賴距離 | 只能記住前N-1步(如3-gram記2步) | 理論上可記憶無限步(實際約50-100步) |
計算特征 | 基于統(tǒng)計頻次的查表操作 | 基于隱藏狀態(tài)的動態(tài)計算 |
典型表現(xiàn) | "昨天買的_奶茶"→"珍珠"(高頻搭配) | "昨天買的_奶茶"→"已經(jīng)變質(zhì)"(因果推理) |
二、工作原理拆解
1. 信息傳遞方式
-
n-gram?像?接力賽跑
每個預(yù)測只依賴前一棒選手(前N-1個詞):輸入:"我想喝一杯熱的" 3-gram預(yù)測流程: 想喝→杯 → 喝杯→熱 → 杯熱→的 → 熱的→[END]
-
RNN?像?滾雪球
通過隱藏狀態(tài)積累歷史信息:hidden_state = update("我", init_state) hidden_state = update("想", hidden_state) hidden_state = update("喝", hidden_state) # 當(dāng)處理到"熱"時,隱藏狀態(tài)已包含"我/想/喝"的信息
3. 處理長距離依賴
-
n-gram 的局限案例
句子:"雖然這款手機(jī)價格比同類產(chǎn)品高2000元,但它的_"-
5-gram只能看到"產(chǎn)品高2000元但它的"
-
無法關(guān)聯(lián)開頭的"雖然"與結(jié)尾的預(yù)測
-
-
RNN 的優(yōu)勢體現(xiàn)
通過隱藏狀態(tài)傳遞,即使相距20個詞:h_("雖然") → h_("價格") → ... → h_("它的") 仍保留著轉(zhuǎn)折關(guān)系的語義特征
三、性能對比實驗
以?詩歌生成?任務(wù)為例:
輸入: "春風(fēng)又綠江南岸"
模型 | 續(xù)寫結(jié)果 | 得分 |
---|---|---|
3-gram | "明月何時照我還"(高頻組合) | 合格但缺乏新意 |
RNN | "細(xì)雨輕拂柳葉彎"(創(chuàng)新性關(guān)聯(lián)) | 更具文學(xué)性 |
人類 | "萬物復(fù)蘇生機(jī)盎" | 標(biāo)準(zhǔn)答案 |
關(guān)鍵差異:
-
n-gram依賴"江南岸"與"明月"的常見搭配
-
RNN捕捉到"春風(fēng)"與"細(xì)雨"的意境關(guān)聯(lián)
RNN/LSTM VS Seq2Seq
在序列到序列(Seq2Seq)任務(wù)中(如機(jī)器翻譯、文本摘要等),直接使用RNN后通過全連接層輸出(1 to N)看似簡單,但存在以下關(guān)鍵問題,而編碼器-解碼器(Encoder-Decoder)結(jié)構(gòu)通過分步編碼和解碼的方式有效解決了這些挑戰(zhàn):
1. 序列的時序依賴性
自然語言中的單詞順序至關(guān)重要。例如:
-
句子1:
貓追老鼠
-
句子2:
老鼠追貓
兩個句子包含相同的詞,但含義完全相反。 -
簡單詞嵌入+全連接的缺陷:
若直接將所有詞嵌入拼接成一個向量(如[貓, 追, 老鼠]
?→ 一個長向量),模型會丟失詞序信息,無法區(qū)分兩個句子的差異。 -
編碼器-解碼器的優(yōu)勢:
通過LSTM或Transformer按順序處理輸入詞,編碼器能夠保留詞序信息,并在隱藏狀態(tài)中傳遞時序依賴關(guān)系。
2. 輸入和輸出的變長問題
在Seq2Seq任務(wù)中,輸入和輸出的長度通常是動態(tài)變化的。例如:
-
輸入:英文句子?
"Hello world"
(2個詞) -
輸出:中文翻譯?
"你好世界"
(3個詞) -
簡單詞嵌入+全連接的缺陷:
全連接層需要固定維度的輸入和輸出,無法處理變長序列。 -
編碼器-解碼器的優(yōu)勢:
-
編碼器可處理任意長度的輸入序列,將其壓縮為固定長度的上下文向量(
hidden
和cell
)。 -
解碼器基于上下文向量逐步生成變長的輸出序列(逐詞生成,直到預(yù)測到
<eos>
)。
-
3. 長距離依賴建模
語言中常存在跨越多個單詞的依賴關(guān)系。例如:
-
句子:
The cat, which was hungry and had been wandering the streets for days, finally found some food.
主句的主語cat
與謂語found
相隔很遠(yuǎn)。 -
簡單詞嵌入+全連接的缺陷:
全連接層難以捕捉長距離依賴(尤其是當(dāng)句子較長時)。 -
編碼器-解碼器的優(yōu)勢:
-
LSTM通過門控機(jī)制(遺忘門、輸入門)逐步更新
cell
狀態(tài),傳遞長期信息。 -
Transformer通過自注意力機(jī)制(Self-Attention)直接建模詞與詞之間的全局依賴。
-
4. 信息壓縮與語義表示
編碼器的核心作用是將輸入序列編碼為一個全局語義表示(上下文向量)。
-
簡單詞嵌入+全連接的缺陷:
直接將所有詞嵌入拼接為一個向量,缺乏對整體語義的抽象(相當(dāng)于“詞袋模型”)。 -
編碼器-解碼器的優(yōu)勢:
-
編碼器通過循環(huán)或注意力機(jī)制逐步融合上下文信息,生成緊湊的語義表示。
-
解碼器基于此表示逐步展開生成目標(biāo)序列,確保輸出與輸入語義一致。
-
5. 模型效率與參數(shù)共享
-
簡單詞嵌入+全連接的缺陷:
若輸入長度為N
,輸出長度為M
,全連接層的參數(shù)量為?(N×embedding_dim) × M
,隨序列長度增長迅速膨脹,導(dǎo)致計算成本高且易過擬合。 -
編碼器-解碼器的優(yōu)勢:
-
LSTM或Transformer通過參數(shù)共享(同一層處理所有時間步),參數(shù)量僅與隱藏層維度相關(guān),與序列長度無關(guān)。
-
例如,LSTM的參數(shù)量為?
4×(embedding_dim + hidden_dim)×hidden_dim
,與輸入長度N
無關(guān)。
-
6. 實際案例對比
假設(shè)用兩種模型處理機(jī)器翻譯任務(wù):
方案1:簡單全連接
-
輸入:將源句子所有詞嵌入拼接為一個向量(如
N=5
,embedding_dim=256
?→ 輸入維度1280
)。 -
輸出:直接映射到目標(biāo)語言的詞表(如
vocab_size=10000
),參數(shù)量為?1280×10000 = 12.8M
。 -
問題:
-
無法處理長度變化的輸入輸出。
-
無法建模詞序和長距離依賴。
-
參數(shù)量大且難以訓(xùn)練。
-
方案2:編碼器-解碼器(LSTM)
-
編碼器:LSTM逐步處理源序列,輸出上下文向量(如
hidden_dim=256
)。 -
解碼器:LSTM基于上下文向量逐詞生成目標(biāo)序列。
-
參數(shù)量:編碼器和解碼器的LSTM參數(shù)量均為?
4×(256+256)×256 ≈ 1M
,總計約2M
。 -
優(yōu)勢:
-
處理變長序列。
-
建模詞序和長距離依賴。
-
參數(shù)量小且高效。
-
總結(jié)
編碼器-解碼器結(jié)構(gòu)通過分步編碼和解碼,解決了以下核心問題:
-
時序依賴性:保留詞序信息。
-
變長序列處理:動態(tài)生成輸出。
-
長距離依賴建模:通過LSTM或注意力機(jī)制捕捉全局關(guān)系。
-
語義壓縮與傳遞:生成緊湊的上下文表示。
-
模型效率:參數(shù)共享降低計算成本。