BERT(Bidirectional Encoder Representations from Transformers)模型詳解

一、BERT 簡介

BERT(Bidirectional Encoder Representations from Transformers)是由 Google 在 2018 年提出的一種預訓練語言表示模型。它基于 Transformer 編碼器結構,首次提出了 雙向上下文建模 的方法,大幅度提升了自然語言處理(NLP)任務的表現。

傳統的語言模型(如 RNN、LSTM)多是 單向建模,只能從左到右或從右到左學習語義。而 BERT 通過 Mask Language Model (MLM) 技術,使得模型能夠同時利用 前文和后文信息,達到深度雙向表示的效果。

二、BERT 的模型結構

BERT 的核心是 多層 Transformer Encoder,每一層由以下部分組成:

  • 輸入嵌入層(Input Embedding)

    • Token Embedding:詞的向量表示。

    • Segment Embedding:表示句子對中的句子 A 或 B。

    • Position Embedding:位置編碼,用于保留詞序信息。

    輸入向量表示為:E = E_{\text{token}} + E_{\text{segment}} + E_{\text{position}}

  • 多頭自注意力層(Multi-Head Self-Attention)
    與 Transformer Encoder 一致,計算公式為:

    \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V
  • 前饋神經網絡(Feed Forward Network, FFN)

    \text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2
  • 殘差連接 + 層歸一化(Residual Connection + LayerNorm)

三、BERT 的預訓練任務

BERT 通過 大規模語料預訓練 + 下游任務微調 的方式工作。其預訓練包含兩大任務:

1. Masked Language Model (MLM)

在輸入句子中,隨機遮蓋 15% 的詞,然后讓模型預測這些被遮蓋的詞。
例如:

  • 輸入:"I love [MASK] learning"

  • 預測:"I love machine learning"

其損失函數為交叉熵:

\mathcal{L}_{\text{MLM}} = - \sum_{i \in M} \log P(w_i | w_{\setminus M})

其中 M 表示被 Mask 的位置,w_{\setminus M}? 表示上下文。

2. Next Sentence Prediction (NSP)

給定兩句話,預測第二句是否是第一句的真實后續。

  • 正樣本:句子 B 緊跟句子 A。

  • 負樣本:句子 B 來自語料中的隨機句子。

其損失函數為二分類交叉熵:

\mathcal{L}_{\text{NSP}} = - \big[ y \log P(\text{IsNext}) + (1-y) \log (1 - P(\text{IsNext})) \big]

四、BERT 的訓練與微調

  1. 預訓練階段

    • 使用大規模語料(BooksCorpus, Wikipedia)進行訓練。

    • 學習通用的語言表示。

  2. 微調階段

    • 將預訓練好的 BERT 模型參數作為初始化。

    • 根據具體任務(文本分類、問答、命名實體識別等)在最后接入不同的輸出層,并在小規模任務數據上訓練。

五、BERT 的應用場景

  • 文本分類(情感分析、新聞分類)

  • 問答系統(SQuAD 競賽表現優異)

  • 命名實體識別(NER)

  • 自然語言推理(NLI)

  • 機器翻譯、對話系統

六、總結

  • BERT 基于 Transformer Encoder 架構,采用 雙向上下文建模

  • 通過 MLM + NSP 的預訓練任務,使模型學到深層語義表示。

  • 在多個 NLP 下游任務上達到 SOTA(state-of-the-art)表現。

BERT 的提出是 NLP 領域的里程碑,為后續的 RoBERTa、ALBERT、DistilBERT 等改進模型奠定了基礎。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94402.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【開題答辯全過程】以 基于Springboot+微信小程序的網上家教預約系統的設計與實現-開題為例,包含答辯的問題和答案

個人簡介:一名14年經驗的資深畢設內行人,語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧…

課小悅系列智能耳機上市,用硬核科技為教育賦能

在人工智能與教育深度融合的浪潮中,深圳課小悅科技有限公司以“智慧教育專家”的姿態嶄露頭角。這家深耕智能教育硬件的創新企業,于2025年8月正式推出革命性產品H360PRO系列教考耳機,為語言學習場景提供顛覆性解決方案。創新基因:…

[react] class Component and function Component

我對react的用法理解還一直停留在多年以前,說明這段時間我沒有更新react的知識。我大腦中記得還是使用Class Component this.setState,可是今天看了看react的文檔,發現怎么不一樣了,用的都是function useState的方式了。你知道這…

以太坊智能合約地址派生方式:EOA、CREATE 和 CREATE2

1. 引言 在以太坊上,智能合約可以通過以下三種方式之一進行部署: 1)由外部賬戶(Externally Owned Account, EOA)發起交易,其中 to 字段設為 null,而 data 字段包含合約的初始化代碼。2&#x…

基于RISC-V架構的國產MCU在eVTOL領域的應用研究與挑戰分析

摘要電動垂直起降飛行器(eVTOL)作為未來城市空中交通的重要組成部分,對嵌入式控制系統的性能、可靠性和安全性提出了極高的要求。RISC-V作為一種新興的開源指令集架構,為國產微控制器(MCU)的研發和應用帶來…

深度學習中的“集體智慧”:Dropout技術詳解——不僅是防止過擬合,更是模型集成的革命

引言:從“過擬合”的噩夢說起 在訓練深度學習模型時,我們最常遇到也最頭疼的問題就是過擬合(Overfitting)。 想象一下,你是一位正在備考的學生: 欠擬合:你根本沒學進去,所有題都做錯…

在JavaScript中,比較兩個數組是否有相同元素(交集)的常用方法

方法1:使用 some() includes()(適合小數組)function haveCommonElements(arr1, arr2) {return arr1.some(item > arr2.includes(item)); }// 使用示例 const arrA [1, 2, 3]; const arrB [3, 4, 5]; console.log(haveCommonElements(ar…

心路歷程-Linux的系統破解詳細解說

CentOS7系統密碼破解 密碼破解是分兩種情況的;一種是在系統的界面內,一種就是不在系統的頁面; 今天我們就來聊聊這個系統破解的話題; 1.為什么需要破解密碼?–>那當然是忘記了密碼;需從新設置密碼 2.但是…

IDE和AHCI硬盤模式有什么區別

IDE(Integrated Drive Electronics)和 AHCI(Advanced Host Controller Interface)是硬盤控制器的工作模式,主要區別在于性能、功能兼容性以及對現代存儲設備的支持程度。以下是詳細對比和分析:一、本質區別…

【密碼學實戰】密碼實現安全測試基礎篇 . KAT(已知答案測試)技術解析與實踐

KAT 測試技術解析 在密碼算法的安全性驗證體系中,Known Answer Test(KAT,已知答案測試)是一項基礎且關鍵的技術。它通過 “已知輸入 - 預期輸出” 的確定性驗證邏輯,為密碼算法實現的正確性、合規性提供核心保障&…

如何用Redis作為消息隊列

說明:以前背八股文,早就知道 Redis 可以作為消息隊列,本文介紹如何實現用 Redis 作為消息隊列。 介紹 這里直接介紹 yudao 框架中的實現。yudao 是一套現成的開源系統框架,里面集成了許多基礎功能,我們可以在這基礎上…

解決 uniapp 修改index.html文件不生效的問題

業務場景:需要在H5網站設置追蹤用戶行為(即埋點)的script代碼。 問題:無論如何修改根目錄下的index.html文件都不會生效 問題原因:在 manifest.json 文件中有個【web配置】—>【index.html模版路徑】,…

C語言第十一章內存在數據中的存儲

一.整數在內存中的存儲在計算機內存中,所有的數字都是以二進制來存儲的。整數也不例外,在計算機內存中,整數往往以補碼的形式來存儲數據。這是為什么呢?在早期計算機表示整數時,最高位為符號位。但是0卻有兩種表示形式…

K8s部署dashboard平臺和基本使用

Kubernetes 的默認 Dashboard 主要用于基本的資源查看與管理,如查看 Pod、Service 等資源的狀態,進行簡單的創建、刪除操作 。然而,在企業級復雜場景下,其功能顯得較為局限。 與之相比,開源的 Kubernetes Dashboard 增強版工具 ——Dashboard UI ,為用戶帶來了更強大的功…

JavaEE進階-文件操作與IO流核心指南

文章目錄JavaEE進階文件操作與IO流核心指南前言:為什么需要文件操作?一、java.io.File 類的基本用法1.1 文件路徑1.2 常用方法示例獲取文件信息創建和刪除文件目錄操作文件重命名和移動二、IO流的基本概念2.1 核心困境:字節流 vs. 字符流字節…

動手學深度學習03-線性神經網絡

動手學深度學習pytorch 參考地址:https://zh.d2l.ai/ 文章目錄動手學深度學習pytorch1-第03章-線性神經網絡1. 線性回歸1.1 什么是線性回歸?1.2 如何表示線性回歸的預測公式?2. 損失函數2.1 什么是損失函數?2.2 如何表示整個訓練集…

如何安全解密受限制的PDF文件

當你需要從PDF中復制一段文字用于報告或引用時,如果文件被禁止復制,解密后即可輕松提取內容,避免手動輸入的麻煩。它解壓后雙擊主程序即可運行,無需安裝,即開即用,十分便捷。建議先將界面語言切換為中文&am…

利用DeepSeek輔助編譯c#項目tinyxlsx生成xlsx文件

繼續在尋找比較快的xlsx寫入庫,從https://github.com/TinyXlsx/TinyXlsx/ 看到它的測試結果,比c的openXLSX快幾倍,就想試用一下,仔細一看,它是個c#項目,需要.NET 8.0。 于是上微軟網站下載了.NET 8.0 SDK&a…

構建現代高并發服務器:從內核機制到架構實踐

引言:高并發的挑戰與演進 在當今互聯網時代,高并發處理能力已成為服務器的核心競爭力。傳統的"一個連接一個線程"(Thread-per-Connection)模型由于資源消耗巨大、上下文切換成本高和可擴展性差,早已無法應對數萬甚至百萬級的并發連接需求。現代高并發服務器基于…

1SG10MHN3F74C2LG Intel Stratix 10 系列 FPGA

1SG10MHN3F74C2LG 是 Intel 推出的 Stratix 10 系列 FPGA 家族中的高端型號,它基于 Intel 與 TSMC 合作的 14 納米 FinFET 工藝制造,是面向超高性能計算、數據中心加速、5G 通信基礎設施、以及高端網絡設備的旗艦級可編程邏輯器件。這顆 FPGA 以極高的邏…