APP下载
报价宝  ›  科技  › 

如何评价在20个任务上超越BERT的XLNet?

报价宝 来源:baojiabao.com 发布时间:2019-11-17 12:52:00 10月07日更新
报价宝综合消息如何评价在20个任务上超越BERT的XLNet?

谢 @henryWang 邀。(不知道为啥我又 at 不上人。被知乎针对了?)

刚看完文章。效果就不比了,屠榜了没什么好说的。

BERT 有两个目标,Masked Language Model 和 Next Sentence Prediction,前者用于提取单词之间的关系,后者用来提取句子之间的关系。前者带来的问题在于, 训练时引入 [MASK] token 使得 train/test 不一致,于是又用了很多乱七八糟的方法来补救(以一定概率保留原词,一定概率换成别的单词等等)。

新的目标 Permutation Language Model 就没这个问题。PLM 的大意是把输入的句子链式分解一下,然后用最大似然来训练。只不过这里的分解不是通常语言模型的 left-to-right factorization,而是以任意顺序排列进行 factorization,最后求期望。当然,具体实现的时候只是取样一个排列进行计算,不会求全部排列的期望。PLM 通过对原序列随机 shuffle 来实现双向的资讯提取(理论上需要 shuffle,实践中调整 attention mask 即可),例如将 1 -> 2 -> 3 -> 4 调整为 2 -> 4 -> 3 -> 1,然后进行链式分解,预测单词 3 时可以观测到单词 2 和 4 的资讯。另外,PLM 和 Grover 训练时 shuffle metadata 的做法不谋而合,可能是大势所趋吧。

XLNet 上只有 PLM 这一个训练目标,实验部分提到 NSP 对于大多数任务都是有害的。而 BERT 的文献虽然没有做 NSP 的 ablation study,但有些研究发现 BERT 更适合做句子间关系的判断,即便是单句的任务也可以构建出一个辅助句然后用 BERT 进行分类(如 "BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence"),这可能是 NSP 带来的好处。另外关于 BERT 的使用场景可以参考Bert时代的创新:Bert在NLP各领域的应用进展,文末有总结。

普通语言模型的训练目标(例如 GPT)是 Causal Language Model,BERT 的训练目标是 MLM,在此基础上通过改进 mask 又有了 Whole Word Masking/N-gram Masking/ERNIE 等。把 Transformer 的 encoder 和 decoder 都用上又有了 MASS。现如今,又多了一个 PLM 的目标,很高兴看到这样的进步(虽然 PLM 和 NSP 两个目标一起用似乎有一些矛盾),期待能看到更多的训练目标,能够从语料里无监督地提取到更多的知识。但不管怎么说,这都是土豪的游戏了,一般人玩不起。

XLNet 在 GLUE benchmark 的几乎所有任务上都比先前最优水平得到了提升,但是 CoLA 这一项的表现似乎不尽如人意。CoLA 是判断一个句子是否在语法上合理的,是不是说明这个任务较为依赖单词顺序?

文章中还说,XLNet-Large 依然是欠拟合训练资料的,但是再训练对于 downstream task 已经没有用了。这一点有些奇怪,可以进一步探究的是,存在于这些资料中、但是对下游任务没有帮助的到底是什么资讯?也许是跟语言生成(而非判别)有关的?也许我们应该寻找新的、能够从这些资讯中获益的下游任务——可能是介于 GLUE benchmark 和文字生成之间的任务。今天 GLUE 已经接近解决,这些任务也许可以作为更好的 NLP 领域风向标。

XLNet-Base 和 Bert-Base 资料集是一样的,效果也有比较明显的提高,说明 XLNet-Base 确实更好。其提升可能有两部分,一是来源于 Transformer-XL 对更长的上文资讯的提取,二是来源于 PLM 训练目标与下游任务的一致性(没有 train-test skewness)。可惜关于这点没有 ablation study,不知道到底哪个更重要。

但是 XLNet-Large 除了放大模型之外还用了更多的资料,在 BERT 所用的 BooksCorpus & English Wikipedia 的基础上还增加了 Giga5, ClueWeb 2012-B, and Common Crawl,扩大到了原先的 10 倍。不知道 BERT-Large 在这样的资料上表现如何?预期应该会变好(@霍华德 在这个回答里也说了腾讯 AI Lab 用 200G 语料训出的 BERT-Large 又变强了一大截),不过应该不会超过 XLNet。

XLNet-Large 用 512 TPU v3 chips 训了 2.5 天,而 BERT-Large 用 64 TPU chips 训了 4 天。也就是说,XLNet 训练时总的计算量是 Bert 5 倍。再考虑到 XLNet 计算量和启用值大约是 BERT 的 2 倍(因为要给每个位置维护两套隐状态,一套是包含当前 token 资讯的 content stream h,另一套是不包含当前 token 资讯的 query stream g,详见论文 2.3 节 Two-Stream Self-Attention 的相关描述,大意如下图),语料规模是 BERT-Large 的 10 倍,总的来说可以近似认为训练效率是 BERT 的 4 倍。

这一训练效率的提高源自于 XLNet 理论上可以训练输入序列所有的 token,而 BERT 的 MLM 使得每个序列只能训练 15% 的 token。虽然实际操作中只训练了 permutation 最后 1/K(K=6 或 7)的 token,因为这些 token 的上下文最长,更有利于模型提取上下文资讯(不过我觉得所有 token 全部训练应该效率更高,仅当训练接近结束时切换成只训练上下文最长的 1/K token 即可)。这种设定让人想起来 MASS,也花式减少了冗余计算,提升训练效率。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 数码相机价格 笔记本价格 华为手机价格 红米手机价格 降噪耳机价格