来源:acl2019
链接:https://arxiv.org/pdf/1710.04334.pdf
代码:https://github.com/windweller/DisExtract
只有将两个句子的语义结合起来,才能确定的句间关系,因此可以利用显性语篇关系(包括句间关系)来学习句子语义表征。
通过引入显性语篇关系,在两个下游任务上取得了较好的结果,一个是GLUE数据集上的各类语义任务,一个是PDTB数据集上的相邻句子对的隐式关系分类(达到了STOA)
Discourse Prediction Task
语篇关系总是存在的,它们属于一组小范畴并构成可解析的结构
相比修辞结构理论将文本分成多个EDU,然后解析并建立复杂的语篇关系。文章做了一些改变。
- 限制EDU为语法上完整的句子,包括从句和不定式短语
- 关注相邻两个EDU的显性关系,不考虑隐性关系,简化修辞结构理论的流程
之所以能够进行这种简化,是因为我们的目标不是标注自然文本,而是为一组特定的语篇关系管理一组句子对
简化的任务称为discourse marker prediction。
即给定两个句子(从句),模型需要预测出那个discourse marker
(自己理解应该就是连接词)可以用来连接两个句子的意思。 例子:
- She’s late to class——she missed the bus,应该填入because
- She’s sick at home ——she missed theclass,应该填入so
- She’s good at soccer—— she missed the goal,应该填入but
这些句子对有相似的句法结构和许多共同的单词,但组成句的语义可以指导哪个discourse marker
最合适。假如不弄清楚句子的语义,就无法知道该使用哪个discourse marker
。 因此,选择正确的discourse marker
需要一个反映句子完整意义的表征
论文表明人类不可能完美地完成这项任务,因为:
(1)有一些discourse marker
其实是同义词
(2)不同的discourse marker
也有可能连接同一对句子,表达不同的意思。
例如:
Bob saw Alice was at the party, (then | so | but) he went home
因为以上的一些问题,discourse marker prediction
效果存在上限,但discourse marker
经常可以从它所连接的句子的语义中推断出来,使其成为一项有用的训练任务
Model 模型
一种是从头开始训练双向LSTM模型,一种是微调bert
Sentence Encoder Model 句子编码器
使用双向lstm获得两个句子的表征(应用到下游任务时固定)
在这里插入图片描述构建相邻两个句子的特征,然后输入到全连接的网络,进行
discourse marker
分类。
在这里插入图片描述
具体分为多少类,构建数据集的时候会说明。
Fine-tuning Model 微调模型
在句子关系数据集上微调bert之后,再在下游任务上进行微调。
判断句子关系数据集是否有助于提高下游任务的效果。
例如,在PDTB数据集的隐式关系预测任务上评价效果
Data Collection 数据的收集
句子关系数据集如何收集得到呢?
利用一组显性语篇标记(即连接词表)和依存句法分析从自然文本语料库(BookCorpus)中自动收集大量句子对及其关系
-
定义常见的
在这里插入图片描述discourse marker
,通过PDTB的数据集统计获得,最终的连接词词表,如下图,总共收集到4706292个句子对,共有15种discourse marker
(连接词)。按照0.9,0.05,0.05 划分训练集,验证集和测试集。数据集是不平衡的,但是模型仍然能够很好地学习样本较少的类。
-
依存句法解析
大部分的连接词都是出现在两个句子之间,但是有些连接词和它连接的两个句子的相对位置不一样,因此需要使用依存句法树来提取合适的句子对及其顺序
在这里插入图片描述和PDTB数据集一样,也是先找到和连接词绑定的句子,记为S2,然后再去找S1。
(1)找不到S1,样本去掉,例如
that’s so cool!
中的so
。(2)S1和S2在同一句,如上图所示
(3)一个句子只包含S2和连接词,则S1是上一句
整理好的训练集如下图所示:
在这里插入图片描述
Experiments 实验
设置了四个任务,第一个任务是为了训练得到句子向量
- 双向LSTM在句子关系数据集上训练后,得到固定句向量,用于下游任务
- bert在句子关系数据集上微调之后,再在下游任务微调
后面三个任务是为了验证得到的句子向量的有效性。
任务一:句子关系预测(句间的连接词预测),数据集来源于上一步。类别设置有三种:
本来用的 Books ALL这一种,但是效果并不好。所以又采用了其他两种设置Books 5和Books 8,里面的连接词含义不混淆并且比较常见
在这里插入图片描述
对于使用Books ALL设置:
如果训练集不做平衡处理(使用全部的训练集),测试集上BILSTM模型的准确率只有67.5%。不常见的连接词容易被误认为常见的连接词。相似的连接词容易混淆(例如 although和but,before,then和after)等。混淆矩阵如下:
在这里插入图片描述
如果训练集做了类别间的平衡处理,模型的准确率只有47%。混淆矩阵如下:
在这里插入图片描述任务二:
相邻句之间总是有关系的,但有些句子间用了连接词,有些则没有。因此可分为两类。使用PDTB中的数据, 16224个句子对有标记,18459个句子无标记
研究显示,人类在猜测句间是否有连接标记的时候,表现得比碰运气好得多。
在这里插入图片描述上图种的MVU代表任务二的结果,BiLSTM的效果比微调bert好。
任务三: 隐式关系分类,包含11种关系,使用PDTB的数据集,对相邻的句子对进行训练和预测,13445个训练句子对和1188个测试数据对
上图种的IMP代表任务三的结果, BERT + DisSent Books 5 达到最佳效果
任务四:
语义任务,评估训练得到的句子向量,使用GLUE数据集
在这里插入图片描述DIsSent种不同的类别设置对下游任务(其他数据集上的泛化性)影响不大。
Extraction Validation
验证构造句子关系数据集的效果
在这里插入图片描述对于大多数
discourse markers
,都能达到较高的提取精度
网友评论