前言
欢迎大家来到我们预训练语言模型的专题系列分享,本篇推送是该专题的第二篇!预训练语言模型已经成为了NLP研究中一个非常火热的话题,优秀的模型包括BERT,GPT2等都在学术研究、工业领域、算法比赛中大放光彩。
在专题上一期推送【萌芽时代】里,我们介绍了预训练语言模型思想的萌芽。今天我们推出的这篇推送, 将继续为大家介绍预训练语言模型是如何进一步发展和演进的。在此感谢清华大学自然语言处理实验室关于预训练语言模型的必读论文的整理(链接:https://github.com/thunlp/PLMpapers),我们将沿此脉络继续前行,分享在阅读中的理解和对某些常用模型实战中的一些心得。
图1. PLMfamily (来源:https://github.com/thunlp/PLMpapers)
风起云涌(2017-2018)
随着预训练语言模型的能力被越来越多学者认可,该领域的论文呈现了加速增长的态势。上图收录了其中2015-2016年论文两篇、2017年-2018年论文四篇、以及2019年论文二十余篇。其中2018年底到2019年初面世的BERT以其优异的性能,彻底改变了NLP发展的格局。在此之前,EMLo也以在不少自然语言任务上的效果的不俗表现而惊艳一时。从2016年后,大多数研究都开始重视长时的上下文语义在embeddings中所起作用和语言模型在大规模语料上提前预训练这两个核心观点。
上一期我们介绍了"上下文相关的embedding",这里再来回顾一下。word2vec之类的词嵌入是和上下文无关的;当word2vec训练好词向量后,每一个独立的词在空间中就会有一个固定维度向量对应其语意,所有的词向量好像是被嵌入到了一个固定维度的空间中,所以叫做word embedding。朋友们可以查阅上期推荐阅读中的word2vec以及GloVe论文,或李宏毅老师的视频。
这样的话,同样是苹果这个词,在 “我今天买了一斤苹果和香蕉” 中和在 “我的苹果手机是去年刚买的” 这两句话中出现,它的词向量就还是一样的。那这就很不合理了,因为这两个“苹果”一个是手机一个是水果,表达的是完全不同的意思,属于一词多义,如果用同样的词向量表示,就违背了我们想要捕捉词与词之间关系的初衷了。手机中的“苹果”应该跟“华为”,“小米”,“三星”这些词在空间中接近