ACL 2021|美团提出基于对比学习的文本表示模型,效果提升8%

文 | 渊蒙 如寐 思睿等

尽管基于BERT的模型在NLP诸多下游任务中取得了成功,直接从BERT导出的句向量表示往往被约束在一个很小的区域内,表现出很高的相似度,因而难以直接用于文本语义匹配。
为解决BERT原生句子表示这种“坍缩”现象,美团NLP中心知识图谱团队提出了基于对比学习的句子表示迁移方法——ConSERT,通过在目标领域的无监督语料上Fine-tune,使模型生成的句子表示与下游任务的数据分布更加适配。在句子语义匹配(STS)任务的实验结果显示,同等设置下ConSERT相比此前的SOTA大幅提升了8%,并且在少样本场景下仍表现出较强的性能提升。

  • 1. 背景

  • 2. 研究现状和相关工作

    • 2.1 句子表征学习

    • 2.2 对比学习

  • 3. 模型介绍

    • 3.1 问题定义

    • 3.2 基于对比学习的句子表示迁移框架

    • 3.3 用于文本领域的数据增强方法探索

    • 3.4 进一步融合监督信号

  • 4. 实验分析

    • 4.1 无监督实验

    • 4.2 有监督实验

    • 4.3 不同的数据增强方法分析

    • 4.4 少样本设置下的实验分析

    • 4.5 Temperature超参的实验分析

    • 4.6 Batch size超参的实验分析

  • 5. 总结

论文题目:
ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer

论文链接:
https://arxiv.org/abs/2105.11741

GitHub:
https://github.com/yym6472/ConSERT

1. 背景

句向量表示学习在自然语言处理(NLP)领域占据重要地位,许多NLP任务的成功离不开训练优质的句子表示向量。特别是在文本语义匹配(Semantic Textual Similarity)、文本向量检索(Dense Text Retrieval)等任务上,模型通过计算两个句子编码后的Embedding在表示空间的相似度来衡量这两个句子语义上的相关程度,从而决定其匹配分数。

尽管基于BERT的模型在诸多NLP任务上取得了不错的性能(通过有监督的Fine-tune),但其自身导出的句向量(不经过Fine-tune,对所有词向量求平均)质量较低,甚至比不上Glove的结果,因而难以反映出两个句子的语义相似度[1][2][3][4]。我们在研究的过程中进一步分析了BERT导出的句向量所具有的特性,证实了以下两点:

  1. BERT对所有的句子都倾向于编码到一个较小的空间区域内,这使得大多数的句子对都具有较高的相似度分数,即使是那些语义上完全无关的句子对(如图1a所示)。我们将此称为BERT句子表示的“坍缩(Collapse)”现象。

▲图1 左:BERT表示空间的坍缩问题(横坐标是人工标注的相似度分数,纵坐标是模型预测的余弦相似度);右:经过我们的方法Fine-tune之后
  1. BERT句向量表示的坍缩和句子中的高频词有关。具体来说,当通过平均词向量的方式计算句向量时,那些高频词的词向量将会主导句向量,使之难以体现其原本的语义。当计算句向量时去除若干高频词时,坍缩现象可以在一定程度上得到缓解(如图2蓝色曲线所示)。

▲图2 计算句向量时移除Top-K高频词后的性能变化

BERT导出的句向量难以直接用于下游的语义匹配任务,而用于Fine-tune的监督语料又是昂贵的。因此我们希望寻找一种自监督的方法,只需要收集少量来自于下游任务无标注的文本用于Fine-tune,就能解决BERT句向量的“坍缩”问题,同时让其表征更适用于下游任务。

在本文中,我们使用了对比学习(Contrastive Learning)来达到上述目的。对比学习是目前被广泛应用的自监督任务之一,其核心思想为:人类是通过“对比”来辨别对象的,因此相似的事物在编码后的表示空间中应当相近,不同的事物则应当相距尽可能远。通过对同一样本施加不同的数据增强方法,我们能够得到一系列“自相似”的文本对作为正例,同时将同一个Batch内的其他文本作为负例,以此为监督信号去规范BERT的表示空间。在实验中,我们发现对比学习能够出色地消解高频词对句子语义表示的干扰(如图2橙色曲线所示)。在经过对比学习训练之后,模型生成的句子表示将不再由高频词主导(体现在移除前几个高频词后,性能没有出现非常明显的变化)。这是因为对比学习“辨别自身”的学习目标能够天然地识别并抑制这类高频特征,从而避免语义相差较大的句子表示过于相近(即坍缩现象)。

在对比学习中,我们进一步分析了不同的数据增强方法在其中的影响,同时验证了我们的方法在少样本情况下的性能表现。实验结果显示,即使是在非常有限的数据量情况下(如1000条无标注样本),我们的方法仍然表现出很强的鲁棒性,能够十分有效地解决BERT表示空间的坍缩问题,提升在下游语义匹配任务上的指标。

2. 研究现状和相关工作

2.1 句子表征学习

句子表征学习是一个很经典的任务,分为以下三个阶段:

  1. 有监督的句子表征学习方法:早期的工作[5]发现自然语言推理(Natural Language Inference,NLI)任务对语义匹配任务有较大的帮助,他们使用BiLSTM编码器,融合了两个NLI的数据集SNLI和MNLI进行训练。Universal Sentence Encoder[6](USE)使用了基于Transformer的架构,并使用SNLI对无监督训练进行增强。SBERT[1]进一步使用了一个共享的预训练的BERT编码器对两个句子进行编码,在NLI数据集上进行训练(Fine-tune)。

  2. 自监督的Sentence-level预训练:有监督数据标注成本高,研究者们开始寻找无监督的训练方式。BERT提出了NSP的任务,可以算作是一种自监督的句子级预训练目标。尽管之后的工作指出NSP相比于MLM其实没有太大帮助。Cross-Thought[7]、CMLM[8] 是两种思想类似的预训练目标,他们把一段文章切成多个短句,然后通过相邻句子的编码去恢复当前句子中被Mask的Token。相比于MLM,额外添加了上下文其他句子的编码对Token恢复的帮助,因此更适合句子级别的训练。SLM[9]通过将原本连贯的若干个短句打乱顺序(通过改变Position Id实现),然后通过预测正确的句子顺序进行自监督预训练。

  3. 无监督的句子表示迁移:预训练模型现已被普遍使用,然而BERT的NSP任务得到的表示表现更不好,大多数同学也没有资源去进行自监督预训练,因此将预训练模型的表示迁移到任务才是更有效的方式。BERT-flow[2]:CMU&字节AI Lab的工作,通过在BERT之上学习一个可逆的Flow变换,可以将BERT表示空间映射到规范化的标准高斯空间,然后在高斯空间进行相似度匹配。BERT-whitening[10]:苏剑林和我们同期的工作。他们提出对BERT表征进行白化操作(均值变为0,协方差变为单位矩阵)就能在STS上达到媲美BERT-flow的效果。SimCSE[11]:在我们2月份投稿ACL后,看到陈丹琦组在2021年4月份公开的工作。他们同样使用基于对比学习的训练框架,使用Dropout的数据增强方法,在维基百科语料上Fine-tune BERT。

2.2 对比学习

对比学习是CV领域从2019年末开始兴起的预训练方法,同时最近也被广泛应用到了NLP任务中,我们简要介绍两个领域下的进展:

  1. 计算机视觉(CV)领域的对比学习:2019年年末~2020年年初,Facebook提出MoCo[14],谷歌提出SimCLR[15],自此对比学习开始在无监督图像表示预训练领域大放光彩。SimCLR提出了一种简单的对比学习框架,通过对同一个图像进行增强,得到两个不同版本,随后通过ResNet对图像编码,再使用一个映射层将其映射到对比学习空间,使用NT-Xent损失进行预训练。本文的框架也主要受到SimCLR的启发。

  2. NLP领域的对比学习(用于文本表示学习):随着对比学习在CV无监督图像表示预训练任务上大获成功,许多工作也试图将对比学习引入到NLP的语言模型预训练中。下面是一些代表性的工作及其总结:

3. 模型介绍

3.1 问题定义

给定一个类似BERT的预训练语言模型,以及从目标领域数据分布中收集的无标签文本语料库,我们希望通过构建自监督任务在上对进行Fine-tune,使得Fine-tune后的模型能够在目标任务(文本语义匹配)上表现最好。

3.2 基于对比学习的句子表示迁移框架

▲图3 ConSERT的基本框架

如图3所示,我们受到SimCLR的启发对BERT编码器进行了改进,提出ConSERT,主要包含三个部分:

  • 一个数据增强模块(详见后文),作用于Embedding层,为同一个句子生成两个不同的增强版本(View)。

  • 一个共享的BERT编码器,为输入的句子生成句向量。

  • 一个对比损失层,用于在一个Batch的样本中计算对比损失,其思想是最大化同一个样本不同增强版本句向量的相似度,同时使得不同样本的句向量相互远离。

训练时,先从数据集中采样一个Batch的文本,设Batch size为。通过数据增强模块,每一个样本都通过两种预设的数据增强方法生成两个版本,得到总共条样本。这条样本均会通过共享的BERT编码器进行编码,然后通过一个平均池化层,得到个句向量。我们采用和SimCLR一致的NT-Xent损失对模型进行Fine-tune:

这里的函数为余弦相似度函数;表示对应的句向量;表示temperature,是一个超参数,实验中取0.1。该损失从直观上理解,是让Batch内的每个样本都找到其对应的另一个增强版本,而Batch内的其他个样本将充当负样本。优化的结果就是让同一个样本的两个增强版本在表示空间中具有尽可能大的一致性,同时和其他的Batch内负样本相距尽可能远。

3.3 用于文本领域的数据增强方法探索

▲图4 四种高效的数据增强方法:Adversarial Attack、Token Shuffling、Cutoff、Dropout,均作用于Embedding层

图像领域可以方便地对样本进行变换,如旋转、翻转、裁剪、去色、模糊等等,从而得到对应的增强版本。然而,由于语言天然的复杂性,很难找到高效的、同时又保留语义不变的数据增强方法。一些显式生成增强样本的方法包括:

  • 回译:利用机器翻译模型,将文本翻译到另一个语言,再翻译回来。

  • CBERT [12][13] :将文本的部分词替换成[MASK],然后利用BERT去恢复对应的词,生成增强句子。

  • 意译(Paraphrase):利用训练好的Paraphrase生成模型生成同义句。

然而这些方法一方面不一定能保证语义一致,另一方面每一次数据增强都需要做一次模型Inference,开销会很大。鉴于此,我们考虑了在Embedding层隐式生成增强样本的方法,如图4所示:

  • 对抗攻击(Adversarial Attack):这一方法通过梯度反传生成对抗扰动,将该扰动加到原本的Embedding矩阵上,就能得到增强后的样本。由于生成对抗扰动需要梯度反传,因此这一数据增强方法仅适用于有监督训练的场景。

  • 打乱词序(Token Shuffling:这一方法扰乱输入样本的词序。由于Transformer结构没有“位置”的概念,模型对Token位置的感知全靠Embedding中的Position Ids得到。因此在实现上,我们只需要将Position Ids进行Shuffle即可。

  • 裁剪(Cutoff:又可以进一步分为两种:

    • Token Cutoff:随机选取Token,将对应Token的Embedding整行置为零。

    • Feature Cutoff:随机选取Embedding的Feature,将选取的Feature维度整列置为零。

  • Dropout:Embedding中的每一个元素都以一定概率置为零,与Cutoff不同的是,该方法并没有按行或者按列的约束。

这四种方法均可以方便地通过对Embedding矩阵(或是BERT的Position Encoding)进行修改得到,因此相比显式生成增强文本的方法更为高效。

3.4 进一步融合监督信号

除了无监督训练以外,我们还提出了几种进一步融合监督信号的策略:

  1. 联合训练(joint):有监督的损失和无监督的损失通过加权联合训练模型。

  2. 先有监督再无监督(sup-unsup):先使用有监督损失训练模型,再使用无监督的方法进行表示迁移。

  3. 联合训练再无监督(joint-unsup):先使用联合损失训练模型,再使用无监督的方法进行表示迁移。

4. 实验分析

我们主要在文本语义匹配(Semantic Textual Similarity,STS)任务上进行了实验,包括七个数据集:STS12、STS13、STS14、STS15、STS16、STSb、SICK-R。其中STS12-16为SemEval2012 ~ 2016评测比赛放出的数据集;STSb为STS benchmark,来自于SemEval2017评测赛;SICK-R 表示 SICK-Relatedness,是SICK(Sentences Involving ComPositional Knowledge)数据集中的一个子任务,目标是推断两个句子时间的语义相关性(即Relatedness)。这些数据集中的样本均包含两个短文本text1和text2,以及人工标注的位于0~5之间的分数,代表text1和text2语义上的匹配程度(5表示最匹配,即“两句话表达的是同一个语义”;0表示最不匹配,即“两句话表达的语义完全不相关”)。下面给出了两条样本作为示例:

在测试时,我们根据此前的工作[1][2]选择了斯皮尔曼相关系数(Spearman correlation)作为评测指标,它将用于衡量两组值(模型预测的余弦相似度和人工标注的语义相似度)之间的相关性,结果将位于[-1, 1]之间,仅当两组值完全正相关时取到1。对于每个数据集,我们将其测试样本全部融合计算该指标,并且报告了七个数据集的平均结果。考虑到简洁性,会在表格中报告乘以100倍的结果。

4.1 无监督实验

▲图5 无监督设置下的实验结果

在无监督实验中,我们直接基于预训练的BERT在无标注的STS数据上进行Fine-tune。结果显示,我们的方法在完全一致的设置下大幅度超过之前的SOTA—BERT-flow,达到了8%的相对性能提升。

4.2 有监督实验

▲图6 有监督设置下的实验结果

在有监督实验中,我们额外使用了来自SNLI和MNLI的训练数据,使用上面提到的融合额外监督信号的三种方法进行了实验。实验结果显示,我们的方法在“仅使用NLI有标注数据”和“使用NLI有标注数据 + STS无标注数据”的两种实验设置下均超过了基线。在三种融合监督信号的实验设置中,我们发现_joint-unsup_方法取得了最好的效果。

4.3 不同的数据增强方法分析

▲图7 不同数据增强组合方法的性能

我们对不同的数据增强组合方法进行了消融分析,结果如图7所示。我们发现Token Shuffle和Feature Cutoff的组合取得了最优性能(72.74)。此外,就单种数据增强方法而言,Token Shuffle > Token Cutoff >> Feature Cutoff ≈ Dropout >> None。

4.4 少样本设置下的实验分析

我们进一步分析了数据量(无标注文本的数目)对效果的影响,结果如图8所示。结果显示,我们的方法仅需较少的样本就能近似达到全数据量的效果;同时,在样本量很少的情况下(如100条文本的情况下)仍相比于Baseline表现出不错的性能提升。

▲图8 ConSERT在小样本情况下的性能

4.5 Temperature超参的实验分析

在实验中,我们发现对比学习损失函数中的温度超参数 对于结果有很大影响。从图9的分析实验中可以看到,当值在0.08到0.12之间时会得到最优结果。这个现象再次证明了BERT表示的塌缩问题,因为在句子表示都很接近的情况下, 过大会使句子间相似度更平滑,编码器很难学到知识。而如果 过小,任务就太过简单,所以需要调整到一个合适的范围内。

▲图9 不同超参数下的性能

4.6 Batch size超参的实验分析

在图像领域的对比学习中,Batch size会对结果有很大影响,因此我们也对比了不同Batch size下模型的表现。从图10可以看到两者基本是成正比的,但提升很有限。

▲图10 不同Batch size下的性能

5. 总结

在此工作中,我们分析了BERT句向量表示空间坍缩的原因,并提出了一种基于对比学习的句子表示迁移框架ConSERT。ConSERT在无监督Fine-tune和进一步融合监督信号的实验中均表现出了不错的性能;同时当收集到的样本数较少时,仍能有不错的性能提升,表现出较强的鲁棒性。

同时,在美团的业务场景下,有大量不同领域的短文本相关性计算需求,目前ConSERT已经在知识图谱构建、KBQA、搜索召回等业务场景使用。未来将会在美团更多业务上进行探索落地。

目前,相关代码已经在 GitHub上开源 (https://github.com/yym6472/ConSERT),欢迎大家使用。

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1].Reimers, Nils, and Iryna Gurevych. "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks." Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019.

[2].Li, Bohan, et al. "On the Sentence Embeddings from Pre-trained Language Models." Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020.

[3].Gao, Jun, et al. "Representation Degeneration Problem in Training Natural Language Generation Models." International Conference on Learning Representations. 2018.

[4].Wang, Lingxiao, et al. "Improving Neural Language Generation with Spectrum Control." International Conference on Learning Representations. 2019.

[5].Conneau, Alexis, et al. "Supervised Learning of Universal Sentence Representations from Natural Language Inference Data." Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. 2017.

[6].Cer, Daniel, et al. "Universal Sentence Encoder for English." Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. 2018.

[7].Wang, Shuohang, et al. "Cross-Thought for Sentence Encoder Pre-training." Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020.

[8].Yang, Ziyi, et al. "Universal Sentence Representation Learning with Conditional Masked Language Model." arXiv preprint arXiv:2012.14388 (2020).

[9]. Lee, Haejun, et al. "SLM: Learning a Discourse Language Representation with Sentence Unshuffling." Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020.

[10]. Su, Jianlin, et al. "Whitening sentence representations for better semantics and faster retrieval." arXiv preprint arXiv:2103.15316 (2021).

[11].Gao, Tianyu, Xingcheng Yao, and Danqi Chen. "SimCSE: Simple Contrastive Learning of Sentence Embeddings." arXiv preprint arXiv:2104.08821 (2021).

[12].Wu, Xing, et al. "Conditional bert contextual augmentation." International Conference on Computational Science. Springer, Cham, 2019.

[13].Zhou, Wangchunshu, et al. "BERT-based lexical substitution." Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.

[14]. He, Kaiming, et al. "Momentum contrast for unsupervised visual representation learning." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.

[15].Chen, Ting, et al. "A simple framework for contrastive learning of visual representations." International conference on machine learning. PMLR, 2020.

[16].Zhang, Yan, et al. "An Unsupervised Sentence Embedding Method by Mutual Information Maximization." Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020.

[17]. Fang, Hongchao, et al. "Cert: Contrastive self-supervised learning for language understanding." arXiv preprint arXiv:2005.12766 (2020).

[18].Carlsson, Fredrik, et al. "Semantic re-tuning with contrastive tension." International Conference on Learning Representations. 2021.

[19]. Giorgi, John M., et al. "Declutr: Deep contrastive learning for unsupervised textual representations." arXiv preprint arXiv:2006.03659 (2020).

[20]. Wu, Zhuofeng, et al. "CLEAR: Contrastive Learning for Sentence Representation." arXiv preprint arXiv:2012.15466(2020).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android远程调试的探索与实现

作为移动开发者,最头疼的莫过于遇到产品上线以后出现了Bug,但是本地开发环境又无法复现的情况。常见的调查线上棘手问题方式大概如下: 方法优点缺点联系用户安装已添加测试日志的APK方便定位问题需要用户积极配合,如果日志添加不全…

超硬核 ICML’21 | 如何使自然语言生成提速五倍,且显存占用减低99%

文 | 炼丹学徒编 | 小轶我们忽略掉引言和介绍,直接把工作的效果丢上来,相信就足够令自然语言生成的相关同学心动——对于任何一个已有的Transformer生成模型,只需根据本文算法更改attention的计算顺序,就可以实现成倍速度提升&…

论文浅尝 | Convolutional 2D knowledge graph embedding

笔记整理 | 孙悦,天津大学1. 介绍:知识图的链接预测是预测实体之间缺失关系的任务。先前有关链接预测的工作集中在浅,快速的模型上,这些模型可以缩放到大型知识图例如基于基于平移变换的 TransE 系列。但是,这些模型比…

sysbench在美团点评中的应用

如何快速入门数据库?以我个人经验来看,数据库功能和性能测试是一条不错的捷径。当然从公司层面,数据库测试还有更多实用的功能。这方面,美团点评使用的是知名工具sysbench,主要是用来解决以下几个问题: 统一…

[中文事件抽取]DCFEE: A Document-level Chinese Financial Event Extraction System based on Automatically Lab

[中文事件抽取]DCFEE: A Document-level Chinese Financial Event Extraction System based on Automatically Lab: ACL 2018DCFEE: A Document-level Chinese Financial Event Extraction System based on Automatically Labeled Training DataAuthorHang Yang, Yu…

论文浅尝 - ACL2020 | 通过集成知识转换进行多语言知识图谱补全

笔记整理 | 谭亦鸣,东南大学博士生概述预测图谱中缺失的事实(fact)是知识图谱构建与推理中的一个重要任务,近年来也被许多KG embedding研究的关注对象。虽然目前的KG embedding方法主要学习和预测的是单个图谱中的事实,但是考虑到KG之间不同规…

LsLoader——通用移动端Web App离线化方案

由于JavaScript(以下简称JS)语言的特性,前端作用域拆分一直是前端开发中的首要关卡。从简单的全局变量分配,到RequireJS实现的AMD模块方式,browserify/webpack实现的静态引用方式。前端的业务逻辑也从一个个精心按顺序…

ACL'21 | debug完的神经网络,如何测试是否仍然存在bug?

文 | Sherry回归测试熟悉软件工程的小伙伴们一定知道回归测试:修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。它可以大幅降低系统测试、维护升级等阶段的成本。随着深度学习网络的不断发展,越来越多的系统都…

LeetCode 198. 打家劫舍(DP)

1. 题目 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存…

论文浅尝 - ACL2020 | 利用常识知识图对会话流进行显式建模

笔记整理 | 韩振峰,天津大学硕士链接:https://arxiv.org/pdf/1911.02707.pdf动机人类对话自然地围绕相关概念发展,并分散到多跳概念。本文提出了一种新的会话生成模型——概念流(ConceptFlow),它利用常识知识图对会话流进行显式建…

百度NLP、视频搜索团队招聘算法实习生!

致力于连接最靠谱的算法岗与最强的求职者招聘贴投放请联系微信xixiaoyao-1问答工作职责研发文本问答、多模态问答、阅读理解、端到端问答等技术,利用NLP理论和方法解决实际问题结合数据、算力优势,在百度的搜索、凤巢等产品和业务实现技术落地研究问答、…

人工智能在线特征系统中的数据存取技术

主流互联网产品中,不论是经典的计算广告、搜索、推荐,还是垂直领域的路径规划、司机派单、物料智能设计,建立在人工智能技术之上的策略系统已经深入到了产品功能的方方面面。相应的,每一个策略系统都离不开大量的在线特征&#xf…

论文浅尝 - ACL2020 | IntKB: 一种交互式知识图谱补全框架

笔记整理 | 谭亦鸣,东南大学博士来源: ACL 2020链接:https://www.aclweb.org/anthology/2020.coling-main.490.pdf资源:https://github.com/bernhard2202/intkb.概述知识库作为许多下游NLP任务的资源基础,存在的一个普遍缺陷是它…

预训练模型的前世今生(有福利!)

近年来,在深度学习和大数据的支撑下,自然语言处理技术迅猛发展。而预训练语言模型把自然语言处理带入了一个新的阶段,也得到了工业界的广泛关注。通过大数据预训练加小数据微调,自然语言处理任务的解决,无须再依赖大量…

LeetCode 337. 打家劫舍 III(记忆化+递归)

文章目录1. 题目1.1 相关题目:2. 解题2.1 递归2.2 记忆化递归1. 题目 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个…

孵化业务快速落地与优化

海外酒店是酒旅事业群第一个孵化的业务,从2016年9月份开始到现在已经半年多的时间。在业务后台搭建、成长、优化过程中,经历了很多的思考与选择。 主要分为下面几个阶段: 初建:调研、落地,合理复用,高效自建…

TPLinker 联合抽取 实体链接方式+源码分析

关系抽取–TPLinker: https://blog.csdn.net/weixin_42223207/article/details/116425447 Tagging TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging,过程分为三部分: (1)entity head to enti…

论文浅尝 | KGAT: 用于推荐的知识图注意力网络

笔记整理 | 李爽,天津大学链接:https://arxiv.org/pdf/1905.07854v1.pdf动机为了提供更准确、多样化和可解释的推荐,必须超越对用户-项目交互的建模,并考虑辅助信息。传统的方法,如因子分解机(FM),将其视为…

对话系统答非所问?快试试这篇ACL'21的连贯性评估大法

文 | 页眉3编 | 小轶背景当我们在绞尽脑汁地想怎么设计一个对话系统的时候,我们当然希望最后训练出来的系统能越像人越好,输出的回复很连贯,很有趣,很体贴。而其中,连贯性可以说是最基本的要求之一了,毕竟不…

LeetCode 384. 打乱数组(rand)

1. 题目 打乱一个没有重复元素的数组。 示例:// 以数字集合 1, 2 和 3 初始化数组。 int[] nums {1,2,3}; Solution solution new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。 solution.shuffle();// 重设数组到它的初始状态[…