Bert 理解基礎

2021-09-27 01:34:53 字數 2312 閱讀 8005

bert理解的基礎

(1)word embedding

(2)rnn

(3)seq2seq

(4)transformer

word embedding脈絡

w2v:詞對映到低維稠密空間,使得語義上相似的兩個詞在語義空間的距離也會比較近。

w2v的問題: 語義是上下文相關的。 而w2v訓練出來詞的向量始終只有乙個。

rnn/lstm/gru 來解決。 能記住一些歷史資訊。再往後發展,seq2seq由兩個rnn組成, 可用於翻譯、摘要、問答和對話系統。

rnn/lstm/gru的問題:大部分場景下監督資料量不足,難以學到複雜的上下文表示。

解決方案:無監督的上下文 word embedding,如elmo、openai gpt、 bert。

詳解變遷

(1)獨熱編碼

問題:高維、稀疏、正交(無法表達語義相似程度)

(2)語言模型,如n-gram模型,**句子概率

問題:a. 長距離依賴問題(住在法國…所以說xx流利)

b. 泛化能力問題(侷限於訓練資料)

(3)2023年 神經網路語言模型 可以解決問題 b.

原因:通過訓練出 詞向量,相似詞的詞向量在向量空間相近。

問題:計算低效。

(4)2023年 word2vec

分布式假設: 兩個詞上下文相似,則它們的語義也相似。

cbow:context**中心詞

skip-gram:中心詞**context

可以訓練出乙個比較的詞向量表示(「副產物」)

問題:沒考慮上下文

(5)rnn 有「記憶」能力

問題:反向傳播演算法中loss傳遞帶來的 梯度消失。無法解決長距離依賴的問題。

(6)lstm 通過門的機制來避免梯度消失

gru 把遺忘門和輸入門合併稱乙個更新門

乙個rnn的輸出:序列標註:n->n、文字分類:n->1

當n->m:機器翻譯,對話機械人等領域 沒法用乙個rnn實現。

所以使用兩個rnn, encoder和decoder。

普通seq2seq的問題:定長的context向量

(8)attention機制

翻譯某個詞時pay attention to 相關詞:

(soft對齊)

(9)rnn的問題:

c. 順序依賴,無法並行。很難訓練很深的rnn、lstm。

d. 單向資訊流的問題。

(10)self-attention 解決d 問題

普通的attention需要外部的「驅動」:

self-attention 自驅動:

編碼第t個詞時,用當前狀態去驅動:

(11)transformer結構

self-attention是transformer的一部分。

本質:多層的encoder-decoder。

而每一層 encoder 和 decoder:

decoder 還有 「普通」 的 attention 輸入來自 encoder。

encoder詳細結構, 注意 self-attention 和 fnn 的區別:

未完待續,具體學習資料參見:

bert簡介 Bert基礎介紹

bert理解 1 預訓練模型 bert是乙個預訓練的模型,那麼什麼是預訓練呢?假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用。預訓練過程 當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a訓練集學習好的引數,其他的高層引數隨機初始化,之後用b任...

BERT學習理解

在看了好多大牛們的部落格之後,關於bert有了乙個大概的理解,將一些知識點整理到這裡。bert的全稱是bidirectional encoder representation from transformers,利用了transformer的encoder部分,重點是預處理 訓練pre traini...

BERT的通俗理解

bert是乙個預訓練的模型,那麼什麼是預訓練呢?舉例子進行簡單的介紹 假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用,當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a學習好的引數,其他的高層引數隨機初始化,之後用b任務的訓練資料來訓練網路,當...