自然语言处理从入门到应用——动态词向量预训练:双向语言模型

分类目录:《自然语言处理从入门到应用》总目录


对于给定的一段输入文本 w 1 w 2 ⋯ w n w_1w_2\cdots w_n w1w2wn,双向语言模型从前向(从左到右)和后向(从右到左)两个方向同时建立语言模型。这样做的好处在于,对于文本中任一时刻的词 w t w_t wt,可以同时获得其分别基于左侧上下文信息和右侧上下文信息的表示。具体地,模型首先对每个词单独编码。这一过程是上下文无关的,主要利用了词内部的字符序列信息。基于编码后的词表示序列,模型使用两个不同方向的多层长短时记忆网络(LSTM)分别计算每一时刻词的前向、后向隐含层表示,也就是上下文相关的词向量表示。利用该表示,模型预测每一时刻的目标词。对于前向语言模型, t t t时刻的目标词是 w t + 1 w_{t+1} wt+1,对于后向语言模型,目标词是 w t − 1 w_{t-1} wt1

输入表示层

ELMo模型采用基于字符组合的神经网络表示输入文本中的每个词,目的是减小未登录词(Out-Of-Vocabulary,OOV)对模型的影响。下图展示了输入表示层的基本结构。首先,字符向量层将输入层中的每个字符(含额外添加的起止符)转换为向量表示。假设 w t w_t wt由字符序列 c 1 c 2 ⋯ c l c_1c_2\cdots c_l c1c2cl构成,对于其中的每个字符 c i c_i ci,可以表示为: v c i = E char e c i v_{c_i}=E^{\text{char}}e_{c_i} vci=Echareci。其中, E char ∈ R d char × ∣ V char ∣ E^{\text{char}}\in R^{d^{\text{char}}\times |V^{\text{char}}|} EcharRdchar×Vchar表示字符向量矩阵; V char V^{\text{char}} Vchar表示所有字符集合; d char d^{\text{char}} dchar表示字符向量维度; e c i e_{c_i} eci表示字符 c i c_i ci的独热编码。记 w t w_t wt中所有字符向量组成的矩阵为 C t ∈ R d char × l C_t\in R^{d^{\text{char}}\times l} CtRdchar×l,即 C t = [ v c 1 , v c 2 , ⋯   , v c l ] C_t=[v_{c_1}, v_{c_2}, \cdots, v_{c_l}] Ct=[vc1,vc2,,vcl]。接下来,利用卷积神经网络对字符级向量表示序列进行语义组合(Semantic Composition)。这里使用一维卷积神经网络,将字符向量的维度 d char d^{\text{char}} dchar作为输入通道的个数,记为 N in N^{\text{in}} Nin,输出向量的维度作为输出通道的个数,记为 N out N^{\text{out}} Nout。另外,通过使用多个不同大小(宽度)的卷积核,可以利用不同粒度的字符级上下文信息,并得到相应的隐含层向量表示,这些隐含层向量的维度由每个卷积核对应的输出通道个数确定。拼接这些向量,就得到了每一位置的卷积输出。然后,池化操作隐含层所有位置的输出向量,就可以得到对于词 w t w_t wt的定长向量表示,记为 f t f_t ft。假设使用宽度分别为{1,2,3,4,5,6,7}的7个一维卷积核,对应的输出通道数量分别为{32,32,64,128,256,512,1024},那么输出向量 f t f_t ft的维度为2048。基于字符卷积神经网络和Highway神经网络的输入表示层示意图接着,模型使用两层Highway神经网络对卷积神经网络输出作进一步变换,得到最终的词向量表示 x t x_t xt。Highway神经网络在输入与输出之间直接建立“通道”,使得输出层可以直接将梯度回传至输入层,从而避免因网络层数过多而带来的梯度爆炸或弥散的问题。单层Highway神经网络的具体计算方式如下:
x t = g ⊙ f t + ( 1 − g ) ⊙ ReLU ( W f t + b ) x_t=g\odot f_t+(1 - g)\odot\text{ReLU}(Wf_t+b) xt=gft+(1g)ReLU(Wft+b)

式中, g g g为门控向量,其以 f t f_t ft为输入,经线性变换后通过Sigmoid函数计算得到:
g = σ ( W g f t + b g ) g=\sigma(W^gf_t+b^g) g=σ(Wgft+bg)

式中, W g W^g Wg b g b^g bg为门控网络中的线性变换矩阵与偏置向量。可见,Highway神经网络的输出实际上是输入层与隐含层的线性插值结果。当然,通常模型的结构是根据实验调整和确定的,我们也可以自行尝试其他的模型结构。例如,可以使用字符级双向LSTM网络编码单词内字符串序列。接下来,在由上述过程得到的上下文无关词向量的基础之上,利用双向语言模型分别编码前向与后向上下文信息,从而得到每一时刻的动态词向量表示。

前向语言模型

在前向语言模型中,对于任一时刻目标词的预测,都只依赖于该时刻左侧的上下文信息或者历史。这里使用基于多层堆叠的长短时记忆网络语言模型。将模型中多层堆叠LSTM的参数记为 θ → LSTM \overrightarrow{\theta}^\text{LSTM} θ LSTM,Softmax输出层参数记为 θ out \theta^\text{out} θout。则模型可以表示为:
p ( w 1 w 2 ⋯ w n ) = ∏ t = 1 n P ( w t ∣ x 1 : t − 1 ; θ → LSTM ; θ out ) p(w_1w_2\cdots w_n)=\prod_{t=1}^nP(w_t|x_{1:t-1}; \overrightarrow{\theta}^\text{LSTM}; \theta^\text{out}) p(w1w2wn)=t=1nP(wtx1:t1;θ LSTM;θout)

后向语言模型

与前向语言模型相反,后向语言模型只考虑某一时刻右侧的上下文信息。可以表示为:
p ( w 1 w 2 ⋯ w n ) = ∏ t = 1 n P ( w t ∣ x t + 1 : n ; θ ← LSTM ; θ out ) p(w_1w_2\cdots w_n)=\prod_{t=1}^nP(w_t|x_{t+1:n}; \overleftarrow{\theta}^\text{LSTM}; \theta^\text{out}) p(w1w2wn)=t=1nP(wtxt+1:n;θ LSTM;θout)

参考文献:
[1] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[2] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[3] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[4] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[5] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/31374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读 - SegFormer

文章目录 1 概述2 模型说明2.1 总体结构2.2 Hierarchical Transformer Encoder2.3 Lightweight All-MLP Decoder 3 SegFormer和SETR的比较参考资料 1 概述 图像分割任务和图像分类任务是非常相关的,前者是像素级别的分类,后者是图像级别的分类。基于分类…

ARM、ARM架构、ARM架构芯片

ARM是一种基于精简指令集(RISC)的处理器架构,它由英国的ARM公司设计和授权。 ARM芯片具有低功耗、高性能、高集成度等特点,广泛应用于嵌入式系统、移动设备、物联网、服务器等领域。本文将介绍ARM的各类芯片,包括其特…

卷积神经网络中池化层的详细介绍

卷积神经网络自2012年,到2023年经历了翻天覆地的变化。最早的卷积神经网络由卷积层、池化层和全连接层所构成。其中卷积层用于提取图像的特征,池化层削减特征数量,全连接层用于对特征进行非线性组合并预测类别。然而在transformer横行的年代&…

基于卡尔曼滤波进行四旋翼动力学建模(SimulinkMatlab)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

笔记本电脑介绍:记录生活,激发灵感

笔记本电脑是一种轻便、便携的电脑,它的出现改变了人们的工作和生活方式,它的优势在于它的小巧、轻便、便携性,可以满足用户的不同需求。本文将从笔记本电脑的结构、功能、优势和应用四个方面进行详细阐述。 一、笔记本电脑的结构 笔记本电…

十八、网络基础(一)

文章目录 一、协议(一)前置(二)协议分层1.软件分层2.协议分层3.OSI七层模型4.TCP/IP五层(或四层)模型(1)物理层:(2)数据链路层:(3)数据链路层:(4&…

Golang每日一练(leetDay0104) 最小高度树、戳气球

目录 310. 最小高度树 Minimum Height Trees 🌟🌟 312. 戳气球 Burst Balloons 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

普通单目相机标定

前言 这里我们还是以普通相机为例(非鱼眼相机)来进行后续的相关标定操作,再回顾下相机的成像模型如下所示。 已知相机内参(fx,fy,u0,v0),畸变系数[k1,k2,k3,p1,p2],相机外参[R|T]。世界坐标系中点Pw(Xw,Yw,Zw),投影至像素坐标系点p(u,v)的计算过程如下。 1)由世…

Qt下使用QPainter实现界面上饼状图、圆环图的绘制

文章目录 前言一、示例讲解二、圆环图绘制步骤三、设置圆环图数据四、示例完整代码五、下载链接总结 前言 前面的文章有讲述使用Qt下的Charts 模块来进行饼图的绘制:QChart实现ui界面上指定位置饼状图、圆环图的绘制,但是使用过程中并不能很好的实现自己…

【LeetCode】动态规划 刷题训练(二)

文章目录 62. 不同路径题目解析状态转移方程完整代码 63. 不同路径 II题目解析状态转移方程完整代码 剑指 Offer 47. 礼物的最大价值题目解析状态转移方程完整代码 62. 不同路径 点击查看:不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图…

数据库架构是否该随着公司估值一起变化?

原文|The growing pains of database architecture 作者|Tim Liang, Software Engineer at Figma 2020 年,因为 Figma 不断加入新功能,筹备第二条产品线和用户不断增长导致数据库流量每年以 3x 速度增长,我们的基础设…

云原生之深入解析Kubernetes中Kubectl Top如何进行资源监控

一、Kubectl top 的使用 kubectl top 是基础命令,但是需要部署配套的组件才能获取到监控值: 1.8 以下:部署 heapter; 1.8 以上:部署 metric-server; kubectl top node:查看 node 的使用情况&a…

【C++】构造函数调用规则

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 !时止则止,时行则行。动静不失其时,其道光明。 1、缘起 (1)默认情况下,C 编译器至少给一个类添加 3 个函数 ① 默认构造函数(无参&#…

开源软件介绍——国内和国际主要开源社区

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来看一看国内和国际上有哪些主要开源社区。 开源社区的定义 开源社区又称为开放源代码社区,一般由拥有共同兴趣爱好的人组成。根据相应的开源软件许可证协议公布软件源代码的网络平台&a…

ChatGPT从入门到精通,深入认识ChatGPT

ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定1、ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视( 点击观看完整版本 )https…

Clickhouse之物化视图分享

前言 ClickHouse广泛用于用户和系统日志查询场景中,主要针对于OLAP场景,为业务方提供稳定高效的查询服务。在业务场景下,数据以不同的格式、途径写入到clickhouse。用传统JOIN方式查询海量数据,通常有如下痛点: 每个查询的代码冗…

CTFshow-pwn入门-前置基础pwn23-pwn25

pwn23-25的题目会涉及到ret2shellcode、ret2libc等内容,本篇文章只会侧重研究这几道题目的wp,不会过多涉及到ret2shellcode、ret2libc的基本原理,等有时间再来写关于ret2libc、ret2shellcode…的相关内容。大家可以参考CTFwiki的文章去慢慢学…

【机器学习】十大算法之一 “SVM”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

Kubernetes(k8s)部署模式发展

目录 1 简介2 物理单机(~2000)2.1 主要代表 3 虚拟化:初期(2001~2009)3.1 VMware3.2 laaS 4 虚拟化:成熟期(2010~至今)4.1 OpenStack4.2 虚拟化四巨头 5 容器化:(2013-至今)5.1 Dock…

【备战秋招】每日一题:2023.04.26-华为OD机式-第三题-MC方块

在线评测链接:P1231 题目内容 MC最新版本更新了一种特殊的方块,幽匿催发体。这种方块能够吸收生物死亡掉落的经验并感染周围方块,使其变成幽匿块。Steve想要以此为基础尝试搭建一个经验仓库,他来到了创造超平坦模式,在只有草方块…