AAAI 2020 故事结局预测任务上的区分性句子建模

论文名称:Discriminative Sentence Modeling for Story EndingPrediction

论文作者:崔一鸣,车万翔,张伟男,刘挺,王士进,胡国平
原创作者:崔一鸣
下载链接:https://arxiv.org/abs/1912.09008 

1. 简介

故事结局预测(Story Ending Prediction)任务需要阅读一篇故事并且根据内容选择一个合适的结局,这要求机器能够理解故事内容并且可能需要常识知识来判断出正确结局。为了解决这个任务,在本文中我们提出了一个创新的神经网络模型Diff-Net来建模结局之间的差异性。该模型从三个角度对结局进行建模:上下文表示、故事表示、区分性表示。在Story Cloze Test(SCT)数据集上的实验结果表明该模型能够显著提升故事结局预测的效果。另外,我们在SCT v1.0和v1.5数据上探究了传统神经网络模型和以BERT为代表的预训练模型之间的差异点,并且给出了一些有趣的发现,这将有助于未来在该任务上的研究。

2. 动机

早期在故事结局预测任务中的相关模型通常考虑了语言学风格分析[1],引入外部知识[2],使用大规模无标注数据[3]等方法。Cai等人[4]提出了一种完全端到端的神经网络模型,其效果与基于特征的方法相匹敌。

虽然这些工作显著提升了故事结局预测任务的效果,但他们忽略了对于结局差异性的比较。尤其当两个候选结局内容相似时,应该通过“对比”来选择出更优的一个。这就要求我们更加关注两个结局之间的差异点。

图1 Story Cloze Test数据集样例如上例中,故事的两个结局非常相似,仅最后一个单词不同,且它们是决定结局的关键词汇。由此可见,如果显式地将结局中的不同部分进行建模将有助于故事结局预测任务。

因此,本文在故事结局预测任务中做出如下几点贡献:

  • 我们提出了一种创新的神经网络模型Diff-Net用于解决故事结局预测任务;

  • 在SCT v1.0和v1.5数据集上的实验结果表明模型能够带来显著性能提升;

  • 我们给出了一些在SCT数据集上有趣的分析结果,这可能对未来研究有所帮助。

3. 模型

3.1 任务定义

本文中提到的故事结局预测任务主要针对Story Cloze Test数据集[5]展开研究。该数据集的每个样例包含由四个句子组成的小短文,并且给出了两个候选结局,其中之一是该故事的真结局。具体样例可以参考上一节中的图1。

3.2 方法

接下来我们介绍本文所提出的Diff-Net模型。该模型由上下文表示、匹配模块、区分模块、输出模块构成。整体模型结构如图2所示。

图2 Diff-Net整体模型结构

  • 上下文表示

我们将故事和结局映射到词向量空间,并且拼接了以下三个离散特征:

  1. 结局-结局匹配:如果当前单词存在于另外一个结局中,则置为1,否则为0

  2. 结局-故事匹配:如果当前单词存在于故事中,则置为1,否则为0

  3. 结局-故事模糊匹配:经过词干提取后,如果当前单词存在于故事中,则置为1,否则为0

然后我们使用双向LSTM得到故事和结局的表示。同时我们利用MaxPooling来得到结局的二维表示HE用于后续的计算。

  • 匹配模块

得到上述表示后,我们使用额外的全连接层来获得维度减半的向量。

为了计算故事和结局之间的关联,我们使用了Attention-over-Attention (AoA) 结构[6]。在本文中我们对原始的AoA结构进行了一些调整,其中包括:

    1.     Dot计算替换为Cosine计算

    2.     MaxPooling替换为AveragePooling

    3.     在匹配矩阵上添加了转换函数

图3 改进的Attention-over-Attention (AoA) 结构

经过修改的AoA算法如图3所示,也可以通过系统结构图2中左上角的部分直观地进行理解。经过该结构的计算,我们可以获得每个结局与故事之间的匹配程度,并且能够得到Story-aware的表示。

  • 区分模块

为了建模两个结局之间的差异性,我们在修改过的AoA结构中应用转换函数η。在本文中我们定义η(x)=-x。由此我们可以得到两个结局差异点的表示。

  • 最终输出

最后我们对上下文表示、匹配表示、区分表示进行拼接并得到最终的概率输出。

除了常规的交叉熵损失之外,我们还添加了额外的cosine损失,用来拉远两个结局表示的空间距离。我们在实验中发现这种方法能够稳定实验结果。

  • 在BERT中精调

以上介绍的是基于传统模型的Diff-Net。如果要与BERT[7]进行结合使用,只需要将最后的表示拼接替换为如下公式,即使用BERT的表示与区分表示进行拼接,并得到最终的概率输出。

4. 实验结果

我们在Story Cloze Test v1.0和v1.5数据集上验证了我们的模型。可以看到Diff-Net相比其他传统模型能够得到显著性能提升。在融合BERT表示后仍然能够相对BERT基线得到进一步提升,说明建模结局之间的差异点是非常有必要的。

表1 SCT v1.0上的实验结果

表2 SCT v1.5上的实验结果

5. 讨论

虽然BERT以及我们的模型在故事结局预测上获得了不错的效果,但仍有如下几个问题亟待回答。

  1. 这些模型是否真正理解了故事?

  2. Story Cloze Test(v1.0和v1.5)数据集是否适合作为故事理解数据集?

  3. 除了客观指标之外,相比传统模型,BERT的优势是什么?

为了回答如上几个问题,我们对故事中的部分句子进行了删除、倒置、随机打乱,以此来探究故事中的哪些部分对于最终预测有效。

表3 使用不同故事句子组成的实验结果

从表3的实验结果,我们能够得到如下观察结论。

1)新数据SCT v1.5仍然存在“最后一句偏置”问题

从实验结果来看,去掉故事中的最后一句(w/o 4th sent.)来预测结局的情况下,SCT v1.0的效果降幅较小,而SCT v1.5上的降幅较大,说明SCT v1.5在“最后一句偏置”问题上有所改善。然而,从下例中可以看到故事的前三句对于最终任务选择毫无作用,模型只需要知道最后一句中的“tie(平局)”即可选择出正确的结局。

图4 来自于最后一句的偏置问题

2)BERT在联系故事和结局方面优于传统神经网络

在SCT v1.0数据上,对比 Diff-Net 以及 BERT+Diff-Net 的实验效果,我们可以看到当不使用任何故事信息时含有BERT的模型效果下降较大,说明BERT模型更加依赖故事信息,并且能够更好地挖掘故事和结局之间的联系。

3)脚本知识可能在该任务上收益甚微

我们可以看到将故事中的四个句子进行倒序排列(Reverse story),甚至是将四个句子完全随机排列(Random order)之后最终的结果并没有显著下降。这说明目前模型对于故事中的事件顺序不敏感,模型更加依赖的可能仍然是词汇级别的信息,而非事件顺序。所以我们怀疑该使用脚本知识(这也是数据集制作人的初衷)来提升该任务的收益可能非常小。

6. 结论

在本文中,我们在故事结局预测任务上提出了一种创新模型 Diff-Net。该模型能够从三个角度动态建模故事结局并且能够抽取出相关信息,并且使用额外的余弦距离来拉远两个结局的语义空间。在SCT v1.0和v1.5上的实验结果表明,该结构能够在传统神经网络以及BERT上获得进一步性能提升。 

同时通过我们的分析发现,目前的故事理解模型并没能实现“故事理解”,距离真正的目标还有很长一段距离。正如我们的分析,故事里句子的顺序并不会影响最终结局,所以在未来我们将尝试利用脚本知识来验证该任务是否真正需要此类外部知识。同时我们将探索使用无标注的训练数据(例如进行预训练或构件知识库)来进一步提升该任务的效果。

参考文献

[1] Schwartz et al., 2017. The Effect of Different Writing Tasks on Linguistic Style: A Case Study of the ROC Story Cloze Task. In CoNLL 2017.

[2] Lin et al., 2017. Reasoning with Heterogeneous Knowledge for Commonsense Machine Comprehension. In ACL 2017.

[3] Wang et al., 2017. Conditional Generative Adversarial Networks for Commonsense Machine Comprehension. In IJCAI-17.

[4] Cai et al., 2017. Pay Attention to the Ending: Strong Neural Baselines for the ROC Story Cloze Task.In ACL 2017.

[5] Mostafazadeh et al., 2016. A Corpus and Cloze Evaluation for Deeper Understanding of Commonsense Stories.In NAACL 2016.

[6] Cui et al., 2017. Attention-over-Attention Neural Networks for Reading Comprehension. In ACL 2017.

[7] Devlin et al., 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In NAACL-HLT 2019.

哈工大SCIR
哈工大SCIR

哈尔滨工业大学社会计算与信息检索研究中心

产业AAAI 2020
相关数据
刘挺人物

哈工大人工智能研究院副院长,国内NLP方向领军人物。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

知识库技术

知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、整理以及提取。知识库中的知识源于领域专家,它是求解问题所需领域知识的集合,包括基本事实、规则和其它有关信息。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

词干提取技术

在词法学和信息检索里,词干提取是去除词缀得到词根的过程─—得到单词最一般的写法。对于一个词的形态词根,词干并不需要完全相同;相关的词映射到同一个词干一般能得到满意的结果,即使该词干不是词的有效根。从1968年开始在计算机科学领域出现了词干提取的相应算法。很多搜索引擎在处理词汇时,对同义词采用相同的词干作为查询拓展,该过程叫做归并。

语言学技术

每种人类语言都是知识和能力的复合体,语言的使用者能够相互交流,表达想法,假设,情感,欲望以及所有其他需要表达的事物。语言学是对这些知识体系各方面的研究:如何构建这样的知识体系,如何获取,如何在消息的制作和理解中使用它,它是如何随时间变化的?语言学家因此关注语言本质的一些特殊问题。比如: 所有人类语言都有哪些共同属性?语言如何不同,系统的差异程度如何,我们能否在差异中找到模式?孩子如何在短时间内获得如此完整的语言知识?语言随时间变化的方式有哪些,语言变化的局限性是什么?当我们产生和理解语言时,认知过程的本质是什么?语言学研究的就是这些最本质的问题。

推荐文章
暂无评论
暂无评论~