• unilm


    unilm_v1

    直接copy刘聪nlp的结论啦~
    看上去结构比较简单

    UniLM模型参数通过最小化预测token和标准token的交叉嫡来优化。三种类型的完型填空任务可以 完成不同的语言模型运用相同的程序程序训练。

    • 单向语言模型:有从右到左和从左到右两者,以从左到右为例进行介绍。每个特殊标记 [Mask] 的预测,仅采用它自身和其左侧的token进行编码。例如,我们预测序列 (x_{1} x_{2}[operatorname{mas} k] x_{4}) 中的 [Mask] ,我们仅可以利用 (x_{1})(x_{2}) 和它自身进行编码。具体操作,如图1所示,使用一个上三 角矩阵来作为掩码矩阵。阴影部分为 (-infty) ,空白部分为0。

    这个结构主要是为了生成任务。和elmo的双向感觉有那么一丢丢的相似

    • 双向语言模型:跟Bert模型一致,每个特殊标记 [Mask] 的预测,可以使用所有的token进行编 码。例如,我们预测 序列 (x_{1} x_{2}[) mask (] x_{4}) 中的 (mathbf{[ M a s k l}), 我们仅可以利用 (x_{1}, x_{2}, x_{4}) 和 它自身进行编码。具体操作,如图1所示,使用全0矩阵来作为掩码矩阵。

    这个和bert中的mlm是一致的

    • 序列到序列语言模型:如果预测的特殊标记 [Mask] 出现在第一段文本中时,仅可以使用第一段 文本中所有的token进行预测; 如果:如果预测的特殊标记 (mathbf{I M a s k} mathbf{~ 出 现 在 第 二 段 文 本 中 时 , 可 以 ~}) 采用第一段文本中所有的token, 和第二段文本中该预测标记的左侧所有tokne以及它本身。例如, 我们预测序列 ([S O S] x_{1} x_{2}[operatorname{mask} 1] x_{4}[operatorname{EOS}] x_{5} x_{6}[) mask 2(] x_{8}[E O S]) 中的 [mask1] 时,除去
      去 [SOS] 和 (left[mathrm{EOS} ight.) ], 我们仅可以利用 (x_{1}) 行编码。具体操作,如图1所示。
      由于在训练时,将源文本和目标文本结合进入模型,使模型可以含蓄地学习到两个文本之间关系, 可以做到seq-to-seq的效果。

    这个笔者感觉是增加了一个句子编码的位置信息,可以充分利用向量的信息。

    NSP任务:对于双向语言模型,与bert模型一样,也进行下一个句子预测。如果是第一段文本的下 一段文本,则预测1; 否则预测0。

  • 相关阅读:
    shell 模式匹配:case
    知识目录总结
    【运维--系统】nacos介绍和安装
    【运维--监控】zabbix自定义发现策略
    【转】在CentOS 8 / RHEL 8上配置主/从BIND DNS服务器
    【运维--安全相关】cerbot证书自动化续期
    【转】Docker 核心技术与实现原理
    【转】Kubernetes scheduler学习笔记
    [转]自建CDN防御DDoS
    【转】Dockerfile
  • 原文地址:https://www.cnblogs.com/gaowenxingxing/p/14951301.html
Copyright © 2020-2023  润新知