论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示

2019 年 10 月 31 日 开放知识图谱

论文笔记整理:吴杨,浙江大学计算机学院,知识图谱、NLP方向。



https://www.ctolib.com/https://arxiv.org/abs/1908.10084


动机

     谷歌的 BERT 预训练模型,已经能够在两个句子的语义相似度匹配等需要输入一对句子的任务上取得了非常好的效果,但是,假如说现在有N个句子,需要为每个句子找出与其最相似的另一个句子,显然使用BERT需要O(N*N)的时间,这是非常耗时的操作。因此有必要通过生成每个句子的Embedding,然后通过Embedding直接计算相似度来大大减轻计算量。由于直接使用BERT的输出(CLS,或者平均)作为句子Embedding的效果并不好,因此本文提出了使用孪生网络来输出优秀的句子Embedding


方法

(1) 概述


SBERT 网络是通过 SNLI 数据集(标注了一对句子之间的关系,可以是蕴含、矛盾或者中立)进行预训练的,所谓孪生网络其实就是两个一模一样共享参数的网络,我们首先将第一个句子输入到BERT,通过不同的Pooling方法获得句子的Embedding表示,第二个句子同样如此,然后将这两个Embedding变换后通过Softmax输出这对句子之间关系的概率进行训练(分类问题)。在训练完毕后,我们就可以将下面的BERTpooling层拿出来,将句子输入得到其Embedding,再进行其他操作(比如计算相似度可以直接使用cosine-sim

(2) Pooling方法:

a. CLS:直接使用CLS的输出作为Embedding

b.MEAN: 平均所有token的输出作为Embedding

c. MAX:取每一维输出向量的最大值

(3) 目标函数:

       a. 分类目标函数:

       其中 u v 为两个句子的 EmbeddingWt为变换矩阵,最终的维度为3n*k

            该目标函数可用于预训练Sentence Embedding

       b. 回归目标函数:

           该目标函数直接计算uvcosine相似度,将之均方误差作为loss。另外结构

              也是预测时候的计算方式

       c. 三胞胎目标函数:

    其中Sa为句子aEmbeddingSp则为句子p,句子p是跟a属于同一类型的

     正例句子,n 则是一个反例,三胞胎网络和孪生网络类似,这个目标函数是为了让

              正例距离尽量近而反例尽量远

(4) 预训练:

       SBERTSNLIMultiNLI数据集上训练,其中SNLI包括了570,000对句子标注了矛盾(contradiction)、蕴含(entailment)和中立(neutral)关系

(5) 评测:

$1 无监督语义相似度匹配(unsupervised STS)

   STS 数据集:语义相关度标注数据集,给定一对语句,标注其语义相关度(从0不相关到5非常相关)

   SNLINLI数据集上pre-train,不进行fine-tune,直接计算cos相似度,使用spearman计算cos相似度和标签的相关性,因为标签是离散值,而预测的时候使用的是回归模型,因此需要计算其相关度,论文中说普通的相关度计算不太好,使用Spearman是比较不错的选择

$2 有监督语义相似度匹配(supervised STS)

      NLI数据集(两个语句是否蕴含、矛盾、中立)pre-train

      STSb数据集(语义相似度数据集)上进行fine-tune并进行评测

      使用cos相似度计算,使用Spearman计算与label的相关度

$3 辩论观点相似度匹配(Argument Facet Similarity)

      AFS语料库包括了关于gun control, gay marriage, death penalty三个主题的一系列辩论观点,其标注了一对辩论观点的主题是否相同(0-完全不同的主题,5-完全相同的主题),作者在论文中说,由于AFS的相似度判断不仅仅是观点类似,还需要是理由也类似,而且AFS的用词和语句表达跟SNLI差距很大,因此直接使用pre-trainEmbedding计算相似度效果不太好。

      同时采用了十折交叉检验和使用其中的两个topic训练,3topic测试的方案,采用Spearman相关度计算


$4 Wikidata相同段落识别(Wikipedia Sections Distinction)

    wikipedia的任意两句话标注了是否属于同一小节

  采用三胞胎网络进行训练,采样两个同一小节和一个不同小节的语句,让同一小节的Embedding尽可能近,不同小节尽可能远


$5 SentEval迁移学习

      SentEval是专门用于测试Embedding效果的数据集,但是其任务跟本文这些pre-trainfine-tune时的没什么关联,其任务主要有:

      MR: 影评的情感预测                 CR:商品评价的情感预测

      SUBJ: 影评的主观程度预测        MPQA:新闻观点的两极分类

      SST: 斯坦福情感树分类              TREC:问题类型分类

      MRPC: 微软的判断语义是否等价的数据集

      从结果中可以看出,SBERT输出的句子Embedding表现不错,并且对句子中的情感成分捕捉的很好。而相比之下,原生BERT输出的CLS向量表现的不尽如人意

(6) 模型简化测试:

            作者在SNLISTSb数据集上测试了使用不同的Pooling方法以及不同的uv拼接方式对输出的SentenceEmbedding的影响。

       事实证明,采用各种Pooling方式其实对SBERT的性能影响不大。而改变拼接方式影响较大,普通的(u,v)拼接的性能很差,最重要的一部分是|u-v|,毕竟分类的输出很依赖与计算两个Embedding的差异度

(7) 计算效率:

  在计算效率上,主要与直接使用GloVe Embedding和使用Universal SentenceEncoder进行比较(BERT需要几十个小时)。

       由于Transformer的并行性,因此虽然在CPUSBERT的表现不太好,但是在GPU上还是不错的。当然直接使用GloVe的效率是显而易见的(直接进行向量运算即可)。Smart batching是说通过将长度相似的句子分为一组,这样在mini-batch中就只需要padding到最长的长度,可以减小padding token的计算开销。


总结

本文提出了使用孪生BERT网络训练Sentence Embedding的方法,事实证明这种方式输出的Embedding在捕捉句子的语义和情感等方面都有不错的效果,在各种任务上都有着不输于fine-tune BERT的成绩,而且很大的提升了计算效率。

 



OpenKG


开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

登录查看更多
25

相关内容

【AAAI2020知识图谱论文概述】Knowledge Graphs @ AAAI 2020
专知会员服务
133+阅读 · 2020年2月13日
17篇知识图谱Knowledge Graphs论文 @AAAI2020
专知会员服务
171+阅读 · 2020年2月13日
【综述】关键词生成,附10页pdf论文下载
专知会员服务
52+阅读 · 2019年11月20日
【Google论文】ALBERT:自我监督学习语言表达的精简BERT
专知会员服务
23+阅读 · 2019年11月4日
几种句子表示方法的比较
AINLP
15+阅读 · 2019年9月21日
【论文笔记】基于BERT的知识图谱补全
专知
116+阅读 · 2019年9月15日
论文浅尝 | 利用 KG Embedding 进行问题回答
开放知识图谱
22+阅读 · 2019年7月7日
论文浅尝 | 一种用于多关系问答的可解释推理网络
开放知识图谱
18+阅读 · 2019年5月21日
超越BERT、GPT,微软提出通用预训练模型MASS
机器之心
4+阅读 · 2019年5月10日
论文浅尝 | 基于深度强化学习的远程监督数据集的降噪
开放知识图谱
29+阅读 · 2019年1月17日
论文浅尝 | 用图网络做小样本学习
开放知识图谱
66+阅读 · 2018年6月30日
【论文笔记】自注意力机制学习句子embedding
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
Arxiv
5+阅读 · 2019年10月31日
Arxiv
6+阅读 · 2019年9月25日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Arxiv
10+阅读 · 2018年3月22日
Arxiv
23+阅读 · 2017年3月9日
VIP会员
相关资讯
几种句子表示方法的比较
AINLP
15+阅读 · 2019年9月21日
【论文笔记】基于BERT的知识图谱补全
专知
116+阅读 · 2019年9月15日
论文浅尝 | 利用 KG Embedding 进行问题回答
开放知识图谱
22+阅读 · 2019年7月7日
论文浅尝 | 一种用于多关系问答的可解释推理网络
开放知识图谱
18+阅读 · 2019年5月21日
超越BERT、GPT,微软提出通用预训练模型MASS
机器之心
4+阅读 · 2019年5月10日
论文浅尝 | 基于深度强化学习的远程监督数据集的降噪
开放知识图谱
29+阅读 · 2019年1月17日
论文浅尝 | 用图网络做小样本学习
开放知识图谱
66+阅读 · 2018年6月30日
【论文笔记】自注意力机制学习句子embedding
相关论文
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
Arxiv
5+阅读 · 2019年10月31日
Arxiv
6+阅读 · 2019年9月25日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Arxiv
10+阅读 · 2018年3月22日
Arxiv
23+阅读 · 2017年3月9日
Top
微信扫码咨询专知VIP会员