Recap Language Model (LM) -- 自然语言处理中的预训练,对于Bert、ELMO、GPT的一些思考

本文深入探讨了ELMO、GPT及Bert等预训练模型的工作原理与优势,特别是Bert如何通过Mask策略同时利用上下文信息进行词义预测。

以前看过Bert的相关文献后,一段时间后老是忘了,所以写这篇文章是为了整理一下自己的一些思考,和记录一下讲的很好的文章
这里的问题大多属于自己的见解,有问题的地方还请谅解和指出:)

相关文章

(感觉看这三篇就够了)

  1. 从 Word Embedding 到 Bert 模型 — 自然语言处理中的预训练技术发展史:深入浅出,有看不懂的地方可以参考3中的ppt
  2. 浅显易懂的Transformer英文讲解
  3. 自然语言处理中的语言模型预训练方法
  4. 一些问题的解答

思考

为什么ELMO可以解决一词多义?

EMLO这篇文章的标题–Contextualized Representation-- 其实就很好的解答了这个问题,它采用两个方向互反的LSTM网络层 来capture这种context的信息,以获得word在 特定sentence下的含义。这样就解决了一词多义的问题。

对传统的Word2Vec来讲,则我们只是利用单个的embedding representation来表示word,这样如果是多义词的话,单个embedding的表示就显得过于单一和不足了。

GPT引入网络层来fine-tune的方式真的更好吗?
  1. 首先回顾一下两种方式:

    传统的fine-tune模式:代表为Word2Vec,ELMO等,即我们通过pre-train好的网络层得到 每个token的embedding(或者sentence的embedding)注意,这里embedding并不是pre-trained network的最终输出,而是我们取了中间层的输出,不明白可以见下图,然后输入到下游网络来进行训练。这些得到的embedding我们可以在下游训练的时候来fine-tune
    在这里插入图片描述

    GPT的fine-tune模式:这里和CNN的预训练很相似。直接采用pre-train好的网络层(transformer)来作为下游网络的底层来参与训练。
    在这里插入图片描述
    这里最初看的时候,我其实是很疑惑的。因为pre-train的时候应该是预测下个word是什么词才对,那这样的输出作为下游网络的输入,会不会不太好?
    在这里插入图片描述
    我们从原论文上来讲(上面这个英文部分看不懂可以直接跳过),pre-train这个阶段输入为: U = { u 1 , . . . , u n } U = \{u_1,...,u_n\}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值