• [技术干货] 如何防止我的模型过拟合?这篇文章给出了6大必备方法
    作者:Mahitha Singirikonda正如巴菲特所言:「近似的正确好过精确的错误。」在机器学习中,过拟合(overfitting)会使模型的预测性能变差,通常发生在模型过于复杂的情况下,如参数过多等。本文对过拟合及其解决方法进行了归纳阐述。在机器学习中,如果模型过于专注于特定的训练数据而错过了要点,那么该模型就被认为是过拟合。该模型提供的答案和正确答案相距甚远,即准确率降低。这类模型将无关数据中的噪声视为信号,对准确率造成负面影响。即使模型经过很好地训练使损失很小,也无济于事,它在新数据上的性能仍然很差。欠拟合是指模型未捕获数据的逻辑。因此,欠拟合模型具备较低的准确率和较高的损失。如何确定模型是否过拟合?构建模型时,数据会被分为 3 类:训练集、验证集和测试集。训练数据用来训练模型;验证集用于在每一步测试构建的模型;测试集用于最后评估模型。通常数据以 80:10:10 或 70:20:10 的比率分配。在构建模型的过程中,在每个 epoch 中使用验证数据测试当前已构建的模型,得到模型的损失和准确率,以及每个 epoch 的验证损失和验证准确率。模型构建完成后,使用测试数据对模型进行测试并得到准确率。如果准确率和验证准确率存在较大的差异,则说明该模型是过拟合的。如果验证集和测试集的损失都很高,那么就说明该模型是欠拟合的。如何防止过拟合交叉验证交叉验证是防止过拟合的好方法。在交叉验证中,我们生成多个训练测试划分(splits)并调整模型。K-折验证是一种标准的交叉验证方法,即将数据分成 k 个子集,用其中一个子集进行验证,其他子集用于训练算法。交叉验证允许调整超参数,性能是所有值的平均值。该方法计算成本较高,但不会浪费太多数据。交叉验证过程参见下图:用更多数据进行训练用更多相关数据训练模型有助于更好地识别信号,避免将噪声作为信号。数据增强是增加训练数据的一种方式,可以通过翻转(flipping)、平移(translation)、旋转(rotation)、缩放(scaling)、更改亮度(changing brightness)等方法来实现。移除特征移除特征能够降低模型的复杂性,并且在一定程度上避免噪声,使模型更高效。为了降低复杂度,我们可以移除层或减少神经元数量,使网络变小。早停对模型进行迭代训练时,我们可以度量每次迭代的性能。当验证损失开始增加时,我们应该停止训练模型,这样就能阻止过拟合。下图展示了停止训练模型的时机:正则化正则化可用于降低模型的复杂性。这是通过惩罚损失函数完成的,可通过 L1 和 L2 两种方式完成,数学方程式如下:L1 惩罚的目的是优化权重绝对值的总和。它生成一个简单且可解释的模型,且对于异常值是鲁棒的。L2 惩罚权重值的平方和。该模型能够学习复杂的数据模式,但对于异常值不具备鲁棒性。这两种正则化方法都有助于解决过拟合问题,读者可以根据需要选择使用。DropoutDropout 是一种正则化方法,用于随机禁用神经网络单元。它可以在任何隐藏层或输入层上实现,但不能在输出层上实现。该方法可以免除对其他神经元的依赖,进而使网络学习独立的相关性。该方法能够降低网络的密度,如下图所示:总结过拟合是一个需要解决的问题,因为它会让我们无法有效地使用现有数据。有时我们也可以在构建模型之前,预估到会出现过拟合的情况。通过查看数据、收集数据的方式、采样方式,错误的假设,错误表征能够发现过拟合的预兆。为避免这种情况,请在建模之前先检查数据。但有时在预处理过程中无法检测到过拟合,而是在构建模型后才能检测出来。我们可以使用上述方法解决过拟合问题。原文链接:https://mahithas.medium.com/overfitting-identify-and-resolve-df3e3fdd2860本文来源:机器之心
  • [技术干货] 2020年这10大ML、NLP研究最具影响力:为什么?接下来如何发展?
    作者 Sebastian Ruder去年有哪些机器学习重要进展是你必须关注的?听听 DeepMind 研究科学家怎么说。2020 年因为新冠疫情,很多人不得不在家工作和学习,大量人工智能学术会议也转为线上。不过在去年我们仍然看到了很多 AI 技术领域的进展。DeepMind 研究科学家 Sebastian Ruder 近日帮我们对去年的机器学习社区进行了一番总结。首先你必须了解的是:这些重点的选择基于作者个人熟悉的领域,所选主题偏向于表示学习、迁移学习,面向自然语言处理(NLP)。如果读者有不同的见解,可以留下自己的评论。Sebastian Ruder 列出的 2020 年十大机器学习研究进展是:大模型和高效模型语言模型从 2018 年到 2020 年的发展(图片来自 State of AI Report 2020)。2020 年发生了什么?在过去的一年,我们看到了很多前所未有的巨型语言和语音模型,如 Meena(Adiwardana et al., 2020)、Turing-NLG、BST(Roller et al., 2020)和 GPT-3(Brown et al., 2020)。与此同时,研究人员们也早已意识到训练这样的模型要耗费过量的能源(Strubell et al., 2019),并转而探索体量更小、效果仍然不错的模型:最近的一些进展方向来自于裁剪((Sajjad et al., 2020、Sanh et al., 2020、)、量化(Fan et al., 2020b)、蒸馏(Sanh et al., 2019、Sun et al., 2020)和压缩(Xu et al., 2020)。另有一些研究关注如何让 Transformer 架构本身变得更高效。其中的模型包括 Performer(Choromanski et al., 2020)和 Big Bird(Zaheer et al., 2020),如本文第一张图所示。该图显示了在 Long Range Arena 基准测试中不同模型的性能(y 轴)、速度(x 轴)和内存占用量(圆圈大小)(Tay et al., 2020)。像 experiment-impact-tracker 这样的工具(Henderson et al., 2020)已让我们对于模型的能耗效率更为了解。其研究者还推动了评估效率的竞赛和基准测试,如 EMNLP 2020 上的 SustaiNLP 研讨会,NeurIPS 2020 上的 Efficient QA 竞赛和 HULK(Zhou et al., 2020)。模型体量的扩大可以让我们不断突破深度学习能力的极限。而为了在现实世界部署它们,模型必须高效。这两个方向也是相辅相成的:压缩大号模型可以兼顾效率和性能(Li et al., 2020),而效率更高的方法也可以推动更强、更大的模型(Clark et al., 2020)。鉴于对效率和可用性的考虑,我认为未来研究的重点不仅仅是模型的表现和参数数量,也会有能耗效率。这会有助于人们对于新方法进行更全面的评估,从而缩小机器学习研究与实际应用之间的差距。检索增强使用 REALM 进行无监督预训练,检索器和编码器经过了联合预训练。大规模模型可以利用预训练数据学习出令人惊讶的全局知识,这使得它们可以重建事实(Jiang et al., 2020)并在不接触外界上下文的情况下回答问题(Roberts et al., 2020)。然而,把这些知识隐式地存储在模型参数中效率很低,需要极大的模型来存储足量的信息。与之不同的是,最近的一些方法选择同时训练检索模型和大规模语言模型,在知识密集型 NLP 任务上获得了强大的结果,如开放域问答(Guu et al., 2020、Lewis et al., 2020)和语言建模(Khandelwal et al., 2020)。这些方法的主要优点是将检索直接集成到语言模型的预训练中,从而让语言模型效率更高,专注于学习自然语言理解中更具挑战性的概念。因此在 NeurIPS 2020 EfficientQA 竞赛中的最佳系统依赖于检索(Min et al., 2020)。检索是很多生成任务的标准方法,例如文本摘要和对话此前已大量被摘要生成所替代 (Allahyari et al., 2017)。检索增强生成可以将两个方面的优点结合在一起:检索段的事实正确性、真实性以及所生成文本的相关性和构成。检索增强生成对于处理过去困扰生成神经模型的失败案例尤其有用,尤其是在处理幻觉(hallucination)上(Nie et al., 2019)。它也可以通过直接提供预测依据来帮助使系统更易于解释。少样本学习在过去几年中,由于预训练的进步,给定任务的训练样本数量持续减少(Peters et al., 2018、Howard et al., 2018)。我们现在正处在可以使用数十个示例来完成给定任务的阶段(Bansal et al., 2020)。自然地,人们想到了少样本学习变革语言建模的范式,其中最为突出的例子就是 GPT-3 中上下文学习的方法。它可以根据一些输入 - 输出对和一个提示进行预测。无需进行梯度更新。不过这种方式仍然有其限制:它需要一个巨大的模型——模型需要依赖现有的知识——这个模型能够使用的知识量受到其上下文窗口的限制,同时提示需要手工完成。最近的一些工作试图通过使用小模型,集成微调和自动生成自然语言提示(Schick and Schütze, 2020、Gao et al., 2020、Shin et al., 2020)让少样本学习变得更加有效。这些研究与可控神经文本生成的更广泛领域紧密相关,后者试图广泛地利用预训练模型的生成能力。有关这一方面,可以参阅 Lilian Weng 的一篇博客:https://lilianweng.github.io/lil-log/2021/01/02/controllable-neural-text-generation.html少样本学习可以使一个模型快速承接各种任务。但是为每个任务更新整个模型的权重是很浪费的。我们最好进行局部更新,让更改集中在一小部分参数里。有一些方法让这些微调变得更加有效和实用,包括使用 adapter(Houlsby et al., 2019、Pfeiffer et al., 2020a、Üstün et al., 2020),加入稀疏参数向量(Guo et al., 2020),以及仅修改偏差值(Ben-Zaken et al., 2020)。能够仅基于几个范例就可以让模型学会完成任务的方法,大幅度降低了机器学习、NLP 模型应用的门槛。这让模型可以适应新领域,在数据昂贵的情况下为应用的可能性开辟了道路。对于现实世界的情况,我们可以收集上千个训练样本。模型同样也应该可以在少样本学习和大训练集学习之间无缝切换,不应受到例如文本长度这样的限制。在整个训练集上微调过的模型已经在 SuperGLUE 等很多流行任务中实现了超越人类的性能,但如何增强其少样本学习能力是改进的关键所在。对比学习对比学习是一种为 ML 模型描述相似和不同事物的任务的方法。利用这种方法,可以训练机器学习模型来区分相似和不同的图像。最近,对比学习在计算机视觉和语音的自监督表征学习(van den Oord, 2018; Hénaff et al., 2019)中越来越受欢迎。用于视觉表征学习的新一代自监督强大方法依赖于使用实例判别任务的对比学习:将不同图像视为 negative pairs,相同图像的多个视图视为 positive pairs。最近的方法进一步改善了这种通用框架:SimCLR(Chen et al., 2020)定义了增强型实例的对比损失;Momentum Contrast(He et al., 2020)试图确保大量且一致的样本对集合;SwAV(Caron et al., 2020)利用在线聚类;而 BYOL 仅使用 positive pairs(Grill et al., 2020)。Chen 和 He (2020) 进一步提出了一种与先前方法有关的更简单的表述。最近,Zhao et al. (2020)发现数据增强对于对比学习至关重要。这可能表明为什么在数据增强不那么普遍的 NLP 中使用大型预训练模型进行无监督对比学习并不成功。他们还假设,实例判别比计算机视觉中的有监督预训练更好的原因是:它不会试图让一个类中所有实例的特征相似,而是保留每个实例的信息。在 NLP 中,Gunel et al. (2020)无监督的预训练涉及对成千上万个单词类型进行分类的问题不大。在 NLP 中,Gunel et al. (2020)最近采用对比学习进行有监督的微调。语言建模中常用的 one-hot 标签与模型输出的 logit 之间的交叉熵目标存在一些局限性,例如在不平衡的类中泛化效果较差(Cao et al., 2019)。对比学习是一种可选择的补充范式,可以帮助缓解其中的一些问题。对比学习与 masked 语言建模相结合能够让我们学习更丰富、更鲁棒的表征。它可以帮助解决模型异常值以及罕见的句法和语义现象带来的问题,这对当前的 NLP 模型是一个挑战。要评估的不只是准确率NLP 中的 SOTA 模型已在许多任务上实现了超越人类的表现,但我们能否相信这样的模型可以实现真正的自然语言理解(Yogatama et al., 2019; Bender and Koller, 2020)?其实,当前的模型离这个目标还很远。但矛盾的是,现有的简单性能指标无法体现这些模型的局限性。该领域有两个关键主题:a)精选当前模型难以处理的样例;b)不只是选择准确率等简单指标,而是进行更细粒度的评估。关于前者,常用的方法是在数据集创建过程中使用对抗过滤(Zellers et al., 2018),过滤出由当前模型正确预测的样例。最近的研究提出了更有效的对抗过滤方法(Sakaguchi et al., 2020; Le Bras et al., 2020)和一种迭代数据集创建处理方法(Nie et al., 2020; Bartolo et al., 2020),其中样例经过过滤,模型经过了多轮的重新训练。Dynabench 提供了此类不断变化的基准的子集。针对第二点的方法在本质上也是相似的。该领域通常会创建 minimal pairs(也称为反事实样例或对比集)(Kaushik et al., 2020; Gardner et al., 2020; Warstadt et al., 2020),这些 minimal pairs 以最小的方式干扰了样例,并且经常更改 gold label。Ribeiro et al. (2020) 在 CheckList 框架中形式化了一些基本的直觉,从而可以半自动地创建此类测试用例。此外,基于不同的属性来描述样例可以对模型的优缺点进行更细粒度的分析(Fu et al., 2020)为了构建功能更强大的机器学习模型,我们不仅需要了解模型是否优于先前的系统,还需要了解它会导致哪种错误以及还有哪些问题没被反映出来。通过提供对模型行为的细粒度诊断,我们可以更轻松地识别模型的缺陷并提出解决方案。同样,利用细粒度的评估可以更细致地比较不同方法的优缺点。语言模型的现实应用问题与 2019 年语言模型 (LMs) 分析侧重于此类模型所捕获的语法、语义和世界认知的氛围相比,最近一年的分析揭示了许多实际问题。比如经过预训练的 LM 容易生成「有毒」的语言 (Gehman et al., 2020)」、泄露信息 (Song & Raghunathan, 2020)。还存在微调后易受到攻击的问题,以致攻击者可以操纵模型预测结果 (Kurita et al., 2020; Wallace et al., 2020),以及容易受到模型的影响(Krishna et al., 2020; Carlini et al., 2020)。众所周知,预训练模型可以捕获关于受保护属性(例如性别)的偏见(Bolukbasi et al., 2016; Webster et al., 2020),Sun et al., 2019 的研究给出了一份减轻性别偏见的调查。大公司推出的大型预训练模型往往在实际场景中会有积极的部署,所以我们更应该意识到这些模型存在什么偏见,又会产生什么有害的后果。随着更大模型的开发和推出,从一开始就将这些偏见和公平问题纳入开发过程是很重要的。 Multilinguality2020 年,多语言 NLP 有诸多亮点。旨在加强非洲语种 NLP 研究的 Masakhane 机构在第五届机器翻译会议 (WMT20) 上发表的主题演讲,是去年最令人鼓舞的演讲之一。此外,这一年还出现了其他语言的新通用基准,包括 XTREME (Hu et al., 2020)、XGLUE (Liang et al., 2020)、IndoNLU (Wilie et al., 2020)、IndicGLUE (Kakwani et al., 2020)。现有的数据集也拓展到了其他语言中,比如:SQuAD: XQuAD (Artetxe et al., 2020), MLQA (Lewis et al., 2020), FQuAD (d'Hoffschmidt et al., 2020);Natural Questions: TyDiQA (Clark et al., 2020), MKQA (Longpre et al., 2020);MNLI: OCNLI (Hu et al., 2020), FarsTail (Amirkhani et al., 2020);the CoNLL-09 dataset: X-SRL (Daza and Frank, 2020);the CNN/Daily Mail dataset: MLSUM (Scialom et al., 2020)。通过 Hugging Face 数据集可以访问其中的大部分数据集,以及许多其他语言的数据。涵盖 100 种语言的强大模型也就应运而生了,包括 XML-R (Conneau et al., 2020)、RemBERT (Chung et al., 2020)、InfoXLM (Chi et al., 2020)等,具体可参见 XTREME 排行榜。大量特定语言的 BERT 模型已经针对英语以外的语言进行了训练,例如 AraBERT (Antoun et al., 2020)和 IndoBERT (Wilie et al., 2020),查看 Nozza et al., 2020; Rust et al., 2020 的研究可以了解更多信息。借助高效的多语言框架,比如 AdapterHub (Pfeiffer et al., 2020)、Stanza (Qi et al., 2020)和 Trankit (Nguyen et al., 2020) ,世界上许多语种的建模和应用工作都变得轻松了许多。此外,还有两篇很有启发的研究,《The State and Fate of Linguistic Diversity(Joshi et al., 2020)》和《Decolonising Speech and Language Technology (Bird, 2020)》。第一篇文章强调了使用英语之外语言的紧迫性,第二篇文章指出了不要将语言社区及数据视为商品。拓展到英语之外的 NLP 研究有很多好处,对人类社会能产生实实在在的影响。考虑到不同语言中数据和模型的可用性,英语之外的 NLP 模型将大有作为。同时,开发能够应对最具挑战性设置的模型并确定哪些情况会造成当前模型的基础假设失败,仍然是一项激动人心的工作。图像TransformersTransformer 在 NLP 领域取得了巨大的成功,但它在卷积神经网络 CNN 占据主导地位的计算机视觉领域却没那么成功。2020 年初的 DETR (Carion et al., 2020) 将 CNN 用于计算图像特征,但后来的模型完全是无卷积的。Image GPT (Chen et al., 2020)采用了 GPT-2 的方法,直接从像素进行预训练,其性能优于有监督的 Wide ResNet,后来的模型是将图像重塑为被视为「token」的补丁。Vision Transformer (ViT,Dosovitskiy et al., 2020)在数百万个标记好的图像上进行了训练,每一个图像都包含此类补丁,模型效果优于现有最新的 CNN。Image Processing Transformer(IPT,Chen et al., 2020)在被破坏的 ImageNet 示例上进行对比损失预训练,在 low-level 图像任务上实现了新的 SOTA。Data-efficient image Transformer (DeiT,Touvron et al., 2020) 以蒸馏方法在 ImageNet 上进行了预训练。有趣的是,研究者们发现了 CNN 是更好的教师,这一发现类似于蒸馏归纳偏置(inductive bias)应用于 BERT (Kuncoro et al., 2020)。相比之下在语音领域,Transformer 并未直接应用于音频信号,而通常是将 CNN 等编码器的输出作为输入(Moritz et al., 2020; Gulati et al., 2020; Conneau et al., 2020)。与 CNN 和 RNN 相比,Transformer 的归纳偏置更少。尽管在理论上,它不如 RNN (Weiss et al., 2018; Hahn et al., 2020)强大,但如果基于充足的数据和规模,Transformer 会超越其他竞争对手的表现。未来,我们可能会看到 Transformer 在 CV 领域越来越流行,它们特别适用于有足够计算和数据用于无监督预训练的情况。在小规模配置的情况下,CNN 应该仍是首选方法和基线。自然科学与机器学习去年,DeepMind 的 AlphaFold 在 CASP 蛋白质折叠挑战赛中实现了突破性的表现,除此之外,将机器学习应用于自然科学还有一些显著的进展。MetNet (Sønderby et al., 2020)证明机器学习在降水预测方面优于数值天气预报;Lample 和 Charton(2020)采用神经网络求解微分方程,比商用计算机系统效果更好;Bellemare et al. (2020)使用强化学习为平流层的热气球导航。此外,ML 现已被广泛应用于 COVID-19,例如 Kapoor 等人利用 ML 预测 COVID-19 的传播,并预测与 COVID-19 相关的结构,Anastasopoulos 等人将相关数据翻译成 35 种不同的语言,Lee 等人的研究可以实时回答有关 COVID-19 的问题。有关 COVID-19 相关的 NLP 应用程序的概述,请参阅第一期 COVID-19 NLP 研讨会的会议记录:《Proceedings of the 1st Workshop on NLP for COVID-19 (Part 2) at EMNLP 2020》。自然科学可以说是 ML 最具影响力的应用领域。它的改进涉及到生活的许多方面,可以对世界产生深远的影响。随着蛋白质折叠等核心领域的进展,ML 在自然科学中的应用速度只会加快。期待更多促进世界进步的研究出现。强化学习与最先进的智能体相比,Agent57 和 MuZero 整个训练过程中在雅达利游戏中的表现优于人类基准(Badia et al., 2020)。单个深度强化学习智能体 Agent57(Badia et al., 2020)首次在 57 款 Atari 游戏上超过人类,这也是深度强化学习领域中的一个长期基准。智能体的多功能性来自于神经网络,该网络允许在探索性策略和利用性策略之间切换。强化学习在游戏方面的另一个里程碑是 Schrittwieser 等人开发的 MuZero,它能预测环境各个方面,而环境对精确的规划非常重要。在没有任何游戏动态知识的情况下,MuZero 在雅达利上达到了 SOTA 性能,在围棋、国际象棋和日本象棋上表现也很出色。最后是 Munchausen RL 智能体(Vieillard et al., 2020),其通过一个简单的、理论上成立的修改,提高了 SOTA 水平。强化学习算法有许多实际意义 (Bellemare et al., 2020)。研究人员对这一领域的基本算法进行改进,通过更好的规划、环境建模和行动预测产生很大的实际影响。随着经典基准(如 Atari)的基本解决,研究人员可能会寻找更具挑战性的设置来测试他们的算法,如推广到外分布任务、提高样本效率、多任务学习等。参考内容:https://ruder.io/research-highlights-2020/本文来源:https://www.jiqizhixin.com/articles/2021-01-20-4
  • [技术干货] 学习历史预测未来,国防科大新模型在多个数据集上实现未来事实预测SOTA
    作者:祝存超、陈牧昊、范长俊、程光权、张岩时序知识的表征和推理是一个具有挑战性的问题。在本文中,来自国防科技大学等的研究者借鉴了自然语言生成(NLG)中的复制机制思路,并通过设计一种全新的基于时序知识图谱嵌入(TKGE)的模型来更有效地建模时序知识图谱。在多个公开时序知识图谱(TKG)基准数据集上,新模型 CyGNet 在未来事实(链接)预测任务上均实现了 SOTA 结果。知识图谱在知识驱动的信息检索、自然语言理解和推荐系统领域有着广泛的应用。一个知识图谱只拥有静态某一时刻的事实,而目前快速增长的数据往往表现出复杂的时间动态,即时序知识图谱(TKG)。具有代表性的时序知识图谱包括全球事件、语言和音调数据库(Global Database of Events, Language, and Tone, GDELT)和综合危机预警系统(Integrated Crisis Early Warning System, ICEWS)。下图 1 展示了 ICEWS 系统的一个外交活动记录子图。然而,现有建模时序知识图谱的方法忽视了时间事实的复杂演变(即许多事实在历史上反复出现)这个自然现象。例如:全球经济危机大约每隔 7 至 10 年就会定期发生一次;外交活动定期发生在两个建立关系的国家之间;东非动物每年 6 月都会进行大规模的迁徙。更具体地说,在整个 24 年的 ICEWS 数据集中(即 1995 年至 2019 年),超过 80% 的事件在过去已经发生过了。这些现象更进一步强调了利用已知事实预测未来事实的重要性。这也是本文的主要出发点。所以,为了能将时间事实的复杂演变现象融入并建模时序知识图谱,来自中国国防科技大学、美国南加州大学、法国计算与先进技术学院等机构的研究者相信更有效地利用历史上发生过的已知事实能够提高时间事实推断的精度。他们决定借鉴在自然语言生成中的复制机制(copy mechanism)思路,探索一种新的框架,通过有效学习时间重复模式以更精准地建模时序知识图谱。论文链接:https://arxiv.org/pdf/2012.08492v1.pdf代码链接:https://github.com/CunchaoZ/CyGNet首先,研究者通过复制机制来探究时序事实的内在现象,并提出在时序知识图谱中学习推理未来事实的时候应参考已知事实。 其次,研究者通过时间感知复制生成(copy-generation)机制创建了一个新的时序知识图谱嵌入模型CyGNet(Temporal Copy-Generation Network) 。该模型能够结合两种推理模式以根据历史词汇表或整个实体词汇表来进行推测,从而更符合上述 TKG 事实的演变模式。 最后,研究者在 ICEWS18、ICEWS14、GDELT、WIKI 和 YAGO 等 5 个公开 TKG 基准数据集上进行了广泛的实验,结果表明 CyGNet 在未来事实(链接)预测任务上优于以往 SOTA TKG 模型。5 个数据集的统计。方法 模型 CyGNet 举例 如下图 2 所示,研究者以预测 2018 年 NBA 冠军球队为例,总体介绍了 CyGNet 模型的预测流程。可以看到,当预测 2018 年哪支球队获得了总冠军时,我们可以从历史得知一共有 18 支 NBA 球队曾经获得过冠军。CyGNet 首先获得每个实体的嵌入向量(见彩色柱),然后使用生成模式(generation mode)得到所有 30 支 NBA 球队获得冠军的概率(见绿色条形,条形越高表示概率越大),同时使用复制模式得到所有曾经得到过冠军的 18 支球队的概率。通过合并两个模块得到的概率,CyGNet最终预测「金州勇士(Golden State Warriors)」能够获得 2018 年 NBA 冠军。模型 CyGNet 结构CyGNet 各部分之间的联系如下图 3 所示,主要由复制模式和生成模式两个模块组成。前者从一个具有重复事实的特定历史词汇表中选择实体,后者从整个实体词汇表选择实体。在训练过程中,研究者按照时间顺序依次训练每个时间片的知识图谱。每训练一个新的时间片的知识图谱,他们都会将该时间片之前的所有历史重复事实加入到历史词汇表,如下图 4 所示(验证和测试的时候,研究者使用整个训练集的历史信息)。复制模式首先得到每个时间片的历史词汇表,该词汇表由多热指示向量表示,其中在历史出现过的实体记为 1,未出现过的实体记为 0.然后通过一层 MLP 获得一个索引向量 v_q:通过将中的未出现过的实体的值设为无限小的值(如 - 10000),然后通过简单的加和,将未出现过的实体概率值降到无限小。通过一层 softmax,即可将未出现过的实体概率无限逼近与 0,得到历史出现过的所有实体的概率值 p(c):生成模式(generation mode)生成模式通过一层 MLP,然后再接一层 softmax,即可得到整个词汇表的概率值:通过参数 alpha 调整复制机制和生成机制的权重,得到最终预测概率,概率最大的即 CyGNet 预测的实体:实验分析链路预测实验结果 研究者在以下五个公开 TKG 基准数据集上进行了实验,如下表 2 和 3 所示。CyGNet 模型在预测未来事实的链路预测任务上的表现超过所有 baseline 模型,这说明了 CyGNet 可以通过结合复制机制和生成机制有效地建模时序知识图谱数据。控制变量实验结果CyGNet-Copy-only 是当 CyGNet 只使用复制模式,CyGNet-Generation-only 只使用生成模式,CyGNet-Generation-new 是 CyGNet 模型改变生成模式的词汇表,即生成模式只从全新的从未发生过的实体中选择。如下表 4 所示,每个模块都对模型产生了重要的作用。 参数 \ alpha 的敏感度分析 以 ICEWS18 为例,研究者分析了调整复制模式和生成模式权重的参数 alpha。实验结果证明 CyGNet 能有效的结合生成模式和复制模式。总结时序知识图谱预测在现实中是一个重要且有挑战性的问题。传统的方法大多侧重于通过对时序信息进行精细复杂的建模来提高预测的准确性。CyGNet 抓住时序实体经常性的重复出现这一现象,借鉴了自然语言生成领域中的「复制-生成」机制,设计了两个模块进行预测。两个模块的模型都很简单,却打败了传统的设计很复杂的模型,这充分说明了利用好时序实体重复出现特性的优势。然而对于这一特性不明显的数据,CyGNet 的表现可能未必同样出色。本文来源:https://www.jiqizhixin.com/articles/2021-01-24-3
  • [技术干货] 重新标注128万张ImageNet图片:多标签,全面提升模型性能
    自发布以来,ImageNet 数据集逐渐成为机器学习社区最流行的图像分类基准,但 ImageNet 自身存在着标签噪声,以及单标签标注属性与多类别样本之间的不匹配。所以在本文中,韩国 Naver AI 实验室提出了一种新颖的重新标注策略以及一个基于额外源数据的强大图像分类器,通过该策略训练的 ResNet 等多种架构都实现了性能提升。ImageNet 是机器学习社区最流行的图像分类基准数据集,包含超过 1400 万张标注图像。该数据集由斯坦福教授李飞飞等人于 2006 年开始创建,后成为评估计算机视觉模型在下游视觉任务中能力的试金石。然而 ImageNet 并不完美,其标签存在大量噪声。近期多项研究表明,该数据集中许多样本包含多个类别,而 ImageNet 本身是一个单标签基准数据集。一些研究者提出将 ImageNet 转换为多标签任务评估基准,但是可能是由于标注成本过高,他们并未修复训练集。在近日发布的一篇论文中,来自韩国 NAVER AI LAB 的研究者认为,在应用了随机剪裁的训练设置下,单标签标注和高效多标签图像之间的不匹配带来了同等问题。在使用单标签标注时,图像随机剪裁可能包含与真值完全不同的对象,为训练带来噪声甚至不准确的监督信号。为此,这些研究者决定使用多标签对 ImageNet 训练集进行重新标注:他们在额外的数据源上训练了一个强大的图像分类器,使用其生成多标签,解决了标注成本问题;在最终池化层之前使用像素级多标签预测,以充分利用额外的位置特定监督信号。原始 ImageNet 标签(左上)与本文 ReLabel 标注器的效果对比。基于重新标注样本的训练可以全面提升模型性能。例如,使用该研究提出的局部多标签后,ResNet-50 在 ImageNet 上的 top-1 分类准确率达到 78.9%,使用 CutMix 正则化后还可以进一步提升至 80.2%。实验表明,使用局部多标签训练的模型在迁移至目标检测和实例分割任务以及多种稳健性基准时,性能优于基线方法。此外,研究者还开源了重新标注的 ImageNet 训练集、预训练权重和源代码。论文地址:https://arxiv.org/pdf/2101.05022.pdfGitHub 地址:https://github.com/naver-ai/relabel_imagenet方法这项研究提出了一种重新标注(re-labelling)策略 ReLabel,以在 ImageNet 训练集上获得像素级真值标签。标签映射((label map))具有两个特征:多类别标签和局部标签。研究者使用机器标注器(machine annotator)获得标签映射,该标注器是在额外源数据上训练的 SOTA 图像分类器。研究者介绍了如何获得标签映射,并提出了一个新颖的训练框架 LabelPooling,以使用这类局部多标签训练图像分类器。重新标注 ImageNet研究者从机器标注器中获得密集真值标签,从这类模型中获得的预测可能接近于人类预测。由于训练机器标注器需要访问专有训练数据并在 GPU 或 TPU 上训练数百天,所以研究者采用开源训练权重作为机器标注器。机器标注器如下图 4 所示:研究者注意到,尽管机器标注器在 ImageNet 上使用单标签监督(softmax 交叉熵损失)进行训练,但它们仍然倾向于对多类别图像进行多标签预测。所以,如果数据集中存在大量的标签噪声,则利用单标签交叉熵损失训练的模型倾向于预测多标签输出。此外,利用分类器获取标签还有一个好处:提取位置特定的标签。研究者移除了分类器的全局平均池化层,并将接下来的线性层转化为 1×1 的卷积层,从而将该分类器转化为一个全卷积网络。然后,模型的输出成为 f(x) ∈ R^W×H×C。研究者将该输出 f(x) 作为标签映射标注 L ∈ R^W×H×C。利用密集多标签训练分类器在获得上述密集多标签 L ∈ R^W×H×C 之后,接下来需要考虑如何利用它们训练分类器。对此,研究者提出了一种新颖的训练方案 LabelPooling,它将局部真值考虑了进来。下图 3 展示了 LabelPooling 和原始 ImageNet 训练之间的区别:在标准 ImageNet 训练设置下,随机剪裁的监督信号来自于每张图像的单标签真值。另一方面,LabelPooling 会加载预计算的标签映射,并在标签映射上执行与随机剪裁坐标相对应的区域池化操作。研究者采用了 RoIAlign 区域池化方法。此外,研究者在池化预测图上执行全局平均池化和 softmax 操作,以获得多标签真值向量。最后,研究者使用了交叉熵损失。ReLabel 的伪代码。实验ImageNet 分类为了验证 ReLabel 的效果,研究者使用不同的网络架构和评估指标(包括近期提出的多标签评估指标)执行 ImageNet 分类任务。他们在包含 128 万训练图像和 5 万验证图像的 ImageNet-1K 基准上评估 ReLabel 策略。对于所有模型,他们均使用标准数据增强技术,如随机剪裁、翻转、色彩抖动。与其他标签操纵方法的对比:研究者对比了 ReLabel 与之前那些直接调整 ImageNet 标签的方法,使用的模型是 ResNet50。结果参见下表 3:在不同网络架构上的结果:研究者使用 ReLabel 训练了多个不同架构(包括 ResNet-18、ResNet101、EfficientNet-{B0,B1,B2,B3}、ReXNet),表明 ReLabel 可用于具备不同训练机制的多种网络。下表 4 展示了实验结果,从中可以看出,ReLabel 持续提升不同网络架构的性能,例如将 EfficientNet-B3 的准确率从 81.7% 提升至 82.5%。SOTA 性能:ReLabel 对实现最优性能的其他训练技巧起到补充作用,例如将 CutMix 正则化与 ReLabel 结合起来。研究者在随机剪裁图像上执行 CutMix,然后根据 CutMix 算法将池化标签进行混合。实验结果参见下表 5:ReLabel + CutMix 在以 ResNet-50 和 ResNet-101 作为主干模型的情况下,均取得了 SOTA ImageNet top-1 准确率。迁移学习研究者还检验了 ReLabel 带来的 ImageNet 性能改进能否迁移至不同的下游任务,展示了在五个细粒度分类任务、目标检测与实例分割任务上的结果。细粒度分类任务:研究者在五个细粒度分类任务(Food-101、Stanford Cars、DTD、FGVC Aircraft 和 Oxford Pets)上评估了使用 ReLabel 预训练的 ResNet-50 的性能。实验结果参见下表 8:目标检测与实例分割:研究者分别使用具备特征金字塔网络的 Faster-RCNN 和 Mask-RCNN 作为目标检测和实例分割任务的 base 模型。Faster-RCNN 和 Mask-RCNN 的主干网络基于 ReLabel 预训练的 ResNet-50 模型进行初始化,然后使用原始训练策略在 COCO 数据集上进行微调。实验结果参见下表 9:多标签分类多标签训练常用随机剪裁作为数据增强方式,在这种情况下,ReLabel 和 LabelPooling 可以提供额外的局部监督信号,帮助改善原始多标签训练集。研究者使用多标签分类数据集 COCO 进行实验,然后使用基于标签映射的 LabelPooling 训练多标签分类器。下表 10 展示了实验结果:使用 ReLabel 和机器生成的标签地图后,ResNet-50 和 ResNet-101 的 mAP 分别增长了 3.7 pp 和 2.4 pp;使用 oracle 标签地图后,二者的 mAP 分别增长了 4.2 pp 和 4.3 pp。
  • [技术干货] 华盛顿大学《生成模型》2020秋季课程完结,课件、讲义全部放出
    这门课聚焦生成建模技术的理论和数学基础,探讨多种生成模型技术。在概率统计理论中,生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它能够给观测值和标注数据序列指定一个联合概率分布。在机器学习中,生成模型可用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。 生成模型是最近较为活跃的研究领域,从事机器学习研究的人有必要了解这一研究主题。去年秋季,华盛顿大学开设了一门主题为「生成模型」的课程 CSE 599,探讨了多种生成模型相关技术。课程地址:https://courses.cs.washington.edu/courses/cse599i/20au/这门课与当前的生成模型研究紧密相关,并提供了阅读该领域近期进展相关论文所需的背景知识。课程聚焦生成建模技术的理论和数学基础,学生在开始本课程前最好了解机器学习领域的基础概念。该课程于 2020 年 9 月 30 日开始,12 月 7 日结课。目前已放出课程讲义和 slide,每节课还提供额外的补充阅读材料。CSE 599 课程表部分截图。课程主题这门课程涉及以下主题:自回归模型NADE 框架RNN/LSTM 和 Transformer变分自编码器(VAE)高斯 VAEConvNet 与 ResNet后验崩溃离散式 VAE生成对抗网络f-GANWasserstein GANGenerative Sinkhorn Modeling生成流自回归流可逆网络神经常微分方程基于能量的模型Stein 方法与评分匹配郎格文动力学与扩散 具备类似主题的课程还有斯坦福大学开设的 CS236(深度生成模型)课程和加州大学伯克利分校的 CS294-158(深度无监督学习)课程。感兴趣的读者可以多了解这两门课。讲师简介课程主讲人 John Thickstun 本科毕业于布朗大学应用数学专业,目前在华盛顿大学计算机科学与工程系攻读博士学位。目前的研究兴趣包括生成模型、采样、时序,及其在音乐领域的应用,多篇论文发表在 EMNLP、ICML、ISMIR、ICLR 等学术会议上。个人主页:http://homes.cs.washington.edu/~thickstn/本文分享:https://www.jiqizhixin.com/articles/2021-01-29
  • [技术干货] AI顶会连发7篇论文,华为云实现人工智能多领域新突破
    全球人工智能领域的顶级学术会议AAAI 2021将于2月2日-9日在线上召开。论文录用结果显示,华为云的7篇AI科研成果被收录。华为云被接收的研究涉及联邦学习、深度学习、机器学习、自然语言处理、迁移学习、知识计算等技术领域,充分展现了华为云在人工智能领域的基础研究实力。技术创新和应用落地是这些论文的亮点,相关技术目前已在油气勘探、药物研发、AI 开发、智能交通等业务场景下规模化落地,加速行业智能升级。  AAAI 每年评审并收录来自全球最顶尖的人工智能领域学术论文,代表全球 AI 技术的趋势和未来。以下是华为云此次入选 7 篇论文介绍:论文一:业界首创自分组个性化联邦学习框架,并已落地华为云 ModelArts论文标题:《非独立同分布下的自分组个性化联邦学习》(Personalized Cross-Silo Federated Learning on Non-IID Data) 论文地址:https://arxiv.org/abs/2007.03797联邦学习机制以其独有的隐私保护机制受到很多拥有高质数据的大客户青睐。但是,各大客户的数据分布非常不一致,对模型的需求也不尽相同,这些在很大程度上制约了传统联邦学习方法的性能和应用范围。华为云自研 FedAMP 联邦学习框架使用独特的自适应分组学习机制(如图一)让拥有相似数据分布的客户进行更多合作,并对每个客户的模型进行个性化定制,从而有效处理普遍存在的数据分布不一致问题,并大幅度提高联邦学习性能。通过与中国科学院上海药物所在 AI 药物联邦学习上的合作,FedAMP 优质的性能获得了蒋华良院士的高度认可,并在中国医药创新与投资大会上吸引了众多医疗制药厂商洽谈合作。                                              图 1 FedAMP 联邦学习框架论文二: 首次提出利用物理信息深度学习的框架将二阶交通理论模型融合到神经网络中,以高效解决交通态的估值的问题:(Physics-Informed Deep Learning for Traffic State Estimation: A Hybrid Paradigm Informed By Second-Order Traffic Models)交通态的估值需要解决如何使用稀疏的传感器(如传感线圈,浮动车)数据将整条道路的交通态(如速度,流量,密度)完整地估计出来。这对算法的数据效率有着非常高的要求,而传统的纯交通模型和纯机器学习的解决方案的效果均不理想。针对这些问题,本论文提出了基于物理信息深度学习框架,通过对激励函数和连接权重的特殊设计,将复杂的二阶交通模型编码到神经网络中去(图二 - a),让神经网络在高阶交通理论的约束下进行训练。具体方法是,使用传统神经网络进行交通态的估值,然后将估值进一步输入到物理信息神经网络中去,计算出该估值的理论余量来量化偏移交通理论的程度。这个理论余量为估值网络的训练提供了重要的正则化信息,大大提高了估值模型的训练效率和估值精度。如图(图二 - b)所示,本方法可以基于很少的观测数据获得更高的估值准确度。本文是华为员工在哥伦比亚大学深造期间完成的工作。(a) (b) 图 2 编码了二阶交通理论模型的物理信息神经网络与交通态估值结果论文三:使用图卷积网络拟合权值共享神经结构搜索的搜索空间,提升神经结构搜索鲁棒性。(Fitting the Search Space of Weight-sharing NAS with Graph Convolutional Networks)论文地址:https://arxiv.org/pdf/2004.08423.pdf权值共享的神经结构搜索通过训练一个包含所有分支的超网络来复用不同操作上的计算量,以子网络采样的方式评估网络结构,大幅度提高了搜索速度。然而,这种子网络采样的方式并不能保证子网络的评估性能准确反映其真实属性。本文认为产生这一现象的原因是使用共享权值构建子网络的过程中产生了权值失配,使得评估性能中混入了一个随机噪声项。本论文提出使用一个图卷积网络来拟合采样子网络的评估性能,从而将这个随机噪声的影响降至最低。实验结果表明,使用本方案后,子网络的拟合性能与真实性能间的排序相关性得到有效提高,最终搜索得到的网络结构性能也更加优异。此外,本方案通过图卷积网络拟合了整个搜索空间中子网络的评估性能,因此可以很方便地选取符合不同硬件约束的网络结构。                                                           图 3 总体框架示意图论文四:首次提出基于多轮阅读理解的框架解决实体链接问题实体链接是将文本中提到的实体链接到知识库中对应实体的任务,目的是解决实体存在的歧义性问题,但由于名称的变化和实体的模糊性,此任务十分具有挑战性,尤其是短文本的实体链接,由于句子长度短,在链接过程中,每个待消歧的实体能利用的上下文信息非常有限。针对这个任务,本论文提出了一个多项选择阅读理解的框架,为句子中每个待消歧的实体分别生成一个问题,并将知识库中的候选实体转换成候选答案集,通过这样一个设计,实体链接转换为了一个阅读理解的问题(图 1 Local 部分)。在选择正确答案的过程中,待消歧实体的上下文信息与知识库中的候选实体之间获得了充分的交互,同时多个候选实体间的区别也得到了潜在地考虑。为了进一步捕捉句子内待消歧实体间的主题一致性来提高链接的准确率,本文采用了多轮阅读理解的方式以序列去处理多个待消歧的实体(图 1 Global 部分),为句子内多个实体的消歧提供了更丰富的信息。另外,为了解决短文本中常见的不可链接问题(即知识库中没有对应的实体),本文额外设计了一个两阶段的验证机制来判断实体是否可被链接。本论文提出的方法在多个中英文数据集上均取得了目前最优的实体链接效果。                                                 图 4 基于多轮阅读理解的实体链接框架论文五:首次提出基于多尺度地质知识迁移的跨区块油气储集层分类算法,利用迁移学习提升跨区块油气储集层分类效果。(Cross-Oilfield Reservoir Classification via Multi-Scale Sensor Knowledge Transfer)油气储集层分类是油气勘探中的一个关键步骤(如图一所示),自动准确的油气储集层分类方法不仅可以降低油气行业专家的工作负担,也可以帮助油气勘探公司做出最优的开采决策。当前已有的油气储集层分类主要关注在单一区块上的分类效果,但是在新区块上应用效果却不尽如人意。因此,如何迁移地层特征从而实现跨区块也能准确分类是一个富有挑战的任务。本论文首次提出了一种多尺度传感器抽取方法从多元测井记录中抽取地质特征的多尺度表示,然后设计了一种 encoder-decoder 模块来充分利用目标和源区块的特有特征,最后通过一个知识迁移模块来学习特征不变性表示,从而将地质知识从源区块迁移到目标区块。真实油气数据上的实验结果表明本论文精心设计的迁移学习方法,可以提升分类模型在新区块上的分类表现,相较于基线算法可以有 %6.1 的效果提升。                                                      图 5 油气勘探工作流论文六:首次提供基于超几何分布的概率模型,用于解决远程监督命名实体识别中的去噪问题。(Denoising Distantly Supervised Named Entity Recognition via a Hypergeometric Probabilistic Model)远程监督是一种常见的机器学习范式,可以降低对标注数据的依赖。但是远程监督往往会引入噪声,从而影响学习效果。对于基于远程监督的命名实体识别(NER)来说,如何有效去噪就是一个十分重要的问题。以往的去噪方法主要基于实例层次的统计结果,往往忽略了不同数据集不同实体类型之间噪声分布的差异性,从而导致这些方法何难适用于高噪声比例的设定。本论文提出了一种基于超几何分布的学习方法,同时考虑噪声分布和实例层次的置信度。具体而言,我们将每个训练 batch 里面噪声样本的数量建模成一个由噪声比例决定的超几何分布,这样一来每个实例都可以通过上一轮训练获得的置信度来决定是噪声还是正确样本。实验结果表明本论文提出的方法可以有效去除远程监督范式引入的噪声,显著提升 NER 的效果。                                                该工作由华为云团队与中科院软件所合作完成。论文七:提出基于对抗学习与相似性增强的域泛化训练新框架,在域泛化行人再识别领域创下新纪录 (Dual Distribution Alignment Network for Generalizable Person Re-Identification)域泛化是一种适用于现实应用场景的机器学习范式,对于行人再识别问题,域泛化是指在大规模多源数据上进行模型训练,期望模型在任意未知的场景中都能够直接适用。现实应用中,大规模训练数据往往难以收集,域泛化方法正是一个使得模型能够低成本快速部署的优秀方案。以往的方法对域间的巨大差异缺乏有效的处理手段,同时忽略了域间样本可能的相似性信息。在数据域层面,本论文提出了新的对抗学习方法,通过减少中心域与外围域的差异,实现了域间差异的有效消除;在样本层面,本论文通过增强来自不同域的相似样本之间的相似性,进一步对齐来自不同域的样本特征分布。在这两个方面的共同作用下,本论文的双重分布对齐网络实现了新的性能突破。实验表明,所提方法在公共测试基准数据集上取得了当前最好的结果。该工作由华为云团队与厦门大学合作完成。                                       图 7 针对域泛化行人再识别问题的双重分布对齐网络示意图为了更好地赋能产业升级,华为云持续深耕 AI 基础研究和落地应用,打造更懂世界的 AI。2020 年以来,华为云 EI 研究团队已在图像分类、弱标注场景下的图像分类、图像检测,多模态数据处理、语音语义等领域取得多项世界第一。未来,华为云将持续把 AI 前沿算法产品化,并开放给各行业的 AI 开发者使用,通过技术创新驱动产业智能升级。
  • [技术干货] 多所知名高校合著综述论文、Nature新子刊创刊首发,这是你常听到的贝叶斯统计与建模
    一篇关于贝叶斯统计与建模的综述文章,出现在了 Nature 新子刊 Nature Reviews Methods Primers 的第一期上。新年伊始,Nature 旗下再添三本新刊:Nature Aging(《自然 - 老龄化》)、Nature Computational Science(《自然 - 计算科学》)和 Nature Reviews Methods Primers(《自然综述 - 方法导论》)。其中 Nature Reviews Methods Primers 以刊发综述文章的形式为读者提供各种科学方法的概述及其在不同研究问题上的应用,每周出版一次。期刊上的所有文章都将采取约稿形式,涵盖生命科学和物理科学中使用的分析、应用、统计、理论和计算方法。1 月 14 日,Nature Reviews Methods Primers 上线第一期,刊登了一篇关于贝叶斯统计与建模的综述文章,作者来自荷兰乌得勒支大学、加州大学默塞德分校、爱丁堡大学、牛津大学、乔治城大学、莱斯大学、哥伦比亚大学、艾伦 · 图灵研究所等机构。这篇文章描述了贝叶斯分析的各个阶段,从指定先验和数据模型,到推断、模型检验与改进,探讨了先验和后验预测检验的重要性,选择恰当的技术从后验分布、变分推断和变量选择中采样。此外,这篇文章还提供了贝叶斯分析在多个研究领域的成功应用示例,包括社会科学、生态学、遗传学、医学等,并提出了可复现性策略和报告标准,概述了更新版的 WAMBS(何时需要担心误用贝叶斯统计以及如何避免)检查表。最后,这篇文章介绍了贝叶斯分析对人工智能的影响。贝叶斯统计简介贝叶斯统计是基于贝叶斯定理的数据分析和参数估计方法,其独特性在于统计模型中的观测和未观测参数是基于联合概率分布的,即先验分布和数据分布。典型的贝叶斯工作流程包括三个主要步骤(参见下图 1):通过先验分布捕捉统计模型中给定参数的可用知识,这通常是在数据收集之前确定的;利用观测数据中可用参数的信息确定似然函数;利用贝叶斯定理结合先验分布和似然函数,得到后验分布。后验分布用观测数据来平衡先验知识,从而反映更新的知识,可用于执行推断。在对该联合概率分布取平均时,贝叶斯推断是最优的,对这些定量的推断基于观测数据的条件分布。图 1:贝叶斯研究阶段。a. 标准研究流程;b. 利用贝叶斯统计的研究工作流程。(注:图中后验的表示 p(y|θ) 应为 p(θ|y))贝叶斯统计的基础最初出现在 Reverend Thomas Bayes 的文章中,后来由贝叶斯的朋友 Richard Price 在 1763 年发表了这篇文章,主要关于逆概率,即如何仅基于过去的事件确定未来事件发生的概率。1825 年,Pierre Simon Laplace 重新发现了贝叶斯公式,也就是今天我们所说的贝叶斯定理。逆概率与贝叶斯定理在数学领域中长期存在,但直到最近 50 年,这些工具才在应用统计学领域中崛起。贝叶斯定理。(来源:https://zh.wikipedia.org/zh-hans/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%AE%9A%E7%90%86)贝叶斯工作流程贝叶斯工作流程的前两个步骤如上图 1 所示。首先确定先验分布,先验的选择通常被视为研究者在实现贝叶斯模型时要做的一个更重要的选择,因为它对最终结果影响巨大。要实现合适的先验,需要用到先验预测检验流程。然后是确定似然函数,将似然函数结合先验得到后验分布(或后验)。先验和似然函数对于确定后验分布非常重要。这篇文章提供了多个示例来展示整个流程。第一个示例是关于博士延毕的。研究者询问 333 名博士生完成博士论文所需的时间,进而计算延迟时间,即计划时间与实际时间的差距(时间单位为月)。先验分布首先需要形式化先验分布。先验分布在贝叶斯统计中起到决定性作用。下图 2 展示了该示例中似然函数、先验分布和后验分布的关系:图 2:贝叶斯定理重要组件图示。先验预测检验 由于基于贝叶斯分析的推断受限于先验的「正确性」(correctness),因此我们需要审慎地检验指定模型是否能够生成实际数据。这部分通过先验预测检验过程来完成。先验预测检验有助于避免模型错误指定(参见下图 3),例如对比错误地用精度替代方差时的先验预测分布(图 3a)和基于正确超参数的分布(图 3b)。此外,这里还展示了观测数据和模拟数据的核密度估计,即对概率密度函数的估计结果(图 3c)。图 3:博士延毕示例中的先验预测检验。确定似然函数似然函数在贝叶斯推断和频率学派推断中都有应用。在两种推断范式下,似然函数的作用都是将观测数据的概率表示为未知参数。在一些案例中,指定似然函数是非常直接的,例如投掷一枚硬币的实验。似然函数的硬币实验示例。(来源:https://zh.wikipedia.org/wiki/%E4%BC%BC%E7%84%B6%E5%87%BD%E6%95%B0)后验分布指定先验和似然函数,并收集数据之后,就可以得到后验分布。本文解释了如何将模型与数据拟合来获取后验分布、如何选择变量,以及为什么需要后验预测检验。模型构建是一个迭代的过程,任何贝叶斯模型都可以看做是一个占位符,可以在面对新数据或对现有数据拟合不足时进行改进,也可以仅通过模型改进( model refinement)过程来实现。在贝叶斯推断中,模型拟合的一种不错方法是马尔可夫链蒙特卡罗方法(MCMC)。MCMC 能够利用计算机模拟间接获取对后验分布的推断,下表 1 概述了基于 MCMC 和不基于 MCMC 的采样技术。表 1:基于 MCMC 和不基于 MCMC 的采样技术概览。下图展示了在博士延毕示例中使用 MCMC 方法的后验估计情况:此外,实现贝叶斯分析有很多标准计算包,参见下表 2:表 2:常用的开源贝叶斯软件程序包。后验预测检验获取特定模型的后验分布后,我们可以用它模拟基于这一分布的新数据,这有助于评估模型是否提供有效预测,对未来事件进行推断。这些模拟可用于多种目的,比如通过对比观测数据和模拟数据的核密度估计值来检验模拟数据是否类似于观测数据。在评估模型是否与数据生成机制有不错的拟合时需要更正式的后验预测检验方法。任何参数依赖的统计或差异都可用于后验预测检验。这与先验预测检验的使用方式类似,但在对比观测数据和模拟数据时要更加严苛。为了阐释后验预测分布的用法,本文展示了另一个示例:了解一个维基百科网页的浏览量,以及与浏览量相关的时间关联因素。图 6:基于当前观测数据进行后验预测检验和对未来页面浏览量进行预测。应用贝叶斯推断在多个科学领域得到了广泛应用,本文重点介绍了其在「社会和行为科学」、「生态学」和「遗传学」领域的应用,此处不再展开介绍。可复现性与数据处理恰当的统计信息报告(包括数据和脚本共享)对于研究的验证和可复现是关键因素。优秀的研究实践鼓励可复现性,其工作流程参见下图 7:图 7:研究工作流程中的可复现性因素。这里展示了贝叶斯研究阶段(图 1)和 WAMBS 检查表在更广泛的研究透明度中的应用,并提供了更新版的 WAMBS 检查表。WAMBS 检查表更新版。对人工智能的影响出于支持大规模应用的需要,贝叶斯概念已经利用了以深度学习为中心的新技术的发展,包括深度学习框架(TensorFlow、Pytorch),创建表示能力更强、数据驱动的模型。除了提供一个强大的工具来挑选灵活、模块化的生成模型之外,DNN 已被用于开发新的近似推理方法,并为贝叶斯实践提出了一种新的范式,该范式将统计建模和计算融入了其核心之中。一个典型的例子就是变分自编码器,它已经成功地应用于多个领域,比如单细胞基因组学,为这些领域提供一个通用的建模框架。该框架带来了很多扩展,包括 latent factor disentanglement。底层的统计模型是一个简单的贝叶斯分层潜变量模型,将高维观测值映射到通过 DNN 定义的函数假定正态分布的低维潜变量。变分推断被用于近似潜变量的后验分布。然而,在标准变分推断中,我们为每个潜变量引入一个局部变分参数,在这种情况下,计算需求将随着数据样本的数量的变化呈线性增长。变分自编码器使用一种名为 amortization 的近似过程,用一个单一全局参数集(一种识别网络)取代对许多单个变分参数的推断。该识别网络用于参数化 DNN,输出每个数据点的局部变分参数。值得注意的是,当把模型和推断结合到一起并解释时,作为编解码算法的变分自编码器有一种优雅的解释:它由一个概率编码器和一个概率解码器组成。概率编码器是一个 DNN,可以将每个观测数据映射至潜在空间中的分布;而概率解码器是一个补充性的 DNN,将潜在空间中的每个点映射至观测空间中的分布。因此,模型指定和推断与变分自编码器产生关联,这表明贝叶斯建模和深度学习技术之间的边界越发模糊。其他近期的例子还包括使用 DNN 来构建概率模型,通过应用一系列逆变换来构建复杂的概率分布,以及针对可交换序列数据定义模型。DNN 的表达能力及其在模型构建和推断算法中的应用需要作出一些妥协,而这需要贝叶斯研究。将模型与推断融合的趋势使得这些技术更多地应用于大规模数据问题,但是基础的贝叶斯概念仍然被完全纳入该范式中。尽管将贝叶斯方法应用于神经网络学习已经出现数十年了,但要想理解先验如何转换为特定的函数特性,我们仍需要进一步研究涉及复杂网络结构的现代贝叶斯深度学习模型的先验指定。最近人工智能领域的争论提到了对贝叶斯方法及其替代方法的需求。例如,深度集成被证明在处理模型不确定性时可作为贝叶斯方法的替代方法。但是,近期研究还表明深度集成实际上可以理解为近似贝叶斯模型平均。类似地,dropout 是一种在 DNN 训练过程中广泛使用的正则化方法,它通过在网络训练过程中随机丢弃节点来提升模型鲁棒性。实验表明,dropout 能够提升泛化性、降低过拟合。针对 dropout 也出现了贝叶斯解释:概率模型的贝叶斯近似形式——深度高斯过程。尽管贝叶斯定理并未完全泛化至人工智能领域的所有近期进展中,但贝叶斯思维被深深地嵌入了大量近期创新研究,这无疑是一种成功。下一个十年将出现新的浪潮——贝叶斯智能的创新性发展。关于贝叶斯统计,你还可以阅读这篇文章这篇文章一经发布就引起了广泛关注,但也存在一些瑕疵。例如,知名科学科普博主 @光头怪博士 指出了图 1 中的后验表示错误,并推荐了另一篇他认为不错的文章。这篇论文对 MCMC 方法进行了基础介绍,对 MCMC 方法试图解决的问题、为什么使用,以及 MCMC 方法在理论和实践中的工作原理提供了强大的概念性理解。论文链接:https://arxiv.org/pdf/1909.12313.pdf原文链接:https://www.nature.com/articles/s43586-020-00001-2
  • [技术干货] 南大周志华团队开源深度森林软件包DF21:训练效率高、超参数少,普通设备就能跑
    周志华等人一直在推动的深度森林,是探索神经网络以外 AI 领域重要的研究方向之一,在表格数据建模任务中已初现锋芒。但是,由于基于决策树的集成模型在具体实现当中,经常会遇到内存不足,硬件效率不如神经网络等问题,是推动其大规模应用的主要瓶颈之一。经过 LAMDA 徐轶轩等人的不懈努力,2021 年 2 月 1 日,新的深度森林软件包 DF21 在 GitHub 与开源中国同时开源了。该软件包尝试解决了这一方向在上述实际应用过程中所遇到的关键问题,未来在各类在数据建模过程中,我们也可以便捷地使用深度森林了。据介绍,该项目目前主要由南大徐轶轩进行开发和维护,在正式发布之前它已经在 LAMDA 内部经过测试和使用。·         项目地址:http://www.lamda.nju.edu.cn/deep-forest/·         Gitee 地址:https://gitee.com/lamda-nju/deep-forest·         Github 地址:https://github.com/LAMDA-NJU/Deep-Forest针对这一开源项目,深度森林参与者之一(现任创新工场南京 AI 研究院执行院长,倍漾资本创始人)冯霁博士告诉机器之心,「深度森林在表格数据建模上,相对传统算法效果显著,但是之前开源的代码主要用于算法验证,以及辅助其他科研工作者进行深度森林算法相关的研究,代码本身对内存和服务器性能要求较高。徐同学开源的这一版更为简单易用,做了很好的封装,同时进行了高性能优化,大幅降低了内存依赖,对于科研和实际落地应用都是很好的工具。」此外,针对深度森林固有的内存消耗、只能用 CPU 训练等问题,徐轶轩告诉机器之心,「这个模型的全名是:DF21: A Practical Deep Forest for Tabular Datasets。内存消耗是 DF21 主要解决的问题——此前的 gcForest 在处理百万级别的表格型数据集上,占用的内存可能会达到上百 GB。但在新版本中,在千万级别的表格型数据集上进行训练,占用的内存约为原来的十分之一左右。」以下为此开源项目的详细介绍。DF21项目介绍本项目中的 DF21 是深度森林的 2021.2.1 实现版本。深度森林是基于决策树的深度学习模型。使用树模型学习技术(如随机森林、GBDT 等)的应用都可以尝试使用 DF21。它具有以下优势:·         拥有比其他基于决策树的集成学习方法更好的性能·         拥有更少的超参数,并且无需大量的调参·         训练效率高,并且能够处理大规模的数据集安装教程深度森林的最新稳定版本已经发布在 PyPi (https://pypi.org/) 上,可以通过以下命令安装:$ pip install deep-forest关于 Nightly-Build 版本以及如何对源代码进行编译请参考官网的安装说明。使用说明深度森林采用了与 Scikit-Learn (https://scikit-learn.org/stable/) 类似的 API 设计。例如,下面的代码片段展示了在安装完成后,如何将深度森林利用在一个简单的数字分类数据集上:from sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scorefrom deepforest import CascadeForestClassifierX, y = load_digits(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)model = CascadeForestClassifier(random_state=1)model.fit(X_train, y_train)y_pred = model.predict(X_test)acc = accuracy_score(y_test, y_pred) * 100print("\nTesting Accuracy: {:.3f} %".format(acc))>>> Testing Accuracy: 98.667 %实验研究者使用 5 种流行的基于决策树的集成学习方法作为 baseline,在所有 baseline 上都保持决策树的数量相同,将其余超参数设置为其默认值。分类精度研究者在所选取的数据集上进行了测试,每个数据集的 SOTA 结果如加粗部分所示,运行时间训练阶段和评估阶段的运行时间。深度森林,机器学习的新方向深度森林的特点在于很少的超参数和自适应复杂度,在不同规模的模型上,深度森林都可以做得很好。近十几年来,深层神经网络的发展在机器学习领域取得了显著进展。通过构建分层或「深层」结构,该模型能够在有监督或无监督的环境下从原始数据中学习良好的表征,这被认为是其成功的关键因素。成功的应用领域包括计算机视觉、语音识别、自然语言处理等。大部分被广泛应用的深度神经网络都使用具有随机梯度下降的反向传播作为训练过程中更新参数的主力。实际上,当模型由可微分量(例如,具有非线性激活函数的加权和)组成时,反向传播似乎仍是当前的最佳选择。其他一些方法如目标传播已经被作为训练神经网络的替代方法被提出,但其效果和普及还处于早期阶段。但一些研究表明,目标传播最多可达到和反向传播一样的效果,并且实际上常常需要额外的反向传播来进行微调。换句话说,老掉牙的反向传播仍然是训练神经网络等可微分学习系统的最好方法。另一方面,探索使用非可微模块来构建多层或深度模型的可能性的需求不仅仅是学界的兴趣所在,其在现实应用上也有很大的潜力。例如,基于树的集成(例如随机森林或梯度提升决策树(GBDT)仍然是多个领域中建模离散或表格数据的主要方式,为此在这类数据上使用树集成来获得分层分布式表征是个很有趣的研究方向。在这样的案例中,由于不能使用链式法则来传播误差,反向传播不再可行。这引发了两个基本的问题:首先,我们是否可以用非可微组件构建多层模型,从而中间层的输出可以被当作分布式表征?其次,如果是这样,如何在没有反向传播的帮助下,联合地训练这种模型?本文的目的就在于提供这种尝试。2017 年,周志华和冯霁等人提出了深度森林框架,这是首次尝试使用树集成来构建多层模型的工作。具体来说,通过引入细粒度的扫描和级联操作(cascading operation),该模型可以构建多层结构,该结构具备适应性模型复杂度,且能够在多种类型的任务上取得有竞争力的性能。研究者们提出的 gcForest 模型利用了集成学习多样性增强的各种策略,然而该方法仅适用于监督学习设置。深度森林的模型框架。同时,该论文仍然不清楚如何利用森林来构建多层模型,并明确地测试其表征学习能力。由于很多之前的研究者认为,多层分布式表征可能是深度神经网络成功的关键,为此我们应该对表征学习进行这样的探索。2018 年,周志华等人又在研究《Multi-Layered Gradient Boosting Decision Trees》中探索了多层的决策树。该工作力求利用两个方面的优势:树集成的出色性能和分层分布式表征的表达能力(主要在神经网络中进行探索)。具体来说,该研究提出了首个多层结构,每层使用梯度提升决策树作为构造块,明确强调其表征学习能力,训练过程可以通过目标传播的变体进行联合优化。在不断努力下,研究人员已经证明了深度森林模型可以在有监督和无监督的环境下进行训练,人们可以使用决策树来获得分层和分布式表征。关于深度森林系列研究才刚刚开始,对于不可微分学习模块的探索,有待更多的科研人员加入。相关资源在相关资源推荐中,作者推荐了深度森林的相关论文与报告:论文:Deep Forest链接:https://arxiv.org/pdf/1702.08835.pdf报告:周志华:An exploration to non-NN deep models based on non-differentiable modules链接:https://aistats.org/aistats2019/0-AISTATS2019-slides-zhi-hua_zhou.pdf在此,我们也附上机器之心先前介绍深度森林的相关内容,以供大家学习。·         9 大数据集、6 大度量指标完胜对手,周志华等提出用深度森林处理多标签学习·         深度森林第三弹:周志华组提出可做表征学习的多层梯度提升决策树·         南京大学提出使用树型集成算法构建自编码器模型:对比 DNN 有更高的准确性和高效性·         从 Boosting 到 Stacking,概览集成学习的方法与性能 
  • [技术干货] 模型压缩6倍,无需重训练:数学家团队提出量化新方法
    神经网络压缩是指在对神经网络性能影响不大的情况下,通过有关方法来减少网络的参数和存储空间,大体上可以分为近似、量化和剪枝三类方法。近日,来自俄罗斯人民友谊大学(RUDN)的数学家团队找到一种方法,可以将训练后的神经网络的大小减小六倍,而无需花费更多的资源来对其进行重新训练。该方法基于找到初始系统及其简化版本中神经连接权重之间的相关性。这项研究的结果发表在《Optical Memory and Neural Networks》期刊上。生命体中人工神经网络和神经元的结构是基于相同的原理。网络中的节点是相互连接的;其中一些接收信号,一些通过激活或抑制链中的下一个元素来发送信号。任何信号(例如图像或声音)的处理都需要很多网络元素及其之间的连接。但是,计算机模型只有有限的模型容量和存储空间。为了处理大量数据,这一领域的研究者必须发明各种方法来降低对模型能力的需求,包括所谓的量化。这有助于减少资源消耗,但需要对系统进行重新训练。RUDN 大学的一些数学家发现后者可以避免。RUDN 大学 Nikolskii 数学研究所助理教授 Iakov Karandashev 博士说:「几年前,我们在 Hopfield 网络中进行了有效且经济高效的权重量化。这是一个关联存储网络,并带有遵循 Hebb 规则形成的元素之间的对称连接。在其运行过程中,网络的活动被降低到某个平衡状态,并且在该状态达到时任务就被认为是已经解决了,该研究中获得的见解后来被应用于当今在图像识别中非常流行的前馈深度学习网络。通常这些网络需要在量化后进行重新训练,而我们找到了避免重新训练的方法。」简化人工神经网络背后的主要思想是所谓的权重量化,即减少每个权重的位数。量化提供信号的均值化:例如,如果将其应用于图像,则代表相同颜色不同阴影的所有像素将变得相同。从数学上讲,这意味着借助某些参数的相似神经连接应该具有相同的权重(或重要性),即表示成同一个数字。RUDN 大学的一个数学家团队进行了计算并创建了公式,该公式可以有效地在量化前后,在神经网络的权重之间建立相关性。基于此,科学家们开发了一种算法,利用该算法,经过训练的神经网络可以对图像进行分类。在该研究的实验中,数学家使用了包含 5 万张照片的数据集,这些照片包可以被分为 1000 组。训练之后,该网络会使用新方法进行量化,并且不进行重新训练。然后,该研究将实验结果与其他量化算法进行了比较。RUDN 大学的 Iakov Karandashev 补充说道:「量化之后,分类准确率仅降低了 1%,但是所需的存储容量减少了 6 倍。实验表明,由于初始权重与量化后权重之间的相关性很强,该网络不需要重新训练。这种方法有助于在完成时间敏感任务或在移动设备上运行任务时节省资源。」感兴趣的读者可以阅读期刊原文。参考原文:https://www.eurekalert.org/pub_releases/2021-02/ru-rum020521.php论文链接:https://link.springer.com/article/10.3103/S1060992X20030042https://arxiv.org/abs/2002.00623本文来源:https://www.jiqizhixin.com/articles/2021-02-19-5
  • [技术干货] 情感分析方法入门(A)
    作者:Frank转自:网络人工智能园地https://zhuanlan.zhihu.com/p/3005950161、情感分析任务介绍文本情感分析(Sentiment Analysis)是指利用自然语言处理和文本挖掘技术,对带有情感色彩的主观性文本进行分析、处理和抽取的过程[1]。目前,文本情感分析研究涵盖了包括自然语言处理、文本挖掘、信息检索、信息抽取、机器学习和本体学等多个领域,得到了许多学者以及研究机构的关注,近几年持续成为自然语言处理和文本挖掘领域研究的热点问题之一。从人的主观认知来讲,情感分析任务就是回答一个如下的问题“什么人?在什么时间?对什么东西?哪一个属性?表达了怎样的情感?”因此情感分析的一个形式化表达可以如下:(entity,aspect,opinion,holder,time)。比如以下文本“我觉得2.0T的XX汽车动力非常澎湃。”其中将其转换为形式化元组即为(XX汽车,动力,正面情感,我,/)。需要注意的是当前的大部分研究中一般都不考虑情感分析五要素中的观点持有者和时间。情感分析问题可以划分为许多个细分的领域,下面的思维导图[2]展示了情感分析任务的细分任务:其中词级别和句子级别的分析对象分别是一个词和整个句子的情感正负向,不区分句子中具体的目标,如实体或属性,相当于忽略了五要素中的实体和属性这两个要素。词级别情感分析,即情感词典构建,研究的是如何给词赋予情感信息。句子级/文档级情感分析研究的是如何给整个句子或文档打情感标签。而目标级情感分析是考虑了具体的目标,该目标可以是实体、某个实体的属性或实体加属性的组合。具体可分为三种:Target-grounded aspect based sentiment analysis (TG-ABSA), Target no aspect based sentiment analysis (TN-ABSA), Target aspect based sentiment analysis (T-ABSA). 其中TG-ABSA的分析对象是给定某一个实体的情况下该实体给定属性集合下的各个属性的情感分析;TN-ABSA的分析对象是文本中出现的实体的情感正负向;T-ABSA的分析对象是文本中出现的实体和属性组合。下表例举了不同目标的情感分析任务:任务粒度文本情感词级中奖正向句子/文档级这家外卖分量足,味道好。正向目标级(TG-ABSA)2.0T涡轮增压发动机动力强,高速120超车没压力;外观是我和老婆都比较喜欢的款;后排空间有点小;有点费油啊。动力:正向外观:正向空间:负向油耗:负向目标级(TN-ABSA)丰田汽车比别克汽车更耐用。丰田:正向别克:负向目标级(T-ABSA)三星手机外观漂亮,苹果手机系统流畅。三星外观:正向苹果系统:正向2、情感分析常用文本预处理方法2.1中文分词技术词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键。研究表明特征粒度为词粒度远远好于字粒度,其大部分分类算法不考虑词序信息,基于字粒度的损失了过多的n-gram信息。中文分词主要分为两类方法:基于词典的中文分词和基于统计的(HMM,CRF)中文分词。举个例子:“网商银行是蚂蚁金服微贷事业部的最重要产品”,其对应的分词结果为:网商银行/是/蚂蚁金服/微贷事业部/的/最重要/产品。当前我们讨论的分词算法可分为两大类:基于字典、词库匹配的分词方法;基于词频度统计(HMM,CRF)的分词方法。第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,核心是首先建立统一的词典表,当需要对一个句子进行分词时,首先将句子拆分成多个部分,将每一个部分与字典一一对应,如果该词语在词典中,分词成功,否则继续拆分匹配直到成功。如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。第二类基于统计的分词方法则基于字和词的统计信息,统计学认为分词是一个概率最大化问题,即拆分句子,基于语料库,统计相邻的字组成的词语出现的概率,相邻的词出现的次数多,就出现的概率大,按照概率值进行分词,所以一个完整的语料库很重要。当前中文分词技术已经非常成熟,下表[3]展示了当前业界主流的分词服务支持的功能:2.2去除停用词停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。甚至有一些工具是明确地避免使用停用词来支持短语搜索的。2.3 文本特征提取2.3.1 Bag of wordsBoW模型最初应用于文本处理领域,用来对文档进行分类和识别。其核心思想是建立一个词典库,该词典库包含训练语料库的所有词语,每个词语对应一个唯一识别的编号,利用one-hot文本表示。文档的词向量维度与单词向量的维度相同,每个位置的值是对应位置词语在文档中出现的次数,即词袋模型(BOW)BoW 模型因为其简单有效的优点而得到了广泛的应用。如下示例,给定两句简单的文档:文档 1:“我喜欢跳舞,小明也喜欢。”文档 2:“我也喜欢唱歌。”基于以上这两个文档,便可以构造一个由文档中的关键词组成的词典:词典={1:“我”,2:“喜欢”,3:“跳舞”,4:“小明”,5:“也”,6:“唱歌”}这个词典一共包含6个不同的词语,利用词典的索引号,上面两个文档每一个都可以用一个6维向量表示(用整数数字0~n(n为正整数)表示某个单词在文档中出现的次数。这样,根据各个文档中关键词出现的次数,便可以将上述两个文档分别表示成向量的形式:文档 1:[1, 2, 1, 1, 1, 0]文档 2:[1, 1, 0, 0, 1, 1]通过上面的例子可以看出,虽然BOW模型理解和实行起来简单,但是他有以下缺点问题:(1)容易引起维度灾难问题,语料库太大,字典的大小为每个词的维度,高维度导致计算困难,每个文档包含的词语数少于词典的总词语数,导致文档稀疏。(2)仅仅考虑词语出现的次数,没有考虑句子词语之间的顺序信息,即语义信息未考虑。2.3.2 TF-IDFTF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。TF-IDF的主要思想是:如果某个词或短语在一篇文章(句子)中出现的频率TF高,并且在其他文章(句子)中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。其中其计算方法如下:如下示例可以清楚说明TF-IDF的计算方法:假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率 (IDF) 的方法是文件集里包含的文件总数除以测定有多少份文件出现过“母牛”一词。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是 lg(10,000,000 / 1,000+1)=4。最后的TF-IDF的分数为0.03 * 4=0.12。2.3.3 预训练模型当我们用机器学习或者深度学习方法来处理NLP任务时,为了使自然语言成为计算机可以读懂的语言,首先我们需要对文本进行编码。在编码时,我们期望句子之间保持词语间的相似行,词的向量表示是进行机器学习和深度学习处理NLP任务的基础。由此也催生了各种各样的预训练模型发展,同时预训练加模型微调(Pre-training and fine tuning)的方法也是当前NLP领域各种任务state-of-art的方法的基本流程。预训练的方法最初是在图像领域提出的,达到了良好的效果,后来被应用到自然语言处理。预训练一般分为两步,首先用某个较大的数据集训练好模型(这种模型往往比较大,训练需要大量的内存资源),使模型训练到一个良好的状态,然后下一步根据不同的任务,改造预训练模型,用这个任务的数据集在预训练模型上进行微调。这种做法的好处是训练代价很小,预训练的模型参数可以让新的模型达到更快的收敛速度,并且能够有效地提高模型性能,尤其是对一些训练数据比较稀缺的任务,在神经网络参数十分庞大的情况下,仅仅依靠任务自身的训练数据可能无法训练充分,预训练方法可以认为是让模型基于一个更好的初始状态进行学习,从而能够达到更好的性能。预训练模型的发展也反映了深度学习在NLP领域的进步。NLP领域的预训练模型大致可以分为以下两类:基于词嵌入的预训练方法2003年,Bengio等人提出了神经语言模型(Neural Network Language Model)[4],神经语言模型在训练过程中,不仅学习到预测下一个词的概率分布,同时也得到了一个副产品:词嵌入表示。相比随机初始化的词嵌入,模型训练完成后的词嵌入已经包含了词汇之间的信息。2013年,Mikolov等人提出了word2vec工具,其中包含了CBOW(Continue Bag of Words)模型和Skip-gram模型[5-6],该工具仅仅利用海量的单语数据,通过无监督的方法训练得到词嵌入,在很长一段时间内word2vec在各种任务中都被广泛使用。基于语言模型的预训练方法词嵌入本身具有局限性,最主要的缺点是无法解决一词多义问题,即不同的词在不同的上下文中会有不同的意思,但是词嵌入对模型中的每个词都分配了一个固定的表示。针对上述问题,Peters等人提出了ELMo(Embedding from Language Model)[7],即使用语言模型来获取深层的上下文表示。ELMo的具体做法是,基于每个词所在的上下文,利用双向LSTM的语言模型来获取这个词的表示。ELMo的方法能够提取丰富的特征给下游任务使用,但是ELMo仅仅进行特征提取而没有预训练整个网络,远远没有发挥预训练的潜力。针对上述两个问题,Radford等人提出了 GPT Generative Pre-Training)[8],即生成式的预训练。GPT将LSTM换成了Transformer,获得了更高的成绩,但是由于使用的是单向模型,只能通过前面词预测后面的词,可能会遗漏信息。Devlin等人提出了BERT(Bidirectional Encoder Representations from Transformers)[9],即基于Transformer的双向编码器表示。BERT和GPT的结构和方法十分相似,最主要的不同之处在于GPT模型使用的是单向语言模型,可以认为是基于Transformer的解码器表示,而BERT使用的基于Transformer的编码器能够对来自过去和未来的信息进行建模,能够提取更丰富的信息。三个预训练模型的图如下所示:BERT提出后大火,也许是因为BERT的效果太好。目前绝大多数的预训练模型都是在BERT上改造而来。清华大学的王晓智和张正彦同学给出了目前的预训练模型关系图,这里引用一下,如下图所示:总结本篇博文主要介绍了情感分析任务的概述以及进行情感分析任务之前我们需要进行的准备工作,其中着重介绍了NLP领域最重要的预训练模型的主要里程碑。下一篇博文将着重介绍进行情感分析任务的具体方法,包括传统基于统计的方法和深度学习方法。参考文献PANG B,LEE L. Opinion mining and sentiment analysis[J].Foundations and Trends in InformationRetrieval,2008,2 (1 -2) :130 - 135.https://www.infoq.cn/article/XGoSsRfZRSupblTGGJCMhttps://blog.csdn.net/fendouaini/article/details/82027310Bengio Y, Ducharme R, Vincent P, et al. A neural probabilistic language model.Mikolov T, Chen K, Corrado G S, et al. Efficient Estimation of Word Representations in Vector Space.Mikolov T, Sutskever I, Chen K, et al. Distributed Representations of Words and Phrases and their Compositionality.Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep Contextualized Word Representations.Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving Language Understanding by Generative Pre-Training.Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
  • [技术干货] NeurIPS 2020 | 百里挑一:如何加速超网训练的收敛和搜索速度
    作者:彭厚文、傅建龙编者按:随着深度学习的发展,神经网络结构的设计逐渐由手工设计转变为算法自动设计。在近期的神经网络设计(Neural Architecture Search, NAS)研究中,现有的方法存在一定缺陷,结果往往不能真正体现出众多子网络正确的排序关系。为解决这一问题,微软亚洲研究院的研究员们提出了基于优先路径蒸馏的网络结构搜索方法。采用这一方式选出的网络在 ImageNet 上的分类准确率达到了80.0%, 超越了现有的 EfficientNet-B0/B1 和 MobileNetV3。该论文已被 NeurIPS 2020 接收。从数亿数量级的神经网络结构中搜索出高性能的网络,是一个充满挑战但又令人向往的研究任务。正如深度学习变革了传统的手工图像特征设计,神经网络结构的设计也正在逐渐由手工设计转变为算法自动设计。面对数以亿级的网络结构,将每一个可能的结构都训练收敛,并选择其中最好的结构是不现实的。在近期的神经网络设计研究中,一个被广泛使用的解决方法是先训练一个包含了所有可能结构的超网(hypernetwork),当测试某一个网络结构的性能时,直接继承超网训练后的参数。这样的做法省去了重新训练的时间,大大加快了网络搜索的速度。然而,虽然预训练超网的方法能够大幅度加速网络搜索,但因为很难对所有的路径(子模型)进行充分训练,所以其给出的结果往往不能真正体现出众多子网络正确的排序关系。为了解决这一问题,微软亚洲研究院的研究员们提出维护一个优先路径组(prioritized path board)。也就是说,在训练超网的某一条路径时,使用元网络(meta-network)从组中选出一条性能较好的子网对其进行网络蒸馏(distillation),从而提升超网的收敛程度与性能。采用这种方式选出的网络在 ImageNet 上的分类准确率达到了80.0%, 超越了现有的 EfficientNet-B0/B1 和 MobileNetV3。该论文已被 NeurIPS 2020 接收。                                                                                            基于优先路径的网络蒸馏现有的超网训练方式多种多样,研究员们采用了简单有效的均匀采样单条路径(single-path uniform sampling strategy)作为基础,即每一次随机从超网中采一条路径进行训练。与之不同的是,在训练单条路径时,会从优先路径组中选出一条路径对其进行蒸馏,从而提升训练效果。图1:方法示意图,左侧为常规的蒸馏方法,即采用一个预训练的模型进行蒸馏,右侧为提出的基于优先路径的蒸馏方法。优先路径组优先路径组是由少量性能优异的路径构成的。超网训练会对优先路径组进行动态的维护,如果采样出来的网络在效果和复杂度上均优于有限路径组中的网络,那么就会将其替换到优先路径组中。不仅如此,维护这样一个优先路径组还使得超网训练结束后可以直接从中选取最优路径,从而节省以往方法在进行网络结构搜索时运用强化学习方法或进化算法(Evolution Algorithm)的时间。在选取优先路径时,可根据公式知识蒸馏知识蒸馏是一种被广泛应用的模型压缩方法,通过让小型网络来模仿预训练大型网络的最后一层输出特征,可以使小型网络达到接近于大型网络的表现。研究员们通过优先路径来进行蒸馏,从而无需提前训练一个大型神经网络。对超网进行更新的具体公式如下:对基于优先路径蒸馏的网络结构搜索算法的测试是在 ImageNet 上进行的。实验结果如图2和表1所示。可以看出,在各种模型大小下,该方法的搜索结果均超越了此前的 EfficientNet-B0/B1 和 MobileNetV3,实现了优越的性能。不仅如此,该方法搜索所需要的时长也是各种网络结构搜索算法中最短的。基于NNI工具接口的源码实现NNI (Neural Network Intelligence) 是当下最热门的开源自动机器学习(AutoML)工具之一,由微软亚洲研究院与微软(亚洲)互联网工程院领衔开发。NNI 对机器学习生命周期的各个环节都做了较为全面的支持,包括特征工程、神经网络架构搜索、超参调优和模型压缩。目前,微软亚洲研究院的研究员们已将此次提出的基于优先路径蒸馏的网络结构搜索算法通过 NNI 平台的 One-Shot 算法接口进行了实现,提供了完整的搜索、重训练和测试代码以及模型。由于 NNI 提供了统一的接口表达网络搜索空间,所以有对比此算法与其他神经网络架构搜索结果需求的用户可选择这份代码实现做参考。代码以及更多技术细节,请参见:https://github.com/microsoft/nni。结语本篇 NeurIPS 2020 论文针对网络结构搜索中超网训练不充分的问题,提出了使用优先路径进行蒸馏的方法,加快了超网训练的收敛和搜索速度,且搜索得到的网络性能超越了大多数现有算法。尽管如此,该方法目前仍处于初步的探索阶段,未来可能还会将模型延迟考虑到优先路径选择中,并对优先路径蒸馏的理论依据进行进一步的探索。更多技术细节,详见论文:Cream of the Crop: Distilling Prioritized Paths For One-Shot Neural Architecture Search论文链接:https://arxiv.org/abs/2010.15821代码链接:https://github.com/microsoft/CreamNNI实现链接:https://github.com/microsoft/nni参考文献[1] Hieu Pham, Melody Guan, Barret Zoph, Quoc Le, and Jeff Dean. Efficient neural architecture search via parameters sharing. In ICML, 2018[2] Mingxing Tan and Quoc V. Le. Efficientnet: Rethinking model scaling for convolutional neural networks. In ICML, 2019[3] Andrew Howard, Mark Sandler, Grace Chu, Liang-Chieh Chen, Bo Chen, Mingxing Tan, Weijun Wang, Yukun Zhu, Ruoming Pang, Vijay Vasudevan, et al. Searching for mobilenetv3. In ICCV, 2019.[4] Zichao Guo, Xiangyu Zhang, Haoyuan Mu, Wen Heng, Zechun Liu, Yichen Wei, and Jian Sun. Single path one-shot neural architecture search with uniform sampling. In ECCV, 2020.[5] Han Cai, Chuang Gan, Tianzhe Wang, Zhekai Zhang, and Song Han. Once for all: Train one network and specialize it for efficient deployment. In ICLR, 2020.[6] Changlin Li, Jiefeng Peng, Liuchun Yuan, Guangrun Wang, Xiaodan Liang, Liang Lin, and Xiaojun Chang. Blockwisely supervised neural architecture search with knowledge distillation. In CVPR, 2020[7] Jiahui Yu, Pengchong Jin, Hanxiao Liu, GabrielBender, Pieter-Jan Kindermans, Mingxing Tan, Thomas Huang, Xiaodan Song,Ruoming Pang, and Quoc Le. Bignas: Scaling up neural architecture search with big single-stage models. In ECCV, 2020.[8] Hieu Pham, Qizhe Xie, Zihang Dai, and Quoc V Le. Meta pseudo labels. arXiv:2003.10580, 2020[9] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable architecture search. In ICLR, 2019转自:微软研究院AI头条:https://www.jiqizhixin.com/columns/Microsoft_AI
  • [技术干货] 提高方面级情感分析的性能:一种结合词汇图和句法图的方法
    本文介绍一篇发表于 EMNLP 2020 的论文《Convolution over Hierarchical Syntactic and Lexical Graphs for Aspect Level Sentiment Analysis》,简称 BiGCN。该工作提出了一种新颖的体系结构,其目标在于更好地利用语料库级别的单词共现信息以及不同类型的句法依存关系。为此,该文首先创造性地提出了句法和词汇的概念层次,并以此为基础建立了层次句法图和层次词汇图,随后设计了双层交互式图卷积网络以充分融合层次句法和词汇图。论文在五个基准数据集上进行了大量实验,结果表明 BiGCN 方法达到了最佳性能。论文标题:Convolution over Hierarchical Syntactic and Lexical Graphs for Aspect Level Sentiment Analysis论文链接:https://www.aclweb.org/anthology/2020.emnlp-main.286.pdf代码链接:https://github.com/NLPWM-WHU/BiGCN一、背景简介ASC (Aspect-based Sentiment Classification):目的在于确定针对特定方面的情感极性。例如:great food but the service was dreadful.给定两个方面词的术语“food”和“service”,目标是推断方面的情感极性:对 food 是 positive,对 service 是 negative。1.1 Existing StudiesASC 的最新进展集中在开发各种类型的深度学习模型上。我们简要回顾了不考虑语法的神经模型,然后转到基于语法的模型。1.1.1 Neural models without considering syntax不考虑语法模型的神经模型主要可以分为几种类型:基于 LSTM,基于 CNN,基于 memory 和其他混合方法。缺点:这些模型将句子表示为一个单词序列,而忽略了单词之间的句法关系,因此,此类方法很难找到远离 aspect 的意见单词。1.1.2 Neural models considering syntax句法信息可以使依赖性信息保留在冗长的句子中,并有助于缩短方面词和观点词之间的距离。最近的一些研究(Zhang 等人,2019;Huang 和 Carley,2019; Sun 等人,2019)利用基于图的模型来集成句子的句法结构,并且表现出更好的性能。缺点:尽管上述方法取得了一定的效果,但其忽略语料库级别的单词共现信息。对语法依赖的不同类型也没有加以区分。二、问题与动机2.1 Task Definition给定由n个单词和从第(a + 1)个位置开始、长度为m的方面组成的句子2.2 Motivations2.1.1 频繁出现的词对代表着语言学中的固定搭配。例如,在句子“food was okay, nothing special”中,单词“nothing special”对在 SemEval 训练集中出现了 5 次,表示负极性。如果没有这样的全局信息来抵消“okay”的正面影响,基于语法的方法将对“food”做出错误的预测。2.1.2 每种类型的句法依存关系都表示一种特定的关系。例如,在“i like hamburgers”中,“i like”是 nsubj(名词主语)关系,而“like hamburgers”是 dobj(直接宾语)关系。如果 nsubj 关系和 dobjs 关系得到同等对待,我们将无法区分动作“like”的主语和宾语。2.3 Our solution为了解决上述限制,我们提出了一种新颖的网络模型,用于有效地融合词对共现信息和句法依存信息。我们建立了用于训练语料库的全局词汇图,和每个句子的局部层次句法图和局部层次词汇图。(1)全局词汇图是我们首次提出来用于 ASC 任务:对语料库级别的单词共现信息进行编码,其中节点是单词,边表示训练语料库中两个单词节点之间的频率。(2)我们还在局部句法图和词汇图上建立概念层次结构,以区分不同类型的依存关系或词对共现关系图1显示了一个带有其依赖关系树的示例句子,其它现有模型句法图,以及我们改进的局部层次句法图和独创的局部层次词汇图。对比图 1(b)和(c)可以看到:现有句法图的每条边仅表示两个节点之间存在关系,而无法区分各种类型的依赖关系,而我们的层次句法图中每条边都附加有概念层次类型的标签,句法概念层次包含名词、动词、形容词、副词、其它;图 1(d)是我们独创的局部层次词汇图,由于单词频度服从 log-normal 分布,我们将词对按其共现频三、BiGCN - Architecture我们提出的 BiGCN 模型架构包含三个模块,如图 2 所示:1)首先将全局词汇图和单词序列作为输入来获得初始句子表示。2)随后引入 HiarAgg 模块,让局部层次词汇图和层次句法图交互以精化句子表示。3)最后通过 mask 和门控机制获得面向方面的表示,以更好地预测句子中特定方面的情感极性。3.1 Getting Initial Sentence Representation我们提出了两种类型的文本表示形式改进句子的 embedding。一种是基于我们的全局词汇图的 GCN embedding;另一个是基于双向 LSTM 的 Bi-LSTM embedding。首先,我们希望将语料库特有的词汇信息编码进句子的表示形式中。我们对全局词汇图执行 GCN,获得整个训练集的词汇嵌入矩阵。然后,通过该矩阵得到序列 S 的 GCN embedding,在图 2(a)中用 x 表示。其次,更接近方面词的词汇可能会对判断其情感做出更大的贡献。我们计算从每个上下文词到相应方面词的绝对距离,并获得 S 的位置序列。S 中的每个单词都含有预训练单词 embedding 和位置 embedding。具有上述表示形式的句子 S 发送到 Bi-LSTM 层以获得 Bi-LSTM embedding,在图 2(a)中用 y 表示。3.2 Refining Sentence Representation以上述 GCN embedding 和 Bi-LSTM embedding 作为初始句子表示,我们进一步利用局部层次词汇图和层次句法图以获得句子 S 的更好表示。基本思想是让这两个图在经过精心设计的 HierAgg 模块中深入交互。HierAgg 是一个多层结构,其中每层包括一个交叉网络以融合 GCN 和 Bi-LSTM embedding,以及一个双层 GCN 以在层次句法和局部层次词汇图上进行卷积。多层结构确保了在不同级别执行的不同类型信息的协作。本节详细介绍了 HierAgg 中的一层,如下图所示。(1)Cross Network为了深入融合 GCN embedding(x)和 Bi-LSTM embedding(y),我们采用了简单但有效的交叉网络结构。在跨网络的每一层中,我们使用以下公式更新融合的嵌入。每层中的融合嵌入将用作 Bi-level GCN 中两个图的输入节点表示。(2)Bi-level GCN由于我们的局部句法图和词汇图包含概念层次结构,因此普通 GCN 无法在带有标记边的图上卷积。为了解决该问题,我们提出了一个用于合并不同关系类型的双层 GCN。给定一个带有两个图的句子,我们将使用两个聚合操作执行双层卷积。第一次聚合(低级):将具有相同关系类型的节点聚合到虚拟节点,然后在 GCN  中使用相同的归一化隐藏特征总和作为聚合函数来获取虚拟节点嵌入 。第二次聚合(高级):将所有虚拟节点及其特定关系聚合在一起。使用平均聚合函数针对不同关系类型(虚拟节点)更新目标词 t 的表示形式:(3)Finally aggregated embedding我们分别在局部层次词汇图和层次句法图上进行第一次和第二次聚合以获得精炼的句子表示形式,将其用作下一层的输入。在 Hier-Agg 模块的最后一层中,我们将 x 和 y 组合在一起以形成聚集嵌入。3.3 Generating Aspect-oriented Representation为了更好地预测一个方面的情感极性,我们使用门控机制以过滤面向特定 aspect 的情感信息流:接下来在门控嵌入 h 中对非方面词进行 mask,并使方面词保持不变,并且得到 zero-mask 的嵌入:最后,我们检索与方面单词在语义上相关的重要特征,并使用自注意力机制为每个上下文单词设置基于检索的注意力权重,将其加权求和之后即可获得面向方面的句子表示 z。3.4 Model Training我们将上述 z 输入一个全连接层和一个 softmax 层,得到样本句 s 的预测值:模型的训练目标为最小化所有训练样本的交叉熵损失,我们采用标准梯度下降算法训练模型:四、实验与分析4.1 Datasets我们在五个基准数据集上评估了我们提出的模型。一种是 Twitter 数据集。它由推特帖子组成。其他四个数据集(Lap14,Rest14,Rest15,Rest16)全部来自 SemEval 任务,其中包含有关笔记本电脑和餐厅的评论,其统计信息如下表 1 所示。4.2 Result我们与八种最经典或性能最好的方法进行了比较,其中前四种方法是具有典型神经结构(如注意力,LSTM,CNN,memory 和 RNN)的模型,中间的 AF-LSTM 则利用单词共现信息(但是没有表示成图结构),其余三种方法是基于图和语法关系集成的。我们采用 Accuracy 和 Macro-F1 作为评估指标,其结果是对随机初始化的三次运行结果求平均值。所有方法的比较结果显示在表 2 中。由表 2 可知,我们提出的 BiGCN 模型在所有数据集上的 Macro-F1 得分均达到了最佳结果。4.3 Ablation Study为了检查 BiGCN 模型中每个组件的影响,我们进行了一项分离实验,并将结果显示在表 3 中。我们首先研究局部层次词汇(M1)和句法图(M2)的影响。然后,我们进一步从 M1 和 M2 中删除关系类型来显示概念层次结构的影响,从而得到基本的词汇(M3)和句法图(M4)。表 3 的结果清楚地证明了我们提出的概念层次和词汇图的有效性。4.4 Case Study为了更好地了解 BiGCN 的工作原理,我们通过三个测试示例对几种方法进行了对比,如下图所示。BiGCN 对三个句子都能作出正确的判断,其它方法则或对或错。其中:由于缺少语法和词汇共现信息,RAM 对所有三个句子都做出错误的判断。由于相同的原因,AF-LSTM 在第一和第二句话中也会做出错误的预测。对于第三个句子,集成了语法的方法 TD-GAT,ASGCN 和 CDT 过于依赖解析的结果,将“great” 和 “pad”, “needed” 和 “feature”联系到一起,从而做出了错误的判断。相反地,AF-LSTM 和我们的 BiGCN 通过利用单词共现信息,能够正确地预测 cooling pad 的情感极性。五、结论本文为方面级情感分析任务提出了一种结合层次句法和词汇图的新型网络结构。其主要贡献在于首次使用词汇图来捕获全局单词共现信息,其次,在局部词汇和句法图上建立概念层次,用于区分不同类型的依存关系或词对共现关系的独特贡献;最后设计了一个深度融合模块,使得局部层次词汇图和句法图能够更好地协同工作。大量实验表明本文方法达到了 SOTA 的性能。转自:PaperWeeklyhttps://www.jiqizhixin.com/columns/paperweekly
  • [技术干货] 中文预训练语言模型回顾
    论文名称:Revisiting Pre-trained Models for Chinese Natural Language Processing论文作者:崔一鸣,车万翔,刘挺,秦兵,王士进,胡国平 原创作者:崔一鸣 论文链接:https://www.aclweb.org/anthology/2020.findings-emnlp.58 转载须标注出处:哈工大SCIR1. 简介以BERT为代表的预训练语言模型在众多自然语言处理任务中取得了显著性能提升,并且随后涌现出一批效果更优的预训练语言模型。在本文中,我们将经典的预训练语言模型应用在中文场景并使用相同的实验设置去验证它们在中文领域的性能表现。同时,我们创新地提出了一种基于文本纠错的预训练语言模型MacBERT,应用纠错型掩码语言模型(MLM as correction,Mac)解决了预训练模型中“预训练-精调”不一致的问题。为了验证实验效果,我们选择了8个经典的中文自然语言处理任务,包括阅读理解、单句文本分类、句对文本分类等。大量实验结果表明所提出的MacBERT能够在大多数任务上取得显著性能提升。我们已将所有本文涉及到的中文预训练资源进行开源,希望能够进一步促进中文信息处理的研究与发展。2. 构建中文预训练系列模型首先,我们提出了一整套的中文预训练系列模型,以构建较为完整的基线系统并为后续工作提供相对标准的参照数据。我们主要训练了以下几种预训练语言模型:BERT-wwm:我们在谷歌原版中文BERT-base[1]的基础上,将全词掩码技术(Whole Word Masking,wwm)应用在中文环境,即在掩码语言模型(Masked Language Model,MLM)中使用词粒度进行掩码。我们使用了LTP[2]作为中文分词工具。需要注意的是,虽然掩码粒度为词,但模型的输入仍然以字为粒度(使用WordPiece分词)进行切分,即与原版BERT并无差别。XLNet:Yang等人提出基于Transfromer-XL构建了XLNet模型[3],解决了BERT的“预训练-精调”不一致的问题,提出了Permutation Language Model。与BERT不同的是,XLNet采用了sentencepiece进行分词,因此分词粒度更大。RoBERTa-wwm:RoBERTa模型[4]由Liu等人提出,进一步挖掘了BERT的潜力。我们训练的RoBERTa-wwm与BERT-wwm类似,但从中删除了Next Sentence Prediction(NSP)预训练任务,并使用了全词掩码技术。需要注意的是,与英文RoBERTa不同,这里我们同样使用了WordPiece分词。通过后续实验发现WordPiece相比sentencepiece在中文预训练模型中更有效。ELECTRA:Clark等人提出一套全新的生成器-判别器架构的预训练模型ELECTRA[5],其中生成器是一个小型的MLM,用于替换输入文本。而判别器则是判断输入文本是否经过替换。由于判别器只需进行二分类,相比传统MLM来说效率更高。在下游任务精调中,我们只使用判别器。3. MacBERT为了解决预训练模型中的“预训练-精调”不一致的问题,我们巧妙地修改了掩码语言模型,并提出基于文本纠错的掩码语言模型(MLM as correction,Mac)。该方法不需要对现有结构进行任何改动,只需针对掩码方式进行改变,因此极大程度地保留了BERT的原始特性,并可以无缝迁移到任何使用BERT的下游任务精调代码中。 具体地,针对掩码语言模型任务,我们进行了如下修改:我们使用全词掩码技术以及N-gram掩码技术来选择待掩码的token,其中unigram至4-gram的概率分别为40%、30%、20%、10%。为了解决[MASK]标记在下游任务中不会出现的问题,我们提出使用相似词来替换[MASK]标记。我们使用Synonyms库[6]来获取待掩码单词的相似词。在N-gram掩码时,我们针对N-gram中的每个词均进行相似词替换。在少数情况下,当相似词不存在时,我们将使用词表中的随机词进行替换。与原版BERT类似,我们对输入序列总长度15%的token进行掩码,其中80%的情况下会替换为相似词,10%的情况下会替换为随机词,剩余10%则不进行任何替换(负样本)。下表给出了几种不同的掩码方式的对比示例。表1 不同掩码方式的对比除此之外,由于ALBERT模型[7]在众多自然语言处理任务上获得显著性能提升,我们采用了其中的Sentence Order Prediction(SOP)预训练任务来替换BERT中的Next Sentence Prediction(NSP)任务。在SOP任务中,正样本由相邻的两个片段构成,而负样本则是将两个片段的顺序进行倒置。4. 实验4.1. 预训练模型设置接下来简要介绍预训练模型的训练设置,详细内容请参考论文的4.1节。预训练数据:我们采用了中文维基百科数据(同时保留简体和繁体中文)以及额外爬取的中文数据(包括百科、问答、新闻等),总词数达到了5.4B。在模型中我们以ext标记采用扩展数据的BERT或RoBERTa模型。基本参数:我们对所有模型(除XLNet)采用了统一预训练词表,与原版中文BERT-base相同,包含21128个token。序列最大长度设置为512。训练设备:根据模型规模大小,我们采用了单个TPU v3或者TPU v3-32进行训练。4.2. 下游精调数据集我们选用了以下8个中文自然语言处理数据集:阅读理解:CMRC 2018[8],DRCD[9],CJRC[10] 单句文本分类:ChnSentiCorp[11],THUCNews[12] 句对文本分类:XNLI[13],LCQMC[14],BQ Corpus[15]为了保证结果的稳定性,对于每一组实验结果,我们均运行10次,并汇报其平均值和最大值。相关实验超参设置请参考论文的表2。4.3. 实验结果本文涉及的预训练模型的部分实验结果如下表所示(详细结果请参考论文4.3节)。可以看到MacBERT在多数任务上取得了显著性能提升,尤其在机器阅读理解的各项任务中的提升更为明显。表2 CMRC 2018中文阅读理解结果4.4. 消融实验为了进一步了解性能提升的来源,我们对MacBERT-large进行了消融实验。可以看到,整个模型中最重要的部分是纠错型掩码语言模型(Mac)和N-gram掩码语言模型(NM),而相对来说模型使用NSP还是SOP预训练任务并没有对模型性能造成很大影响,因此后续工作应进一步将重点放在掩码语言模型及其变种模型的设计上。表4 MacBERT模型上的消融实验结果5. 讨论前面提到MLM任务是这类预训练语言模型最重要的组成部分。MLM类任务包括两个方面:1)如何选择需要掩码的token;2)待掩码的token替换成什么。在前面的章节中,我们已经展示了不同的选择掩码token的方法,例如全词掩码、N-gram掩码等。现在我们将探索第二个方面,即探索“待掩码的token替换成什么”。我们在CMRC 2018和DRCD数据集上进行了验证。在15%的整体掩码比例下,其中的10%将保持不变(负样例),而剩余的90%将采取如下4类方案进行对比。MacBERT:80%的词替换成相似词,10%替换为随机词;随机替换:90%的词替换为随机词;部分MASK:(BERT原始MLM)80%替换为[MASK],10%替换为随机词;全部MASK:90%的词替换为[MASK]。实验结果如下图所示。可以看到依赖于替换成[MASK]的实验设置(例如部分MASK和全部MASK)下效果相对较差,说明“预训练-精调”不一致的确会为下游任务带来一定的性能下降。而简单地将所有待掩码的词替换为随机词后,其性能显著优于依赖[MASK]的MLM方法。最后,我们使用相似词进行进一步优化后,其性能还会得到显著提升,说明MacBERT设计是有效的。6. 结论在本文中,我们回顾了经典预训练语言模型在中文场景下的性能表现,以验证这些模型在非英文语种上的通用性。同时我们提出了一种基于文本纠错的预训练语言模型MacBERT,解决了预训练模型中的“预训练-精调”不一致的问题。大量实验结果表明所提出的MacBERT能够在多数任务上带来显著性能提升。我们已将所有与本文相关的中文预训练语言模型开源,并希望能够进一步促进中文信息处理的研究与发展。基于我们在文章最后的分析讨论,未来我们将探索一种有效调整掩码比例的方法以取代手工设置的方案,从而进一步提升预训练语言模型的性能表现。7. 参考文献[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL 2019. [2] Wanxiang Che, Zhenghua Li, and Ting Liu. LTP: A chinese language technology platform. In COLING 2010. [3] Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, and Quoc V Le. Xlnet: Generalized autoregressive pretraining for language understanding. arXiv preprint arXiv:1906.08237. [4] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692. [5] Kevin Clark, Minh-Thang Luong, Quoc V. Le, and Christopher D. Manning. ELECTRA: Pretraining text encoders as discriminators rather than generators. In ICLR. [6] Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, and Radu Soricut. Albert: A lite bert for self-supervised learning of language representations. arXiv preprint arXiv:1909.11942. [7] Hailiang Wang and Yingxi Hu. 2017. Synonyms. https://github.com/huyingxi/Synonyms [8] Yiming Cui, Ting Liu, Wanxiang Che, Li Xiao, Zhipeng Chen, Wentao Ma, Shijin Wang, and Guoping Hu. A Span-Extraction Dataset for Chinese Machine Reading Comprehension. In EMNLP 2019. [8] Chih Chieh Shao, Trois Liu, Yuting Lai, Yiying Tseng, and Sam Tsai. Drcd: a chinese machine reading comprehension dataset. arXiv preprint arXiv:1806.00920. [9] Xingyi Duan, Baoxin Wang, Ziyue Wang, Wentao Ma, Yiming Cui, Dayong Wu, Shijin Wang, Ting Liu, Tianxiang Huo, Zhen Hu. Cjrc: A reliable human-annotated benchmark dataset for chinese judicial reading comprehension. In CCL 2019. [10] Songbo Tan and Jin Zhang. 2008. An empirical study of sentiment analysis for chinese documents. Expert Systems with applications, 34(4):2622–2629. [11] Jingyang Li and Maosong Sun. Scalable term selection for text categorization. In EMNLP 2007. [12] Alexis Conneau, Ruty Rinott, Guillaume Lample, Adina Williams, Samuel R. Bowman, Holger Schwenk, and Veselin Stoyanov. Xnli: Evaluating crosslingual sentence representations. In EMNLP 2018. [13] Xin Liu, Qingcai Chen, Chong Deng, Huajun Zeng, Jing Chen, Dongfang Li, and Buzhou Tang. Lcqmc: A large-scale chinese question matching corpus. In COLING 2018. [14] Jing Chen, Qingcai Chen, Xin Liu, Haijun Yang, Daohe Lu, and Buzhou Tang. The BQ corpus: A large-scale domain-specific Chinese corpus for sentence semantic equivalence identification. In EMNLP 2018.
  • [技术干货] 主动学习解决数据标注难题
    作者:Frank转自:https://zhuanlan.zhihu.com/p/1724793061、动机如今,我们利用AI算法解决实际问题的时候,需要面临的第一个并且是最重要的一个问题就是进行大规模的数据采集和标注。众所周知,使用监督学习方法做分类任务时,往往训练样本规模越大,分类器的性能就越高。但是在面临实际问题时,我们接触到的大量的来自互联网或其他来源(如学术界或商业界)的都是未标注的数据。然而标记样本通常是代价比较大的,比如海量标注需要耗费大量时间和人力(海量的语料和图像标注);又比如一些数据需要领域内的专家来进行人工标注(一家数据驱动的医疗公司有很多MRI扫描,他们需要聘请一位专家来帮助他们解释这些扫描),这样数据标注便成了人工智能算法商用的一个难题。 业界也有一些专门进行数据标注的公司[1],比如Google可以提供不同任务的数据标注服务(其中视频类的标注费用最高,最高可到$686/500min),如Figure1示:根据上表,考虑到数据标注的代价以及有限的资源,人们无法解释或标记所有数据;这就是他们决定使用主动学习(Active Learning)的原因。主动学习的核心思想之一就是通过一定的查询策略,选取“最不确定”或者“携带最大信息”的样本进行标注供算法学习,然后通过模型迭代更新可以实现与使用完全受监督的数据集类似的或更高的[2]性能,而不需要对所有的数据进行标注。通过这种方式,决定使用多少数据或者期望模型达到某种性能就变成了一种资源管理决策;换言之,就变成了一种商业决策(Business Planning)。2、主动学习介绍主动学习(Active learning or query learning)作为机器学习的一个分支(Semi-supervised Learning)其主要是针对数据标签较少或打标签代价较高这一场景而设计的。主动学习背后的关键思想是,如果允许从学习的数据中选择数据,则机器学习算法可以通过较少的训练标签来实现期望的准确性。主动学习主要方式是模型(Learner)通过与用户或专家(Oracle)进行交互(如Figure 2所示),根据某种采样规则,抛出query让专家确定数据的标签,如此反复迭代,以期让模型利用较少的标记数据获得较好的性能。一般情况下,模型抛出的未标注数据为hard sample(可以是模型最难区分的样本;可以是对模型提升最大的样本,如梯度提升最大;可以是方差减小等等)。可以看出active learning与passive(supervised) learning最大的不同是其不需要大量的专家标注样本训练模型。 主动学习是利用少量标注样本,然后由模型(Learner)主动选择hard sample返回给用户或专家(Oracle)打标签,进而不断迭代以获得较好的模型(如Figure 3所示)[3],该过程必须要有Oracle的参与,这也是active learning区别于semi-supervised learning的不同之处。如上图所示,Figure3(a)是一个二分类数据集的GroundTruth。由于样本过多,Figure3(b)随机选择了其中20%的数据进行标注,通过训练得到如图所示的回归模型。可以看出,由于样本选择是随机的且标注的样本数量过少致使采样后的分布和GroudTruth真实分布相差较大,因此回归模型无法在真实数据集上得到较好的表现。图Figure3(c)采用了主动学习的方法,首先采用比如15%的数据训练出一个基学习器,然后基学习器基于某种查询策略主动在真实数据集中挑选基学习器难以区分的样本,交给Oracle进行标注,然后一步步迭代更新模型,最终采用较少的数据便可以训练出一个回归模型使得其在真实数据集上得到较好的表现。3、主动学习学术研究综述“Settles, B. 2009. Active Learning Literature Survey”[3]作为主动学习领域的经典论文,介绍了主动学习在2010年及以前的综述,Figure4的思维导图[4][5]结合该Survey以及近几年各大顶会中主动学习的研究展示了一些主动学习领域的一些Milestones。4、主动学习场景Membership Query SynthesisMembership Query Synthesis[5]可查询任意样本或随机生成(例如对图片样本进行旋转或添加“噪声”等,类似样本增强的策略),然后将其送给Oracle进行判断,其过程如图所示,由于在样本的随机生成过程中,其有较大的不确定性,因此在某些应用,专家也无法标记样本,故这种方法对于某些应用场景有一定的局限性。Stream-Based Selective SamplingStream-Based Selective Sampling或Sequential active learning,其核心假设为样本的获得是“免费的”或代价较小的,因此基学习器每次基于某种查询策略选择一个样本给专家进行标记,如图所示,模型通过某种“informative measure”确定是否由专家标注样本,或舍弃该样本。该方法支持在线学习(online learning)Pool-Based Sampling与Stream-Based Sampling最大的区别即为Pool-Based Sampling每次确定一批unlabeled data,由专家标记,如图4所示,Pool-Based Sampling是active learning中应用最为广泛的一种framework,同时支持在线学习。5、主动学习查询策略根据主动学习场景所述,Active learner在迭代中需要根据一定的策略选择most informative unlabeled sample去让Oracle进行标注,然后更新模型,在active learning中其主要包括以下几种Query Stategy:Uncertainty SamplingLeast confident sampling基学习器根据每一个样本所属类别输出概率最大值,选择一个最不确定的样本Margin sampling基学习器根据每一个样本所属第一个和第二个最可能类别概率差,选择一个最不确定的样本Entropy Sampling基学习器根据每一个样本所属类别概率的熵,选择一个最不确定的样本下面的热力图显示了通过三种查询策略后,在一个三分类任务中,不同的查询策略倾向于查询到的最不确定的样本。下面的例子展示如何具体运用三种查询策略:假设有一个三分类任务,训练好一个基学习器后,基学习器要在剩余样本的pool中选择一个最不确定的样本进行模型迭代更新,这个pool中有三个未标注的样本,输入基学习器后,基学习器输出了三个样本分别属于三个类别的概率:proba = np.array([[0.1 , 0.85, 0.05],[0.6 , 0.3 , 0.1 ],[0.39, 0.61, 0.0 ]])通过Least confident sampling:1 - proba.max(axis=1) = [0.15, 0.4 , 0.39]可以得到most uncertain样本为第二个样本通过Margin sampling:part = np.partition(-proba, 1, axis=1)margin = - part[:, 0] + part[:, 1]margin = [0.75, 0.3 , 0.22]可以得到most uncertain样本为第三个样本通过Entropy sampling:Entropy = entropy(proba.T)Entropy = [0.51818621, 0.89794572, 0.66874809]可以得到most uncertain样本为第二个样本Other Query Strategies除了Uncertainty Sampling之外,还有Query-by-Committee, Expected Model Change, Expected Error Reduction, Variance Reduction, Density-Weighted Methods等Query Method和相对应的变体,具体可阅读参考文献[3]的chapter 3以获取其余查询策略。6、主动学习算法流程最后,以一张流程图展示主动学习的算法流程,完成本次主动学习算法的介绍。其中红色部分的模块为算法流程的超参数,可以根据具体的场景进行调节。
  • [赛事资讯] 华为云获得自然语言处理领域顶级赛事NLPCC开放任务第一名
    近日,华为云 AI 团队获得第 9 届国际自然语言处理与中文计算会议 NLPCC 2020 轻量级预训练中文语言模型测评第一名。NLPCC 由中国计算机学会主办,是自然语言处理(NLP)和中文计算(CC)领域的顶级国际前沿会议,每年会议都秉承国际化和一流化的严格标准来进行自然语言处理任务的开放评测,推动相关任务的研究和发展。NLPCC 2020 吸引了康奈尔大学、伦敦大学、普林斯顿大学等海内外近 600 位自然语言处理领域的专家及学者参加大会,其中 400 余位专家学者在现场共同见证开放评测任务第一名的诞生。当下,预训练语言模型已经成为 NLP 的主流方法,在多项 NLP 任务上都取得了明显的效果提升。但是预训练语言模型往往比较大,限制了预训练语言模型的应用场景。因此,如何构建轻量级的预训练语言模型就成了一个关键问题。预训练语言模型出现以来发展得非常迅速,目前已经演化形成了一个家族中文轻量级预训练语言模型能力评测任务的目的在于让参赛团队减少语言模型大小的同时尽可能保证模型效果。本次比赛包含四个任务,分别是指代消解,关键词识别两个句子级别分类任务,实体识别序列标注任务,MRC 阅读理解任务,从不同角度评测模型的语义表达能力。同时,比赛要求模型的参数量低于 bert-base 模型的 1/9,模型推理速度达到 bert-base 模型的 8 倍,这就要求模型运行快,体积小,效果好。一般来说,可以通过量化、剪枝、蒸馏等方法来压缩大预训练语言模型来获得轻量级模型。华为云与诺亚方舟实验室联合团队基于自研的 NEZHA 中文预训练模型通过知识蒸馏得到 tiny-NEZHA 轻量级模型摘得桂冠。相比其他模型,华为的模型在结构上找到了一个较好的平衡点,采用 TinyBERT 两步蒸馏的方式让模型更好地学到任务相关的知识,蒸馏过程中用语言模型预测并替换部分 token 的方式进行数据增强可以使小模型拥有更强泛化性。TinyBERT 知识蒸馏的损失函数中一个重要环节是让中间层去学习隐藏状态和 attention 向量同时,华为自研的 NEZHA 预训练语言模型采用相对位置编码替换 BERT 的参数化绝对位置编码,能更直接地建模 token 间的相对位置关系,从而提升语言模型的表达能力。在即将过去的 2020 年里,华为云 AI 在人工智能领域的研发成绩斐然,斩获十二项包含 WSDM、WebVision、CCKS 篇章级事件抽取技术评测冠军、人工智能金炼奖、德国红点在内的国际国内榜单冠军和奖项。面向未来,华为云 AI 希望可以继续保持技术优势,做智能世界的「黑土地」,持续践行普惠 AI,将 AI 服务触及更多开发者和企业,助力各行各业进入人工智能新时代。本文来源:https://www.jiqizhixin.com/articles/2020-12-31