RNN vs FFNN
FFNN(前饋神經(jīng)網(wǎng)絡(luò))的局限性
前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network, FFNN):前饋神經(jīng)網(wǎng)絡(luò)(FFNN),也稱為多層感知機(jī)(MLP),通過(guò)多個(gè)隱藏層將輸入數(shù)據(jù)映射到輸出數(shù)據(jù)。它主要由輸入層、一個(gè)或多個(gè)隱藏層以及輸出層組成,數(shù)據(jù)在網(wǎng)絡(luò)中只能單向流動(dòng),即從輸入層經(jīng)過(guò)隱藏層最終到達(dá)輸出層,沒(méi)有反饋環(huán)路。
FFNN
FFNN的局限性:FFNN這種結(jié)構(gòu)在處理序列數(shù)據(jù)時(shí)存在明顯的局限性,因?yàn)槊總€(gè)輸入都是獨(dú)立處理的,并且沒(méi)有考慮它們之間的順序或上下文關(guān)系。這意味著無(wú)法有效處理順序數(shù)據(jù)并捕獲輸入之間的依賴關(guān)系。例如語(yǔ)言建模、機(jī)器翻譯、語(yǔ)音識(shí)別、時(shí)間序列分析以及許多其他需要順序處理的應(yīng)用程序。
Sequence Data
RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))
RNN的核心思想 : 為了解決FFNN在處理序列數(shù)據(jù)時(shí)的局限性,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)被引入。RNN的核心思想是 在隱藏層之間引入循環(huán)連接,使得每個(gè)時(shí)間步的隱藏狀態(tài)不僅取決于當(dāng)前時(shí)間步的輸入,還取決于前一個(gè)時(shí)間步的隱藏狀態(tài) 。
RNN 最主要也是最重要的特征是它的隱藏狀態(tài),它可以記住有關(guān)序列的一些信息。該狀態(tài)也稱為記憶狀態(tài),因?yàn)樗鼤?huì)記住網(wǎng)絡(luò)的先前輸入。
RNN的隱藏狀態(tài)
RNN的模型架構(gòu):RNN 通過(guò)其隱藏層的隱藏狀態(tài)捕捉輸入序列的時(shí)序依賴性,并基于當(dāng)前輸入和前一隱藏狀態(tài)來(lái)生成輸出序列的預(yù)測(cè)結(jié)果。
輸入層 :接收輸入數(shù)據(jù),并將其傳遞給隱藏層。輸入不僅僅是靜態(tài)的,還包含著序列中的歷史信息 。
隱藏層 :隱藏狀態(tài)是核心部分,捕捉時(shí)序依賴性。隱藏層的輸出不僅取決于當(dāng)前的輸入,還取決于前一時(shí)刻的隱藏狀態(tài) 。
輸出層 :根據(jù)隱藏層的輸出生成最終的預(yù)測(cè)結(jié)果。
輸入層- 隱藏層 – 輸出層
RNN的工作原理 : 通過(guò)一個(gè)具體的案例來(lái)看看RNN的工作原理。例如,用戶說(shuō)了一句“what time is it?”,需要判斷用戶的說(shuō)話意圖,是問(wèn)時(shí)間,還是問(wèn)天氣?
輸入層 :先對(duì)句子“what time is it ?” 進(jìn)行分詞,然后按照順序輸入。
對(duì)句子進(jìn)行分詞
隱藏層 :在此過(guò)程中,我們注意到前面的所有輸入都對(duì)后續(xù)的輸出產(chǎn)生了影響。圓形隱藏層不僅考慮了當(dāng)前的輸入,還綜合了隱藏狀態(tài)存儲(chǔ)的 之前所有的輸入信息,能夠利用歷史信息來(lái)影響未來(lái)的輸出 。
Hidden State存儲(chǔ)了之前所有的輸入信息
輸出層 :生成最終的預(yù)測(cè)結(jié)果:Asking for the time。
輸出結(jié)果:Asking for the time
RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))的局限性
RNN的局限性 : 在于梯度問(wèn)題導(dǎo)致難以學(xué)習(xí)長(zhǎng)期依賴,長(zhǎng)期記憶能力不足,且并行處理能力差。
1. 梯度消失和梯度爆炸問(wèn)題
梯度消失:在RNN 中,由于參數(shù)共享和多次連乘的特性,在反向傳播過(guò)程中,梯度值可能會(huì)隨著時(shí)間步的增加而指數(shù)級(jí)衰減,最終趨近于0。這導(dǎo)致RNN難以學(xué)習(xí)到長(zhǎng)期依賴關(guān)系,因?yàn)檩^早時(shí)間步的輸入在反向傳播時(shí)其梯度幾乎為0,無(wú)法對(duì)這些輸入進(jìn)行有效的權(quán)重更新。
梯度爆炸:與梯度消失相反,梯度爆炸是指在反向傳播過(guò)程中,梯度值可能會(huì)隨著時(shí)間步的增加而快速增長(zhǎng)到非常大,導(dǎo)致模型訓(xùn)練不穩(wěn)定甚至無(wú)法收斂。
2. 長(zhǎng)期依賴捕捉能力有限
由于梯度消失的問(wèn)題,RNN在處理長(zhǎng)序列時(shí)難以有效地捕捉到長(zhǎng)期依賴關(guān)系。這意味著如果輸入序列中的某個(gè)元素與輸出之間存在長(zhǎng)時(shí)間的間隔,RNN可能無(wú)法有效地學(xué)習(xí)到這兩者之間的關(guān)系,從而限制了其在處理長(zhǎng)序列數(shù)據(jù)時(shí)的性能。
3. 并行處理能力較差
RNN的計(jì)算是順序進(jìn)行的,即每個(gè)時(shí)間步的輸出都依賴于前一個(gè)時(shí)間步的計(jì)算結(jié)果。這種順序計(jì)算的方式限制了RNN的并行處理能力,使得在大規(guī)模數(shù)據(jù)集和復(fù)雜模型的情況下,RNN的訓(xùn)練和推理速度相對(duì)較慢。
梯度消失和梯度爆炸
二、神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(NNLM)
神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(Neural Network Language Model, NNLM)是一種 利用神經(jīng)網(wǎng)絡(luò)架構(gòu)來(lái)預(yù)測(cè)文本序列中下一個(gè)詞 的語(yǔ)言模型。NNLM通過(guò) 學(xué)習(xí)大量文本數(shù)據(jù)中的詞匯之間的概率關(guān)系 ,能夠捕捉到語(yǔ)言的結(jié)構(gòu)和語(yǔ)境,從而生成連貫且符合上下文的文本。 本文旨在結(jié)合經(jīng)典論文 《A Neural Probabilistic Language Model》 的內(nèi)容,詳細(xì)解析NNLM的基本原理、網(wǎng)絡(luò)架構(gòu)及模型訓(xùn)練。
NNLM的基本原理
Yoshua Bengio及其團(tuán)隊(duì)在2003年的論文《A Neural Probabilistic Language Model》中首次展示了如何使用神經(jīng)網(wǎng)絡(luò) (特別是多層感知器MLP)來(lái)構(gòu)建語(yǔ)言模型,這一工作不僅為后續(xù)的深度學(xué)習(xí)在NLP中的應(yīng)用奠定了基石,還意外地催生了詞嵌入(word embedding)這一重要概念。 NNLM的核心思想:利用神經(jīng)網(wǎng)絡(luò)來(lái)建模自然語(yǔ)言中的詞語(yǔ)序列,從而預(yù)測(cè)給定上下文條件下下一個(gè)詞出現(xiàn)的概率。與傳統(tǒng)的n-gram模型相比,NNLM能夠捕捉更長(zhǎng)的上下文依賴關(guān)系,并且通過(guò)詞嵌入技術(shù)將詞語(yǔ)映射到連續(xù)的向量空間中,使得相似的詞語(yǔ)在向量空間中具有相近的表示。
NNLM開(kāi)山之作NNLM中的Distributed Representation(分布式表示)是Embedding(嵌入)最早的理論支撐之一,它代表了一種將單詞或文本表示為連續(xù)向量空間的技術(shù)。這種表示方法相比傳統(tǒng)的獨(dú)熱編碼(One-Hot Encoding)具有顯著的優(yōu)勢(shì),能夠捕捉到單詞之間的語(yǔ)義關(guān)系。
減少維度災(zāi)難:傳統(tǒng)的獨(dú)熱編碼方式在詞匯表很大時(shí)會(huì)導(dǎo)致向量維度極高,而分布式表示則通過(guò)低維向量表示單詞,大大減少了計(jì)算復(fù)雜度。
捕捉語(yǔ)義信息:分布式表示能夠捕捉到單詞之間的語(yǔ)義相似性,使得在向量空間中相似的單詞具有相近的表示,這對(duì)于處理NLP任務(wù)至關(guān)重要。
提高模型泛化能力:由于分布式表示能夠捕捉到單詞之間的語(yǔ)義關(guān)系,因此模型在處理未見(jiàn)過(guò)的單詞或句子時(shí)具有更好的泛化能力。
distributed representation vs one-hot representation
NNLM的網(wǎng)絡(luò)架構(gòu)
NNLM的目標(biāo):NNLM是一個(gè)用于語(yǔ)言建模的神經(jīng)模型,該模型旨在學(xué)習(xí)一個(gè)函數(shù)f,該函數(shù)可以根據(jù)給定的前置詞匯預(yù)測(cè)序列中的下一個(gè)詞匯。
函數(shù)f 模型 f 分解為兩個(gè)主要部分:詞嵌入層(C)和概率函數(shù)(g)。詞嵌入層將詞匯轉(zhuǎn)換為向量表示,而概率函數(shù)則利用這些向量預(yù)測(cè)文本序列中下一個(gè)詞匯的概率分布。
詞嵌入層(C):將詞匯表中 的每個(gè)詞匯轉(zhuǎn)換成一個(gè)實(shí)值向量。 這些向量代表了詞匯的分布式特征,即它們不僅僅表示詞匯本身,還包含了詞匯在不同上下文中的語(yǔ)義信息。
概率函數(shù)(g):根據(jù)給定的上下文信息來(lái)預(yù)測(cè)下一個(gè)詞匯出現(xiàn)的概率。 由多個(gè)詞匯組成的上下文(比如前面的n-1個(gè)詞匯),概率函數(shù)g會(huì)利用這些詞匯的向量表示(即詞嵌入層輸出的向量)來(lái)估計(jì)下一個(gè)詞匯出現(xiàn)的概率分布。
詞嵌入層(C)和概率函數(shù)(g)
NNLM的網(wǎng)絡(luò)架構(gòu):根據(jù)《A Neural Probabilistic Language Model》中的描述,NNLM主要由輸入層、隱藏層及輸出層三部分組成。 通過(guò)輸入層接收前文單詞序列的向量表示,在隱藏層中捕捉復(fù)雜的語(yǔ)言結(jié)構(gòu),最后在輸出層輸出每個(gè)單詞作為下一個(gè)詞出現(xiàn)的概率分布。
NNLM的網(wǎng)絡(luò)架構(gòu)
輸入層
輸入層
作用:輸入層負(fù)責(zé)接收原始數(shù)據(jù),并將其轉(zhuǎn)換為神經(jīng)網(wǎng)絡(luò)可以處理的格式。在自然語(yǔ)言處理 中,輸入層通常接收的是詞匯的向量表示,即詞嵌入(word embedding)。
上下文詞匯向量:如上文所述,輸入層連接的是上下文詞匯向量x = (C(wt-1), C(wt-2), …, C(wt-n+1))
,其中C(wt-i)
表示在時(shí)間步t-i
時(shí)詞匯wt-i
的詞嵌入向量。這些向量共同構(gòu)成了神經(jīng)網(wǎng)絡(luò)的輸入。
隱藏層
隱藏層
作用:隱藏層是神經(jīng)網(wǎng)絡(luò) 中的核心部分,負(fù)責(zé)學(xué)習(xí)數(shù)據(jù)的復(fù)雜特征表示。在自然語(yǔ)言處理中,隱藏層通常包含多個(gè)神經(jīng)元,并且這些神經(jīng)元之間以及與前一層和下一層之間都有連接。
非線性激活函數(shù):為了引入非線性,隱藏層中的神經(jīng)元通常使用非線性激活函數(shù),如雙曲正切函數(shù)(tanh)。激活函數(shù)使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)非線性關(guān)系,從而捕捉數(shù)據(jù)的復(fù)雜模式。
權(quán)重和偏置:隱藏層中的每個(gè)神經(jīng)元都與其前一層的神經(jīng)元通過(guò)權(quán)重矩陣U和H(以及偏置向量d)相連接。這些權(quán)重和偏置在訓(xùn)練過(guò)程中被學(xué)習(xí),以最小化預(yù)測(cè)誤差。
輸出層
輸出層
作用:輸出層是神經(jīng)網(wǎng)絡(luò) 的最后一層,負(fù)責(zé)產(chǎn)生最終的預(yù)測(cè)結(jié)果。在自然語(yǔ)言處理中,輸出層通常使用softmax函數(shù)將隱藏層的輸出轉(zhuǎn)換為概率分布,以便在每個(gè)時(shí)間步預(yù)測(cè)下一個(gè)詞匯。
softmax函數(shù):softmax函數(shù)將隱藏層的輸出轉(zhuǎn)換為概率分布P^(wt | wt-1, …, wt-n+1)
。這個(gè)概率分布表示在給定上下文條件下,每個(gè)詞匯作為下一個(gè)詞匯的概率。
預(yù)測(cè):最終,神經(jīng)網(wǎng)絡(luò)通過(guò)選擇概率最高的詞匯作為預(yù)測(cè)結(jié)果。
NNLM的網(wǎng)絡(luò)架構(gòu)
NNLM的模型訓(xùn)練
NNLM的模型訓(xùn)練:NNLM的訓(xùn)練過(guò)程旨在最大化訓(xùn)練數(shù)據(jù)中序列的聯(lián)合概率,即最大化給定前文單詞的條件下,下一個(gè)單詞出現(xiàn)的概率。在訓(xùn)練過(guò)程中,分布式表示(即詞嵌入)是作為模型的訓(xùn)練參數(shù)之一進(jìn)行更新的。
NNLM
NNLM訓(xùn)練過(guò)程:通過(guò)前向傳播計(jì)算輸出,利用損失函數(shù)評(píng)估差異,然后反向傳播更新權(quán)重,迭代優(yōu)化直至收斂或達(dá)到預(yù)設(shè)迭代次數(shù)。這通常通過(guò)最小化負(fù)對(duì)數(shù)似然(negative log-likelihood)損失函數(shù)來(lái)實(shí)現(xiàn)。
最小化負(fù)對(duì)數(shù)似然
其中 R( θ) 是正則化項(xiàng)(例如,權(quán)重衰減),使用隨機(jī)梯度上升法更新參數(shù) θ :
更新參數(shù) θ
其中 ? 是學(xué)習(xí)率。
三、人工神經(jīng)網(wǎng)絡(luò)與貝葉斯網(wǎng)絡(luò)
大模型,特別是那些擁有數(shù)十億甚至更多參數(shù)的深度學(xué)習(xí)模型,往往是以人工神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的。這些模型通過(guò)堆疊多個(gè)隱藏層、增加神經(jīng)元數(shù)量和使用復(fù)雜的非線性激活函數(shù),來(lái)構(gòu)建能夠處理復(fù)雜任務(wù)(如自然語(yǔ)言處理 、圖像識(shí)別等)的深度神經(jīng)網(wǎng)絡(luò)。
大模型與人工神經(jīng)網(wǎng)絡(luò)的關(guān)系
什么是人工神經(jīng)網(wǎng)絡(luò)(ANN)?人工神經(jīng)網(wǎng)絡(luò)(ANN)是一種模仿生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和功能的計(jì)算模型。它由多個(gè)層組成,包括輸入層、隱藏層(可能有多層)和輸出層。每一層都包含多個(gè)神經(jīng)元(或稱為節(jié)點(diǎn)),這些神經(jīng)元通過(guò)帶權(quán)重的連接相互連接。
ANN 輸入層接收外部數(shù)據(jù),隱藏層對(duì)數(shù)據(jù)進(jìn)行處理,輸出層則產(chǎn)生最終的輸出。神經(jīng)元的激活通常通過(guò)一個(gè)非線性函數(shù)(如sigmoid、ReLU等)來(lái)實(shí)現(xiàn),這使得網(wǎng)絡(luò)能夠?qū)W習(xí)復(fù)雜的非線性關(guān)系。
ANN 大模型與人工神經(jīng)網(wǎng)絡(luò)的關(guān)系:LLM 的核心是ANN(人工神經(jīng)網(wǎng)絡(luò)),基于人工神經(jīng)網(wǎng)絡(luò)構(gòu)建更大規(guī)模和復(fù)雜度更高的深度學(xué)習(xí)模型。
PLM(預(yù)訓(xùn)練模型):預(yù)訓(xùn)練語(yǔ)言模型通常使用互聯(lián)網(wǎng)上的海量文本數(shù)據(jù)作為訓(xùn)練語(yǔ)料 ,這些語(yǔ)料庫(kù)可能包含數(shù)十億甚至數(shù)千億個(gè)單詞。這些模型通過(guò)在大量的未標(biāo)注文本數(shù)據(jù)上進(jìn)行學(xué)習(xí),掌握了語(yǔ)言的共性和規(guī)律,進(jìn)而能夠應(yīng)用于各種NLP下游任務(wù)。
數(shù)據(jù) + 算力: 算力作基礎(chǔ),數(shù)據(jù)為驅(qū)動(dòng);無(wú)監(jiān)督預(yù)訓(xùn)練(Pre-training),有監(jiān)督微調(diào)(Fine-tuning)。
權(quán)重w和偏置b:模型參數(shù)包括每一層的權(quán)重(weight)和偏置項(xiàng)(bias)。這些參數(shù)在訓(xùn)練過(guò)程中通過(guò)反向傳播算法進(jìn)行調(diào)整,以最小化損失函數(shù)。
LLM 》DL 》ANN
人工神經(jīng)網(wǎng)絡(luò)與貝葉斯網(wǎng)絡(luò)的關(guān)系
什么是貝葉斯網(wǎng)絡(luò)(BN)?貝葉斯網(wǎng)絡(luò)(Bayesian Network,簡(jiǎn)稱BN)是一種基于概率推理的圖形模型,用于表示變量之間的依賴關(guān)系。它由一個(gè)有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG)和條件概率表(Conditional Probability Table,CPT)組成。
Bayesian Network
有向無(wú)環(huán)圖(DAG):用于表示變量之間的依賴關(guān)系。圖中的節(jié)點(diǎn)代表變量,有向邊(或稱為弧)則表示變量之間的依賴關(guān)系。如果兩個(gè)節(jié)點(diǎn)之間存在有向邊,則意味著一個(gè)節(jié)點(diǎn)的狀態(tài)會(huì)影響另一個(gè)節(jié)點(diǎn)的狀態(tài)。
條件概率表(CPT):與DAG中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián),用于描述節(jié)點(diǎn)與其父節(jié)點(diǎn)之間的概率關(guān)系。條件概率表詳細(xì)列出了在給定父節(jié)點(diǎn)狀態(tài)下,當(dāng)前節(jié)點(diǎn)取各個(gè)可能值的概率。
Bayesian Network
人工神經(jīng)網(wǎng)絡(luò)與貝葉斯網(wǎng)絡(luò)的關(guān)系:兩者都是有向圖模型,其中每個(gè)節(jié)點(diǎn)的取值或狀態(tài)僅依賴于其直接前驅(qū)節(jié)點(diǎn),即遵循馬爾可夫假設(shè)。這種結(jié)構(gòu)使得模型能夠清晰地表示變量之間的依賴關(guān)系。
ANN vs Bayesian Network
有向圖模型:一種使用有向圖來(lái)表示變量之間關(guān)系的數(shù)學(xué)模型。在有向圖中,節(jié)點(diǎn)代表變量,而有向邊則代表變量之間的依賴關(guān)系。
Direction Graph
馬爾可夫假設(shè):一種簡(jiǎn)化模型復(fù)雜性的假設(shè),它指出一個(gè)節(jié)點(diǎn)的狀態(tài)(或取值)僅依賴于其直接前驅(qū)節(jié)點(diǎn)的狀態(tài)(或取值),而與更前面的節(jié)點(diǎn)狀態(tài)無(wú)關(guān)。
Markov Chain
四、語(yǔ)言模型的發(fā)展歷程
語(yǔ)言模型的發(fā)展歷程
語(yǔ)言模型(LM,Language Model)的發(fā)展歷程可以清晰地劃分為三個(gè)主要階段:統(tǒng)計(jì)語(yǔ)言模型、神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型以及基于Transformer 的大語(yǔ)言模型。每個(gè)階段的模型都在前一個(gè)階段的基礎(chǔ)上進(jìn)行了改進(jìn)和優(yōu)化,使得語(yǔ)言模型的性能得到了顯著提升。
語(yǔ)言模型的發(fā)展歷程
統(tǒng)計(jì)語(yǔ)言模型
什么是統(tǒng)計(jì)語(yǔ)言模型?統(tǒng)計(jì)語(yǔ)言模型是早期自然語(yǔ)言處理 (NLP)中的重要工具,它們主要通過(guò)分析詞序列的出現(xiàn)頻率來(lái)預(yù)測(cè)下一個(gè)詞。這種方法基于統(tǒng)計(jì)學(xué)的原理,利用大規(guī)模語(yǔ)料庫(kù)中的詞頻信息來(lái)建模語(yǔ)言的概率分布。代表模型:N-gram模型、隱馬爾可夫模型(HMM)
N-gram模型:這是最常見(jiàn)的統(tǒng)計(jì)語(yǔ)言模型之一,它基于馬爾可夫假設(shè),認(rèn)為一個(gè)詞出現(xiàn)的概率僅與其前面的n-1個(gè)詞有關(guān)。N-gram模型簡(jiǎn)單易用,但存在數(shù)據(jù)稀疏和無(wú)法捕捉長(zhǎng)距離依賴關(guān)系的問(wèn)題。
隱馬爾可夫模型(HMM):另一種重要的統(tǒng)計(jì)語(yǔ)言模型,通過(guò)引入隱藏狀態(tài)來(lái)捕捉序列數(shù)據(jù)中的潛在結(jié)構(gòu)。
統(tǒng)計(jì)語(yǔ)言模型
N-gram模型:N-gram模型是一種基于統(tǒng)計(jì)語(yǔ)言模型的文本分析算法,它用于預(yù)測(cè)文本中下一個(gè)詞出現(xiàn)的概率,基于前面出現(xiàn)的n-1個(gè)詞的序列。這里的n代表序列中元素的數(shù)量,因此稱為N-gram。
Unigram:N=1,每個(gè)單詞的出現(xiàn)概率獨(dú)立計(jì)算,不考慮上下文。
Bigram:N=2,基于前一個(gè)單詞預(yù)測(cè)當(dāng)前單詞的聯(lián)合概率模型。
Trigram:N=3,考慮前兩個(gè)單詞來(lái)預(yù)測(cè)當(dāng)前單詞的聯(lián)合概率模型,更復(fù)雜但可能更準(zhǔn)確。
N-gram
N-gram模型的工作原理:N-gram模型通過(guò)統(tǒng)計(jì)語(yǔ)料庫(kù)中n-gram序列的頻率,估計(jì)給定前n-1個(gè)元素后下一個(gè)元素出現(xiàn)的概率,從而實(shí)現(xiàn)文本預(yù)測(cè)。
語(yǔ)料庫(kù)準(zhǔn)備:首先,需要有一個(gè)大型的文本語(yǔ)料庫(kù),用于訓(xùn)練N-gram模型。
計(jì)算頻率:然后,計(jì)算語(yǔ)料庫(kù)中所有可能的n-gram序列的頻率。
概率估計(jì):根據(jù)這些頻率,可以估計(jì)出給定n-1個(gè)詞后,下一個(gè)詞出現(xiàn)的概率。
預(yù)測(cè):在預(yù)測(cè)階段,給定一個(gè)詞序列的前n-1個(gè)詞,模型可以輸出下一個(gè)詞的概率分布,從而可以選擇最可能的詞作為預(yù)測(cè)結(jié)果。
N-gram
神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
什么是神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型?隨著深度學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)開(kāi)始被應(yīng)用于語(yǔ)言建模任務(wù)中。神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型通過(guò)引入神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)捕捉詞與詞之間的復(fù)雜關(guān)系,從而提高了語(yǔ)言模型的性能。代表模型:NNLM、RNN、LSTM、GRU
神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(NNLM):由Bengio等人提出,通過(guò)嵌入層將單詞映射到連續(xù)的向量空間中,并通過(guò)多個(gè)隱藏層來(lái)學(xué)習(xí)語(yǔ)言的內(nèi)部結(jié)構(gòu)。NNLM能夠捕捉詞與詞之間的語(yǔ)義關(guān)系,提高了語(yǔ)言模型的預(yù)測(cè)能力。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)及其變體(LSTM、GRU):RNN通過(guò)引入循環(huán)連接來(lái)處理序列數(shù)據(jù)中的長(zhǎng)期依賴關(guān)系。LSTM和GRU是RNN的改進(jìn)版本,通過(guò)引入門控機(jī)制來(lái)解決梯度消失或梯度爆炸問(wèn)題。
神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
NNLM: 一種基于神經(jīng)網(wǎng)絡(luò)的方法來(lái)建模自然語(yǔ)言中的詞語(yǔ)序列。與傳統(tǒng)的統(tǒng)計(jì)語(yǔ)言模型(如n-gram模型)相比,NNLM能夠捕捉更復(fù)雜的語(yǔ)言結(jié)構(gòu)和語(yǔ)義信息,因?yàn)樗昧松窠?jīng)網(wǎng)絡(luò)強(qiáng)大的非線性建模能力。
原理: 利用神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)文本序列中下一個(gè)詞或字符出現(xiàn)的概率的模型。
目的: 通過(guò)建模詞匯之間的概率關(guān)系,實(shí)現(xiàn)自然語(yǔ)言文本的生成或理解。
NNLM
NNLM 的工作原理: 通過(guò)嵌入層將輸入的固定長(zhǎng)度前文單詞序列轉(zhuǎn)換為連續(xù)向量表示,然后利用一個(gè)或多個(gè)隱藏層學(xué)習(xí)這些向量的語(yǔ)言結(jié)構(gòu),最后由輸出層輸出下一個(gè)單詞的概率分布,以最大化給定前文條件下的單詞預(yù)測(cè)準(zhǔn)確性。
輸入:NNLM的輸入是一個(gè)固定長(zhǎng)度的前文單詞序列,用于預(yù)測(cè)下一個(gè)單詞。每個(gè)單詞通常由其詞嵌入(word embedding)表示,即將單詞映射到連續(xù)的向量空間中。
結(jié)構(gòu):NNLM通常包含一個(gè)嵌入層(embedding layer),用于將輸入的單詞轉(zhuǎn)換為連續(xù)向量表示;一個(gè)或多個(gè)隱藏層(hidden layers),用于學(xué)習(xí)輸入序列的語(yǔ)言結(jié)構(gòu);以及一個(gè)輸出層(output layer),輸出下一個(gè)單詞的概率分布。
訓(xùn)練目標(biāo):最大化給定訓(xùn)練數(shù)據(jù)中序列的聯(lián)合概率,即最大化給定前文單詞的條件下,下一個(gè)單詞出現(xiàn)的概率。這通常通過(guò)最小化負(fù)對(duì)數(shù)似然(negative log-likelihood)來(lái)實(shí)現(xiàn)。
NNLM
基于Transformer的大語(yǔ)言模型
什么是基于Transformer 的大語(yǔ)言模型?基于Transformer的大語(yǔ)言模型在預(yù)訓(xùn)練階段利用大規(guī)模語(yǔ)料庫(kù)進(jìn)行訓(xùn)練,然后在特定任務(wù)上進(jìn)行微調(diào),取得了驚人的效果。代表模型:BERT、GPT系列
BERT:由Google提出的一種基于Transformer的雙向編碼器表示模型。BERT在預(yù)訓(xùn)練階段采用了遮蔽語(yǔ)言模型(Masked Language Model)和下一句預(yù)測(cè)(Next Sentence Prediction)兩個(gè)任務(wù)來(lái)訓(xùn)練模型,提高了模型的語(yǔ)言表示能力。
GPT系列:由OpenAI開(kāi)發(fā)的基于Transformer的生成式預(yù)訓(xùn)練模型。GPT系列模型在預(yù)訓(xùn)練階段采用了自回歸語(yǔ)言建模任務(wù)來(lái)訓(xùn)練模型,能夠生成連貫、自然的文本。隨著模型規(guī)模的增大(如GPT-3、GPT-4等),GPT系列模型在多個(gè)NLP任務(wù)上取得了優(yōu)異的表現(xiàn)。
基于Transformer的大語(yǔ)言模型
Transformer模型:Transformer模型由Vaswani等人在2017年提出,是一種基于自注意力機(jī)制的深度學(xué)習(xí)模型。它徹底摒棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)自注意力機(jī)制和位置編碼來(lái)處理序列數(shù)據(jù)中的長(zhǎng)期依賴關(guān)系和位置信息。
Transformer
Encoder-Decoder Architecture(編碼器-解碼器架構(gòu))
Transformer 模型通常包含編碼器和解碼器兩部分。
編碼器負(fù)責(zé)將輸入序列轉(zhuǎn)化為上下文向量(或稱為隱藏狀態(tài)),這些向量包含了輸入序列的語(yǔ)義信息。
解碼器則利用這些上下文向量生成輸出序列。在生成過(guò)程中,解碼器會(huì)逐步產(chǎn)生輸出序列的每個(gè)token,并在每一步都考慮之前的輸出和編碼器的上下文向量。
Embedding(向量化)
在自然語(yǔ)言處理 (NLP)中,輸入的文本內(nèi)容(如句子、段落或整個(gè)文檔)首先被拆分成更小的片段或元素,這些片段通常被稱為詞元(tokens)。
Embedding層負(fù)責(zé)將這些tokens轉(zhuǎn)換為固定大小的實(shí)數(shù)向量,以捕捉這些tokens的語(yǔ)義信息。這個(gè)過(guò)程是通過(guò)查找一個(gè)預(yù)訓(xùn)練的嵌入矩陣來(lái)實(shí)現(xiàn)的,其中每一行代表一個(gè)token的向量表示。
Attention(注意力機(jī)制)
注意力機(jī)制的核心是計(jì)算查詢向量(Q)、鍵向量(K)和值向量(V)之間的相互作用。對(duì)于每個(gè)token,它有一個(gè)對(duì)應(yīng)的查詢向量,而整個(gè)輸入序列的tokens則共享一套鍵向量和值向量。
通過(guò)計(jì)算查詢向量與每個(gè)鍵向量的相似度(通常使用縮放點(diǎn)積注意力),得到一組注意力權(quán)重。這些權(quán)重表示了在生成當(dāng)前token的表示時(shí),應(yīng)該給予其他token多大的關(guān)注。
最后,將注意力權(quán)重應(yīng)用于值向量,并進(jìn)行加權(quán)求和,得到當(dāng)前token的自注意力輸出表示。
Position Encoding(位置編碼)
由于Transformer模型本身無(wú)法識(shí)別序列中token的位置順序,因此需要引入位置編碼來(lái)補(bǔ)充這一信息。
位置編碼可以是預(yù)定義的(如正弦和余弦函數(shù))或可學(xué)習(xí)的參數(shù)。這些編碼被添加到每個(gè)token的嵌入向量中,以幫助模型區(qū)分不同位置的token。
Multi-Head Attention(多頭注意力機(jī)制)
多頭注意力機(jī)制是自注意力機(jī)制的擴(kuò)展,它允許模型在不同的表示空間中同時(shí)關(guān)注信息的多個(gè)方面。
通過(guò)將輸入序列的嵌入向量分割成多個(gè)頭(即多個(gè)子空間),并在每個(gè)頭中獨(dú)立計(jì)算自注意力,然后將這些頭的輸出拼接在一起,最后通過(guò)一個(gè)線性變換得到最終的輸出表示。
多頭注意力機(jī)制能夠捕獲更復(fù)雜的語(yǔ)義關(guān)系,增強(qiáng)模型的表達(dá)能力。
Feed-Forward Network(前饋網(wǎng)絡(luò))
Transformer中的編碼器和解碼器都包含前饋網(wǎng)絡(luò)(也稱為全連接層)。
前饋網(wǎng)絡(luò)用于進(jìn)一步處理和轉(zhuǎn)換注意力機(jī)制提取的特征,提取和整合更多有用的信息,以生成最終的輸出表示。
Residual Connection and Layer Normalization(殘差連接和層歸一化)
在Transformer的每個(gè)子層(如多頭注意力層、前饋網(wǎng)絡(luò)層)之后,都會(huì)添加殘差連接和層歸一化操作。
殘差連接有助于緩解深層網(wǎng)絡(luò)中的梯度消失問(wèn)題,而層歸一化則有助于加速訓(xùn)練過(guò)程并提高模型的穩(wěn)定性。
Transformer
文章轉(zhuǎn)自微信公眾號(hào)@架構(gòu)師帶你玩轉(zhuǎn)AI
我們有何不同?
API服務(wù)商零注冊(cè)
多API并行試用
數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率
查看全部API→
??
熱門場(chǎng)景實(shí)測(cè),選對(duì)API