深度语言模型-AlBert

Google在2020年提出了AlBert模型。模型是对Bert的改进,效果肯定要好,不然怎么是改进呢,貌似说的是废话。闲言碎语不要讲,直接上结论:


image.png

各项都很牛

到底做什么,让他变得如此强大?

  1. Factorized embedding parameterization
    词的embeding长度E,没必要跟特征提取器transformer的隐层向量H长度相等。
    考虑到词的编码是静态,就本身代表的词义,和上下文无关。
    transformer隐层是上下文信息的编码。
    二者确实也不用等价。
    于是作者,就尝试不用E,让其小一点。 将输入V * E 的向量接一个 E* H的矩阵,直接转到 V* H,然后在和隐层搞后面的东西。
    个人理解,word Embedding长度短了, 此举目的也是减少参数量。进而可以减少整个训练时间。
  2. Cross-layer parameter sharing
    就是用一个transformer。 原始的Bert用12个Transformer,不同的transformer不同的参数。 我这里就用一个,同样的参数,每一轮都迭代这个参数。通过这改进,作者发现,每层输出距离和相似度都很稳定,不像Bert变化浮动大,不稳定。
  3. Inter-sentence coherence loss
    其实就是改进Bert的NSP任务为SOP,为什么改进的呢, Bert原始NSP so easy了。 完全两个不同话题的两句话,放到一起判断是不是下一句,没意义,仅通过话题就能区分开。
    而SOP则难了? 来自同一个话题,而且调换顺序,判断是不是调换。实验表明这个任务有1个点的提升。

以上就是本人对ALBert分析:

  1. 通过共享参数 和 Factorized embedding 缩小规模, 提高训练速度。当然效果也有提升。
  2. 通过SOP,提升训练效果。
  3. 但是实际应用,预测时间不变,因为同样一直用了12层的Transformer,虽然是同一个。

你可能感兴趣的:(深度语言模型-AlBert)