【清華NLP】劉知遠(yuǎn)團(tuán)隊(duì)大模型公開課全網(wǎng)首發(fā)|帶你從入門到實(shí)戰(zhàn)

詞的表示的基本目的
1.詞的相似度 2.詞的關(guān)系
一、用一組與這個(gè)詞相關(guān)的詞表示詞
近義詞,上位詞
問題:
1.詞語之間的較小差異無法區(qū)分
2.詞義會發(fā)生變化,出現(xiàn)新的詞義
3.主觀性的問題,受限于詞典的標(biāo)注
4.數(shù)據(jù)吸收
5.大量的人工去構(gòu)建、維護(hù)詞典
二、把每個(gè)詞表示成獨(dú)立的符號
和詞表一樣長的向量去找一維跟這個(gè)詞相對應(yīng),整個(gè)向量的維度跟詞表的長度是相當(dāng)?shù)?/p>
用來表示文檔時(shí)非常有效,能較好地完成兩個(gè)文檔之間的相似度計(jì)算

問題:
會假設(shè)詞根詞之間的向量任意之間都是正交的,導(dǎo)致任意兩個(gè)詞之間進(jìn)行相似度計(jì)算都是0.

三、一個(gè)詞的詞義由他經(jīng)常出現(xiàn)在的位置的上下文有密切的關(guān)系
任何一個(gè)詞都可以用他出現(xiàn)的維度或者重要性去進(jìn)行表示,可以得到關(guān)于每一個(gè)詞的稠密向量,就可以在這個(gè)空間里面利用稠密向量來計(jì)算兩個(gè)詞之間的相似度

問題:
1.詞表變大,存儲需求也會變大
2.有些詞出現(xiàn)頻度特別少,上下文少,這種方法不好表示
三、分布式表示
建立低維的稠密的向量空間,嘗試把每一個(gè)詞都學(xué)到這個(gè)空間里,用這個(gè)空間里的某一個(gè)位置所對應(yīng)的向量來表示這個(gè)詞,
在這個(gè)空間里我們可以自動的學(xué)習(xí)出來詞與詞之間可能存在的相對比較穩(wěn)定的一些關(guān)系

語言模型
目的:

1.計(jì)算一個(gè)詞的序列成為一句合法的話的概率,聯(lián)合概率
2.根據(jù)前面說過的話,預(yù)測下一個(gè)詞是什么
基本假設(shè):
一個(gè)未來的詞只會受到他前面的詞的影響

一個(gè)句子的聯(lián)合概率=里面的每一個(gè)詞基于前面已經(jīng)出現(xiàn)的詞的條件概率之積
N-gram Model
每一個(gè)詞是一個(gè)單獨(dú)的符號
4-gram只會考慮相鄰的4個(gè)詞,也就是前面出現(xiàn)的三個(gè)詞來預(yù)測下一個(gè)詞

Bigram就是2-gram,考慮連續(xù)出現(xiàn)的兩個(gè)詞,相當(dāng)于只考慮前面出現(xiàn)的一個(gè)詞,預(yù)測下一個(gè)詞是什么
Trigram就是3-gram

在一個(gè)大規(guī)模數(shù)據(jù)里統(tǒng)計(jì)連續(xù)出現(xiàn)的序列的頻度,在深度學(xué)習(xí)出現(xiàn)之前一個(gè)非常重要的技術(shù)
遵守Markov的假設(shè),只考慮前面的有限的幾個(gè)詞
問題:
1.考慮的長度通常短,N多是2或者3
2.背后還是會假設(shè)所有詞相互之間都是獨(dú)立的,上下文基于符號去做統(tǒng)計(jì),不能理解詞與詞之間的相似度造成了什么

Neural Language Model
每一個(gè)詞是一個(gè)低維的向量
用分布式的表示建構(gòu)前文和當(dāng)前詞的預(yù)測條件概率
1.把詞表示成低維的向量
2.把低維的向量拼在一起,形成一個(gè)更高的上下文的向量
3.經(jīng)過非線性的轉(zhuǎn)換,用向量去預(yù)測下一個(gè)詞是什么
通過對上下文的表示完成,
相似的詞會有一個(gè)相似的向量,就有可能在語境中發(fā)揮相似的作用

大模型
預(yù)訓(xùn)練語言模型,解決NLP的一個(gè)基本的工具
大量數(shù)據(jù),大量參數(shù)
預(yù)訓(xùn)練:會從無標(biāo)注的數(shù)據(jù)中去進(jìn)行學(xué)習(xí),通過自監(jiān)督的一些任務(wù)去做預(yù)訓(xùn)練,從中得到豐富的知識

微調(diào):引入任務(wù)相關(guān)的一些數(shù)據(jù)以對具體任務(wù)進(jìn)行適配
預(yù)訓(xùn)練+微調(diào)的模式

Neural Network(神經(jīng)網(wǎng)絡(luò))
人工神經(jīng)網(wǎng)絡(luò)

w——權(quán)重,x——輸入,寫成粗體代表是向量
例子里是長度為3的向量
權(quán)重向量和輸入向量的點(diǎn)乘得到的標(biāo)量值+偏置b,最后送入激活函數(shù)f
得到一個(gè)人工神經(jīng)元的輸出

每個(gè)神經(jīng)元都會得到一個(gè)值,本例中有3個(gè)神經(jīng)元,這一層的輸出就有3個(gè)值
權(quán)重——從向量變成了一個(gè)矩陣
本例中權(quán)重是一個(gè)3×3的矩陣
W12,矩陣中第一行第二列的元素
表示這一個(gè)權(quán)重是要在計(jì)算的過程中和x2這個(gè)輸入相乘,乘積被加到a1這個(gè)神經(jīng)元上
偏置——從標(biāo)量變成向量
三個(gè)神經(jīng)元每一個(gè)神經(jīng)元都有一個(gè)偏置,可表示為b1,b2,b3,合起來是一個(gè)三維的向量
Wx+b運(yùn)算得到的是一個(gè)三維的向量
f激活函數(shù)對一個(gè)向量是按位進(jìn)行運(yùn)算的,對向量中的每一個(gè)值進(jìn)行運(yùn)算,輸出就是每一個(gè)值的運(yùn)算結(jié)果,再把他們組裝成同等大小的一個(gè)向量

多層的神經(jīng)網(wǎng)絡(luò),每層都有若干個(gè)神經(jīng)元,我們可以從輸入開始依次計(jì)算每一層的結(jié)果,即“前向計(jì)算”
隱層:輸入之上添加的多層網(wǎng)絡(luò)
(hidden layer),其輸出通常使用h來表示
本例中有三個(gè)隱層,輸出分別記為h1,h2,h3,
每一層的輸出結(jié)果是由上一層的輸出結(jié)果經(jīng)由線性變化和激活函數(shù)得到的
輸入層(Inout layer)
關(guān)于激活函數(shù)
如果神經(jīng)網(wǎng)絡(luò)中只存在線性運(yùn)算的話,那么多層的神經(jīng)網(wǎng)絡(luò)其實(shí)可以被轉(zhuǎn)化為單層的神經(jīng)網(wǎng)絡(luò)

把h1的計(jì)算公式帶入到計(jì)算h2的公式中展開,這一層神經(jīng)網(wǎng)絡(luò)權(quán)重矩陣是w2×w1,偏置是w2b1+b2
所以我們使用非線性的激活函數(shù),防止多層的神經(jīng)網(wǎng)絡(luò)塌縮成單一的神經(jīng)網(wǎng)絡(luò)

增加若干個(gè)隱層可以提高網(wǎng)絡(luò)的表達(dá)能力,如果想要得到我們想要的輸出結(jié)果,就需要添加網(wǎng)絡(luò)的最后一層,即輸出層



softmax 得到的結(jié)果是若干個(gè)正值,且和為1,可以說得到的是不同類別的概率分布,通常用于解決多分類的問題