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

这篇具有很好参考价值的文章主要介绍了自然语言处理从入门到应用——动态词向量预训练:双向语言模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


对于给定的一段输入文本 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神经网络对卷积神经网络输出作进一步变换,得到最终的词向量表示 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.文章来源地址https://www.toymoban.com/news/detail-497018.html

到了这里,关于自然语言处理从入门到应用——动态词向量预训练:双向语言模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自然语言处理 Paddle NLP - 词向量应用展示

    基础 自然语言处理(NLP) 自然语言处理PaddleNLP-词向量应用展示 自然语言处理(NLP)-前预训练时代的自监督学习 自然语言处理PaddleNLP-预训练语言模型及应用 自然语言处理PaddleNLP-文本语义相似度计算(ERNIE-Gram) 自然语言处理PaddleNLP-词法分析技术及其应用 自然语言处理Pa

    2024年02月08日
    浏览(62)
  • 自然语言处理从入门到应用——自然语言处理的常见任务

    分类目录:《自然语言处理从入门到应用》总目录 语言模型(Language Model,LM)(也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的自然语言处理任务。利用语言模型,可以计算一个词序列或一句话的概率,也可以在给定上文的条件下对接下来可

    2024年02月07日
    浏览(66)
  • 自然语言处理从入门到应用——LangChain:快速入门-[快速开发聊天模型]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月15日
    浏览(45)
  • 自然语言处理从入门到应用——LangChain:快速入门-[安装与环境配置]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月13日
    浏览(91)
  • 自然语言处理从入门到应用——LangChain:基础知识与介绍

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月13日
    浏览(90)
  • 自然语言处理从入门到应用——LangChain:代理(Agents)-[代理类型]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月15日
    浏览(58)
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的存储与应用]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月12日
    浏览(56)
  • 自然语言处理-词向量技术

    词向量(Word Embedding)是一种将单词表示为实数向量的技术,它在自然语言处理(NLP)和机器学习中得到广泛应用。词向量的目标是捕捉单词之间的语义关系,使得语义相似的单词在向量空间中距离较近。 文本表示在自然语言处理过程中,是一项极为重要的技术,文本表示的

    2024年01月22日
    浏览(46)
  • 自然语言处理从入门到应用——LangChain:代理(Agents)-[基础知识]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月13日
    浏览(78)
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[基础知识]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月14日
    浏览(97)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包