©PaperWeekly 原创 · 作者 |
范帅
本文主要介绍我们在自然语言处理领域被 EMNLP 2022 接收的工作,我们提出了 SentiWSP,一种基于多层级的情感感知预训练模型,能够在多个情感分析下游任务上微调取得竞争性的性能。该模型通过巧妙的设计词级别和句子级别的预训练任务,使得模型可以更好地在两个层级捕捉到句子的情感信息。
论文标题:
Sentiment-Aware Word and Sentence Level Pre-training for Sentiment Analysis
EMNLP 2022
https://arxiv.org/abs/2210.09803
https://github.com/XMUDM/SentiWSP
本文作者:
范帅(厦门大学),林琛(厦门大学),李浩楠(墨尔本大学),林正昊(厦门大学),苏劲松(厦门大学),张航(IDEA Research),宫叶云(MSRA),郭健(IDEA Research),段楠(MSRA)
研究背景
当前,预训练模型例如 GPT,BERT,RoBERTa,通过在大规模无标注语料上预训练之后,可以在很多下游任务上微调取得很好的性能,其中也包含典型的文本分类任务,即情感分析任务。
近两年一些在在情感领域做的一些预训练模型的工作能够在情感分析的下游任务上微调取得很好的性能,例如 SentiBERT,SentiLARE,SENTIX 等,往往都是在词级级别构建情感相关的预训练任务,通过在 BERT的MLM(Mask language model)任务中引入情感词,词性,或者词性语法树之类的词级别情感知识。它们通常忽略了对于句子层面的预训练任务的设计。
然而,通过 MLM 任务上的改进在词级别学习文本中的情感信息往往局限于被少量 mask 的词本身,并且因为情感分析正是从整个句子层面考虑的对文本整体情感倾向的分析。
方法
SentiWSP 分别从词级别和句子级别分别设计了相关的预训练任务来提升模型对于文本情感信息的捕捉,在词级别使用情感词替换检测任务,通过生成器和判别器联合训练,增强判别器对于文本中情感信息的学习。然后,通过设计的对比学习框架来提升经过词级别训练之后的判别器对于整个句子情感层面的信息捕捉能力。接下来介绍我们设计的预训练任务的细节。
2.1 词级别预训练
对于给定的文本句子,我们首先会使用情感词典对句子中出现的情感词进行标记,分别对于情感词和全部词做一定的遮盖,对于情感词的遮盖概率是
,遮盖之后的句子输入到生成器进行替换,替换的过程是我们会在生成器对遮盖的词生成的概率分布中做采样进行替换,然后将替换之后的句子输入到判别器做每一个词的判别,判别是否被替换。
例如图 1 当中的左边,我们对句子中的情感词 “sassy”,“charming” 以及普通词 “comedy” 进行了遮盖,然后这些词被生成器进行了替换,替换之后的句子输入到判别器进行每个位置的判别,判别是否被替换。
这个过程中生成器和判别器是联合训练的,生成器的 loss 依然是用原句的 MLM loss,用的是被 mask 掉词的句子
的每个遮盖掉词位置的表示即 ,以及词的原始嵌入
来计算恢复原有的词的 loss:
我们对生成的概率分布
进行随机采样之后的词来对被遮盖的词进行替换,被替换之后的句子
通过和原句对比即可得到每个词位置是否被替换的标签,我们通过用这个是否被替换的 0-1 标签来监督训练判别器:
在这个过程中,随着生成器越来越强,替换的词对于判别器而言会形成越来越难的挑战,因此也会让判别器学的越来越好。
经过词级别的训练之后,我们要对判别器进行进一步的句子级别的预训练,我们首先对文本句子当中的情感词进行
概率的遮盖构造成查询,正例是原句,如图1的右边部分,也可以看到我们构造的 query 和 postive。
我们首先对模型进行使用 in-batch warm-up 的对比学习,使得模型具备简单的从句子层面学习的能力:
即对于当前的查询
的正例是
,而同一个 batch 的其余样本是负例。
因为 in-batch 内的样本对于模型来说已经形成不了更多的考验,因此我们设计了一个基于 ANN 检索的难负样本挖掘,在 cross-batch 中选择更具有难度的难负样本来对模型进行进一步的学习。
如图 1 右边部分右上角所示,我们使用异步刷新机制的难负样本挖掘,首先使用 warm-up 之后的模型作为 checkpoint 0 模型,并之后通过使用上一个 checkpoint 模型对当前的文档库进行推理,并构建索引,使用 ANN 向量检索出每一个查询的 top n 个最近邻的句子,然后从中采样 k 个句子作为当前 query 的难负样本,即不断的更新难负样本来训练当前的 checkpoint 模型,依次迭代。
随着模型的逐渐学习,我们会更新当前所有 query 的难负样本,然后训练下一个 checkpoint 模型,以此迭代,这一部分的优化目标是将正例拉近,负例拉远:
实验结果
我们通过在 wikipedia 的语料上预训练我们的模型,我们加载 ELECTRA 的模型作为我们的初始参数。然后我们在一些下游任务上面微调验证我们模型对于情感分析任务的有效性。
主实验部分,我们对经过我们预训练之后的模型在 5 个最常用的开源句子级别情感分类的数据集 SST,IMDB,MR,Yelp-2/5 和方面级情感分类 Semeval2014 数据集两个子集 Resaurant 14 和 Laptop14 上面做微调进行实验:
对比基线得到的效果如下:
-
对比近两年的一些情感领域的预训练工作以及通用的预训练模型的效果,我们的模型在句子级别数据集上面都有着最好的性能。
-
在方面级情感分析的数据集上,我们的总体效果达到了最优,在其中一个子集即 Restaurant14 上略逊于 SCAPT 这篇专门针对方面级情感分析所做的工作。
对于 ELECTRA,我们在所有数据集上都有着效果上的提升,这证明了我们预训练任务的有效性。
对于我们提出的两个预训练任务,我们进行了消融实验分析。发现我们提出的预训练任务在不同规模的模型上都有着很好的性能。base 版本是 12 层 768 隐层而 large 是 24 层 1024 隐藏层大小的模型。
-
使用词级别和句子级别的预训练任务之后模型在所有情感分类下游任务上都得到了提升,对与不同大小的模型而言结论相同
-
词级别和句子级别的预训练任务都很重要,并且在不同的数据集上面表现并不相同。
-
使用我们的预训练任务训练的 base 版本的模型甚至优于一些通用预训练模型的 large 版本,例如 BERT,RoBERTa。
同时我们也做了一些相关的参数实验验证不同实验设置下我们提出的预训练任务的有效性。
我们在 IMDB 和 MR 上验证了我们提出的 cross-batch 难负样本的效果,对比仅仅使用 in-batch 内负样本训练同样步数的模型,我们增加的难负样本可以带来更好的效果,并且随着难负样本选择数量的增加,效果逐渐上升,后续下降的潜在原因是难负样本个数过多会使模型面临的挑战过难。
在论文中我们还分别验证了情感词遮盖的比例在词级别预训练和句子级别预训练任务中的一些性能,具体细节可以参考我们的论文。
总结
在本文中,我们提出了一种基于情感感知的多层级预训练模型 SentiWSP,分别在词级别和句子级别设计了相应的预训练任务,提高了模型对于文本中情感知识的捕捉能力。在词级别引入情感词替换生成检测任务,通过生成器和判别器的联合训练使得判别器能够更细致的捕捉情感信息。同时,在句子级别,我们通过构造巧妙的对比学习机制能够在整个句子
层面学习到文本的情感知识。我们在多个情感分类下游任务上微调后取得了很好的性能。未来的工作也将持续关注预训练模型在情感领域的一些零样本学习或者小样本学习。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」