機器學習面試題 BERT

2021-10-04 01:54:31 字數 1638 閱讀 9563

bert可以看成乙個自編碼的語言模型,主要用兩個任務訓練該模型。

nsp(next sentence prediction)

bert只使用了transformer的encoder模組,與transformer本身的encoder端相比,bert的transformer encoder端輸入的向量表示,多了segment embeddings

給定一句話,隨機抹去這句話中的乙個或幾個詞,要求根據剩餘詞彙**被抹去的幾個詞,類似於完形填空

mlm可以看作是一種引入雜訊的手段,增強模型的泛化能力

具體步驟:

如果某個token在被選中的15%個token裡,則按照下面的方式隨機的執行:

判斷第二句話在文字中是否緊跟在第一句話之後,類似於段落排序

將一篇文章的各段打亂,通過重新排序把原文還原出來,這其實需要對全文大意有充分、準確的理解。next sentence prediction 任務實際上就是段落重排序的簡化版:只考慮兩句話,判斷是否是一篇文章中的前後句。在實際預訓練過程中,作者從文字語料庫中隨機選擇 50% 正確語句對和 50% 錯誤語句對進行訓練,與 masked lm 任務相結合,讓模型能夠更準確地刻畫語句乃至篇章層面的語義資訊。

單/雙向語言模型:

輸出不同點:

其中 θ

\theta

θ是 bert 中 encoder 部分的引數

θ

1\theta_1

θ1​ 是 mask-lm 任務中在 encoder 上所接的輸出層中的引數

θ

2\theta_2

θ2​則是句子**任務中在 encoder 接上的分類器引數。

被 mask 的詞集合為 m,∣v∣

|v|∣v

∣表示乙個詞典大小

word2vec

是一種考慮詞語位置關係的一種模型。通過大量語料的訓練,將每乙個詞語對映成乙個低維稠密向量,通過求余弦的方式,可以判斷兩個詞語之間的關係,word2vec其底層主要採用基於cbowskip-gram演算法的神經網路模型。

如果有少量的單詞拼寫錯誤,那麼造成的影響應該不會太大,因為bert預訓練的語料非常豐富,而且很多語料也不夠乾淨,其中肯定也還是會含有不少單詞拼寫錯誤這樣的情況。但是如果單詞拼寫錯誤的比例比較大,比如達到了30%、50%這種比例,那麼需要通過人工特徵工程的方式,以中文中的同義詞替換為例,將不同的錯字/別字都替換成同樣的詞語,這樣減少錯別字帶來的影響。

缺點:

個人整理 ,如有錯誤,請批評指正!

機器學習面試題

答 設計乙個分類模型,首先要給它設定乙個學習目標。在支援向量機中,這個目標是max margin 在adaboost中,目標是優化乙個指數損失函式。那麼在logistic regression lr 中,這個目標是什麼呢?最大化條件似然度。考慮乙個二值分類問題,訓練資料是一堆 特徵,標記 組合,x1...

機器學習面試題目

過擬合原因 資料 資料不規範,資料量少,資料穿越,統計特徵用到了未來的資訊或者標籤資訊 演算法 演算法過於複雜 解決 1 將資料規範化,處理缺失值,增加資料量,取樣,新增雜訊資料 2 正則化,控制模型複雜程度,3 early stoping,減少迭代次數,減少樹的深度,4 學習率調大 小點 5 融合...

機器學習面試題 XGBoost

相同點 不同點 先說說lrlr lr和g bd tgbdt gbdt 的區別 當在高維稀疏特徵的場景下,lrlr lr的效果一般會比gbd tgbdt gbdt 好。原因如下 先看乙個例子 假設乙個二分類問題,label為0和1,特徵有100維,如果有1w個樣本,但其中只要10個正樣本1,而這些樣本...