论文笔记整理:吴杨,浙江大学计算机学院,知识图谱、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输出这对句子之间关系的概率进行训练(分类问题)。在训练完毕后,我们就可以将下面的BERT和pooling层拿出来,将句子输入得到其Embedding,再进行其他操作(比如计算相似度可以直接使用cosine-sim)

(2) Pooling方法:

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

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

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

(3) 目标函数:

       a. 分类目标函数:

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

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

       b. 回归目标函数:

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

也是预测时候的计算方式

       c. 三胞胎目标函数:

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

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

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

(4) 预训练:

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

(5) 评测:

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

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

•   在SNLI和NLI数据集上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-train的Embedding计算相似度效果不太好。

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

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

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

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

$5 SentEval迁移学习

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

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

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

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

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

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

(6) 模型简化测试:

作者在SNLI和STSb数据集上测试了使用不同的Pooling方法以及不同的u、v拼接方式对输出的SentenceEmbedding的影响。

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

(7) 计算效率:

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

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

总结

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


OpenKG

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

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

孪生网络图像相似度_论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示相关推荐

  1. 孪生网络图像相似度_生成对抗网络的进步多大,请看此文

    全文共4175字,预计学习时长8分钟 最近,多项研究采用了生成对抗网络(Generative Adversarial Networks, 简称GANs)这一技术来生成分辨率为1024x1024的高清图 ...

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

    论文笔记整理:吴杨,浙江大学计算机学院,知识图谱.NLP方向. https://www.ctolib.com/https://arxiv.org/abs/1908.10084 动机 谷歌的 BERT ...

  3. powerbuilder查询符合条件的数据并且过滤掉其他数据_论文浅尝 ISWC2020 | KnowlyBERT: 知识图谱结合语言模型补全图谱查询...

    论文笔记整理:胡楠,东南大学博士. 来源:ISWC 2020 动机 像Wikidata这样的现代知识图已经捕获了数十亿个RDF三元组,但是它们仍然缺乏对大多数关系的良好覆盖.同时在NLP研究的最新进展 ...

  4. 孪生网络图像相似度_孪生网络:使用双头神经网络进行元学习

    深度神经网络有一个大问题-他们一直渴望数据. 当数据太少时(无法到达算法可以接受的数量)深度神经网络很难推广. 这种现象突出了人类和机器认知之间的差距. 人们可以通过很少的训练示例来学习复杂的模式(尽 ...

  5. 论文浅尝 | 基于图卷积网络的跨语言图谱实体对齐

    论文笔记整理:谭亦鸣,东南大学博士生,研究兴趣:知识图谱问答 本文提出了一种基于图卷积网络的跨语言实体对齐方法,通过设计一种属性 embedding 用于 GCN 的训练,发现GCN能同时学习到特征 ...

  6. 论文浅尝 | 混合注意力原型网络的含噪音少样本的关系分类

    论文笔记整理:余海阳,浙江大学硕士,研究方向为知识图谱.自然语言信息抽取. 链接:https://www.aaai.org/Papers/AAAI/2019/AAAI-GaoTianyu.915.pd ...

  7. 论文浅尝 | 具有图卷积网络和顺序注意力机制的应用于目标导向的对话系统

    论文笔记整理:吴涵,天津大学硕士,研究方向:自然语言处理. 来源:2019 Association for Computational Linguistics 论文链接:https://www.mit ...

  8. 论文浅尝 | 基于知识图谱注意力网络的商品推荐

    论文笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生. 论文链接:https://arxiv.org/pdf/1905.07854.pdf 发表会议:KDD 2019 任务定义 输入:协同过滤 ...

  9. 论文浅尝 - AAAI2020 | 利用自然语言推断生成人称一致的对话

    链接: https://arxiv.org/pdf/1911.05889.pdf 动机 虽然最近几年通过利用社交网络上大量人人交互数据训练开放域对话模型取得了很大的成功,但是这些数据驱动的对话系统仍然 ...

最新文章

  1. VMware View 与Citrix XenDesktop对决之用户体验篇
  2. android进度条课设报告,Android开发之进度条ProgressBar的示例代码
  3. 北斗导航 | 北斗三号全球导航卫星系统6类服务测试评估
  4. 02-06 Python库-random
  5. 一个小偷写给失主的信
  6. [转载] python getattr_Python中的异常处理
  7. 读书:梭罗的《瓦尔登湖》
  8. Oracle用户可要顶住了:准备好大规模补丁工作!以修补多达 433 个的新安全漏洞...
  9. 漏洞复现——Apache HTTPD多后缀解析漏洞
  10. 解决连接kudu时,delaying RPC due to Service unavailable: Master config (**.**.**.**:7051) has no leader
  11. win7密码破解之“替换法”
  12. 西安适合计算机专业的研究所,计算机类专业比较厉害的6所大学,适合于中等偏上的学生报考...
  13. API 接口测试,用这个开源的工具准没错
  14. 长短时记忆网络(Long Short Term Memory,LSTM)详解
  15. 关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)...
  16. 微型计算机 rtx2060,配i9+RTX2060!华硕灵耀X2 Pro展现魅力双屏
  17. 关闭VScode界面输入右上角的累加数字
  18. 【活动】想对大学的自己说……
  19. 表格中复制粘贴到其他位置的数据会携带引号等不可见字符
  20. S7-200SMART案例分析——伺服选型(二)

热门文章

  1. 线特征的LSD提取算法
  2. android系统修改开机动画
  3. GSO卫星移动通信L和S频段资源态势分析
  4. 【githubshare】一款开源的网站监控工具,监控当前网站的运行状态
  5. 流氓软件的dll文件和explorer.exe(文件资源管理器)绑定
  6. 宝宝树发行价为6.8港元 王怀南:上市不是为高估值
  7. 数字图像处理第三版(冈萨雷斯)——第一章绪论
  8. 最详细的制作8*8*8的光立方
  9. Materialise Magics 22.0软件的安装
  10. Coreseek算法分析