©PaperWeekly 原创 · 作者 | Maple小七

学校 | 北京邮电大学硕士生

研究方向 | 自然语言处理

论文标题:

Phrase-BERT: Improved Phrase Embeddings from BERT with an Application to Corpus Exploration

论文来源:

EMNLP 2021

论文地址:

https://arxiv.org/abs/2109.06304

论文代码:

https://github.com/sf-wa-326/phrase-bert-topic-model

原生 BERT 主要依靠词汇相似度来确定语义相似度,因此无法很好地表示短语的语义。为了获取更好的短语表示,本文构建了两个面向短语表示的训练数据集,并以对比损失为目标微调 BERT 获得了短语表示模型 PhraseBERT。如下图所示,PhraseBERT 能够产生具有优质语义分布且词汇多样化的短语表示空间,将其应用于下游任务也许能够增强模型对短语语义的理解。

绪言

在语义匹配、机器翻译、问答系统等主流的 NLP 任务上,如何获取优质的短语表示 (phrases representations) 一直都是一个非常重要的话题,虽然 BERT 在这些任务上取得了优异的成绩,但大量 case study 都表明 BERT 其实仅仅是在依靠其强大的拟合能力捕捉浅层的文本统计信息做文本模式识别,离真正的自然语言理解还差得很远。

究其本质,一个模型所能学习到的东西,大多数是由数据和训练目标决定的,比如在无监督语义相似度任务中,原生 BERT 句向量的表现通常不如 GloVe 句向量,这是因为 BERT 的 MLM 和 NSP 训练目标并不是为语义相似度设计的。因此,为了让 BERT 能够理解同一个短语的不同表达其实是同一个意思,我们就需要构造这样的数据集让 BERT 去记忆不同短语之间的关系,并适当地泛化到其他短语组合上。

具体来说,直接使用 BERT 生成的短语表示空间,有如下两个问题:

1. BERT 预训练的输入永远是 512 个 token,没有见过短文本,因此无法生成很好的短文本表示;

2. BERT-flow [1] 曾指出基于 BERT 计算的语义相似度与编辑距离高度相关,即 BERT 严重依赖于词汇相似度来确定语义相似度。

要解决上述两个问题,自然就只能从数据训练目标下手,PhraseBERT 也仅仅是在 BERT 的基础上做了这两个方面的改进,下面首先介绍数据集的构造。

1.1 构建面向短语表示的数据集

为了解决 BERT 过于关注词汇相似度且输入只包含长文本的问题,我们首先需要构建一个具有词汇多样性的短语复述数据集 (lexically diverse phrase-level paraphrase) 来鼓励 BERT 不要太关注字面匹配。

然而我们找不到现成的数据集,因此为了构造正负样本对 ,本文作者利用 CoreNLP 提供的 shift-reduce 语法解析器,从 WikiText-103 数据集中抽取了 10 万个短语 ,然后为每个 构建正样本 和负样本 。其中, 是由一个现成的基于 GPT-2 的复述模型提供的,为了防止 和 存在词汇重叠,在生成过程中作者增加了词汇不重叠的约束,并采用核采样促进多样性。 的生成和 类似,作者首先随机替换 中的一个非停用词,然后像获取 那样将其输入上述复述模型获取 。这样, 和 、 均无词汇重叠,但 和 语义相关,和 语义无关。

然而,仅靠上述数据集训练短语表示是不够的,因为该数据集是不包含上下文的 (out of context),由于上下文也包含了不少短语的语义信息,因此作者进一步构建了包含上下文的短语 (phrase-in-context) 数据集为模型注入上下文信息。该数据集同样是利用 shift-reduce 语法解析器从 Books3 数据集中抽取 10 万个短语 。针对每个短语 ,作者保留了 对应的 120 个 token 的上下文 ,并将上下文中的 替换为[MASK],而 为随机采样的无关上下文。

1.2 采用对比损失微调BERT

有了数据集,我们采用和 SentenceBERT 完全相同的对比损失微调 BERT,其基本思想为拉近 和 、 的距离,推开 和 , 的距离,如下图所示:

针对第一个数据集中的短语三元组 ,我们首先获取他们的表示,即平均 BERT 最后一层的 token 向量:,然后计算三元组损失:

其中 为 范数,设 margin 为 。类似地,针对第二个数据集,我们同样可以计算三元组损失:。

我们将仅在第一个数据集上训练的模型记为 PhraseBERT-phrase,仅在第二个数据集上训练的模型记为 PhraseBERT-context,在两个数据集上联合训练的模型记为 PhraseBERT。

实验结果

作者在如下五个数据集上对比了各个短语表示模型的表现,其中 PPDB-filtered 移除了 PPDB 数据集中词汇相似度过高的样本,使得正例和负例的词汇重叠率完全一致,并保证每个重叠的 token 均在正例和负例中出现过,这使得模型完全无法依靠字面相似度来推断语义相似度。

作者对比了 PhraseBERT 和基线模型 GloVe、SpanBERT 和 SentenceBERT 的表现,同时还对比了仅使用单个数据集的模型:PhraseBERT-phrase 和 PhraseBERT-context,实验结果如下表所示:

从上图可以发现,PhraseBERT 超越了所有基线模型,尤其是在输入非常短的数据集 (Turney) 上。但值得注意的是,在基线模型中,SentenceBERT 取得了最好的表现,甚至相当接近于 PhraseBERT,这表明短语级语义和句子级语义是非常相关的,在句子级语义相似度任务上模型也能学习到不错的短语表示。

同时让人意外的是,虽然 SpanBERT 的训练目标是 masked span prediction,但它的表现比 BERT 更差。另外,我们也可以看到 PhraseBERT 的两个训练目标是互补的,PhraseBERT-phrase 和 PhraseBERT-context 都比 PhraseBERT 更差,这一点下面会进一步分析。

2.1 短语表示空间的词汇多样性

一个好的短语表示空间应该具有充分的词汇多样性,比如"natural language processing"的最近邻应该是"computational linguistics",即使这两个短语的词汇完全不重叠。为了衡量短语表示空间的词汇多样性,作者提出了如下三个指标:

  • % new tokens: top-k 最近邻短语的新词比例;

  • LCS-precision: top-k 最近邻短语和原短语的最长公共子串长度;

  • Levenstein edit distance: top-k 最近邻短语和原短语的编辑距离。

下表给出了不同模型的词汇多样性指标,相比于 SentenceBERT,PhraseBERT 有着更好的词汇多样性。另外,PhraseBERT 的两个训练目标其实也有着互相制约的作用,PhraseBERT-context 的词汇过于多样化,导致语义信息不足,而 PhraseBERT-phrase 的词汇多样性又不如 SentenceBERT,因此将这两个训练目标结合能够取得更好的效果。

2.2 PhraseBERT在主题建模中的应用

拥有一个优质的短语表示空间有什么意义呢?作者选择了主题建模这一任务来表明 PhraseBERT 的价值。作者将 PhraseBERT 集成到了一个神经主题模型中,该模型将主题表示为词汇、短语和句子的混合体,主题建模的具体过程可参见原文,这里直接给出实验结果。

总结

本文提出的 PhraseBERT 虽然在短语相似度任务上比 SentenceBERT 好,但其实也没有好太多,因为 SentenceBERT 本就不是为了短语表示设计的,PhraseBERT 和 SentenceBERT 的差别仅仅是训练数据集不一样而已,这实际上也恰好表明 SentenceBERT 通过句子相似度任务学到了不错的短语表示。但更让人感兴趣的其实是 PhraseBERT 在句子级语义相似度任务上的表现如何,就像之前的 DensePhrase [2] 那样,我们可以期待通过短语表示就能解决句子级甚至段落级任务。

参考文献

[1] https://arxiv.org/abs/2011.05864

[2] https://arxiv.org/abs/2109.08133

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

​EMNLP 2021 | 以对比损失为微调目标,UMass提出更强大的短语表示模型相关推荐

  1. EMNLP 2021中预训练模型最新研究进展

    © 作者|周昆 机构|中国人民大学信息学院 研究方向|序列表示学习与应用 导读 EMNLP 2021是人工智能领域自然语言处理( Natural Language Processing,NLP)三大顶 ...

  2. 【EMNLP 2021】SimCSE:句子嵌入的简单对比学习 【CVPR 2021】理解对比学习损失函数及温度系数

    1. 介绍 SimCSE(Simple Contrastive Learning of Sentence Embeddings)是一种简单在没有监督训练数据的情况下训练句子向量的对比学习方法. 这个方 ...

  3. CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数

    ©作者 | 李想 学校 | 哈尔滨工业大学(深圳) 研究方向 | 自然语言处理 Foreword 这次的论文笔记的内容是 CVPR'21 的一篇论文"Understanding the Be ...

  4. EMNLP 2021 | 正则表达式与神经网络的深度融合(续)

    神经网络在自然语言处理的各项任务中获得了成功, 在通过足够多标注数据的训练后, 神经网络往往有着很好的性能.但是由于在实际领域场景中高质量标注数据的缺失,以及大大小小特殊的需求,"规则&qu ...

  5. ​EMNLP 2021 最新综述:语言模型中的关系性知识

    ©作者 | 张义策 单位 | 北哈尔滨工业大学(深圳) 研究方向 | 自然语言处理 论文标题: Relational World Knowledge Representation in Context ...

  6. 论文笔记 EMNLP 2021|Modeling Document-Level Context for Event Detection via Important Context Selection

    文章目录 1 简介 1.1 创新 2 方法 2.1 预测模型 2.2 上下文选择 2.3 训练 3 实验 1 简介 论文题目:Modeling Document-Level Context for E ...

  7. 基于Grad-CAM与KL损失的SSD目标检测算法

    基于Grad-CAM与KL损失的SSD目标检测算法 人工智能技术与咨询 来源:<电子学报>,作者侯庆山等 摘 要: 鉴于Single Shot Multibox Detector (SSD ...

  8. 机器学习笔记 - 关于Contrastive Loss对比损失

    一.对比损失 虽然二元交叉熵(下图公式)肯定是损失函数的有效选择,但它不是唯一的选择(甚至不是最佳选择). 然而,实际上有一个更适合孪生网络的损失函数,称为对比损失. 其中Y是我们的标签.如果图像对属 ...

  9. 损失函数笔记(2)--对比损失

    一些常用与分类问题的损失函数: 交叉熵损失: 是分类问题中默认使用的损失函数 交叉熵函数:计算了类概率与标准答案的距离 softamax:一般用作最后一层的激活函数,计算归一化的类概率. 前置知识: ...

最新文章

  1. Extjs--FormPanel(2)
  2. 模板上 php dede,织梦CMS模板中dede标签使用php和if判断语句的方法
  3. WebGIS中一种根据网格索引判断点面关系的方法
  4. arcgis影像怎么去黑边_ArcGIS镶嵌数据集某些比例尺下显示黑白格解决方案
  5. 图像语义分割(2)-DeepLabV1: 使用深度卷积网络和全连接条件随机场进行图像语义分割
  6. 基于K—近邻的车牌号识别小实验
  7. 2015社交营销计划指南
  8. python绘制跳棋棋盘
  9. 2022-07-04-5万字长文说清楚到底什么是“车规级”
  10. 一款自制的视频录制软件
  11. 网页证书错误怎么回事? 证书错误如何解决
  12. google浏览器安装视频插件的方法
  13. weui 自定义datepicker 年月日 上午下午 四级联动的实现
  14. GitHub下载加速利器
  15. 地理距离测算(方法免费共享,经纬度、省份、地级市、港口间距离)
  16. 史上最牛叉的俄罗斯方块--game.cpp/.h
  17. 基于社交模型的权证交易概念产品-废话性前言
  18. 关于Chrome浏览器调用IE浏览器
  19. SAS可以用来做什么?
  20. Ganglia的安装、配置、运行

热门文章

  1. linux系统文件查找实验报告,Linux 文件查找与打包
  2. 代码检查规则背景及总体介绍
  3. 沈阳工程 c语言题库,2017年沈阳航空航天大学航空航天工程学部823C语言程序设计考研仿真模拟题...
  4. layui的表格可以动态添加行吗_答疑分享052:插入表格,数据分析更方便
  5. delphi 回调函数例子 用函数过程作为参数
  6. asp.net代码审计起始篇之系统搭建
  7. for循环中执行setTimeout问题(任务队列的问题)
  8. window 内核详尽分析
  9. 当电桥为恒流源时惠斯通电桥电压的计算方法
  10. Codeforces Round #321 (Div. 2) Kefa and Company 二分