2022.5.29 第八次周报
目錄
自監督學習 Self-supervised Learning
一、什么是Self-supervised Learning?
1.Self-supervised Learning
2.Masking Input
第一個是MASK(special token)
第二種是Random
?3.Next Sentence Prediction
二、How to use BERT?
GLUE?
GLUE Score
Case1:Sentiment Analysis
Case2:POS tagging
Case3:Natural Language Inference(NLI)
Case4:Extraction-based Question Answering(QA)
弄壞數據的方法MASS/BART
三、Why does BERT work?
1.BERT如何工作?
2.Multi-lingual BERT 多語言BERT
四、GPT series
1.predict Next Token
2.How to use GPT?
自監督學習 Self-supervised Learning
一、什么是Self-supervised Learning?
1.Self-supervised Learning
supervised:比如說現在輸入一篇文章,判斷它是正面還是負面文章。我們就需要文章和label(它是正面還是負面)才能夠進行train。
self-supervised:在沒有label的情況下,自己想辦法做supervised。假設現在只有一堆文章,沒有標注,想辦法讓一部分文章作為model的輸入,另一部分作為label,讓y與x1越接近越好。
?
2.Masking Input
我們拿BERT這個model說一下self-supervised到底是怎么做的?(填空題)
BERT一般用在自然語言、文字上,輸入一排向量,輸出一排向量 。用的是和Transformer Encoder一樣的架構。原理是隨機的遮住一些tokens,蓋住哪些,隨機決定。被遮蓋的單位輸出的向量經過linear(乘上一個矩陣),再經過softmax輸出一個向量,去和所有的字體做對比,通過計算minimize cross entropy,來找出被遮蓋的字最可能是什么字。
其中提到的遮住一些tokens可以選擇不同的方法來做:
第一個是MASK(special token)
把句子里面的某一字換成特殊的符號(可以想像成新的中文的字,在字典里從來沒有出現過)
第二種是Random
隨機把某一個字換成另一個字(隨便換成某一個字)
?3.Next Sentence Prediction
input:兩個句子
output:YES/NO
SEP:分隔符號,代表兩個不同的句子
CLS:輸出Yes/No:這兩個句子是不是相接的。如果是輸出YES,反之NO
?
但是這個Next sentence Prediction對于接下來BERT想做的事情是沒什么太大用處,主要原因是對于BERT來說,要分辨兩個句子是不是相接比較容易。那在使用Next sentence Prediction這個任務就沒有太大必要。反倒是另外一個和Next sentence Prediction相像的SOP是有用的。SOP的意思就是讓BERT分辨哪一句在前面,這兩句是相接的,讓判斷順序。
?
二、How to use BERT?
BERT除了做填空題(Masked),還能用在解各式各樣的任務。值得注意的是BERT真正的任務就是DownStream Tasks。產生BERT的過程叫做Pre-train,該過程一般需要進行masking input 和next sentence prediction這兩個操作。產生出來的BERT只會做填空題,BERT做過fine-tune(微調)之后才能做各式各樣的任務。pre-train(預訓練)過程是unsupervised learning,fine-tune過程是supervised learning,所以整個過程是semi-supervised。
GLUE?
GLUE是用來測試BERT的能力的任務集,GLUE是自然語言處理任務,總共有九個任務。 BERT分別微調之后做這9個任務,將9個測試分數做平均后代表BERT的能力高低。分數越高,代表模型越好。
GLUE Score
Case1:Sentiment Analysis
input:sequence
output:class
我們仍然需要下游任務的標注資料,提供給大量的句子和label 才能去訓練這個model。linear的參數是隨機初始化的。訓練就是更新BERT和linear這兩個模型里的參數。
?
Case2:POS tagging
input:sequence
output:same as input
?
Case3:Natural Language Inference(NLI)
input:two sequence
output:a class
?
?
Case4:Extraction-based Question Answering(QA)
針對回答能在文中找到的問答。輸入問題和文章,輸出兩個正整數s,e,表示第s個字到第e個字之間的字就是答案。經過內積之后通過softmax,分數最高的位置就是起始或終止位置。 橙色向量代表答案的起始位置,藍色向量代表答案的結束位置。
弄壞數據的方法MASS/BART
在一個transformer的模型中,輸入的序列損壞,輸出的是還原損壞的輸入。 如何損壞輸入數據呢?
可以采用mass或BART手段:
1.mass是蓋住某些數據(類似于masking)
2.BART是下圖右邊所有的方法(蓋住數據、刪除數據、打亂數據順序、旋轉數據等等)
三、Why does BERT work?
1.BERT如何工作?
The tokens with similar meaning have similar embedding.
輸入一串文字,對應的輸出向量我們叫它embedding,這些向量代表了輸入的字的意思。越相近的字產生的向量越接近,如果與草、鳥與魚等 。同時,BERT會根據上下文,不同語義的同一個字會產生不同的向量。
?
2.Multi-lingual BERT 多語言BERT
Multi-lingual BERT ,它的特點就是用各種語言來做填空題。我們train了很多種不同的語言來做填空題之后,我們拿英文的問答的資料做train,接下來它就會自動學做中文的問答的問題。那為什么會這樣呢?也許對于它而言,不同語言沒什么差距 ,所以同義的不同語言的向量會比較接近。
那我們想要了解不同語言之間的關系就做了下圖這么一個實驗。將所有中文的embbeding平均一下,英文的embbeding平均一下,發現兩者之間存在著差距,這個差距用一個藍色向量來表示。對一個multi-BERT輸入英文問題后,會輸出一堆embedding,這堆embedding加上這個差距的embbeding后,最終竟然能輸出中文的答案。
?
?
四、GPT series
1.predict Next Token
Self-Supervised Learning除了BERT還有GPT系列的模型,BERT做的是填空題,GPT做的任務就是預測接下來會出現的token是什么。
例如訓練資料是臺灣大學,那么輸入BOS后訓練輸出是臺,再將臺作為輸入訓練輸出是灣,以此類推即可。模型輸出embedding h,h再經過linear transform和softmax后,計算輸出分布與正確答案之間的cross entropy,希望越小越好。我們可以不斷訓練,從而利用GPT來預測下一篇的文章。
2.How to use GPT?
描述模型問題和解答范例,模型就能自己開始做題了。這個應用叫few-shot learning。它不是一般的learining,都沒用到gradient descent(梯度下降),所以被叫做In-context Learning。還有兩個分別叫做one-shot learning 和 zero-shot learning。
用下面的例子來說,如果用GPT來進行翻譯功能:
給出幾個例子,讓他直接翻譯出結果,這個叫做 Few-shot Learning。
?只看一個例子就可以翻譯的叫 one-shot?Learning。
直接說要做翻譯就能實現的叫 Zero-shot Learning。?
?
最后一點就是說,Self-Supervised Learning不只可以用在文字上,在圖像上、語音上也可以使用。
總結
以上是生活随笔為你收集整理的2022.5.29 第八次周报的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于python ttkbootstar
- 下一篇: java弹出浏览器提示框_js弹出框、对