論文筆記--Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

論文筆記--Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

  • 1. 文章簡介
  • 2. 文章概括
  • 3 文章重點技術
    • 3.1 Segment-Level Recurrence with State Reuse
    • 3.2 相對位置編碼
  • 4. 文章亮點
  • 5. 原文傳送門

1. 文章簡介

  • 標題:Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
  • 作者:Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov
  • 日期:2019
  • 期刊:arxiv preprint

2. 文章概括

??傳統的RNN常常面臨梯度消失或爆炸的問題,LSTM的提出在一定程度上有所緩解,但實驗表明LSTM只能有效利用200個左右上下文單詞信息。Transformer的提出可以充分利用上下文的信息,但受限于輸入的固定長度,一般為256,512等。Al-Fou提出的character-level的Transformer可以將輸入分為不同的segment,但不同的segment之間沒有交互:比如輸入被劃分為 s 1 , … , s L s_1, \dots, s_L s1?,,sL? s L + 1 , … , s N s_{L+1}, \dots, s_N sL+1?,,sN?兩個片段,則模型無法利用到 t < L + 1 t<L+1 t<L+1的信息來預測 S L + 1 S_{L+1} SL+1?,從而第二個片段開始位置的幾個token則變得很難預測。
??為了解決上述問題,文章提出了一種類似RNN的循環機制Transformer:Transformer-XL,可有效處理長文本輸入。且文章提出了適應于Transformer-XL的位置編碼方法:相對位置編碼。實驗表明,Transformer-XL在多個數據集上取得了SOTA結果。

3 文章重點技術

3.1 Segment-Level Recurrence with State Reuse

??為了解決Context Fragmentation(基于segmentation的方法無法實現segmentation之間的交互)和fixed length(輸入大小受限)的問題。文章將循環機制引入到Transformer架構。訓練階段,上一個文本片段(segment)的隱藏層狀態被固定(不參與梯度更新)并緩存,在下一個片段中作為擴展的上下文使用。整體架構如下圖所示:
整體架構
??具體來說,令 s τ = [ x τ 1 , … , x τ L ] s_\tau = [x_{\tau_1}, \dots, x_{\tau_L}] sτ?=[xτ1??,,xτL??]為第 τ \tau τ個片段,其中 L L L為每個片段接收的最大輸入長度。則在計算第 τ + 1 \tau + 1 τ+1個片段的第 n n n個隱藏層 h τ + 1 n h_{\tau + 1}^n hτ+1n?時,我們首先通過當前片段和上一個片段的第 n ? 1 n-1 n?1個片段的隱藏層得到候選隱藏層 h ~ τ + 1 n ? 1 = S t o p G r a d i e n t ( h τ n ? 1 ) + h τ + 1 n ? 1 \tilde{h}_{\tau+1}^{n-1} = StopGradient(h_{\tau}^{n-1}) + h_{\tau + 1}^{n-1} h~τ+1n?1?=StopGradient(hτn?1?)+hτ+1n?1?,然后通過候選隱藏層更新當前Transformer的Q, K ,V: q τ + 1 n , k τ + 1 n , v τ + 1 n = h τ + 1 n ? 1 W q T , h ~ τ + 1 n ? 1 W k T , h ~ τ + 1 n ? 1 W v T q_{\tau+1}^n,k_{\tau+1}^n,v_{\tau+1}^n = h_{\tau + 1}^{n-1}W_q^T, \tilde{h}_{\tau+1}^{n-1} W_k^T, \tilde{h}_{\tau+1}^{n-1} W_v^T qτ+1n?,kτ+1n?,vτ+1n?=hτ+1n?1?WqT?,h~τ+1n?1?WkT?,h~τ+1n?1?WvT?,注意到key和value向量由上下文和當前詞共同確定,從而引入了上一個segment的信息,而query向量只有當前隱藏層確定。再由Q, K, V計算得到當前層的 h τ + 1 n h_{\tau+1}^n hτ+1n?,即注意力分數。
??上述方法可以有效解決長文本依賴問題,且不丟失上下文信息。此外在評估階段模型無需重新計算前面片段的表征,從而速率更高。另一方面,我們可以很容易地使用前面多個segment的上下文信息,從而文本依賴不局限于前一個segment。

3.2 相對位置編碼

??注意到,按照上述分割方式傳入到模型每個segment的位置編碼均為從1 到 L L L,無法有效區分不同segment的信息。從而文章提出了relative positional encoding,即相對位置編碼。具體地,文章預先定義了一個不可學習的位置編碼矩陣(sinusoid) R ∈ R L × d \mathcal{R}\in\mathbb{R}^{L\times d} RRL×d。其中行 R i R_i Ri?表示相對位置為 i i i的兩個向量之間的位置編碼向量,即當query和key之間距離為i時直接用 R i R_i Ri?來作為其位置編碼,和詞向量嵌入進行拼接。
??為了使用相對位置編碼,文章對Transformer的注意力計算公式進行了優化。傳統的Transformer計算方式為 Q T K = ( W Q ( E x + U ) ) T ( W K ( E x + U ) ) Q^TK = (W^Q(E_x + U))^T (W^K(E_x + U)) QTK=(WQ(Ex?+U))T(WK(Ex?+U)),其中 E x , U E_x, U Ex?,U分別表示詞向量和位置向量,則 q i q_i qi? k j k_j kj?之間的注意力分數為 A i , j a b s = E x i T W q T W k E x j + E x i T W q T U j + U i T W q T W k E x j + U i T W q T W k U j A_{i,j}^{abs} = E_{x_i}^TW_q^T W_kE_{x_j} + E_{x_i}^TW_q^T U_j + U_i^TW_q^T W_kE_{x_j} + U_i^TW_q^T W_kU_j Ai,jabs?=Exi?T?WqT?Wk?Exj??+Exi?T?WqT?Uj?+UiT?WqT?Wk?Exj??+UiT?WqT?Wk?Uj?。我們將其優化為 A i , j r e l = E x i T W q T W k , E E x j + E x i T W k , R T R i ? j + u T W q T W k , E E x j + v T W q T W k , R R i ? j A_{i,j}^{rel} = E_{x_i}^TW_q^T W_{k, E}E_{x_j} + E_{x_i}^TW_{k, R}^T R_{i-j} + u^TW_q^T W_{k, E}E_{x_j} + v^TW_q^T W_{k, R}R_{i-j} Ai,jrel?=Exi?T?WqT?Wk,E?Exj??+Exi?T?Wk,RT?Ri?j?+uTWqT?Wk,E?Exj??+vTWqT?Wk,R?Ri?j?,上述四項分別代表1)基于內容的尋址 2)內容有關的位置偏差 3)整體內容偏差 4)整體位置偏差。

4. 文章亮點

??文章有效解決了NLP中長文本依賴捕獲問題,且有效避免了context-fragmenation問題。多個數值實驗表明,文章在長文本、短文本的下游任務中表現出色,且相比于RNN-LMs在評估過程中提升了效率,可作為未來NLP長文本任務中的一項可靠工具。

5. 原文傳送門

Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處:https://dhexx.cn/hk/4628030.html

如若內容造成侵權/違法違規/事實不符,請聯系我的編程經驗分享網進行投訴反饋,一經查實,立即刪除!


相關文章:

  • Golang每日一練(leetDay0086) 回文鏈表、刪除鏈表節點
  • 衡量距離的公式
  • JSP+ACCESS網上拍賣平臺系統(源代碼+論文)
  • MMPose(openmmlab AI實戰營二期第一節)
  • Leetcode 312. 戳氣球(記憶化搜索)
  • 軟件外包開發的測試用例
  • 數據庫關系操作集合
  • oracle數據文件恢復步驟
  • 什么是webservices?為啥現在還未被淘汰?
  • Anolis OS8 磁盤擴容
  • JVM那些事 (含經典面試題)
  • 《商用密碼應用與安全性評估》第四章密碼應用安全性評估實施要點4.5密碼應用安全性評估測評工具
  • 2023/06/03 軟件PM入門學習(二)
  • Linux賬號管理與ACL權限設定(一)
  • 【內網穿透】Linux本地搭建GitLab服務器
  • 【操作系統】Linux 中的 Page Cache
  • Python 與 MySQL 進行增刪改查的操作以及防止SQL注入
  • MATLAB算法實戰應用案例精講-【數模應用】KMP字符串匹配(附C語言和Java代碼)
  • C語言,指針詳解
  • 第一次使用Arduino IDE(mac os) 配置合宙ESP32C3(9.9包郵)且燒錄代碼的歷程
  • ASP.NET+ACCES視頻點播系統設計(源代碼+論文)
  • web服務器有哪幾種
  • 【實踐經驗】Latex 表格列間距調整
  • TextBlob怎么用的?有哪些具體使用場景呢?
  • Spring Boot 如何保證接口安全?有哪些常用的接口安全技術?
  • 多變量系統的最小二乘辨識問題的推導以及matlab仿真
  • XSS筆記(簡單了解的)
  • 【Leetcode -817.鏈表組件 -1019.鏈表中的下一個更大節點】
  • Sublime Text 便攜版 配置右鍵打開選項
  • 2. requests.get()函數訪問網頁(小白入門)
  • 微信小程序個人心得
  • 【Linux系統基礎快速入門詳解】Linux關機重啟注銷命令原理介紹、以及案例分析
  • 線程任務的取消
  • 【編譯、鏈接、裝載三】編譯器——語法分析、詞法分析、語義分析、編譯器后端
  • 計算機網絡|第五章:網絡層:控制平面
  • 安卓逆向 -- Frida環境搭建(HOOK實例)
  • springboot的第三方項目
  • 陣列信號處理筆記(1):預備知識、陣列流形、波數-頻率響應
  • python基本操作3(速通版)
  • 【鋰離子電池容量估算】電池單元總容量的遞歸近似加權總最小二乘估計(Matlab代碼實現)
  • k8s部署Elasticsearch集群+Kibana方案--開啟X-Pack 安全認證
  • 掌握文本處理的利刃:深入解析 Linux 下的神奇工具 - sed 命令
  • javaNIO -- ByteBuffer 原理機制
  • SpringBoot+MyBatis 搭建項目基本框架
  • 深度學習總結——用自己的數據集微調CLIP
  • 阻塞隊列和生產者-消費者模式
  • 硬鏈接與符號鏈接
  • cesium vue教程目錄導航
  • 【走進Linux的世界】Linux---基本指令(2)
  • JavaScript藍橋杯------學海無涯