UNILM

Posted Facico

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UNILM相关的知识,希望对你有一定的参考价值。

UNILM

Unified Language Model Pre-training for Natural Language Understanding and Generation

key

  • 综合所有的LM
    • - 像bert在NLU任务上表现很好,但是在NLG任务上表现就不太行,UNILM就可以兼备两个任务
  • 采用三个无监督目标:双向LM,单向LM,Sequence-to-Sequence LM

UNILM模型

  • 单向LM,双向LM和Sequence-to-Sequence LM之间的transformer共享参数
  • 不过文章对不同模型的/elf-attention使用了不同的masks,即使用了不同的mask方式来控制带预测token所考虑到的上下文范围

embedding

embedding和bert相同=token embedding + position embedding + segment embedding

transformer

使用多层transformer
Q = H l − 1 W l Q , K = H l − 1 W l K , V = H l − 1 W l V M i j = 0 , allow to attend − ∞ , prevent from attending A l = s o f t m a x ( Q K ⊤ d k + M ) V l Q=H^l-1W_l^Q,K=H^l-1W_l^K,V=H^l-1W_l^V \\\\ M_ij=\\left\\ \\beginaligned 0,&&\\textallow to attend\\\\ -∞,&&\\textprevent from attending \\endaligned \\right.\\\\ A_l=softmax(\\fracQK^\\top\\sqrtd_k+M)V_l Q=Hl1WlQ,K=Hl1WlK,V=Hl1WlVMij=0,,allow to attendprevent from attendingAl=softmax(dk QK+M)Vl

预训练部分

[mask]的模式和bert的MLM相同,就是最小化预测的token和[mask]掉的交叉熵

单向LM

  • 预测x1x2[mask]x4的时候,只有x1,x2和它自己会被用上,类似最朴素的encoder-decoder模型,但是使用multi-attention实现的
    • 实现的方式即使mask matrix是一个上三角矩阵,如上图
      • 灰色的部分值为无穷大表示堵塞
      • 白色的部分为0表示能attend

双向LM

bert的MLM即双向LM

Sequence-to-Sequence LM(Seq2Seq LM)

  • 如上图
    • 1、第一个segment(S1)中在segment内部能够attend到任意token
    • 2、第二个segment(S2)内部是个单向LM
    • 3、第二个segment可以attend第一个segment,第一个segment不能attend第二个segment

NSP

  • 同bert的NSP

预训练设置

  • 预训练目标是多个模型目标的总和
    • 每个batch中,1/3的时间用双向LM,1/3的时间用Seq2SeqLM,1/6的时间从左到右的单向,1/6的时间从右到左的单向

fine-tune

  • NLU
    • 与bert相同
  • NLG
    • 例如Seq2Seq任务,就弄个[SOS]S1[EOS]S2[EOS]
    • 然后随机mask S2中的tokens,注意[EOS]也可能被mask(标志着模型还要学习什么时候生成句子结束)

实验

  • 在摘要生成、QA、问题生成等各种NLG任务上表现不错
  • GLUE上只比BERT_LARGE多0.3

评价

  • 联合多种语言模型的想法很好,但是文章没有做消融实验,直接结合的有些粗暴。直观的来说,双向和单向就是把MLM任务剖析成两个部分,但却没有探究这到底是否有用。
  • mask矩阵设置的那块很漂亮
  • Seq2Seq对后续NLG任务设置启发很大

以上是关于UNILM的主要内容,如果未能解决你的问题,请参考以下文章

6.5bert的家族成员-百度的ERNIE,ERNIE2.0,清华的ERNIE,RoBERTa,BERT-WWM,UniLM,MASS,TinyBERT,ELECTRA,SpanBERT

偏差和方差

阿里笔试 3.14 T2

hdu6060 RXD and dividing 贪心

SPFA_queue_链式前向星最短路 & HDU2433

mathcad 无穷大符号在哪