基于对比自监督学习的语言模型设计和改进*
摘要:最近几年见证了自然语言处理特别是表示学习的预训练模型的蓬勃发展,基于对比学习的自监督模型是其中最火的一种。BERT是近几年来在多种语言处理任务上取得了突出成就,但是它在需要处理句子的任务(例如聚类或语义搜索)效率低下,因为它需要组合地评估许多句子对,这非常耗时。 而Sentence -BERT(SBERT)试图通过学习单个句子的语义表示来解决这一难题,以便可以轻松地访问相似性比较。但是,SBERT接受了带有高质量标记语句对的Corpus培训,这限制了其在标记数据极为匮乏的任务中的应用。
关键词:互信息;自监督;BERT;孪生网络
1.1 研究背景
最近的几年见证了自然语言处理(尤其是表示学习)的飞速发展。由于模型训练的难度和高昂的成本,pretrain和fine-tune(“预训练和微调”)方法成为自然语言处理领域的首选,这种方法意味着我们需要精心设计了一个pretext task(借口任务)(通常是自我监督的)并用于训练深度神经网络任务,以此来是学习通用特征表示,然后针对特定的下游任务进行调整或微调。然而由于标记数据的高成本和文本数据集中标记的高成本,随着研究的进展,使用越来越少的标记,甚至没有数据,已成为深度学习领域的主要趋势。在诸如[7],[16],[22],[24],[36]之类的方法中,最成功的一种是可以称为自我监督学习的最新的方法。自我监督学习是一种无监督学习方法,而其中数据可以提供有监督的信息[8]。这种方法通过解决自定义的前置任务对模型进行预训练,并转移或微调训练后的模型以解决特定问题。自监督学习算法不依赖注释,而是通过暴露数据之间的关系从数据生成标签数据的各个部分。这一步被认为是实现人类智能的关键[35]。
Bert(Bidirectional Encoder Representations from Transformers) [34]就是在自然语言处理方面非常fancy的一个,在Bert最初提出的时候,基于BERT的预训练语言模型在11个下游NLP任务达到了state-of-art的最性能。它,设计了两个任务来预训练该模型。第一个任务是采用MaskLM的方式来训练语言模型,通俗地说就是在输入一句话的时候,随机地选一些要预测的词,然后用一个特殊的符号[MASK]来代替它们,之后让模型根据所给的标签去学习这些地方该填的词。第二个任务在双向语言模型的基础上额外增加了一个句子级别的连续性预测任务,即预测输入BERT的两段文本是否为连续的文本,引入这个任务可以更好地让模型学到连续的文本片段之间的关系。
虽然Bert在很多任务上都有很好的表现,但是比如在处理特定任务,如在进行文本搜索,查询这种涉及到句子对的任务,Bert的处理效果是低效的,例如,从10000条句子中找到最相似的一对句子,由于可能的组合众多,需要完成49,995,000次推理计算;在一块V100的GPU上使用Bert计算,将消耗65小时。考虑到孪生网络的结构和文本对的特性,将它们结合起来,这正是Sentence-Bert模型的工作,SBert不仅大大提高了效率,前文所述的从10000条句子找最相似pair的任务,SBert仅需5秒就能完成,还在众多文本匹配工作中(包括语义相似性、推理等)都取得了超出Bert的最优结果!
然而SBert需要数据有高质量的标签,但是在实际任务中,数据标签往往是不存在或者很匮乏的。而借助于对比自监督学习的方法,我们能很好的把孪生网络的架构和自监督学习的思路统一一起。在自我监督学习中,对比自监督学习是一种非常fancy的方法,旨在训练具有对比损失函数的pretext任务。在这类方法中,对于给定的锚点数据,对比损失试图使锚点与一些正样本和锚点数据之间的距离相近,使得锚点与某些负样本之间的距离够远。最新达到SOTA性能的模型[1],[11],[18]主要依据是根据最大化相互信息的角度来解释,这些方法中的许多的优化目标都是来优化一个最大化互信息的特定下界,称为InfoNCE [18]。
1.2 研究目的与意义
本项目的研究目的是通过从对比自监督学习的经典方法,如SimCLR[5],CPC[22],CMC[31],DeepInfoMax [13], MoCo [11] 中,借鉴可以迁移到NLP的预训练表示学习中的方法,用来设计一个应用于文本相似度下游任务上的摸型,希望可以在不需要借助标签的情况下,接近或者达到有监督的算法的效果,同时在算法的时间效率上可以远胜过Bert,接近或者达到Sentence-Bert的水平。
当前,以自监督的方式学习句子表示是处理未标记或部分标记数据集是解决当下数据标注成本高,数据学习瓶颈的关键,而在本研究中的下游任务,计算文本的相似度,在很多领域,如信息检索,自动问答,机器翻译,以及文档摘要等应用场景,都有广泛的应用。
2.1 词嵌入
Word2vev的出现[20]开辟了基于词嵌入的NLP技术的时代。Word2vec实现了词向量的低维稠密表示,不仅包含了更丰富的语义信息,同时还具有较高的计算速率,有效地提升下游任务的性能,此后很多模型都受到了它的启发,如用于文本 分类和词向量生成的glove[23],fastText [2],这些模型都是使用固定的矢量来表示特定的标记(单词)。但是,这种方式得到的词向量始终是固定 不变的,无法根据不同的下游任务进行灵活改变,也不能处理 遇到新词和一词多义情况,缺乏针对性,因此提出了更新的单词嵌入方法,这种词表示法不仅利用了词级表示生成的词向量,还 将预训练技术运用于更复杂的语言模型,获取更高级的语义表示,单词标记的嵌入取决于其上下文,例如ELMo(语言模型的嵌入)[24] XLNET [36]和BERT [7]。
2.2句子嵌入
句子嵌入是一个经过广泛研究的领域,近十年来有很多经典的方法。句子嵌入与词嵌入非常相似,也可以大致分为基于纯统计的词袋模型[37]和基于句子维分布假设的NN模型。后者也可以分为无监督方法,例如skip-Thoughts [15],Quick Thoughts [18]和有监督方法,例如InferSent [6]。在语言预训练中,InfoWord [16]提出使句子的整体表示与其中的n-gram之间的相互信息最大化。从句子中导出上下文,将选定的n-gram掩盖起来,然后从语料库中随机抽取否定上下文。
Skip-Thought [15]训练了一种编码器解码器体系结构来预测周围的句子。 InferSent [6]使用Stanford Natural Lan guage Inference数据集[3]和MultiGenre NLI数据集(Williams等人,2018)的标记数据来训练孪生BiLSTM网络,并在输出上进行最大池化。 Conneau等。结果表明,InferSent始终优于SkipThought等无监督方法。 Universal Sentence Encoder(Cer et al。,2018)训练一个Transformer网络并通过SNLI训练来增强无监督学习。希尔等在 (2016年)表明,训练句子嵌入的任务会显着影响其质量。而先前的工作(Conneau等人,2017; Cer等人,2018)发现SNLI数据集适合于训练句子嵌入。
2.3语言预训练模型
近年来,大量研究表明,基于大型语料库的“预训练模型”(PTM)可以学习通用语言表示形式,这对下游的NLP任务有利,并且可以避免从头开始进行训练。由于计算能力,深度模型的出现(Transformer [34])和训练技能的增强,PTM已从浅到深发展。通常,PTM的发展可以分为两个时代。第一代PTM旨在学习“单个单词嵌入”,例如skip-gram [21]和GloVe [23]。这些模型不用于下游任务。尽管这些经过预训练的词位置可以捕获词的语义,但它们不受上下文的限制,因此无法捕获上下文中的高级概念。第二代PTM专注于学习“上下文-相关词嵌入”,例如CoVe [19],ELMo [24],[27],OpenAI GPT [27]和BERT [7]。这些学习的编码器还用于表示下游任务中的单词。此外,已经提出了各种预训练任务来学习PTM以用于不同的目的。最近,非常深入的PTM在学习通用语言表示法方面表现出了强大的能力,尤其是在OpenAI GPT(生成式预训练)和BERT之后。微调已成为使PTM适应下游任务的主流方法。随着BERT成为新的最新句子嵌入模型,Bert在这里得到了重点介绍,人们已经尝试构建基于BERT的S2Net,例如SBERT [29],它可以在各种情况下实现最新的性能句子嵌入任务。 SBERT基于BERT等Transformer模型(Devlin等,2018),并在输出上应用均值合并。
2.4自监督学习
自监督学习从理论上讲是无监督学习的一种变体,自监督学习是一种无监督学习方法,其中数据可以提供监督信息[8]。对比学习背后的主要思想是将输入数据分为多个(可能是重叠的)视图(view),并使这些视图的编码表示之间的互信息最大化。使用从其他输入获得的视图(view)作为负样本,并和输入的样本最小化。其中,Deep InfoMax [13]提供了一种互信息最大化的基于图像的表示学习方法。 Deep InfoMax通过最大化图像本身和图像局部区域之间的互信息,以此可以改善模型的表示质量。 Deep InfoMax为我们提供了一个思路,我们可以借鉴这种局部和全局最大化互信息的方法(local-global)。与这篇文章基本上同一时间(2017年)前后出来的另一个重量级文章,是对比预测编码Contrastive Predicting Coding(CPC)[22],这篇文章提出了一个重量级的就是InfoNCE。CPC在音频处理任务中,选择将音频片段与其上下文音频之间的关联最大化,来构造数据对。而为了提高数据效率,采用了Negative Sampleing也被称为NCE(噪声对比估计)的方法。对比多视图编码(CMC)[31]在建模过程中则使用多个视图X(i),其中每个X(i)对应于不同的图像模态(例如,
颜色通道,或图像及其分割版),通过使得一张图片不同的图像模态的互信息最大来增强图片的表示学习。
4.1研究方法
本项目采用了理论与实际相结合、定性与定量相结合的研究方法,具体情况如下:
4.1.1 文献研究法
文献研究法。文献阅读方面,主要是查阅谷歌学术上的电子版的论文,以及查询近五年来的相关的学术会议和期刊上相关的文章,通过研读自监督学习,对比学习,以及自然语言处理的经典的模型等方法,我对相关概念进行有了充分的掌握,以及对自监督学习,尤其是其在自然语言处理的相关应用和相关技术等相关文献有了充分掌握,对现如今的基于自然语言处理的自监督学习的方法建立一个系统的了解,在此基础上确定论文的研究框架,并为论文提供理论支撑和分析基础。
4.1.2 量化分析法
使用Python,Pytorch等工具软件对研究数据进行实证分析:使用了Bert的预训练模型和Transformer等库进行建模实验,并使用了openwebText数据集在STS的若干下游任务上进行了实验。
4.5项目开展中遇到的问题
4.5.1 信息论知识不足
因为本文在调研相关文献过程中,涉及到很多关于信息论的知识点,数学推理过程较为复杂,学生在学习过程中颇为吃力,但是在互联网上积极寻找学习方案和看了若干课程和相关领域的文章之后,最终克服了这一难关。
4.5.2 模型训练慢难以收敛
对于自然语言处理的通用表示模型,特别是基于Transformer这种模型架构的模型,其训练难度是很大的,模型太大是其一,BERT 的训练和推理时间也太长,在V100集群上上对 BERT-large 进行训练,每次预训练都需要至少 4 天的时间才能完成,其次是在模型初期调试过程中,往往不能确保有一个较好的收敛效果。
对于这类问题,我首先是和我的导师瞿晓阳博士进行积极沟通,在整个项目开展过程中我们奉行的是理论先行的方案,在没想清楚工作流程之前部盲目开展实验,提前避免了一些不必要的实验环节;此外,我和一些相熟的学长姐积极提问请教,在具体写作和模型代码编写的环节避免了一些比较严重的踩坑,得以保持了进度。
[1] Philip Bachman, R Devon Hjelm, and William Buchwalter. Learning representations by maximizing mutual information across views. In Advances in Neural Information Processing Systems, pages 15535– 15545, 2019.
[2] Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolov. Enriching word vectors with subword information. Transactions of the Association for Computational Linguistics, 5:135–146, 2017.
[3] Samuel R Bowman, Gabor Angeli, Christopher Potts, and Christopher D Manning. A large annotated corpus for learning natural language inference. arXiv preprint arXiv:1508.05326, 2015.
[4] Jaime Carbonell and Jade Goldstein. The use of mmr, diversity based reranking for reordering documents and producing summaries. In Proceedings of the 21st annual international ACM SIGIR conference on Research and development in information retrieval, pages 335–336, 1998.
[5] Ting Chen, Simon Kornblith, Mohammad Norouzi, and Geoffrey Hinton. A simple framework for contrastive learning of visual representations. arXiv preprint arXiv:2002.05709, 2020.
[6] Alexis Conneau, Douwe Kiela, Holger Schwenk, Loic Barrault, and An toine Bordes. Supervised learning of universal sentence representations from natural language inference data. arXiv preprint arXiv:1705.02364, 2017.
[7] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language un derstanding. arXiv preprint arXiv:1810.04805, 2018.
[8] Carl Doersch and Andrew Zisserman. Multi-task self-supervised visual learning. In Proceedings of the IEEE International Conference on Computer Vision, pages 2051–2060, 2017.
[9] John M Giorgi, Osvald Nitski, Gary D Bader, and Bo Wang. Declutr: Deep contrastive learning for unsupervised textual representations. arXiv preprint arXiv:2006.03659, 2020.
[10] Aaron Gokaslan and Vanya Cohen. Openwebtext corpus, 2019.
[11] Kaiming He, Haoqi Fan, Yuxin Wu, Saining Xie, and Ross Girshick. Momentum contrast for unsupervised visual representation learning. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 9729–9738, 2020.
[12] Felix Hill, Kyunghyun Cho, and Anna Korhonen. Learning distributed representations of sentences from unlabelled data. arXiv preprint arXiv:1602.03483, 2016.
[13] R Devon Hjelm, Alex Fedorov, Samuel Lavoie-Marchildon, Karan Gre wal, Phil Bachman, Adam Trischler, and Yoshua Bengio. Learning deep representations by mutual information estimation and maximization. arXiv preprint arXiv:1808.06670, 2018.
[14] Yacine Jernite, Samuel R Bowman, and David Sontag. Discourse-based objectives for fast unsupervised sentence representation learning. arXiv preprint arXiv:1705.00557, 2017.
[15] Ryan Kiros, Yukun Zhu, Russ R Salakhutdinov, Richard Zemel, Raquel Urtasun, Antonio Torralba, and Sanja Fidler. Skip-thought vectors. In Advances in neural information processing systems, pages 3294–3302, 2015.
[16] Lingpeng Kong, Cyprien de Masson d’Autume, Wang Ling, Lei Yu, Zihang Dai, and Dani Yogatama. A mutual information maximiza tion perspective of language representation learning. arXiv preprint arXiv:1910.08350, 2019.
[17] Quoc Le and Tomas Mikolov. Distributed representations of sentences and documents. In International conference on machine learning, pages 1188–1196, 2014.
[18] Lajanugen Logeswaran and Honglak Lee. An efficient framework for learning sentence representations. arXiv preprint arXiv:1803.02893, 2018.
[19] Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. Learned in translation: Contextualized word vectors. In Advances in Neural Information Processing Systems, pages 6294–6305, 2017.
[20] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781, 2013.
[21] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems, pages 3111–3119, 2013.
[22] Aaron van den Oord, Yazhe Li, and Oriol Vinyals. Representation learn ing with contrastive predictive coding. arXiv preprint arXiv:1807.03748, 2018.
[23] Jeffrey Pennington, Richard Socher, and Christopher D Manning. Glove: Global vectors for word representation. In Proceedings of the 2014 con ference on empirical methods in natural language processing (EMNLP), pages1532–1543, 2014.
[24] Matthew E Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christo pher Clark, Kenton Lee, and Luke Zettlemoyer. Deep contextualized word representations. arXiv preprint arXiv:1802.05365, 2018.
[25] Ben Poole, Sherjil Ozair, Aaron van den Oord, Alexander A Alemi, and George Tucker. On variational bounds of mutual information. arXiv preprint arXiv:1905.06922, 2019.
[26] Xipeng Qiu, Tianxiang Sun, Yige Xu, Yunfan Shao, Ning Dai, and Xuanjing Huang. Pre-trained models for natural language processing: A survey. arXiv preprint arXiv:2003.08271, 2020.
[27] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. Improving language understanding by generative pre-training, 2018. [28] Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, and Ilya Sutskever. Language models are unsupervised multitask learners. OpenAI blog, 1(8):9, 2019.
[29] Nils Reimers and Iryna Gurevych. Sentence-bert: Sentence embeddings using siamese bert-networks. arXiv preprint arXiv:1908.10084, 2019. [30] Richard Socher, Eric H Huang, Jeffrey Pennin, Christopher D Manning, and Andrew Y Ng. Dynamic pooling and unfolding recursive autoen coders for paraphrase detection. In Advances in neural information processing systems, pages 801–809, 2011.
[31] Yonglong Tian, Dilip Krishnan, and Phillip Isola. Contrastive multiview coding. arXiv preprint arXiv:1906.05849, 2019.
[32] Yonglong Tian, Chen Sun, Ben Poole, Dilip Krishnan, Cordelia Schmid, and Phillip Isola. What makes for good views for contrastive learning. arXiv preprint arXiv:2005.10243, 2020.
[33] Michael Tschannen, Josip Djolonga, Paul K Rubenstein, Sylvain Gelly, and Mario Lucic. On mutual information maximization for representa tion learning. arXiv preprint arXiv:1907.13625, 2019.
[34] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in neural information processing systems, pages 5998–6008, 2017.
[35] Kyle Wiggers. Yann lecun and yoshua bengio: Self-supervised learning is the key to humanlevel intelligence, 2020.
[36] Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Russ R Salakhutdinov, and Quoc V Le. Xlnet: Generalized autoregressive pre training for language understanding. In Advances in neural information processing systems, pages 5753–5763, 2019.
[37] Yin Zhang, Rong Jin, and Zhi-Hua Zhou. Understanding bag-of words model: a statistical framework. International Journal of Machine Learning and Cybernetics, 1(1-4):43–52, 2010.