自然語言處理預訓練模型的研究綜述

📕參考::2020-11-02,https://kns.cnki.net/kcms/detail/11.2127.tp.20201030.1952.017.html

主要是這篇文章的自己摘了點筆記。


預訓練模型的深度學目標是如何使預訓練好的模型處于良好的初始狀態,在下游任務中達到更好的性能表現。對預訓練技術及其發展歷史進行介紹,并按照模型特點劃分為基于概率統計的傳統模型和基于習的新式模型進行綜述。

1.預訓練技術的概述

預訓練技術是指預先設計網絡結構,并對編碼后的數據輸入到網絡結構中進行訓練,增加模型的泛化能力。

預訓練后的模型可以直接根據下游任務需求進行微調,免去了從零開始的過程。

語言模型可以看作是一串詞序列的概率分布,因此在早期,研究人員提出了N-gram模型,它是基于統計語言模型的算法,但是這種做法只能通過概率統計進行判斷,會使數據出現嚴重的稀疏性,無法考慮詞內部的關聯

隨著深度學習技術的迅速發展,詞嵌入正式登上歷史的舞臺,Bengio等人在2003年提出NNLM模型[4],隨后出現了一系列詞向量技術(如Word2Vec、Glove、FastTest等)為文本提供了一種數值化的表示方法,但是無法解決一詞多義的問題

于是ELMo應運而生,它采用雙向的長短期記憶網絡(Long Short-Term Memory,
LSTM)進行進行預訓練,將詞向量由靜態轉化為動態,使其可以結合上下文來賦予詞義

GPT首次提出了無監督的預訓練和有監督的微調,使得訓練好的模型能夠更好地適應下游任務。BERT首次將雙向Transformer用于語言模型,使得該模型相對GPT對語境的理解會更加深刻。

2.預訓練技術模型簡介

在NLP領域上,其發展趨勢可以概括為三階段:規則-統計-深度學習。

基于規則的

????????一開始,研究人員的研究的重點放在如何設定語言規則上面,但是這個階段不能處理復雜
的語言問題,因此沒有太大的應用價值。

統計語言模型

????????統計語言模型是基于語料庫對語句進行預處理,然后對下游任務進行基于概率的判別。

????????N-gram是自然語言處理領域中具有顯著歷史意義的特征處理模型,基本思想是將文本內容按照字節大小為N的滑動窗口進行操作,形成長度是N的字節片段序列,然后對所有的序列的出現頻度進行統計,并且按照實現設定好的閾值進行過濾,形成了這個文本的特征向量空間。然后用訓練后的模型對語句進行概率評估,來判斷組成是否合理。

????????N-gram模型是對文本特征進行預處理,它是將相鄰的n個詞作為一組進行編碼,這就導致它過于依賴訓練語料的豐富程度,否則就很容易出現數據稀疏問題,并且計算復雜度會隨著n的增加而產生指數級的增長。

傳統預訓練模型

????????Word2Vec模型的計算復雜度和選取的窗口大小無關,而是由詞典大小和詞向量維度來決定。但是靜態的詞向量對一詞多義等問題仍然無法解決,仍然屬于淺層語言模型。

????????盡管Word2Vec極大改善了對文本的處理任務,但是難以捕獲上下文的高級概念,如多義詞消除、句法結構等問題。

????????Word2Vec提出了兩個新的模型體系結構:Skip-gram和CBOW,其中Skip-gram模型是通過輸入特定詞向量,輸出上下文對應的詞向量。CBOW是通過輸入某一特征詞的上下文對應詞向量來輸出特定向量。兩個模型基本思想相似,都是通過訓練學習得到權重矩陣,根據矩陣得到文本中詞所對應的詞向量,節省了再次訓練的時間和資源。

基于深度學習的預訓練模型

??ELMo

????????ELMo等動態預訓練模型的提出很好地解決了這些問題,比如ELMo中的詞向量不再是簡單的向量對應關系,而是通過前后語境對多義詞進行理解,用其內部函數來表達。

????????ELMo是基于特征的語言模型,可以結合上下文語境對詞進行建模。ELMo中詞向量表示的是內部網絡狀態函數,對于相同的詞它所展現出來的詞向量是動態變化的

它首先采用雙向LSTM進行預訓練,這個模型包括前向LSTM模型和后向LSTM模型

前向公式:前k-1個詞預測第k個詞。

后向公式:已知第k個詞后面的詞,預測第k個詞。

GPT模型
?

GPT首次無監督的預訓練和有監督的微調相結合,使得模型更加符合下游任務的需求。,GPT針對NLP下游任務采用統一框架,直接在Transformer[11]上的最后一層接上softmax作為任務輸出層,減少了計算復雜度。

GPT的訓練過程也包括兩個階段,第一階段是在大型文本語料庫上對模型進行預訓練,第二階段是微調階段,讓模型更好地適應下游任務。

無監督的預訓練階段:自回歸,已知幾個詞預測下一個詞的概率。

有監督訓練:對標簽,學習已知 x1 x2 x3....預測標簽為y的概率。并極大化似然函數來調參。

BERT

BERT證明了使用雙向預訓練效果更好,解決了GPT模型為了防止泄密,在進行預測時舍棄了下文信息的局限性。,它使用的是Transformer編碼器,由于self-attention機制,所以模型上下層直接全部互相連接的。

在模型輸入方面,BERT輸入的編碼向量是詞向量、位置向量、句子切分向量這三個嵌入特征的單位和。
在模型的預訓練上,BERT利用兩個監督任務進行預訓練。
第一個任務是Mask LM(MLM),為了解決GPT完全舍棄下文的問題,不再進行整個句子的預測而是對某個詞去做預測,首先屏蔽一定百分比的詞,然后通過模型實現對屏蔽詞的預測,來進行訓練。但是會存在兩點不足:一是由于屏蔽的詞在微調期間并不會出現,在進行微調時會出現與預訓練不匹配的問題。二是預測的是屏蔽掉的是詞而非句子,會使整個句子預訓練的收斂速度更慢。

針對第一個不足的解決辦法是在80%時間保持屏蔽的狀態,10%的時間里進行隨機詞替換,10%
的時間使用詞本身
。對于第二個問題,作者認為收斂速度算是對模型效果提升的妥協。
第二個任務是Next Sentence Prediction(NSP),主要是為了實現基于上個句子對下個句子的預測,首先在50%的時間是拼接原始的上下句子,標簽設為正例。50%的時間里拼接原始句子與隨機的下一句,標簽設為負例,這樣做的目的是提取句子間的關系。在隨后發布的XLNet取消了這個任務,并且RoBERTa[38]和SpanBERT[39]通過測試發現,沒有NSP的話模型的效果會更好。
?

目前的研究表明,在大型無標注語料庫進行預訓練,可以在NLP任務上顯著提高模型性能。

目前主要有兩種常見的遷移學習方式:特征提取和微調,兩者的區別就是以ELMo等為代
表的模型使用的特征提取方法凍結了預訓練參數
,而以BERT等為代表的模型采用的微調則是動態地改變參數,根據下游任務進行參數上的微調。特征提取需要更復雜的任務架構,并且就綜合性能來看,微調的方法更適合下游任務。
?


NLP常見的下游任務可以分為四大類:

第一類任務是序列標注,比如分詞、命名實體識別、語義標注等;

第二類任務是分類任務,比如文本分類、情感分析等;

第三類任務是句子關系判斷,比如句法分析、問答QA、自然語言推理等;

第四類是生成式任務,比如機器翻譯、文本摘要、閱讀理解、對話系統等。

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

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

相關文章

ES6(1) 簡介與基礎概念

1. ES6 簡介 ES6(ECMAScript 6)是 JavaScript 的一個重要版本,它在 ES5 的基礎上進行了擴展和優化。ES6 主要應用于現代 Web 開發,提高了 JavaScript 的編程效率和可讀性。 2. ES6 與 JavaScript 的關系 JavaScript 是一種基于 E…

HTML深度解讀

## 引言 HTML(HyperText Markup Language)是構建網頁的基礎語言。自1991年由Tim Berners-Lee發明以來,HTML已經經歷了多次版本更新,從HTML 1.0到HTML5,每一次更新都帶來了新的特性和功能。本文將深入探討HTML的核心概…

一次Linux下 .net 調試經歷

背景: Xt160Api, 之前在windows下用.net調用,沒有任何問題。 但是移植到Linux去后,.net程序 調用 init(config_path) 總是報錯 /root/test 找不到 traderApi.ini (/root/test 是程序目錄) 然后退出程序 解決過程: 于是考慮是不是參數傳錯了&…

iOS底層原理系列01-iOS系統架構概覽-從硬件到應用層

1. 系統層級結構 iOS系統架構采用分層設計模式,自底向上可分為五個主要層級,每層都有其特定的功能職責和技術組件。這種層級化結構不僅使系統更加模塊化,同時也提供了清晰的技術抽象和隔離機制。 1.1 Darwin層:XNU內核、BSD、驅動…

k8s 修改節點驅逐閾值

編輯 /var/lib/kubelet/config.yaml 文件 kind: KubeletConfiguration evictionHard:nodefs.available: "5%" # 降低磁盤壓力觸發閾值imagefs.available: "10%" # 調整容器鏡像存儲觸發閾值nodefs.inodesFree: "3%

日志存儲與分析

日志是系統運行的詳細記錄,包含各種事件發生的主體、時間、位置、內容等關鍵信息。出于運維可觀測、網絡安全監控及業務分析等多重需求,企業通常需要將分散的日志采集起來,進行集中存儲、查詢和分析,以進一步從日志數據里挖掘出有…

PHP與MySQL的高效數據交互:最佳實踐與優化技巧

在現代Web開發中,PHP與MySQL的組合仍然是最常見的技術棧之一。PHP作為一種廣泛使用的服務器端腳本語言,與MySQL這一強大的關系型數據庫管理系統相結合,能夠構建出功能強大且高效的Web應用。然而,隨著數據量的增長和用戶需求的提升…

Flutter 邊框按鈕:OutlinedButton 完全手冊與設計最佳實踐

目錄 1. 引言 2. OutlinedButton 的基本用法 3. 主要屬性 3.1 核心屬性詳解 3.2 ButtonStyle 子屬性詳解 (styleFrom/copyWith) 狀態響應優先級說明 4. 自定義按鈕樣式 4.1 修改邊框顏色和文本顏色 4.2 修改按鈕形狀 4.3 修改按鈕大小 4.4 集中演示 5. 結論 相關推…

【Node.js入門筆記4---fs 目錄操作】

Node.js入門筆記4 Node.js---fs 目錄操作一、目錄操作1.fs.mkdir():創建目錄。異步,非阻塞。創建單個目錄創建多個目錄創建目前之前需要確認是否存在: 2. fs.mkdirSync():用于創建一個新的目錄。異步,非阻塞。3.fs.rmd…

IP風險度自檢,互聯網的安全“指南針”

IP地址就像我們的網絡“身份證”,而IP風險度則是衡量這個“身份證”安全性的重要指標。它關乎著我們的隱私保護、賬號安全以及網絡體驗,今天就讓我們一起深入了解一下IP風險度。 什么是IP風險度 IP風險度是指一個IP地址可能暴露用戶真實身份或被網絡平臺…

【軟考-架構】5.3、IPv6-網絡規劃-網絡存儲-補充考點

?資料&文章更新? GitHub地址:https://github.com/tyronczt/system_architect 文章目錄 IPv6網絡規劃與設計建筑物綜合布線系統PDS💯考試真題第一題第二題 磁盤冗余陣列網絡存儲技術其他考點💯考試真題第一題第二題 IPv6 網絡規劃與設計…

數據結構------線性表(順序表)

一、線性表順序存儲詳解 (一)線性表核心概念 1. 結構定義 // 數據元素類型 typedef struct person {char name[32];char sex;int age;int score; } DATATYPE;// 順序表結構 typedef struct list {DATATYPE *head; // 存儲空間基地址int tlen; …

SVN學習筆記

svn:版本控制軟件 解決:1.協作開發 2.遠程開發 3.版本回退 服務端軟件: VisualSVN http://www.visualsvn.com 客戶端軟件:Tortoisesvn http://tortoisesvn.net/downloads 1.checkout(檢出) 第一查更新數據到本地, 2.update&#xf…

uniapp-x js 限制

1.String(str) 不允許&#xff0c;android模擬室報錯&#xff0c;找不到String 2.JSON.parse不接受泛類型 export const genData function<T> (initData:T) : T {return JSON.parse<T>(JSON.stringify(initData))!;//不可以&#xff0c;必須明確類型 } error: …

PyTorch使用-張量的創建

文章目錄 張量的創建1. 安裝 PyTorch2. 基本創建方式2.1 torch.tensor 根據指定數據創建張量2.2. torch.Tensor 根據形狀創建張量, 其也可用來創建指定數據的張量2.3. 指定類型的張量創建2.3.1. torch.IntTensor&#xff1a;創建整數類型張量2.3.2. torch.FloatTensor&#xff…

基于asp.net實現的連鎖餐廳收銀系統[包運行成功+永久免費答疑輔導]

基于ASP.NET實現的連鎖餐廳收銀系統背景&#xff0c;可以從以下幾個方面進行闡述&#xff1a; 一、技術背景 ASP.NET框架的普及與優勢&#xff1a; ASP.NET是微軟開發的一種用于構建Web應用程序的框架&#xff0c;它基于.NET Framework&#xff0c;提供了豐富的類庫和開發工具…

PyTorch 深度學習實戰(11):強化學習與深度 Q 網絡(DQN)

在之前的文章中&#xff0c;我們介紹了神經網絡、卷積神經網絡&#xff08;CNN&#xff09;、循環神經網絡&#xff08;RNN&#xff09;、Transformer 等多種深度學習模型&#xff0c;并應用于圖像分類、文本分類、時間序列預測等任務。本文將介紹強化學習的基本概念&#xff0…

92.HarmonyOS NEXT開發學習路徑與最佳實踐總結:構建高質量應用

溫馨提示&#xff1a;本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦&#xff01; HarmonyOS NEXT開發學習路徑與最佳實踐總結&#xff1a;構建高質量應用 文章目錄 HarmonyOS NEXT開發學習路徑與最佳實踐總結&#xff1a;構建高質…

HarmonyOS-應用程序框架基礎

應用程序框架與應用模型的區別 應用框架可以看做是應用模型的一種實現方式&#xff0c;開發人員可以用應用模型來描述應用程序的結構和行為的描述&#xff0c;然后使用應用程序框架來實現這些描述。 應用模型 應用模型是一個應用程序的模型&#xff0c;它是一種抽象的描述&a…

審批工作流系統xFlow

WorkFlow-審批流程系統 該項目為完全開源免費項目 可用于學習或搭建初始化審批流程系統 希望有用的小伙伴記得點個免費的star gitee倉庫地址 仿釘釘飛書工作審批流系統 介紹 前端技術棧: vue3 ts vite arcodesign eslint 后端技術棧:springbootspring mvc mybatis mavenmysq…